python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_calendar.cpython-311.opt-1.pyc

e
8ddlZddlZddlmZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZdZdZ
dZdZedd	d
ZdZgd
gdgdgdgdggdgdgdgdgdggdgdgdgdgdgggd
gdgdgdgdggdgdgdgd gd!gd"ggd#gd$gd%gd&gd'gggd
gdgdgdgdggdgdgdgdgdgd(ggd)gd*gd+gd,gd-gggd.gd/gd0gd1gd2ggdgdgdgdgd3ggd)gd*gd+gd,gd4gggZgd5gd6gd7ggd8gd9gd:ggd;gd<gd=ggd>gd?gd@ggZGdAdBejZGdCdDejZGdEdFejZGdGdHeZGdIdJeZGdKdLejZGdMdNejZGdOdPejZdQZGdRdSejZGdTdUejZ GdVdWejZ!e"dXkrej#dSdS)YN)support)assert_python_okassert_python_failurez     February 0
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29
a                                   0

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6             1  2  3  4  5
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       6  7  8  9 10 11 12
10 11 12 13 14 15 16      14 15 16 17 18 19 20      13 14 15 16 17 18 19
17 18 19 20 21 22 23      21 22 23 24 25 26 27      20 21 22 23 24 25 26
24 25 26 27 28 29 30      28 29                     27 28 29 30 31
31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2       1  2  3  4  5  6  7                1  2  3  4
 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 11
10 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 18
17 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 25
24 25 26 27 28 29 30      29 30 31                  26 27 28 29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                   1  2  3
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 10
10 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 17
17 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 24
24 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 30
31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5                   1  2  3
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 17
16 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 24
23 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 31
30 31
z    January 2004
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
a!                                  2004

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1       1  2  3  4  5  6  7
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       8  9 10 11 12 13 14
12 13 14 15 16 17 18       9 10 11 12 13 14 15      15 16 17 18 19 20 21
19 20 21 22 23 24 25      16 17 18 19 20 21 22      22 23 24 25 26 27 28
26 27 28 29 30 31         23 24 25 26 27 28 29      29 30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                      1  2          1  2  3  4  5  6
 5  6  7  8  9 10 11       3  4  5  6  7  8  9       7  8  9 10 11 12 13
