<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://mars.merhot.dk/w/index.php?action=history&amp;feed=atom&amp;title=Perl_Multicast_Sender_example</id>
		<title>Perl Multicast Sender example - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://mars.merhot.dk/w/index.php?action=history&amp;feed=atom&amp;title=Perl_Multicast_Sender_example"/>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;action=history"/>
		<updated>2026-04-30T22:38:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11800&amp;oldid=prev</id>
		<title>Heth at 15:55, 6 May 2010</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11800&amp;oldid=prev"/>
				<updated>2010-05-06T15:55:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:55, 6 May 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l544&quot; &gt;Line 544:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 544:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Perl]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Heth</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11799&amp;oldid=prev</id>
		<title>Heth at 15:54, 6 May 2010</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11799&amp;oldid=prev"/>
				<updated>2010-05-06T15:54:13Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:54, 6 May 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=perl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=perl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/usr/bin/perl -w&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/usr/bin/perl -w&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;239.255.255&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;250&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;1900&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Author : heth@mercantec&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dk&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Method &lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Quick and dirty - no responsibility whatsoever by author&amp;#160;  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use strict;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use strict;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use warnings;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use warnings;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use Tk;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use Tk;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use IO::Socket::Multicast qw(:all);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use IO::Socket::Multicast qw(:all);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET SOL_SOCKET SO_ERROR&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET SOL_SOCKET SO_ERROR&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Heth</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11798&amp;oldid=prev</id>
		<title>Heth at 15:50, 6 May 2010</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11798&amp;oldid=prev"/>
				<updated>2010-05-06T15:50:51Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:50, 6 May 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l390&quot; &gt;Line 390:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 390:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $Esize-&amp;gt;configure(-background =&amp;gt; 'white');&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $Esize-&amp;gt;configure(-background =&amp;gt; 'white');&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l417&quot; &gt;Line 417:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 417:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $EsizeMin-&amp;gt;configure(-background =&amp;gt; 'white');&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $EsizeMin-&amp;gt;configure(-background =&amp;gt; 'white');&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l437&quot; &gt;Line 437:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 437:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $EsizeMax-&amp;gt;configure(-background =&amp;gt; 'white');&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $EsizeMax-&amp;gt;configure(-background =&amp;gt; 'white');&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l455&quot; &gt;Line 455:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 455:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sub validateInterval {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sub validateInterval {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; if ( $interval =~ /^\d+$/ ) {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; if ( $interval =~ /^\d+$/ ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l471&quot; &gt;Line 471:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 471:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l488&quot; &gt;Line 488:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 488:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l501&quot; &gt;Line 501:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 501:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; if (($1 &amp;gt;= 224 ) &amp;amp;&amp;amp; ($1 &amp;lt;= 239) &amp;amp;&amp;amp; ($2 &amp;lt;= 255) &amp;amp;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; if (($1 &amp;gt;= 224 ) &amp;amp;&amp;amp; ($1 &amp;lt;= 239) &amp;amp;&amp;amp; ($2 &amp;lt;= 255) &amp;amp;&amp;amp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  ($3 &amp;lt;= 255) &amp;amp;&amp;amp; ($4 &amp;lt;= 255) ) {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160;  ($3 &amp;lt;= 255) &amp;amp;&amp;amp; ($4 &amp;lt;= 255) ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l517&quot; &gt;Line 517:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 517:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l534&quot; &gt;Line 534:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 534:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; } else {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; $status = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&amp;quot;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; &amp;#160; return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Heth</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11797&amp;oldid=prev</id>
		<title>Heth: New page: &lt;source lang=perl&gt; #!/usr/bin/perl -w # 239.255.255.250:1900 use strict; use warnings;  use Tk;  use IO::Socket::Multicast qw(:all); use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET ...</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Perl_Multicast_Sender_example&amp;diff=11797&amp;oldid=prev"/>
				<updated>2010-05-06T15:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;lt;source lang=perl&amp;gt; #!/usr/bin/perl -w # 239.255.255.250:1900 use strict; use warnings;  use Tk;  use IO::Socket::Multicast qw(:all); use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
#!/usr/bin/perl -w&lt;br /&gt;
# 239.255.255.250:1900&lt;br /&gt;
use strict;&lt;br /&gt;
use warnings;&lt;br /&gt;
&lt;br /&gt;
use Tk;&lt;br /&gt;
&lt;br /&gt;
use IO::Socket::Multicast qw(:all);&lt;br /&gt;
use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET SOL_SOCKET SO_ERROR&lt;br /&gt;
               inet_aton inet_ntoa sockaddr_in );;&lt;br /&gt;
use Time::HiRes qw ( time alarm sleep );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Luk console vindue&lt;br /&gt;
BEGIN {&lt;br /&gt;
  if ($^O eq 'MSWin32' ) {&lt;br /&gt;
    require Win32::Console;&lt;br /&gt;
    Win32::Console::Free();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
## Initialise randomizer&lt;br /&gt;
srand;&lt;br /&gt;
# Main window oprettes&lt;br /&gt;
my $status = &amp;quot;Status: &amp;quot;;&lt;br /&gt;
my $packets = 0;&lt;br /&gt;
my $packetsSendSession = 0;&lt;br /&gt;
my $packetsSendTotal = 0;&lt;br /&gt;
my $BstartTimer;&lt;br /&gt;
my $packetData = &amp;quot;&amp;quot;; # Contains nonsens data for packet fill&lt;br /&gt;
for my $i (1..57) { $packetData=$packetData .&amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot;; }&lt;br /&gt;
my $packetToSend;    # To contain Multicast Packet to be send&lt;br /&gt;
my $socket = IO::Socket::Multicast-&amp;gt;new();&lt;br /&gt;
my $mw = new MainWindow();&lt;br /&gt;
&lt;br /&gt;
$mw-&amp;gt;title(&amp;quot;Mercantec - MultiCast Sender&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
##################&lt;br /&gt;
#      Menu      #&lt;br /&gt;
##################&lt;br /&gt;
my $Lstart = $mw-&amp;gt;Label(-text =&amp;gt; 'Send  ');&lt;br /&gt;
my $Bstart = $mw -&amp;gt; Button(-text =&amp;gt; &amp;quot;Start&amp;quot;, -command =&amp;gt;\&amp;amp;Bstart,&lt;br /&gt;
             -overrelief =&amp;gt; 'sunken', -relief =&amp;gt; 'raised',-padx =&amp;gt; 20);&lt;br /&gt;
my $Bstop = $mw -&amp;gt; Button(-text =&amp;gt; &amp;quot;Stop &amp;quot;, -command =&amp;gt;\&amp;amp;Bstop,&lt;br /&gt;
            -overrelief =&amp;gt; 'sunken', -relief =&amp;gt; 'raised',&lt;br /&gt;
            -padx =&amp;gt; 20,-state =&amp;gt; 'disabled');&lt;br /&gt;
#Status felt&lt;br /&gt;
my $Wstatus = $mw-&amp;gt;Label (&lt;br /&gt;
                -relief =&amp;gt; 'sunken' ,&lt;br /&gt;
                -borderwidth =&amp;gt; 1 ,&lt;br /&gt;
                -height =&amp;gt; 1 ,&lt;br /&gt;
                -width =&amp;gt; 70 ,&lt;br /&gt;
                -justify =&amp;gt; 'right' ,&lt;br /&gt;
                -anchor =&amp;gt; 'w',&lt;br /&gt;
                -textvariable =&amp;gt; \$status );&lt;br /&gt;
my $Wpackets = $mw-&amp;gt;Label (&lt;br /&gt;
                -relief =&amp;gt; 'sunken' ,&lt;br /&gt;
                -borderwidth =&amp;gt; 1 ,&lt;br /&gt;
                -height =&amp;gt; 1 ,&lt;br /&gt;
                -width =&amp;gt;10 ,&lt;br /&gt;
                -justify =&amp;gt; 'left' ,&lt;br /&gt;
                -textvariable =&amp;gt; \$packets );&lt;br /&gt;
&lt;br /&gt;
#Opret en menubar i objktet&lt;br /&gt;
my $mbar = $mw-&amp;gt;Menu();&lt;br /&gt;
$mw-&amp;gt;configure(-menu =&amp;gt; $mbar);&lt;br /&gt;
&lt;br /&gt;
#Hovedenmer i menuen&lt;br /&gt;
my $file    = $mbar-&amp;gt;cascade(-label=&amp;gt;&amp;quot;File&amp;quot;, -underline=&amp;gt;0, -tearoff =&amp;gt; 0);&lt;br /&gt;
my $help    = $mbar-&amp;gt;cascade(-label =&amp;gt;&amp;quot;Help&amp;quot;, -underline=&amp;gt;0, -tearoff =&amp;gt; 0);&lt;br /&gt;
&lt;br /&gt;
## File Menu ##&lt;br /&gt;
$file -&amp;gt; command(-label =&amp;gt;&amp;quot;Status&amp;quot;, -underline =&amp;gt; 0,&lt;br /&gt;
		-command =&amp;gt; [\&amp;amp;saveClicked, &amp;quot;Status&amp;quot;],&lt;br /&gt;
                -accelerator =&amp;gt; &amp;quot;F3&amp;quot;);&lt;br /&gt;
$file -&amp;gt; separator();&lt;br /&gt;
$file -&amp;gt; command(-label =&amp;gt;&amp;quot;Exit&amp;quot;, -underline =&amp;gt; 1,&lt;br /&gt;
		-command =&amp;gt; sub { exit } );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Help ##&lt;br /&gt;
$help -&amp;gt; command(-label =&amp;gt;&amp;quot;About&amp;quot;,&lt;br /&gt;
	 	-command =&amp;gt; [\&amp;amp;aboutClicked, &amp;quot;Open&amp;quot;],&lt;br /&gt;
                -accelerator =&amp;gt; &amp;quot;F9&amp;quot;);&lt;br /&gt;
# Når er trykkes på F9 køres subrutinen aboutClicked()&lt;br /&gt;
$mw-&amp;gt;bind ( &amp;quot;&amp;lt;F9&amp;gt;&amp;quot; , \&amp;amp;aboutClicked ) ;&lt;br /&gt;
&lt;br /&gt;
###################&lt;br /&gt;
### LabelFrames ###&lt;br /&gt;
###################&lt;br /&gt;
## LFsender LabelFrame ##&lt;br /&gt;
my $IPadr = '226.1.2.3';&lt;br /&gt;
my $port = 7777;&lt;br /&gt;
my $ttl = 64;&lt;br /&gt;
my $LFsender	= $mw-&amp;gt;Labelframe(-text =&amp;gt; 'Sender options',&lt;br /&gt;
                                  -padx =&amp;gt; 2,&lt;br /&gt;
                                  -pady =&amp;gt; 2);&lt;br /&gt;
&lt;br /&gt;
#IP address&lt;br /&gt;
$LFsender-&amp;gt;Label( -text =&amp;gt; &amp;quot;IP Address:&amp;quot;, -width =&amp;gt; 20, -anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFsender);&lt;br /&gt;
my $EIPadr = $LFsender-&amp;gt;Entry(-width =&amp;gt; 15, -textvariable =&amp;gt; \$IPadr,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateIPadr,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$EIPadr-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFsender);&lt;br /&gt;
#UDP port&lt;br /&gt;
$LFsender-&amp;gt;Label( -text =&amp;gt; &amp;quot;UDP Port:&amp;quot;, -width =&amp;gt; 20, -anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFsender);&lt;br /&gt;
my $Eport = $LFsender-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$port,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validatePort,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$Eport-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFsender);&lt;br /&gt;
#TTL&lt;br /&gt;
$LFsender-&amp;gt;Label( -text =&amp;gt; &amp;quot;Time-To-Live (TTL):&amp;quot;, -width =&amp;gt; 20, -anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFsender);&lt;br /&gt;
my $Ettl = $LFsender-&amp;gt;Entry(-width =&amp;gt; 3, -textvariable =&amp;gt; \$ttl,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateTTL,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$Ettl-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFsender);&lt;br /&gt;
&lt;br /&gt;
#######################&lt;br /&gt;
#  LFsize LabelFrame  #&lt;br /&gt;
#######################&lt;br /&gt;
my $PACKETMINIMUMSIZE = 64;   # Mindste tilladte pakke&lt;br /&gt;
my $PACKETMAXIMUMSIZE = 1500; # Største tilladte pakke&lt;br /&gt;
my $sizeMin = 100;&lt;br /&gt;
my $sizeMax = 1000;&lt;br /&gt;
my $size = 500;&lt;br /&gt;
my $sizeSelected = 'Constant';&lt;br /&gt;
my $LFsize	= $mw-&amp;gt;Labelframe(-text =&amp;gt; 'Size of packets in Bytes',&lt;br /&gt;
                                  -padx =&amp;gt; 2,&lt;br /&gt;
                                  -pady =&amp;gt; 2);&lt;br /&gt;
#Labelframe SizeConstant inside Labelframe LFsize&lt;br /&gt;
my $LFsizeConstant	= $LFsize-&amp;gt;Labelframe(-padx =&amp;gt; 2,-pady =&amp;gt; 2);&lt;br /&gt;
$LFsizeConstant-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;0,-pady =&amp;gt; '2m', -padx =&amp;gt; '2m');&lt;br /&gt;
&lt;br /&gt;
my $RBsizeConstant = $LFsizeConstant-&amp;gt;Radiobutton(&lt;br /&gt;
		-text =&amp;gt; 'Constant Packet Size',&lt;br /&gt;
                -variable =&amp;gt; \$sizeSelected,&lt;br /&gt;
                -value =&amp;gt; 'Constant',&lt;br /&gt;
                -command =&amp;gt; \&amp;amp;sizeConstantSelected,-padx =&amp;gt; 0);&lt;br /&gt;
$LFsizeConstant-&amp;gt;configure(-labelwidget =&amp;gt; $RBsizeConstant);&lt;br /&gt;
my $Lsize = $LFsizeConstant-&amp;gt;Label( -text =&amp;gt; &amp;quot;Constant Size:&amp;quot;, -width =&amp;gt; 30,&lt;br /&gt;
		 -anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFsizeConstant);&lt;br /&gt;
my $Esize = $LFsizeConstant-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$size,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateSize,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$Esize-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFsizeConstant);&lt;br /&gt;
&lt;br /&gt;
#Labelframe SizeRandom inside Labelframe LFsize&lt;br /&gt;
my $LFsizeRandom	= $LFsize-&amp;gt;Labelframe(-padx =&amp;gt; 2,-pady =&amp;gt; 2);&lt;br /&gt;
$LFsizeRandom-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;0,-pady =&amp;gt; '2m', -padx =&amp;gt; '2m');&lt;br /&gt;
&lt;br /&gt;
my $RBsize = $LFsizeRandom-&amp;gt;Radiobutton(&lt;br /&gt;
		-text =&amp;gt; 'Random Packet Size',&lt;br /&gt;
                -variable =&amp;gt; \$sizeSelected,&lt;br /&gt;
                -value =&amp;gt; 'Random',&lt;br /&gt;
                -command =&amp;gt; \&amp;amp;sizeRandomSelected,-padx =&amp;gt; 0);&lt;br /&gt;
$LFsizeRandom-&amp;gt;configure(-labelwidget =&amp;gt; $RBsize);&lt;br /&gt;
my $LsizeMin = $LFsizeRandom-&amp;gt;Label( -text =&amp;gt; &amp;quot;Random Size Minimum:&amp;quot;,&lt;br /&gt;
		 -width =&amp;gt; 30,-anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFsizeRandom);&lt;br /&gt;
my $EsizeMin = $LFsizeRandom-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$sizeMin,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateSizeMin,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$EsizeMin-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFsizeRandom);&lt;br /&gt;
&lt;br /&gt;
my $LsizeMax = $LFsizeRandom-&amp;gt;Label( -text =&amp;gt; &amp;quot;Random Size Maximum:&amp;quot;,&lt;br /&gt;
		 -width =&amp;gt; 30,-anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFsizeRandom);&lt;br /&gt;
my $EsizeMax = $LFsizeRandom-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$sizeMax,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateSizeMax,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$EsizeMax-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFsizeRandom);&lt;br /&gt;
## Default size Constant&lt;br /&gt;
sizeConstantSelected();&lt;br /&gt;
&lt;br /&gt;
###########################&lt;br /&gt;
#  LFinterval LabelFrame  #&lt;br /&gt;
###########################&lt;br /&gt;
my $intervalMin = 10;&lt;br /&gt;
my $intervalMax = 1000;&lt;br /&gt;
my $interval = 100;&lt;br /&gt;
my $intervalSelected = 'Constant';&lt;br /&gt;
my $LFinterval	= $mw-&amp;gt;Labelframe(-text =&amp;gt; 'Interval between packets in Milli Seconds',&lt;br /&gt;
                                  -padx =&amp;gt; 2,&lt;br /&gt;
                                  -pady =&amp;gt; 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Labelframe IntervalConstant inside Labelframe LFinterval&lt;br /&gt;
my $LFintervalConstant	= $LFinterval-&amp;gt;Labelframe(-padx =&amp;gt; 2,-pady =&amp;gt; 2);&lt;br /&gt;
$LFintervalConstant-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;0,-pady =&amp;gt; '2m', -padx =&amp;gt; '2m');&lt;br /&gt;
&lt;br /&gt;
my $RBintervalConstant = $LFintervalConstant-&amp;gt;Radiobutton(&lt;br /&gt;
		-text =&amp;gt; 'Constant Packet Interval',&lt;br /&gt;
                -variable =&amp;gt; \$intervalSelected,&lt;br /&gt;
                -value =&amp;gt; 'Constant',&lt;br /&gt;
                -command =&amp;gt; \&amp;amp;intervalConstantSelected,-padx =&amp;gt; 0);&lt;br /&gt;
$LFintervalConstant-&amp;gt;configure(-labelwidget =&amp;gt; $RBintervalConstant);&lt;br /&gt;
my $Linterval = $LFintervalConstant-&amp;gt;Label( -text =&amp;gt; &amp;quot;Constant Interval:&amp;quot;, -width =&amp;gt; 30,&lt;br /&gt;
		 -anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFintervalConstant);&lt;br /&gt;
my $Einterval = $LFintervalConstant-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$interval,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateInterval,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$Einterval-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFintervalConstant);&lt;br /&gt;
&lt;br /&gt;
#Labelframe IntervalRandom inside Labelframe LFinterval&lt;br /&gt;
my $LFintervalRandom	= $LFinterval-&amp;gt;Labelframe(-padx =&amp;gt; 2,-pady =&amp;gt; 2);&lt;br /&gt;
$LFintervalRandom-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;0,-pady =&amp;gt; '2m', -padx =&amp;gt; '2m');&lt;br /&gt;
&lt;br /&gt;
my $RBinterval = $LFintervalRandom-&amp;gt;Radiobutton(&lt;br /&gt;
		-text =&amp;gt; 'Random Packet Interval',&lt;br /&gt;
                -variable =&amp;gt; \$intervalSelected,&lt;br /&gt;
                -value =&amp;gt; 'Random',&lt;br /&gt;
                -command =&amp;gt; \&amp;amp;intervalRandomSelected,-padx =&amp;gt; 0);&lt;br /&gt;