12 13 14 15 16 17 18      10 11 12 13 14 15 16      14 15 16 17 18 19 20
19 20 21 22 23 24 25      17 18 19 20 21 22 23      21 22 23 24 25 26 27
26 27 28 29 30            24 25 26 27 28 29 30      28 29 30
                          31

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1             1  2  3  4  5
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       6  7  8  9 10 11 12
12 13 14 15 16 17 18       9 10 11 12 13 14 15      13 14 15 16 17 18 19
19 20 21 22 23 24 25      16 17 18 19 20 21 22      20 21 22 23 24 25 26
26 27 28 29 30 31         23 24 25 26 27 28 29      27 28 29 30
                          30 31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3       1  2  3  4  5  6  7             1  2  3  4  5
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       6  7  8  9 10 11 12
11 12 13 14 15 16 17      15 16 17 18 19 20 21      13 14 15 16 17 18 19
18 19 20 21 22 23 24      22 23 24 25 26 27 28      20 21 22 23 24 25 26
25 26 27 28 29 30 31      29 30                     27 28 29 30 31
yearmonthascii)rrencodingax;<?xml version="1.0" encoding="{encoding}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
<link rel="stylesheet" type="text/css" href="calendar.css" />
<title>Calendar for 2004</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="{year}">
<tr><th colspan="3" class="{year}">2004</th></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">January</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">February</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">March</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="wed">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">April</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">May</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sat">1</td><td class="sun">2</td></tr>
<tr><td class="mon">3</td><td class="tue">4</td><td class="wed">5</td><td class="thu">6</td><td class="fri">7</td><td class="sat">8</td><td class="sun">9</td></tr>
<tr><td class="mon">10</td><td class="tue">11</td><td class="wed">12</td><td class="thu">13</td><td class="fri">14</td><td class="sat">15</td><td class="sun">16</td></tr>
<tr><td class="mon">17</td><td class="tue">18</td><td class="wed">19</td><td class="thu">20</td><td class="fri">21</td><td class="sat">22</td><td class="sun">23</td></tr>
<tr><td class="mon">24</td><td class="tue">25</td><td class="wed">26</td><td class="thu">27</td><td class="fri">28</td><td class="sat">29</td><td class="sun">30</td></tr>
<tr><td class="mon">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">June</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr>
<tr><td class="mon">7</td><td class="tue">8</td><td class="wed">9</td><td class="thu">10</td><td class="fri">11</td><td class="sat">12</td><td class="sun">13</td></tr>
<tr><td class="mon">14</td><td class="tue">15</td><td class="wed">16</td><td class="thu">17</td><td class="fri">18</td><td class="sat">19</td><td class="sun">20</td></tr>
<tr><td class="mon">21</td><td class="tue">22</td><td class="wed">23</td><td class="thu">24</td><td class="fri">25</td><td class="sat">26</td><td class="sun">27</td></tr>
<tr><td class="mon">28</td><td class="tue">29</td><td class="wed">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">July</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">August</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
<tr><td class="mon">30</td><td class="tue">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">September</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">October</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="fri">1</td><td class="sat">2</td><td class="sun">3</td></tr>
<tr><td class="mon">4</td><td class="tue">5</td><td class="wed">6</td><td class="thu">7</td><td class="fri">8</td><td class="sat">9</td><td class="sun">10</td></tr>
<tr><td class="mon">11</td><td class="tue">12</td><td class="wed">13</td><td class="thu">14</td><td class="fri">15</td><td class="sat">16</td><td class="sun">17</td></tr>
<tr><td class="mon">18</td><td class="tue">19</td><td class="wed">20</td><td class="thu">21</td><td class="fri">22</td><td class="sat">23</td><td class="sun">24</td></tr>
<tr><td class="mon">25</td><td class="tue">26</td><td class="wed">27</td><td class="thu">28</td><td class="fri">29</td><td class="sat">30</td><td class="sun">31</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">November</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">December</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="fri">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr></table></body>
</html>
)rrr)	
)
))r)rrrrrrr
)rrr
rrrr)rrrrrrr)rrrrrrr)r r!r"r#r$r%r&)r
rrr
rrr)rrrrrrr)rrrrrrr)rr r!r"r#r$r%)r&r'r(rrrr)r#r$r%r&r'rr)rrrrrr
r)rr
rrrrr)rrrrrrr)rrrrrrr )r!r"r#r$r%r&r')r(rrrrrr)rr
rrr
rr)rrrrrrr)rrrrrrr)rrr r!r"r#r$)r%r&r'rrrr)r'r(rrrrr)rrr
rrr
r)rrrrrrr)rrrrrrr)rrrr r!r"r#)r$r%r&r'rrr)rrrrr
rr)r
rrrrrr)rrrrrrr)rrrrrr r!)r"r#r$r%r&r'r()r&r'rrrrr)r$r%r&r'r(rr)z>12/29/03 12/30/03 12/31/03 01/01/04 01/02/04 01/03/04 01/04/04z>01/05/04 01/06/04 01/07/04 01/08/04 01/09/04 01/10/04 01/11/04z>01/12/04 01/13/04 01/14/04 01/15/04 01/16/04 01/17/04 01/18/04z>01/19/04 01/20/04 01/21/04 01/22/04 01/23/04 01/24/04 01/25/04>01/26/04 01/27/04 01/28/04 01/29/04 01/30/04 01/31/04 02/01/04)r)z>02/02/04 02/03/04 02/04/04 02/05/04 02/06/04 02/07/04 02/08/04z>02/09/04 02/10/04 02/11/04 02/12/04 02/13/04 02/14/04 02/15/04z>02/16/04 02/17/04 02/18/04 02/19/04 02/20/04 02/21/04 02/22/04z>02/23/04 02/24/04 02/25/04 02/26/04 02/27/04 02/28/04 02/29/04)z>03/01/04 03/02/04 03/03/04 03/04/04 03/05/04 03/06/04 03/07/04z>03/08/04 03/09/04 03/10/04 03/11/04 03/12/04 03/13/04 03/14/04z>03/15/04 03/16/04 03/17/04 03/18/04 03/19/04 03/20/04 03/21/04z>03/22/04 03/23/04 03/24/04 03/25/04 03/26/04 03/27/04 03/28/04>03/29/04 03/30/04 03/31/04 04/01/04 04/02/04 04/03/04 04/04/04)r*z>04/05/04 04/06/04 04/07/04 04/08/04 04/09/04 04/10/04 04/11/04z>04/12/04 04/13/04 04/14/04 04/15/04 04/16/04 04/17/04 04/18/04z>04/19/04 04/20/04 04/21/04 04/22/04 04/23/04 04/24/04 04/25/04>04/26/04 04/27/04 04/28/04 04/29/04 04/30/04 05/01/04 05/02/04)r+z>05/03/04 05/04/04 05/05/04 05/06/04 05/07/04 05/08/04 05/09/04z>05/10/04 05/11/04 05/12/04 05/13/04 05/14/04 05/15/04 05/16/04z>05/17/04 05/18/04 05/19/04 05/20/04 05/21/04 05/22/04 05/23/04z>05/24/04 05/25/04 05/26/04 05/27/04 05/28/04 05/29/04 05/30/04>05/31/04 06/01/04 06/02/04 06/03/04 06/04/04 06/05/04 06/06/04)r,z>06/07/04 06/08/04 06/09/04 06/10/04 06/11/04 06/12/04 06/13/04z>06/14/04 06/15/04 06/16/04 06/17/04 06/18/04 06/19/04 06/20/04z>06/21/04 06/22/04 06/23/04 06/24/04 06/25/04 06/26/04 06/27/04>06/28/04 06/29/04 06/30/04 07/01/04 07/02/04 07/03/04 07/04/04)r-z>07/05/04 07/06/04 07/07/04 07/08/04 07/09/04 07/10/04 07/11/04z>07/12/04 07/13/04 07/14/04 07/15/04 07/16/04 07/17/04 07/18/04z>07/19/04 07/20/04 07/21/04 07/22/04 07/23/04 07/24/04 07/25/04>07/26/04 07/27/04 07/28/04 07/29/04 07/30/04 07/31/04 08/01/04)r.z>08/02/04 08/03/04 08/04/04 08/05/04 08/06/04 08/07/04 08/08/04z>08/09/04 08/10/04 08/11/04 08/12/04 08/13/04 08/14/04 08/15/04z>08/16/04 08/17/04 08/18/04 08/19/04 08/20/04 08/21/04 08/22/04z>08/23/04 08/24/04 08/25/04 08/26/04 08/27/04 08/28/04 08/29/04>08/30/04 08/31/04 09/01/04 09/02/04 09/03/04 09/04/04 09/05/04)r/z>09/06/04 09/07/04 09/08/04 09/09/04 09/10/04 09/11/04 09/12/04z>09/13/04 09/14/04 09/15/04 09/16/04 09/17/04 09/18/04 09/19/04z>09/20/04 09/21/04 09/22/04 09/23/04 09/24/04 09/25/04 09/26/04>09/27/04 09/28/04 09/29/04 09/30/04 10/01/04 10/02/04 10/03/04)r0z>10/04/04 10/05/04 10/06/04 10/07/04 10/08/04 10/09/04 10/10/04z>10/11/04 10/12/04 10/13/04 10/14/04 10/15/04 10/16/04 10/17/04z>10/18/04 10/19/04 10/20/04 10/21/04 10/22/04 10/23/04 10/24/04z>10/25/04 10/26/04 10/27/04 10/28/04 10/29/04 10/30/04 10/31/04)z>11/01/04 11/02/04 11/03/04 11/04/04 11/05/04 11/06/04 11/07/04z>11/08/04 11/09/04 11/10/04 11/11/04 11/12/04 11/13/04 11/14/04z>11/15/04 11/16/04 11/17/04 11/18/04 11/19/04 11/20/04 11/21/04z>11/22/04 11/23/04 11/24/04 11/25/04 11/26/04 11/27/04 11/28/04>11/29/04 11/30/04 12/01/04 12/02/04 12/03/04 12/04/04 12/05/04)r1z>12/06/04 12/07/04 12/08/04 12/09/04 12/10/04 12/11/04 12/12/04z>12/13/04 12/14/04 12/15/04 12/16/04 12/17/04 12/18/04 12/19/04z>12/20/04 12/21/04 12/22/04 12/23/04 12/24/04 12/25/04 12/26/04z>12/27/04 12/28/04 12/29/04 12/30/04 12/31/04 01/01/05 01/02/05czeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdS)OutputTestCasecd}g}|dD])}|r%t||s||*|S)NcV|o|SN)isspaceisdigit)cs F/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_calendar.pyneitherspacenordigitz?OutputTestCase.normalize_calendar.<locals>.neitherspacenordigitss!yy{{?6199;;6F)keepends)
splitlinesfilterappend)selfsr;lineslines     r:normalize_calendarz!OutputTestCase.normalize_calendarqsg	7	7	7LL%L00	#	#D
#F#7>>
#T"""r<c
tj}t}|pd|d<|d|}||t
jdi||dS)Nutf-8r	)r	)	calendarHTMLCalendardefault_formatcopyformatyearpageassertEqualresult_2004_htmlformatencode)rAreqrescalformat_outputs      r:check_htmlcalendar_encodingz*OutputTestCase.check_htmlcalendar_encoding}s#%% %%''!nW
##D3#77#..g..55c::	
	
	
	
	
r<cR||tjd|t||tjd|tdSNrHr)rOrErJresult_2004_text
result_0_textrAs r:test_outputzOutputTestCase.test_outputs##H$5d$;$;<<##$455	
	
	
	
##H$5a$8$899##M22	
	
	
	
	
r<c|tjdt|tjdt
dSrZ)rOrJTextCalendar
formatyearr[r\r]s r:test_output_textcalendarz'OutputTestCase.test_output_textcalendarsx!##..t44	
	
	
	
!##..q11	
	
	
	
	
r<c2|dddS)NrrXr]s r:'test_output_htmlcalendar_encoding_asciiz6OutputTestCase.test_output_htmlcalendar_encoding_ascii((':::::r<c2|dddS)NrGrdr]s r:&test_output_htmlcalendar_encoding_utf8z5OutputTestCase.test_output_htmlcalendar_encoding_utf8rfr<cT|dtjdSr6)rXsysgetdefaultencodingr]s r:)test_output_htmlcalendar_encoding_defaultz8OutputTestCase.test_output_htmlcalendar_encoding_defaults'((s/E/G/GHHHHHr<cd}||tjdtdS)Ncd|DS)Nc&g|]}d|DS)c&g|]}d|DS)cLg|]!}dd|D"S) c3K|]?}d|j|jt|jddV@dS)z{:02d}/{:02d}/{}N)rQrdaystrr.0ds  r:	<genexpr>ziOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>slNNFG 288 !AFBCC0@ B BNNNNNNr<)join)rxzs  r:
<listcomp>z_OutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>.<listcomp>sY((( !hhNNKLNNNNN(((r<rI)rxys  r:r}zTOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>s?444,-((%&(((444r<rI)rxxs  r:r}zIOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>sEBBB894412444BBBr<rI)rUs r:shrinkz5OutputTestCase.test_yeardatescalendar.<locals>.shrinks)BB=@BBB
Br<rH)rOrJCalendaryeardatescalendarresult_2004_dates)rArs  r:test_yeardatescalendarz%OutputTestCase.test_yeardatescalendars_	B	B	B	
F8$&&88>>??	
	
	
	
	
r<c|tjdtdSNrH)rOrJryeardayscalendarresult_2004_daysr]s r:test_yeardayscalendarz$OutputTestCase.test_yeardayscalendarsA0066	
	
	
	
	
r<cz|tjdddS)NrzMo Tu We Th Fr Sa SurOrJr`formatweekheaderr]s r:test_formatweekheader_shortz*OutputTestCase.test_formatweekheader_shortsA!##44Q77"	
	
	
	
	
r<cz|tjdddS)NrzE  Monday   Tuesday  Wednesday  Thursday   Friday   Saturday   Sunday rr]s r:test_formatweekheader_longz)OutputTestCase.test_formatweekheader_longsC!##44Q77
,	
	
	
	
	
r<c|tjddt|tjddt
dS)NrHr
rr)rOrJr`formatmonthresult_2004_01_textresult_0_02_textr]s r:test_formatmonthzOutputTestCase.test_formatmonths|!##//a88	
	
	
	