$LFintervalRandom-&amp;gt;configure(-labelwidget =&amp;gt; $RBinterval);&lt;br /&gt;
my $LintervalMin = $LFintervalRandom-&amp;gt;Label( -text =&amp;gt; &amp;quot;Random Interval Minimum:&amp;quot;,&lt;br /&gt;
		 -width =&amp;gt; 30,-anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFintervalRandom);&lt;br /&gt;
my $EintervalMin = $LFintervalRandom-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$intervalMin,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateIntervalMin,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$EintervalMin-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFintervalRandom);&lt;br /&gt;
&lt;br /&gt;
my $LintervalMax = $LFintervalRandom-&amp;gt;Label( -text =&amp;gt; &amp;quot;Random Interval Maximum:&amp;quot;,&lt;br /&gt;
		 -width =&amp;gt; 30,-anchor =&amp;gt; 'w', -pady =&amp;gt; 3)&lt;br /&gt;
		-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $LFintervalRandom);&lt;br /&gt;
my $EintervalMax = $LFintervalRandom-&amp;gt;Entry(-width =&amp;gt; 5, -textvariable =&amp;gt; \$intervalMax,&lt;br /&gt;
                                   -validatecommand =&amp;gt; \&amp;amp;validateIntervalMax,&lt;br /&gt;
                                   -validate =&amp;gt; 'focusout');&lt;br /&gt;