!##//155	
	
	
	
	
r<c|tjdddddS)NrHr
Twithyearz8<tr><th colspan="7" class="month">January 2004</th></tr>rOrJrKformatmonthnamer]s r:test_formatmonthname_with_yearz-OutputTestCase.test_formatmonthname_with_yearsH!##33D!d3KKF	
	
	
	
	
r<c|tjdddddS)NrHr
Frz3<tr><th colspan="7" class="month">January</th></tr>rr]s r:!test_formatmonthname_without_yearz0OutputTestCase.test_formatmonthname_without_yearsH!##33D!e3LLA	
	
	
	
	
r<ctj5}gd}tj|d||dddddS#1swxYwYdS)N))r
r)rr
)rr)r
r)rr
)rr)rrr
z 1  2  3  4  5  6  7)rcaptured_stdoutrJr`prweekrOgetvalue)rAoutweeks   r:test_prweekzOutputTestCase.test_prweeks

$
&
&	E#DDDD!##**4333S\\^^-CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	EAA55A9<A9ctj5}tjdd||tddddS#1swxYwYdS)NrHr
)rrrJr`prmonthrOrrrArs  r:test_prmonthzOutputTestCase.test_prmonths

$
&
&	B#!##++D!444S\\^^-@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BsAA66A:=A:ctj5}tjd||tddddS#1swxYwYdSr)rrrJr`pryearrOrr[rs  r:test_pryearzOutputTestCase.test_pryears

$
&
&	?#!##**4000S\\^^-=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?rctj5}tjgddd||dddddS#1swxYwYdS)N)123rr
)colwidthspacingz	1   2   3)rrrJrQrOrstriprs  r:test_formatzOutputTestCase.test_formats

$
&
&	B#OOOOaCCCCS\\^^1133[AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BrN)__name__
__module____qualname__rErXr^rbrerhrlrrrrrrrrrrrrIr<r:r3r3ps0











;;;;;;III




















EEEBBB
???
BBBBBr<r3cheZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdS)CalendarTestCasecF|tjdd|tjdd|tjdd|tjdddS)Nir
rii)rOrJisleapr]s r:test_isleapzCalendarTestCase.test_isleaps
	
..222..222..222..22222r<ct|ttjd|ttjd|ttjdtj}tjtj|tjtjtjtj|tjtjtj|dS)Nflabber)	assertRaises	TypeErrorrJsetfirstweekday
ValueErrorfirstweekdaySUNDAYrOMONDAY)rAorigs  r:test_setfirstweekdayz%CalendarTestCase.test_setfirstweekdays)X%=yIII*h&>CCC*h&>DDD$&& 111.00(/BBB 111.00(/BBB &&&&&r<c|tjd5tjdddddS#1swxYwYdS)N123{)assertRaisesRegexrJIllegalWeekdayErrorrr]s r:test_illegal_weekday_reportedz.CalendarTestCase.test_illegal_weekday_reporteds

#
#H$@%
H
H	*	*$S)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*sAA
Ac |ttjjd|ttjjd|tdtjDddS)Nircg|]}|SrIrIrws  r:r}z<CalendarTestCase.test_enumerate_weekdays.<locals>.<listcomp>	s;;;Aa;;;r<r)r
IndexErrorrJday_abbr__getitem__day_namerOlenr]s r:test_enumerate_weekdaysz(CalendarTestCase.test_enumerate_weekdaysst*h&7&CSIII*h&7&CRHHH;;):;;;<<a@@@@@r<c	dD]}tt|}|t|d|t|ddd|tt	|d||dddtt
|dS)N)rrrrgetattrrJrOrsetlistreversedrAattrvalues   r:	test_dayszCalendarTestCase.test_dayss*	A	ADHd++ESZZ+++Sqqq]]A...SU__a000U44R4[$x*?*?@@@@	A	Ar<c	dD]}tt|}|t|d|t|ddd||dd|tt	|d||dddtt
|dS)N)
month_name
month_abbrrrrrrs   r:test_monthszCalendarTestCase.test_monthss.	A	ADHd++ESZZ,,,Sqqq]]B///U1Xr***SU__b111U44R4[$x*?*?@@@@	A	Ar<ctjddd}	tjd}|dd}|ddd}n'#t
j$rtjdwxYw|	|t|	|t|t|d|
t|dtjd}|d}|dd}|	|t|	|ttjddd}|||dS)Nrrlocaler
$cannot set the system default locale)rJr`rLocaleTextCalendar
formatweekdayrErrorunittestSkipTestassertIsInstancervrOrassertGreaterEqualLocaleHTMLCalendar)rAold_octoberrU
local_weekdaylocal_monthnew_octobers      r:test_locale_calendarsz&CalendarTestCase.test_locale_calendars s+--==dBKK	L-R888C--a44M--dB;;KK|	L	L	L#$JKKK	L	
mS111k3///]++R000K 0 0"555)444))!,,
))$33mS111k3///+--==dBKKk22222sAA--$Bc	tjd}||ddd||ddd||ddd	||dd
d||ddd
||ddd||ddddS#tj$rt
jdwxYw)Nen_USrrr
MrMorMonrz Mon rz  Mon   rz	  Monday rz
  Monday  zcannot set the en_US locale)rJrrOrrrrr)rArUs  r:"test_locale_calendar_formatweekdayz3CalendarTestCase.test_locale_calendar_formatweekday7s^	C-W===CS..q!44c:::S..q!44d;;;S..q!44e<<<S..q!44g>>>S..q!44jAAAS..q!44kBBBS..q"55|DDDDD|	C	C	C#$ABBB	CsD;D??$E#cD	tjd}|ddd}n'#tj$rtjdwxYw|d|d|_|ddd}|d|dS)	Nrrrrrz
class="month"text-center monthclass="text-center month")	rJrrrrrrassertIncssclass_month_head)rArUrs   r:5test_locale_html_calendar_custom_css_class_month_namezFCalendarTestCase.test_locale_html_calendar_custom_css_class_month_nameHs	L-R888C--dB;;KK|	L	L	L#$JKKK	L	


o{333"5))$B77

1;?????s	,/$Ac@	tjd}|d}n'#tj$rtjdwxYw|d|gd|_|d}|d|dS)Nrrrrzclass="sun")mon2tue2wed2thu2fri2sat2sun2zclass="sun2")	rJrrrrrrrcssclasses_weekday_head)rArUrs   r:2test_locale_html_calendar_custom_css_class_weekdayzCCalendarTestCase.test_locale_html_calendar_custom_css_class_weekdayTs	L-R888C--a00MM|	L	L	L#$JKKK	L	


m]333&^&^&^#))!,,


nm44444s	*-$ActtjtjddS)Nr)rrJritermonthdays3datetimeMAXYEARr]s r:test_itermonthdays3z$CalendarTestCase.test_itermonthdays3`s2X

 
 
/
/0@"
E
EFFFFFr<ctjd}t|dd}||dd||dddS)	Nrrrrr)rrr
rr)rrr%r)rJrritermonthdays4rO)rArUdayss   r:test_itermonthdays4z$CalendarTestCase.test_itermonthdays4dsmQ///C&&tQ//00a/222b#344444r<c	tdD]d}tj|}dD]K\}}t|||}|t
|dLetjd}t|dd}||ttdd	dS)
Nr)r
r
)i'r)#*rrrrr
r&)rangerJrr
itermonthdaysrrrOrArrUr~mrs      r:test_itermonthdaysz#CalendarTestCase.test_itermonthdaysjs!!HH	3	3L#L11C,
3
31C--a3344