$EintervalMax-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;1,-sticky=&amp;gt;'w',-in =&amp;gt; $LFintervalRandom);&lt;br /&gt;
## Default interval Constant&lt;br /&gt;
intervalConstantSelected();&lt;br /&gt;
&lt;br /&gt;
##################&lt;br /&gt;
#  Pack windows  #&lt;br /&gt;
##################&lt;br /&gt;
$Lstart-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;0,-sticky=&amp;gt;'e',-in =&amp;gt; $mw);&lt;br /&gt;
$Bstart-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;1,-sticky=&amp;gt;'e',-in =&amp;gt; $mw);&lt;br /&gt;
$Bstop-&amp;gt;grid(-row=&amp;gt;0,-column=&amp;gt;2,-sticky=&amp;gt;'e',-in =&amp;gt; $mw);&lt;br /&gt;
$LFsender-&amp;gt;grid(-row=&amp;gt;1,-column=&amp;gt;0,-sticky=&amp;gt;'w',-in =&amp;gt; $mw, -padx =&amp;gt; 25, -pady =&amp;gt; 5);&lt;br /&gt;
$LFsize-&amp;gt;grid(-row=&amp;gt;2,-column=&amp;gt;0,-sticky=&amp;gt;'w',-in =&amp;gt; $mw, -padx =&amp;gt; 25, -pady =&amp;gt; 5);&lt;br /&gt;
$LFinterval-&amp;gt;grid(-row=&amp;gt;3,-column=&amp;gt;0,-sticky=&amp;gt;'w',-in =&amp;gt; $mw, -padx =&amp;gt; 25, -pady =&amp;gt; 5 );&lt;br /&gt;
$Wstatus-&amp;gt;grid(-row=&amp;gt;4,-column=&amp;gt;0,-sticky=&amp;gt;&amp;quot;w&amp;quot;,-in =&amp;gt; $mw);&lt;br /&gt;
$Wpackets-&amp;gt;grid(-row=&amp;gt;4,-column=&amp;gt;2,-sticky=&amp;gt;&amp;quot;e&amp;quot;,-in =&amp;gt; $mw);&lt;br /&gt;
&lt;br /&gt;
### resize behaviour&lt;br /&gt;
$mw-&amp;gt;gridRowconfigure (0,-weight =&amp;gt; 1);&lt;br /&gt;
$mw-&amp;gt;gridRowconfigure (1,-weight =&amp;gt; 2);&lt;br /&gt;
$mw-&amp;gt;gridRowconfigure (2,-weight =&amp;gt; 3);&lt;br /&gt;
&lt;br /&gt;
MainLoop;&lt;br /&gt;
&lt;br /&gt;
####################&lt;br /&gt;
#  Event Handlers  #&lt;br /&gt;
####################&lt;br /&gt;
sub aboutClicked {&lt;br /&gt;
	my ($opt) = @_;&lt;br /&gt;
	$mw-&amp;gt;messageBox(-message =&amp;gt; &amp;quot;MultiCast Sender version 1.0\nHenrik Thomsen 2007\n\n\nheth\@mercantec.dk&amp;quot;,&lt;br /&gt;
                        -title =&amp;gt; &amp;quot;About&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sub intervalRandomSelected {&lt;br /&gt;
        ## Deselect Constant interval LabelFrame Widgets&lt;br /&gt;
        $Linterval-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $Einterval-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        ## Select Random interval LabelFrame Widgets&lt;br /&gt;
        $LintervalMin-&amp;gt;configure(-state =&amp;gt; 'active' );&lt;br /&gt;
        $EintervalMin-&amp;gt;configure(-state =&amp;gt; 'normal' );&lt;br /&gt;
        $LintervalMax-&amp;gt;configure(-state =&amp;gt; 'active' );&lt;br /&gt;
        $EintervalMax-&amp;gt;configure(-state =&amp;gt; 'normal' );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
sub intervalConstantSelected {&lt;br /&gt;
        ## Select Constant interval LabelFrame Widgets&lt;br /&gt;
        $Linterval-&amp;gt;configure(-state =&amp;gt; 'active' );&lt;br /&gt;
        $Einterval-&amp;gt;configure(-state =&amp;gt; 'normal' );&lt;br /&gt;
        ## Select Random interval LabelFrame Widgets&lt;br /&gt;
        $LintervalMin-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $EintervalMin-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $LintervalMax-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $EintervalMax-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub sizeRandomSelected {&lt;br /&gt;
        ## Deselect Constant size LabelFrame Widgets&lt;br /&gt;
        $Lsize-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $Esize-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        ## Select Random size LabelFrame Widgets&lt;br /&gt;
        $LsizeMin-&amp;gt;configure(-state =&amp;gt; 'active' );&lt;br /&gt;
        $EsizeMin-&amp;gt;configure(-state =&amp;gt; 'normal' );&lt;br /&gt;
        $LsizeMax-&amp;gt;configure(-state =&amp;gt; 'active' );&lt;br /&gt;
        $EsizeMax-&amp;gt;configure(-state =&amp;gt; 'normal' );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
sub sizeConstantSelected {&lt;br /&gt;
        ## Select Constant interval LabelFrame Widgets&lt;br /&gt;
        $Lsize-&amp;gt;configure(-state =&amp;gt; 'active' );&lt;br /&gt;
        $Esize-&amp;gt;configure(-state =&amp;gt; 'normal' );&lt;br /&gt;
        ## Select Random interval LabelFrame Widgets&lt;br /&gt;
        $LsizeMin-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $EsizeMin-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $LsizeMax-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
        $EsizeMax-&amp;gt;configure(-state =&amp;gt; 'disabled' );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub SOL_IP { 0; };&lt;br /&gt;
sub IP_TOS { 1; };&lt;br /&gt;
&lt;br /&gt;
sub Bstart {&lt;br /&gt;
    $status=&amp;quot;Multicast sending.....&amp;quot;;&lt;br /&gt;
    $Bstop-&amp;gt;configure(-state=&amp;gt;'normal');&lt;br /&gt;
    $Bstart-&amp;gt;configure(-state=&amp;gt;'disabled');&lt;br /&gt;
    $packetsSendSession = 1;&lt;br /&gt;
    if ( validateSize() &amp;amp;&amp;amp; validateSizeMin() &amp;amp;&amp;amp; validateSizeMax() &amp;amp;&amp;amp;&lt;br /&gt;
         validateInterval() &amp;amp;&amp;amp; validateIntervalMin() &amp;amp;&amp;amp; validateIntervalMax() &amp;amp;&amp;amp;&lt;br /&gt;
         validateIPadr() &amp;amp;&amp;amp; validatePort() &amp;amp;&amp;amp; validateTTL()) {&lt;br /&gt;
      $socket-&amp;gt;mcast_ttl($ttl);&lt;br /&gt;
      #$socket-&amp;gt;setsockopt($socket, SOL_IP, IP_TOS(), pack(&amp;quot;I*&amp;quot;, 32) ) || die &amp;quot;setsockopt: $!\n&amp;quot;;;&lt;br /&gt;
      #$socket-&amp;gt;setsockopt($socket, 0,1, pack(&amp;quot;I*&amp;quot;, 32) ) || die &amp;quot;setsockopt: $!\n&amp;quot;;;&lt;br /&gt;
      $socket-&amp;gt;sockopt(1,pack(&amp;quot;I*&amp;quot;,32));&lt;br /&gt;
      #-&amp;gt;sockopt('IP_TOS' =&amp;gt; '24');&lt;br /&gt;
      #$socket-&amp;gt;setsockopt(IPPROTO_UDP,'IP_TOS',32) || die &amp;quot;setsockopt $!\n&amp;quot;;&lt;br /&gt;
      #Build first packet to be send.....&lt;br /&gt;
      my $thisPacketSize = findPacketSize() - 20 - 8 - 26;&lt;br /&gt;
      $packetToSend = pack(&amp;quot;iFa$thisPacketSize&amp;quot;,$packetsSendSession,time(),$packetData);&lt;br /&gt;
      $BstartTimer = $Bstart-&amp;gt;after(findInterval(),\&amp;amp;sendPacket);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub Bstop {&lt;br /&gt;
    $packetsSendTotal += $packetsSendSession;&lt;br /&gt;
    $status = &amp;quot;Multicast afsluttet. Der er ialt sendt $packetsSendTotal pakker.&amp;quot;;&lt;br /&gt;
    $Bstart-&amp;gt;configure(-state=&amp;gt;'normal');&lt;br /&gt;
    $Bstop-&amp;gt;configure(-state=&amp;gt;'disabled');&lt;br /&gt;
    if ( $Bstart-&amp;gt;afterInfo($BstartTimer)) {&lt;br /&gt;
    $BstartTimer-&amp;gt;cancel();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub sendPacket {&lt;br /&gt;
    $packetsSendSession++;&lt;br /&gt;
    #Send packet that was packed before. (Dont spend time building packet&lt;br /&gt;
    #after timer trigged)&lt;br /&gt;
    $socket-&amp;gt;mcast_send($packetToSend,&amp;quot;$IPadr:$port&amp;quot;);&lt;br /&gt;
    # Build Packet to send. (Size - 20 bytes IP - 8 bytes UDP - 26 bytes&lt;br /&gt;
    # for number of packet and HiRes timestamp)&lt;br /&gt;
    # Packets contains packetnumber,HiRes time, fill data&lt;br /&gt;
    my $thisPacketSize = findPacketSize() - 20 - 8 - 26;&lt;br /&gt;
    $packetToSend = pack(&amp;quot;iFa$thisPacketSize&amp;quot;,$packetsSendSession,time(),$packetData);&lt;br /&gt;
    $packets = &amp;quot;$packetsSendSession&amp;quot;;&lt;br /&gt;
    $BstartTimer = $Bstart-&amp;gt;after(findInterval(),\&amp;amp;sendPacket);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Find tidsintervallet mellem pakkerne&lt;br /&gt;
sub findInterval {&lt;br /&gt;
  if ( $intervalSelected eq 'Constant' ) {&lt;br /&gt;
    return $interval;&lt;br /&gt;
  } else {&lt;br /&gt;
    return int($intervalMin + ( rand() * ($intervalMax - $intervalMin) ));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub findPacketSize {&lt;br /&gt;
  if ( $sizeSelected eq 'Constant' ) {&lt;br /&gt;
    return $size;&lt;br /&gt;
  } else {&lt;br /&gt;
&lt;br /&gt;
    return int($sizeMin + ( rand() * ($sizeMax - $sizeMin) ));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
##########################&lt;br /&gt;
#  Validate user input  #&lt;br /&gt;
#########################&lt;br /&gt;
sub validateSize {&lt;br /&gt;
  if ( $size =~ /^\d+$/ ) {&lt;br /&gt;
    if ( ($size &amp;lt; $PACKETMINIMUMSIZE ) || ( $size &amp;gt; $PACKETMAXIMUMSIZE ) ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $Esize-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
      $status =  &amp;quot;ERROR: Packet size should be an integer between $PACKETMINIMUMSIZE and $PACKETMAXIMUMSIZE Bytes&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      $Esize-&amp;gt;configure(-background =&amp;gt; 'white');&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $Esize-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
    $status =  &amp;quot;ERROR: Packet size should be an integer between $PACKETMINIMUMSIZE and $PACKETMAXIMUMSIZE Bytes&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub validateSizeMin {&lt;br /&gt;
  if ( $sizeMin =~ /^\d+$/ ) {&lt;br /&gt;
    if ( $sizeMin &amp;gt; $sizeMax ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $EsizeMin-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
      $status = &amp;quot;ERROR: Minimum packetsize should be less than maximum packetsize&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( ($sizeMin &amp;lt; $PACKETMINIMUMSIZE ) || ( $sizeMin &amp;gt; $PACKETMAXIMUMSIZE ) ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $EsizeMin-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
      $status =  &amp;quot;ERROR: Minimum packet size should be an integer between $PACKETMINIMUMSIZE and $PACKETMAXIMUMSIZE Bytes&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      $EsizeMin-&amp;gt;configure(-background =&amp;gt; 'white');&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $EsizeMin-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
    $status =  &amp;quot;ERROR: Minimum packet size should be integer an between $PACKETMINIMUMSIZE and $PACKETMAXIMUMSIZE Bytes&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub validateSizeMax {&lt;br /&gt;
  if ( $sizeMax =~ /^\d+$/ ) {&lt;br /&gt;
    if ( ($sizeMax &amp;lt; $PACKETMINIMUMSIZE ) || ( $sizeMax &amp;gt; $PACKETMAXIMUMSIZE ) ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $EsizeMax-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
      $status =  &amp;quot;ERROR: Maximum packet size should be an integer between $PACKETMINIMUMSIZE and $PACKETMAXIMUMSIZE Bytes&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      $EsizeMax-&amp;gt;configure(-background =&amp;gt; 'white');&lt;br /&gt;
      return 1;&lt;br /&gt;
    } if ( $sizeMax &amp;lt; $sizeMin ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $EsizeMax-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
      $status =  &amp;quot;FEJL: Maximum packetsize should be larger than minimum packetsize&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $EsizeMax-&amp;gt;configure(-background =&amp;gt; 'red');&lt;br /&gt;
    $status =  &amp;quot;ERROR: Maximum packet size should be an integer between $PACKETMINIMUMSIZE and $PACKETMAXIMUMSIZE Bytes&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
sub validateInterval {&lt;br /&gt;
  if ( $interval =~ /^\d+$/ ) {&lt;br /&gt;
    $status = '';&lt;br /&gt;
    return 1;&lt;br /&gt;
  } else {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $status = &amp;quot;ERROR: Packetinterval should be an integer in milliseconds&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub validateIntervalMin {&lt;br /&gt;
  if ( $intervalMin =~ /^\d+$/ ) {&lt;br /&gt;
    if ( $intervalMin &amp;gt; $intervalMax ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $status =  &amp;quot;ERROR: Minimum packetinterval should be less than maximum packetinterval&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $status =  &amp;quot;ERROR: Packetinterval should be an integer in milliseconds&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub validateIntervalMax {&lt;br /&gt;
  if ( $intervalMax =~ /^\d+$/ ) {&lt;br /&gt;
    if ( $intervalMax &amp;lt; $intervalMin ) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $status =  &amp;quot;ERROR: Maximum packetinterval should be larger than minimum packetinterval&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $status =  &amp;quot;ERROR: Packetinterval should be an integer in milliseconds&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
sub validateIPadr {&lt;br /&gt;
  if ( $IPadr =~ /^(\d+).(\d+).(\d+).(\d+)$/ ) {&lt;br /&gt;
    if (($1 &amp;gt;= 224 ) &amp;amp;&amp;amp; ($1 &amp;lt;= 239) &amp;amp;&amp;amp; ($2 &amp;lt;= 255) &amp;amp;&amp;amp;&lt;br /&gt;
         ($3 &amp;lt;= 255) &amp;amp;&amp;amp; ($4 &amp;lt;= 255) ) {&lt;br /&gt;
        $status = '';&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  Bstop();&lt;br /&gt;
  $status = &amp;quot;ERROR: Multicast IP address should be between 224.0.0.0 and 239.255.255.255&amp;quot;;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub validatePort {&lt;br /&gt;
  if ( $port =~ /^\d+$/ ) {&lt;br /&gt;
    if ( $port  &amp;gt; 65535 || $port &amp;lt; 1) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
      $status =  &amp;quot;ERROR: UDP port number should be an integer between 1 and 65535&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $status =  &amp;quot;ERROR: UDP port number should be an integer between 1 and 65535&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
sub validateTTL {&lt;br /&gt;
  if ( $ttl =~ /^\d+$/ ) {&lt;br /&gt;
    if ( $ttl  &amp;gt; 255 || $ttl &amp;lt; 1) {&lt;br /&gt;
      Bstop();  # Stop sending&lt;br /&gt;
&lt;br /&gt;
      $status =  &amp;quot;ERROR: Time-To-Live (TTL) should be an integer between 1 and 255&amp;quot;;&lt;br /&gt;
      return 0;&lt;br /&gt;
    } else {&lt;br /&gt;
      $status = '';&lt;br /&gt;
      return 1;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    Bstop();&lt;br /&gt;
    $status =  &amp;quot;ERROR: Time-To-Live (TTL) should be an integer between 1 and 255&amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Heth</name></author>	</entry>

	</feed>