c$ii2222
3Q///C%%dA..//tE!RLL1122222r<c<tdD]}tj|}dD]r\}}t|||}||dd|||dd|dz
dzsdS)Nrrrr
r)rrJrritermonthdays2rOrs      r:test_itermonthdays2z$CalendarTestCase.test_itermonthdays2vs!!HH	F	FL#L11C,
F
F1C..q!4455  a\:::  b!|a/?1.DEEEE
F	F	Fr<c"ttd}tdD]b}tj|}t|}||d|d|z}|||cdS)Nr)rrrJriterweekdaysrO)rAweek0rrUrexpecteds      r:test_iterweekdaysz"CalendarTestCase.test_iterweekdayssU1XX!!HH	-	-L#L11C((**++D\]]+eM\M.BBHT8,,,,		-	-r<N)rrrrrrrrrrrrrrrr!r$r)rIr<r:rrs
333	'	'	'***AAA
AAA	A	A	A333.CCC"
@
@
@
5
5
5GGG555
3
3
3FFF-----r<rc eZdZdZdZdZdS)MonthCalendarTestCasechtj|_tj|jdSr6)rJroldfirstweekdayrr]s r:setUpzMonthCalendarTestCase.setUps-'466 !233333r<c8tj|jdSr6)rJrr-r]s r:tearDownzMonthCalendarTestCase.tearDowns !566666r<c	@tj||}|t|t|t	t|D];}|||td||D<dS)Nc3"K|]
}|dkVdS)rNrI)rxrus  r:rzz4MonthCalendarTestCase.check_weeks.<locals>.<genexpr>s&*F*F3!8*F*F*F*F*F*Fr<)rJ
monthcalendarrOrrsum)rArrweeksrUis      r:check_weeksz!MonthCalendarTestCase.check_weekss$T511S3u::...s5zz""	H	HAU1Xs*F*Fs1v*F*F*F'F'FGGGG	H	Hr<N)rrrr.r0r7rIr<r:r+r+sF444777HHHHHr<r+c.eZdZejZdZdZdZdS)MondayTestCasec|ddd|ddd|ddd|ddd	|d
dd|ddd
dS)Nrrrrrirrrrr
r
rrrrrrrrr
irrrrrrHr
rrrrr7r]s r:
test_februaryzMondayTestCase.test_februaryq,///	
q/222	
q/222	
q/222	
q/222	
q/22222r<c|ddd|ddd|ddd|ddd	|d
dddS)Nir
rrrrrirrrrrir
rrrrr
rrrrrirrrrrrDr]s r:
test_aprilzMondayTestCase.test_aprilq/222	
q/222	
q"4555	
q/222	
q/22222r<c|ddd|ddd|ddd|ddd	|d
dd|ddd
dS)Nirrrrrrr>rrrrr
ir
rrrrrr@r
rrrrrrrrrirrrrrr
rDr]s r:
test_decemberzMondayTestCase.test_decemberr?333	
r?333	
r#5666	
r?333	
r?333	
r#566666r<N)	rrrrJrrrErNrXrIr<r:r9r9H?L333&333 77777r<r9c.eZdZejZdZdZdZdS)SundayTestCasec|ddd|ddd|ddd|ddd	|d
dd|ddd
dS)Nirr<r;r=r?rHrArBirCrDr]s r:rEzSundayTestCase.test_februaryrFr<c|ddd|ddd|ddd|ddd	|d
dddS)Nr
rHi~rIirJr_rLiurMrDr]s r:rNzSundayTestCase.test_aprilrOr<c|ddd|ddd|ddd|ddd	|d
dd|ddd
dS)Ni rrQirRrarSirTirVrKrWrDr]s r:rXzSundayTestCase.test_decemberrYr<N)	rrrrJrrrErNrXrIr<r:r\r\rZr<r\ceZdZgdZdZdS)TimegmTestCase)
rrdii'ii@BiIi;=Ki
Lc|jD]>}tj|}||t	j|?dSr6)
TIMESTAMPStimegmtimerOrJtimegm)rAsecstuples   r:test_timegmzTimegmTestCase.test_timegm
sOO	;	;DK%%ET8?5#9#9::::	;	;r<N)rrrrgrmrIr<r:rdrd
s4777J;;;;;r<rdc8eZdZdZdZdZdZdZdZdZ	dS)	MonthRangeTestCasecX|tjddddS)NrHr
)rr(rOrJ
monthranger]s r:test_januaryzMonthRangeTestCase.test_january+,T!44f=====r<cX|tjddddS)NrHr)rr&rqr]s r:test_february_leapz%MonthRangeTestCase.test_february_leaprtr<cX|tjddddS)Nrr)rr%rqr]s r:test_february_nonleapz(MonthRangeTestCase.test_february_nonleaprtr<cX|tjddddS)NrHr)rr(rqr]s r:rXz MonthRangeTestCase.test_decembers+,T"55v>>>>>r<c|tj5tjddddddS#1swxYwYdSrZrrJIllegalMonthErrorrrr]s r:test_zeroth_monthz$MonthRangeTestCase.test_zeroth_month#s


x9
:
:	)	)a(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)AA
Ac|tj5tjddddddS#1swxYwYdS)NrHrr{r]s r:test_thirteenth_monthz(MonthRangeTestCase.test_thirteenth_month(s


x9
:
:	*	*b)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*r~c|tjd5tjddddddS#1swxYwYdS)N65rHA)rrJr|rrr]s r:test_illegal_month_reportedz.MonthRangeTestCase.test_illegal_month_reported-s

#
#H$>
E
E	*	*b)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*sAAAN)
rrrrsrvrxrXr}rrrIr<r:roros}>>>>>>>>>???)))
***
*****r<roc,eZdZdZdZdZdZdZdS)LeapdaysTestCasecX|tjddddS)NrrrOrJleapdaysr]s r:
test_no_rangezLeapdaysTestCase.test_no_range2+*455q99999r<cX|tjddddS)Nrirrr]s r:test_no_leapdaysz!LeapdaysTestCase.test_no_leapdays6rr<cX|tjddddS)Nrrrr]s r:test_no_leapdays_upper_boundaryz0LeapdaysTestCase.test_no_leapdays_upper_boundary:rr<cX|tjddddS)Nrir
rr]s r:test_one_leapday_lower_boundaryz0LeapdaysTestCase.test_one_leapday_lower_boundary>rr<cX|tjddddS)Nr^irrr]s r:test_several_leapyears_in_rangez0LeapdaysTestCase.test_several_leapyears_in_rangeBs+*455q99999r<N)rrrrrrrrrIr<r:rr1s_:::::::::::::::::r<rcf|dtjS)N
)replaceoslineseprR)rBs r:convrFs$99T2:&&--///r<cteZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdS)CommandLineTestCasec*tddg|RdS)N-mrJr
)r)rAargss  r:run_okzCommandLineTestCase.run_okJsj84888;;r<ctddg|R\}}}|d|||ddS)NrrJusage:r)rrrO)rArrcstdoutstderrs     r:
assertFailurez!CommandLineTestCase.assertFailureMsP24KdKKKFF

i(((Qr<c|d}|d||d||d|dS)Nz-hrscalendar.pys--help)rrrArs  r:	test_helpzCommandLineTestCase.test_helpRsUT""

i(((

nf---

i(((((r<c|d|d|dd|dddddS)Nz-zspam2004-thtmlr)rr]s r:test_illegal_argumentsz*CommandLineTestCase.test_illegal_argumentsXs`4   6"""66***455555r<c"|}tjj}|d|z||d||d|dS)Nz %ssJanuarysMo Tu We Th Fr Sa SurrnowrrrRrArrs   r:test_output_current_yearz,CommandLineTestCase.test_output_current_year^sy $$&&+

ut|++--v666

j&)))

-v66666r<c|d}||ttdS)Nr)rrOrr[rs  r:test_output_yearz$CommandLineTestCase.test_output_yeares8V$$&6!7!788888r<c|dd}||ttdS)Nrr)rrOrrrs  r:test_output_monthz%CommandLineTestCase.test_output_monthis:VS))&9!:!:;;;;;r<c|d|d|ddd}||tddS)Nz-e
--encodingz	utf-16-ler)rrrOr[rRrs  r:test_option_encodingz(CommandLineTestCase.test_option_encodingmsj4   <(((\;??!1!8!8!E!EFFFFFr<c|d|d|ddtj\}}|pd}|pd}	tjtj}	tjtj||ftjtj|n$#tjtj|wxYwn1#tjtf$r|dYnwxYw|d|d|d}|	d
||dS)	Nz-Lz--localeenCzUTF-8rrr)rr	getlocaleLC_TIME	setlocalerrskipTestrrrR)rAlangenc	oldlocalers     r:test_option_localez&CommandLineTestCase.test_option_localessN4   :&&&4&&&$&&	c{snW	B(88I
< $=== ;;;; ;;;;;j)	B	B	BMM@AAAAA	BZ|S&II

fmmC((&11111s* C%?!C  C%!C!!C%%+DDc|d|d|dd|ddd}|d|dS)Nz-wz--widthrrrsMon Tue Wed Thu Fri Sat Sunrrrrs  r:test_option_widthz%CommandLineTestCase.test_option_widthsp4   9%%%4(((YV44

4f=====r<c|d|d|dd|ddd}|td|dS)Nz-lz--linesrrrzDecember

Mo Tu Werrrrrs  r:test_option_linesz%CommandLineTestCase.test_option_linessx4   9%%%4(((YV44

d122F;;;;;r<c|d|d|dd|ddd}|d|dS)Nz-sz	--spacingr8rsSu        Morrs  r:test_option_spacingz'CommandLineTestCase.test_option_spacingso4   ;'''4((([#v66

ov.....r<c|d|d|dd|ddd}|td|dS)Nrz--monthrz--monthsrrz
Mo Tu We Th Fr Sa Su
rrs  r:test_option_monthsz&CommandLineTestCase.test_option_monthssx4   9%%%4(((Zf55

d566?????r<c|d|d|dd|ddd}||tt|ddd}||ddd|d	|dS)
Nr--typertextrrrs<?xml s <title>Calendar for 2004</title>)rrrOrr[rrs  r:test_option_typez$CommandLineTestCase.test_option_types4   8$$$4(((Xvv66&6!7!7888Xvv66Y///

96BBBBBr<c|dd}tjj}|d|z||d|dS)Nrrz<title>Calendar for %s</title>s3<tr><th colspan="7" class="month">January</th></tr>rrs   r:test_html_output_current_yearz1CommandLineTestCase.test_html_output_current_yearsXv.. $$&&+

7$>FFHH			

L					r<c|ddddd}||tjditddS)NrrrrrrI)rrOrPrQrLrRrs  r:test_html_output_year_encodingz2CommandLineTestCase.test_html_output_year_encodingsfT6<&II)0BB>BBII'RR	T	T	T	T	Tr<c|ddd|ddd|ddddd}|d|dS)Nrrz-cz--cssz
custom.cssrs;<link rel="stylesheet" type="text/css" href="custom.css" />rrs  r:test_html_output_year_cssz-CommandLineTestCase.test_html_output_year_cssss4...4111T67L&II

./5	7	7	7	7	7r<N)rrrrrrrrrrrrrrrrrrrrrIr<r:rrIs<<<   
)))666777999<<<GGG222&>>><<<///@@@CCCTTT
77777r<rceZdZdZdS)MiscTestCasecFhd}tj|t|dS)N>r9mainrEPOCHmdaysrQrJanuaryFebruarymonthlen	nextmonth	prevmonthformatstringdifferent_locale)not_exported)rcheck__all__rJ)rArs  r:test__all__zMiscTestCase.test__all__s6JJJ	T8,GGGGGGr<N)rrrrrIr<r:rrs(HHHHHr<rc8eZdZdZdZdZdZdZdZdZ	dS)	TestSubClassingCasecTGddtj}||_dS)NcReZdZdejjDZgdZdZdZdZ	dZ
dS)0TestSubClassingCase.setUp.<locals>.CustomHTMLCalcg|]}|dzS)z text-nowraprI)rxstyles  r:r}z;TestSubClassingCase.setUp.<locals>.CustomHTMLCal.<listcomp>s)<<<U%.0<<<r<)redbluegreenlilacyelloworangepinkztext-center month-headrztext-italic zlead N)rrrrJrK
cssclassesr
rcssclass_month
cssclass_yearcssclass_year_headrIr<r:
CustomHTMLCalrs_<<"/:<<<J'C'C'C#":0N*M!(r<r)rJrKrU)rArs  r:r.zTestSubClassingCase.setUpsB	)	)	)	)	)H1	)	)	)!=??r<cd|d|jdddS)Nzclass="text-center month-head"rUr)rrUrr]s r:test_formatmonthnamez(TestSubClassingCase.test_formatmonthnames:

6h..tQ77	9	9	9	9	9r<cd|d|jdddS)NrrUr)rrUrr]s r:rz$TestSubClassingCase.test_formatmonths:

1h**433	5	5	5	5	5r<c|jdd}|d|j|ddS)NrUrzclass="wed text-nowrap"r)rUmonthdays2calendarr
formatweek)rAr5s  r:test_formatweekz#TestSubClassingCase.test_formatweeksH++D!44

/1D1DU1X1N1NOOOOOr<c|j}|jjD]}|d|z|dS)Nz<th class="%s">)rUrr
r)rAheadercolors   r:test_formatweek_headz(TestSubClassingCase.test_formatweek_headsP**,,X5	=	=EMM+e3V<<<<	=	=r<c||d|jjz|jddS)Nz=<table border="0" cellpadding="0" cellspacing="0" class="%s">rU)rrUrrar]s r:test_format_yearz$TestSubClassingCase.test_format_yearsJ


L
X
#$&*h&9&9$&?&?	A	A	A	A	Ar<c|dd|jjdfz|jddS)Nz,<tr><th colspan="%d" class="%s">%s</th></tr>rrU)rrUrrar]s r:test_format_year_headz)TestSubClassingCase.test_format_year_headsT

D
tx*DH223783F3Ft3L3L	N	N	N	N	Nr<N)
rrrr.rrrr	rr
rIr<r:rrs###999555PPP===
AAA
NNNNNr<r__main__)$rJrtestrtest.support.script_helperrrrhrrjrrrr\rr[dictrLrPrrTestCaser3rr+r9r\rdrorrrrrrrrIr<r:<module>rsNNNNNNNN







				%
N$N67CCC{|""""""!!!	#
!!!""""""	$
   """"""	 !""""""   	"
"""""""""""""""	 ! """"""!!!	#
!!!""""""""""""	!" """""""""	$
   """"""	
""""""   	"#a?DIII
III
IIIJIII
IIIIIIJ III
IIIIIIJ III
III
IIIJ_=KBzBzBzBzBzBX&zBzBzBxY-Y-Y-Y-Y-x(Y-Y-Y-xHHHHHH-HHH7777777777*777777t7777777777*777777r;;;;;X&;;;*********>:::::x(:::*000u7u7u7u7u7(+u7u7u7pHHHHH8$HHH(N(N(N(N(N(+(N(N(NTzHMOOOOOr<