From: Frederik Vanrenterghem Date: Sat, 20 Apr 2013 08:53:24 +0000 (+0800) Subject: Baseline X-Git-Url: http://git.vanrenterghem.biz/www.vanrenterghem.biz.git/commitdiff_plain/20fca5079be90497d7c872cd5d62c7ea34cc2d05?ds=sidebyside Baseline --- 20fca5079be90497d7c872cd5d62c7ea34cc2d05 diff --git a/About/2012_07_GPG_Key_Transition.txt b/About/2012_07_GPG_Key_Transition.txt new file mode 100644 index 0000000..911a24d --- /dev/null +++ b/About/2012_07_GPG_Key_Transition.txt @@ -0,0 +1,56 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +- -----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +Mon, 9 Jul 2012 + +Please note I have today set up a new GnuPG key. + +The old key was: + +pub 1024D/8925BDE0 2000-12-06 + Key fingerprint = 966B 0E4B 25C1 CC04 E2CB 8D4C 117F 6469 8925 BDE0 + +and the new key is: + +pub 4096R/54E86F1F 2012-07-09 + Key fingerprint = EA89 DD8B 41D4 C9ED E024 37E1 28A8 4156 54E8 6F1F + +Best regards, +Frederik Vanrenterghem +- -----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.12 (GNU/Linux) + +iQIcBAEBCAAGBQJP+0BIAAoJECioQVZU6G8fEw8P/AjgaZs6VRveRaVkxM1Fi8aK +f1uVx3lA3t5eZRmGy7r3/lTSyhLgqLqm305zg2DhC/FWVyXmCgZpn8m5ezeO5RPs +37EvVgcFJBD+b3yQUH1LJCbe47TgM3RqnMtvnLmPrDrPwtbl81XhCx51iEidyEEd +DQHOjFrIshCs7iGvi+1E/tEH0LSYdCr6q3j1g42aE5VWS0r0iXFfID3jkz7VCIXw +6DxX7tuCExt+OqhcXlDQhOUy9Bdtk0+zbzQ2vEGbyO2J21UB0vOLS/QpUJHxu/jO +E4Hg9TS7+4BPxOSFHf65b6NEHBat8FnB0uWj3hI0N5l0hlCBUk+uK4LeUWSH1IjQ +taaVSJDR9rK64v+MFNTBf1ROo7rnu4t7s+Acbhktjr8hxC4AYmolI3mit00rpmCi +gJxJDy7e5/H8vcB5gTB9PoE3kJqTCQj/eqPOIfEI/i7rw8Z/X4SE2GcOZ3Phr+RP +KFOeHDvjcfWtJffNNWZCQH2f+yOOuw1bQk1AaMudYRv0Azz8o87prBmgophJPGj+ +BCyNgdu8pZpQHpSdRTpfKTPSfaFG0nmkmFskgqi0wWkIhzDAA4fC4AU58X41gbaj +MO+nAOUH2+UfAi7apJ1meNqIop0RW1RR6pgW+tZrf5qiOWgahjA95QA50kp4Y4bY +E/KHiMNJIpzSaZKAmNog +=AoGB +- -----END PGP SIGNATURE----- +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.12 (GNU/Linux) + +iQIcBAEBCAAGBQJP+0BiAAoJEIWmntICZaEh7LEP/i6rxaYOUXHzOYm16cFkK3lx +Z8jK0BETC+Rd4hmi4k51L2OhdSQLzW0kIhu/LOnHuZVulR4NHQgBuno/cdQH+YdN +5ZL0bBKTpexJx0mIZORLXGkat5cmvDnrybbclLbEp+ZTvcUKkeR0WpT5btGHdy9v +eE4mW1UzE3+jmpwzoHylfuMP76uyGAQ9DBes81/cFu2IoWO/nYEmddAA7n0eQOPW +4jvntGcDkmdQ5sEBXMa8wboig7ixwp7oMOGfUCpJAvyp7X+BeK47j2vUoy47fQ4G +qe6VCN15vYmSsDxtiTY0a3MPbNL3HEq5CwUZjgZeuHn+j3J0Zn2Y/Hcq+HlnAo9W +j8WauIaNys71APw9duroLbpB32i8BWOhoaPRsOPPeOLHq7PjzXEu4YVqX4IfxMU9 +g7zPWNR52rJvKu90E1apPEkk7/pZhV1jXG38Bvi4fU7EQ8C6OwnXTm8B+ndVAxp5 +87eE9Vy3kJzWr9TZRB2K1ujRndDE7nwZqSqJDR6MZMeVVa+Cmwd1rQ+7YBxCI1uS +PxxRiIK0taMLxLGBCue5P3KfLvh5jypL32D3gBLWsyOXNZiU3AST9SpR02UpgTBN +uBq7KrnyUkqBjv36QQZTyw7iZz5haHTU49LSL46wK7q43w3CKW3SvnSYr9OiDQi1 +jJI2G958nxz21plHBstD +=a3Wq +-----END PGP SIGNATURE----- diff --git a/About/index.shtml b/About/index.shtml new file mode 100644 index 0000000..e6ec097 --- /dev/null +++ b/About/index.shtml @@ -0,0 +1,67 @@ + + + + + + +http://vanrenterghem.biz/ - About me + + + + + +

About me

+

+Name: Frederik Vanrenterghem
+Born: Oct 12, 1976
+Email: webmaster@vanrenterghem.biz
+GPG Key: 54E86F1F
+GPG Key fingerprint: EA89 DD8B 41D4 C9ED E024 37E1 28A8 4156 54E8 6F1F
+
+ +Previous GPG Key: 8925BDE0
+Previous GPG Key fingerprint: 966B 0E4B 25C1 CC04 E2CB 8D4C 117F 6469 8925 BDE0
+Transition document
+
+ +
+
+ + +
www.flickr.com + + + + +
+ + + +
fvanrenterghem's itemsGo to fvanrenterghem's photostream
+
+
+ + +

+ + + diff --git a/About/index.shtml~ b/About/index.shtml~ new file mode 100644 index 0000000..2eb89c0 --- /dev/null +++ b/About/index.shtml~ @@ -0,0 +1,25 @@ + + + + + + +http://vanrenterghem.biz/ - About me + + + + + +

About me

+

+Name: Frederik Vanrenterghem
+Born: Oct 12, 1976
+Email: webmaster@vanrenterghem.biz
+GPG Key: 8925BDE0
+GPG Key fingerprint: 966B 0E4B 25C1 CC04 E2CB 8D4C 117F 6469 8925 BDE0 +

+ + + diff --git a/DumpingGround/20071229_1300_wave_height.png b/DumpingGround/20071229_1300_wave_height.png new file mode 100644 index 0000000..9a2c251 Binary files /dev/null and b/DumpingGround/20071229_1300_wave_height.png differ diff --git a/DumpingGround/20071230_0700_wave_height.png b/DumpingGround/20071230_0700_wave_height.png new file mode 100644 index 0000000..fd71142 Binary files /dev/null and b/DumpingGround/20071230_0700_wave_height.png differ diff --git a/DumpingGround/powers.shtml b/DumpingGround/powers.shtml new file mode 100644 index 0000000..8232f31 --- /dev/null +++ b/DumpingGround/powers.shtml @@ -0,0 +1,17 @@ + + + + + + +Frederik Vanrenterghem's homepage - http://www.vanrenterghem.biz/ + + + +

1. Never outshine the master

+

Always make those above you feel comfortably superior. In your desire to please or impress them, do not go too far in displaying your talents or you might accomplish the opposite - inspire fear and insecurity. Make your masters appear more brilliant than they are and you will attain the heights of power.

+

2. Never put too much trust in friends, learn how to use enemies

+

Be wary of friends - they will betray you more quickly, for they are easily aroused to envy. They also become spoiled and tyrannical. But hire a former enemy and he will be more loyal than a friend, because he has more to prove. In fact, you have more to fear from friends than from enemies. If you have no enemies, find a way to make them.

+

3. Conceal your intentions

+

Keep people off-balance and in the dark by never revealing the purpose behind your actions. If they have no clue what you are up to, they cannot prepare a defense. Guide them far enough down the wrong path, envelop them in enough smoke, and by the time they realize your intentions, it will be too late.

+ diff --git a/JossWhedonandTelevisionCreativity.shtml b/JossWhedonandTelevisionCreativity.shtml new file mode 100644 index 0000000..a05f624 --- /dev/null +++ b/JossWhedonandTelevisionCreativity.shtml @@ -0,0 +1,417 @@ + + + + + + + http://frederik.gotdns.org:1976 Joss Whedon and Television Creativity + + + + +

A Religion in Narrative?


Joss Whedon and Television Creativity

+ +David Lavery
+ +Middle Tennessee State University
+ +Paper given at the Blood, Text, and Fears Conference, University of East Anglia, Norwich, England, October 2002
+
+I'm a very hard-line, angry atheist. . . . Yet I am fascinated by the concept of devotion.
+Joss Whedon
+
+ + +

+At the end of the first episode of the new season of Buffy the Vampire Slayer, now +beginning its seventh, and possibly last, season, an episode written by series' creator Joss Whedon, +all the Big Bads from the first six seasons reappear. Warren morphs into Glory +into Adam into Mayor Wilkins into Drusilla and finally into The Master, each picking up in turn, +an oration delivered to the newly ensoulled, newly returned to Sunnydale, mentally disturbed Spike. +

+ +

+Play Clip +

+ +

+SPIKE: The thing is . . . I had a speech. I learned it all. Oh, God. She won't understand, she won't understand. +
+WARREN: Of course she won't understand, Sparky. I'm beyond her understanding. She's a girl. Sugar and spice and everything...useless unless you're baking. I'm more than that. More than flesh . . . +
+GLORY: . . . more than blood. I'm . . . you know, I honestly don't think there's a human word fabulous enough for me. Oh, my name will be on everyone's lips, assuming their lips haven't been torn off. But not just yet. That's alright, though . . . +
+ADAM: . . . I can be patient. Everything is well within parameters. She's exactly where I want her to be. And so are you, Number 17. You're right where you belong . . . +
+THE MAYOR: . . . So what'd you think? You'd get your soul back and everything'd be Jim Dandy? Soul's slipperier than a greased weasel. Why do you think I sold mine? (laughs) Well, you probably thought that you'd be your own man, and I respect that, but . . . +
+DRUSILLA: . . . you never will. You'll always be mine. You'll always be in the dark with me, singing our little songs. You like our little songs, don't you? You've always liked them, right from the beginning. And that's where we're going . . . +
+THE MASTER: . . . right back to the beginning. Not the Bang . . . not the Word . . . the true beginning. The next few months are going to be quite a ride. And I think we're all going to learn something about ourselves in the process. You'll learn you're a pathetic schmuck, if it hasn't sunk in already. Look at you. Trying to do what's right, just like her. You still don't get it. It's not about right, not about wrong . . . +
+BUFFY: . . . it's about power. +

+

+"Back to the beginning." "In our end is our beginning," as we know from Eliot, and +if "the last of earth left to discover is that which was the beginning," as "Little Gidding" tells us, then it +shouldn't surprise us that Whedon might seek there the narrative secret of his creation as it begins +its possible end. Nor should it surprise us that the morphing finally reveals not a Big Bad but +Buffy herself. For is it not Sarah Michelle Gellar's possible departure from Buffy that inspired +all this talk of beginnings? (That the show just might go on without either its star or creator is both +"the beauty and horror of it" [Longworth 218].) And was it not concerning Gellar's character +that we heard (spoken by Tara, ventriloquized by the First Slayer) the admonition, "You think you +know . . . what's to come . . . what you are. You haven't even begun," +Janus-words which this critic has always taken to be a meta-commentary-about the series itself, about +its narrative potential as much as they are about its eponymous hero. "It's about power," she +announces to Spike. Though we will no doubt need to follow the trajectory of Season 7's +arc to its end before we know for certain what the "it" refers to, we have already met the "power." +"You could never hope to know the source of our power," Über-Buffy scolds Adam before ripping out +his uranium power core in Season Four's penultimate "Primeval." Adam might not know, but we +have glimpsed its essence: Buffy's power source is narrative. +

+

+ +Emily Nussbaum reports in a recent profile of Joss Whedon in the The New York Times that she +witnessed "a dewy young woman" who "leaned forward and gripped [Whedon's] hand between hers, +pulling him in for enforced eye contact: 'I just want you to know - we trust you. We know you know what you're +doing. We know it will be great'." Asked in an interview about such fan idolization of his series +and himself, Whedon modestly deflects the question, insisting that such adulation is not really personal. +

+

+ +It's about the show, and I feel the same way about it. I get the same way. It's not like being a rock star. +It doesn't feel like they're reacting to me. It's really sweet when people react like that, +and I love the praise, but to me, what they're getting emotional about is the show. +And that's the best feeling in the world. There's nothing creepy about it. I feel like there's a religion +in narrative, and I feel the same way they do. I feel like we're both paying homage to something else; +they're not paying homage to me. (Onion AV Club Interview; [author's] italics) + +

+

+"They" may not be but I am - continuing a process I began in the Afterword to Fighting the Forces, +a brief essay I called "The Genius of Joss Whedon" and which I hope to continue in a +book comparing and contrasting the creative processes of thirty-something Whedon and fifty-something +David Chase, the television lifer who created The Sopranos. All I can offer here +today is a preliminary intelligence report on the avatar of this narrative religion. +As John Briggs and Jonathan Gray have just admirably demonstrated, it is wise, after all, +before reality and myth begin to blur, to establish whatever truth we can about the founder of a new faith. +

+ +

+Of course such attention to the creator of a television series was, until recently, +extremely rare. Since television arose in a time in which the "death of the author" +was proclaimed by such important intellectual figures as Roland Barthes and Michel Foucault, and even +the "death of the auteur," that supposed movie creator - first promulgated by French cineastes +like François Truffaut and American critics like Andrew Sarris - capable of giving individual, +even autobiographical, shape and substance to the highly collaborative process of cinematic creation, +was likewise proclaimed, serious consideration of authorship in the often anonymous medium of television +has been suspect from the beginning. +

+

+But literary authors, oblivious to their extinction, continue to publish, cash in royalty checks +(as William Gass once quipped), and appear on talk shows, movie directors continue to attract a +good deal of attention, and now even television auteurs have become prominent in the way +we think and write about the medium. The major figures at century's end - Steven Bochco +(L.A. Law, Hill Street Blues, NYPD Blue), Joshua Brand and John Falsey (St. Elsewhere, Northern Exposure) - +began to yield prominence to emerging new talents. Indeed, at the beginning of a new millennium +we seem to be witnessing in the US the emergence of a number of significant, +and sometimes prolific, television auteurs: David E. Kelley (Picket Fences, The Practice, +Ally McBeal, Boston Public), J. J. Abrams (Felicity, Alias), Aaron Sorkin (Sports Night, West Wing), +David Chase (The Sopranos), and Joss Whedon, spoken of, in a recent Entertainment +Weekly piece, as the next new Bochco (Jensen). + + +

+

+We know quite a lot about Whedon's influences. +A graduate of Wesleyan University with a degree in film studies, Whedon, we know, +loves Dickens. We know that he is the "world's biggest Sondheim fan" (and +once dreamed, long before authoring the fabulous "Once More with Feeling," +of creating a musical based on the Oliver North hearings). We know that +Edward Gorey, Marvel Comics, especially early Spiderman and John +Byrne-era X-Men, Frank Miller and Alan Moore are all major inspirations. +That he greatly admires Steven Soderberg and Ang Lee and the Wachowski brothers +(he speaks of wishing to eat their brains in order to acquire their genius). +That he has watched admiringly The Simpsons, Twin Peaks, West Wing, +The Sopranos, Party of Five ("a brilliant show," according to Whedon, +which often "made me cry uncontrollably," but "suffered ultimately from a +lack of rocket launchers"), and My So-Called Life (he has called Buffy +a genetic splicing of it and The X-Files, and in a satellite seminar +on "Writing for Teens on Television" Whedon bows down, literally, before My +So-Called's creator Winnie Holzman). But we know, too, that he was a +"PBS kid," "into the highbrow British stuff that my mother [Lee Stearns] +watched," who wasn't really raised on American television (Longworth +207-208). +

+

+We know he loves movies- that in his college days he'd "go out and see three classic films, +stagger home at 2 a.m. and then watch whatever was on HBO" (Nussbaum), and, thanks to his commentary on +the Buffy DVDs, where he mentions Hitchcock, DePalma, Lynch, Leone, Abel Ferrara, Luc Besson, +Sam Peckinpah, Tim Burton, Marcel Ophuls, Woody Allen, we know something about the directors whose +work he remembers (not always favorably) and sometimes emulates. +

+

+We know that he counts Wesleyan University scholar Richard Slotkin, author of books like +Gunfighter Nation, Fatal Environment, and Regeneration Through Violence which examine the +deep cultural roots of American "mythogenesis," "the creation, 'in both maker and audience, +[of tales that are] mystical and religious, drawing heavily on the unconscious and the +deepest levels of the psyche, defining relationships between human and divine things, +between temporalities and ultimates" [Slotkin, quoted by Tucker] and that he once greatly admired Sartre's +Nausea. We can be fairly certain that a man who is convinced that +

+

+ultimately, stories come from violence, they come from sex. They come from death. +They come from the dark places that everybody has to go to. . . . If you raise a kid to think +everything is sunshine and flowers, they're going to get into the real world and die. . . . +That's the reason fairy tales are so creepy, because we need to encapsulate these things, +to inoculate ourselves against them, so that when we're confronted by the genuine horror that +is day-to-day life we don't go insane [Longworth 213) . . . +

+

+has read Bettelheim's The Uses of Enchantment. We can assume that someone who refers +routinely to the "baroque" stage in the evolution of genre has absorbed Thomas Schatz' Hollywood Genres: +Formulas, Filmmaking, and the Studio System and who speaks of understanding "the motivation +of the man with the murderous gaze, . . . of the terrible objectifying male" (Longworth 215) has mastered +the ideas of Laura Mulvey. The great directors of the 1970s and 80s often were film school +grads. Tarantino established the 1990's video store auteur tradition. Though himself +a former video store employee and cognizant of the new auteurhood trajectory - he has quipped that +"Actors wait tables, directors work at video stores" (Onion AV Club Interview) - Whedon may well +represent yet a new career path: the film studies auteur, just as likely to be familiar +with critical schools and narratological theory as with lenses and filters and a +spect ratios. Perhaps this is why those of us assembled here feel such an attraction to his work. +

+

+We know that Buffy the Vampire Slayer was a recombinant hybrid of his obsessions: +"We wanted to make that sort of short-attention-span, The Simpsons, cull-from-every +genre all the time thing. You know, if we take this moment from Nosferatu, and this moment +from Pretty in Pink, that'll make this possible. A little Jane Eyre in there, and then a +little Lethal Weapon 4. Not 3, but 4. And I think this'll work" (Onion AV Club Interview). +

+

+We know that, in addition to being executive producer extraordinaire, Whedon +has written/co-written twenty+ episodes of Buffy and directed nineteen, in addition to +several episodes of Angel and of his new series Firefly as well. Though by his own +admission he knew very little about directing and virtually nothing about creating a television +show prior to helming BtVS, Whedon, we know, has turned out some of the series' - and contemporary television's - +most memorable, and most innovative, episodes, including "Innocence", in which Angel loses +his soul and becomes the evil boyfriend from Hell Angelus after having sex with Buffy; "Becoming" (I and II), +which was the first time the series shot on a soundstage and used historical settings +and costumes; "Hush," a marvelous experiment, which broke him, he admits, out of a +devolution into a "sort of a hack TV director" (Longworth 220), in which almost half the episode +transpires in silence after fairy tale monsters The Gentleman steal the voices of Sunnydale; "Restless," +an all-dream episode, "basically a forty-minute poem" (as Whedon describes it [Longworth 220]), which I have +described as a kind of television 8 1/2 and Rhonda Wilcox has compared to Eliot's "The Wasteland"; +"The Body," an emotionally-wrenching depiction of the aftermath of Buffy's mother's death; and +"Once More with Feeling," an ingenious all-singing, all-dancing musical, the fulfillment +of a long-time Whedon ambition. Whedon written and/or directed episodes exhibit stylistic and +verbal signatures too complex to explore here. +

+

+And we know that it is not just his own episodes that show his influence. "I have control over all the shows," +Whedon explained to ET Online two years ago. +

+

+I'm responsible for all the shows. That means that I break the stories. I often come up with the +ideas and I certainly break the stories with the writers so that we all know what's going to happen. +Then once the writers are done, I rewrite every script. . . . Then I oversee production and edit +every show, work with the composers and sound mixers. Inevitably every single show has my name on +it somewhere and it is my responsibility to make it good. . . . Every week that show is on, I'm standing +in the back row, biting my nails, hoping people like it, so I feel a great responsibility. +The good thing is that I'm surrounded by people who are much smarter than I am. So gradually +I have been able to let certain things take care of themselves, because my crew, my writers, +my post-production crew, everybody is so competent, that I don't have to run around quite as much as I used to. +

+

+Now again masterminding not only Buffy (due to Marti Noxon's maternity leave) and Angel +(due to David Greenwalt's departure for ABC), not to mention his own new series, the sci-fi/western Firefly, +the new spinoff Ripper (for British television), and a still-in-production Buffy +cartoon series - all as part of his plans for "total world domination" (Adalian) by his Mutant Enemy +production company, it would seem that Whedon's dream of peace and quiet will not be coming true any time soon. +

+

+We know, too, that, though now deeply entangled in television, Whedon, like Sopranos creator +Chase, really wants to make movies. He admits that his original dream after college had long been +to "head toward the movie world" (Interview with David Bianculli). Though it was in the movies +that he made his first breakthrough, when Fran Rubel Kuzui butchered his screenplay of BtVS in +1992, though he has contributed, often as a highly paid - and sometimes uncredited - "script doctor" to +a variety of films both before (Speed [1994], Toy Story [1995], Waterworld [1995], +Twister [1996]) and after (Alien Resurrection [1997], X-Men [2000], Titan A.E. [2000]), +Buffy the Vampire Slayer the television series came on the air in 1997; though Anthony Stewart +Head has remarked that "It's only a matter of time before we lose him to the cinema" (BBC Interview), +Whedon himself confesses that "I have always felt my movie career was an abysmal failure" (quoted in Tracy 44). +According to The Internet Movie Data Base, Whedon once directed an episode of the television +sitcom Boy Meets World. Though Whedon denies having done so, he does insist that he is far +prouder of the Boy Meets World episode he never directed than he is of his work on Alien: Resurrection. +

+

+In the medium in which he has experienced his greatest success, we know that Whedon can claim a +unique genealogy. A third generation contributor to television, perhaps the only one in existence - both Whedon's +grandfather and father wrote for TV[1] - he speaks warmly of an important parental admonition: "The best +advice [my father] every gave me . . . was, 'If you have a good story, you don't need jokes. If you don't +have a good story, no amount of jokes can save you.' I'm not really that interested in jokes. I like +the more dramatic stuff. But that tenet of 'the story is god' is the most important thing I could have +learned" (Onion AV Club interview). Whedon himself, we know, would contribute to both Roseanne and +Parenthood prior to the making of the original BtVS film. +

+

+But he dreamed of directing, as he confessed to The Onion: +

+

+I'm sure a lot writers want to direct because they're bitter, which is not a reason to direct. +I want to speak visually, and writing is just a way of communicating visually. That's what it's all about. +But nobody would even consider me to direct. So I said, "I'll create a television show, and I'll +use it as a film school, and I'll teach myself to direct on TV." +

+

+In a recent article in Slayage, I have summarized and commented upon Whedon's DVD revelations +about his education as a maker of television, and I will only summarize them briefly here. +

+

+The "dog and pony show" of series television production apparently provided a rapid education +for Joss Whedon, who had no prior hands-on experience with making TV. As he acknowledges at the outset +of his commentary on "Innocence," every aspiring television auteur thinks of his work, however, +minor it may be, as equal in weight and importance to Citizen Kane ("a black and white film," +Whedon reminds us, should we not know, "about a bald guy"). In reality, the strict parameters +imposed on creative inclinations by small budget and time constraints force novice and +veteran alike to find less expensive and more expeditious paths to quality. "Freedom," Robert Frost once +observed, "is swinging easy in harness." Though he began as "Mister-I-don't-know-how-to-make-a-television-show," +Joss Whedon has mastered the TV harness as well as any of his contemporaries, and he +concedes that what he really "love[s] about my show is the amount of cheese that we can sort of get away +with, the amount of how little money we have and how we make it look a little more epic than it is." "I've +been described as Ed Wood," Whedon admits, "and I've been assured that this is a compliment, +because of the amount of work we have to get done in so short a time. Especially with Buffy, which +is a very hard show to make, because we have the action and the special effects, and we +have to be very careful about the performances, making it all work. So you get that +overload thing" (Onion AV Club Interview). +

+

+The aspiring filmmaker continues to chafe at the bit, however. In an interview in The Watchers's Guide, +Vol. 2, for example, he confesses that "I'm getting to the point now where I'm like, 'Okay, I've told a +lot of stories. I've churned it out.' I just feel like I want to step back and do something where I can't +use the excuse of 'I only had a week'" (323). But Whedon nevertheless thinks of his experience in +television as highly educational and recommends it: +

+ +

+I think everybody who makes movies should be forced to do television. . . . +Because you have to finish. You have to get it done, and there are a lot of decisions made +just for the sake of making decisions. You do something because it's efficient and because it gets the +story told and it connects to the audience. (Interview in The Watcher's Guide, Vol. 2: 323) +

+

+We possess at least a preliminary understanding of Whedon's basic television aesthetics. We know that +he expects the medium to be smart. "I hate it when people talk about Buffy as being campy . . ," +he tells Nussbaum. "I hate camp. I don't enjoy dumb TV. I believe Aaron Spelling +has single-handedly lowered SAT scores." We know that, in concurrence with the Gene Youngblood +axiom that entertainment gives the audience what it wants while art contributes what it never dreamed it +needed, he does not want his narrative religion to be merely entertainment. "Don't give people what they want," +he tells The Onion, +

+

+give them what they need. What they want is for Sam and Diane to get together. Don't +give it to them. Trust me. . . . People want the easy path, a happy resolution, but in the end, they're +more interested in . . . No one's going to go see the story of Othello going to get a peaceful +divorce. People want the tragedy. They need things to go wrong, they need the tension. In my +characters there's a core of trust and love that I'm very committed to. These guys would die for +each other, and it's very beautiful. But at the same time, you can't keep that safety. Things have +to go wrong, bad things have to happen. +

+

+"One of the things TV is about," Whedon tells James Longworth (211), "is comfort, is knowing +exactly where you are. I know they're going to invite Jessica Fletcher over, one of +them is going to get killed, she very politely is going to solve it. I know what's going +to happen when I tune in to a particular show." But Whedon's narrative style takes a different approach: +

+

+With Buffy we'll do French farce one week and Medea the next week. We try very hard structurally +not to fall into a pattern either, so there's not a shoot-out in a warehouse every +episode. I'm very much committed to keeping the audience off their feet. It's sort of antithetical to +what TV is devised to do. (Longworth 211) +

+

+But we know too that Whedon's religion must entertain if it is to have adherents: "It's better to be a +spy in the house of love, you know? . . . If I made 'Buffy the Lesbian Separatist,' a series of lectures on +PBS on why there should be feminism, no one would be coming to the party, and it would be boring. +The idea of changing culture is important to me, and it can only be done in a popular medium" (Nussbaum). +

+

+In The Stuff Our Dreams Are Made Of: How Science Fiction Conquered Reality, the always +irreverant Thomas Disch, contemplating the follies of Scientology, wonders out loud why it is that the +only science fiction writer ever to found a religion had to be such an awful one. +Why, oh why, could it not have been, say, Philip K. Dick whose theologizing found disciples +and not the reprehensible L. Ron Hubbard? The "religion in narrative" now gestating - the magazine The Door, +we should take note, recently named Buffy the Vampire Slayer its "theologian of the year" and the +series has attracted a great deal of attention from CESNUR, as the presence of such scholars as +Gordon Melton and Massimo Introvigne at this conference testifies - should produce no such qualms. It's +difficult to imagine it in better hands than those of the "very hard-line, angry atheist" Joss Whedon. +

+ +

Notes

+ +[1] After a career in radio (writing for such shows as The Great Gildersleeve), Whedon's grandfather went on to contribute to Donna Reed, Mayberry RFD, Dick Van Dyke Show, Room 222. His father wrote for Captain Kangaroo, The Dick Cavett Show, The Electric Company, Alice, Benson, Golden Girls, and It?s a Living. + +Bibliography + +Adalian, Josef. ?Whedon Widens Mutant?s Reach.? Variety 1 April 2002. + +Buffy the Vampire Slayer: The Complete First Season on DVD. Twentieth Century Fox 1997. + +Buffy the Vampire Slayer: The Complete Second Season on DVD. Twentieth Century Fox 2002. + +Disch, Thomas M. The Dreams Our Stuff is Made of: How Science Fiction Conquered the World. NY: The Free Press, 1998. + +Holder, Nancy with Jeff Mariotte and Maryelizabeth Hart. Buffy the Vampire Slayer: The Watcher?s Guide. Vol. 2. New York: Pocket Books, 2000. + +Jensen, Jeff. "Galaxy Quest: Buffy the Vampire Slayer Mastermind Joss Whedon Launches an Intergalatic Western That Comes Complete with a Tight-Pants-Wearing Captain, A Space Hooker, and a Behind-the-Scenes Showdown." Entertainment Weekly 13 Sept. 2002: 96-99. + +Lavery, David. "Emotional Resonance and Rocket Launchers": Joss Whedon's Commentaries on the Buffy the Vampire Slayer DVDs.? Slayage: The Online International Journal of Buffy Studies. http://www.slayage.tv/essays/slayage6/Lavery.htm. + +___. "The Genius of Joss Whedon." Fighting the Forces: What's at Stake in Buffy the Vampire Slayer. Lanham, MD: Rowman and Littlefield, 2002: 251-56. + +Nussbaum, Emily. ?Must See Metaphysics.? New York Times 22 September 2002. + +Slotkin, Richard. Fatal Environment: The Myth of the Frontier in the Age of Industrialization, 1800-1890. New York: HarperPerennial, 1986. + +___. Gunfighter Nation: The Myth of the Frontier in Twentieth Centiry America. New York: HarperPerennial, 1992. + +___. Regeneration Through Violence: The Mythology of the American Frontier, 1600-1860. Middletown, CT: Wesleyan University Press, 1973. + +Tracy, Kathleen. The Girl?s Got Bite: The Unofficial Guide to Buffy?s World. LosAngeles: Renaissance Books, 1998. + +Tucker, Ken ?High Stakes Poker.? Entertainment Weekly 1 October 1999: 20-23. + +Whedon, Joss. ?The Creator Speaks: Joss Whedon on Sex, Death, Gaping Holes and Horrible Things Ahead.? http://www.eonline.com/Features/Features/Buffy/TheCreatorSpeaks/index.html. + +___. Interview with BBC Online http://www.bbc.co.uk/buffy/reallife/jossinterview.shtml + +___. Interview with darkhorse.com. http://www.darkhorse.com/news/interviews.sku_97796int/ + +___. Interview with David Bianculli. Fresh Air 9 May 2000. Available online at http://whyy.org/cgi-bin/FAshowretrieve.cgi?2876 + +___. Interview with ET Online http://www.theslayershow.com/chat8.html + +___. Interview with Fanforum http://www.fanforum.com/buffy/news/786.shtml + +___. Interview with Fraxis. http://websites.cable.ntl.com/~fraxis/the_ww/features/whedon.html + +___. Interview. The Watcher?s Guide, Vol. 2. + +___. Interview with The Watcher?s Web. http://websites.cable.ntl.com/~fraxis/the_ww/features/epk/joss.html + +___. Interview. "Welcome to the Hellmouth/The Harvest." Videocassette. Twentieth Century Fox, 1998. + +___. Interview. ?Angel + The Puppet Show.? Videocassette. Twentieth Century Fox, 1998. + +___. ?joss says" (Thu May 27 08:26:10 1999). Online posting. 27 May 1999. The Bronze VIP Posting Board Archives. 25 July 2000. http://www-pub.cise.ufl.edu/cgiwrap/hsiao/buffy/get-archive?date=1990527. + +___. ?Joss Whedon.? The Onion AV Club. http://www.theonionavclub.com/avclub3731/avfeature_3731.html + +___. ?Joss Whedon: Feminist.? TV Creators: Conversations with America?s Top Producers of Television Drama, Volume 2. Ed. James L. Longworth. Syracuse: Syracuse University Press, 2002: 197-220. + +Wilcox, Rhonda V. "T. S. Eliot Comes to Television: Buffy's "Restlesss." Popular Culture Association in the South, Charlotte, NC, October 2002. + + + + + + \ No newline at end of file diff --git a/Linux/BT-0101M.htm b/Linux/BT-0101M.htm new file mode 100644 index 0000000..202108f --- /dev/null +++ b/Linux/BT-0101M.htm @@ -0,0 +1,146 @@ + + +CC&C---Products + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+


+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+

 

+

 

+

 

+

¡@

+

¡@

+

¡@

+

¡@

+

¡@

+

¡@

+

¡@

+

¡@

+

¡@

+

¡@

+
+

+
+ + + + + + + + + + + +

+
+

+

BT-0101M

+
+ +
¡@ +
+

+
+ 8F,No.150,Jian Yi Rd.,Chung Ho City,Taipei Hsien, Taiwan,R.O.C.
+ Tel: 886-2-8226-5088 Fax: 886-2-8226-5077
+ E-Mail adress : marketing@ccandc.com.tw +
+
+
+
+ \ No newline at end of file diff --git a/Linux/BT-0101M_files/00.gif b/Linux/BT-0101M_files/00.gif new file mode 100644 index 0000000..109bfc3 Binary files /dev/null and b/Linux/BT-0101M_files/00.gif differ diff --git a/Linux/BT-0101M_files/BT-0107.gif b/Linux/BT-0101M_files/BT-0107.gif new file mode 100644 index 0000000..39e6cfc Binary files /dev/null and b/Linux/BT-0101M_files/BT-0107.gif differ diff --git a/Linux/BT-0101M_files/b-cf.JPG b/Linux/BT-0101M_files/b-cf.JPG new file mode 100644 index 0000000..4d07b7c Binary files /dev/null and b/Linux/BT-0101M_files/b-cf.JPG differ diff --git a/Linux/BT-0101M_files/pro_r1_c1.jpg b/Linux/BT-0101M_files/pro_r1_c1.jpg new file mode 100644 index 0000000..e1933d3 Binary files /dev/null and b/Linux/BT-0101M_files/pro_r1_c1.jpg differ diff --git a/Linux/BT-0101M_files/spacer.gif b/Linux/BT-0101M_files/spacer.gif new file mode 100644 index 0000000..fc25609 Binary files /dev/null and b/Linux/BT-0101M_files/spacer.gif differ diff --git a/Linux/BT-0101M_files/ti_pro.gif b/Linux/BT-0101M_files/ti_pro.gif new file mode 100644 index 0000000..be595c6 Binary files /dev/null and b/Linux/BT-0101M_files/ti_pro.gif differ diff --git a/Linux/BT-0101M_files/top_r1_c3.gif b/Linux/BT-0101M_files/top_r1_c3.gif new file mode 100644 index 0000000..8446edc Binary files /dev/null and b/Linux/BT-0101M_files/top_r1_c3.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c3.gif b/Linux/BT-0101M_files/top_r2_c3.gif new file mode 100644 index 0000000..457ca4e Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c3.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c4.gif b/Linux/BT-0101M_files/top_r2_c4.gif new file mode 100644 index 0000000..0aca521 Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c4.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c5.gif b/Linux/BT-0101M_files/top_r2_c5.gif new file mode 100644 index 0000000..8103e6a Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c5.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c6.gif b/Linux/BT-0101M_files/top_r2_c6.gif new file mode 100644 index 0000000..dbf7b40 Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c6.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c7.gif b/Linux/BT-0101M_files/top_r2_c7.gif new file mode 100644 index 0000000..1875415 Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c7.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c8.gif b/Linux/BT-0101M_files/top_r2_c8.gif new file mode 100644 index 0000000..381a151 Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c8.gif differ diff --git a/Linux/BT-0101M_files/top_r2_c9.gif b/Linux/BT-0101M_files/top_r2_c9.gif new file mode 100644 index 0000000..4f3f5ca Binary files /dev/null and b/Linux/BT-0101M_files/top_r2_c9.gif differ diff --git a/Linux/GPRS_on_iPAQ_running_Familiar.shtml b/Linux/GPRS_on_iPAQ_running_Familiar.shtml new file mode 100644 index 0000000..d04d00a --- /dev/null +++ b/Linux/GPRS_on_iPAQ_running_Familiar.shtml @@ -0,0 +1,171 @@ + + + + + + + vanrenterghem.biz - GNU/Linux - Connecting to GPRS network with iPAQ PDA running Familiar Linux + + + + + + +

GPRS network connection for the iPAQ

+

Introduction

+

+In this document, I outline the steps necessary to get an iPAQ running Familiar Linux on the net via GPRS using a Bluetooth-capable phone. +

+ +

Hard- and software

+ +

Provider

+

+Belgian wireless carrier Base. +

+

Steps

+

Get Bluetooth working

+

+There's various HOWTO's available on getting Bluetooth functioning on (Familiar) Linux. Tip: use Bluez. If you are using the Opie image of Familiar 0.8.4, +you will have to replace /bin/bluepin with a shell script like this one: +

+ +#!/bin/sh
+echo -n PIN:
+cat /etc/bluetooth/pin
+exit 0
+
+

Find the hardware address of the phone

+

+Use hcitool to find the various bluetooth devices in your neighbourhood. Provided you've made the phone broadcast its presence, it should show up in the scan. +

+ +~ # hcitool scan
+Scanning ...
+   <address> <friendly name> +
+

Find the channel for dial-up networking

+

+Check on what channel the phone provides dial-up networking (DUN): +

+ +sdptool search --bdaddr <bd> DUN + +

+where <bd> is the hardware address of your mobile phone as detected by hcitool scan. +

+

Bind rfcomm

+

+I decided to bind /dev/rfcomm0 to the DUN channel of my phone. +

+ +/etc/init.d # cat bind_dun
+rfcomm bind 0 <bdaddr> <channel>
+mknod -m 666 /dev/rfcomm0 c 216 0
+
+

Configure PPP

+

+I assume you have the point-to-point protocol set up on your device already. If not, ipkg search *ppp* is your friend. +

+

+On Familiar 0.8.x, the pppd options were changed versus 0.7.x. The file now only contains a minimal lock as option. I +prefer the following: +

+ +---------------- cut and paste from here ----------------
+cat > /etc/ppp/options << EOF
+-detach
+defaultroute
+nocrtscts
+lock
+noauth
+lcp-echo-interval 5
+lcp-echo-failure 3
+usepeerdns
+460800
+local
+asyncmap 0
+EOF
+------------------------ end cut ------------------------
+
+

+Now you'll need a chat script to tell the phone what to do. +

+ +---------------- cut and paste from here ----------------
+cat > /etc/ppp/chat.gprs.base << EOF
+ABORT "BUSY"
+"" "\d"
+SAY "Resetting modem\n"
+"" "atz"
+SAY "Dialing\n"
+OK 'AT+cgdcont=1,"IP","gprs.base.be"'
+OK "ATD*99#"
+TIMEOUT 60
+CONNECT ''
+SAY "Connected\n"
+EOF
+------------------------ end cut ------------------------
+ +
+

+You'll also need to provide some additional options for pppd: +

+ +---------------- cut and paste from here ----------------
+cat > /etc/ppp/peers/base_gprs << EOF
+debug
+noauth
+usepeerdns
+/dev/rfcomm0 460800
+460800
+user base
+password base
+local
+nocrtscts
+defaultroute
+noipdefault
+connect '/usr/sbin/chat -f /etc/ppp/chat.gprs.base -r /dev/console'
+EOF
+------------------------ end cut ------------------------
+
+

Get connected

+

+Start pppd as follows: +

+ +~ # pppd call base_gprs + +

+If all goes well (and only if you changed the /etc/ppp/options file), you should see something like this: +

+ +Reseting modem
+Dialing...
+Connected
+Serial connection established.
+using channel 13
+Using interface ppp0
+Connect: ppp0 <--> /dev/rfcomm0
+
+ +

Check routing

+

+As I had a default route already (via the USB connection in the cradle), I had to replace it: +

+ +route del default
+route add default ppp0
+
+

+ + + + + diff --git a/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml b/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml new file mode 100644 index 0000000..003ccac --- /dev/null +++ b/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml @@ -0,0 +1,134 @@ + + + + + + +vanrenterghem.biz - GNU/Linux - Running GSR on Familiar Linux 0.8.2 + + + + + +

Running GSR on Familiar Linux 0.8.2

+

Introduction

+

+Installing GMail SMTP Relay +on my iPAQ was a mistake. I incorrectly believed it would act as a local SMTP server +and send all its data via a HTTPS connection to Google. Turns out the former is true, but the latter sadly isn't. As +I spent a considerable amount of time trying to get this thing to work, I've documented hereunder what needs to be done. +

+

On to business...

+

+The first requirement isn't available in the World feed, so +you'll have to download SMTP-Server yourself. + +Simply copy the required modules to the right place in /usr/lib/perl5. README is your friend. + +Next, do +

+

+ +ipkg install perl-module-arm-linux-io-socket perl-module-io-socket-inet perl-module-strict \
+perl-module-vars perl-module-warnings-register perl-module-warnings perl-module-carp perl-module-exporter \
+perl-module-arm-linux-io-handle perl-module-symbol perl-module-selectsaver perl-module-io \
+perl-module-arm-linux-xsloader perl-module-socket perl-module-sys-hostname perl-module-arm-linux-errno \
+perl-module-io-socket-unix perl-module-arm-linux-config perl-module-sys-hostname perl-module-io-socket-inet \
+perl-module-exporter-heavy perl-module-autoloader
+
+

+

+I also took a small detour install CPAN. In retrospect, that isn't entirely necessary, but I can't tell +which of the following modules might not have been necessary: +

+

+ +ipkg install perl-module-cpan perl-module-cwd perl-module-dirhandle perl-module-extutils-makemaker \
+perl-module-file-basename perl-module-file-path perl-module-file-copy perl-module-file-find \
+perl-module-filehandle perl-module-text-parsewords perl-module-text-wrap perl-module-file-spec \
+perl-module-extutils-mm perl-module-extutils-liblist perl-module-file-spec-unix perl-module-extutils-liblist-kid \
+perl-module-extutils-mm-unix perl-module-extutils-mm-any perl-module-extutils-my perl-module-arm-linux-io-file \
+perl-module-arm-linux-io-handle perl-module-arm-linux-io-seekable perl-module-fcntl perl-module-arm-linux-safe \
+perl-module-opcode perl-module-subs perl-module-re perl-module-text-tabs perl-module-arm-linux-lib \
+perl-module-overload perl-module-cpan-firsttime perl-module-term-readline
+
+

+

+At this point, you need to get ready to compile some modules on your own, because that whole CPAN module will make you +very angry. Trust me. +

+

+First, prepare your iPAQ for native development. Next, +replace the busybox gzip with the real one (rm /bin/gzip && ipkg install gzip). +

+

+Just so you keep the hang of it, install some more modules. +

+

+ipkg install perl-module-extutils-manifest perl-module-carp-heavy perl-module-scalar-util \
+perl-module-test perl-module-digest-md5 perl-module-digest-base perl-module-data-dumper +
+

+

+You'll also need the Perl development files. Install them with a simple ipkg install perl-dev_5.8.4-r2_arm.ipk. +

+

+You are now ready to install some crypto on your machine. OK, you actually already did that with the MD5 module above, but you +probably didn't notice that. +

+

+ipkg install openssl +

+

+Get the OpenSSL development files too. By now you know what to do with such a file. Actually, someone that didn't know that at the top of this document, in all +likelihood stopped reading quite some time ago. +

+

+We now need to compile and install IO::Socket::SSL. To do that we need, guess what, some more modules... +

+

+ipkg install perl-module-extutils-command perl-module-file-compare perl-module-file-glob \
+perl-module-extutils-install perl-module-extutils-packlist perl-module-autosplit perl-module-file-spec-functions \
+perl-module-extutils-command-mm perl-module-pod-man perl-module-pod-parselink perl-module-pod-parser \
+perl-module-pod-inputobjects perl-module-getopt-long perl-module-constant +
+

+

+Another requirement we have to deal with first is Net::SSLeay. In order to compile that one, we need even more Perl modules. I know, it seems hardly possible to have even more +modules, but I guess that's the beauty of modular systems... +

+

+ipkg install perl-module-extutils-mkbootstrap perl-module-dynaloader perl-module-mime-base64 +

+

You'll also need to get Digest::HMAC yourself, as it's not in the feed. Untar it and move the 3 files we need to the right position: cp lib/Digest/HMAC* /usr/lib/perl5/5.8.4/Digest/ +

+

+By now you should be ready to compile IO::Socket::SSL, so go ahead with that. +

+

+Download and compile TermReadKey. Also +download and compile Proc::Daemon. Now +install just a few more modules, and you're ready to roll!!! +

+

+ipkg install perl-module-test-harness perl-module-test-harness-straps perl-module-test-harness-assert \
+perl-module-test-harness-iterator perl-module-benchmark perl-module-sys-syslog perl-module-arm-linux-io-select +
+

+

About compiling Perl modules on Familiar 0.8.2

+

+You will soon find out who the maintainer of Perl in this distribution is, as he seems to have made a minor mistake somewhere, which +results in all your self-compiled modules being installed in /home/koen/OE/build/tmp/familiar/work/arm-linux/perl-5.8.4-r2/image/usr/. That +is only a minor inconvenience though; simply move them to the corresponding location in /usr/lib/perl5/ and you are +good to go. +

+

Acknowledgments

+

+A special thanks to the people that keep releasing all these goodies, especially the Familiar and +the OpenEmbedded folks!!! +

+ + + + diff --git a/Linux/e_changefocus_sh.shtml~ b/Linux/e_changefocus_sh.shtml~ new file mode 100644 index 0000000..4247b3a --- /dev/null +++ b/Linux/e_changefocus_sh.shtml~ @@ -0,0 +1,55 @@ + + + + + + frederik.gotdns.org:1976 - e_changefocus.sh + + + +

e_changefocus.sh

+

+Purpose: This script was written to be bound to the extra keys on my Logitech Cordless Desktop Deluxe wireless keyboard. This way, I can click on f.i. the E-Mail button to either launch my mail program, or transfer the application to the current desktop.
+

+

+Requirements: Enlightenment window manager +

+

+Script: +

+#!/bin/bash
+
+# This script gets the current desktop and area
+# and checks if the prog $1 (identifier) is running
+# and moves a running $1 to current desktop/area
+# or starts $2 (command)
+# e.g. $1 = Evolution and $2 = evolution
+
+eesh -ewait "goto_desktop ?"| \
+cut -f2 -d: |\
+while read desktop; do
+	eesh -ewait "goto_area ?"| \
+	cut -f2 -d: |\
+	while read area; do
+		if eesh -ewait "window_list" | grep $1 
+		then
+			eesh -ewait "window_list" | \
+                        grep $1| \
+			cut -f1 -d: |\
+			while read win_id; do 
+				eesh -e "win_op ${win_id} move 80 0"; 
+				eesh -e "win_op ${win_id} desk ${desktop}";
+				eesh -e "win_op ${win_id} area ${area}";
+			done 
+		else 
+			$2 &
+		fi
+	done
+done
+
+ +Syntax highlighted by Code2HTML, v. 0.9.1 +

+ + + diff --git a/Linux/e_launchOrMoveApp_sh.shtml b/Linux/e_launchOrMoveApp_sh.shtml new file mode 100644 index 0000000..72e9f92 --- /dev/null +++ b/Linux/e_launchOrMoveApp_sh.shtml @@ -0,0 +1,66 @@ + + + + + + vanrenterghem.biz - e_launchOrMoveApp.sh + + + + + +

e_launchOrMoveApp.sh

+

+Purpose: This script was written to be bound to the extra keys on my Logitech Cordless Desktop Deluxe wireless keyboard. This way, I can click on f.i. the E-Mail button to either launch my mail program, or transfer the application to the current desktop.
+

+

+Requirements: Enlightenment window manager +

+

+
+
+#!/bin/bash
+
+# This script gets the current desktop and area
+# and checks if the prog $1 (identifier) is running
+# and moves a running $1 to current desktop/area
+# or starts $2 (command)
+# e.g. $1 = Evolution and $2 = evolution
+
+eesh -ewait "goto_desktop ?"| \
+cut -f2 -d: |\
+while read desktop; do
+	eesh -ewait "goto_area ?"| \
+	cut -f2 -d: |\
+	while read area; do
+		if eesh -ewait "window_list" | grep $1 
+		then
+			eesh -ewait "window_list" | \
+                        grep $1| \
+			cut -f1 -d: |\
+			while read win_id; do 
+				eesh -e "win_op ${win_id} move 80 0"; 
+				eesh -e "win_op ${win_id} desk ${desktop}";
+				eesh -e "win_op ${win_id} area ${area}";
+			done 
+		else 
+			$2 &
+		fi
+	done
+done
+
+
+

+and in ~/.enlightenment/keybindings.cfg: +
+
+__NEXT_ACTION
+    __KEY logitech_mail
+    __EVENT __KEY_PRESS
+    __ACTION __A_EXEC ~/scripts/e_launchOrMoveApp.sh Evolution evolution
+
+
+

+ + + diff --git a/Linux/e_launchOrMoveApp_sh.shtml~ b/Linux/e_launchOrMoveApp_sh.shtml~ new file mode 100644 index 0000000..f4cf3dc --- /dev/null +++ b/Linux/e_launchOrMoveApp_sh.shtml~ @@ -0,0 +1,65 @@ + + + + + + frederik.gotdns.org:1976 - e_launchOrMoveApp.sh + + + +

e_launchOrMoveApp.sh

+

+Purpose: This script was written to be bound to the extra keys on my Logitech Cordless Desktop Deluxe wireless keyboard. This way, I can click on f.i. the E-Mail button to either launch my mail program, or transfer the application to the current desktop.
+

+

+Requirements: Enlightenment window manager +

+

+
+
+#!/bin/bash
+
+# This script gets the current desktop and area
+# and checks if the prog $1 (identifier) is running
+# and moves a running $1 to current desktop/area
+# or starts $2 (command)
+# e.g. $1 = Evolution and $2 = evolution
+
+eesh -ewait "goto_desktop ?"| \
+cut -f2 -d: |\
+while read desktop; do
+	eesh -ewait "goto_area ?"| \
+	cut -f2 -d: |\
+	while read area; do
+		if eesh -ewait "window_list" | grep $1 
+		then
+			eesh -ewait "window_list" | \
+                        grep $1| \
+			cut -f1 -d: |\
+			while read win_id; do 
+				eesh -e "win_op ${win_id} move 80 0"; 
+				eesh -e "win_op ${win_id} desk ${desktop}";
+				eesh -e "win_op ${win_id} area ${area}";
+			done 
+		else 
+			$2 &
+		fi
+	done
+done
+
+
+

+and in keybindings.cfg: +
+
+
+__NEXT_ACTION
+    __KEY logitech_mail
+    __EVENT __KEY_PRESS
+    __ACTION __A_EXEC /scripts/e_launchOrMoveApp.sh Evolution evolution
+
+
+

+ + + diff --git a/Linux/iPAQ_and_obexserver.shtml b/Linux/iPAQ_and_obexserver.shtml new file mode 100644 index 0000000..a870b34 --- /dev/null +++ b/Linux/iPAQ_and_obexserver.shtml @@ -0,0 +1,44 @@ + + + + + + + vanrenterghem.biz - GNU/Linux - Sending files from Motorola V500 to Familiar Linux iPAQ + + + + + + +

Sending files from Motorola V500 to Familiar Linux iPAQ

+

Introduction

+

+The goal of this page is explaining how one can send files from a Bluetooth-capable phone to an iPAQ running Familiar Linux. Sending files to the phone is done with ussp-push apparently, but I haven't tried that yet. +

+

Hardware

+ +

The details

+

+It's rather straightforward really. Only thing to do is: +

+ +~ # sdptool add --channel=10 OPUSH
+~ # obexserver +
+

+Once that's running (you'll need to install openobex and libopenobex from the feed probably), you can simply send a file from your phone and it will end up in /tmp/. +

+

+The hard part is finding obexserver, as there doesn't appear to be an .ipk available anywhere. I found a pre-compiled version in an old chat-log. It works for me, but it might be filled with malware for all I know, so I'll try to build it from source sometime. +

+ + + + + diff --git a/Linux/imode_on_iPAQ_running_Familiar.shtml b/Linux/imode_on_iPAQ_running_Familiar.shtml new file mode 100644 index 0000000..6294ec3 --- /dev/null +++ b/Linux/imode_on_iPAQ_running_Familiar.shtml @@ -0,0 +1,183 @@ + + + + + + + vanrenterghem.biz - GNU/Linux - Connecting to i-Mode with iPAQ + + + + + + +

i-Mode connection for the iPAQ

+

Introduction

+

+A while back, my father donated his old iPAQ to me. Being a fan of free software, I immediately decided to put an alternative operating system on the unit. With Familiar, a free alternative was available, and it even provided me with a dpkg lookalike ipkg! +With this system set up, I could do most things one can do with a PDA - maintain a calendar, take notes, play music, ... When cradled, I could connect it to the Internet via my desktop PC. +Obviously a PDA isn't meant to be cradled all the time, so I had to find a way to connect it to the net while on the road as well. +The hard part turned out to be finding a bluetooth card I could use with this OS, as at the time of writing this document, not a whole lot of Compact Flash cards are supported yet - partly because some manufacturers don't provide specifications required to write the drivers, partly because the ARM kernel used in Familiar isn't fully at par with the one used on i386 systems yet. +In this document, I outline the steps necessary to get on the net via i-Mode (~GPRS) using a Bluetooth-capable phone. +

+ +

Hard- and software

+ +

Provider

+

+Belgian wireless carrier Base with I-mode +

+

Steps

+

Get Bluetooth working

+

+There's various HOWTO's available on getting Bluetooth functioning on (Familiar) Linux. Tip: use Bluez. If you are using the Opie image of Familiar 0.8.2, +you will have to replace /bin/bluepin with a shell script like this one: +

+ +#!/bin/sh
+echo -n PIN:
+cat /etc/bluetooth/pin
+exit 0
+
+

Find the hardware address of the phone

+

+Use hcitool to find the various bluetooth devices in your neighbourhood. Provided you've made the phone broadcast its presence, it should show up in the scan. +

+ +~ # hcitool scan
+Scanning ...
+   <address> <friendly name> +
+

Find the channel for dial-up networking

+

+Check on what channel the phone provides dial-up networking (DUN): +

+ +sdptool search --bdaddr <bd> DUN + +

+where <bd> is the hardware address of your mobile phone as detected by hcitool scan. +

+

Bind rfcomm

+

+I decided to bind /dev/rfcomm0 to the DUN channel of my phone. +

+ +/etc/init.d # cat bind_dun
+rfcomm bind 0 <bdaddr> <channel>
+mknod -m 666 /dev/rfcomm0 c 216 0
+
+

Configure PPP

+

+I assume you have the point-to-point protocol set up on your device already. If not, ipkg search *ppp* is your friend. +

+

+On Familiar 0.8.x, the pppd options were changed versus 0.7.x. The file now only contains a minimal lock as option. I +prefer the following: +

+ +---------------- cut and paste from here ----------------
+cat > /etc/ppp/options << EOF
+-detach
+defaultroute
+nocrtscts
+lock
+noauth
+lcp-echo-interval 5
+lcp-echo-failure 3
+usepeerdns
+115200
+local
+asyncmap 0
+EOF
+------------------------ end cut ------------------------
+
+

+Now you'll need a chat script to tell the phone what to do. +

+ +---------------- cut and paste from here ----------------
+cat > /etc/ppp/chat.imode << EOF
+ABORT "BUSY"
+"" "\d"
+SAY "reseting modem\n"
+"" "atz"
+SAY "dialing\n"
+OK 'AT+cgdcont=1,"IP","portalmmm.nl"'
+OK "ATD*99#"
+TIMEOUT 60
+CONNECT ''
+SAY "connected\n"
+EOF
+------------------------ end cut ------------------------
+ +
+

+You'll also need to provide some additional options for pppd: +

+ +---------------- cut and paste from here ----------------
+cat > /etc/ppp/peers/imode << EOF
+debug
+noauth
+usepeerdns
+/dev/rfcomm0 115200
+115200
+local
+nocrtscts
+defaultroute
+noipdefault
+connect '/usr/sbin/chat -f /etc/ppp/chat.imode -r /dev/console'
+EOF
+------------------------ end cut ------------------------
+
+

Get connected

+

+Start pppd as follows: +

+ +~ # pppd call imode + +

+If all goes well (and only if you changed the /etc/ppp/options file), you should see something like this: +

+ +reseting modem
+dialing
+connected
+Serial connection established.
+using channel 1
+Using interface ppp0
+Connect: ppp0 <--> /dev/rfcomm0
+
+ +

Check routing

+

+As I had a default route already (via the USB connection in the cradle), I had to replace it: +

+ +route del default
+route add default ppp0
+
+

Set proxy

+

+In order to browse the net, you'll need to set the proxy still. In casu I use http://10.10.100.10:5080. +

+

Photo

+

+... and obviously no HOWTO document is truly complete without some sort of picture. +

+

+Picture of Compaq iPAQ and Motorola V500 camera phone +

+ + + + + diff --git a/Linux/index.shtml b/Linux/index.shtml new file mode 100644 index 0000000..341a7ce --- /dev/null +++ b/Linux/index.shtml @@ -0,0 +1,60 @@ + + + + + + +vanrenterghem.biz - GNU/Linux + + + + + +

GNU/Linux stuff

+

+Here's some random GNU/Linux stuff which may be of use. +

+

On this page:

+ + + +

Miscellaneous information about running Linux on an iPAQ

+

+I'm currently using using Familiar Linux version 0.8.4. +

+ + +

Scripts

+

Logitech Cordless Desktop Deluxe

+

I've written a small howto on how to get the extra keys on a Logitech Cordless Desktop Deluxe to work +in the X Window System under Debian.

+

Enlightenment scripting sample

+

This script - e_launchOrMove can be bound to the extra keys on f.i. a +Logitech Cordless Desktop Deluxe wireless keyboard. It launches a program, or moves it to the current Enlightenmentdesktop.

+

The GIMP scripting

+

While creating the site, I wrote a script to generate a quarter circle. Using that script, and 3 others, the corners of the +navigation bar can be generated automatically.

+

Serial console (very) mini-HOWTO

+

Since I read about serial consoles being one of the many advantages of UNIX-like systems, I decided I needed some hands-on +experience with them. While it seemed difficult at first, the hardest part turned out to be finding a power cable to connect the +second box to the power grid.
+Here's the mini-HOWTO on getting a serial console to work

+

Screenshots

+

No amateur geek site is complete without a section dedicated to the beauty of his +desktop. As I am truly commited to geekness, I follow suit.

+

My desktop on January 4th, 2003 Look, I'm putting up the pictures of my Miami +trip.
+My desktop on March 9th, 2003 Incidentally, I was also working on my site that day.

+ + + diff --git a/Linux/index.shtml~ b/Linux/index.shtml~ new file mode 100644 index 0000000..b5bccf4 --- /dev/null +++ b/Linux/index.shtml~ @@ -0,0 +1,70 @@ + + + + + + + +vanrenterghem.biz - GNU/Linux + + + + + +

GNU/Linux stuff

+

Here's some random GNU/Linux stuff +which may be of use.

+

On this page:

+ +

Scripts

+

Logitech Cordless Desktop Deluxe

+

I've written a small howto on how +to get the extra keys on a Logitech Cordless Desktop Deluxe to work +in the X Window +System under Debian.

+

Enlightenment scripting sample

+

This script - +e_launchOrMove can be bound to the extra keys on f.i. a +Logitech Cordless Desktop Deluxe wireless keyboard. It launches a +program, or moves it to the current Enlightenment +desktop.

+

The GIMP scripting

+

While creating the site, I wrote a script to generate a quarter +circle. Using that script, and 3 others, the corners of the +navigation bar can be generated automatically.

+

Serial console +(very) mini-HOWTO

+

Since I read about serial consoles being one of the many +advantages of UNIX-like systems, I decided I needed some hands-on +experience with them. While it seemed difficult at first, the +hardest part turned out to be finding a power cable to connect the +second box to the power grid.
+Here's the +mini-HOWTO on getting a serial console to work

+

Screenshots

+

No amateur geek site is complete without a section dedicated to +the beauty of his +desktop. As I am truly commited to geekness, I follow suit.

+

My desktop on +January 4th, 2003 Look, I'm putting up the pictures of my Miami +trip.
+My desktop on March +9th, 2003 Incidentally, I was also working on my site that +day.

+ + + diff --git a/Linux/leftnav.shtml b/Linux/leftnav.shtml new file mode 100644 index 0000000..3a1002e --- /dev/null +++ b/Linux/leftnav.shtml @@ -0,0 +1,12 @@ + + + + + + + +
+Scripts +
+Other stuff +
\ No newline at end of file diff --git a/Linux/leftnav.shtml~ b/Linux/leftnav.shtml~ new file mode 100644 index 0000000..8e68a53 --- /dev/null +++ b/Linux/leftnav.shtml~ @@ -0,0 +1,12 @@ + + + + + + + +
+Scripts +
+Other stuff +
\ No newline at end of file diff --git a/Linux/logitech.shtml b/Linux/logitech.shtml new file mode 100644 index 0000000..d172007 --- /dev/null +++ b/Linux/logitech.shtml @@ -0,0 +1,107 @@ + + + + + + vanrenterghem.biz - GNU/Linux - Logitech Cordless Desktop Deluxe Keyboard + + + + + +

Getting the extra keys on a Logitech Cordless Desktop Deluxe to work in Debian's X

+

Last tested May 16, 2004 - on X 4.3.0-dfsg in Debian Sid

+

Step 1

+

+Append the following to the file /usr/X11R6/lib/X11/XKeysymDB:
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
logitech_standby:10090000
logitech_mail:10090001
logitech_sms:10090002
logitech_webcam:10090003
logitech_mute:10090004
logitech_up:10090005
logitech_down:10090006
logitech_media:10090007
logitech_home:10090008
logitech_search:10090009
logitech_F1:1009000A
logitech_F2:1009000B
logitech_F3:1009000C
logitech_F4:1009000D
logitech_F5:1009000E
logitech_F6:1009000F
logitech_F7:10090010
logitech_F8:10090011
logitech_F9:10090012
logitech_F10:10090013
logitech_F11:10090014
logitech_F12:10090015
+
+Make sure the values in the second row are unique for this file. +
+

+

Step 2

+

+Next, add this to ~/.xmodmap:
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
keycode 187=logitech_F1
keycode 188=logitech_F2
keycode 118=logitech_F3
keycode 119=logitech_F4
keycode 120=logitech_F5
keycode 121=logitech_F6
keycode 122=logitech_F7
keycode 194=logitech_F8
keycode 195=logitech_F9
keycode 196=logitech_F10
keycode 215=logitech_F11
keycode 216=logitech_F12
keycode 236=logitech_mail
keycode 145=logitech_sms
keycode 146=logitech_webcam
keycode 160=logitech_mute
keycode 176=logitech_up
keycode 174=logitech_down
keycode 237=logitech_media
keycode 178=logitech_home
keycode 229=logitech_search
keycode 223=logitech_standby
+
+You'll need to make sure the keycodes are identical on your system. Use +xev to determine the keycodes.
+

+That's it, your extra Logitech Cordless Desktop Deluxe keys are now supported +in the X Window System. In order for them to actually do something, +you'll need to make your window manager aware of their existence. As I'm +using Enlightenment, I'll describe what +to do if you want that window manager to do something meaningful +when you press those extra keys. +

+

Step 3

+

+Modify one of the keybinding sections in ~/.enlightenment/keybindings.cfg as such:

+

+
+
+__NEXT_ACTION
+ __KEY logitech_webcam
+ __EVENT __KEY_PRESS
+ __ACTION __A_EXEC /home/frederik/scripts/e_launchOrMoveApp.sh Gqcam gqcam
+
+
+

+

+Replace the last part with the executable of your choice. As you notice, you're able to pass variables to your command by adding them on the line. +

+ + + \ No newline at end of file diff --git a/Linux/logitech.shtml~ b/Linux/logitech.shtml~ new file mode 100644 index 0000000..c40b927 --- /dev/null +++ b/Linux/logitech.shtml~ @@ -0,0 +1,107 @@ + + + + + + vanrenterghem.biz - GNU/Linux - Logitech Cordless Desktop Deluxe Keyboard + + + + + +

Getting the extra keys on a Logitech Cordless Desktop Deluxe to work in Debian's X

+

Last tested May 16, 2004 - on X 4.3.0-dfsg in Debian Sid

+

Step 1

+

+Append the following to the file /usr/X11R6/lib/X11/XKeysymDB:
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
logitech_standby:10090000
logitech_mail:10090001
logitech_sms:10090002
logitech_webcam:10090003
logitech_mute:10090004
logitech_up:10090005
logitech_down:10090006
logitech_media:10090007
logitech_home:10090008
logitech_search:10090009
logitech_F1:1009000A
logitech_F2:1009000B
logitech_F3:1009000C
logitech_F4:1009000D
logitech_F5:1009000E
logitech_F6:1009000F
logitech_F7:10090010
logitech_F8:10090011
logitech_F9:10090012
logitech_F10:10090013
logitech_F11:10090014
logitech_F12:10090015
+
+Make sure the values in the second row are unique for this file. +
+

+

Step 2

+

+Next, add this to ~/.xmodmap:
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + +
keycode 187=logitech_F1
keycode 188=logitech_F2
keycode 118=logitech_F3
keycode 119=logitech_F4
keycode 120=logitech_F5
keycode 121=logitech_F6
keycode 122=logitech_F7
keycode 194=logitech_F8
keycode 195=logitech_F9
keycode 196=logitech_F10
keycode 215=logitech_F11
keycode 216=logitech_F12
keycode 236=logitech_mail
keycode 145=logitech_sms
keycode 146=logitech_webcam
keycode 160=logitech_mute
keycode 176=logitech_up
keycode 174=logitech_down
keycode 237=logitech_media
keycode 178=logitech_home
keycode 229=logitech_search
keycode 223=logitech_standby
+
+You'll need to make sure the keycodes are identical on your system. Use + to determine the keycodes.
+

+That's it, your extra Logitech Cordless Desktop Deluxe keys are now supported +in the X Window System. In order for them to actually do something, +you'll need to make your window manager aware of their existence. As I'm +using Enlightenment, I'll describe what +to do if you want that window manager to do something meaningful +when you press those extra keys. +

+

Step 3

+

+Modify one of the keybinding sections in ~/.enlightenment/keybindings.cfg as such:

+

+
+
+__NEXT_ACTION
+ __KEY logitech_webcam
+ __EVENT __KEY_PRESS
+ __ACTION __A_EXEC /home/frederik/scripts/e_launchOrMoveApp.sh Gqcam gqcam
+
+
+

+

+Replace the last part with the executable of your choice. As you notice, you're able to pass variables to your command by adding them on the line. +

+ + + \ No newline at end of file diff --git a/Linux/varia.shtml b/Linux/varia.shtml new file mode 100644 index 0000000..d15dc61 --- /dev/null +++ b/Linux/varia.shtml @@ -0,0 +1,41 @@ + + + + + + frederik.gotdns.org:1976 - GNU/Linux + + + +

GNU/Linux stuff

+

+Here's some random GNU/Linux stuff which may be of use. +

+ + + + + + +
+ + + + + + + + + + +
+ + Serial console +
+
+
+ + + + + \ No newline at end of file diff --git a/Linux/varia.shtml~ b/Linux/varia.shtml~ new file mode 100644 index 0000000..ad93563 --- /dev/null +++ b/Linux/varia.shtml~ @@ -0,0 +1,41 @@ + + + + + + frederik.gotdns.org:1976 - GNU/Linux + + + +

GNU/Linux stuff

+

+Here's some random GNU/Linux stuff which may be of use. +

+ + + + + + +
+ + + + + + + + + + +
+ + Serial console +
+
+
+ + + + + \ No newline at end of file diff --git a/Linux/website_quarter_circle_ll.pl.shtml b/Linux/website_quarter_circle_ll.pl.shtml new file mode 100644 index 0000000..78f4f67 --- /dev/null +++ b/Linux/website_quarter_circle_ll.pl.shtml @@ -0,0 +1,84 @@ + + +vanrenterghem.biz - website_quarter_circle_ll.pl.html + + + + + + + + +

website_quarter_circle_ll.pl

+

+Purpose: This script was written to create the lowerleft quarter circle of the main navigation bar on the site. It should be no surprise I wrote 3 more scripts generate the 3 other circle parts. I chose scripting these pictures over drawing them manually out of consciousness of my own lack of drawing skills.
+

+

+ +Requirements: The GNU Image Manipulation Program, aka the GIMP and Perl +

+

+Output: Sample output image of the script +

+

+
+
+#!/usr/bin/perl -w
+
+use Gimp qw( :auto );
+use Gimp::Fu;
+
+#Gimp::set_trace(TRACE_CALL);
+
+sub website_quarter_circle_ll {
+        my $width=8;
+        my $height=$width;
+        my ($image,$layer);
+        my $circle_color = [187,221,255];
+        my $webpage_color = [255,255,255];
+
+        gimp_palette_set_background($circle_color);
+
+        $image = gimp_image_new($width, $height, RGB);
+        $layer = gimp_layer_new($image, $width, $height, RGBA_IMAGE, "Button", 100, NORMAL_MODE);
+
+        gimp_image_add_layer($image, $layer, 0);
+    gimp_edit_clear($layer);
+
+
+    gimp_ellipse_select($image,-0*$height, -1*$width, $width*2, $height*2, 0, 1, 0, 0.5);
+
+
+    gimp_bucket_fill($layer, BG_BUCKET_FILL, NORMAL_MODE, 100, 0, 0, 5, 5);
+
+        gimp_selection_invert($image);
+        gimp_palette_set_background($webpage_color);
+        gimp_bucket_fill($layer, BG_BUCKET_FILL, NORMAL_MODE, 100, 0, 0, 5, 5);
+        gimp_selection_none($image);
+
+        gimp_convert_indexed($image, 0, 0, 8,0,0, "");
+                return $image;
+    }
+
+register
+      "website_quarter_circle_ll",                 # fill in name 
+      "Create Website Toolbar lowerleft corner button",  # a small description 
+      "A script to create a quarter circle in Gimp",       # a help text 
+      "Frederik Vanrenterghem",            # Your name 
+      "",        # Your copyright 
+      "2002-10-21",              # Date 
+      "<Toolbox>/Xtns/Perl-Fu/Website/CreateQuarterCircleLL",   # menu path 
+      "*",                       # Image types 
+      [
+
+      ],
+      \&website_quarter_circle_ll;
+
+exit main()
+
+ +
+

+ + + diff --git a/Linux/while_oef.cpp.shtml b/Linux/while_oef.cpp.shtml new file mode 100644 index 0000000..b666319 --- /dev/null +++ b/Linux/while_oef.cpp.shtml @@ -0,0 +1,34 @@ + + +~/code/while_oef.cpp.html + + + + + + + + +
+#include <iostream>
+using namespace std;
+int main()
+{
+  int x=0,y=1,z,i=1,n;
+  cout << "Geef een natuurlijk getal: ";
+  cin >> n;
+  cout << "De reeks gaat als volgt: ";
+  while (i++<n)
+          {
+                  z=x+y;
+                  y=x;
+                  x=z;
+                  cout << z <<", ";
+          }
+  cout << x+y << "." << endl;
+  return 0;
+}
+
+ + + diff --git a/News/email_from_dannyz.shtml b/News/email_from_dannyz.shtml new file mode 100644 index 0000000..7a2938a --- /dev/null +++ b/News/email_from_dannyz.shtml @@ -0,0 +1,103 @@ + + +~/downloads/email_from_dannyz.html + + + + + + + +
+From dannyz@videotron.ca Thu Dec 16 23:58:50 2004
+Return-path: <dannyz@videotron.ca>
+Envelope-to: ***@vanrenterghem.biz
+Delivery-date: Thu, 16 Dec 2004 17:58:54 -0500
+Received: from [24.201.245.36] (helo=relais.videotron.ca)
+        by host.server26.com with esmtp (Exim 4.43)
+        id 1Cf4aE-0004HP-8u
+        for ***@vanrenterghem.biz; Thu, 16 Dec 2004 17:58:54 -0500
+Received: from GENERALPC ([24.202.142.246]) by VL-MO-MR010.ip.videotron.ca
+ (iPlanet Messaging Server 5.2 HotFix 1.21 (built Sep  8 2003))
+ with SMTP id <0I8U0090X7U6JU@VL-MO-MR010.ip.videotron.ca> for
+ ***@vanrenterghem.biz; Thu, 16 Dec 2004 17:58:55 -0500 (EST)
+Date: Thu, 16 Dec 2004 17:58:50 -0500 (Eastern Standard Time)
+From: Danny Zawahery <dannyz@videotron.ca>
+Subject: Re: Congratulations! You are the buyer for
+ "Socket Bluetooth CF Card for Pocket PC, PDA and Mobile!"
+To: ***@vanrenterghem.biz
+Message-id: <41C2132A.000004.02828@GENERALPC>
+MIME-version: 1.0
+X-Mailer: IncrediMail (2501361)
+Content-type: multipart/related;
+ boundary="Boundary_(ID_uEMxxxM88BOSkIcTlUDDKg)"; type="multipart/alternative"
+X-Priority: 3
+X-FID: BA285063-5BCE-11D4-AF8D-0050DAC67E11
+References: <20041216193153.GA16000@vanrenterghem.biz>
+X-Spam-Checker-Version: SpamAssassin 3.0.1 (2004-10-22) on maui
+X-Spam-Level: 
+X-Spam-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_20,BIZ_TLD,
+        CONGRATULATIONS,HTML_MESSAGE,HTML_TAG_EXIST_TBODY,MANY_EXCLAMATIONS,
+        MILLION_USD,YOU_WON autolearn=no version=3.0.1
+
+
+
+Hi,
+
+
+
+What we meant by socket, is not the brand,  but the fact that this unit fits
+into a CF socket. A socket is basically where you fit the card into. The
+item description clearly indicates that this is infact a third party
+manufacturer which produced the item. If you're not pleased with the card or
+that it doesn't meet your requirements, please feel free to ship it back to
+us. I'll gladly refund your item price.
+
+
+
+Thanks. And sorry for the misunderstanding.
+
+
+
+Best Regards,
+
+D. Z
+
+
+
+-------Original Message-------
+
+
+
+From: Frederik Vanrenterghem
+
+Date: 12/16/04 14:33:19
+
+To: dannyz@videotron.ca
+
+Subject: Re: Congratulations! You are the buyer for "Socket Bluetooth CF
+Card for Pocket PC, PDA and Mobile!"
+
+
+
+Danny,
+
+
+
+I received the card, but noticed it doesn't seem to be a Socket
+
+bluetooth card, contrary to what was mentioned in your offer. Can you
+
+confirm you sent the correct card?
+
+
+
+Thx,
+
+Frederik
+
+
+
+ + + diff --git a/News/index.php b/News/index.php new file mode 100644 index 0000000..3e7814b --- /dev/null +++ b/News/index.php @@ -0,0 +1,106 @@ +\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("http://frederik.gotdns.org:1976 - News\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); + +printf("
\n"); +// Print the header +printf("\n"); +include("../header.shtml"); + +// Print the page title +printf("

Blog

\n\n"); + +// Define the variables + +$dbserver="localhost"; +$usernaam="webnews"; +$paswoord="BlaBla123"; +$database="website"; +$tabel="newsContent"; +$maxShown=5; + +if(isset($_GET['begin'])&&is_numeric($_GET['begin'])){ +$begin=$_GET['begin']; +} +else { +$begin=0; +} + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + +// Connect to database + +$db=mysql_connect($dbserver,$usernaam,$paswoord) or die ("Geen connectie met server"); +mysql_select_db($database,$db) or die ("Database bestaat niet"); + +// Count the number of news items in the table + +$aantalNewsItems=mysql_query("SELECT COUNT(*) from $tabel") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); +$aantalNewsItemsNo=mysql_fetch_row($aantalNewsItems); + + +// LIMIT x, y will limit the results to y rows, starting from x + +$resultatenreeks=mysql_query("SELECT * FROM $tabel ORDER BY DATE DESC LIMIT $begin, $maxShown") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); + +while ($resultatenrij = mysql_fetch_row($resultatenreeks)) { + +// Put the results in a table, one table per result + printf("\n"); + printf("
\n"); + printf("

%s

%s

%s

\n", + $resultatenrij[0], $resultatenrij[1], $resultatenrij[1], $resultatenrij[2]); + printf("
\n"); + +} + +// Add some navigation - still to add option to modify maxShown +if($aantalNewsItemsNo[0]>$maxShown) +{ + printf("\n"); + printf("
\n"); + // Only show the option for the previous items on post-first-page + if($begin>0 AND $aantalNewsItemsNo[0]>($maxShown*2)) + {printf("

Show items ".($begin-$maxShown+1) . " to " . ($begin) . "

\n");} + // Show the next items, make sure not to mention a non-existing number of items with the min function + if($aantalNewsItemsNo[0]>($maxShown+$begin)) + {printf("

Show items ".($begin+$maxShown+1) . " to " . min(($maxShown*2+$begin),$aantalNewsItemsNo[0]) . "

\n");} + // Once we have shown all items, show the option to return to the first items + else + {printf("

Show items ".(1) . " to " . ($maxShown) . "

\n");} + printf("\n"); + printf("
\n"); +} + +printf("
\n"); +printf("

XML RSS icon

\n"); +printf("
\n"); + +// Print the footer +printf("\n"); +printf("
\n"); +printf("\n"); +printf("\n"); +printf("\n"); +?> + + diff --git a/News/index.php~ b/News/index.php~ new file mode 100644 index 0000000..acd1294 --- /dev/null +++ b/News/index.php~ @@ -0,0 +1,101 @@ +\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("http://frederik.gotdns.org:1976 - News\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); +printf("\n"); + +printf("
\n"); +// Print the header +printf("\n"); +include("../header.shtml"); + +// Print the page title +printf("

News Page

\n\n"); + +// Define the variables + +$dbserver="localhost"; +$usernaam="frederik"; +$paswoord="Fred1210"; +$database="website"; +$tabel="newsContent"; +$maxShown=5; + +if(!isset($begin)){$begin=0;} + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + +// Connect to database + +$db=mysql_connect($dbserver,$usernaam,$paswoord) or die ("Geen connectie met server"); +mysql_select_db($database,$db) or die ("Database bestaat niet"); + +// Count the number of news items in the table + +$aantalNewsItems=mysql_query("SELECT COUNT(*) from $tabel") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); +$aantalNewsItemsNo=mysql_fetch_row($aantalNewsItems); + + +// LIMIT x, y will limit the results to y rows, starting from x + +$resultatenreeks=mysql_query("SELECT * FROM $tabel ORDER BY DATE DESC LIMIT $begin, $maxShown") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); + +while ($resultatenrij = mysql_fetch_row($resultatenreeks)) { + +// Put the results in a table, one table per result + printf("\n"); + printf("
\n"); + printf("

%s

%s

%s

\n", + $resultatenrij[0], $resultatenrij[1], $resultatenrij[1], $resultatenrij[2]); + printf("
\n"); + +} + +// Add some navigation - still to add option to modify maxShown +if($aantalNewsItemsNo[0]>$maxShown) +{ + printf("\n"); + printf("
\n"); + // Only show the option for the previous items on post-first-page + if($begin>0 AND $aantalNewsItemsNo[0]>($maxShown*2)) + {printf("

Show items ".($begin-$maxShown+1) . " to " . ($begin) . "

\n");} + // Show the next items, make sure not to mention a non-existing number of items with the min function + if($aantalNewsItemsNo[0]>($maxShown+$begin)) + {printf("

Show items ".($begin+$maxShown+1) . " to " . min(($maxShown*2+$begin),$aantalNewsItemsNo[0]) . "

\n");} + // Once we have shown all items, show the option to return to the first items + else + {printf("

Show items ".(1) . " to " . ($maxShown) . "

\n");} + printf("\n"); + printf("
\n"); +} + +printf("
\n"); +printf("

XML RSS icon

\n"); +printf("
\n"); + +// Print the footer +printf("\n"); +printf("
\n"); +printf("\n"); +printf("\n"); +printf("\n"); +?> + + diff --git a/News/index_table.php b/News/index_table.php new file mode 100644 index 0000000..ba2a4d5 --- /dev/null +++ b/News/index_table.php @@ -0,0 +1,103 @@ + + + + + + http://frederik.gotdns.org:1976 - News + + + +\n"); +include("../header.shtml"); + +// Print the page title +printf("

News Page

\n\n"); + +// Define the variables + +$dbserver="localhost"; +$usernaam="frederik"; +$paswoord="Fred1210"; +$database="website"; +$tabel="newsContent"; +$maxShown=5; + +if(!isset($begin)){$begin=0;} + +if(ereg('[^0-9]', $begin)) { + die ('Invalid input format in URL. Please contact the webmaster if this problem persists.'); +} + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + +// Connect to database + +$db=mysql_connect($dbserver,$usernaam,$paswoord) or die ("Geen connectie met server"); +mysql_select_db($database,$db) or die ("Database bestaat niet"); + +// Count the number of news items in the table + +$aantalNewsItems=mysql_query("SELECT COUNT(*) from $tabel"); +$aantalNewsItemsNo=mysql_fetch_row($aantalNewsItems); + + +// LIMIT x, y will limit the results to y rows, starting from x + +$resultatenreeks=mysql_query("SELECT * FROM $tabel ORDER BY date DESC LIMIT $begin, $maxShown") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); + + +while ($resultatenrij = mysql_fetch_row($resultatenreeks)) { + +// Put the results in a table, one table per result + printf("\n"); + printf("
+
cornerul +%s +cornerur +%s
+%s

\n\n", + $resultatenrij[0], $resultatenrij[1], $resultatenrij[1], $resultatenrij[2]); + +} + +// Add some navigation - still to add option to modify maxShown +if($aantalNewsItemsNo[0]>$maxShown) +{ + printf("\n"); + printf("
\n"); + // Only show the option for the previous items on post-first-page + if($begin>0 AND $aantalNewsItemsNo[0]>($maxShown*2)) + {printf("Show items ".($begin-$maxShown+1) . " to " . ($begin) . "
\n");} + // Show the next items, make sure not to mention a non-existing number of items with the min function + if($aantalNewsItemsNo[0]>($maxShown+$begin)) + {printf("
Show items ".($begin+$maxShown+1) . " to " . min(($maxShown*2+$begin),$aantalNewsItemsNo[0]) . "
\n");} + // Once we have shown all items, show the option to return to the first items + else + {printf("Show items ".(1) . " to " . ($maxShown) . "\n");} + printf("\n"); +} + +// Include a link to an XML RSS feed +printf("

XML RSS icon

\n"); +// Print the footer +printf("\n"); +include("../footer.php"); +?> + + + + diff --git a/News/permalink.php b/News/permalink.php new file mode 100644 index 0000000..e8a8ae3 --- /dev/null +++ b/News/permalink.php @@ -0,0 +1,93 @@ + + + + + + Frederik Vanrenterghem's Blog + + + + + +\n"); +include("../header.shtml"); + +// Check the input +// We expect a $berichtID=YYYY-MM-DD as parameters + +if(!isset($_GET['berichtID'])){ +die ('
Please specify a date when invoking this script.'); +} +else { +$berichtID=$_GET['berichtID']; +} + +if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $berichtID, $regs)) { + $datum="$regs[1]$regs[2]$regs[3]"; +} else { + die ('
Invalid date format. Check the URL or contact the webmaster if this problem persists.'); +} + + +// Print the page title +printf("

News from $berichtID

\n\n"); + +// Define the variables +// frederik.gotdns.org:1976 db + +$dbserver="localhost"; +$usernaam="webnews"; +$paswoord="BlaBla123"; +$database="website"; +$tabel="newsContent"; + +// vanrenterghem.biz db +//$dbserver="localhost"; +//$usernaam="frederik_fred"; +//$paswoord="fred"; +//$database="frederik_News"; +//$tabel="newsContent"; + + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + +// Connect to database + +$db=mysql_connect($dbserver,$usernaam,$paswoord) or die ("Geen connectie met server"); +mysql_select_db($database,$db) or die ("Database bestaat niet"); + + +$resultatenreeks=mysql_query("SELECT * FROM $tabel WHERE date=$datum") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); + + +while ($resultatenrij = mysql_fetch_row($resultatenreeks)) { + +// Put the results in a table, one table per result + printf("\n"); + printf("
+
cornerul +%s +cornerur +%s
+%s

\n\n", + $resultatenrij[0], $resultatenrij[1], $resultatenrij[2]); + +} + +// Print the footer +printf("\n"); +include("../footer.php"); +?> + + + + diff --git a/News/permalink.php~ b/News/permalink.php~ new file mode 100644 index 0000000..6c9e7c5 --- /dev/null +++ b/News/permalink.php~ @@ -0,0 +1,79 @@ + + + + + + http://frederik.gotdns.org:1976 - News + + +\n"); +include("../header.shtml"); + +// Check the input +// We expect a $berichtID=YYYY-MM-DD as parameters + +if(!isset($berichtID)){die ('
Please specify a date when invoking this script.');} + +if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $berichtID, $regs)) { + $datum="$regs[1]$regs[2]$regs[3]"; +} else { + die ('
Invalid date format. Check the URL or contact the webmaster if this problem persists.'); +} + + +// Print the page title +printf("

News from $berichtID

\n\n"); + +// Define the variables + +$dbserver="localhost"; +$usernaam="frederik"; +$paswoord="Fred1210"; +$database="website"; +$tabel="newsContent"; +$maxShown=5; + + + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + +// Connect to database + +$db=mysql_connect($dbserver,$usernaam,$paswoord) or die ("Geen connectie met server"); +mysql_select_db($database,$db) or die ("Database bestaat niet"); + + +$resultatenreeks=mysql_query("SELECT * FROM $tabel WHERE date=$datum") or die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem persists.'); + + +while ($resultatenrij = mysql_fetch_row($resultatenreeks)) { + +// Put the results in a table, one table per result + printf("\n"); + printf("
+
cornerul +%s +cornerur +%s
+%s

\n\n", + $resultatenrij[0], $resultatenrij[1], $resultatenrij[2]); + +} + +// Print the footer +printf("\n"); +include("../footer.php"); +?> + + + + diff --git a/Pics/.xvpics/BBupperright.png b/Pics/.xvpics/BBupperright.png new file mode 100644 index 0000000..898cc5a --- /dev/null +++ b/Pics/.xvpics/BBupperright.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:8x8 Indexed (208 bytes) +#END_OF_COMMENTS +8 8 255 +»ßÛÿÿÿÿÿ»ß·¿Ûÿÿÿ»ß·¿»Ûÿÿ»ß·¿»»Ûÿ»ß·¿»»»ÿ»ß·¿»»»Û»ß·¿»»»Û»ß·¿»»»» \ No newline at end of file diff --git a/Pics/.xvpics/gnulinux.png b/Pics/.xvpics/gnulinux.png new file mode 100644 index 0000000..cff8d84 --- /dev/null +++ b/Pics/.xvpics/gnulinux.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:100x18 Indexed (292 bytes) +#END_OF_COMMENTS +80 14 255 +I$IIÛH·Ú·¶I$I%Û¶¶I$mµµHÛ¶IIشصüØImImØ&ýHüJIü&ümÚÛHýI´müµ‘Imü&´ü´Ùlü&m%II&HJIIIIIIIIIHØ´Ønü%lnlü&´ü%ümmü%üØümmØüJصü‘ØØصØ´Øصmmmü&´üصlü&üØØIü‘ØØü%ümØ%Ø´ü‘Ølü&mmmü%µü%ümmü&üØÙü‘ØØü%üü%Ø´ü‘Øصmmmü%µüØ´lü&üØÙü‘ØØülµ´‘IIüIü‘ØJü´m&´´IüImü&lü&üØØüØüJ‘ü‘Ø%ümÛIIØ´Øِ´üØIصØm´üIüص´Iümِüm&ü´Ø&ül´´´´ÚI$&I´&Û¶Û¶¶H%IÛ¶¶¶IÛ$I%I \ No newline at end of file diff --git a/Pics/.xvpics/left.png b/Pics/.xvpics/left.png new file mode 100644 index 0000000..464f832 --- /dev/null +++ b/Pics/.xvpics/left.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:8x18 Indexed (171 bytes) +#END_OF_COMMENTS +8 18 255 +I$IIÛ¶I$III$II$ÛÛÛÛÛ¶Û¶¶I$III$IIÛ¶ \ No newline at end of file diff --git a/Pics/.xvpics/left_bg.png b/Pics/.xvpics/left_bg.png new file mode 100644 index 0000000..d4772c1 --- /dev/null +++ b/Pics/.xvpics/left_bg.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:8x18 RGB (192 bytes) +#END_OF_COMMENTS +8 18 255 +»ß·¿»»»ß·¿»ß·»ß»»»»»ß»ß·»ß·¿»ß·¿»» \ No newline at end of file diff --git a/Pics/.xvpics/news.png b/Pics/.xvpics/news.png new file mode 100644 index 0000000..bf1bd0c --- /dev/null +++ b/Pics/.xvpics/news.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:57x18 Indexed (276 bytes) +#END_OF_COMMENTS +57 18 255 +I$IIÛ¶I·Ú¶¶%I$IIÛ¶¶$I$IÛ¶$I$üüüüÛ$ÛüüüüÚÛüüüüüüüüüüüüüüüüüÛüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÛüüüüüüüüüüüüüüüüüÛÛÚÛ¶H·Û¶¶H%ÛI$IIÛ¶¶$I$IIÛ¶I·Ú¶¶% \ No newline at end of file diff --git a/Pics/.xvpics/red-upperright.png b/Pics/.xvpics/red-upperright.png new file mode 100644 index 0000000..a8be535 --- /dev/null +++ b/Pics/.xvpics/red-upperright.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:16x16 RGB (344 bytes) +#END_OF_COMMENTS +16 16 255 +ÁáÅÎîûÿÿÿÿÿÿÿÿÿÿÁáÁÁÁÀê×ÿÿÿÿÿÿÿÿÁáÁÁÁÀÂÄêûÿÿÿÿÿÿÁáÁÁÁÀÂÄâÀ×ÿÿÿÿÿÁáÁÁÁÀÂÄâÀÁÓÿÿÿÿÁáÁÁÁÀÂÄâÀÁÁ÷ÿÿÿÁáÁÁÁÀÂÄâÀÁÁÁÿÿÿÁáÁÁÁÀÂÄâÀÁÁÁÊÿÿÁáÁÁÁÀÂÄâÀÁÁÁÁ÷ÿÁáÁÁÁÀÂÄâÀÁÁÁÁêÿÁáÁÁÁÀÂÄâÀÁÁÁÁÁÿÁáÁÁÁÀÂÄâÀÁÁÁÁÁ÷ÁáÁÁÁÀÂÄâÀÁÁÁÁÁîÁáÁÁÁÀÂÄâÀÁÁÁÁÁæÁáÁÁÁÀÂÄâÀÁÁÁÁÁåÁáÁÁÁÀÂÄâÀÁÁÁÁÁá \ No newline at end of file diff --git a/Pics/.xvpics/right.png b/Pics/.xvpics/right.png new file mode 100644 index 0000000..e2be4cb --- /dev/null +++ b/Pics/.xvpics/right.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:8x18 Indexed (172 bytes) +#END_OF_COMMENTS +8 18 255 +I$Û¶Û¶Û¶¶¶Ú·¶Û¶HHHHI%H%IÛ¶¶¶I$Û¶Û¶ \ No newline at end of file diff --git a/Pics/.xvpics/right_bg.png b/Pics/.xvpics/right_bg.png new file mode 100644 index 0000000..d21fc37 --- /dev/null +++ b/Pics/.xvpics/right_bg.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:8x18 RGB (193 bytes) +#END_OF_COMMENTS +8 18 255 +»ß·¿»»»ß·¿»ß·»ß»»»»»ß»ß·»ß·¿»ß·¿»» \ No newline at end of file diff --git a/Pics/.xvpics/search.png b/Pics/.xvpics/search.png new file mode 100644 index 0000000..4436ffc --- /dev/null +++ b/Pics/.xvpics/search.png @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:70x18 Indexed (290 bytes) +#END_OF_COMMENTS +70 18 255 +I$IIÛ¶H%IHÛ¶I$III%Ú·I$IHÛ¶I$üüÛ¶ÛüüüüüüüHÛüüüüüüIüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÛüüüüüüüüüüüüüüüüüüüüüHÛüüüüüüüüüüüüüüüüüüüüüüüüüHÛ¶I$Û¶¶Û$II$III%Ú·I$IIÛ¶H%IHÛ¶ \ No newline at end of file diff --git a/Pics/BBlowerleft.png b/Pics/BBlowerleft.png new file mode 100644 index 0000000..8b6809e Binary files /dev/null and b/Pics/BBlowerleft.png differ diff --git a/Pics/BBlowerleft_xmas.png b/Pics/BBlowerleft_xmas.png new file mode 100644 index 0000000..ff9248b Binary files /dev/null and b/Pics/BBlowerleft_xmas.png differ diff --git a/Pics/BBlowerright.png b/Pics/BBlowerright.png new file mode 100644 index 0000000..f4f537a Binary files /dev/null and b/Pics/BBlowerright.png differ diff --git a/Pics/BBlowerright_xmas.png b/Pics/BBlowerright_xmas.png new file mode 100644 index 0000000..c1d7f90 Binary files /dev/null and b/Pics/BBlowerright_xmas.png differ diff --git a/Pics/BBupperleft.png b/Pics/BBupperleft.png new file mode 100644 index 0000000..0c0ce24 Binary files /dev/null and b/Pics/BBupperleft.png differ diff --git a/Pics/BBupperleft_xmas.png b/Pics/BBupperleft_xmas.png new file mode 100644 index 0000000..8177f9e Binary files /dev/null and b/Pics/BBupperleft_xmas.png differ diff --git a/Pics/BBupperright.png b/Pics/BBupperright.png new file mode 100644 index 0000000..889f2c4 Binary files /dev/null and b/Pics/BBupperright.png differ diff --git a/Pics/BBupperright_xmas.png b/Pics/BBupperright_xmas.png new file mode 100644 index 0000000..489b392 Binary files /dev/null and b/Pics/BBupperright_xmas.png differ diff --git a/Pics/about.png b/Pics/about.png new file mode 100644 index 0000000..a46b65e Binary files /dev/null and b/Pics/about.png differ diff --git a/Pics/about_xmas.png b/Pics/about_xmas.png new file mode 100644 index 0000000..7936bce Binary files /dev/null and b/Pics/about_xmas.png differ diff --git a/Pics/forum.png b/Pics/forum.png new file mode 100644 index 0000000..31ec682 Binary files /dev/null and b/Pics/forum.png differ diff --git a/Pics/forum_xmas.png b/Pics/forum_xmas.png new file mode 100644 index 0000000..47e803d Binary files /dev/null and b/Pics/forum_xmas.png differ diff --git a/Pics/gnulinux.png b/Pics/gnulinux.png new file mode 100644 index 0000000..5b8778d Binary files /dev/null and b/Pics/gnulinux.png differ diff --git a/Pics/gnulinux_xmas.png b/Pics/gnulinux_xmas.png new file mode 100644 index 0000000..3f1c18b Binary files /dev/null and b/Pics/gnulinux_xmas.png differ diff --git a/Pics/home.png b/Pics/home.png new file mode 100644 index 0000000..24a4ad0 Binary files /dev/null and b/Pics/home.png differ diff --git a/Pics/home_xmas.png b/Pics/home_xmas.png new file mode 100644 index 0000000..d89bc8a Binary files /dev/null and b/Pics/home_xmas.png differ diff --git a/Pics/left.png b/Pics/left.png new file mode 100644 index 0000000..23923ef Binary files /dev/null and b/Pics/left.png differ diff --git a/Pics/left_bg.png b/Pics/left_bg.png new file mode 100644 index 0000000..ee1a537 Binary files /dev/null and b/Pics/left_bg.png differ diff --git a/Pics/logo-100.png b/Pics/logo-100.png new file mode 100644 index 0000000..cffcfb3 Binary files /dev/null and b/Pics/logo-100.png differ diff --git a/Pics/news.png b/Pics/news.png new file mode 100644 index 0000000..e3865cc Binary files /dev/null and b/Pics/news.png differ diff --git a/Pics/news_xmas.png b/Pics/news_xmas.png new file mode 100644 index 0000000..9f75c1c Binary files /dev/null and b/Pics/news_xmas.png differ diff --git a/Pics/newsitem_green_ul.png b/Pics/newsitem_green_ul.png new file mode 100644 index 0000000..35af466 Binary files /dev/null and b/Pics/newsitem_green_ul.png differ diff --git a/Pics/newsitem_green_ur.png b/Pics/newsitem_green_ur.png new file mode 100644 index 0000000..a8d2195 Binary files /dev/null and b/Pics/newsitem_green_ur.png differ diff --git a/Pics/newsitem_ul.png b/Pics/newsitem_ul.png new file mode 100644 index 0000000..a1c8822 Binary files /dev/null and b/Pics/newsitem_ul.png differ diff --git a/Pics/newsitem_ur.png b/Pics/newsitem_ur.png new file mode 100644 index 0000000..de0a23a Binary files /dev/null and b/Pics/newsitem_ur.png differ diff --git a/Pics/openlogo-100.png b/Pics/openlogo-100.png new file mode 100644 index 0000000..eff202f Binary files /dev/null and b/Pics/openlogo-100.png differ diff --git a/Pics/pictures.png b/Pics/pictures.png new file mode 100644 index 0000000..615918a Binary files /dev/null and b/Pics/pictures.png differ diff --git a/Pics/pictures_xmas.png b/Pics/pictures_xmas.png new file mode 100644 index 0000000..8ea9f46 Binary files /dev/null and b/Pics/pictures_xmas.png differ diff --git a/Pics/present1.png b/Pics/present1.png new file mode 100644 index 0000000..dffd891 Binary files /dev/null and b/Pics/present1.png differ diff --git a/Pics/present2.png b/Pics/present2.png new file mode 100644 index 0000000..72052ce Binary files /dev/null and b/Pics/present2.png differ diff --git a/Pics/red-lowerleft.png b/Pics/red-lowerleft.png new file mode 100644 index 0000000..caca9c5 Binary files /dev/null and b/Pics/red-lowerleft.png differ diff --git a/Pics/red-lowerright.png b/Pics/red-lowerright.png new file mode 100644 index 0000000..84c0640 Binary files /dev/null and b/Pics/red-lowerright.png differ diff --git a/Pics/red-upperleft.png b/Pics/red-upperleft.png new file mode 100644 index 0000000..c1e3301 Binary files /dev/null and b/Pics/red-upperleft.png differ diff --git a/Pics/red-upperright.png b/Pics/red-upperright.png new file mode 100644 index 0000000..54d17ca Binary files /dev/null and b/Pics/red-upperright.png differ diff --git a/Pics/right.png b/Pics/right.png new file mode 100644 index 0000000..01f6e2a Binary files /dev/null and b/Pics/right.png differ diff --git a/Pics/right_bg.png b/Pics/right_bg.png new file mode 100644 index 0000000..2d01a4e Binary files /dev/null and b/Pics/right_bg.png differ diff --git a/Pics/search.png b/Pics/search.png new file mode 100644 index 0000000..7317c1e Binary files /dev/null and b/Pics/search.png differ diff --git a/Pics/xml.png b/Pics/xml.png new file mode 100644 index 0000000..db9cf37 Binary files /dev/null and b/Pics/xml.png differ diff --git a/Pictures/20021229_Serial_Console/index.shtml b/Pictures/20021229_Serial_Console/index.shtml new file mode 100755 index 0000000..aefec57 --- /dev/null +++ b/Pictures/20021229_Serial_Console/index.shtml @@ -0,0 +1,30 @@ + + + + + + + vanrenterghem.biz - Serial console + + + + + +

Serial console

+

Here's a picture of my desktop with an older PC displaying some kernel +panic info, captured by setting up a serial console on the main desktop PC. +It took some work to figure everything out, but in the end it's pretty straightforward.

+ +Picture of my desktop with kernel panic info displayed on small display by the use of a serial console + + + + + diff --git a/Pictures/20021229_Serial_Console/index.shtml~ b/Pictures/20021229_Serial_Console/index.shtml~ new file mode 100755 index 0000000..5649eda --- /dev/null +++ b/Pictures/20021229_Serial_Console/index.shtml~ @@ -0,0 +1,29 @@ + + + + + + + http://frederik.gotdns.org:1976 - Serial console + + + +
+

Serial console

+

Here's a picture of my desktop with an older PC displaying some kernel +panic info, captured by setting up a serial console on the main desktop PC. +It took some work to figure everything out, but in the end it's pretty straightforward.

+ +Picture of my desktop with kernel panic info displayed on small display by the use of a serial console + + + + + diff --git a/Pictures/20021229_Serial_Console/serial_console.jpg b/Pictures/20021229_Serial_Console/serial_console.jpg new file mode 100755 index 0000000..ae39b4d Binary files /dev/null and b/Pictures/20021229_Serial_Console/serial_console.jpg differ diff --git a/Pictures/20030201_Sneeuw/640/dsc00670_640.jpg b/Pictures/20030201_Sneeuw/640/dsc00670_640.jpg new file mode 100755 index 0000000..7605fb3 Binary files /dev/null and b/Pictures/20030201_Sneeuw/640/dsc00670_640.jpg differ diff --git a/Pictures/20030201_Sneeuw/640/dsc00671_640.jpg b/Pictures/20030201_Sneeuw/640/dsc00671_640.jpg new file mode 100755 index 0000000..79c96e2 Binary files /dev/null and b/Pictures/20030201_Sneeuw/640/dsc00671_640.jpg differ diff --git a/Pictures/20030201_Sneeuw/640/dsc00672_640.jpg b/Pictures/20030201_Sneeuw/640/dsc00672_640.jpg new file mode 100755 index 0000000..a5a3395 Binary files /dev/null and b/Pictures/20030201_Sneeuw/640/dsc00672_640.jpg differ diff --git a/Pictures/20030201_Sneeuw/640/dsc00673_640.jpg b/Pictures/20030201_Sneeuw/640/dsc00673_640.jpg new file mode 100755 index 0000000..4156885 Binary files /dev/null and b/Pictures/20030201_Sneeuw/640/dsc00673_640.jpg differ diff --git a/Pictures/20030201_Sneeuw/800/dsc00670_800.jpg b/Pictures/20030201_Sneeuw/800/dsc00670_800.jpg new file mode 100755 index 0000000..a617e6f Binary files /dev/null and b/Pictures/20030201_Sneeuw/800/dsc00670_800.jpg differ diff --git a/Pictures/20030201_Sneeuw/800/dsc00671_800.jpg b/Pictures/20030201_Sneeuw/800/dsc00671_800.jpg new file mode 100755 index 0000000..2e4cbbe Binary files /dev/null and b/Pictures/20030201_Sneeuw/800/dsc00671_800.jpg differ diff --git a/Pictures/20030201_Sneeuw/800/dsc00672_800.jpg b/Pictures/20030201_Sneeuw/800/dsc00672_800.jpg new file mode 100755 index 0000000..d9a91d4 Binary files /dev/null and b/Pictures/20030201_Sneeuw/800/dsc00672_800.jpg differ diff --git a/Pictures/20030201_Sneeuw/800/dsc00673_800.jpg b/Pictures/20030201_Sneeuw/800/dsc00673_800.jpg new file mode 100755 index 0000000..6e119bf Binary files /dev/null and b/Pictures/20030201_Sneeuw/800/dsc00673_800.jpg differ diff --git a/Pictures/20030201_Sneeuw/dsc00670.jpg b/Pictures/20030201_Sneeuw/dsc00670.jpg new file mode 100755 index 0000000..5ec8ec4 Binary files /dev/null and b/Pictures/20030201_Sneeuw/dsc00670.jpg differ diff --git a/Pictures/20030201_Sneeuw/dsc00670.jpg.xml b/Pictures/20030201_Sneeuw/dsc00670.jpg.xml new file mode 100755 index 0000000..359e1a5 --- /dev/null +++ b/Pictures/20030201_Sneeuw/dsc00670.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Leuven, BE + 20030201 + Departure day ski vacation + Snowy day + + \ No newline at end of file diff --git a/Pictures/20030201_Sneeuw/dsc00671.jpg b/Pictures/20030201_Sneeuw/dsc00671.jpg new file mode 100755 index 0000000..a878488 Binary files /dev/null and b/Pictures/20030201_Sneeuw/dsc00671.jpg differ diff --git a/Pictures/20030201_Sneeuw/dsc00671.jpg.xml b/Pictures/20030201_Sneeuw/dsc00671.jpg.xml new file mode 100755 index 0000000..359e1a5 --- /dev/null +++ b/Pictures/20030201_Sneeuw/dsc00671.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Leuven, BE + 20030201 + Departure day ski vacation + Snowy day + + \ No newline at end of file diff --git a/Pictures/20030201_Sneeuw/dsc00672.jpg b/Pictures/20030201_Sneeuw/dsc00672.jpg new file mode 100755 index 0000000..d4b7888 Binary files /dev/null and b/Pictures/20030201_Sneeuw/dsc00672.jpg differ diff --git a/Pictures/20030201_Sneeuw/dsc00672.jpg.xml b/Pictures/20030201_Sneeuw/dsc00672.jpg.xml new file mode 100755 index 0000000..359e1a5 --- /dev/null +++ b/Pictures/20030201_Sneeuw/dsc00672.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Leuven, BE + 20030201 + Departure day ski vacation + Snowy day + + \ No newline at end of file diff --git a/Pictures/20030201_Sneeuw/dsc00673.jpg b/Pictures/20030201_Sneeuw/dsc00673.jpg new file mode 100755 index 0000000..192f8bf Binary files /dev/null and b/Pictures/20030201_Sneeuw/dsc00673.jpg differ diff --git a/Pictures/20030201_Sneeuw/dsc00673.jpg.xml b/Pictures/20030201_Sneeuw/dsc00673.jpg.xml new file mode 100755 index 0000000..359e1a5 --- /dev/null +++ b/Pictures/20030201_Sneeuw/dsc00673.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Leuven, BE + 20030201 + Departure day ski vacation + Snowy day + + \ No newline at end of file diff --git a/Pictures/20030201_Sneeuw/index.shtml b/Pictures/20030201_Sneeuw/index.shtml new file mode 100755 index 0000000..35d8c3f --- /dev/null +++ b/Pictures/20030201_Sneeuw/index.shtml @@ -0,0 +1,53 @@ + + + + + + vanrenterghem.biz - Snowy day + + + + + + + + + + + + + + + + + + + + + + +
+

640x480 800x600
+Description:
+People:
+Location: Leuven, BE

+
+

640x480 800x600
+Description:
+People:
+Location: Leuven, BE

+
+

640x480 800x600
+Description:
+People:
+Location: Leuven, BE

+
+

640x480 800x600
+Description:
+People:
+Location: Leuven, BE

+
+ + + + diff --git a/Pictures/20030201_Sneeuw/thumb/dsc00670_thumb.jpg b/Pictures/20030201_Sneeuw/thumb/dsc00670_thumb.jpg new file mode 100755 index 0000000..0973ee0 Binary files /dev/null and b/Pictures/20030201_Sneeuw/thumb/dsc00670_thumb.jpg differ diff --git a/Pictures/20030201_Sneeuw/thumb/dsc00671_thumb.jpg b/Pictures/20030201_Sneeuw/thumb/dsc00671_thumb.jpg new file mode 100755 index 0000000..7ea462c Binary files /dev/null and b/Pictures/20030201_Sneeuw/thumb/dsc00671_thumb.jpg differ diff --git a/Pictures/20030201_Sneeuw/thumb/dsc00672_thumb.jpg b/Pictures/20030201_Sneeuw/thumb/dsc00672_thumb.jpg new file mode 100755 index 0000000..f3c50dc Binary files /dev/null and b/Pictures/20030201_Sneeuw/thumb/dsc00672_thumb.jpg differ diff --git a/Pictures/20030201_Sneeuw/thumb/dsc00673_thumb.jpg b/Pictures/20030201_Sneeuw/thumb/dsc00673_thumb.jpg new file mode 100755 index 0000000..e9c894d Binary files /dev/null and b/Pictures/20030201_Sneeuw/thumb/dsc00673_thumb.jpg differ diff --git a/Pictures/20030713_MTB/640/dsc01210_640.jpg b/Pictures/20030713_MTB/640/dsc01210_640.jpg new file mode 100755 index 0000000..f1025fc Binary files /dev/null and b/Pictures/20030713_MTB/640/dsc01210_640.jpg differ diff --git a/Pictures/20030713_MTB/800/dsc01210_800.jpg b/Pictures/20030713_MTB/800/dsc01210_800.jpg new file mode 100755 index 0000000..691453d Binary files /dev/null and b/Pictures/20030713_MTB/800/dsc01210_800.jpg differ diff --git a/Pictures/20030713_MTB/dsc01210.jpg b/Pictures/20030713_MTB/dsc01210.jpg new file mode 100755 index 0000000..97f6b8e Binary files /dev/null and b/Pictures/20030713_MTB/dsc01210.jpg differ diff --git a/Pictures/20030713_MTB/dsc01210.jpg.xml b/Pictures/20030713_MTB/dsc01210.jpg.xml new file mode 100755 index 0000000..8b2f876 --- /dev/null +++ b/Pictures/20030713_MTB/dsc01210.jpg.xml @@ -0,0 +1,12 @@ + + + + My new bike!!! It's a Bulls Comp 4.50 that was priced very +competitively. + + Home + 20030713 + New bike + New bike + + \ No newline at end of file diff --git a/Pictures/20030713_MTB/dsc01210.jpg.xml~ b/Pictures/20030713_MTB/dsc01210.jpg.xml~ new file mode 100755 index 0000000..0cdcc73 --- /dev/null +++ b/Pictures/20030713_MTB/dsc01210.jpg.xml~ @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Pictures/20030713_MTB/index.shtml b/Pictures/20030713_MTB/index.shtml new file mode 100755 index 0000000..8970a3b --- /dev/null +++ b/Pictures/20030713_MTB/index.shtml @@ -0,0 +1,25 @@ + + + + + +Pictures http://frederik.gotdns.org:1976/ + + + + + + + + +
+

640x480 800x600
+Description: My new bike!!! It's a Bulls Comp 4.50 that was priced very +competitively.
+People:
+Location: Home

+
+ + + + diff --git a/Pictures/20030713_MTB/index.shtml~ b/Pictures/20030713_MTB/index.shtml~ new file mode 100755 index 0000000..4220830 --- /dev/null +++ b/Pictures/20030713_MTB/index.shtml~ @@ -0,0 +1,25 @@ + + + + + +Pictures http://frederik.gotdns.org:1976/ + + + + + + + + +
+

640x480 800x600
+Description: My new bike!!! It's a Bulls Comp 4.50 that was priced very +competitively.
+People:
+Location: Home

+
+ + + + diff --git a/Pictures/20030713_MTB/thumb/dsc01210_thumb.jpg b/Pictures/20030713_MTB/thumb/dsc01210_thumb.jpg new file mode 100755 index 0000000..05e92b3 Binary files /dev/null and b/Pictures/20030713_MTB/thumb/dsc01210_thumb.jpg differ diff --git a/Pictures/20031029_Pumpkin/.xvpics/dsc01449.jpg b/Pictures/20031029_Pumpkin/.xvpics/dsc01449.jpg new file mode 100644 index 0000000..b8e11f1 --- /dev/null +++ b/Pictures/20031029_Pumpkin/.xvpics/dsc01449.jpg @@ -0,0 +1,5 @@ +P7 332 +#IMGINFO:1024x768 RGB (94811 bytes) +#END_OF_COMMENTS +80 60 255 +IImIIhNHnHN‘ImIHIMiIm%HImEMIHiImMi’±r±‘’qmirimmmmmiqnlj‘‘mmmIinLjLjLnImmmMIIIImIIHnHnHJ‘‘IMdMIIiMIHjHIIILJHIIm’‘’±m²qmmnlnmmimmmmnlŽ‘qimImmIMiMiNhnmqiMiHIIHnHImInHm’mMi(iIIIMiHJHmIIIhJLjln‘‘Ž‘’‘‘nhrimmmmmirljL’‘imMImIImNhNmimqmiIMImIImHnHNiI‘mMiIHNDmIIIlJHIiIILJhnl’‘Ž‘’‘‘mmi’HnmMminlnln‘‘inHMjHNljLnMim‘nHmIImIImHnHJmmmqiIHJLEmIIHJhNhm²¬ÖìҌÌ͑²‘‘mmiqjlnmMIqjln‘m‘iNhMnHnMmimNlnmmiMhIIHJLIiMiMim’lnHEMi)hJHim²Õ̉hˆdŒ‰ˆŒhˆˆ‰¬‰ŒnljmmmImmmInlnH’qimIMnHnmiMmMinpjmHnIIHJHImIMimmmŽLIiMIhNù‰°…ˆˆˆˆˆŒˆŒˆŒˆˆŒ‰ˆ°­­µ²¶ÚiMiMmImmIiq’mHnDNmIMmiMNhNmmILjI(JHi)mIiMi‘nl’mmŽq¶ÑŒ¨Œ„ˆˆdˆhd‰dˆhd­‘±û×ÖÞúÖµMiMiMImmnHM%Mi)mImIMJHmŽLIDm)DIIIMiIMiI‘mmnmmqÒúŒ¬ˆŒe„hddddedDdiúڍúÛÚþÛúúÚ¶liMiMimIm‘mIImImImImmMmiMIlII$IIIIIIIHNHnlnlŽlúõöDhŒˆedD„hh„hhh‰ÛþÕú’ÙûÚÚÕ±¶±¶hn‘mrmmmmnqmnlnmmmnMmmmmmmI)h*hNImImIqnlnm²úùÕehhddehˆhhd‰hhÿÿÕÖµ–¬m¶lŽŽŒqŽLjmmMiMmiNljMmImImmImnlJmImiMIhNhMimmmmmÖúúöÙìiDDˆd‰hhh„ihhÛúՍµiˆmÖÙ¶±mm‘imHmIiLIiHIIhIMIHIiHmmmmImME)HIIiMEqmimþúúõúÑÑDdhdh‰hhdh·þÑIhhm­±ŒhˆhˆŒiŒŽˆI(IIH)D)I(%I(II(IIELŽÕ²öµmMnDIIIIMHJh’H’þúúùöõÑDDd‰hhh„Iˆûhhmh’ŒˆdhdhhÿýúD`iˆhIIII(I)H%II(II-DMEM­öµÒÖm’)DIIIm)IhnlŽþúúúþöõô‰ˆhehhdhe‘dhm’ÖŒdŒˆdhehhˆÚ¬didˆeHI)IH%I(I)IH)II(I%mÍÙÒÖщqŽM$EIHNhIMiÚúÿùûÿÙñÍÐd‰hdhdEhiHÿŒhehˆDddhehˆ­ˆdh‰d‰ˆI)HI%H*HI)HI)I(EILÎÕÒÕÒi‘nl!HJLimImiÿùûýûÚúÑõ¨‰hdhedhDiIliúhhˆheDdddhd­Ð…hd‰h„‰h)II(I)IH)II$I)I(iÍÚÑÖÑd’rh%HiMmimmiúþúÚöþöÔöшѭDhdeDhDiIl…lˆiˆDdDddiˆÌˆeˆd‰dˆeˆI(I)IH)I)DI)I(I)hÎùÒÕÒirlE mImImljýúúúúöШö¬ÍÑÌhEddDhEhIH…lˆheddhDdíÐd„d‰dˆeˆˆ‰H)EM(IIIIHI)MEL%mÍúÕÒ±hŽrh)DIIiLjHþöùúÚÌòÙñ¬Öñ­ddhAH`IDHiˆDŒ„IdddhÒ¬eddd„i„didˆ‰)LJhMIImIILJHIMiÑÖÌihhŽrmHEHIImIi±úùúÕúúñÑЄÖðˆ…dDDIDDidhhh…DdhÒЭdiheD„dˆe„h‰ˆ¶»ÖÚ»ÚûÞÚÛûÞûÞûûÙÍÖÑd’rmi(jlNN‘ÕúúùúñÕñ¬ñˆÑ¨i„dhEDDDehdhEŒddÑ­„Idˆeˆddd‰„h„­ßûÞûßúÿÛþÛÿÚûþÛÿõÖöÕi’m’Ž–’‘“¶–¶ùúúúöÕöШÐ̈́hքded$d%dhdhEˆú­¬Ed„Ed„ddi„h…h„dˆ×ÿÞûúßûÞûßúßúÿÛúúÕÎՉrrŽ’‘—±—‘×ýúúúÈÞñ̬ìÑd­Ú„dˆ…DDDehdHdÛÐÒD„hedddde„dˆeˆdidˆ©¶ßúÿÛÞûÚÿÚûÕ»õÚÖÖõ­Öi’mŽ’‘’’–²–ÖùúöùÑúð̄ŒÌöѬd…ˆhí¬Ð®ÑÕ̩ш¨i„dDi`ddedh„d‰ˆeˆd¨’ŒŽ­‘±­’¬²­­±ö°Òñ‰ˆŽŒŽ¬‰‘­öùúÔñþõÐȄD©Ð¨„։̈Ññ±ñ²¨ˆˆdeD„Dedd@‰dd„D‰ˆ„heˆˆ‰­q©‘­Œ‰mñÖÌш‰ˆˆ­‰Œ­‰ùõúúÖùų́„DeÐ̨­Õ¨diȭ̉±d„DdEddd`id`h„idh„ˆ‰„hˆ…Œ‰ŒŽŒŽŒ­­m¬Î¬‰„h‰h‰ˆiˆˆùõõõÐöô̈„DedˆÌ̈ed„ŒÈˆ`id@dedDddd‰d„dDidˆˆ‰„ˆd‰ˆ±m­±­ˆÍÒõd‰ˆŒ‰‰ˆˆ‰ùùñõÌÕðÌÈh…Dd@d¬e„¨±d„ddedDde@ˆ`heddDdEdhe„ˆˆˆ‰d„ˆŽlmmmŽlnŒnl҈ÉÙòd‰ˆiŒ‰ˆ‰ˆõõôÍÌÖõð¬¨ddeD@dD©¬„hd…D„Ddahddde`Dd@eHdid„ˆˆ‰„h„‰mmqmmm‰MŒnЅ¬²õd’mŽqqŽq’úùöÌùÍðÐÑÈdh€EDD@DEÌdddedddd`i@d`deD`diladˆ„ˆˆ…ˆ„h®lEHi$iDIHDIdIф­Œöd’r‘Ž‘m’‘’õùûÐõÖǫ̃¨d­dd@DED h`edD`dEddd@de`Dddadl@…h„ˆˆ…„hˆ‰IhIDIHEHiDIH҄͌öd’m’‘’‘Ž’‘ùùÍñÿÐ̨õ¬©ÈdddDE $ ˆ…@ˆ@deddded@dd`Ed`Ddd…ˆˆˆ„‰dˆ²‘ŽqŽ’’’–’‘Ž‘Òˆ²ˆÖ²’‘·–·š·—º—øúìÖõÌ­ñЄiìddddeHel­dd`edD„Eh`de`dD`edD„dˆ„‰ˆ„ˆ…h¶——–·–›¶»–»·¶¶²Öi‘²—»¶›·–›¶þôÈùðÑö¬ÌdñÌdddeddheD`dhaDd@Idhe`Dddadh`ˆ„i„„h„‰ˆ„—¶¶–·¶›¶»—Ú›¶×¶Ö²lŠŽ’š·—º—–»·øõÌÖÌÑñЄ„ˆˆed„Dda„D„D`eh@ddEdˆiheddddd„i„„dˆ‰„ˆ„‰›¶›»¶–’׺›¶»¶×¶Ö’±Žn’—¶—š—¶»»ôú¬ñÐÍõ€h`hedDedD„deddddehDd…ddddedd„ddˆe„ˆ„h¤i¨d·º—»–—¶»›¶»¶·¶Ú²²­’“–—–—–—Ûº»ùöÔöÌõõ„ddddeddDedd€h`ehHdidddedd„dh…d„dˆ„d‰„ˆˆ‰„ˆ»›¶—»š·º—»¶›¶×¶Ö²²Ñ’—–—–—·š·Þ—úùÑôìÖù€h„„Ed„dDedddddedldiddeddˆdd…dd„dˆ`‰„„ˆˆ…h‰»–»·º»–»»¶›¶·º×¶Ö²Ñ—–·–—–›·º»»ÕúÐñÕöԁhdddedd`dded@ddDE@$„deddddd…dd`h„eˆ„d„‰ˆ„»·š»—º—»¶›¶»¶·º×±Ò֗–—¶—š·»š×›ºõÑñÕõöddDe@DD!D D@Ed d@dE`dddded„ddde„dˆ„ˆ…h„ˆ‰ˆŽ»»–»—º—º—»–·º·¶¶®¶Ñ—–—¶—š·»º»·º·ÐùñÑШedh@ED DA$@D E$ D E DD`de„hd„deˆd„ˆ„„…hˆ‰·›º·›¶›¶›·š·¶›¶·¶²Ñ֗–—¶›·º·º»›¶»ÑõÑõú`°©ddD%@D@dDAd@D@DA$@$$A$@$de„@h`ˆd…„dˆ„i²»›º·›¶›¶›·š·¶›¶·¶²Öú—–—¶›¶»·º»·š»ÕöúÕù¨­ÌdedDdeddddded`Dde@D@$ E $D$edddd…dˆd‰’·š»·š·›¶—š·›¶·–»–·²ùö—¶›¶—»º·»º»–»·ÙöÑú¨Ì¬¨eˆddd„daddddd…ddddd`edd`Hd…dd„d„‰ˆeˆ›»–·›º·›–»–—·š—¶—¶—ÑúÖ·š·–»·º»º»·º—»¶ºöùͨˆ¨­ˆ„dˆedd„dde„dd`d„eddd„dd„‰d„d„d‰ˆ‰—º—·š—º·›¶›—¶›–—–—¶—²úÑ·š·º—»¶»ÛšÛ–»·–»ùûÌ͌ÍЄi„d„dd„dha„dddd„`d…dd„h„„d‰„ˆd‰„—¶›¶—›¶›¶›·š·—š—¶—–—–·Ñú·š·º·»ºÛ»º×š·Ú×Ú·ÕõõÑÐ͈ÑhÍd„d„dd„ded„dd„h„d…h„„dˆ„e„ˆe‘—»–—¶›—¶›–»–»—¶›–—¶—¶—Ò±»¶—ºÛ·º»Ûº»¶·º×º×ºõõõ¨ÚͬˆÌ„…dh„dˆaˆd„dd„e„h„d„ˆd…„h„e–»–·º›·º»—º›¶—»º—–·—–—–¶’’»¶›×º»¶Û»š×ÚÖú×ÚÕõñùÐÌͬ­Ì­¬„ˆd„e„dd„i`ˆd„dˆ`‰dd„d`…Hedim“¶›¶»»–—š——º·š——–“š’—’r»¶»¶»»º×»š×¶Ú×ÛÚ¶±®ÕñðÐ̭̉Ñdˆ„h`‰„hd„ed„dˆd„ed@ddADdEheii»—º—–—r›¶—š·»–w–“–w’–w»¶›·º·Ú»›¶Û¶öÚ²±ÖõõõõñÐÑ̨‰¬ˆ„ˆˆe¨dddid„ddde`dD$AD`DEdIdii“¶–w–—–—·–›º·w––s–—r—–»¶›·ºÛš×›Ö»ÖöÚùúõùõõñÐí°©­hh…¬¨¬„¬d„ˆah„dD`E$ D ED@dEdD‰Eˆs–“–—–—–—š·»–—v’—–w¶w’»¶»»¶»º—Û¶»ÖúùöùúõõÐñÌñ­Œ©±­Dd$…hȈ„ˆD@ED $ %@$DADD@eDdehi“’v—–—–—–»—º—–s–—–—–—’»º·»Ú»¶»Û¶»ÖÛùÚõõõõñõÖô­­ˆ­ˆ¬©ˆˆdDED D!$$ D!DDE@$eD@idDiŽn–“–v—’—º—»–—v—’›’—v·v»¶»»º»¶»ÛºÛÛ¶ùöõõÕúùöõѱͭ¬¬‰­hˆ‰ˆdDed@d%dD@eDDED@EdD…hjm’“––s–—–»–—¶w–——–—–—–—»º·»º»·Ú»ºÛ×ÚÕñúõúúùöÕÕÍ­¨Œ©ˆ¬©¬­¬‰hheDiddEdDdEDAH@ideˆiiŽn’–s–—–—¶›–—’›–“v—rv—’»»¶»º»·ºÛº×ÛÚõÚöþöÿÚõѭ̉Œ©ˆˆ­¬‰Œ®¬‰‘m‰hidDeDiDeDheˆeijnm—’—––—¶w¶s–—r—rv’w–—»¶»»º·»º·Ú·ÚûÚúúÚöõÛþÍ­¨Œ‰¨‰ˆŒ‰ˆ­­±²mhŽhmm²±iˆehijˆjm’iŽ’r¶“––—’w–“v’w’v—’w’»¶»·šÛ–Û»¶»úÛÖúþûÕúûڭѬ‰ˆ‰ˆ­­Œ‰ˆ­iŒimŽŒjµeh‰iiˆjhŽi‘n“v¶r—’r—v’s–rr—’vsr \ No newline at end of file diff --git a/Pictures/20031029_Pumpkin/dsc01449.jpg b/Pictures/20031029_Pumpkin/dsc01449.jpg new file mode 100755 index 0000000..8c0e85f Binary files /dev/null and b/Pictures/20031029_Pumpkin/dsc01449.jpg differ diff --git a/Pictures/20050409_New_York/20050904_0910.jpg.xml b/Pictures/20050409_New_York/20050904_0910.jpg.xml new file mode 100644 index 0000000..15824e5 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_0910.jpg.xml @@ -0,0 +1,11 @@ + + + + The railstation at Newark International airport. I ended up here after my plane from Atlanta to Amsterdam had to return to a US airport because of a technical malfunction. By what we were told, Newark International had the best conditions to land. As it took 24 hours before we could leave again, I went to Manhattan for a few hours on Saturday April 9th, 2005. + + Newark, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + Newark railway station + + diff --git a/Pictures/20050409_New_York/20050904_1003.jpg.xml b/Pictures/20050409_New_York/20050904_1003.jpg.xml new file mode 100644 index 0000000..d6cd480 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1003.jpg.xml @@ -0,0 +1,11 @@ + + + + I don't recall why I took this picture... Anyway, street in Manhattan. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1011.jpg.xml b/Pictures/20050409_New_York/20050904_1011.jpg.xml new file mode 100644 index 0000000..ac352a3 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1011.jpg.xml @@ -0,0 +1,11 @@ + + + + Funny creature. Clearly I was in the US. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1012.jpg.xml b/Pictures/20050409_New_York/20050904_1012.jpg.xml new file mode 100644 index 0000000..c3a8830 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1012.jpg.xml @@ -0,0 +1,11 @@ + + + + A few years after the last time I was there, I was on Times Square again this weekend! + + Times Square, New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + Times Square + + diff --git a/Pictures/20050409_New_York/20050904_1013.jpg.xml b/Pictures/20050409_New_York/20050904_1013.jpg.xml new file mode 100644 index 0000000..099cdd1 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1013.jpg.xml @@ -0,0 +1,11 @@ + + + + Notice the Starbucks on the picture? There's now a Starbucks in about every other block in Manhattan it seems. I walked by at least 5 of them, probably more. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + More Times Square + + diff --git a/Pictures/20050409_New_York/20050904_1107.jpg.xml b/Pictures/20050409_New_York/20050904_1107.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1107.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1109.jpg.xml b/Pictures/20050409_New_York/20050904_1109.jpg.xml new file mode 100644 index 0000000..157d406 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1109.jpg.xml @@ -0,0 +1,11 @@ + + + + As it was a beautiful day, I went for a walk in Central Park. + + Entrance to Central Park at the corner with Broadway, New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1114.jpg.xml b/Pictures/20050409_New_York/20050904_1114.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1114.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1117.jpg.xml b/Pictures/20050409_New_York/20050904_1117.jpg.xml new file mode 100644 index 0000000..79aa356 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1117.jpg.xml @@ -0,0 +1,11 @@ + + + + Horses and carriages in Central Park. That's so fun about Manhattan. Filled with high-rises, yet you still get to see horses in a park. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + Horses and carriages in Central Park. + + diff --git a/Pictures/20050409_New_York/20050904_1118.jpg.xml b/Pictures/20050409_New_York/20050904_1118.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1118.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1119.jpg.xml b/Pictures/20050409_New_York/20050904_1119.jpg.xml new file mode 100644 index 0000000..77159ce --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1119.jpg.xml @@ -0,0 +1,11 @@ + + + + A lonely jazz musician under a bridge, still in Central Park. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1120.jpg.xml b/Pictures/20050409_New_York/20050904_1120.jpg.xml new file mode 100644 index 0000000..580b1c7 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1120.jpg.xml @@ -0,0 +1,11 @@ + + + + ...and one minute down the road, there's an ice skate thingy. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1121.jpg.xml b/Pictures/20050409_New_York/20050904_1121.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1121.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1136.jpg.xml b/Pictures/20050409_New_York/20050904_1136.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1136.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1137.jpg.xml b/Pictures/20050409_New_York/20050904_1137.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1137.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1146.jpg.xml b/Pictures/20050409_New_York/20050904_1146.jpg.xml new file mode 100644 index 0000000..d64f5ec --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1146.jpg.xml @@ -0,0 +1,11 @@ + + + + Some history about Bow Bridge. + + Bow Bridge, Central Park, New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1147.jpg.xml b/Pictures/20050409_New_York/20050904_1147.jpg.xml new file mode 100644 index 0000000..4bece1a --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1147.jpg.xml @@ -0,0 +1,11 @@ + + + + It's a rather nice bridge indeed, complete with wooden walkway. + + Bow Bridge, Central Park, New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1156.jpg.xml b/Pictures/20050409_New_York/20050904_1156.jpg.xml new file mode 100644 index 0000000..48d47af --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1156.jpg.xml @@ -0,0 +1,11 @@ + + + + Yup, I was there... This is in front of what was previously a bird observatory if I recall it correctly, overlooking a small pond. + Me + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1202.jpg.xml b/Pictures/20050409_New_York/20050904_1202.jpg.xml new file mode 100644 index 0000000..8aaaf40 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1202.jpg.xml @@ -0,0 +1,11 @@ + + + + They even have an obelisk in here. Amazing park, really. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + Obelisk Central Park + + diff --git a/Pictures/20050409_New_York/20050904_1208.jpg.xml b/Pictures/20050409_New_York/20050904_1208.jpg.xml new file mode 100644 index 0000000..d6503f7 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1208.jpg.xml @@ -0,0 +1,11 @@ + + + + And squirrels. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1209.jpg.xml b/Pictures/20050409_New_York/20050904_1209.jpg.xml new file mode 100644 index 0000000..e830073 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1209.jpg.xml @@ -0,0 +1,11 @@ + + + + A salted bagel for lunch. I didn't want to waste time eating, and this seemed appropriate. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1301.jpg.xml b/Pictures/20050409_New_York/20050904_1301.jpg.xml new file mode 100644 index 0000000..cf89adf --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1301.jpg.xml @@ -0,0 +1,11 @@ + + + + Some church on 5th Avenue. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1352.jpg.xml b/Pictures/20050409_New_York/20050904_1352.jpg.xml new file mode 100644 index 0000000..e6fd1e9 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1352.jpg.xml @@ -0,0 +1,11 @@ + + + + The New York Public Library. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1353.jpg.xml b/Pictures/20050409_New_York/20050904_1353.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1353.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1409.jpg.xml b/Pictures/20050409_New_York/20050904_1409.jpg.xml new file mode 100644 index 0000000..3ccaa84 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1409.jpg.xml @@ -0,0 +1,11 @@ + + + + Inventive how they solve the scarcity of parking space. I guess building an actual parking building was prohibitively expensive or something. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1440.jpg.xml b/Pictures/20050409_New_York/20050904_1440.jpg.xml new file mode 100644 index 0000000..f9c9ff6 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1440.jpg.xml @@ -0,0 +1,11 @@ + + + + There's not much to see currently at the WTC site. It's all fenced off, with pictures remembering the terrorist events 3.5 years ago. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1442.jpg.xml b/Pictures/20050409_New_York/20050904_1442.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1442.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1444.jpg.xml b/Pictures/20050409_New_York/20050904_1444.jpg.xml new file mode 100644 index 0000000..56b94e9 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1444.jpg.xml @@ -0,0 +1,11 @@ + + + + Obviously there's always some conspiracy theorist on such a location. In this case, there were a couple of them even. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1450.jpg.xml b/Pictures/20050409_New_York/20050904_1450.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1450.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1454.jpg.xml b/Pictures/20050409_New_York/20050904_1454.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1454.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1456.jpg.xml b/Pictures/20050409_New_York/20050904_1456.jpg.xml new file mode 100644 index 0000000..c79ab6c --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1456.jpg.xml @@ -0,0 +1,11 @@ + + + + St Patrick's Church has been turned into a memorial museum, with lots of pictures, badges from firefighters from across the country, ... + + Church Street, Manhattan, New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1511.jpg.xml b/Pictures/20050409_New_York/20050904_1511.jpg.xml new file mode 100644 index 0000000..90039fc --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1511.jpg.xml @@ -0,0 +1,11 @@ + + + + Obviously I got around taking the subway, pictured here. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1512.jpg.xml b/Pictures/20050409_New_York/20050904_1512.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1512.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1529.jpg.xml b/Pictures/20050409_New_York/20050904_1529.jpg.xml new file mode 100644 index 0000000..c3f0f2c --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1529.jpg.xml @@ -0,0 +1,11 @@ + + + + There was a line with hundreds of people all the way around the Macy's block. Turns out there were preselections for America's Next Top Model that day. No idea what 95% of the people in line believed to be doing there. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1532.jpg.xml b/Pictures/20050409_New_York/20050904_1532.jpg.xml new file mode 100644 index 0000000..061db7a --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1532.jpg.xml @@ -0,0 +1,11 @@ + + + + As I needed a new shirt for the flight (they kept my suitcase on the plane overnight...), I went into the Macy's store. The entire first floor looked like a Britney Spears fan site, with posters advertising her latest perfume all over the place. + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1601.jpg.xml b/Pictures/20050409_New_York/20050904_1601.jpg.xml new file mode 100644 index 0000000..ffefd44 --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1601.jpg.xml @@ -0,0 +1,11 @@ + + + + On the train from Penn Station back to Newark International. A 23 minute ride only by the way, very convenient. + + Penn Station, New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1631.jpg.xml b/Pictures/20050409_New_York/20050904_1631.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1631.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/20050904_1632.jpg.xml b/Pictures/20050409_New_York/20050904_1632.jpg.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/20050904_1632.jpg.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/20050409_New_York/640/20050904_0910_640.jpg b/Pictures/20050409_New_York/640/20050904_0910_640.jpg new file mode 100644 index 0000000..c2eeec3 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_0910_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1003_640.jpg b/Pictures/20050409_New_York/640/20050904_1003_640.jpg new file mode 100644 index 0000000..b1f9ac8 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1003_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1011_640.jpg b/Pictures/20050409_New_York/640/20050904_1011_640.jpg new file mode 100644 index 0000000..9308d47 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1011_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1012_640.jpg b/Pictures/20050409_New_York/640/20050904_1012_640.jpg new file mode 100644 index 0000000..537d677 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1012_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1013_640.jpg b/Pictures/20050409_New_York/640/20050904_1013_640.jpg new file mode 100644 index 0000000..3704b00 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1013_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1107_640.jpg b/Pictures/20050409_New_York/640/20050904_1107_640.jpg new file mode 100644 index 0000000..742cd38 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1107_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1109_640.jpg b/Pictures/20050409_New_York/640/20050904_1109_640.jpg new file mode 100644 index 0000000..ab465a7 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1109_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1114_640.jpg b/Pictures/20050409_New_York/640/20050904_1114_640.jpg new file mode 100644 index 0000000..7d34a5c Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1114_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1117_640.jpg b/Pictures/20050409_New_York/640/20050904_1117_640.jpg new file mode 100644 index 0000000..64382b3 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1117_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1118_640.jpg b/Pictures/20050409_New_York/640/20050904_1118_640.jpg new file mode 100644 index 0000000..85350b1 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1118_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1119_640.jpg b/Pictures/20050409_New_York/640/20050904_1119_640.jpg new file mode 100644 index 0000000..20c17b3 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1119_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1120_640.jpg b/Pictures/20050409_New_York/640/20050904_1120_640.jpg new file mode 100644 index 0000000..319aa0d Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1120_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1121_640.jpg b/Pictures/20050409_New_York/640/20050904_1121_640.jpg new file mode 100644 index 0000000..3ab5c8b Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1121_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1136_640.jpg b/Pictures/20050409_New_York/640/20050904_1136_640.jpg new file mode 100644 index 0000000..b1a9f23 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1136_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1137_640.jpg b/Pictures/20050409_New_York/640/20050904_1137_640.jpg new file mode 100644 index 0000000..305b442 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1137_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1146_640.jpg b/Pictures/20050409_New_York/640/20050904_1146_640.jpg new file mode 100644 index 0000000..3cdb2b6 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1146_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1147_640.jpg b/Pictures/20050409_New_York/640/20050904_1147_640.jpg new file mode 100644 index 0000000..130b491 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1147_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1156_640.jpg b/Pictures/20050409_New_York/640/20050904_1156_640.jpg new file mode 100644 index 0000000..63ecf87 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1156_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1202_640.jpg b/Pictures/20050409_New_York/640/20050904_1202_640.jpg new file mode 100644 index 0000000..87584b5 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1202_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1208_640.jpg b/Pictures/20050409_New_York/640/20050904_1208_640.jpg new file mode 100644 index 0000000..f19d8d4 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1208_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1209_640.jpg b/Pictures/20050409_New_York/640/20050904_1209_640.jpg new file mode 100644 index 0000000..b5e9dac Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1209_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1301_640.jpg b/Pictures/20050409_New_York/640/20050904_1301_640.jpg new file mode 100644 index 0000000..a7d83f1 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1301_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1352_640.jpg b/Pictures/20050409_New_York/640/20050904_1352_640.jpg new file mode 100644 index 0000000..5568aad Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1352_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1353_640.jpg b/Pictures/20050409_New_York/640/20050904_1353_640.jpg new file mode 100644 index 0000000..2f5991f Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1353_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1409_640.jpg b/Pictures/20050409_New_York/640/20050904_1409_640.jpg new file mode 100644 index 0000000..ed4fc69 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1409_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1440_640.jpg b/Pictures/20050409_New_York/640/20050904_1440_640.jpg new file mode 100644 index 0000000..0347f44 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1440_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1442_640.jpg b/Pictures/20050409_New_York/640/20050904_1442_640.jpg new file mode 100644 index 0000000..ecb949b Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1442_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1444_640.jpg b/Pictures/20050409_New_York/640/20050904_1444_640.jpg new file mode 100644 index 0000000..9d16b1d Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1444_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1450_640.jpg b/Pictures/20050409_New_York/640/20050904_1450_640.jpg new file mode 100644 index 0000000..eb5ae2c Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1450_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1454_640.jpg b/Pictures/20050409_New_York/640/20050904_1454_640.jpg new file mode 100644 index 0000000..85562d7 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1454_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1456_640.jpg b/Pictures/20050409_New_York/640/20050904_1456_640.jpg new file mode 100644 index 0000000..9363114 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1456_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1511_640.jpg b/Pictures/20050409_New_York/640/20050904_1511_640.jpg new file mode 100644 index 0000000..bfb8b54 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1511_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1512_640.jpg b/Pictures/20050409_New_York/640/20050904_1512_640.jpg new file mode 100644 index 0000000..91477fc Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1512_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1529_640.jpg b/Pictures/20050409_New_York/640/20050904_1529_640.jpg new file mode 100644 index 0000000..ff7e150 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1529_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1532_640.jpg b/Pictures/20050409_New_York/640/20050904_1532_640.jpg new file mode 100644 index 0000000..292f6be Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1532_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1601_640.jpg b/Pictures/20050409_New_York/640/20050904_1601_640.jpg new file mode 100644 index 0000000..5cccc2a Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1601_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1631_640.jpg b/Pictures/20050409_New_York/640/20050904_1631_640.jpg new file mode 100644 index 0000000..6e883e7 Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1631_640.jpg differ diff --git a/Pictures/20050409_New_York/640/20050904_1632_640.jpg b/Pictures/20050409_New_York/640/20050904_1632_640.jpg new file mode 100644 index 0000000..8af358b Binary files /dev/null and b/Pictures/20050409_New_York/640/20050904_1632_640.jpg differ diff --git a/Pictures/20050409_New_York/PhotoPage.shtml b/Pictures/20050409_New_York/PhotoPage.shtml new file mode 100644 index 0000000..3f3dc02 --- /dev/null +++ b/Pictures/20050409_New_York/PhotoPage.shtml @@ -0,0 +1,358 @@ + + + + + +Pictures - http://vanrenterghem.biz/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Newark railway station +

Other sizes: Slightly bigger
+Description: The railstation at Newark International airport. I ended up here after my plane from Atlanta to Amsterdam had to return to a US airport because of a technical malfunction. By what we were told, Newark International had the best conditions to land. As it took 24 hours before we could leave again, I went to Manhattan for a few hours on Saturday April 9th, 2005.
+People:
+Location: Newark, US

+
+

Other sizes: Slightly bigger
+Description: I don't recall why I took this picture... Anyway, street in Manhattan.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Funny creature. Clearly I was in the US.
+People:
+Location: New York, US

+
Times Square +

Other sizes: Slightly bigger
+Description: A few years after the last time I was there, I was on Times Square again this weekend!
+People:
+Location: Times Square, New York, US

+
More Times Square +

Other sizes: Slightly bigger
+Description: Notice the Starbucks on the picture? There's now a Starbucks in about every other block in Manhattan it seems. I walked by at least 5 of them, probably more.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: As it was a beautiful day, I went for a walk in Central Park.
+People:
+Location: Entrance to Central Park at the corner with Broadway, New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
Horses and carriages in Central Park. +

Other sizes: Slightly bigger
+Description: Horses and carriages in Central Park. That's so fun about Manhattan. Filled with high-rises, yet you still get to see horses in a park.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: A lonely jazz musician under a bridge, still in Central Park.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: ...and one minute down the road, there's an ice skate thingy.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Some history about Bow Bridge.
+People:
+Location: Bow Bridge, Central Park, New York, US

+
+

Other sizes: Slightly bigger
+Description: It's a rather nice bridge indeed, complete with wooden walkway.
+People:
+Location: Bow Bridge, Central Park, New York, US

+
+

Other sizes: Slightly bigger
+Description: Yup, I was there... This is in front of what was previously a bird observatory if I recall it correctly, overlooking a small pond.
+People: Me
+Location: New York, US

+
Obelisk Central Park +

Other sizes: Slightly bigger
+Description: They even have an obelisk in here. Amazing park, really.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: And squirrels.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: A salted bagel for lunch. I didn't want to waste time eating, and this seemed appropriate.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Some church on 5th Avenue.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: The New York Public Library.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Inventive how they solve the scarcity of parking space. I guess building an actual parking building was prohibitively expensive or something.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: There's not much to see currently at the WTC site. It's all fenced off, with pictures remembering the terrorist events 3.5 years ago.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Obviously there's always some conspiracy theorist on such a location. In this case, there were a couple of them even.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: St Patrick's Church has been turned into a memorial museum, with lots of pictures, badges from firefighters from across the country, ...
+People:
+Location: Church Street, Manhattan, New York, US

+
+

Other sizes: Slightly bigger
+Description: Obviously I got around taking the subway, pictured here.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: There was a line with hundreds of people all the way around the Macy's block. Turns out there were preselections for America's Next Top Model that day. No idea what 95% of the people in line believed to be doing there.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: As I needed a new shirt for the flight (they kept my suitcase on the plane overnight...), I went into the Macy's store. The entire first floor looked like a Britney Spears fan site, with posters advertising her latest perfume all over the place.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: On the train from Penn Station back to Newark International. A 23 minute ride only by the way, very convenient.
+People:
+Location: Penn Station, New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+ + + + diff --git a/Pictures/20050409_New_York/index.shtml b/Pictures/20050409_New_York/index.shtml new file mode 100644 index 0000000..1223006 --- /dev/null +++ b/Pictures/20050409_New_York/index.shtml @@ -0,0 +1,358 @@ + + + + + +Pictures - http://vanrenterghem.biz/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Newark railway station +

Other sizes: Slightly bigger
+Description: The railstation at Newark International airport. I ended up here after my plane from Atlanta to Amsterdam had to return to a US airport because of a technical malfunction. By what we were told, Newark International had the best conditions to land. As it took 24 hours before we could leave again, I went to Manhattan for a few hours on Saturday April 9th, 2005.
+People:
+Location: Newark, US

+
+

Other sizes: Slightly bigger
+Description: I don't recall why I took this picture... Anyway, street in Manhattan.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Funny creature. Clearly I was in the US.
+People:
+Location: New York, US

+
Times Square +

Other sizes: Slightly bigger
+Description: A few years after the last time I was there, I was on Times Square again this weekend!
+People:
+Location: Times Square, New York, US

+
More Times Square +

Other sizes: Slightly bigger
+Description: Notice the Starbucks on the picture? There's now a Starbucks in about every other block in Manhattan it seems. I walked by at least 5 of them, probably more.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: As it was a beautiful day, I went for a walk in Central Park.
+People:
+Location: Entrance to Central Park at the corner with Broadway, New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
Horses and carriages in Central Park. +

Other sizes: Slightly bigger
+Description: Horses and carriages in Central Park. That's so fun about Manhattan. Filled with high-rises, yet you still get to see horses in a park.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: A lonely jazz musician under a bridge, still in Central Park.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: ...and one minute down the road, there's an ice skate thingy.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Some history about Bow Bridge.
+People:
+Location: Bow Bridge, Central Park, New York, US

+
+

Other sizes: Slightly bigger
+Description: It's a rather nice bridge indeed, complete with wooden walkway.
+People:
+Location: Bow Bridge, Central Park, New York, US

+
+

Other sizes: Slightly bigger
+Description: Yup, I was there... This is in front of what was previously a bird observatory if I recall it correctly, overlooking a small pond.
+People: Me
+Location: New York, US

+
Obelisk Central Park +

Other sizes: Slightly bigger
+Description: They even have an obelisk in here. Amazing park, really.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: And squirrels.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: A salted bagel for lunch. I didn't want to waste time eating, and this seemed appropriate.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Some church on 5th Avenue.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: The New York Public Library.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Inventive how they solve the scarcity of parking space. I guess building an actual parking building was prohibitively expensive or something.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: There's not much to see currently at the WTC site. It's all fenced off, with pictures remembering the terrorist events 3.5 years ago.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: Obviously there's always some conspiracy theorist on such a location. In this case, there were a couple of them even.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: St Patrick's Church has been turned into a memorial museum, with lots of pictures, badges from firefighters from across the country, ...
+People:
+Location: Church Street, Manhattan, New York, US

+
+

Other sizes: Slightly bigger
+Description: Obviously I got around taking the subway, pictured here.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: There was a line with hundreds of people all the way around the Macy's block. Turns out there were preselections for America's Next Top Model that day. No idea what 95% of the people in line believed to be doing there.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: As I needed a new shirt for the flight (they kept my suitcase on the plane overnight...), I went into the Macy's store. The entire first floor looked like a Britney Spears fan site, with posters advertising her latest perfume all over the place.
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description: On the train from Penn Station back to Newark International. A 23 minute ride only by the way, very convenient.
+People:
+Location: Penn Station, New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: New York, US

+
+ + + + diff --git a/Pictures/20050409_New_York/thumb/20050904_0910_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_0910_thumb.jpg new file mode 100644 index 0000000..8e5ba96 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_0910_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1003_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1003_thumb.jpg new file mode 100644 index 0000000..45d9f39 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1003_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1011_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1011_thumb.jpg new file mode 100644 index 0000000..b15b270 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1011_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1012_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1012_thumb.jpg new file mode 100644 index 0000000..8f27ff5 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1012_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1013_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1013_thumb.jpg new file mode 100644 index 0000000..d5263f8 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1013_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1107_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1107_thumb.jpg new file mode 100644 index 0000000..8003848 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1107_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1109_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1109_thumb.jpg new file mode 100644 index 0000000..e20c051 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1109_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1114_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1114_thumb.jpg new file mode 100644 index 0000000..6c94ec5 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1114_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1117_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1117_thumb.jpg new file mode 100644 index 0000000..fc754c8 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1117_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1118_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1118_thumb.jpg new file mode 100644 index 0000000..3b5254d Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1118_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1119_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1119_thumb.jpg new file mode 100644 index 0000000..47dd3f1 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1119_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1120_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1120_thumb.jpg new file mode 100644 index 0000000..8ef13f9 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1120_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1121_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1121_thumb.jpg new file mode 100644 index 0000000..8f1921c Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1121_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1136_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1136_thumb.jpg new file mode 100644 index 0000000..e9a2484 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1136_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1137_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1137_thumb.jpg new file mode 100644 index 0000000..23c2e99 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1137_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1146_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1146_thumb.jpg new file mode 100644 index 0000000..bd91a1e Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1146_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1147_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1147_thumb.jpg new file mode 100644 index 0000000..6d20944 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1147_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1156_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1156_thumb.jpg new file mode 100644 index 0000000..0766675 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1156_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1202_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1202_thumb.jpg new file mode 100644 index 0000000..f1b2ec1 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1202_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1208_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1208_thumb.jpg new file mode 100644 index 0000000..f767316 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1208_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1209_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1209_thumb.jpg new file mode 100644 index 0000000..dee9e56 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1209_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1301_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1301_thumb.jpg new file mode 100644 index 0000000..ea70771 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1301_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1352_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1352_thumb.jpg new file mode 100644 index 0000000..6f7b01b Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1352_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1353_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1353_thumb.jpg new file mode 100644 index 0000000..b5092a4 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1353_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1409_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1409_thumb.jpg new file mode 100644 index 0000000..9889646 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1409_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1440_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1440_thumb.jpg new file mode 100644 index 0000000..67d2def Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1440_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1442_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1442_thumb.jpg new file mode 100644 index 0000000..75bb513 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1442_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1444_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1444_thumb.jpg new file mode 100644 index 0000000..dab8ae9 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1444_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1450_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1450_thumb.jpg new file mode 100644 index 0000000..5915e72 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1450_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1454_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1454_thumb.jpg new file mode 100644 index 0000000..d2a8138 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1454_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1456_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1456_thumb.jpg new file mode 100644 index 0000000..af980e0 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1456_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1511_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1511_thumb.jpg new file mode 100644 index 0000000..22fb8e2 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1511_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1512_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1512_thumb.jpg new file mode 100644 index 0000000..9d9ea27 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1512_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1529_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1529_thumb.jpg new file mode 100644 index 0000000..48291f9 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1529_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1532_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1532_thumb.jpg new file mode 100644 index 0000000..0f39008 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1532_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1601_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1601_thumb.jpg new file mode 100644 index 0000000..448b203 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1601_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1631_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1631_thumb.jpg new file mode 100644 index 0000000..c2bbea3 Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1631_thumb.jpg differ diff --git a/Pictures/20050409_New_York/thumb/20050904_1632_thumb.jpg b/Pictures/20050409_New_York/thumb/20050904_1632_thumb.jpg new file mode 100644 index 0000000..c64a25a Binary files /dev/null and b/Pictures/20050409_New_York/thumb/20050904_1632_thumb.jpg differ diff --git a/Pictures/20050409_New_York/xml_description.xml b/Pictures/20050409_New_York/xml_description.xml new file mode 100644 index 0000000..cf6a7de --- /dev/null +++ b/Pictures/20050409_New_York/xml_description.xml @@ -0,0 +1,11 @@ + + + + + + New York, US + 20050409 + Unplanned day in Manhattan upon return to Amsterdam from Atlanta due to technical malfunction of plane + + + diff --git a/Pictures/200505_Amsterdam/28-05-05_1600.jpg b/Pictures/200505_Amsterdam/28-05-05_1600.jpg new file mode 100644 index 0000000..16d9961 Binary files /dev/null and b/Pictures/200505_Amsterdam/28-05-05_1600.jpg differ diff --git a/Pictures/200505_Amsterdam/28-05-05_1600.jpg.xml b/Pictures/200505_Amsterdam/28-05-05_1600.jpg.xml new file mode 100644 index 0000000..e68c170 --- /dev/null +++ b/Pictures/200505_Amsterdam/28-05-05_1600.jpg.xml @@ -0,0 +1,11 @@ + + + + One of the many canals in Amsterdam. Surprisingly, there are only a couple of pictures from this trip on my cell phone. Have I lost the urge to take a picture of everything? + + Amsterdam, NL + 20050528 + Weekend trip to Amsterdam + + + diff --git a/Pictures/200505_Amsterdam/28-05-05_1737.jpg b/Pictures/200505_Amsterdam/28-05-05_1737.jpg new file mode 100644 index 0000000..3699378 Binary files /dev/null and b/Pictures/200505_Amsterdam/28-05-05_1737.jpg differ diff --git a/Pictures/200505_Amsterdam/28-05-05_1737.jpg.xml b/Pictures/200505_Amsterdam/28-05-05_1737.jpg.xml new file mode 100644 index 0000000..cb7a346 --- /dev/null +++ b/Pictures/200505_Amsterdam/28-05-05_1737.jpg.xml @@ -0,0 +1,11 @@ + + + + No, I have not completely lost that urge... This is a vending machine for greasy food-like items. Gekke Hollanders... + + Amsterdam, NL + 20050528 + Weekend trip to Amsterdam + Fried food vending machine + + diff --git a/Pictures/200505_Amsterdam/640/28-05-05_1600_640.jpg b/Pictures/200505_Amsterdam/640/28-05-05_1600_640.jpg new file mode 100644 index 0000000..16d9961 Binary files /dev/null and b/Pictures/200505_Amsterdam/640/28-05-05_1600_640.jpg differ diff --git a/Pictures/200505_Amsterdam/640/28-05-05_1737_640.jpg b/Pictures/200505_Amsterdam/640/28-05-05_1737_640.jpg new file mode 100644 index 0000000..3699378 Binary files /dev/null and b/Pictures/200505_Amsterdam/640/28-05-05_1737_640.jpg differ diff --git a/Pictures/200505_Amsterdam/index.shtml b/Pictures/200505_Amsterdam/index.shtml new file mode 100644 index 0000000..d3b67ce --- /dev/null +++ b/Pictures/200505_Amsterdam/index.shtml @@ -0,0 +1,34 @@ + + + + + +Pictures - http://vanrenterghem.biz/ + + + + + + + + + + + + + +
+

Other sizes: Slightly bigger
+Description: One of the many canals in Amsterdam. Surprisingly, there are only a couple of pictures from this trip on my cell phone. Have I lost the urge to take a picture of everything?
+People:
+Location: Amsterdam, NL

+
Fried food vending machine +

Other sizes: Slightly bigger
+Description: No, I have not completely lost that urge... This is a vending machine for greasy food-like items. Gekke Hollanders...
+People:
+Location: Amsterdam, NL

+
+ + + + diff --git a/Pictures/200505_Amsterdam/thumb/28-05-05_1600_thumb.jpg b/Pictures/200505_Amsterdam/thumb/28-05-05_1600_thumb.jpg new file mode 100644 index 0000000..4b76cb7 Binary files /dev/null and b/Pictures/200505_Amsterdam/thumb/28-05-05_1600_thumb.jpg differ diff --git a/Pictures/200505_Amsterdam/thumb/28-05-05_1737_thumb.jpg b/Pictures/200505_Amsterdam/thumb/28-05-05_1737_thumb.jpg new file mode 100644 index 0000000..411de78 Binary files /dev/null and b/Pictures/200505_Amsterdam/thumb/28-05-05_1737_thumb.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0854.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0854.jpg.xml new file mode 100644 index 0000000..562dc94 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0854.jpg.xml @@ -0,0 +1,11 @@ + + + + View from the Homewood Suites hotel parking lot. + + Explorer Drive, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0913.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0913.jpg.xml new file mode 100644 index 0000000..139cda5 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0913.jpg.xml @@ -0,0 +1,11 @@ + + + + As I had half a day off Saturday morning, I had asked where to go in Colorado Springs on Friday. The answer was that I probably should take a look at a place called Garden of the Gods. + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0918.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0918.jpg.xml new file mode 100644 index 0000000..b5d183e --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0918.jpg.xml @@ -0,0 +1,11 @@ + + + + It is a nature park that used to be owned by a local businessman, but was donated to the city of Colorado Springs several decennia ago. + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0923.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0923.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0923.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0924.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0924.jpg.xml new file mode 100644 index 0000000..2c7d59b --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0924.jpg.xml @@ -0,0 +1,11 @@ + + + + The attraction of the place is that it is a really nice collection of natural rock sculptures, at the foot of the Rocky Mountains. + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0929.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0929.jpg.xml new file mode 100644 index 0000000..f7522b1 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0929.jpg.xml @@ -0,0 +1,11 @@ + + + + + Me + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0931.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0931.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0931.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0932.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0932.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0932.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0938.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0938.jpg.xml new file mode 100644 index 0000000..f743856 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0938.jpg.xml @@ -0,0 +1,11 @@ + + + + I believe the mountain in the distance is <a href="http://www.pikes-peak.com/PikesPeakCam.htm">Pikes Peak</a>. + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0939.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0939.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0939.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0959.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0959.jpg.xml new file mode 100644 index 0000000..456ea4a --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_0959.jpg.xml @@ -0,0 +1,11 @@ + + + + The park in itself, with concrete pathways making it easily accessible, is not very big. However, there is quite a bit more place to walk around in the immediate surrounding of the main park. + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1000.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1000.jpg.xml new file mode 100644 index 0000000..9213553 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1000.jpg.xml @@ -0,0 +1,11 @@ + + + + They're hard to spot in this picture, taken with my camera phone, but there were actually some small deer-like creatures hopping around over there as well... + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1001.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1001.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1001.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1003.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1003.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1003.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1004.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1004.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1004.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1028.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1028.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1028.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1031.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1031.jpg.xml new file mode 100644 index 0000000..6c2eb46 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1031.jpg.xml @@ -0,0 +1,11 @@ + + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1131.jpg.xml b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1131.jpg.xml new file mode 100644 index 0000000..1e57634 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/12-11-05_1131.jpg.xml @@ -0,0 +1,11 @@ + + + + This picture is slightly off-topic in this series, but anyway... This was apparently one of the earliest buildings in what is now Colorado Springs, and dates back to the gold rush. + + Historical city center, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0854_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0854_640.jpg new file mode 100644 index 0000000..620474c Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0854_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0913_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0913_640.jpg new file mode 100644 index 0000000..156750c Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0913_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0918_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0918_640.jpg new file mode 100644 index 0000000..1de06f0 Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0918_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0923_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0923_640.jpg new file mode 100644 index 0000000..152660c Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0923_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0924_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0924_640.jpg new file mode 100644 index 0000000..df4dfbd Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0924_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0929_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0929_640.jpg new file mode 100644 index 0000000..76d367a Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0929_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0931_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0931_640.jpg new file mode 100644 index 0000000..13b5eaf Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0931_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0932_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0932_640.jpg new file mode 100644 index 0000000..8dd090e Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0932_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0938_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0938_640.jpg new file mode 100644 index 0000000..ddc670d Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0938_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0939_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0939_640.jpg new file mode 100644 index 0000000..20a486c Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0939_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0959_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0959_640.jpg new file mode 100644 index 0000000..93e05e9 Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_0959_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1000_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1000_640.jpg new file mode 100644 index 0000000..27fef7d Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1000_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1001_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1001_640.jpg new file mode 100644 index 0000000..fdec1f6 Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1001_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1003_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1003_640.jpg new file mode 100644 index 0000000..d59416f Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1003_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1004_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1004_640.jpg new file mode 100644 index 0000000..f204647 Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1004_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1028_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1028_640.jpg new file mode 100644 index 0000000..82bd763 Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1028_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1031_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1031_640.jpg new file mode 100644 index 0000000..de02dbe Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1031_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1131_640.jpg b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1131_640.jpg new file mode 100644 index 0000000..0d151b6 Binary files /dev/null and b/Pictures/20051112_COS_Garden_of_the_Gods/640/12-11-05_1131_640.jpg differ diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/PhotoPage.shtml b/Pictures/20051112_COS_Garden_of_the_Gods/PhotoPage.shtml new file mode 100644 index 0000000..8c20e93 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/PhotoPage.shtml @@ -0,0 +1,177 @@ + + + + + +Pictures - http://vanrenterghem.biz/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Other sizes: Slightly bigger
+Description: View from the Homewood Suites hotel parking lot.
+People:
+Location: Explorer Drive, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: As I had half a day off Saturday morning, I had asked where to go in Colorado Springs on Friday. The answer was that I probably should take a look at a place called Garden of the Gods.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: It is a nature park that used to be owned by a local businessman, but was donated to the city of Colorado Springs several decennia ago.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: The attraction of the place is that it is a really nice collection of natural rock sculptures, at the foot of the Rocky Mountains.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People: Me
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: I believe the mountain in the distance is Pikes Peak.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: The park in itself, with concrete pathways making it easily accessible, is not very big. However, there is quite a bit more place to walk around in the immediate surrounding of the main park.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: They're hard to spot in this picture, taken with my camera phone, but there were actually some small deer-like creatures hopping around over there as well...
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: This picture is slightly off-topic in this series, but anyway... This was apparently one of the earliest buildings in what is now Colorado Springs, and dates back to the gold rush.
+People:
+Location: Historical city center, Colorado Springs, CO, US

+
+ + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/index.shtml b/Pictures/20051112_COS_Garden_of_the_Gods/index.shtml new file mode 100644 index 0000000..7f9e496 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/index.shtml @@ -0,0 +1,177 @@ + + + + + +Pictures - http://vanrenterghem.biz/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Other sizes: Slightly bigger
+Description: View from the Homewood Suites hotel parking lot.
+People:
+Location: Explorer Drive, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: As I had half a day off Saturday morning, I had asked where to go in Colorado Springs on Friday. The answer was that I probably should take a look at a place called Garden of the Gods.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: It is a nature park that used to be owned by a local businessman, but was donated to the city of Colorado Springs several decennia ago.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: The attraction of the place is that it is a really nice collection of natural rock sculptures, at the foot of the Rocky Mountains.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People: Me
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: I believe the mountain in the distance is Pikes Peak.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: The park in itself, with concrete pathways making it easily accessible, is not very big. However, there is quite a bit more place to walk around in the immediate surrounding of the main park.
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: They're hard to spot in this picture, taken with my camera phone, but there were actually some small deer-like creatures hopping around over there as well...
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description:
+People:
+Location: Garden of the Gods, Colorado Springs, CO, US

+
+

Other sizes: Slightly bigger
+Description: This picture is slightly off-topic in this series, but anyway... This was apparently one of the earliest buildings in what is now Colorado Springs, and dates back to the gold rush.
+People:
+Location: Historical city center, Colorado Springs, CO, US

+
+ + + + diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/temp b/Pictures/20051112_COS_Garden_of_the_Gods/temp new file mode 100644 index 0000000..ab28cbb --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/temp @@ -0,0 +1,221 @@ +P6 +640 480 +255 + !"%%%%%%%# # ! # #$$&&14=9X“?Y–?Y–>W—;W–3R“/Q‘-O*LŒ'I‰$F†!Cƒ B‚%G‡%G‡&Hˆ&Hˆ'I‰(JŠ)K‹)KŠ+MŒ+MŠ+MŠ+MŠ+MŠ+MŠ+MŠ+MŠ0R0R0R0R0R0R0R/S0S“.T“.T•.T•-T™-Sš,Tœ*Tž-V¥,W¦*W¨*Wª)W­)W­)W¯(W¯$W²"X²"X²"X²"X²"X²"X²"X² V° V° V° V° V° V° V°"U°"S¯$S¯$S¯$S¯$S¯$S¯$S¯$S¯"Q­"Q­"Q­"Q­"Q­"Q­"Q­"Q« L¥ L£ M¢ M¢ M  M  Mž MžJ˜I–H•H“J’L” O—#O–&N”'N“'N“'N“'N“'N“'N“'N“%L‘$K$K#J"IŽ!H!H!FŒ$B‹%AŠ%AŠ%B†&Bƒ&C(B{(Cx7g3_-V*N*J/K6R%9Q'7G$0>(6"0-!/&4)7#1 .,**-#1%3!""&&&&&&&$ # ! # #$$&&-0958AACOIKWLN[KMZIKZHJYGIXIKZIKXFHU;=I,.: )  !%(+/215637:+.5),5&)2#&/"%.!$-"%."%. #,!* )"%.-098;D?BKAEPKN]EK[BHXDJZGM]EK[[…C[‡F_ˆJcŒLeŽLeŽLeŽLeŽLeŽHaŠC\…:S|4Mv3Lu8Qz>W€A\‡C]ŽB^B^A]A]@\Ž@\Ž?[;W‰;W‰;W‰;W‰;W‰;W‰;W‰;W‡7S‚6S5R~4Q}3P|2O{1Nz1Nz3P|5R~7T€9V‚:Wƒ:Wƒ9V‚8U7Px6Pu4Ns3Mr2Lq3Mr4Ns5Ot>X}=W|)7#1 ."0%3(6"0 .,*+ .#1&4 !"#&&&&&&&$ # ! # #$$&&),525>>@LHJVLN[MO\MO^MO^LN]MO^MO\IKX>@L.0<!* +  + #'*.2559:8DT?EUBHXBHX>DT:@P4:J>@LGIUKMZMO\NP_OQ`PRaQSbQS`LN[@BN/1="+!   $(+0477;<:>A+.5),5&)2#&/"%.!$-"%."%.!$-#&/(+4.1:69BDT;AQ:@P;AQ=CS>DT>DT8>N>DTEK[FL\EK[GM]NTdU[k[`tbg{tyŒ‘¥ ¥¹› ´x}‘Z_s38LGL`afzns‡lq…hmhmgn[cvQ\nQ\nU`rWbt]hz`k}[fxOZlITfDOaCN`HSeOZlU`rXcu`k}cn€al~YdvT_qT_qU`rT_qP[mEPb5@R(3E%0B+6H5@RI[I[AL^HSeP[mZewbmgr„P[mMXjKVhKVhNYkP[mQ\nP[m>I[8CUMXjs~~‰›lw‰ZewS^pAL^CN`OZlYdvWbtVasVasP[mFQc@K]GRdYdv\gyQ\nNYkWbt\evhq‚muˆcn€Zew\i|dq„fuŠet‰dt‹csŠas‰^pˆYm…Vj‚QhˆYs¤c€ºsÊ€ŸØ‰¨á‹«äŠ­åŒ¯ç´ë‘¶í¶íŒµëŒµë“¾ó¡Ìÿ­Øÿ®ÔÿœÁޠÅò³Øÿ®Óÿ¡ÆóŽ³à–»è£ÈõªÏü¸ÝÿÎóÿªÏüZ¬3W‡ƒ§ÛÀö£×e‰½s—É„¨Ú’¶æ“·ç´á›Àì§Ìø¦ËõžÄëšÀç¢Èï¬Òö³Ýõ³Þñ³Þñ³Þï³Ýí³ÝëµÝé¶ÜåÃèðÄéïÈëïÊíïÎðñÐòñÔôó×ôòßññâððäððâððäððâððäððâððæòòäòòæòòäòòæòòäòòæòòäòòáñðáñðáñðáñðáñðáñðáñðáñðàðïàðïßïîÞîíÞîíÝíìÜìëØîìÏïìÉðíÉðíÈïìÇîëÆíêÆíêÆíêÃêçÃêçÃêçÃêçÃêçÃêçÃêçÂêé¾çí¼çî½èï½èï½èï½èï½èï½èï¿êñ¿êñ¿êñ¿êñ¿êñ¿êñ¿êñÁêðËîôÌíòÌíòÌíòÌíòÌíòÌíòÌíòÎïôÎïôÎïôÎïôÎïôÎïôÎïôËðöÍúÿ¼íô®ßæ¯ßé·çõ¹èø­ÜðŸÍäpºy¦Å¼á¢Îõ™Ä䔿ì§Ïÿœ½ó„£ÜiˆÁ[z³Wv¯Ut­Sr«RqªJi¢Ji¢Kj£Lk¤Ml¥Ml¥Nm¦Km¬Jp·Gq½Gp¿Fo¾En¾Dm½Dm¿Cl¾DlÁDlÁDlÃDlÃDlÄDlÄDkÆFl¿MnµRq±Ll§GhžFf—>_Œ6V}7X{Qm’Sp’Vp“Vp“Tl’Sk‘Ul•Vo˜[v¡Yv¢Wt TqRo›Ol˜Mj–Li•If’B_‹2O{-Jv=Z†Jg“Jg“HeKcIb‹HaŠKdPi’Rk”Pi’NgKdD]†;T}4Mv4Mv:S|D]†HcŽD^B^A]?[=Y‹;W‰:Vˆ9U‡>ZŒ>ZŒ>ZŒ>ZŒ>ZŒ>ZŒ>ZŒ>ZŠ=YˆX}>X}>X}Y†=Y‰=Y‰=Y‰=Y‹=Y‹=X=X?Z‘>X‘DTBHXGM]IO_HN^JP`QWgV\l_dxdi}uzŽ‘–ªŸ¤¸•©qvŠSXl(-A&1C/:L7BTAL^DOaHSeJUgKVhNYkS^pXcuHSeHSeITfKVhP[mVas[fx_j|MXjJUgHSeITfMXjP[mQ\nQ\n;FX6ASQ\nxƒ•|‡™gr„YdvVasKVhLWiU`r[fxYdvZewXcuOZlCN`=HZEPbXcu]hzS^pQ\n[fxem€lt‡ks†^i{Xcw_llxŽq€—jyiy’gwdvŽ`q‹Ym†Ui„Ofˆa{®sÊŠ§áŒ«ä€ŸØ{›Ô„§ß‘´ì‰®åŒ±èŒ³êŒµë¶ì’½òÈý§Ðÿ¬Òÿ™¾ë‡¬ÙÂï³Øÿ¯Ôÿ£ÈõµâŸÄñ§ÌùªÏü²×ÿÄéÿš¿ìNs @d”¥ÙzÓ_ƒ·kÃˆ¬Þ‰­ßŠ®Þˆ¬Ü“¸åš¿ë¢Çó¨Í÷ªÐ÷¬Òù¯Õü²Øü²Üõ°Ýð²Ýð³Þïµßïµßí¸àì¸àêÂèñÃêïÆìïÈîïÍññÏóñÒôó×ôòÞòñáññâðñáññâðñáññâðñáññäòóãóóäòóãóóäòóãóóäòóãóóáñðßòðßòðßòðßòðßòðßòðßòðÞñïÞñïÝðîÜïíÜïíÛîìÚíëØîìÏïìÌðîÌðîËïíÊîìÉíëÉíëÈìêÆêèÆêèÆêèÆêèÆêèÆêèÆêèÄëê¿èî½èï¼çî¼çî¼çî¼çî¼çî¼çî½èï½èï½èï½èï½èï½èï½èï¿èîÇìòÉìòÉìòÉìòÉìòÉìòÉìòÉìòÍðöÍðöÍðöÍðöÍðöÍðöÍðöÊñöÉöû¿ðôºëðºëò½í÷¹é÷«ÚìŸÎ␾؅²Ï}©Ì­Ò€¬Óv¡Ëx£Î‡¯àŽ¯å‚¡Úr‘Êe„½Yx±On§Kj£Ml¥Kj£Kj£Lk¤Ml¥Nm¦Po¨Qp©Np­Jq¶Fp¸Fp¸Eo·Dn¸Cm¹Cl»Cl»Cl¼Cl¼Cl¾Cl¾CkÀCkÀCkÀEl»Op·Ts³OoªIj Hh™@aŽ9Y€9Z}Pl‘Ro‘Vp“Uo’Sk‘RjTk”Un—Zu Xu¡VsŸTqRo›Pm™Nk—Mj–Nk—?\ˆ'Dp!>j7T€Mj–Ro›Ro™Ph”MfJcŒLeŽPi’Rk”Pi’NgLeŽF_ˆ>W€8Qz9R{?XG`‰Kf‘FaD`B^Ž?[‹=Y‰:V†8T„7Sƒ?[‹?[‹?[‹?[‹?[‹?[‹?[‹?[‹A]Œ@]‰>[‡;X„8U6S4Q}3P|4Q}5R~6S7T€7T€6S4Q}3Pz1Jr1Kp0Jo0Jo1Kp3Mr5Ot7Qv:Ty;UzX}?Y~@Z?[‚>Y†=Yˆ=Yˆ=Yˆ=Y‰=Y‰=Y‹=X?Z‘=X:T6P‰2L‡.Hƒ,F)F‚)Hˆ(JŠ*LŒ,NŽ/Q‘1S“2T”3U•4V–4V–5W—6X˜7Y™7Y™8Zš8Z™4V•4V“4V“4V“4V“4V“4V“4V“0R0R0R0R0R0R0R/S0S“.T“.T•.T•-T™-Sš,Tœ*Tž-V¥,W¦*W¨*Wª)W­)W­)W¯(W¯$W²"X²"X²"X²"X²"X²"X²"X² V° V° V° V° V° V° V°"U°"S¯$S¯$S¯$S¯$S¯$S¯$S¯$S¯"Q­"Q­"Q­"Q­"Q­"Q­"Q­"Q«#O¨#O¦#P¥#P¥#P£#P£#P¡#P¡M›L™J—I”I‘J’L” L“&N”'N“'N“'N“'N“'N“'N“'N“%L‘$K$K#J"IŽ!H!H!FŒA‰ @‰"@ˆ"@†#@„#A$A}$Ay!8;D@BNFHTHJWHJWIKZKM\QSbRTcRTaNP]BDP24@"%.$   $'*.1045269+.5),5&)2#&/"%.!$-"%."%.!$-),547@=@IADMBENBENAEP>AP=CSI[CN`HSeKVhNYkVasal~ju‡VasVasT_qS^pS^pS^pT_qT_qKVhHSeFQcGRdKVhOZlP[mP[m8CU6ASVas{†˜w‚”cn€ZewYdvS^pT_q[fx_j|]hz]hzYdvLWi>I[;FXEPbVas\gyVasU`r]hzlt‡ju‡fqƒ]j}[h{bq†o~•w‡ m}–iz”ev’_sŽ\o[p\qZr˜o‹½ Ù˜·ð–¶ïŸØx˜Ñ…¨à”·ï†«â‰®åŠ±èŒ³êŽµì‘ºð˜Á÷žÇû¦Ìû—¼é‰®ÛœÁî­Òÿ©Îû¢Çô•ºçœÁî£Èõ¨Íú°ÕÿÁæÿ‘¶ãGl™Mq¡„¨Üc†¼Sw«q•ÉŽ²ä³å´ä“·ç›ÀíœÁí¡Æò¦Ëõ«Ñø®Ôû®Ôû«Óö¬Øñ­Úï®Ûð²Ýð´ßð·áñ¸âð»ãïÂèñÃêñÆëñÈîñÍðòÏóóÑõõÖôôÝòóßññáññßññáññßññáññßññãóóáóóãóóáóóãóóáóóãóóáóóßòðÞòðßòðÞòðßòðÞòðßòðÞòðÞñïÝñïÝðîÛïíÜïíÚîìÚíëÖïìÑïíÍñïÍïîÌðîÌîíÊîìÊìëÉíëÈêéÇëéÈêéÇëéÈêéÇëéÈêéÅìë¿èî½èï¼çî¼çî»æíºåìºåìºåì¼çî¼çî¼çî¼çî¼çî¼çî¼çî¾æîÆëóÆëñÈêóÆëñÈêóÆëñÈêóÆëñÌî÷ÊïõÌî÷ÊïõÌî÷ÊïõÌî÷ÉðõÉöùÁóô»ìð»ìñ¼íôºêö³âò¬Ûï°ÞöÊç~«Ìnš½qÂpœÃqœÆ¨Ö{œÒw–Ïr‘ÊiˆÁ[z³Ml¥Hg Kj£Lk¤Ml¥Nm¦On§Po¨Qp©Qp©Oq®Ip±FqµEp´Do³Cn³CmµBl¶Bl¶Bl¸Bl¸BkºBkºBk»Bk»Bk»Dk¸Rs¸VuµQq¬Kl¢KkœCd‘;[‚;\NjPmTn‘SmQiQiRi’Sl•VqœUržSpœRo›Pm™Nk—Mj–Li•Pm™=Z†Z‰>Z‰>Z‰>ZŠ>ZŠ>ZŒ>ZŒ8;D@BNEGSGIVHJWJL[KM\NP_PRaPR_MO\BDP35A$'0& !$%),)-.+/2+.5),5&)2#&/"%.!$-"%."%.!$-+.79AP?EU?EU8>N.4D(.>*0@.4D@FVEK[LRbQWgTZjU[kW]mY_ofkin‚y~’™ž²”™­qvŠPUi.3G!5(-A>CWch|…Šž†‹ŸsxŒho‚_gzU`rWbtal~mxŠz…—Šœy„–[fxR]oHSeDOaITfS^p^i{doal~doal~WbtQ\nP[mQ\nOZlOZlFQc7BT'2D*,7I6AS:EW@K]FQcJUgMXjVasbmlw‰bmal~_j|\gyXcuS^pOZlMXjJUgGRdEPbFQcJUgMXjNYkNYk6AS8CUZewz…—r}`k}]hz[fxWbtYdv`k}cn€`k}`k}YdvITf:EW;FXEPbT_q[fxYdvYdv]hzmxŠhs…cn‚bo‚dp†gvp~˜xˆ¢ržj{™aq’Xk‹Ylau–l€£qˆ±z˜Ì„¤Ý—·ð”·ï€£Û{žÖˆ«ã‘´ì†«âˆ­ä‹°çŒ±èŽ³ê·î•¼óšÂöžÄóš¿ì“¸å Åò¤Éöš¿ìœÁ왾ëŸÄñ¦Ëø®ÓÿÀåÿŽ³àGl™^‚²}¡Õ[~´]µxœÐ±ãœÀòŸÃóÁñ¦Ëø¨Íù«Ðü®Óý¯Õü°Öý±×þ±Ùü©Õð©Øì«Úî¯Üï±Þñ¶áò¹ãñºäðÁéóÂêòÅìñÇïñËñòÍôóÏöõÕõôÛóóÞòóßñóÞòóßñóÞòóßñóÞòóáóõàôõáóõàôõáóõàôõáóõàôóÞòðÝóðÞòðÝóðÞòðÝóðÞòðÝóðÝñïÜòïÜðîÚðíÛïíÙïìÙíëÖïìÒðîÏñðÐðïÍïîÎîíÌîíÍíìËíìÊêéÈêéÊêéÈêéÊêéÈêéÊêéÇëë¿èî½èï¼çî»æíºåì¹äë¹äë¸ãêºåìºåìºåìºåìºåìºåìºåì¼äìÃéòÃêñÄéòÃêñÄéòÃêñÄéòÃêñÉî÷ÈïöÉî÷ÈïöÉî÷ÈïöÉî÷ÇðöËûýÃõöºìí·èì¹êñ»ëõºêø·æø½ëÿ¸æÿ•ÂárŸÀl˜½j–½i”¾tËmŽÄiˆÁe„½a€¹Xw°Ml¥Ih¡Kj£Ml¥Ml¥Nm¦Nm¦On§On§Po¨MpªHp®Eq°Dp±Dp±Cn²Bm±Al±Al±Bl´Bl´Bl¶Bl¶Bl¸Bl¸BkºDk¶TuºXw·Ss®Mn¤LlDe’=]„=^LhNkRlQkŽOgNfŒPgQj“Rm˜QnšPm™Nk—Mj–Kh”Jg“Jg“Nk—:Wƒ[‡[x¤_|¨\y£XpœWp™Un—Qj“MfKdMfNgMfKdHaŠF_ˆG`‰JcŒOh‘Pk–Mh•Jf•Gc’C_Ž?[Š;W†7S‚6RB^B^B^B^B^B^B^B^EbŽDaDaB_‹A^Š@]‰?\ˆ?\ˆ8U9V‚:Wƒ:Wƒ9V‚7T€5R~3Pz4Mu3Mr1Kp/In/In/In1Kp2Lq4Ns5Ot7Qv9Sxn7f0](T%J,A ,:!-; ,:)7&4"0-!/ .,-!/&4+9".< !#$&&!*!*!*!*!*!*!*!( # ! # #$$&&14=7:C?AMDFRGIVIKXKM\MO^LN]NP_OQ^LN[BDP35A%(1'"!%(%)*&*-+.5),5&)2#&/"%.!$-"%."%.!$--09;>GEHQGJSEHQCFOAEP>AP@FVAGW9?O-3C%+;%+;)/?>DTDJZLRbSYiV\lW]mX^nX^nfkin‚y~’šŸ³‘–ªhmFK_#(< 4#(<7-8J7BT5@R=HZEPbITfKVhR]o^i{hs…hs…gr„ep‚al~[fxT_qNYkJUgJUgGRdEPbFQcITfLWiMXjMXj5@R9DV]hzy„–ny‹_j|^i{\gyYdv\gycn€ep‚cn€bmYdvGRd7BT^…>_‚Jf‹Li‹PjOiŒNfŒMe‹OfPi’Oj•Nk—Mj–Li•Jg“If’He‘He‘Kh”9V‚!>j%BnHe‘b«b«Zw¡Zrž[tXqšRk”LeŽIb‹KdNgMfLeŽKdJcŒLeŽNgQj“Ql—Oj—Li•Ie”Da@\‹;X„8Tƒ6SC_ŽC`ŒC_ŽC`ŒC_ŽC`ŒC_ŽC`ŒFcEbŽEbŽEbŽDaC`ŒC`ŒC`Œ:Wƒ;X„;X„X}@Z?[‚@[†?\ˆ?\ˆ?\ˆ?[Š?[Š?[‹?[‹4P‚2M‚/J-H,G~-G€/I‚.K…5T”3U•2T”1S“0R’/Q‘.P.P1S“2T”2T”3U•4V–4V–5W—5W–3U”3U’3U’3U’3U’3U’3U’3U’0R0R0R0R0R0R0R/S0S“.T“.T•.T•-T™-Sš,Tœ*Tž-V¥,W¦*W¨*Wª)W­)W­)W¯(W¯$W²"X²"X²"X²"X²"X²"X²"X² V° V° V° V° V° V° V°"U°"S¯$S¯$S¯$S¯$S¯$S¯$S¯$S¯"Q­"Q­"Q­"Q­"Q­"Q­"Q­"Q«%Qª%Q¨%R§%R§%R¥%R¥%R£%R£!O N›K˜I”I‘I‘J’J‘&N”'N“'N“'N“'N“'N“'N“'N“%L‘$K$K#J"IŽ!H!H GŒD‹!C‹!C‹"CŠ"Cˆ$C†$Cƒ%C(G€)F~)D{$?t9l0a)Z$K+B ,:!-;!-;*8&4!/,!/ .,-"0&4 ,:#/=!#%'('(!*"+!*'%!""! %").1:25>9;G?AMCERDFSCETBDSFHWJL[MO\LN[CEQ46B$'0%   #"%,&)2*-6),5%(1$'0(+4-0969B:=F?BKDGPDGP@CL8;D15@R.3G!5CH\•©œ¡µz“ryŒw’hs…MXjlw‰Œžš¬Šœfqƒ;FXBM_EPbCN`HSeVascn€hs…u€’mxŠal~U`rMXjJUgJUgKVhQ\nGRd;FX5@R6AS:EW;FX;FX@K]AL^DOaITfP[mYdvcn€it†Šœ|‡™p{al~XcuU`rOZlGRdDOaGRdKVhNYkP[mOZlMXjLWiEPbGRd\gyq|Žp{gr„dobm]hz\gy^i{doju‡hs…_j|VasHSeNYkU`rZew\gy^i{al~doer…`o‚cr‡kzo~•m}–o~›t…£”µau˜BV{>T{Yo˜x¹‡žÊ†¡Ð€¡Ö‚§Þ‡¬ãŽ³ê²é|¡ØxÔ‰®åŠ­å•¸ðŒ¯çˆ«ã¤Üx›Óˆ«ã›¾ôŽ²â’·äŽ³à²ßµâˆ­Ú„©Ö´áÂïÂï§Ìù¾ãÿÂçÿ{ Í@e’hŒ¼_ƒ·a„ºzžÒ‡«ß–ºì§Ëý¢Æö¡Åõ¡Æó¢Çó¥Êö§Ìö©ÏöªÐ÷©Ïö¨Ðô­Ú÷«ÛòªÚñªÚð­Üð°Ýð³áñ¶âï½éô¿êóÁéñÂëïÄëðÄìîÅíïÈëíÖòóÙñóÙñóÙñóÙñóÙñóÙñóÙñóÛóõÚòôÚòôÚòôÚòôÙñóÙñóÙññÙòïÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîÙòîØòïÕòðÔòòÔòòÔòòÔòòÔòòÔòòÔòòÕóóÔòòÔòòÓññÒððÑïïÑïïÍïðÂéð¿êñ½èï¼çîºåì¹äë·âé·âé¶áè¶áè¶áè¶áè¶áè¶áè¶áè¶áè»ãí»ãí»ãí»ãí»ãí»ãí»ãí»ãí½åï¼äî¼äî¾æðÀèòÀèò½åï¸ãê½íñÀòóºëïµæë¸éð´äð®Ýí²áõ¬Úò©Öó¦Óô£ÏòŸËð™Å쐻勴âz›Ñg†¿Sr«Ji¢Hg Cb›<[”9X‘Hg Lk¤On§Nm¦Lk¤Lk¤On§Ps­Iq¬Fs®Er­Dp­Co¬Co®Bn¯Bn¯4_£1\ -X,Wœ.X 4^¦;e¯Bj²Lm²Rq±Ss®No¥Jj›Gh•Aaˆ:[~C_„DaƒIc†Jd‡Kc‰JbˆG^‡E^‡B]ˆC`ŒEbŽGdHe‘GdFcFc@]‰7T€1Nz9V‚Li•[x¤^{§[x¢bz¦_x¡Yr›Rk”KdD]†>W€;T}Oh‘LeŽG`‰D]†E^‡JcŒQj“So—JeHeEbŽB_‰A^ŠB_‰DaEbŒA^ŠC`ŠDaC`Š@]‰?\†@]‰B_‹FcEbŽDaDaEbŽGdJg“Kh”A^Š>[‡;X„9V‚7T€8U:Wƒ;X‚8Qy7Qv6Pu4Ns3Mr1Kp0Jo/In0Jo1Kp0Jo-Gl*Di-Gl3Mr8T{FbŠDa‹B_‰@]‡@]‰A^ŠB^C_2N~1M/K}/J1L4O†7R‰8U2Q‘0R’0R’0R’0R’0R’0R’0R’2T”2T”2T”2T”2T”3U•3U•3U”9[š9[˜8Z—7Y–6X•5W”4V“4V“0R0R0R0R0R0R0R/S/R’-S’-S”-S”,S˜,R™+S›)S2[ª1\«/\­/\¯.\².\².\´-\´([¶&\¶&\¶&\¶&\¶&\¶&\¶&\¶%[µ%[µ%[µ%[µ%[µ%[µ%[µ'Zµ&W³(W³(W³(W³(W³(W³(W³(W³'V²'V²'V²'V²'V²'V²'V²'V°'S¬'Sª'T©'T©'T§'T§'T¥'T¥$R $RŸ#Qž"P›!P˜!P˜ O—"N•'O•(O”(O”(O”(O”(O”(O”(O”#J#J#J#J#J#J#J#J!F!F"GŽ$F%HŒ'H‹(JŠ*I‰)G…(F‚(E'D|'By!'5'5'5(6)7+9 ,:%3&4'5(6*8 ,:!-;!-;"$&( )'(!*!* )'%! #!$## '").1:25>8:F>@LBDQCERBDSACREGVIKZLN[KMZCEQ46B$'0&! !!$#&-'*3+.7*-6&)2%(1),5.1:CFODGPEHQDGPBEN=@I7:C26A;>MEK[SYiSYiAGW*0@ &6"(89?OFL\Y_ogm}lr‚iociy_euhmlq…pu‰ns‡di}UZnEJ^CWlq…Ž“§‡Œ szmuˆhs…[fxy„–‰”¦Œ—©s~Vas6AS=HZDOaHSeP[m^i{gr„ju‡lw‰fqƒ]hzU`rP[mMXjKVhJUgITfEPb@K]=HZ>I[BM_HSeLWiEPbDOaEPbJUgR]o\gycn€gr„y„–y„–ozŒ]hzP[mMXjNYkMXjITfMXjR]oVasVasR]oMXjITfFQcGRd[fxozŒny‹fqƒdodo\gy[fx^i{dokvˆju‡bmZewNYkP[mS^pZew`k}ep‚gr„fs„et‡bq„dsˆjz‘m}–k|–m~œpƒ£p„§Yo”G]†Lcf}©~”ǝ΂žÎ¢Ø¨ß…¬ã²éŒ±è|¡ØwœÓ„©à°è•¸ð²ê‡ªâ{žÖx˜Ñ‹«ä“´êŠ®Þ‹°ÝŠ¯ÜŒ±Þ²ß‰®ÛŠ¯Ü“¸å™¾ë—¼éš¿ì®Óÿ¹Þÿ~£ÐEj—b†¶W{¯h‹Á…©ÝŽ²æ˜¼î¢Æø˜¼ì˜¼ì Åò Åñ¡Æò¢Çñ£Éð¥Ëò§Íô§Ïóª×ô©Øò¨×ñ©Ùð«Ùð®Ýñ±ßï³áð¼èõ¼èó¾éðÁêðÁêðÃêïÄëðÅëìÔòôÕñò×ñòÕñò×ñòÕñò×ñòÕñòØòóÖòóØòóÖòóØòóÖòó×ñò×ñðØòïÙòîÙòîÙòîÙòîÙòîÙòîÙòîØñíØñíØñíØñíØñíØñíØñí×ñîÕòðÔòòÔòòÔòòÔòòÔòòÔòòÔòòÕóóÔòòÔòòÓññÒððÑïïÑïïÍïðÂéð¿êñ½èï¼çîºåì¹äë·âé·âéµàçµàçµàçµàçµàçµàçµàçµàç»ãí»ãí»ãí»ãí»ãí»ãí»ãí»ãí¼äî»ãí»ãí½åï¿çñ¿çñ¼äî·âë¸çí»ìð¶çì²ãêµåï±áï¬Ûí°Þõ¨Öð¦Óò¢ÎñŸËðœÈï—Â쏺狳äz›Ñh‡ÀUt­Ml¥Kj£FežA`™>]–EdHg Ji¢Ji¢GfŸGfŸIh¡Il¦GoªCp«Cp«Bn«AmªAm¬@l­@l­-Xœ*U™'R—%P•'Q™,Vž3]§9a©Bc¨KjªPp«No¥MmžHi–Aaˆ8Y|C_„Eb„Hb…Jd‡Kc‰Ia‡H_ˆE^‡C^‰C`ŒEbŽGdHe‘He‘GdFcA^Š9V‚6S?\ˆQnš_|¨a~ª]z¤ay¥_x¡ZsœSl•LeŽF_ˆAZƒ>W€MfJcŒG`‰E^‡E^‡Ib‹NgPl”HcŽFcC`ŠA^ˆ@]‡A^ˆB_‰C`Š@]‡B_‰Da‹C`Š@]‡?\†A^ˆC`ŠFcEbŽDaDaEbŽGdIf’Kh”EbŽA^Š[…=Z„79E<>J?AN@BO?AP>@OCETGIXKMZJLYBDP46B%(1' "!""%$'.),5-09,/8(+4'*3+.703MDJZSYiV\lGM]06F#)9!'7;AQGM]Y_ogm}lr‚kqhn~fl|pu‰sxŒrw‹kp„^cwRWkJOcHMaLQeLQeLQeHMaSXlx}‘ˆ¡szmuˆkvˆdo}ˆš‰”¦„¡ep‚EPb7BTI[?J\JUg\gyju‡MXjITfHSeLWiVas_j|doep‚q|Žr}ju‡XcuITfFQcMXjS^pP[mT_q[fx^i{]hzVasNYkHSeAL^EPb\gys~r}hs…bm_j|]hz]hz`k}fqƒlw‰lw‰fqƒ`k}WbtR]oOZlXcufqƒozŒozŒjwˆbq„_p‚bs‡hxk{”j{—l|n¢Xl‘Si’Wl™e{ªxŽ¿„›Í†Ñ€›Ð€¥Úªà…®äŠ±è‡®åz¡ØušÑ|¡Ø’µíœ¿÷–¶ï‰©âzšÓ{šÓŠ©â‰¨ß…§×¤Ñ„©Ö‰®Û‰®Û‹°Ý”¹æš¿ì•ºçŒ±Þ‰®ÛŸÄñ°Õÿ~£ÐEj—Sw§Sw«wšÐ•¹í•¹íš¾ð›¿ñ´ä”¸èžÃðÂîÂîÂìžÄë¡Çî¥Ëò¦Îò¦Õó£Õî£Õî¤Öí§×íªÚî®Ýï°ßï¸æóºæñ»çð¼çî½èîÀéíÀéíÃéìÐïòÑïñÒîñÑïñÒîñÑïñÒîñÑïñÔðóÓñóÔðóÓñóÔðóÓñóÔðóÔðñÖðíÖñìÖñìÖñìÖñìÖñìÖñìÖñì×òí×òí×òí×òí×òí×òí×òí×ñîÕòðÕñòÕñòÕñòÕñòÕñòÕñòÕñòÖòóÕñòÕñòÔðñÓïðÒîïÒîïÏîðÂéð¿êñ½èï¼çîºåì¹äë·âé·âéµàçµàçµàçµàçµàçµàçµàçµàç·âë·áí·áí·áí·áí·áí·áí·áí¸âî·áí·áí¹ãï¼æò»åñ¸âî´àë±àè²ãê¯ßé­Ýé¯ßí¬Ûí©×î¬Úô¢ÏîŸËî›Çì™Äî–Á쒽ꌶ舰ãy™ÒiˆÁXw°RqªQp©Ml¥Hg GfŸDcœFežGfŸFežCb›BašCb›BeŸ>f£;g¤;g¤:f¥9e¤8d¥8d¥7b¦)T™&Q–#M•!K“"L–&Pš,V¢1Y¡6WœA` Jj¥Mn¤NnŸJk˜Bb‰8Y|D`…Eb„Hb…Ic†JbˆIa‡H_ˆF_ˆC^‰DaFcHe‘If’He‘GdFcB_‹[ƒ>[ƒ?\„@]…?\„B_‡C`ˆC`ˆ@]…@]…A^†Da‹FcEbŽDaC`ŒDaFcHe‘If’Jg“EbŽ>[‡7T€4Q}5R~8U:W8Qy8Rw9Sx:Ty:Ty;Uz68D9;G;=J<>K;=L;=L@BQDFUIKXIKXBDP57C&)2( !!$"##&'*1+.7/2;.1:*-6),5-0925>MPYMPYKNWGJSADM>AJ=@I<@K?BQFL\RXhW]mJP`6I[8CU:EWLWilw‰…¢U`rOZlKVhOZlYdval~cn€bmit†hs…al~U`rKVhITfOZlU`rXcu\gy`k}bm`k}YdvQ\nKVh9DVBM_`k}{†˜{†˜kvˆ_j|Wbtbmcn€ep‚it†mxŠmxŠgr„bm]hzR]oLWiU`rit†v“t‘kx‰Yh{Zk}_p„dvŒhy“fz•gzšfz@V}Ri“k°}•Å†Ñ†Ó…›Ô€žÔ€§Þ‚­â†¯å‰²è†­ä|£Úv›Òt™Ð—ºò«Îÿž¾÷‰©âƒ¢Û Ù†£Ý‚¡Ø~ ÐušÇ~£Ð‡¬Ù…ª×Œ±Þš¿ìžÃð’·äƒ¨Õ€¥ÒŸÄñ¬Ñþq–Ã8]Š?c“`„¸Ž±ç£Çû™½ñ—»í•¹ë³ã˜¼ì›Àí›ÀìœÁíÂìŸÅì¡Çî¢Èï ËîŸÐîžÑìŸÑìŸÑê¤Ôë§×í«Úî­Üìµãòµãð·ãî¸äíºåì»æì½æì¿çéËíïÍìîÎìîÍìîÎìîÍìîÎìîÍìîÏíïÎíïÐîðÏîðÑïñÑðòÒðòÒððÓðìÕðëÕðëÕðëÕðëÕðëÕðëÕðëÖñìÖñìÖñìÖñìÖñìÖñìÖñìÖðíÕòðÕñòÕñòÕñòÕñòÕñòÕñòÕñòÖòóÕñòÕñòÔðñÓïðÒîïÒîïÏîðÂéð¿êñ½èï¼çîºåì¹äë·âé·âé´ßæ´ßæ´ßæ´ßæ´ßæ´ßæ´ßæ´ßè¶àì¶àì¶àì¶àì¶àì¶àì¶àì¶àì¶àìµßëµßë·áí¹ãï¹ãï¶àì²Þé¨Öã¨Øä§×å¦Õå¦Õç¥Óê¤Òì¥Òñ™Åè–Â钽珺玸苵熯僪áu•Îh‡À[z³Wv¯Vu®Sr«Po¨Po¨Ih¡Ih¡Ih¡Hg FežEdDcœBeŸ>f¤;g¦:f¥9e¦8d¥8c§7b¦7b§.Yž,Vž(Rœ&Pš'Q*T .X¤3Z¥0Q–;ZšDdŸHiŸKkœJk˜Dd‹<]€Ea†Eb„Hb…Hb…Ia‡Ia‡H_ˆG`‰D_ŠEbŽGdIf’If’If’He‘GdA^Š>[‡?\ˆJg“Yv¢a~ª^{§Yv _w£]vŸYr›Un—Pi’LeŽHaŠF_ˆE^‡E^‡D]†C\…D]†E^‡F_ˆD`ˆA]…?\„>[ƒ=Z‚[ƒA^†C`ˆB_‡A^†@]…B_‡EbŠFcEbŽDaC`ŒC`ŒDaFcGdJg“GdA^Š"9m 0J+9$2-+-#1'5"0"0#1%3'5(6)7*8 #'!* #,"%.!* )(''&&$ #!%(&).(+0(+2(+214=25>46B68D79F8:G79H79H=?NACRGIVHJWBDP57C'*3!* " #"% $%!%(),3.1:25>14=-09,/803<47@CFOFIRHKTFIRBEN?BK@CLAEPCFUIO_SYiV\lKQa9?O06F/5E>DTGM]TZj^dtek{hn~jp€lr‚rw‹uzŽsxŒjoƒ[`tOThLQeMRfTYmSXl`eymr†kp„ej~hmmt‡†Ž¡‡’¤‡’¤y„–ozŒgr„^i{VasOZlGRd>I[>I[EPbP[mYdv_j|Q\nP[mP[mQ\nR]oP[mJUgDOa>I[>I[:EW5@R8CULWiny‹ˆ“¥[fxU`rOZlQ\nYdv`k}al~_j|bm^i{YdvVasT_qT_qVasYdvcn€doep‚ep‚al~[fxU`rQ\n;FXDOabm}ˆš|‡™mxŠ`k}Xcuju‡ju‡kvˆmxŠny‹lw‰gr„cn€_j|S^pKVhVaskvˆxƒ•u€’kx‰VgyYl}^p„as‰bs`s‘]p‘Zn“;QzYpœ~”ÅŽ¥Ù‹¡Ú‚›Ôƒ›×†£Ý‚©à¯ã‡²çˆ³è…®ä€§ÞyžÕn“Ê™¼ô·Úÿ¤ÄýŒ«ä¬æˆ¥ß€šÕ|™ÑxšÊp•ÂzŸÌ…ª×„©Ö‹°Ý™¾ëœÁä¤Ñƒ¨Õ«Ðý¨ÍúZ¬&Kx3W‡~¢Ö¦Éÿ«Ïÿ—»ï³åŒ°â³ãš¾î–»è™¾êžÃï¢Çñ£Éð£Éð Æí›ÆéšËë–Ìæ™ÌçšÎæžÐç¡Ôé§×ë©Úë°ßï²àí´àëµáê·âé¸ãé¸ãé»âçÇêîÈêìÊéìÈêìÊéìÈêìÊéìÈêìËêíÉëíÌëîËíïÎíðÍïñÏîñÐïñÑîêÑîéÑîéÑîéÑîéÑîéÑîéÑîéÓðëÓðëÓðëÓðëÓðëÓðëÓðëÓðì×ñð×ñò×ñò×ñò×ñò×ñò×ñò×ñòØòó×ñò×ñòÖðñÕïðÔîïÔîïÐîðÂéð¿êñ½èï¼çîºåì¹äë·âé·âé³Þå³Þå³Þå³Þå³Þå³Þå³Þå³Þç³ßê³ßì³ßì³ßì³ßì³ßì³ßì³ßì³ßì²Þë±Ýê´àí¶âï¶âï²Þë¯Ûè¡ÏޞÍݟÎàŸÎâËâËåÊéœÈë¼ãŒ·â‡±á„®àƒ¬à€©ß|¤ßz¡ÚoÊe„½[z³Yx±Yx±Wv¯Vu®Wv¯Po¨On§Nm¦Ml¥Ml¥Lk¤Kj£Gi¦Ho°Eq²Dp±Do³Cn²Bm²Bm²Ak³;e¯9c­5_«3]©3\«4]¬7`¯:a¬3T™;ZšAaœBc™Ff—Ij—IiDeˆFb‡Fc…Ga„Ga„H`†H`†I`‰HaŠE`‹EbŽHe‘If’Jg“Jg“If’He‘A^Š?\ˆA^ŠJg“VsŸ[x¤Wt Ro™[sŸZsœWp™Tm–Qj“NgKdJcŒC\…B[„AZƒ@Y‚@Y‚AZƒAZƒ@\„>Z=[=[=[[‡8U2O{/Lv4Mu5Ot7Qv:Ty=W|@ZB\D^ƒA[€>X}9Sx5Ot1Kp/In-Gl)Ej+Gl)Gk(Fl(Fl)Fn+Hp-Jt/Lv5R~6S7S‚8Tƒ9U…9U…9U‡7U‹3S1S“1S“1S“1S“1S“1S“1S“4V–3U•2T”0R’.P-O+M+MŒ.P.P.P.P/QŽ/QŽ/QŽ/QŽ5W”5W”5W”5W”5W”5W”5W”4X”2U•0V•0V—0V—/V›/Uœ.Vž,V 2[ª1\«/\­/\¯.\².\².\´-\´([¶&\¶&\¶&\¶&\¶&\¶&\¶&\¶%[µ%[µ%[µ%[µ%[µ%[µ%[µ'Zµ&W³(W³(W³(W³(W³(W³(W³(W³'V²'V²'V²'V²'V²'V²'V²'V°'S¬'Sª'T©'T©'T§'T§'T¥'T¥&T¢&T¡&T¡%Sž$S›#Rš#Rš$P—$L’%L‘%L‘%L‘%L‘%L‘%L‘%L‘#J#J#J#J#J#J#J#I!I‘"I”"J’#K“%K”&L“'L“)K’,M”*K*HŽ*HŽ+HŽ)FŠ%B†%>t#2O".<&4-*+!/#1 .!/"0#1%3'5(6(6 $("+"%.$'0"+!*(&&&&%!" $'&).,/4.18.1825>25>35A35A46C46C46E35D:7:CW€=Y=Y€25>25>24@13?13@13@13B13B8:I=?NCERFHUACO68D),5 #,!""$#&!%(#'($(+-0725>69B58A14=03<47@8;D=@I?BK>AJ8;D03I@CRKQa[aq^dtPVf=CS7=M;AQIO_NTdV\l\bragwfl|kqpv†rw‹ns‡gl€^cwTYmLQeGL`EJ^MRf[`tej~ej~joƒuzŽx}‘qx‹y”‘œ®­¸Ê†‘£cn€OZlXcuit†kvˆXcuBM_5@R2=O;FXP[mdony‹mxŠhs…^i{S^pNYkP[mT_qBM_=HZ8CU8CU?J\KVhYdvbm_j|\gyXcuU`rU`rXcuZew[fxZewVasWbt]hzal~ep‚ozŒy„–€‹€‹~‰›xƒ•ozŒcn€XcuR]oMXjNYkbmv“u€’mxŠkvˆkvˆq|Žr}r}r}p{ny‹lw‰kvˆ`k}\gy\gydoq|Žw‚”u€’o|hy‹ex‰\q†Rf~PdWl‹\p“[q˜g~ªtŠ»‚™Íˆž×„œØƒ›Ù†Ÿß‰§åƒ¬ä‚±å‰·ëˆ¶êˆ³èŒµë‚©àkÇ‘´ì¢Âû›ºó’¯éŒ¦á™ÔrŠÆ\v¯s•Åv›È|¡Î„©Ö‰®Û†«Ø†«ØŽ³àˆ­Ú‹°ÝœÁî´Ùÿ„©Ö.S€(MzSw§“·ëœ¿õ´èˆ¬à„¨Úƒ§Ù±á‹¯ß‘¶ã”¹å™¾êžÃíŸÅìžÄë›Áè–Áä‘ÂâŽÄàÅߑÇá–ÊâœÎå¢Òè¤Õæ«Úê«Ûç­Ûè®Ýå°Üå±Þä³ÞäµÞâ¿åèÁäèÁäèÁäèÁäèÁäèÁäèÁäèÂåéÂåéÄçëÅèìÇêîÉìðÊíñÌîïÍìçÍìæÍìæÍìæÍìæÍìæÍìæÍìæÑðêÑðêÑðêÑðêÑðêÑðêÑðêÒïë×ñðØðòØðòØðòØðòØðòØðòØðòÙñóØðòØðò×ïñÖîðÕíïÕíïÐîðÂéð¿êñ½èï¼çîºåì¹äë·âé·âé²Ýä²Ýä²Ýä²Ýä²Ýä²Ýä²Ýä²Ýæ°Üé®Üë®Üë®Üë®Üë®Üë®Üë®Üë­Ûê«Ùè«Ùè®Üë°Þí°Þí¬Úé©×ç—ÆڒÀؔÂڔÂ܍ºÙºÛ»à‰´Þƒ®Û}§ÙvŸÕp™Ñm•Òj’ÐgŽÏe‹Ê`€»Zy²Ut­Wv¯Yx±Xw°Zy²]|µRqªPo¨Nm¦Po¨Sr«Ts¬Sr«Mo¬KrµGr·Gr·Fp¸Eo·Dn¸Dn¸Cm¹Gq½En½Bk»@i»>g¹=f¸=eº?fµCd«Gf¦Ff¡Bc™Dd•Jk˜Mm”LmHd‰Fc…Ga„E_‚F^„H`†I`‰JcŒFaŒGdIf’Kh”Li•Kh”Jg“If’Kh”He‘GdIf’Nk—Pm™Li•HeSk—Rk”Qj“Pi’Oh‘NgMfMfC\…@Y‚;T}7Py6Ox8Qz\‚>\‚>\‚\‚A_…B`†A_…B`†Ec‰HeGdŽFcC`ŒA^Š@]‰A^ŠB_‹B_‹C`ŒEbŽFcFcB_‹;X„4Q}0Mw8Qy:TyX}:Ty7Qv6Pu3Mr.Hm(Di!=b=a=a=a!?e$Bh'Dl)Fp1Nz3P|7S‚;W†>ZŠ@\Œ@\Œ>\9Y–7Y™7Y™7Y™7Y™7Y™7Y™7Y™9[›8Zš8Zš8Zš7Y™7Y™7Y™7Y˜2T“2T‘3U’4V“5W”6X•6X•7Y–8Z—8Z—8Z—8Z—8Z—8Z—8Z—7[—3V–1W–1W˜1W˜0Wœ0V/WŸ-W¡2[ª1\«/\­/\¯.\².\².\´-\´([¶&\¶&\¶&\¶&\¶&\¶&\¶&\¶%[µ%[µ%[µ%[µ%[µ%[µ%[µ'Zµ&W³(W³(W³(W³(W³(W³(W³(W³'V²'V²'V²'V²'V²'V²'V²'V°'S¬'Sª'T©'T©'T§'T§'T¥'T¥(V¤(V£'U¢&TŸ%Tœ%Tœ$S›&R™#K‘$K$K$K$K$K$K$K#J#J#J#J#J#J#J#I#K“!K•$L”$L”&L•'M–)M—)N•)K“&H%EŽ%EŽ)G)G)E*C|(7T(4B".<'5"0,+++,-!/"0$2%3&4 $ )!$-$'0&)2 #,!*(%$%'& #( #!$%(-/2958?7:A36?25>13?02>/1=/1>/1>/1>79H<>MBDQEGTACO68D),5!$-"## %#&"&)#'($(+.1836?7:C69B25>14=58A9DR9W=Y€=[@\ƒ?]ƒ@\ƒ\‚B^…B`†B^…B`†Fb‰HeHcŽFcD_ŒA^ŠA\‰@]‰B]ŠA^ˆFaŒEbŒFaŒDa‹A\‡;X‚8S~5QyZ:V}6Rz4Px3Ow0Mu+Go%Bj;b;a:aGG69B/1=')5#%1/1>57F@BOJLYLNZACO/2;!$- '!("'!&!$#&$())-047>47@47@58A69B69B69B7:CADM>AJ8;D/2;'*3"%.#&/%'3=?LGKW`bqrv‚fhwGKW:PKVh[fxhs…t“P\rDShHTjN]rVbx^m‚dp†Zi~amƒ[jamƒhwŒhtŠdsˆz†œ”£¸©µËœ«À•¡·ž³†’¨m|‘S_u@OdVbxVezbn„m|‘q}“jyŽmyr–o{‘r–wƒ™q€•myixr~”w†›q}“m|‘s•w†›x„šs‚—x„šz‰ xˆ¢k|˜Xk‹J^H^…Wnšr‰»†¡ÖœÔ}Ö|ŸÙ}¡Ý|¤ß|¦à}§á¨à‘¶ëŽ²æŒ¯åŽ²æ‘´ê±æ„¥ÛyšÏŠ©à„£Ù•´ë¥ÄúŽ­änŒÂd¹g†½t•Ëx›Ñ¤Ú’µëœ¿õ’µë†©ß‰¬â‰¬â³é¦Éÿ¨ËÿWz°&I^·}¢×xŸØ|£Ü‚©â‡®çˆ¯èˆ¯è‡®ç‡®å‘¸ï–½ô›ÂùœÃú—¾õ’ºî·î¸ë•¿é•¿ç–Àè˜ÂèœÆì¢Éð¤Ëò¥Íñ¥Íñ¥Íñ¦Îñ¢ÈìžÄè¥ËïªÐô¡Ëä®Þê­àä®áå¯âæ±ãê²äë²äë³åîµçòµçòµæôµæôµæôµæôµæõµæô³âò´äò¶åõ·çõ¸ç÷·çõ¶åõµåóµäôµåó¶åõ¶æô·æö¸èö¸ç÷ºèõÁìóÄðóÇòøÈô÷Æñ÷ÅñôÆñ÷Èô÷Æñ÷ÆòõÅðöÄðóÃîôÂîñÁìò¿ìñ·èï´éïµçð±æì±ãì®ãé¯áê¬áç«Ýæ©ÞäªÜå¨Ýã©Ûä§Üâ¨Úã¥Úè¢Úó¢Ýû¥Þü ÛùÖô—Òð™Òð™Ôò’Ëé’Íë–Ïí–Ñï—Ðî’ÍëÉçÅê}°å~°ë²í³î‚²ð€²ï¯ï}¯ît¤æq¢ämœàg˜ÛaÔZ‹ÐW†ÌWƒÌQwÈPtÈMrÃJo¿Jo½Ko»Oq¹Ps·Pr²Pr¯Or¬Qr¨Rs¨Tu¨Xx©Xy®Wy¶RuµLo¯Gj¬Dg«Eg¯Hj´Jk¸De¶Dd·Ff½GfÀIhÃJiÆKjÇJkÈJoÇHqÃJqÀJr¸Kr³LsªNt¥OtžHk‘?a†;[@^„Fb‰Ib‹KcNi–Ji˜Ii˜Hh—Gg–Dd“A`Ž>]‹>[‡DaD_ŠD_ŠG`‰Ib‹MfQj“Ul–Qf“Pe’NcŽLaŒKaŠKaŠLb‹McŠMcŠF\ƒ=Sx6Lq5Ln:QsBY{G^€MgŒJf‹KeŠGcˆF`…B^ƒC]‚@\=W|=Y~C]‚D`…Ga†Ea†E_„B^…IaGb‘Ia‘Gb‘IaGbIaGc‹MfIeHa‰C_†A[€k%@k(@l'Bm)Am&Al'?k#>k.Ft*Er-Es0Kxd«?e¬9`¥9`¥8_¤8_¤7^£7^£6]¢6]¢8_¤8_¤7^£6]¢5\¡3ZŸ3ZŸ1Y¡2]«0^¬/]«.\ª-Z«,[«+Zª+Z¬/^°/^°/]².^².^².^².^².^³/_´-_´,^³,^³+]²*\±)[°)[°'Y®'Y®'Y®'Y®'Y®'Y®'Y®'Y®*Z®*Z¬*Z®*Z¬*Z®*Z¬*Z®*Z¬#S§#S¥$T¨%U§&Vª'W©(X¬)X¨)S+S›+S›+S™+S™+S™+S™+S™*R˜*R˜*R—*R—*R—*R—*R—+R•*P‘*M&I‰#F†#F†&I‰*M,O)LŒ)LŒ)LŒ)LŒ)LŒ)LŒ)LŒ*LŒ*IŒ*IŒ+J,KŽ-L/L/L0M‘/L-JŽ+HŒ)FŠ)FŠ,GŒ.IŽ2K3Iƒ0Ez*@o"7b0S)F%:"3#1 -** .$3 ):#,=!%'(!*"%.&)2),5,/8,/8%(1'# )%(1"+!* )!*!$-'*3,/803<9GG7:C03<(+4#%1-/<57FBDQKMZKMY@BN/2;#&/") #*!$)!$) $'"&)'+,+/258?58A69B7:C8;D9GADM>AJ8;D/2;&)2!$-!$-#&/68EEGTcerz|‰oq~PR_@BOCER\^kacpfhuhjwhjwhjwjlylp|mq|elv^eoX_iMS_BHT=CQ?ESUZm^cvin‚rw‹|—ƒˆžƒˆž}ƒ™x€“s~s~ozŒ^i{OZlT_qcn€xƒ•u€’kvˆZewMXjMXjZewhs…s~ŠœŒžq|Ž^i{Ydv_j|fqƒ[fx?J\+6H3>PITf\gymxŠz‡šR^tFUlGVmO^uVe|cr‰kz‘gv^m„Xg~]lƒixl{’m|“€¦š©À¶ÅÜ©¸Ï—¦½‰˜¯€¦r˜Wf}?NeWf}Wf}^m„jyo~•l{’l{’o~•n}”r˜tƒšq€—kz‘jyp–v…œo~•fuŒm|“z‰ x‡žu„›yˆŸw‡ ¬r…¥^r•Lb‰MdaxªvÇžØ¡Ü£ß~¤â~¨ä}ªã~­å®ä¯ã²è¯å“²è™¸î™¸î®äƒ¢Ø}œÒ‚¡×Ž­ã¢Á÷¡Àö€ŸÕh‡½mŒÂyšÏ…¥Þ†©á‡ªâ‹®æ’µíŽ±éŠ­å²ê‹®æŽ±éžÁù—ºòDgŸAyb…½Š¯æŠ±ì‡¯ê…­è…­è†®éˆ°ëŠ²íŠ²í·ò‘¹ô“»ö“»ö‘¹ô·ò·ò·î–¼ë™¾êœÁíÂîžÃïŸÄð Åñ¡Æò£ÈôÂî Åñ£Èô¡Æò¤ÉõªÏû¦Ñó©Ýë¦ßæ§àç¨áè©âëªãìªãî«äï¬äñ¬äó¬äó¬äõ¬äõ¬ã÷¬ã÷¬ã÷­á÷®âø°äü±åû±åý°äú¯ãû®âø«ß÷«ßõ¬àø¬àö­áù®âø¯ãû¯äö¶èó»ìó¾ïö¿ð÷¾ïö½îõ¾ïö¿ð÷ÁòùÁòùÀñø¿ð÷¿ð÷¾ïö½îõ¼îõ³èð±çñ°æð¯åï­ãí«áëªàêªàê¨Þè§Ýç§Ýç¦Üæ¦Üæ¥Ûå¥Ûå¡ÚëÚ÷ÛÿÛÿšØý•Óø’Ðõ’Ðõ“Ñö‰Çì‹ÉîËðÍòŽÌñ‹Éî‡Åê‡Áïw­ë{­ô|®õ}¯ö}¯ö|®õ{­ôy«òs¥ìp¢ékäd–Ý]ÖW‰ÐR„ËP€ÌKtÌJqÌHoÊFnÅGmÂGm¾Jp»Lq¸Or¶Nr°Nq«Nq§Qr¥Su¥Vv§VwªWz²Su²Np¯Ik«FgªGh­Ii²Jj·Fe·Gf¹Hf¾JhÂKhÄMjÈNjËLmÌHoÌEqÈGqÅGrÀJr·Jt°Lt§Nt¡Gl–AdŠ>^„@`†Ea‰FbŠLdQl›KkšJlœIk›HjšGg–Cc’@_>]‰E`E`‹G`‰HaŠKb‹OfSj“Ul•Rd’Qc‘NaŒM`‹L_‰L_‰M`ˆNa‰L`…G[€?Sv:Nq9Mn>RsEZyH_Me‰Lf‹Jd‰Hb‡Ga†E_„C]‚C]‚>X}?Y~A[€C]‚D^ƒD^ƒD^ƒD]…Kc‘Kc“Kc“Kc“Kc‘KcKcKdMfŽLeIcˆE_„A[~=Wz:Tu9TrB]{E`}Kf„SnŒVs•Ur”Om“IfŽ?_ˆ:[ˆ5U„.P€(I|#Gy!Ey#Dw&Br(Cr*Et+Fu+Fu*Et(Cr'Bq(Cr&Ap%@o(Cr0Kz:U„C^EbšDf°@f¹>dµf®8`¨6`¨7_§5_§6^¦4^¦5]¥3]¥6^¦4^¦5]¥2\¤3[£0Z¢2Z¢.Z¥/^®.^²-]±-]±,\°+[¯*Z®*Z®.^².^².^².^².^².^².^².^²/_³/_³.^²-]±,\°,\°+[¯+[¯)Y­)Y­)Y­)Y­)Y­)Y­)Y­)Y«*Y©*Y§*Y§*Y§*Y§*Y§*Y§*Y§%T¢%T¢&U£'V¤(W¥)X¦)X¦+Y¤,T™.T•.T•.T•.T•.T•.T•.T•,R“,R“,R“,R“,R“,R“,R“,R‘,N)Kˆ(H…#E‚%E‚&H…+Kˆ,N‹*J‡(J‡*J‡(J‡*J‡(J‡*J‡*J‡+I‰-IŠ.J‹/KŒ0L2N3O3O0L/KŒ-IŠ,H‰,H‰-IŠ/KŒ0L1J.G‡)B{!;n2\,N'?$7#2".** /$3!(:$+>!%'(!*"%.&)214=58A47@+.7 #,("%.(+4"%.!$-"+!* #,#&/'*3*-67:C9GG=@I?BK@CLADM@CL>AJ7:C.1:%(1 #, #,"%.-/<>@M_anxz‡qs€VXeEGTFHUZ\i^`mbdqegtfhufhuhjwhlxkozfmwbis[blMS_>DP8>L9?MW\oafyotˆ|•‡Œ¢‹¦„‰Ÿx~”s{Žny‹mxŠhs…ZewNYkT_qcn€s~q|Žkvˆ_j|U`rT_q]hzfqƒmxŠw‚”y„–mxŠ]hzXcu]hzcn€ZewDOa2=O5@RFQc[fxq|Ž€ Ye{O^uM\sRaxYhet‹o~•o~•Zi€TczYhjytƒš{Š¡Œ›² ¯ÆÐßöÁÐ磲Ɇ•¬}Œ£v…œXg~4CZVe|Ud{YhdsŠo~•s‚™r˜p–o~•q€—r˜p–l{’l{’p–u„›kz‘_n…n}”€¦x‡žu„›{Š¡u…ž‚“±uˆ©bv›Uk”\sŸm‡¸{–Í|›Ô‡§ä…©ç„ªèƒ­éƒ°éƒ²ê…´êˆ³è³é‘°æ•´êœ»ñš¹ïŽ­ã„£Ù Öt“É“²è¨Çý’±çkŠÀc‚¸{šÐŽ¯ä›»ôœ¿÷’µí„§ß‚¥Ý†©á°è˜»óŽ±é°è”·ï¤Ü.Q‰;slÇ ÅüÄÿ’ºõ‡¯ê©äƒ«æˆ°ë‹³îµðµðŒ´ïŠ²í‹³îŒ´ïŽ¶ñŽ¶ñ¶í“¹ê™¾ëžÃðŸÄñ›À혽꘽꙾ëžÃð”¹æ™¾ë¤Éö¥Ê÷¦Ëø®Óÿ°Ûþ§Úë¤Ýæ¤Ýæ¥Þç¦ßê¦ßê§ßì§ßî§ßî§ßð§ßð§Þò§Þò§Þó§Þó§Ýõ§Ýõ¨Þö©ßùªàøªàú©ß÷§Ý÷¦Üô Öð Öî¡×ñ¢Øð¢Øò£Ùñ¤Úô¦Úï°áï´æï¸êóºìõ¸êó¶èñ·éò¸êó¾ðù¾ðù½ïø½ïø¼î÷¼î÷»íö¹íø±çó®çò­æñ«äïªãî¨áì§àë¦ßê¥Þé¥Þé¤Ýè£Üç¢Ûæ¡Úå¡ÚåŸØë™Õ÷˜Öÿ—Õþ”ÒûÍöŒÊóŒÊóËô‚Àé„Âë†ÄíˆÆï‡Åî„Â뀾瀺êr¨èu§îw©ðxªñxªñw©ðu§ît¦íq£ên çhšáb”ÛZŒÓS…ÌN€ÇL|ÈGsÊGpÊFmÈEmÄFlÁFl½Hm»HnµKp´Lo¯Ln«Kn¦No¤Pq¤Rt¤St§Ux°Rt±Np¯Jl¬Hi¬Gh­Hh±Ii´Ih¸Ji»Ki¿MkÃNkÇPmËQnÌOpÍHoÊEqÈGqÅGs¾Jr·Jt°Lt¨Nt¡Gl–DgCc‰BbˆD`ˆEa‰Nf’ToœMmœLnžLnžKmJj™Gg–Dc‘BaFaŽFaŒHaŠJcŒMdPgSj“Ul•PbN`ŽL_ŠJ]ˆI\†J]‡K^†L_‡H\EY~?Svc±=b°c±>e°7a«6b«6`ª4`©4^¨2^§2\¦1]¦3]§2^§2\¦1]¦1[¥/[¤0Z¤/[¦0_¯0_±/^°.]¯-\®-\®,[­,[­/^°/^°/^°/^°/^°/^°/^°/^°/^°/^°.]¯.]¯-\®,[­+Z¬+Z¬+Z¬+Z¬+Z¬+Z¬+Z¬+Z¬+Z¬+Zª*X¥*X£*X£*X£*X£*X£*X£*X£'U 'U (V¡(V¡)W¢)W¢*X£-WŸ.S—0S“0S“0S“0S“0S“0S“0S“,O,O,O,O,O,O,O-OŽ+K†)I‚'F$D}%D}&F*I‚+K„'F&F'F&F'F&F'F'F,I…-J†.K‡0M‰2O‹4Q5RŽ6S2O‹1NŠ0M‰/Lˆ/Lˆ0M‰1NŠ2N3LŽ0I‰,E~%?p 7a0R*E(;#2". + + /%4");%,>!%'(!*"%.&)2;>G@CL?BK36?'*3#&/&)2),5$'0#&/ #,"+!*"+!$-"%.25>58A:=FJ.1:&)2%(/(+2*-2+.3*.1+/2.231589AJADMDGPFIRGJSADM>AJ7:C-09$'0"+!* #,(*779FQS`givdfsQS`HJWLN[WYfZ\i]_lacpbdqcerdfscgscgrahrbis^eoPVb>DP5;I5;I[`sfk~v{„‰Ž“©”ªƒˆžtzlt‡ju‡it†ep‚ZewQ\nWbtcn€mxŠmxŠit†cn€]hz\gy`k}ep‚gr„mxŠp{hs…[fxU`rYdv^i{S^pGRd;FX9DVCN`Wbtny‹ŒŸamƒ[jXg~Yh\k‚bqˆixkz‘Ud{O^uTczhwŽyˆŸƒ’©‘ ·Ÿ®ÅÓâùÆÕ쥴˄“ª}Œ£{Š¡Xg~*9PRaxSbyVe|_n…m|“x‡žyˆŸu„›q€—q€—p–o~•m|“n}”q€—s‚™dsŠ^m„x‡ž‰˜¯u„›m|“w†r‚›t‡¥eyš]p˜cx£q‰·y“Æ|—Î{šÓ‰©æ‡«é†¬ê†®ë‡±ë‡´íˆµìŠµê‘´ê”³é”³é–µë™¸î”³é‡¦Ü{šÐj‰¿Œ«áš¹ï|›Ñ`µl‹ÁŠ©ß™ºï©Éÿ¯Òÿ Ãû¤Üt—Ï{žÖŽ±é Ãû³ëŽ±é³ëp“Ë"E} C{} Ø´Ùÿ Çÿ’ºõ‚ªå{£Þ~¦á„¬ç‡¯ê‡¯ê‰±ì†®é…­è‡¯êŒ´ïŽ¶ñŒ´ïŠ±èŽ´å—¼éžÃðÂ萵⏴ᑶ㘽ꓸ噾ë¤Éö§Ìù¬Ñþ¶Ûÿ·áÿ§Úï¤Ýè¤Üé¥Ýê¥Ýì¥Ýì¥Ýî¥Ýî£Úî£Úî£Úï£Úï£Ùñ£Ùñ£Ùó£Ùó¢Øô£Ùõ¤Úö¥Û÷¤Úö¢Øô ÖòŸÕñ˜Îê˜Îê™Ïë™ÏëšÐì›ÑíœÒîœÒê©Üï®âðµæõµé÷µæõ±åó²ãò±åó¹êù·ëù¹êù·ëù¹êù¶êø¸éø¶êø®æõ­åö¬äõ«ãô©áò§ßð¦Þï¦Þï¤Üí£Ûì¢Úë¡ÙêŸ×èžÖçÕæ›Óì“ÎöÍüÊù‰Æõ…ÂñƒÀïƒÀïƒÀïy¶å{¸ç}ºé¼ë~»ê{¸çw´ãv¯äk ân çp¢éq£êq£êp¢én çmŸæi›âg™àc•Ü]ÖW‰ÐQƒÊMÆL|ÈFrÉHqÍHoÊGoÆHnÃGm¾Hm»Hn·In´Hn¯Im«Il¦Kk¤Lm¢No¢Op¥Qt®Pr¯Np¯Ln­Jl¬Ij­Ij±Ii²Ll¹Ml¼NmÀOmÃQoÇRpÊTqÍQsÍHoÊErÇGqÃGs¾Jr·Jt°Lt¨Nt£Hm™Hk“GgŽBbˆB^†D`ˆOh‘UpNnNp Np MoŸLl›Jj™Hg•Fe‘E`FaŒIb‹KdOfQh‘Sj“Ul•M_K]‹I\‡GZ…FYƒGZ„H[ƒI\„DX}CW|AUx?SvAUvDXyG\{H_Jb†Hb‡Hb‡Hb‡Ga†Ga†Ga†F`…C]‚A[€?Y~=W|=W|>X}@ZAZ‚Nf”Nf–Nf–Nf–Nf”Nf’Nf’NgOhMfŽJd‰E_„A[~c³>e²7c®5d¬4b­2a©1_ª/^¦.\§.]¥.\§.]¥.\§.]¥-[¦-\¤-[¦-[¦2`®0_¯1^¯/^®/\­-\¬.[¬-\¬0]®/^®0]®/^®0]®/^®0]®/^®/\­.]­/\­-\¬-Z«+Zª,Yª*Y©+X©*Y©+X©*Y©+X©*Y©+X©+Y§-W¡-X/WŸ-X/WŸ-X/WŸ-X+S›*Uš,Tœ*Uš,Tœ*Uš,Tœ.Uš.P0P‹0P0P‹0P0P‹0P0P‹*J‡*J…*J‡*J…*J‡*J…*J‡*Jƒ'E{&Dx$Bv"@t"@t$Bv&Dx'Ey#Au#Au#Au#Au#Au#Au#Au#Aw)G}*G,I.Kƒ1N†4Q‰6S‹7TŒ6S‹6S‹5RŠ5RŠ5RŠ5RŠ6S‹6S5NŽ2L‰/H€)Ct$;e4V.I+@$5#1 - +!0&5#*:&-=!%'(!*"%.&)2ADMILUJMV=@I/2;*-6),5(+4%(1$'0!$-"+ )(((+.703<7:CJ.1:&)2(+2+.5.16/27.25/3615648;I[@K]P[mgr„vƒ–frˆet‹cr‰`o†`o†`o†bqˆet‹SbyM\sRaxet‹yˆŸ…”«Ž´—¦½±À׫ºÑ•¤»~¤|‹¢z‰ Tcz"1HRaxWf}Yh\k‚gvv…œz‰ v…œs‚™q€—n}”m|“o~•p–q€—q€—Yhcr‰ˆ—®’¡¸p–cr‰q€—p€š_r’Md†Tj“uŒ¸ˆ Ð˜Îy“Ì}›×‡§ä…©ç„ªè…­ê…¯é…²ë†³êŠ³éŠ­ã‘°æ‘°æ“²è¼òŸ¾ô‡¦Üiˆ¾mŒÂ‚¡×ƒ¢ØoŽÄkŠÀ‚¡×˜·í¾ó«Ëÿ·ÚÿªÍÿ…¨àq”ÌwšÒŒ¯ç Ãû³ëŽ±é°èd‡¿#F~7Z’‘´ì¼áÿ’¹ô‡¯êz¢ÝvžÙy¡Ü}¥à~¦á|¤ß‚ªå©äƒ«æ‡¯êŒ´ïŒ´ï‡¯êƒªá‡­Þ´ä—»ë–ºê³ã‰­Ýˆ¬ÜŠ®Þ–ºê˜¼ìžÂò¢Æö¦Êú³×ÿ½áÿ·áÿ©Ûô¦Þï¦Þï¥Ýî¥Üð¥Üð¥Üñ¥Ûó¡×ñ¡×ñ¡×ó¡×ó¡Öõ¡Öõ¡Öõ¡Öõ›ÒñœÒôÓõÓõœÒôšÐò˜Îð–ÌîÅçÅçÆè‘Çé’Èê’Èê“Éë”Éè¢Öî§Ûð®áö¯ãø¯â÷«ßô«ÞóªÞó°ãø¯ãø°ãø¯ãø°ãø¯ãø±äù°äú¬âú«ãú©áø¨à÷¦Þõ¥Ýô¤Üó£Ûò ØïŸ×îžÖíœÔëšÒé˜Ðç—Ïæ•ÎìŠÄò…Á÷€¼ò{·íx´êw³év²èu±ço«áq­ãs¯åu±çt°æq­ãm©ßm¥àd™Ýg™âi›äjœåjœåi›äg™âf˜á`’Û^Ù[ÖXŠÓT†ÏP‚ËN€ÉM|ÊHtËJsÏJsÍIrÊIqÈHqÃIp¿Jp»Gl³Fk¯Fi©Dh¤Eh¢Fi¡Hk¡Il¤Lo©Ln«Mo®Mo®Mo¯Lm°Kl³Jj³Nn¹Nn»OnÀQpÃSqÇTrÈUsËSuÎHpÈErÇGqÃGs¾Jr·Js±LsªNt¥In›Jm—Hh@`‡@\ƒD`‡OhTošMmœMoŸMoŸMoŸMmœJj™Ih–Gf’C^‹E`‹Ib‹KdOfQh‘Ri’Sj“I[‰HZˆFY„DW‚CV€CV€DWEX€BV{BV{CWzDX{EYzFZ{G\{E\|G_ƒGa†Ga†Ga†Hb‡Hb‡Hb‡IcˆF`…C]‚@Z=W|X}?X€Ld’Ld”Ld”Ld”Ld’LdLdLeŽPi‘NgJd‰F`…@Z}a³?b´>dµ6d±5e¯3c¯1a«0`¬.^¨,\¨,\¦+[§+[¥+[§+[¥,\¨,\¦,\¨,\¨2`­2`®4_®1_­2]¬/]«1\«.\ª2]¬0^¬2]¬0^¬2]¬0^¬2]¬0^¬1\«.\ª0[ª-[©.Y¨+Y§-X§+Y§,W¦*X¦,W¦*X¦,W¦*X¦,W¦-W£/V›0V—2U™0V—2U™0V—2U™0V—,O“*P‘,O“*P‘,O“*P‘+N’,NŽ+Jƒ,J€,I,J€,I,J€,I,J€%Bz%Cy%Bz%Cy%Bz%Cy%Bz%Cw#=n#>m!m#>m9h9h9h9h9h9h9h9h#?q%As(Dv+Gy/K}2N€5Qƒ6R„;W‰;W‰AJKNWPS\EHQ8;D25>.1:*-6$'0#&/!$-!*(&%$#&/*-636?;>G>AJ;>G69B13?+-:68GDFSMO\JLX=?K.1:%(1),3,/603825:15815837848;@CJADMBENDGPFIRHKTJMVJMVFIRCFO;>G14=&)2 #,"+!$-46C57D:ZEaˆOhQm•Jk˜Ik›JlœKmKkšIi˜Gf”Fe‘@[ˆB]ˆG`‰JcŒNeŽOfPgPgFX†EW…CVAT@S}@S}AT|BU}AUzCW|FZ}H\H\}G[|EZyBYyE]E_„F`…Ga†Hb‡IcˆJd‰KeŠGa†F`…C]‚A[€>X}=W|=W|Xy7Qt0Lq/Ks0Mw3P|4S6U„6V‡7WŠ6WŠ9\’9^•<_—c§4YŸ5Y£6Z¦9]«;^¯>a³?b¶>dµ7e³4e±3d°1b®._«,]©+\¨*[§(Y¥(Y¥)Z¦)Z¦*[§+\¨+\¨,\¨5a¬5a¬5_«4`«4^ª2^©2\¨1]¨3]©2^©3]©2^©3]©2^©3]©2^©1[§0\§0Z¦.Z¥.X¤-Y¤-W£,X£*T )U *T )U *T )U *T ,Tœ/P“1QŽ1P1QŽ1P1QŽ1P1QŽ*I‰*J‡*I‰)I†(G‡(H…'F†(F‚$?t%?r%?r%?r%?r%?r%?r%?r9l9l9l9l9l9l9l:i6b7`5_6_5_6_6`7`0Z1Z0Z1Z0Z1Z0Z1Z5b7f:i#?n(Cr+Gv0Kz0L{;V…;W†=X‡=Yˆ>YˆG@CL?BK;>G79E-/<57FBDQKMZKMY@BN/2;#&/),3-0714936;37:26937848;CFMCFODGPEHQFIRGJSHKTILUILUFIR>AJ36?(+4"%.!$-"%.24A13@35B57D68E:Q|>Q{>Q{?Rz@S{BV{EY~H\K_‚J^G[|CXw>UuD\€C]‚E_„Ga†Hb‡Jd‰Lf‹Lf‹Hb‡Hb‡Ga†E_„B\?Y~bœ=d?cbœ@d Ad¤6Y7Y 8Z¤;\©=^¯@`³Aa¶?dµ7f´3g²1e°/c®,`«*^©(\§'[¦%Y¤%Y¤&Z¥'[¦(\§)]¨)]¨-]§6b«7a©8`¨5_§6^¦4^¦5]¥3]¥5]¥3]¥5]¥3]¥5]¥3]¥5]¥3]¥2Z¢0Z¢1Y¡/Y¡0X -WŸ.Vž,Vž)Q™'Q™)Q™'Q™)Q™'Q™)Q™+P–*H†-G€-G‚-G€-G‚-G€-G‚-G€)C~)C|(B}'Az&@{%?x%?z$?v4f5c5c5c5c5c5c5c0^0^0^0^0^0^0^0\0Y1U0U1U0U1U0U1U)N*N)N*N)N*N)N*P+T.V1Z7_";d%Ai+Dm+Go9R{8T|GADMBEN>AJ:57F@BOJLYLNZACO/2;!$-(+2-0725:47<37:26937848;DGNEHQEHQFIRFIRGJSGJSGJSKNWGJS@CL58A*-6#&/"%.#&/+-:+-:-/<.0=/1>35B=?LGIVMO\LN[MO\RTaXZgZ\iXZgTXdDHS9@J5EOMS_X^j^drbhvqv‰x}x}‘ns‡ej€ej€jo…ms‰muˆep‚YdvKVhEPbMXj\gygr„]hzZewXcu\gydohs…hs…ep‚\gyXcuWbtYdvS^pHSeCN`EPb\gyju‡fqƒHSe4?Q?J\[fxlyŒ™¯Ž´§o~•cr‰Xg~Ve|ap‡cr‰ap‡dsŠm|“u„›x‡žyˆŸyˆŸs‚™u„›~¤‡–­|‹¢Wf}*9P 2a¥?b¢;]š@cHj§Oq®TvµUw¶SuµRt´Mn±No´Op·Pq¸Rr»Tt½UuÀRvÂHqÀEsÁGs¾Gs¼Jr¸JsµLr°NsªMq¥Jlš@_‹6V};W~Fc…MgŠIeŠCd‘Ce•Df–Eg—Ee”Dd“CbA`Œ;Vƒ>Y„D]†HaŠKb‹LcŒLcŒKb‹CUƒAS?R}=P{Qy?RzCW|FZJ^Ma„L`G[|AVu;RrC[C]‚D^ƒF`…IcˆKeŠLf‹MgŒIcˆIcˆIcˆHb‡E_„@ZZ‰=\‹=\‹:[Ž=b™t$=s%G47@-09&)2"%., "/#%2%'4(*702?;=JCERNP]PR_TVcZ\i^`m_an^`m[_kRVa7>H!(2#*46I[BM_Ydv|‡™ŠœU`r3>P6ASWbtvƒ–«·Í¨·Î„“ªdsŠcr‰[jRax^m„`o†Xg~^m„m|“u„›x‡žu„›m|“ap‡kz‘z‰ ‚‘¨yˆŸ^m„]‹8Wƒ-Hu-Hs9R{@Y‚AXCZƒE\…@W€>P~?QATCVEX‚GZ„I\„J]…FZH\J^J^G[|BVwV†?W…AY…C[‡D]†G`ˆG`ˆE_„?Y~7Qt0Jm.Hi/Hg1Fa/C\+?X(=X)>[+Ba1Hj3KoF`…B^…?Z…;X„9V‚9U„;W†9YŠ:_–8_š8_š9`›9`›9`›9`›9`›9`›9`›9`›9`›9`›9`›9`›9a•EpDiCm!Fr'Ly1U‡:^’@c›7Y–7Y™7X›9Z¡<\¥?_ªCb²Cgµ6b«3e¬4d¬3e¬2bª/a¨-]¥*\£L”P—$Tœ(Z¡.^¦0b©3c«4c©:a¦:_£9^¢7\ 5Zž4Y2W›2W›/T˜.S—.S—,Q•+P”*O“)N’)N’(M‘'L%JŽ#HŒ!FŠDˆB†A…>‚=<€;9}8|6z6u3j2d1c0b/a.`-_-_)[)[)[)[)[)[)[)Z#P #L!L !J"M&O(S+T%P$M"M "K#N&O(S+T-R.P-O-O,N+M+M*L $F $F $F $F $F $F $F $FCBCA F $H(N+O6\7[":`%=a*Bh/Gk3Kq5Nv8Rƒ6R„5O‚3N}4Jy.Eo)=b#6W'E$= 3.)#, )0$-2%&&'( ) )!*'*325>AJGJSLNZGIVGIXNP]XZgWYeGIU25>&)2$'.),3.16.16*.1*.1/3448;LOVJMVGJSEHQCFOCFODGPEHQBENADM?BK;>G69B/2;*-6'*3 -!#0$&3')6+-:35B>@MEGTRTaVXeZ\i]_l_anacp_an[_kPT_:AK%,6")317CGMY\bpio}puˆv{Žtyty{€–v{‘diU[qGObDOaDOaFQcNYkXcucn€ju‡cn€`k}]hzZewZew\gy_j|bm`k}\gyS^pMXjITf@K];FX@K]al~‡’¤Š•§[fx1V„BZ†F^ŠHaŠHa‰Ha‰F`…?Y~7Qt1Kn.Hi/Hf1G_0D\,@Y*>W*>Y,A^1Ef1Hj?W{~<|;{:z8x8x7w5u3s2r1q0k.a-\,]+Z+\*Y)Z)X(Y(W(Y(W(Y(W(Y(W&Q%O$N$N%O'Q*T+U)S(R&P%O%O'Q)S,U1X2V0U1U/T/S.S.R(M)M(M)M(M)M(M)M&J %I #G +"F +"F %I'K)M1U2V6Z":^)Ae0Hl6Nr8Qy:U„7Sƒ6P5P5Kz/Fp*=e%7[&G$>5-($*(-#-/%&&'( ) )!*#&/,/847@7:C9I[EPbit†’¯• ²al~0;M,7IMXjo|¨´Ê ¯Æx‡žXg~ap‡hwŽap‡bqˆUd{?NeRaxœ³³ÂÙ­¼Ó’¡¸}Œ£et‹kz‘tƒšyˆŸu„›fuŒRaxCRiO^u]lƒgvp–{Š¡Ž¥yˆŸtƒšn}”ap‡]lƒr˜Ž¥‰˜¯m|“O^u]lƒu„›o~•dsŠq€—r˜n}”yŒªsŽ¹pÃªâ­Ìÿ’°î~œÜw”Øz—Ýz—Ýx•Ùx•×w—Ôy—Óv–Ïs’ÉpÅy˜Ît“Ér‘Çt“És’ÈmŒÂl‹ÁoŽÄ}œÒŒ«á“²è®ä¬â“²è“²èŠ«à¯è‘´ì™¼ô›¾ö•¸ð³ë†©áyœÔh‹Ãc†¾7Z’4lJm¥ˆ«ãš½õˆ­äz¡Üy¡Ütœ×l”ÏgÊfŽÉdŒÇa‰Äc‹Æa‰ÄV~¹Ow²T|·Y¼_‡Âj‘Ê{ ×lÅd‡½n‘Ç{žÔ¢Ø~¡×} Ö…¨Þ…¨Þ†©ß†©ß‡ªàˆ«á‰¬â†­ä‡´ëˆ¹ñˆ¹ñ„µïƒ´î„µð‚³î}­ëlœÚlœÜk›Ýj™Ýi˜Üi˜Üh—Ýg˜Ýf›ßeœße›áfàhžäk¢ån¤êp§êm£él£æj æhŸâe›áb™Ü`–Ü_•ÛWÕW’Ø[”Û\—Ý^—Þ^™ß_˜ß]˜ÞcœãdŸåh¡èk¦ìo¨ïoªðqªñqªñdšäd™åd™åc˜äb—ãb—ãa–âa–âhéižêižêhégœèešæb—ãa–æS‰ßS‰áS‰ãS‰áS‰ãS‰áS‰ãS‰áP†àRˆàS‰ãTŠâTŠäS‰áRˆâR†ÜLÒOÑOÑM}ÏIyËHxÊJzÌM}ÏK{ÍK{ÍK{ÍJzÌIyËIyËHxÊHxÌBtÍBsÏBsÏDsÍDsÍEsËEsËFrÉEoÅEoÃFoÁFoÁHn¿Hn¿Hn¿IoºIm«Jm¥Jm¥Lo§Nq©Ps«Ru¯Tw±Vy³Uw´Uw´Uw´Tv³Tv³Su²PvµNy¾M|ÄNzÁIu¼Ks»LtºMr¶Kn®<^›<]“Cb‘GgGcˆJg…Oj…If†Jk–Ik›Ik›JlœKkšGg–Ba<[‡%@m%@k0Ir7Py9PySr9PpD\€C]‚C]‚D^ƒD^ƒD^ƒE_„E_„KeŠLf‹MgŒMgŒLf‹IcˆGa†E^†?W…=U…;Sƒ:R‚JMV^`lUWdQSbQS`UWdRT`BDP03<%(1$'.),3.16.16*.1*.1/3448;ADKADMADMADMBENCFODGPEHQ8;D8;D:=F:=F979FACPJLYPR_WYfacpfhucercerikxjlyeiuOS^DKU18B!(2%+7=COW]kdjxtyŒw|z“…Šž’—­…Š ch~JPf=EX>I[DOaKVhS^p[fxal~dogr„doal~]hzZewYdvZewZewP[mOZlHSeITfP[mITfEPbR]ot‘š¥·˜£µ_j|/:L.9KQ\nq~‘š¦¼“¢¹r˜Yhgvr˜ixdsŠHWn>Md`o†¤³ÊËÚñ½Ì㏞µhwŽm|“n}”p–r˜p–gv[jQ`wbqˆn}”w†z‰ {Š¡yˆŸr˜kz‘hwŽUd{Zi€u„›‹š±Ž´fuŒAPghwŽŽ¥r˜et‹r˜n}”jy’°ˆ¥Ñs’ȃ¢Û£Áý‹©éœÞ}šà|™ßrÕsÔsÒt’Ðs‘ÍqÇoŽÄl‹ÁpÅs’Èr‘Çj‰¿c‚¸g†¼t“É~Ó†¥Û”³éš¹ï“²è®ä”³é“²èŒ­âŠªãŒ¯ç“¶î˜»ó–¹ñ²êƒ¦Þx›ÓjÅf‰Á.Q‰1i[~¶³ë‹®æyžÕvØy¡ÜuØi‘ÌbŠÅc‹ÆbŠÅ^†ÁWº[ƒ¾X€»Wº^†Á`ˆÃ`ˆÃhÈ~£ÚmÆd‡½p“É{žÔ|ŸÕ{žÔ~¡×„§Ý„§Ý…¨Þ†©ß‡ªà‡ªàˆ«á…¬å…±î„´òƒ³ñ}­ëy©éy©év¦èr¢äaÔaÖ`×`×_Ø^Œ×]‹Ö\ŒÖ[ÚZÚZÚ\’Ü_•ßb˜âfœæhžèl¢ìl¢ìk¡ëiŸéfœæc™ã_•ß[“ÞSŒÙRÙTÜUÜWßV‘ÝX‘àW’ÞY’áY”à\•ä\—ã_˜ç_šæašéašéXáZŽâYáYáYáYáYáYá^’æ^’æ^’æ]‘å\ä[ãYáYãO…ÝO…ßO…ßO…ßO…ßO…ßO…ßO…ßO…ßP†àRˆâS‰ãS‰ãRˆâP†àQ„ÝNÔP€ÒOÑK{ÍGwÉFvÈIyËM}ÏL|ÎK{ÍK{ÍK{ÍK{ÍK{ÍJzÌJzÎDvÏDuÑDuÑDuÑFuÏFuÏGtÏGuÍGsÊIsÉJrÉJrÇLrÇLrÇLrÇMrÀKn®Jm¥Il¤Hk£Hk£Jm¥Mp¨OrªRu­Ru­Ru­Sv®Sv®Sv®Tw¯Qx³Ny½M|ÂNzÁIu¼Ks»LtºMr¸Kn°4V•5UŽ?]EeŽHd‰Kh†Ql‡Kh†Kl—Ik›Ik›KmLl›Ii˜Dc‘?^Š%@m$?j/Hq6Ox8Oxk">m,L,M‚-Nƒ.O„/P…1R‡2Sˆ2Sˆ=^“<]’;\‘:[8YŽ7X6WŒ5W‡9\†5X~/Rx(Ks#Fp CmAnAo'Iy*K~/P…5VŒ;\’?`–Bb›Adž;cž:d ;e¡;e¡9cŸ6`œ3]™2\˜/Y•1[—3]™5_›6`œ6`œ5_›5]˜0S0P‰.M†)I‚&E~!Az>wm"=l"=l!AJ@CLADMBENBENCFO69B7:C9DPV\jbhvrwŠ{€“„‰•©•š°„š[`vEKa>FY=HZBM_HSeQ\nZewbmfqƒgr„ep‚bm^i{[fxYdvXcuXcuKVhKVhBM_FQcQ\nKVhITf]hzŠ•§£®À’¯U`r-8J5@RU`rn{Ž‡“©„“ªo~•bqˆp–x‡žn}”et‹>MdJYp§½Ìã¾Í䓢¹s‚™l{’tƒšq€—m|“jyhwŽdsŠ^m„Yhl{’x‡žƒ’©§x‡žr˜l{’fuŒ_n…FUlUd{v…œ–¥¼’¡¸_n…4CZp–…”«yˆŸkz‘s‚™ixhwŽ…˜¸ ¼ë{›Ô|œ×˜¸õ„£ä}œß}›á~œäqŽÔrÓsŽÑqÌmŠÆh…½eƒ¹cµg†¼oŽÄkŠÀ\{±Zy¯l‹ÁžÔ†¥Û¬â‘°æ”³é‘°æ®ä®ä‘°æ‘²çŒ¬åŒ¯ç²ê”·ï•¸ðŒ¯ç¢ÚwšÒr•Ín‘É1TŒ2j_‚ºŒ¯ç‚¥ÝwœÓsšÕuØs›Öi‘Ì]…ÀX€»Z‚½\„¿Mu°S{¶U}¸Z‚½c‹ÆfŽÉgÊm”Ís˜ÏkŽÆjÅv™Ñ|Ÿ×yœÔzÕ‚¥Ý…¨à…¨à†©á†©á‡ªâˆ«ã‰¬ä†­è†²ñ„´ö®òw¦êq æpŸål›ãg–Þ\ŠÕ\ŠÕ[‰Ö[‰ÖZˆÖY‡ÕX…ÖW†ÖUŠÚSŠÚSŠÚUŒÜWŽÞ[’â_–æa˜èj¡ñj¡ñj¡ñi ðgžîcšê_–æ]”äPŠÜN‹ÜPŠÞOŒÝQ‹ßPÞSáQŽßTŽâRàSáQŽßSáRàTŽâTŽâQ‡áRˆâRˆâRˆâRˆâRˆâS‰ãS‰ãTŠäTŠäS‰ãRˆâRˆâQ‡áQ‡áQ‡áMƒÝMƒÝMƒÝMƒÝMƒÝMƒÝMƒÝMƒÝMƒÝN„ÞP†àQ‡áQ‡áP†àN„ÞO‚ÛP‚×R‚ÖP€ÔL|ÐGwËFvÊIyÍL|ÐJzÎJzÎK{ÏK{ÏK{ÏK{ÏK{ÏL|ÑEvÒDwÓDwÒDwÒEvÒGvÐHuÐHvÎHtÍHtËJsËJsËKsËKsÊMrÊNsÃKn®Jm¥Gj¢Eh DgEhžGj Hk¡Nq§Nq§Or¨QtªRvªSw«Tx¬Qx±Nz»M|ÀNzÁIu¼Ks»Lt¼Mr¹Kn²/Q‘1QŒV‚BZ†F_ˆF_‡F_‡D^ƒ>X}6Ps/Il-Gh.Ge.BZ1BV2BY0BZ/@Z+?Z*=[(=\5W6Z7] 9a!:c";d":f ;h'Ew'Gz'Gz(H{)I|*J}*J}+K~2R…2R…2R…2R…2R…2R…2R…2Rƒ7Xƒ7X6W€2S~-Ny&Gr@kJ,/8$'0$'.),3.16.16*.1*.1/3448;9AJ@CL@CL?BK?BK8;D9G;>G:=F8;D69B#%2&(5,.;8:GFHUQS`Y[h\^kZ\i\^k^`m_an`bofhuqs€y}‰]alHOY.5? '1*0FY=HZ?J\EPbNYkYdvcn€hs…ep‚dobm_j|\gyZewXcuWbtMXjKVh?J\BM_P[mJUgJUgdo§²Ä«¶ÈƒŽ CN`+6H?J\Zewfs†y…›yˆŸr˜n}”v…œv…œl{’fuŒN]tYh‹š±¸Çޟ®ÅfuŒ\k‚u„›w†q€—hwŽcr‰`o†`o†^m„]lƒm|“v…œƒ’©„“ª{Š¡w†tƒškz‘Ud{9H_Raxs‚™—¦½œ³Yh3BYq€—ƒ’©|‹¢p–p–fuŒp–”§Ç­Ìû¢Ür’φ¥åw–ÙqÕrØy—ßw“Üv“×uÓnŠÉd½[x°Us©Sq¥dƒ¹f…»a€¶[z°f…»{šÐ…¤Ú ÖŒ«áˆ§Ýˆ§ÝŽ­ã¯åŽ­ã¯å”µê‘±êŽ±éŒ¯ç²ê‘´ì†©áx›Ós–Î|Ÿ×s–Î8[“9q[~¶„§ß‚¥Ý}¢Ùr™Ôp˜Óq™Ôl”ÏY¼Hp«Lt¯\„¿X€»Z‚½WºV~¹^†ÁbŠÅeÈn•ÐiÇjÅq”ÌzÕ{žÖx›Ó{žÖƒ¦Þ„§ß„§ß…¨à†©á‡ªâ‡ªâˆ«ã…¬çƒ®ò€¯õz©ïpŸçj™ái—âf”ßaÜ[‰ÖZˆÖZ‡ØY†×X…ØX…ØW„×V„ÙTˆÛR‰ÛR‰ÜSŠÜUŒßXá[’å]”æfðhŸñi ój¡ói óeœîa˜ë^–éR‹âO‹ãNŠâM‰áM‰áNŠâPŒäQåRŽæQåO‹ãM‰áLˆàLˆàLˆàMˆâM„áNƒãO„äO„äP…åP…åQ†æQ†æQ†æP…åO„äNƒãM‚âNƒãO„äP…ãLÝL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜMƒÝN„ÞP†àP†àN„ÞMƒÝNÚOÖR‚ÖQÕM}ÑHxÌFvÊGwËIyÍHxÌHxÌIyÍIyÍJzÎK{ÏK{ÏI{ÐDwÒDwÓDwÒDwÒEvÒEvÒGvÐHuÐFqÍFrËHqËHqËIpËIqÉKpËLqÂIl¬Il¤Gj¢DgŸBe›AdšAdšAe™Jn¢Ko£Mq¥Os¥Qu§Sw©TxªRz®Nz¹M|ÀNzÁIu¼Ks»Lt¼Mq»Km´0R’1QŒ;YBaGd†Mk‡Uq‡Qo‹Gh‘Fh˜Gi™Ik›KkšIi˜Dc‘@_‹.Iv,Gr5NwX}?Y~?Y~?Y~@Z@Z@Z?Y~A[€E_„Hb‡KeŠMgŒMgŒMfŽNf”Jb’D\Œ?W‡V.?S1AX2BY1C[.?Y*>Y(;["6W"9[%;b'?e)@j)Bk)Am'Bo-Ix-Iy,Hx,Hx,Hx,Hx,Hx,Hx*Fv*Fv*Fv*Fv+Gw+Gw+Gw)Hw.M{0Q|4U‚6W‚3T,Mx$Ep?j?j@k!Bm&Gr,Mx3T9Z…=^‹;_‘;_“<`”;_“:^’7[4XŒ2VŠ.R†.R†.R†,P„*N‚&J~#G{"Cx4j4j3i2h1g/e/e.d/e0f0f1g1g2h2h3i1g1g2h3i4j6l7m7m;q:p9o7m6l4j3i1f!l$?l,Dr*Er,Dr*Er,Dr*Er,Dr*Er)Do(Em)Do'Dl%@k"?g ;f:b6a:b#>i'Dl-Hs0Mu3Ny3O~/N„.N‡/N‡-M†-L…+K„,K„*Jƒ+Jƒ*Jƒ+Jƒ*Jƒ+Jƒ*Jƒ+Jƒ,J~2Iu7Jr:Mw;Nv8Ku3Fn.Ak*=e/Y-U*T(P*T/W"5_$:c*Fn)Fp+Fs-Hu2Hy/Ev-?o):f&O$E8,% $ '!%&&'( ) )!* )%(1-0914=47@7:C47@.1: ) ) ) ) ) ) ) )&!$!$-%(1),57:CIKWln{acrWYfQS`IKW:AJ>AJ=@IG;>GG9Mdl{’z‰ x‡žp–jyfuŒ§­Àà°Îÿ~¢Üe‡Ät–ÕkŒÏgˆÍjˆÐz˜àx”Ýx•ÛuÓlˆÇa{¶Uo¨Ni Ig›c‚¸a€¶f…»t“Ƀ¢Ø‰¨Þ„£Ù~Óƒ¢ØžÔ€ŸÕŠ©ß“²è•´ê”³é”µê•µî²ê‡ªâ‡ªâŠ­å~¡Ùn‘ÉmÈ|Ÿ×p“ËAdœ%H€_‚º…¨à†©á}¢ÙsšÕj’Ín–Ñp˜ÓWº7_š>f¡]…ÀfŽÉeÈZ‚½T|·X€»\„¿`ˆÃj‘ÌhŒÆmÊs–Ðx›ÕyœÖyœÖ|ŸÙ¤Þ¤Þ‚¥ß‚¥ßƒ¦à„§á…¨â…¨â‚¨æ{¦ëx§ïr¡éi—âd’Ýd’ßbÝ_ÛZ‡ØZ‡ØY†ÙY†ÙX…ÚW„ÙW„ÙUƒÙTˆÜQ‰ÜPˆÝPˆÛQ‰ÞS‹ÞVŽãWâ_—ìa™ìeògŸògŸôdœï`˜í]–íRçPèN‹æL‰äL‰äMŠåOŒçQŽéT‘ìRêOŒçL‰äJ‡âI†áI†áK†äJ€âJ€âKãL‚äMƒåN„æO…çO…çP†èN„æL‚äKãKãMƒåO…çP†æLÝL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜL‚ÜKÛL‚ÜMƒÝN„ÞN„ÞMƒÝL‚ÜM€ÙK}ÔN~ÓOÔM}ÒHxÍDtÉBrÇCsÈFvËFvËGwÌHxÍIyÎJzÏJzÏI{ÒBuÐ@uÑBuÑBuÑCtÐCtÐEtÐEtÐ@mÊAlÈClÈClÈDkÈDkÆDkÈFl¿Gj¬Hk£Gj¢Eh Be›>a—;_“9]‘GkŸImŸKo¡Mq¡Pt¤Rv¦Tx¨Rz­Nz·M}¿N{¿Iu¼Ks»Lt¼Mq»Km´3U•3SŽ;YA`ŒFc…Mk‡Ws‰TrŒEfDf–Eg—Gi™Jj™Hh—Dc‘?^Š0Kx/Ju7Py>W€AXH_ˆPgNeŽOaOaM`‹L_ŠJ]‡H[…FYFYFZFZEY|DX{CWxCWxCXwAXxX}C]‚Ga†KeŠMgŒNhOhKc‘Ia‘E]BZŠ?W…?Wƒ@X„AZƒAZ‚AZ‚>X}8Rw0Jm*Dg'Ab)@_(:R,;P0@W3CZ2D\0A[*>Y(;[,@a,Ce0Fm3Kq6Mw7Nx6Nz6Nz9T8S‚7R6Q€4O~3N}2M|2M|)Ds)Ds(Cr(Cr'Bq&Ap&Ap&Ap"Ao'Ft.M|3R€5T‚1P~,Kw(Gs#Bn!Aj?f?f#Cj)Ip0Pv3T};[Š:[Ž;\:[Ž9Z6WŠ3T‡2S†(I|(I|'H{$Ex At=p8k6i.b.c/d0e1f2g3h3h9n9n:o ;p!s9n:o ;p"=r$?t&Av'Bw(Cx+F{*Ez)Dy'Bw&Av$?t#>s">p(Dt(Ds*Et*Fu,Gv,Hw.Ix-Ix0Kz/Kz0Kz/Kz0Kz/Kz0Kz/Lx-Jv,Lu.Kw*Js*Gs$Dm"?k=fk'Bo.Du-Ct,>n):f'P#F8,##&%&&'( ))!*)'*322<58A::D:=F88B03<**++++ , ,*#%!#/(*6+-99;GKMYoq~cetWYfQS`HJV9;G*,8#&/$'0),5.18.18*-2*-2/2747<8;B9AJAJ>AJ>AJ=@I;>G8;D47@24@%'4')6/1@=?LNP_[]jacrceregv[]jWYhZ\iWYhWYfhjy~‚Žjp|EMX"*5'44;KKRb[btcj}ms‰rxŽ|‚˜‹‘§•«v|’RYl@GZ9AV9DX?J^GRfP[oZeybmfq…bmal€al€`k^i}\g{ZeyYdxGRdDOa4?Q9DVNYkMXjU`rxƒ•ÅÐ⧲Ä_j|"-?*5GXcumxŠer…wƒ™w†{Š¡~¤v…œfuŒ_n…gvfuŒtƒš€¦x‡žhwŽhwŽjybqˆp”hwŒ`l‚Xg|Zf|[jamƒap…co…_nƒnz~¢œ²›ª¿š¦¼†’¨FSf/mÅDsËEuÊEuÊFvËHxÍJxÎJxÎJyÑCuÎBuÐCtÐCtÐEtÎEtÎEtÎFsÎ=jÅ>iÅ>jÃ@iÃ@iÃ@iÃAhÃCi¾Di¯Gi¨Gi¨Eg¦Bd¡=`š8[“5XŽFjžIjKmNp Qs¡Tv¤Vx¥VzªRy´R{¹RyºMtµMr¶Ps·Pq¶Nm°9W•7TŽ;YB^EaˆMjŠYt‘Wt”DcCc”Dd•Gg˜Ji˜Hg–Ea@]‰1Ly/Ju8Qz?XBY‚I`‰Qh‘Pg‘Pe’Od“MbK`I^‰G\‡EZ…DZƒDZƒCY‚BXAW~AW|AW|AW|BX}:Rv:RvVzC[H`„LdˆOg‹PhŒQiJ_ŠI^‰G\‰EZ…DY„CY‚CY‚CY€AW~AW|?Uz8Ns0Gi*Ac(?_*?^%6P(:R.?Y0D]1E`.C^*?^%<\2Hm4Lr9PyY†>Yˆ=Y‰?^”=^”<[’9Z8WŽ5V‹4S‰3T‰*I(I~(G}%F{$Cy"Cx"Aw!At9l>q&Fy-M~2P‚3R1P~/Nz*Gq&Ck >d:_;`$Ac+Hj0Lq=Xƒ=Yˆ=Yˆ=Yˆ;W†8Tƒ6R4P'Cs%Ds#Bq ?n:i5d0_ -`-f/j1l3n6q9t;vl"Ao%Dr*Iw/N|3R€5T‚5T‚4T‡4T‘2T”1S“0R’/Q‘/Q‘.P.P+M+M+M+M+M+M+M.Lˆ2I}9N}AV…G\‹J_ŽG\‹CX‡@U„-Bq&;j1`'V O M M +!M6^7\ 9a&?g+Bl,Bk+>h(:`(L$C6+ #!""%!'(!*!!+" + *('!*)$"-..8=;FIISRP[TT`57D')8"$3#%4 "1"$3&(7&(7, "1')8.0?68G@BQLN]SUd~€mo|^`mRTa@BO24A/1>13?79E79E57C13?/1=13?79E=@I8;D:=F=@I?BKAJADM?BK8;D24@*,;&(734FLN]abtrtƒxy‹rtƒ^_q\^mWXj\^mcdvVXgKL^RUd‡”]fu2;L$,?=EZah‚u|˜xœmt‘lspw“owŽiqˆiq„^gxGOb,7K.9O5@VDOeVawbmƒfq‡fq‡^iVawWbxcn„do…Ze{Vaw\g}R]q7BT,7I=HZOZlZewkvˆ~‰›·ÂԁŒž0;M);BM_]hzkvˆmzt€–yˆŸq€—n}”v…œjy^m„ixv…œŽ¥„“ªtƒšhwŽx‡ž‚‘¨tƒ˜fs†dq„bm`m€bmdq„itˆkx‹u€”cpƒ_j~mz‘œ°·ÄתµÉs0:FFNY_iur{Šw‚”u€–my“cr‘q£l~¦bsŸUg—Zn zŽÃ¤¹ð¿Õÿœ¸÷y˜Øc‚Ãr‘Ò‡¤æy–ÚdÅa~ÂpÑkˆÊc€Â\zºXv¶Xv¶\x·]{¹mÈwšÔ„¤ß†©ã‰©ä‰¬æ‹«æ†©ãoÊn‘Ë‚¢ÝŒ¯éŠªåŒ¯é”´ï­æŠ©à”²è’¯ç†¤Úz—ÏlŠÀfƒ»k‰¿j‡¿i‡½Tq©Om£kˆÀ}›Ñ{˜Ð|›Òq”Îj‘Ìn’Î`‡ÂGk§Ah£Tx´\ƒ¾`„ÀY€»Tx´Mt¯Os¯Szµ\€¼a…ÁnÎn‹Íu’Ôz—Ùw”Öx•×y–ØsÒw”Öv“Õu’Ôt‘ÓsÒrÑqŽÐqŽÐh‡ÈfˆÈf‡Êf‡ÊeˆÌe‡ÎcˆÏc‡Ñ^‚Ð]‚Ò]‚Ó]‚Ó\‚Õ\‚×Z‚×YƒÙVƒÞU„ÞS„àS…ÞR…àR…ÞR…àP†ÞS‰ãRŠáT‹åUŽåWéV’èZ“ìY”îMŠçM‰éM‰ëM‰éM‰ëM‰éM‰ëM‰éLˆêLˆèLˆêLˆèLˆêLˆèLˆêLˆêH‚æH‚æHèH‚æHèH‚æHèH‚æHèH‚æHèH‚æHèH‚æHèH‚æF€áF€áF€áF€áF€áF€áF€áF€áF€áF€áF€áF€áF€áF€áF€áH€ßE|ÙF{×HzÙH{×H{×Iz×IzÖIzÖ=lÆ=lÄ=kÃjÁ>jÁ=iÀ_¢:Yš4T‘5UŽ?^”JhšLkšLh—Mj–SpšXw£]{¯Vs«Wt¬Sp¨HeNh¡LfŸ:TG`˜OhžHb•E_F^ŽJbUm™Qi—Ke–OiœQkžQkžRlMg˜Qq@SsCVvEXxFYyDWwDWwEXxFYyH[{I\|J]}K^L\~K[}K[M]O_O_K[}HXz?Oq?Op=Mn6Fg.>_*:[*:[-=^(=Z(@\+Ba/Fe3Jj7Oq:Rx:S{FaŒEbŽEaCb‘Ca“Bb“Bb•?bš8c§5e­7f®7g¯9h°9j¯;j°:k°8g«6gª4d¦1b¤/_¡+\ž*Zœ*X–C~A{>w>t>t"@t%Ds)Et.It/Hp-Ek*Ac(<_%9Z#6V!4U(:`)f,?g)?h'=f$;e"9c3_1]0].[.]/^0_1gA‚C‹E H#K“&N–(P˜)Q™/WŸ/WŸ/WŸ/WŸ/WŸ0X 0X 0Xž,S˜,S–-T—-T—.U˜/V™0Wš0Wš1X›0Wš0Wš/V™.U˜-T—-T—/R’2R‹3Rˆ4Q‰3Rˆ4Q‰3Rˆ4Q‰3Rˆ5RŠ4S‰5RŠ4S‰5RŠ4S‰5RŠ5S‡3R€5R|7T~7T~5R~2O{.Jy,Hx4P€5Q6R„7S…7R‡6Q†5P…2O‰1P‘0Q˜0Q˜1R™2Sš3T›3T›4Uœ0Q˜0Q˜0Q˜0Q˜0Q˜0Q˜0Q˜2Q’9VŽ:Vˆ:Vˆ9U‡8T†7S…7S…6R„.J|*Fx#?q6h-_$VOG C &C,J3R#;W)>[,A\.B[%=#:!4/ -!*"*#)'(!*" +" +!*('((#!,,*5:8CHFQSQ\XXdA@P./A&'9&'9$%7$%7&'9#$6/!"4'(:/0B78JCDVOPbXZiƒ’qs€^`mOQ^>@M,.;*,968EEGTBDQ<>K46C.0=.0=35B8:F8:F;>G>AJ?BKAJ69B02>)+:)*<78JMN`bcuuvˆz{rs…cdvXYkNOaWXjfgyabtSTfSVgbkzWcs?J\-8N;E^aj‡~‡¦ˆ‘²qz›dmŒfoŒq{”mxŽbmVbrKWg/:P1;T8B[GQjXb{dn‡hr‹hr‹bl…Yc|Waz_i‚ak„^hbl…kvŒVau;FX(3E8CUU`r`k}kvˆ€‹¦±Ãv“-8J*kÀ>kÀ?lÁ?lÁ@mÂ@mÂAnÃCmÁGk¿Fi»Ef·EfµFf³Cc¬?^¡:Y™:X”?^•Gc•Kg–Mh•Oj•Rn–Vqœ\s¥[r¦\s§Yp¤RiPg›H_“9P„I`”SjžMd˜H_“D[E\SjžSjžRiSjžTkŸTkŸSjœJa“9Q*Bp1Iw5My;T}C\…Jc‹OhRk“Rn–Ni˜Lh˜Lh˜Kg—Jf–Ie•Ie•Hd”C_A]>ZŠV‚:Nq>Om?Pn@QoBSqCTrDUsEVtDUsEVtEVtGXvHYwIZxIZxJ[yLZwKYvKYvLZwN\yM[xJXuFTq@Nk@Nk=Kh7Eb/=Z+9V+9V+c(:^%8Y%5V$4U%3X%5Y'7[%7]%7]"5]2Z2[-X-W-Y-Y/]3`5b7m!IK™M›!O$R 'U£)W¥*X¦,Z¨,Z¨,Z¨+Y§+Y§*X¦*X¦*X¥)S)S›*Tœ+U,Vž,Vž-WŸ-WŸ.X -WŸ-WŸ,Vž+U*Tœ*Tœ,S˜1S4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4SŒ4S‰5Q€5R|6S}6S}4Q}1Nz.Jz,Hx4P‚5Qƒ6Q†7R‡7R‰6Qˆ5Oˆ2O‹0N”/O˜/O˜0P™1Qš1Qš2R›2R›1Qš1Qš1Qš1Qš1Qš1Qš1Qš1R•8W7VŒ7VŒ6U‹5TŠ4S‰4S‰3Rˆ+J€'F|!@v8n/e']!WL? #<(B/G4L#9P&;P'KWYfPR_EGT8:G-/<*,9.0=24@9;G;>G>AJ?BK=@I7:C14=,/8,/8/2;58A?QPQcdewyzŒ~‘rs…hi{UVhCDVLM_ghzqr„cdvSVgFO^MYiKVh>I_EOhjsŒ•´™¢Ãu~ŸgpfoŒoy’ozep‚XdtMYi4?U5?XjÁ:f½9bº7`¸=j¿=j¿>kÀ?lÁ>kÀkÀ@mÂBoÄErÇGtÉIvËLvÊMqÅMpÂNoÀNo¾OoºMnµKj­Gf¦B`œ@_–A\‘C_Je’Ni”Pl”Oj•Sjœ[r¦Zq¥Wn¢Wn¢Ne™>U‰5L€Ja•Ul QhœJa•@W‹?VŠPg›Vm¡Zq¥Ul SjžTkŸPg™BY‹2Jz(@n3Ky6NzV‚=Qt@Qo@QoARpARpBSqBSqBSqCTrCTrCTrCTrDUsDUsEVtEVrIWrHVqGUpHVqIWrHVqDRm@NiX}B[ƒC^‰C`ŒIe”Gf•Ff™Fe›EfœEežEež@f§:k¸5l¿6mÀ6mÀ7nÁ8oÁ8oÁ8o¿8o¿7n¾7n¾6n»5mº4l¹3k¸6jµ3]¥3ZŸ0U›+P”(K‹&H…&F&E{&Av&@q&>l%@M`boY[hJLY:AJ8;D14=-09*-6-0936?9G47@.0<)+:45GFGYVWihi{~‘‚”rs…ij|UVh?@R?@R^_q~‘vw‰UXi6?N=IYITfNYoYc|xžš£Â©²Ó{„¥vžnw”jtmxŽp{coNZj9DZ:D]@JcMWp\ffp‰isŒgqŠ[e~T^wNXqS]vak„x‚›’œµ¤¯Åbm>I[+6H=HZVasgr„y„–‰”¦}ˆš\gy$/A +=HSeit†…¢”¡´}‰ŸfuŒYhap‡gvgv€¦¦µÌ°¿Ö‚‘¨Q`wVe|„“ª”£º{Š¡dsˆal€`k}^i{_j|bmgr„lw‰ozŒ€‹w‚”ozŒju‡ozŒ€‹‚Ÿqz‹JR]Zcljr}pyˆq|Žp|”esXf‰Ve`r¢l€µuŠÃ”Óˆ à¤èŒ¥è|—Ú€ßw”ÖkˆÊl‰ËkˆÊ^{½Tq³g„ÆmŠÌt‘Óz—Ùz—Ùt‘ÓmŠÌf…Åu”Ô{Ú€¢ß£àƒ¥â…§ä„¦ã¡Þt–Óu—Ô‡©æ•·ô“µòš¼ù¢ÄÿŸ¿ú›¸ðªá… ×… ×tÆQl£Jeœb}´•°çoŠÁE`—D_–d¶x“Êy”Ëy—ÍnÄcƒ¼Zy²Zz³Yx±Jj£Kj£^~·t“ÌoÈkŠÃg‡Àh‡ÀlŒÅr‘Êv•Îy—Õu“Ñx–Öx–ÔoÍjˆÆg…Å_}»f„Äf„Âf„Äf„Âf„ÄeƒÁeƒÃeƒÁf‚Áf‚ÁeƒÃeƒÃdƒÆdƒÆbƒÊb‚Ë`‚Ì`Î^Ò^Ò]Õ]Õ\‚×Z‚ÙW‚ÞVƒàU„àU„àS„àS„àR…àR…àN„ÞM„ÞN…ßN‡àM‰áNŠâO‹ãOŠäK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚æE€äEãEãEãEãEãEãEãEãEãEãEãEãEãEãF€áD|ÝE{ÛF{ÛF{ÛHzÙHzÙIz×IzÖEtÐEtÎEsËCqÉCoÆAmÄBkÃAjÂ@mÂ@mÂAnÃBoÄAnÃ?lÁ=j¿;h½W€D]†IbŠMfŽOhNj’Ni˜Lh˜Lh˜Kg—Jf–Ie•Ie•Hd”D`B^Ž@\Œ=Y‰;W‡;W‡;W‡?Wƒ;Or?Pn@Qo@QoBSqBSqCTrDUsARpARpARp@Qo@Qo@Qo?Pn?PlESmCRiBQhCRiDSjCRi>Md;Ja5D[4CZ2AX1@W0?V0?V2AX1B\=Qr;Sy>V|AXD]…G`‰GbHd“Lh˜JhšIhžIhŸHh¡Hh£Hh£Ciª?p¿:qÄ:pÆ:qÄ:pÆ;rÅ;rÅ;rÅ9pÃ9pÃ9pÂ9pÂ9pÂ9pÂ9pÂt9o3i/e.]A: < !; "=$<#;$9!5!2/-, +#.$/'(!*" +" +!*(' "%!*+)4<:ERP[__kml|PQc<=O89K67I23E)*<.$%7*+=34F=>PGHZSTf_`rgixxz‰su‚acpSUbBDQ "/+=?L^`mWYfIKX:-/<13@68D:.1:*-6,/803<69B:=F:=F58A02>-/>:;MNOa]^plm€“‚”qr„hi{YZlCDV45GLM_}~„…—]`q*3B,8HCN`]h~lvƒŒ©¦¯Î¼Å挕¶ƒŒ«s|™jtq|’v“ht„VbrALbAKdEOhOYr\feoˆeoˆcm†[e~U_xOYrS]vfp‰ƒ¦œ¦¿©´Êep„=HZ5@RHSeR]ofqƒƒŽ š¬u€’Vas!,>*kÀ?lÁ@mÂAnÃDnÂDiºHk¼No¾Qr¿Ss¾Tu¼Vu¸Wv¶Us¯HgžOm@QoBSqDUsFWuGXvARpARp@Qo>Om=NlMb=La?Nc@Od?Nc;J_8G\.=R-t;q8n7f +$I +#B +!A> ;842 3 0 - ,+ +#.$-'(!*" +" +!*('!!"'*(3;9DNLWYYerqUVhBCU=>P:;M56H,-? 2&'9./A:;MEFXOPbXYkabtfhwrtƒln{_anRTa@BO%'4#%2=?LSUbNP]DFS9;H13@02?57D:AJADMBEN?BK:=F36?/2;-09-09.1:36?7:C9kÀ>kÀ>kÀ@j¾=b³Bf´Hi¶Jl¶Kk´Kl³Nm°Po¯Vt°Lk¢B]’;W‰OmN^>N^;K[8HX,N4DT:JZ=M]tÌ>tÌ=sË|:v7p&J<>J>AJADMBEN@CL:=F47@/2;14=/2;-0903<58A9G;=I<>MDEWZ[mnowxŠ}~{|Žpqƒjk}[\nPQc89K*+=RSe€“ƒ†—?HW/;KAL^do…x‚›˜µ§°Ï°¹Ú²»Ü”¼py–hr‹s~”q|Žfr‚dp€XcyV`yWaz\fdn‡gqŠeoˆ`jƒak„_i‚[e~_i‚u˜Œ–¯—°Œ¢cn‚GRd9DVKVhdor}ƒŽ —¢´ju‡NYk(:*YˆA\‹D_ŽBZŠF^ŽBZŠAY‰C[‹:R‚6N~BZŠNf–UmOg—H`9Q4L|Qi™h±g~²\s§I`”5L€,Cu0Gy9Q>V„;S=UAZƒE^‡Ha‰Jc‹Jc‹HdŒNi˜Lh˜Lh˜Kg—Jf–Ie•Ie•Hd”Fb’Ea‘B^Ž?[‹=Y‰=Y‰>ZŠAY…9Mp=Nl>Om@QoBSqDUsEVtFWuDUsBSq@Qo>Om;Lj9Jh7Hf6Ga6EX5ET6FU:JY=M\>N]N]tÎ=sÍ=sÍJ<>J>AJBENCFO@CL:=F47@/2;47@03<-09.1:36?9@L@BQFGY\]ost†z{{|Žxy‹pqƒmn€YZlRSe>?Q"#5>?QyzŒ“–§Zcr=IY@K]]h~z„•ž» ©È“œ½³¼Ý¦Åu~›^hju‹t‘jv†_k{al‚^h^hbl…hr‹jtfp‰ak„]g€]g€\fcm†{…žš³Š”­u€–bmNYk5@RFQcq|Ž{†˜}ˆš˜£µep‚JUg'9 +=NYks~’¯£°ÃmyO^uVe|o~•s‚™w†ƒ’©„“ªfuŒ\k‚n}”’¡¸¦µÌ ¯Æ§\k€OZnNYkOZlR]oXcu_j|fqƒkvˆr}kvˆfqƒit†mxŠep‚WbtNYk_k{p|Œ{†šwƒ›sœm|›Ue‰6Iscw©q†½}“Ïz“ÕuÓrŒÖuÚv’Üw”Ø€ßl‰ËIf¨Eb¤Zw¹kˆÊpÏ{˜Úy–Øw”Öu’ÔsÒrÑrÑpÏt“Ót–Óv˜Õy›Ø€¢ßˆªçˆªçƒ¥âjŒÉr”э¯ìŸÁþ›½ú™»ø–¸õŠªåˆ¥Ý„ŸÖ|—Îv‘ÈhƒºPk¢Lgž^y°\w®]x¯a|³i„»rÄqŒÃ\w®@[’Qk¤Oi¢IcžTn§k…Àk…¾Ys®Sm¦^x³]w°]w²^x±a{¶e¸j„¿kˆÂf†¿b…½h‹ÃkŽÆgŠÂf‰ÁeˆÀ_‚ºb…½c†¾c†¾d‡¿f‰ÁgŠÂgŠÂjŠÅi‡Åj†Åi‡Çi‡Çh‡Êh‡Êf‡Îf†Ï`‚Ì`Î^Ò^Ò]Õ]Õ\‚×Z‚ÙW‚ÞVƒàU„àU„àS„àS„àR…àR…àP†àO†àO†àM†ßK‡ßK‡ßK‡ßJ…ßI…åI…çI…çI…çI…çI…çI…çI…çGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚èG‚æE€äEãEãEãEãEãEãEãEãEãEãEãEãEãEãF€áD|ÝE{ÛF{ÛF{ÛHzÙHzÙIz×IzÖM|ØM|ÖM{ÓM{ÓMyÐLxÏNwÏNwÏJwÌKxÍLyÎLyÎKxÍIvËGtÉFsÈDqÆErÇErÇFsÈFsÈGtÉHuÊJtÆMrÀQu¿UwÁRt¼Mn³Hi¬Ih©Ih¨Jh¤On§Tn§Ni D^‘=Wˆ=Wˆ@[Š>V†@X†@XˆBZˆAY‰9Q8P€BZˆNf–Sk™Ld”G_9Q5M{Sk›j‚²f}¯]t¨G^’.Ey&=o0Gy=U…C[‰V‚B[„E^‡Ha‰IbŠIbŠGc‹Ni˜Lh˜Lh˜Kg—Jf–Ie•Ie•Hd”Gc“Ea‘B^Ž?[‹>ZŠ=Y‰>ZŠAY…Om;Lj8Ig6Ge5F`3CS3CP5ER9IV=MZ?O\=MZ;KX4DQ1AN/?L1AN7GTtÎ=sÍt3R‰2S‰3SŽ4W‘8Z—<`œ@d Ag¨?i³l#:c3\+R$I @ +; 6 1, +* (( )$+&-(((((((('.,797BECNTT`lk{vw‰XYk?@R=>P23E,-?-.@9:L?@RGHZQRdYZl_`rbcucet^`oWYfUWdKMZ68E.0=;=JHJW`boQS`?AN46C35B8:G<>K>@LBDPDGPDGP>AJ69B47@8;D>AJCFO>AJ9GFHT\^mdewij|qr„z{vw‰pqƒrs…lm_`r\]oKL^+,>23EZ[mqt…ox‡]iy[fxny‚Œ¥‹”±–µŒ•¶‘š»–µ…Ž«jtWbxT_qXdtkw‡kvŒoy’lvq{”mwwšmwbl…isŒ`jƒ^heoˆu˜Š”­‡‘ªmxŽfq…Q\n?J\GRdcn€{†˜€‹{†˜t‘KVh%0B3>PXcuz…——¢´™¦¹jvŒKZqXg~v…œžµœ³ˆ—®s‚™GVmm|“œ³’¡¸‹š±§jyP_tJUiJUgMXjQ\nWbt_j|fqƒju‡^i{T_qU`rhs…y„–p{R]o8CU^i{ŒŸ ¬Â ®È‰—´l|žN`ˆ7Iwq…ºp†Àn†Æk„ÇfÈf‚Ìj…ÔoŠ×n‹Ñg„Æ`}¿^{½dÃl‰ËrÑu’Ô}šÜ{˜Úx•×w”Öw”Öt‘ÓoŒÎj‰ÉmŒÌxš×€¢ß~ Ý¡Þ…§ä¡Þt–ÓmÌ†¨å£Åÿ›½ú–¸õ˜º÷†¨å€ Û}šÒn‰Àl‡¾d¶b}´c~µ^y°k†½d¶j…¼]x¯Wr©Zu¬B]”/J>X‘B_™Pm§Li¥Jg¡Sp¬Mj¤Nk§fƒ½fƒ¿fƒ½g„Àh…¿h…Ái†Àj‡Ãi‡Ãa„¾`„¾_ƒ½]»]»\€º\€º]»a…¿a…¿a…¿a…¿a…¿a…¿a…¿b…¿f„Âj†ÅnŒÌrÐqÓpÒj‹ÒhˆÑaƒÍa‚Ï^Ò^Ò\€Ô\€ÔZ€ÕX€×W‚ÞVƒàU„àU„àS„àS„àR…àR…àO…ßN…ßN…ßM†ßK‡ßK‡ßK‡ßK†àJ†æJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒçG‚æGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåH‚ãH€áIßJßJßL~ÝL~ÝM~ÛM~ÚM|ØM|ÖN|ÔM{ÓMyÐLxÏNwÏMvÎKxÍKxÍKxÍLyÎLyÎLyÎLyÎLyÎIvËJwÌJwÌKxÍLyÎMzÏN{ÐPzÌNt¿NsºPrºRt»Uv»St·Qp±Lk«Ig£Kj£Oi¢Ni Jc™A[Ž8R…2L}@X†4Lx:R€?Wƒ.Ft'?k:R€Nf’Um›Tl˜Nf”Qi•VnœJbŽOg•m…³m„¶Ri:Q…!8l+BtI`’H`F^ŒD\Š@X„?XC\…Jc‹NgLeGc‹Lg–Jf–Hd”Gc“Fb’Ea‘Ea‘Ea‘Gc“Ea‘D`Ea‘Ea‘B^Ž=Y‰;S:Nq>Om@QoARpCTrCTrDUsDUs?Pn?Pn>Om=Nl;Lj9Jh8Ig7Hb6FV3CP1AN/?L2BO7GT=MZAQ^AQ^=MZ9IV5ER3CP5ER8HU8J^SgˆPgOfPg“Ph–Sk›TnŸTp¢To¦Ro§Qp©Rp¬Qq®Rr¯Rq±Mr¸GxÇAwÍ@vÌ?uÍ>tÌ=sÍ.0=CERUWd`boQS`>@M24A24A8:G=?L@BNACOCFOCFOAJ;>G58A47@=@IJLXbdspqƒwxŠwxŠwxŠrs…nost†lm_`r[\nJK]-.@12DTUghk|nw†am}bmu€–†©‹”±Š“²Š“´Ž—¸‚‹ªˆ¥t~—bmƒNYkGSc`l|lwpz“lvq{”oy’yƒœjt[e~eoˆbl…eoˆkuŽwšˆ’«…¨p{‘_j~P[mDOaKVhbmu€’z…—xƒ•v“ITf"-?4?Q^i{€‹™¤¶”¡´lxŽJYpUd{x‡ž›ªÁ™¨¿…”«_n…BQhs‚™•¤»Ÿ¶‚‘¨|‹¢l{’TcxHSgITfMXjR]oXcu^i{cn€fqƒVasHSeFQc\gys~ozŒP[m5@Rcpƒyˆ¡°Ç¸Èâ ¯Îl| DW6Kzp…¼p†Âm†Èi„ËeËe‚Îi†Öl‰×j‡ÍfƒÅa~Àa~Àg„Æn‹ÍsÒu’Ô{˜Ú{˜Ú{˜Ú{˜Úy–Øu’ÔpÏkŠÊoŽÎxš×¡Þ€¢ß£à‚¤á}ŸÜs•Òv˜Õ‚¤áŒ®ë˜º÷§Éÿ•·ôzœÙ…¥à\y±^y°c~µ`{²b}´i„»i„»mˆ¿c~µ]x¯Sn¥LgžMhŸOj¡KfEbšQnª\z¸YwµRp®Tr°Rp®Wu³i‡Å[y·\z¸^|º`~¼c¿eƒÁg…Ãg‡ÄkÊiÉg‹Çe‰Åb†Â`„À^‚¾^‚¾c‡Ãb†Âb†Âb†Âa…Áa…Á`„ÀaƒÀh†ÄlˆÇoÍs‘Ñs’Õr‘ÔmŽÕk‹Ôd†Ðc„Ñ`ƒÔ_‚Ó]Õ\€ÔZ€ÕX€×W‚ÞVƒàU„àU„àS„àS„àR…àR…àO…ßN…ßN…ßM†ßK‡ßK‡ßK‡ßK†àJ†æJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒçG‚æGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåH‚ãH€áIßJßJßL~ÝL~ÝM~ÛM~ÚKzÖKzÔKyÑKyÑKwÎJvÍKtÌKtÌJwÌJwÌKxÍKxÍLyÎLyÎLyÎMzÏLyÎLyÎLyÎKxÍKxÍKxÍKxÍMwÉKqºKp¶Mo¶NqµQrµPr²Nm­Jj§Ig¥Jh¤Mg¢LfŸIbšD]“>W;U†@X†:R~>V‚?Wƒ-Eq":f1IuG_‹KcQi•Sk—VnšVnšKcNf’c{©f}¯Kb–/Fz!8l.EwD[E]BZˆ@X†>V‚>W€AZƒG`ˆKdŒJc‹FbŠGb‘Fb’Fb’Gc“Gc“Hd”Ie•Ie•C_B^ŽB^ŽC_Ea‘D`?[‹>V‚;Or?Pn?PnARpCTrFWuHYwIZxEVtCTr?Pn;Lj8Ig5Fd3Db2C]4CV2BQ/?N.>M0@O5ET:JY=M\>N]uÇ>uÈ=tÇw >z$D,L‰/QŽ>`Ÿ>b ?b¢>d¥?d¨?f©@gª@h®>jµ=>PPQcUVh]^pcdvdew`asYZlTVeUWfLN[DFS68E&(5/1>NP]givacpQS`=?L13@13@8:G>@MBDPACOBEN@CL9r7N€BY‹F^ŽAY‡?W…?Wƒ?XB[„F_‡IbŠJc‹Gc‹FaEa‘Fb’Hd”Ie•Jf–Jf–Jf–?[‹>ZŠ>ZŠA]D`Ea‘C_C[‡?SvARp@QoARpCTrGXvK\zN_}J[yFWu@Qo8Ig3Db/@^.?]->X1@U0@P.>N.>N/?O2BR5EU8HX9IY8HX6FV5EU6FV9IY=M]>PfF[zD\~G_ƒLdˆQj’Xqš\w¢_|¨SožQo¡Qq¤Rq§Rs©StªSs¬Ou³As¼;sÀ;rÂ:qÁ:qÃ9pÃ9oÅ8nÆ8mÉ8mË8mÍ8lÏ8lÑ8lÑ8lÒ7lÔ3mØ1nÙ3mØ3nÖ6mÔ6mÑ8mÍ:mÉ9kÄ9i¾:gº9f·d¥=d¥=d§?Q*+=34FIJ\efxhi{kl~lmghz_`rVWiPRaSUdIKX>@M.0="$124AXZgsu‚acpQS`<>K02?02?8:G@BODFR@BN@CL=@I69B-09&)2$'0%(17:C=@IDGPDGP?QNQbajydp€p{„¥“¶Ž—´‡¯Œ•¶‡±‡¯ƒŒ©q{”cn„LWi3?O9EU[f|q{”v€™{…žz„‚Œ¥s}–isŒcm†_i‚]g€ak„mwx‚›t~—hs‰T_sLWiITfT_qfqƒq|ŽmxŠdogr„;FX*<g7Py;T}E^‡Zsœjƒ¬c|¥Oh‘HaŠQi•Wn Om6Ge0A_->\->\.?[1@W0?T0?T0?T0?T1@U2AV3BW4CX3BW2AV1@U3BW5DY8G\8J`:Oj8Qoi·>g¶e¨=eª=e«;f«:d¬9e¬:d¬9e®>l¹=k¹=k¹')6;=J`bovx…^`mOQ^<>K13@13@9;H@BODFRACO@CLGP"-?BM_ep‚€‹“ž°ƒ£lxŽL[rRaxyˆŸ«ºÑ¥´Ë}Œ£JYpcr‰w†…”«ƒ’©}Œ£x‡žjyYh}GRfJUgOZlT_qXcuYdvZewZewITfDOaGRdT_q_j|^i{WbtQ^qo~•€ªˆ—¶‘²t†¬ex¢_t£g~²m…Ál…Çi„Ëg‚ÏfƒÓc‚ÕaÕ`Ñ\zÂa~Àh…Çn‹ÍrÑsÒt‘Ót‘Óv“Õw”Öx•×y–Øz—Ù{˜Ú|™Û|›Ût“Óp’ÏnÍp’Ïs•Òv˜Õ|žÛ£à‘³ð±îp’Ï•·ô´Öÿi‹ÈDf£|œ×™¶î™´ë„ŸÖx“Êb}´LgžSn¥To¦1LƒNi rÄ‡¢ÙŽ©à¨ßœÓoÉTy¿2Y¤.U¢El·SzÇ\ƒÎd‹ØcŠÕeŒÙeŒ×gŽÛhÚj‘Þl“Þm”án•àiÖj×l’Ùl’Ùl’Ùj×gÔe‹Òc‰ÐbˆÏbˆÏa‡Î`†Í_…Ì_…Ìa„Èf„Äh„ÃjˆÈlŠÊmŒÏmŒÏkŒÓk‹ÔjŒÖiŠ×eˆÙc†×_ƒ×]ÕZ€ÕWÖW‚ÞVƒàU„àU„àS„àS„àR…àR…àO…ßN…ßN…ßM†ßK‡ßK‡ßK‡ßK†àJ†æJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒçG‚æGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåH‚ãH€áIßJßJßL~ÝL~ÝM~ÛM~ÚFuÑEtÎFtÌEsËEqÈDpÇFoÇFoÇGtÉGtÉHuÊIvËJwÌJwÌKxÍKxÍGtÉHuÊHuÊIvËIvËJwÌJwÌMxÇIpµHn­GjªGjªIk«Jl«Ji©Hh¥B`žFd Oi¦Tn©Wo«Um©Rj¦OhžC[‰@Y9Rz:S{@Y5Nv*Ck1Jr>WB[ƒUn–m†®n‡¯Sl”E^†Nf’Ja“2I}5i9P„Ne—I`’Ld”H`Ž>V„=U>W€AZƒE^†Ha‰IbŠFbŠHc’Hd”Jf–Lh˜Lh˜Kg—Ie•Gc“U/>U1@W2AX1C[0F^.Ha1Kf5Oj;VtA[|Eb„HfŠKiJj“Kl—LmšMoOqŸPr¢Lt¨i·?i³>e°:`§1Wž+P”?A$F†)LŽ0S•5Zž:_£d«=e«;e­:f­9e®7f®9e®7e°>l¹>lº>lº=k¹[•7W’5X’5X’5X’5X’5X’5X’5X’3V3V3V3V3V3V3V3VŽ3R‰3Rˆ3Rˆ3Rˆ3Rˆ3Rˆ3Rˆ3Rˆ/N„.Mƒ-L‚-L‚.Mƒ0O…3Rˆ5S‰p"5`,R(H; 4 , +' $&#(&)((((((((''# )-+653>>K35B46C;=J@BOBDPBDPADM=@I7:C/2;'*3 #, )!$-'*314=8;D;>GADMSV_egsŽŸžŸ±š›­‚”jk}]^p[\nabtmn€€“‚”jk}IJ\,-?./AGJ[V_n]iygr„|‡‘›´–³‡¯’›¼Ÿ¨É‘š¹ƒŒ©v€™do…8CU)98DT_j€pz“jtwš’œµ¨²ËŽ˜±wškuŽZd}EOhCMfV`y_i‚WazNYoWbvMXjJUg[fxt‘}ˆšny‹[fxNYk-8J%0BITfhs…‚Ÿ“ž°€ iu‹L[rRaxw†¥´Ëœ«Â~¤]lƒhwŽz‰ ‡–­ƒ’©w†m|“gvbq†LWkNYkQ\nT_qWbtYdvZewZewT_qU`rYdv]hzZewU`rVasZgzs›‘ ½Žž¿pƒ¤gyŸjªm³lƒ¹m…Ãi„ÇgƒÌfƒÏe„Öc×^~Õ\{Í]{Ãc€ÂkˆÊpÏrÑrÑsÒsÒx•×v“Õv“Õx•×{˜Ú|™Ûy–Øu”Ôr‘ÑkÊc…Â_¾e‡Ät–Ó„¦ã¯ì–¸õ’´ñ‡©æƒ¥âmÌOq®c…Â’²íš·ïˆ£Úi„»To¦@[’5P‡C^•Ql£Yt«l‡¾|—ÎŒ§Þ˜³ê‡¢Ùe€·Nlª1W "Mœ2]¬NyÈVÐVÐ`‹Úi”ãeßeßeßf‘àf‘àf‘àg’áh‘àhÜjÛk‘Ük‘ÜhŽÙdŠÕ_…Ð\‚Ía‡Òa‡Òa‡Òa‡Òa‡Òa‡ÒbˆÓcˆÏg†Çi…Äi‡ÇjˆÈiˆËj‰Ìh‰ÐhˆÑhŠÔgˆÕc†×a„Õ^‚Ö\€ÔZ€ÕWÖW‚ÞVƒàU„àU„àS„àS„àR…àR…àO…ßN…ßN…ßM†ßK‡ßK‡ßK‡ßK†àJ†æJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒéHƒçG‚æGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåH‚ãH€áIßJßJßL~ÝL~ÝM~ÛM~ÚHwÓHwÑHvÎGuÍGsÊGsÊHqÉHqÉIvËIvËIvËHuÊHuÊHuÊHuÊHuÊErÇFsÈGtÉHuÊIvËJwÌKxÍMxÇIpµGm¬Eh¨Dg§Gi¨Hj©Ii¦Gg¤Ec¡Ig¥SmªXr¯[s¯Xp¬Sk§Pi¡JbE^†?X€C\„E^†;T|/Hp,EmB[ƒD]…KdŒaz¢qŠ²Zs›C\„Ib‹:Qƒ&=q6jV„:R~8QzOmOmLg>Lg=Kf:Hc7E`4B]3A\3A\2@[3A\3A\3A\4B]2C]0F]-H]-G^.Ha/Je3Nk4Qo5TsA_ƒ?_…@bˆBcŒDg‘Fi“Gi–Ckœ8l¦3m¬4n®4m°5nµ6n¸6n¹6n»5l¾5kÁ5kÅ5jÆ5jÈ5jÊ5jÊ4jÌ6mÑ4nÑ6nÏ7mÍ7nË8nÈ;mÄ=mÁ>m½=k¸?i³?g¯lº>lº=k¹Y@Z“@]•9Y”7Z”7Z”7Z”7Z”7Z”7Z”7Z”3V3V3V3V3V3V3V3VŽ3R‰3Rˆ3Rˆ3Rˆ3Rˆ3Rˆ3Rˆ3Rˆ0O…/N„.Mƒ-L‚.Mƒ/N„1P†4Rˆ8Nˆ9Mˆ9L†6J1Cu(:h 2Z.O; 4 . +' $$#(&)((((((((((%" +/-886AB@KPP\kjz†‡™yzŒefx^_qTUgYZlghzvw‰tu‡pqƒhi{\]oNOaABT9;JCETACPBDQBDQGIV[]jnp}prWYfKMZ=?L68E8:G<>K?AN@BNCEQBEN>AJ9*-6#&/!*'!*'*336?+,>KN_Xap]iyal~s~”Š”­‰’¯ƒŒ«˜¹œ¥Æ“œ»ˆ‘®{…žfq‡3>P./;Kbmƒwšpz“wš™²¥¯ÈŒ–¯yƒœlv_i‚JTmFPiT^wWazNXqJUkVauP[mQ\nal~w‚”Šœr}bmNYk+6H&1COZlq|ŽŠ•§–¡³|‰œgs‰HWnN]tv…œ£²É—¦½€¦n}”l{’~¤ˆ—®}Œ£q€—m|“ixbq†Q\pR]oR]oT_qVasXcu[fx\gyal~bmcn€`k}U`rMXjP[mXexq™’¡¾ŸÀo¥i{£p…°r†¸qˆ¾n†Äi„Çf‚ËfƒÑe„×c×]}ÔYxË`~ÆfƒÅmŠÌqŽÐqŽÐpÏqŽÐsÒ{˜Úx•×w”Ö{˜Ú€ß|™ÛpÏdƒÃnÍfˆÅXz·Mo¬Vxµr”ÑŒ®ë™»ø“µòœ¾ûœ¾ûd†Ã;]šd†Ã‡©æv–Ñl‰Á]x¯LgžfAZ‚IbŠAZ‚KdŒjƒ«b{£C\„?X0Gy 7k'>rAXŒTkSjœJb’Og•D\ŠW€IbŠOhJc‹A]…A\‹C_Ie•NjšPlœPlœOk›Mi™Ea‘A]ZŠ>ZŠ@X„?SvARp?PnLi?Mj=Nh9Of4Ob1La.I^*F\*F^(F`'Fb3Rq2St3Ux5W|7Z€9\„;^ˆ7`Ž2fŸ-h¤.h§/i¨0i¬0i®1i³1i´5l¼5l¿5kÃ5kÅ5jÆ5jÈ5jÈ4jÊ6nÍ6nÍ7nË7nÉ8nÈ:nÄ;mÂ=m¿>lº?k¶=g¯lº=k¹=k¹@O8:G:@M?AP>@MDFRBEN?AM;>G46B-09%'3 #,&&"$003<>@LOR[egsxz†™›ª’•¦ƒ„–sv‡jk}[^oQRdRUfop‚”—¨ ¡³‚…–VWi*->*+=MSc\ev^i{]h|mxŽ†©…ªˆ¥Œ•´™¸— ½‘›¶{…žcn„5@T-!,>`k~ˆ¡|†Ÿ|†Ÿ‡‘ª—¡º…¨|†Ÿlvdn‡R\uMWpU_xS]vJTmJUkT_sQ^qWbver…xƒ—}Šu€”iv‰Q\p*7J%0DR_ry„˜’Ÿ²›¦ºz‡šdsˆETkJYpu„›£²É–¥¼§v…œr˜‚‘¨ƒ’©u„›p–u„›m|“Zi~U`tT_qS^pS^pU`rXcu\gy^i{ju‡hs…fqƒ_j|R]oHSeJUgQ]skz—‰™ºˆ˜ºo§l©p…²rˆºzÉn†ÄjƒÆfƒÉfƒÏg„ÔeÕ]{ÑXwÉb€Èg†ÉmŒÏpÒoŽÑnÐpÒr‘Ô{šÝx—Úx—Ú~àƒ¢å{šÝg†ÉVu¶i‹Êd†ÅRt³Bd£Mo®q“Ò’´ó Âÿš¼û±Óÿ…§æ;]œY{º’´óv˜×Rr¯>[•:W?\”9VGdžh…¿u’Ì‚ŸÙŽ«åw–Ïdƒ¼]{·Wu±Om©Mk§Lo±EsÀR…Ø]áUˆÛT„ØWŠÝ[‹ßX‹Þ\Œà[Žá]á[Žá^Žâ\â^Žâ^ŽâZ‡Ú^ˆÚa‹ÝdŽàcß_‰Û[…×X‚ÔYƒÕYƒÕ[…×]‡Ù_‰Ûa‹ÝcßeŽÝm×mŽÓjŒÓi‹Òg‰ÑdˆÒdˆÒdˆÔ^ƒÑ^ƒÓ\‚Ó\‚Õ[ÖYÖX€×W€ØVƒÞU„àUƒáS„àS„áR…àR…áP†àO„àN…ßM†àK‡ßK†àJˆßK†àJ‡âJ†æJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èHƒçHƒçHƒéHƒçHƒéHƒçHƒéHƒçHƒéHƒçHƒéHƒçHƒéHƒçHƒéHƒçGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåGƒåH‚ãH€ßH€ÝI€ÝI€ÝJÝJÛJÛLÚJ}ØJ}ÖK}ÖJ|ÓKzÒJyÑJyÑJxÎLzÐLyÎKxÍIvËFsÈDqÆCpÅBoÄJwÌIvËIvËHuÊGtÉFsÈErÇGqÃCk³?f©;b¥:_£No9Ij:Jk;Kl>NoAQrDTuGWyHXzGZz?Yt9Wq3Qm-Kg(Ec#Ba!@_?`'Hk'In)Kq+Nv.Q{0S}2T.W…/`˜+b›.bž-c¡0c¤/d¦2d©0e«9k´7k¶9j¹7j»9i½7j½9i¾7i¾:nÄ:nÄ:nÂ;nÁ=m¿=n½>m»?m¸@lµ?j¯>f«;b¥4[œ)OŽA8wD‰"J,R™3[£9a©:bª7a«5_©5a¬5a¬5c®7e²7g³9iµ;j¸;j¸?n¾?n¾>m½>m½=l¼]”=]–=]–=]–=]–=]–=]–=]–5UŽ5UŽ5UŽ5UŽ5UŽ5UŽ5UŽ5VŒ3S†4R„4R„4R„4R„4R„4R„4R„5S…4R„1O/M.L~.L~/M2N€/F|3H}8L9M7Iy/Bm'9_"5V= 6 0 +* ()"+%.(!0&%5!#2 / "1! 0,'&6!0,!0+*:68GFEUOPb_axsw{}–fjƒY[r]bxhjhmrt‰tyŒvyŠioVYh;AO(+: /(*9)+:?@RTVecdvƒ’‡ˆšjl{JK]FHWABT?APBCUEGVGHZGIXKMZKMYLN[LNZHJW?AM24A)+7+%'3*,979ENP]aco|~‹Ÿ¬‰Œ›€†–ru†bhx`ct^dtX[lIO_twˆ¤ªº¶¹Ê‡—RUf(.>IL]ch{qyŽs~”lwkuŽv€™z„~ˆ£Š”¯‚Œ§•Ÿº– ¹yƒœ]g€2=S54?Uq{”|†Ÿƒ¦€Š£|†Ÿ|†Ÿyƒœu˜x‚›s}–ak„Q[tR\uU_xS]vT^wP\r_nƒco…tƒ˜‚Ž¤p”r~”u„™]i&5J'3IUdy}‰Ÿ‰˜­„¦tƒ˜fuŒHWncr‰}Œ£Œ›²‚‘¨Ž¥…”«˜§¾‡–­{Š¡n}”tƒšx‡žXg~;J_T_s[fx\gyWbtWbt\gyZewR]o^i{it†t‘mxŠT_qFQcOZl\h€ap‘r„ªxŠ²t‡±yŒ·wŒ»sˆ½wŒÅq‡Ão‡Çm†ÉmˆÏsØrÚg‚ÑYvÂMo·b‡Íl‘×hÓgŒÒd‰ÏcˆÎjÕs˜Þo”Ús˜Þ‚§í‘¶üiŽÔ1Vœ<_£lÐxšÚ¡áhŠÊaƒÃ…§ç–¸øˆªê¤Æÿ»Ýÿo‘Ñ9[›Wy¹^€À@b¢*IŠ5snŒÊ…£áPn®j‰ÉŽ­í›½ý±ñ}žáq”ÖSyº8]¡7^¡Mt·]„É[…Ï[ŽáVŽåVŒäTŒãS‰áQ‰àP†ÞO‡ÞS‰áRŠáS‰áRŠáS‰áRŠáS‰áS‰áYãZŒãZŒãZŒãZŒãZŒãZŒãZŒãVˆßW‰àY‹âZŒãZŒãY‹âW‰àXˆÝZ‡Ú\†Ø\†Ø\†Ø\†ÚZ‡ÚZ‡ÚZ‡ÚX…ÚX…ÚX…ÚX„ÛX„ÛW…ÛW…ÛW…ÝS„àS„áS„ãR…áR„ãP…áP…ãO†áN†ãL‡áL‡ãKˆáKˆãI‰áKˆãKˆãK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK†êK‡éK†êK‡éK†êK‡éK†êK‡éK†êK‡éK†êK‡éK†êK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èH„æH„æH„æH„æH„æH„æH„æH„äL‡ãK†àK†àJ…ßI„ÞH„ÜH„ÜJƒÜE~×E~×E~×E~ÕE~ÕE~ÕE~ÕG}ÕJzÏJxÎIwÍGuËEsÉCqÇBpÆAoÅKyÏJxÎIwÍGuËDrÈBpÆ@nÄ@mÂBl¾Al»@kº?h·Qr=Rq?Rs>Sr@St?TsAYuC[wE\{G^}G^}E\|CZzAXxD[}E\~E[€DZBX}DZI_†KdŒ9X„<]Š=^‹8Y†0P*Lz+M{/Q8ZŠ5W‡0R‚(L~#Gy!Ew#Gy$I~F~I„!K‡#P‹(Q)U’-V”,X—3\œ6b¡>g©=iª>f«;fª?g¬?j®EpµDp·DqµFq¶Fq¶FqµGr¶Ir´Fo±Ajª9`¡.U–%M‹F„B€@‚,Vž.\§7c®;i¶m»?n¼@qÀ=pÃe)=b(<_(;\':Z"@ :7 300/0+0!"4 !3"#5$%7"#5/!"4/-1&'912DBCUORe^_{osvz•jn‰ae~fjƒjo…ej€joƒot‡sx‹kqX^l>DR'-; .'(:)*<;@BOXZgpr‰‹˜ž¢®…ˆ™u{‹gm}agwagw`fv[aqW]msy‰§­½·½Í~„”BHX$*:RXht{|„›z„r|•kuŽs}–~ˆ¡†©Š”­‚Œ¥’œµ›¥¾ˆ’«bl…)3L4=G`s}–z„‰¢}‡ |†Ÿ|†Ÿyƒœt~—wšwš^hJTmT^w[e~U_xS_wNZrUd{et‹‡–­‡–­kz‘ixr˜\k‚0?V$3JQ`w~¤‹š±‚‘¨q€—_n…GVmgvŽ¥Š™°„“ª…”«…”«’¡¸Ž¥Ž¥‡–­žµ|‹¢FUl"1FWbv^i{al~`k}cn€doXcuGRdFQccn€Šœs~JUg8CUMXjfrŠm}Ÿs…­uˆ²uˆ³uŠ·vŠ¼t‰¾v‹ÄrˆÂrŠÈsŠÍtŒÒy”Ûz”Þl†ÑWu¾Df®`†Ío•Üj×fŒÓe‹ÒhŽÕn”Ûj×z ç€¦íxžåu›âV|Ã7]¤Ns¹†©íš»þlÐnÒ{œßz›Þ–·ú„¥è³Ôÿš»þWx»<@ƒ>_¢Ef©Ce¥iˆÉ•³ó„£äFe¦Pq´€¡ä“¶úƒ¨ì_„Ê]„ÉQy¿Dl²Dn¶V€Èg‘Ûj˜åXŽäVèUŽçSŒåQŠãP‰âOˆáN‡àQŠãQŠãQŠãQŠãQŠãQŠãQŠãQŠãVŒæVŒæVŒæVŒæVŒæVŒæVŒæVŒæTŠäU‹åVŒæWçWçVŒæU‹åV‰âVˆáX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßW†ÞW†ÞW†ÞW†ÞW†ÞW†ÞW†ÞU‡àS„áR„ãR„ãR„ãP…ãP…ãO†ãN†ãN†ãL‡ãKˆãKˆãI‰ãI‰ãI‰ãIˆåK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èH„æH„æH„æH„æH„æH„æH„æH„äK†àK‡ßJ†ÞJ†ÞI…ÝH„ÜGƒÛGƒÛD€ØD€ØD€ØD€ØD€ØD€ØD€ØFÖGyÐJxÎHvÌGuËEsÉCqÇBpÆAoÅIwÍIwÍIwÍIwÍIwÍHvÌHvÌHvÌGsÊFrÉErÇDqÄEoÃCn½Cl»Cm¹El·Ek²Ej°Ch¬Cf¨Ad¤@c£@c9[‰AbHi–Ww¦e„³Wv¥8T†#?o,Gv:R~JaŠNfˆLc‚Nf~F_s2Lc &H +(N3QwQo•VtšXvœUs™Tr˜Wu›A_…0Nt7U{HfŒRp–Qo•Mj”E^”KašPfŸSj SjžOf˜I`’E]‹G_G`‰F_ˆD]…@Z;Ux5Or3Km7Nn7Kl5Ij3Gh3Gh5Ij7Kl8Lm;Op;OpRs?St@Tu?Vv@YwA\wC^{D_|D_}C^|A[|?YzE_‚F`ƒF`…C]‚AZ‚AZ‚D]†EbŽ=]=`–?b˜:]“3VŒ.Q‡0S‰3VŒBe›@c™:]“3VŒ,O…)L‚+N„,Qˆ!EA|=xB}&Mˆ0W’5\—5\—6]˜9`›'(: 2 !3/. 2$%7./ABCUSVibcmqŽrv‘koŠkoˆquŽns‰ch~afzinot‡lr‚\bpCIW*0>!/();+,>9:LTUgpqƒ}~vw‰hi{IJ\EFX@AS?@RABTDEWFGYFHWKM\KMZLN[LN[IKX@BO46C+-:!.%'468EMO\hjw†ˆ•šœ©ž¢®‚“jp€\br]csbhxciyek{jp€x~Ž­³Ã¼ÂÒy.4D$4`fv‹’¤—®„Ž§yƒœpz“r|•‚Œ¥Ž˜±—°…¨‘›´¤®Ç§Àhr‹(A3JTmt~—wšyƒœyƒœ{…ž|†Ÿyƒœs}–v€™}‡ \fAKdV`ycm†WazR^vKWoJYpp–ž­ÄŒ›²bqˆbqˆm|“jyGVm(7NM\s‚‘¨˜§¾–¥¼x‡žP_vDSjjy€¦†•¬‡–­žµ†•¬‡–­w†Œ›²­¼Ó®½Ôx‡ž+:Q+S^rZewal~gr„ozŒmxŠWbtnº>o¾W€>W€?X@Y‚@Y‚AZƒB[„@[†=Y‰;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹;Y‹=Yˆ6Rz8Rw8Rw8Rw8Rw7Qv7Qv7Qv5Ot4Ns3Mr3Mr2Lq1Kp0Jo0Jm%=a$<^$;]!8Z!5V3T1Q0N%C#?:74 3 34,+, !3*+=01C./A();%&8 !3 2"#5%&8-.@ABTVYlopŒoslp‹gk†lp‰uy’pu‹diZ_safyinio]cqGM[06D!'5./A12D:;MUVhst†uvˆfgyabtIJ\DEW?@R>?Q@ASCDVEFXEGVKM\KMZLN[MO\JLYBDQ68E-/<#%2(*7?AN[]juw„•—¤£¥²—›§x{Œfl|W]mV\l]csfl|pv†x~Ž‚ˆ˜¶¼Ì¿ÅÕu{‹"2.gm}˜Ÿ±¢ªÁ‹•®~ˆ¡yƒœv€™‚Œ¥’œµ”ž·Ž˜±˜¢»¯¹Òª´Íhr‹$=$=U_xu˜t~—s}–t~—x‚›z„x‚›s}–v€™ƒ¦`jƒ>HaR\ucm†Yc|T`xIUmKZqŽ¥ª¹Ð‡–­Zi€]lƒkz‘§`o†5D[P_vˆ—®²ÁعÈ߂‘¨@OfAPgkz‘~¤§‰˜¯˜§¾†•¬x‡žv…œ¡°ÇËÚñ¹Èßjy(?$IThNYkVasal~p{p{Vas7BT#.@S^pƒŽ xƒ•FQcXsBZr:Rl 9X2T:RtRjŒTlŽWo‘TlŽTlŽQi‹D\~9Qs;SuF^€PhŠRjŒPgMd–Ne›OfœOfšMd˜Ja“F^ŽC[‰E]‹G_‹HaŠG`ˆC\„Rs@TuCWxEYzD[{AZx@[xA\yA\yA\zA\z@Z{@Z}F`…Hb‡Ha‰G`ˆD]†B[„D]†C`ŒEe˜DgEhžCfœ?b˜<_•>a—@c™Hk¡Il¢Il¢Dg?b˜?b˜EhžJo¦'N‰'M‹$J‰A;z>|&L‹2X–9_ž=c¡@f¥?e£;a ;aŸ?e¤Dj©Ck©Bj¨Ai§?g¥=e£nº=n»56H:;M@ASWXjpqƒjk}YZlXYkHI[CDV>?Q=>P?@RCDVDEWDFUJL[KMZLN[MO\KMZCER79F/1>*,924ALN[hjw~€–˜¥œž«Œœru†hn~Y_oNTdSYigm}y‚ˆ˜•›«ÂÈؼÂÒnt„&'`fv”›­­µÌ™²‚Œ¥ƒ¦}‡ ‹¤š³š¤½œ¦¿¨²Ë¸ÂÛ¦°É_i‚%/H4>W_i‚u˜pz“nx‘pz“u˜wšv€™u˜wš‡‘ªnx‘FPiFPiWazZd}Wc{LXp[j“¢¹ª¹Ðz‰ O^uUd{kz‘Š™°m|“JYp`o†’¡¸ÆÕìÊÙðz‰ 8G^DSjkz‘z‰ Ž¥Š™°œ«Â†•¬m|“Ž¥µÄÛÐßö©¸ÏWf}'>!6DOcGRdLWiU`rdogr„Q\n5@R1e¨r™ÜÄÿ±ØÿµÚÿŽ±óe‡Ç]¿—¹ùœ¾þ|žÞs•ÕOq±/Q‘!Cƒ>~Hjªv˜Ø„¦æ‘³ó›½ý±ð{Üe‡ÇQs³>/R”Ty½p•Ù‰°õ§ìz¢è{¦ëz¤ìqäl˜ájšæ[‘çX‘êWéUŽçTæR‹äQŠãP‰âQŠãQŠãQŠãQŠãQŠãQŠãQŠãQŠãTŠäTŠäTŠäTŠäTŠäTŠäTŠäTŠäXŽèYé[‘ë\’ì\’ì[‘ëYéZæVˆáX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßZ‰áZ‰áZ‰áZ‰áZ‰áZ‰áZ‰áXŠãS„áR„ãR„ãR„ãP…ãP…ãO†ãN†ãN†ãL‡ãKˆãKˆãI‰ãI‰ãI‰ãIˆåK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èH„æH„æH„æH„æH„æH„æH„æIƒäM‚ÞO‚ÝNÜNÜM€ÛLÚK~ÙK~ÙK~ÙK~ÙK~ÙK~ÙK~ÙK~ÙK~ÙK~×BtËBtËAsÊAsÊ@rÉ@rÉ?qÈ?qÈ?qÈ?qÈ?qÈ?qÈ@rÉ@rÉ@rÉAsÊ@oÇAqÆCqÇDrÇFsÆHuÆJuÄKvÄIs¿Is»LtºLt¹Nu¸Nu¶Ou¶Rv´Pt¨Rv¦Yz­\}²\{²Xw®Sp¨Mk¡;V‹7Sƒ6Q~0Ls+Eh4OlB\uE]w,A^"5U9LlL_NaUhˆVi‰YlŒUhˆK^~@SsRs=Qr;Op8Lm6Jk9Mn:Nol·=m¹W€D]†C\…B[„AZƒ?X>W€=V:U€=Yˆ=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Yˆ7S{9Sx8Rw7Qv6Pu5Ot4Ns4Ns-Gl-Gl+Ej)Ch(Bg&@e%?d$>a/S/Q0R1S1R2S 3S!4R/M,H'B"=8655)).!"4'(:./A<=OHI[9:L,-?#$6%&8#$6$%756HKNayz–pt‘ei„]a|bfjn‡jo…diMRfSXk\atagw]cqPVd=CQ06D;?Q<=O?@RBCUCDVCETJL[KMZLN[NP]LN[DFS9;H13@68EBDQ[]jtvƒ„†“œ‹š€„orƒjp€\brJP`JP`ciy~„”“£³¹ÉÑ×ç´ºÊbhx + OUeƒŠœª²É”ž·‰“¬ˆ’«‚Œ¥‹¤—°›¥¾¨²ËºÄÝ»Åޑ›´PZs?Ib^hjts}–nx‘kuŽnx‘q{”r|•t~—x‚›yƒœ‰“¬‚Œ¥V`y4>WAKdYc|[gXd|v…œ§¶Í¥´Ën}”@OfCRihwŽ§p–bqˆyˆŸŸ®Å¿Î対Õap‡@OfSbyo~•yˆŸ‚‘¨Š™°š©À„“ªl{’œ³¼ËâºÉà‰˜¯P_v+:Q.=RGRfITfITfKVhU`rZewKVh7BTCN`^i{xƒ•hs…JUgep‚ž©»µÁכ¬Ê|Ž²`t™Vi‘Xm˜f{¨rˆ¹v‹À~”Í—Ó„œÜˆ¡ãŠ¥ê„ŸæqŒÓ]{Áq”Øn•Øz¡ä~¥èhÒXÂgŽÑ¦é_†É.U˜!H‹[‚Ř¿ÿ¾åÿÆíÿ­Óÿ³ór”Ôƒ¥å–¸øu—×Uw·Bd¤'I‰Y{»Wy¹jŒÌ–¸ø™»û’´ôžÀÿ‰«ë‚¤ãw™ØkÍX{»8[Hn¯yžâÄÿ‹³ø}¨ìv¡æw¤èy¥ìt çpœåmé[‘çY’ëX‘êVèTæSŒåR‹äQŠãQŠãQŠãQŠãQŠãQŠãQŠãQŠãQŠãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãYé[‘ë\’ì]“í]“í\’ì[‘ë[ŽçVˆáX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßYˆàYˆàYˆàYˆàYˆàYˆàYˆàW‰âS„áR„ãR„ãR„ãP…ãP…ãO†ãN†ãN†ãL‡ãKˆãKˆãI‰ãI‰ãI‰ãIˆåK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èH„æH„æH„æH„æH„æH„æH„æKƒäNÝO€ÜPÛNÛO~ÚL}ÙN}ÙK|ØL{×J{×L{×J{×L{×J{×L{×J{×@rË@rÉ@rÉ@rÉ@rÉ@rÉ?qÈ?qÈ7iÀ9kÂ;mÄ>pÇAsÊCuÌEwÎGyÐEtÌFuÍHvÎIwÍKxÍLyÌOyËOzÈNxÄNxÂQyÁRzÀU|ÁV}ÀX}ÁX~¼Y~µ\€´c„ºc„º[z³Wu±Yv²Wt®JdB]’;V…0Kv(Bg/IjAZxJb~/@\!0M3B_DSpHWtSbXg„]l‰WfƒQ`}GVs@OlDSpQ`}\kˆ^q’Sj–QhšOfšMd–Lc•Ld”Ld”Ld’Nf”Me‘KcHaŠD]†?X€;T}:Rx6Mo:No>RsAUvAUv=Qr9Mn6Jk;OpRs@TuBVwDXyEYzD[{AZy?Zx>Yw=Xv=Wx>Xy?Y|@ZAZ‚D]…HaŠIb‹H`ŒG_‹IaGc’Ba—?bš@c›@c›@c›@c›AdœBeFi¡Hk£Hk£Adœ8[“6Y‘<_—Cg£Lr±Fm®>e¨6]ž-T—"IŠ>7x!H‹&MŽ/V™;b£El¯Ip±Gn±Dk¬Go­Dlª?g¥9aŸ2Z˜+S‘&NŒ#K‰EƒD‚CEƒ#K‰-U“7_=f¦;h¬:i¯m³>mµ=l²;j²9h®8g¯8g­9h°:i¯;j²W€@Y‚AZƒD]†D]†B[„AZƒ?X>W€Yˆ=Y‰>X‰=Y‰>X‰=Y‰>X‰=Y‰>X‰=Y‰>X‰=Y‰>X‰=Y‰>X‰>Y†;T|;Uz:Ty8Rw7Qv6Pu5Ot4Ns*Di)Ch'Af%?d#=b!;`9^8[,P-O/Q1S3T!5V$7W%8V$5S!2N,G'B"<977&*1"#5"#5*+=ABTXYkLM_9:L,-?+,>*+=();56HHK^jk‡hl‰ei„bfdhgk„di_dzEJ^LQdX]pbhxaguTZh@FT17E<=OCDVMN`XYk^_qYZlQRdPQcFGYBCU=>P<=O>?QABTCDVCETJL[KMZMO\NP]MO\EGT:U*9Pcr‰yˆŸx‡žx‡žžµ©¸Ï¡°Çx‡žM\sSbyixx‡ž{Š¡‰˜¯Š™°”£º§u„›š©ÀµÄۖ¥¼l{’Wf}GVmCRgHSgMXjLWiJUgNYkT_qNYkBM_NYk[fxozŒju‡cn€Š•§³¾Ð²¾ÔŒ»u‡«ThEX€Pfg|§xŽ½‚˜Ê˜Î~—Ё™×†Ÿá„Ÿâz•ÚmˆÏd‚Èo’Ör™Ú‚©ê‡®ïuœÝfÎfÎfÎ*Q’?€@g¨¶÷±ØÿÃêÿÊñÿ¤Êÿ} à…§æ¨Êÿp’Ñ6X—-OŽ'IˆXz¹‚¤ãƒ¥ä“µôœ¾ýŒ®í†¨çƒ¥änÏt˜Ös—ÕgŠÊLr±Rx¹m“Ԑ·úžÇÿ}¥ê{¦ê}¨í€­ñ«òv¥ëožæj›ç\’èY’ëX‘êWéUŽçSŒåR‹äR‹äQŠãQŠãQŠãQŠãQŠãQŠãQŠãQŠãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ã[‘ë\’ì]“í^”î^”î]“í\’ì]éVˆáX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßW†ÞW†ÞW†ÞW†ÞW†ÞW†ÞW†ÞU‡àS„áR„ãR„ãR„ãP…ãP…ãO†ãN†ãN†ãL‡ãKˆãKˆãI‰ãI‰ãI‰ãIˆåK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èH„æH„æH„æH„æH„æH„æH„æKƒäO€ÝQ€ÜQ~ÛO~ÚO|ÙN}ÙN{ØM|ØJwÔIxÔJwÔIxÔJwÔIxÔJwÔIxÔ?qÊ>qÊ>qÊ>qÊ>qÊ>qÊ?rË?rË:mÆ;nÇ>qÊAtÍExÑH{ÔK~×LØK}ÖK}ÔM|ÔN~ÓO}ÒPÑQ~ÏQÍQ|ÊR~ÇT~ÆVÆZ‚Ç[„Æ^…È`†Å^‚¼[€·a„¾a„¾[{¸Zz·]{¹YwµQnªIfžD`’:V…-Iq.Jo=WxF]|/>[-H0>Y?MhCQlN\wSa|We€Tb}Tb}N\wFToGUpSa|^l‡`p‘Vk–RjšPg™Nf–Me•Nf–Ph˜Rj˜Ph–Me‘IaD\ˆ@X„=V;SRsBVwDXyCWx>Rs7Kl3Gh>Rs?St@TuAUvBVwCWxDXyBYyBZ|?Yz=Wxa›>a›?bœAdžBeŸCf Cf Eh¢Il¦Il¦Adž7Z”4W‘:]—Ae¡Jq²En°Ai®?hª=eª4]Ÿ'O”E‡EŠC…Cˆ&O‘6^£@i«Ai®>g©@g¨>f¤8`ž1Y—*R#K‰F„C?}AF„%M‹-U“5]›i­>k¯?k²@m±@l³?l°>j±=j®;g®;h¬j±;kµW€=VYˆ@Xˆ>Yˆ@Xˆ>Yˆ@Xˆ>Yˆ@Xˆ>Yˆ@Xˆ>Yˆ@Xˆ>Yˆ@Xˆ@X†>W=W|c"CWHM`W\odjzekyX^lAGU06D;P;?QABTBCUCETJL[KMZMO\OQ^MO\FHU;=J35BOQ^cervx…†ˆ•ŠŒ™y{ˆln{rv‚mpciyX^nMScGM]V\l…•¦¬¼êðÿêðÿŸ¥µIO_.4Dcj|‘™°¡«Äš¤½…¨ƒ¦‰“¬—°‘›´²¼ÕÑÛô¶ÀÙak„5?Xu˜ª´Í|†Ÿnx‘kuŽjtlvjtjtr|•}‡ ~ˆ¡‰“¬¤®Çv€™!:$=Xb{bn†wƒ›£²ÉÀÏ棲ÉhwŽ"1H%<^m„{Š¡‚‘¨‡–­š©À­¼Ó†•¬O^uHWncr‰z‰ Ž¥~¤Ž´‰˜¯žµŽ¥~¤ ¯Æ«ºÑ|‹¢\k‚bqˆZi€L[pEPdMXjOZlLWiNYkVasVasOZlQ\nS^pep‚q|ŽŠœªµÇ¼Çٟ«Á®o‚£L`ƒ:NsLb‰i~©}“ÂŒ¢ÔˆŸÕ‚›Ô„œÚŠ£ã…¡âx“Öp‹ÐnÐs–ØvÞ…¬íŠ±ò‚©êy ácŠËDk¬.o?€gŽÏ¸ßÿ¹àÿºáÿÉðÿ¤Êÿ]¿zœÙVx·*L‰2T“Ik¨mÎœ¾û¬Îÿ°Òÿ©Ëÿ‹­ê…§æ£àd†Å^€¿n’ÐtšØgÌIo®o•Ö´õ›Äÿ‰µö{¦ê®ñ†³÷ƒ²ö|«ñs¤éoŸçkŸê[“èZ“ìX‘êWéUŽçTæSŒåR‹äQŠãQŠãQŠãQŠãQŠãQŠãQŠãQŠãRˆâRˆâRˆâRˆâRˆâRˆâRˆâRˆâ[‘ë\’ì^”î_•ï_•ï^”î\’ì]éVˆáX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßX‡ßV…ÝV…ÝV…ÝV…ÝV…ÝV…ÝV…ÝT†ßS„áR„ãR„ãR„ãP…ãP…ãO†ãN†ãN†ãL‡ãKˆãKˆãI‰ãI‰ãI‰ãIˆåK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†èH„æH„æH„æH„æH„æH„æH„æKƒäNÜQ~ÛQ~ÛP}ÚO|ÙN{ØN{ØMz×IvÓIvÓIvÓIvÓIvÓIvÓIvÓHwÓ>oË=pÉ=pË>qÊ>qÌ>qÊ?rÍ?rËCvÑDwÐExÓGzÓJ}ØLØM€ÛNÚN€ÙN€ÙN€ÙP×P€ÕQÔQ€ÒRÐQÌT€ËWËYƒË]…Ë_‡Ìa‰ÎcŠË`‡ÂZ~¸\€¾_ÀZ|¼]|½^}¾Vt´Rp®Mj¦MhŸD`’5P}1Mu8Ty@Ww1A[".F3=X@LdDNiJVnMWrNZrT^yVbzU_zMYqMWrVbzak†`oŽVl•Rj˜Ph˜Nf”Nf–Ph–TlšVnœPh–Ld’F^Œ@X„a›>`@cBd¡Dg¡Df£Dg¡Ce¢Gj¤Ik¨BeŸ8Z—6Y“>`Fj¨?f©?j¯Em³EpµDl²ƒ%M“2]¢8`¦6^£:a¢7_2Z˜,T’%M‹F„A?}f¤?h¨@l­?l¯Al°An±Al°?l¯?j®=j­i­=j­?j®W€AZƒC\…D]†C\…C\…B[„AZƒ?X>W€=V=U@X†@X†@Xˆ@X†@Xˆ@X†@Xˆ@X†@Xˆ@X†@Xˆ@X†@Xˆ@X†@Xˆ@X„?X€?Y~=W|;Uz9Sx8Rw6Pu5Ot&@e%?d#=b :_7\5Z3X1T3W3U4V6X"6W#7X%8X&9W->\*;W&4O .I(B$>"<!;*---.../AKL^”•§lmEFX67I-.@FGYSTfX[nhi…hl‰imˆhl‡hl…ei‚X]sJOe',@7L78J@ASMN`UVhUVhOPbIJ\EFXDEWABT<=O9:L:;M?@RFGYJL[KM\JLYKMZLN[JLYGIVLN[TVchjwxz‡ˆŠ—ˆŠ—z|‰jlyegtdhtX[lSYi`fv\brV\lgm}z€Œ’¢ÖÜìÔÚꞤ´JP`$4^ew†Ž¥®¸Ñ¢¬Å‰¢r|•}‡ §Àª´Í¬¶ÏÄÎ瑛´>Ha9C\~ˆ¡ÀÊ㗡º\fXb{oy’‰“¬ƒ¦s}–nx‘mwwšž¨Á§Àbl…!:(AKUnnz’‰•­ÆÕì¿Î墱Ȃ‘¨3BY%I[@K]DOaFQcITfMXj@K]GRdbmv““ž°ªµÇœ§¹œ²€‘­j}ž4Hi4Hk`vxŽ·˜Äƒ™ÊŒ£×ˆ¡Ù™Õ€š×›Üp‹Îj…Èv•Ö~¡á†®ìˆ°î‚ªè}¥ã“»ù‚ªè*R$b+S‘™Áÿ×ÿÿÉñÿÎöÿÈðÿŽ´ó,PŒ#F€?|Cf lŽË²ì­Ïÿ Ãý–¸õ¡Äþ¿ü˜»õ¯ì^»0R'I†p”ÒiÍm“Ò|¤âŠ±ò¶öŽ·ù»üƒ®ò‚¯ò®ò{¬ïv§ìp¡æjšâc—âWäVèWéWéX‘êY’ëY’ëZ“ìWéWéVèTæSŒåR‹äQŠãP‰âS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ãS‰ã]“í]“í]“í]“í]“í]“í]“í_’ëY‹ä[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[ŠâZ‰áZ‰áZ‰áZ‰áZ‰áZ‰áZ‰áXŠãWˆåVˆçVˆçVˆçT‰çT‰çSŠçRŠçQ‰æOŠæN‹æN‹æLŒæLŒæLŒæL‹èM‰éM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëNŠìNŠìNŠìNŠìNŠìNŠìNŠìNŠìM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëI…çI…çI…çI…çI…çI…çI…çI…çJ†èJ†èJ†èJ†èJ†èJ†èJ†èM…æM~ÛP}ÚP}ÚO|ÙN{ØMz×Mz×LyÖJwÔJwÔIvÓHuÒGtÑFsÐErÏDsÏRs;RrBZ|@Z}>X{>X}A[€E^†IbŠLeŽHaŠKcNf”Nf”Jb’F^ŽE]B^CaDf£Hj©Ik¨Gi¨Fh¥Gi¨Hj§Df¥Hj§IkªCe¢:\›9[˜@b¡GjªEm³BnµBl´Am´Ak³@l³@j²?k²Hrº1]¤@ˆ1x 3{@‡ J’%P•CƒCCCCCB€B€*R-U“2Z˜8`ž=e£?g¥@h¦@h¦=f¦g©=iªAj¬@l­Bk­Am®;d¦;g¨?hª?k¬Bk­?k¬@i«=i°;n¿7mÃ7mÃ6lÂ4jÀ3i¿3i¿2h¾6lÂ6lÂ6lÂ5kÁ4jÀ3i¿3i¿5h¹9fª;d¤;b£9aŸ9_ž7]›8\š7[—9[˜9\–;[”;\’<[’<[’=Z’=[;W‰;W‡;W‡;W‡;W‡;W‡;W‡;W‡=Y‰=Y‰>ZŠ?[‹>ZŠU=S‚*--..-*+=EFXŠ‹rs…KL^:;M/0BDEWWXj`cvno‹mqŽkoŠimˆim†ei‚X]sKPf27K7PJK]QRdPQcMN`KL^JK]FGYCDV?@R<=O=>P@ASEFXHJYOQ`NP]PR_RTaPR_NP]RTaY[hnp}wy†€‚Žvx…ln{fhueiuZ]nNTdZ`pagwhn~~„”Š Ž”¤ÀÆÖ¾Äԏ•¥CIY 0SZl‡¦°ºÓ¦°É‰¢mwx‚›§À³½Ö»ÅÞ±»Ô{…ž@JcHRkv€™£­ÆŠ”­HRkOYrt~—œ¦¿– ¹t~—bl…eoˆŠ”­§À‹•®T^w&?.8QV`ynz’†’ªÇÖíÃÒ鞭Äv…œ-Md //>Uz‰ †•¬Ž´–¥¼–¥¼‚‘¨z‰ Œ›²­¼Ó‘ ·kz‘Ud{[jkz‘jy^m‚MXlEPb>I[=HZ=HZ=HZ@K]EPbITfKVhdo}ˆš• ²¡¬¾”Ÿ±Žš°yŠ¦dw—:OnCWxi¤w¶–‡Ìš±å‹¤Ú~—Ð~˜Ó›Úz–×z•Ø‚¡â‚¥å‰±î‰±ïˆ°í–¾ü£ËÿwŸÝ"J‡ +2pMu²°ØÿÜÿÿÍõÿÁéÿ ÈÿbˆÆ 0j@zTw±z×–¹ó«Îÿ ÃýŸÂüœ¿ù¨ËÿžÁû‹®è|ŸÙY|¶5X’*Nˆl“Îs›Ø€¨æ‹´ò¸øŠ¶õˆ´õˆµöƒ°ó€°ò~¯òz«îu¦ën åi›âd˜ãXåWéX‘êY’ëY’ëZ“ì[”í[”íY’ëX‘êWéUŽçTæSŒåQŠãQŠãTŠäTŠäTŠäTŠäTŠäTŠäTŠäTŠä\’ì\’ì\’ì\’ì\’ì\’ì\’ì^‘êY‹ä[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[ŠâY‹äWˆåVˆçVˆçVˆçT‰çT‰çSŠçRŠçQ‰æOŠæN‹æN‹æLŒæLŒæLŒæL‹èM‰éM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëNŠìNŠìNŠìNŠìNŠìNŠìNŠìNŠìM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëI…çI…çI…çI…çI…çI…çI…çI…çJ†èJ†èJ†èJ†èJ†èJ†èJ†èM…æM~ÛN}ÙO|ÙM|ØMz×KzÖLyÖJyÕJwÔIxÔJwÔHwÓIvÓGvÒHuÒEvÒCvÒ@wÒBwÓCzÕEzÖE|×G|ØG~ÙM‚ÞLƒÞM‚ÞLƒÞM‚ÞLƒÞM‚ÞM‚ÞLÝNÜNÜNÚOÚOÖQÕQÓU„ÔV„ÑX„ÏX„ÍYƒËY„ÉY„ÉY„ÈXÂX~¿X}ÁV{ÁWyÁVxÀVv¿Vw¾Wu»Xu·Yu´Vs«Rn Ie”@]‰?W}>Lg5@V9AX@KaFNeITjPXoKVl@H_CNdJRiNYoU]tU`vX`wR`{TjRk”Qi•Qi•Qi•Qi•Rj˜Rj˜IaD\Šg¥?h¨@i§AjªAj¨;d¤=f¤?h¨Aj¨Bk«Aj¨@i©=j®:m¾7mÃ6lÂ5kÁ5kÁ4jÀ3i¿3i¿7mÃ7mÃ6lÂ5kÁ4jÀ4jÀ3i¿6iº:g«ZŠ?[‹?[‹>ZŠW€?X@Y‚@Y‚@Y‚@Y‚@Y‚@Y‚@Y‚@Y‚?V‚?V‚?V‚?V‚?V‚?V‚?V‚?V‚CZ†BY…AX„@Wƒ>UQ>CVU[khn|djxMSa8>L12D<=OIJ\OPbNOaLM_MN`OPbGHZEFXCDVABT@ASBCUDEWEGVPRaPR_UWd[]j\^kY[h[]j`bouw„tvƒtvƒtvƒrtnp}givaeqY\mCIYRXhkq†Œœ£©¹¢¨¸‘—§ ¦¶£³w}9?O  ,CJ\…¤¬¶Ï¥¯È~ˆ¡gqŠq{”—¡º¶ÀÙÇÑ꣭ÆkuŽBLeS]vdn‡kuŽZd}3=VGQjwš¨²Ë¥¯Ès}–Yc|eoˆ—¡º—¡ºx‚›JTm&0ICMfak„my‘…‘©ÀÏæ½Ì㔣ºgv)8O /FL[rŸ®Å¿Î対ÕÁÐ窹Ð4CZ 2Rs>Rs?St9Mnl¹?m¸@n»AoºIwÄBp»3a®L—<‰ 9„B L•"K$LŠ'O)Q-U“/W•2Z˜3[™7_8`ž;c¡=e£>f¤?g¥?g¥>f¤=e£=e¢=e£>f£?g¥?g¤@h¦@h¥f£@h¦Bj§Ck©Bj§Ai§>i­:m¼6lÂ6lÂ5kÁ5kÁ4jÀ4jÀ3i¿7mÃ7mÃ6lÂ6lÂ5kÁ4jÀ4jÀ6i¸;h«>h¤>f£ZŠ?[‹@\Œ?[‹=Y‰;W‡9U„1Iu2Kt3Lu5Nw7Py9R{;T}S~\->Z,:U%3N*D$>!;!;),.0/)023Eij|€’[\nKL^>?QGHZfgytwŠ{|˜vz—ptimˆgk„ei‚[`vPUkINbVz@ZC\„Ha‰LeŽPi’Rj–Sk—Rj˜Sk™Sk›Og—I`’D[CZŽA\“CaŸDf¦HjªIk«Gi©Fh¨Gi©HjªHjªLn®Ln®Eg§<^ž9[›@b¢Ej®:d®8f³:h¶f£>f¡f¡@h¥Bj¥Ck¨Bj¥Ai¦>j«9l»5kÁ5kÁ5kÁ5kÁ5kÁ5kÁ4jÀ8nÄ8nÄ7mÃ7mÃ6lÂ5kÁ4jÀ7j¹=j­?i¥?g¤=e =dŸ;b›<`š;`—5XŽ5XŽ7X7X‹8X‹8X‹9W‹9W‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰>ZŠ?[‹@\Œ@\Œ@\Œ>ZŠS~=R}b'?a)@b)@b+?`+?`+>^*=[1B`0A].@OBDQNP]^`mhjwjlyjlymo|su‚ln{givkmzqs€mo|]_lMQ]BEV06FKQa…‹›ÆÌÜâèø¼ÂҎ”¤sy‰ioQWg+1A$4./18Jjr‰‰“¬š³x‚›isŒisŒwš‘›´Ÿ©Âš³ƒ¦mwbl…5?X6 .'@AKdpz“– ¹™£¼x‚›hr‹x‚›ƒ¦„Ž§lvHRk*4MISllv~Š¢š¦¾ ¯Æ‰˜¯o~•O^u0?V;JaWf}ƒ’©´ÃÚÇÖíµÄۚ©ÀIXo5=LchwŽƒ’©•¤»“¢¹€¦n}”ˆ—®¾Íä×æý~¤3BY9H_jyƒ’©w†fuŠ^i}ZewWbtT_qP[mNYkU`r^i{t‘~‰›…¢‰”¦Œ—©›­“ž°œ¯Sd~.B]AVsx¬ƒš¼n„©f}¦r‰µw½rŒ½~—ÍŠ¤Ý†£ß‡¤à‹§æ„¤á±í¶îŠ³ëŸÈÿÁêÿ‡°è'Pˆ"Kƒ–¿÷ÖÿÿÎ÷ÿ€©á;dœ9q!J‚b‰Â¶ÛÿºÝÿžÁ÷›¾ô Ãù—ºðÀö›¾ôžÁ÷Š­ãs–Ì]€¶Jm£Il¢\µl‘È…­è‹µñŒ¸õ‡³ð…±ð‰·õºûŠºúƒ´ö€±ó{®ðt©ëo¤èj¡ägãdœæa™î`™ò`™òašób›ôcœõcœõdöb›ôašó_˜ñ]–ïZ“ìWéUŽçTæXŽèXŽèXŽèXŽèXŽèXŽèXŽèXŽèWçWçWçWçWçWçWçYŒåY‹ä[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ]Œä]Œä]Œä]Œä]Œä]Œä]Œä[æYŠçXŠéXŠéXŠéV‹éV‹éUŒéTŒéQ‰æOŠæN‹æN‹æLŒæLŒæLŒæL‹èM‰éM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëNŠìNŠìNŠìNŠìNŠìNŠìNŠìNŠìM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èJ†èJ†èJ†èJ†èK…æHÚIÙH~ØG}×G}×F|ÖE{ÕE{ÕIÙIÙJ€ÚKÛL‚ÜMƒÝN„ÞM„ßM…âK†äJ…ãI„âG‚àFßE€ÞE€ÞI„âI„âI„âI„âI„âI„âI„âKƒâKáK‚ßK‚ßK‚ÝL‚ÜL‚ÚN‚ØO‚ÕR‚ÔRƒÒS‚ÐSƒÍTƒËTƒËTƒÉV‚ÉXÊW~ÉU|ÉRyÈQvÇNsÄMpÂNoÀKjºNn¹TrºVu¶Us±Po¦JjJe’CVwAQk:Hc5E_6D_;KeLZu]m‡_mˆVf€Q_zO_yO]xM]wR`{Xi‡H_D^ƒ@Z=W|=V~@Y‚D\ˆF^Š;Sƒ?W‡E\ŽJa•OfœQhžQhžRhšAW~BVw@Tu>Rs>Rs?St@TuAUv@TuCWxH\}NbƒQe†Ma‚CWx9PrWD]†Ib‹Nf’Ph”Qi—Qi—RjšSk›QhšMd–G^’CZŽCZA[”Ca¡De¨Hi¬Ij­Gh«FgªGh«Hi¬Jk®No²Mn±Fgª<] 9Z@a¤Di¯:f±8gµ:i¹=lº@o¿CrÀEtÄFuÃCrÂ@o½;jº6e³3b²4c±7f¶;i´=f¨>f¤?g¥@h¦Ai§Bj¨Ck©Ck©Iq¯Hp®Fn¬DlªCk©Ai§Ai§@h¥?f¡?fŸ>e >ež>e >ež>e =d=dŸ?fŸAh£Cj£Dk¦Cj£Bi¤>j«7j¹5kÁ5kÁ5kÁ5kÁ5kÁ5kÁ6lÂ9oÅ9oÅ8nÄ7mÃ6lÂ6lÂ5kÁ8kº=j­?i¥?g¢=e =dŸ;b›<`š;`—5XŽ5XŽ7X7X‹8X‹8X‰9W‰9W‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰=Y‰?[‹@\ŒA]A]@\Œ?[‹Q{O5;KPVf‹‘¡ÒØèåëû²¸È‡pv†_euIO_&,<$*:"2#318J\d{z„Œ–¯|†Ÿoy’isŒisŒ‰¢™£¼™£¼¢¬Å—¡ºjt#< $ 0 96@YgqŠš³– ¹€Š£t~—|†Ÿ{…ž‰¢jtFPi%/HEOhs}–‘µ¬¸Ð£²É…”«dsŠ>Md.=THWn_n……”««ºÑÒáøÂÑ蟮ÅWf} 7(7NhwŽŠ™°ž­Ä”£º~¤s‚™–¥¼ÐßöÜëÿ{Š¡.=T;Jan}”§tƒšhwŒal€\gyYdvZewZew[fxbmkvˆ{†˜‰”¦‰”¦‡’¤‰”¦–¡³©´Æ«¸ËZl„"6Q5Jgr‡¦~•µmƒ¨cz£j­rŠ¸tŽ¿˜Î† Ù†£Ý‰¦âŽªéŒ¬é±ëŽ·ï‘ºòªÓÿ«ÔÿV·H€Py±ÏøÿËôÿ‹´ì3\” 6nH€h‘ɾåÿ¼áÿ©ÌÿŸÂø‘´ê™¼ò¢Åû³é‘´ê‰¬ât—ÍjÃc†¼Wz°Z}³o’È|¡Øƒ«æ…¯ë…±î‡³ð‰·õŒºøŠºú†¸÷„µ÷€³ôy®ðs¨êm¤çj¡ähžäeçdœñcœõdödöež÷fŸøfŸøg ùež÷döb›ô_˜ñ\•îY’ëWéVèZêZêZêZêZêZêZêZêWçWçWçWçWçWçWçYŒåY‹ä[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ^å^å^å^å^å^å^å\ŽçZ‹èY‹êY‹êY‹êWŒêWŒêVêUêQ‰æOŠæN‹æN‹æLŒæLŒæLŒæL‹èM‰éM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëNŠìNŠìNŠìNŠìNŠìNŠìNŠìNŠìM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëLˆêLˆêLˆêLˆêLˆêLˆêLˆêLˆêJ†èJ†èJ†èJ†èJ†èJ†èJ†èK…æI‚ÜI‚ÛHÚG€ÙFØFØE~×E~×L…ÞL…ÞL…ÞL…ÞM†ßM†ßN‡àN‡áK†âK†äJ…ãI„âHƒáG‚àFßFßI„âI„âI„âI„âI„âI„âI„âI„âJ‚áKáK‚ßK‚ÝLÝL‚ÚN‚ØN‚ÖO‚ÕQ‚ÑRÏR‚ÎSÌS‚ÊS‚ÊUÊUËW~ÍU|ËSyÊRvÊPtÈPsÇOrÄGh¹Jj·Om¶Qp³Rp°Qp©Nm£OkšMa„BSo0?^,=Y8Gf@QmHWvQb~jy˜^o‹Xg†Wh„SbK\xM\{Qd„BZ|?Y|=W|;Uz;T|=V~?WƒAY…:R‚@XˆH_“OfšRiŸPgLb›J`’?U|@Tu?St>Rs>Rs@TuBVwCWx=Qr@TuG[|Qe†WkŒTh‰I]~=Tvm½ApÀCrÂBqÁAo¼HpµHp®Hp®Hp®Go­Go­Fn¬Fn¬OwµNv´Ks±Hp®Em«DlªCk©Ck¨Ah£Ah¡@g @g ?fŸ>ež>ež>ež=d?fŸAh¡Cj£Dk¤Cj£Bi¢>j©8i¸4jÀ4jÀ5kÁ5kÁ6lÂ6lÂ7mÃ:pÆ9oÅ9oÅ8nÄ7mÃ7mÃ6lÂ9l»;h«>h¤>f¡ZŠ>ZŠ>ZŠ>ZŠ>ZŠ>ZŠ>ZŠ>ZŠ@\ŒA]B^ŽB^ŽA]?[‹=Y‰Q{>Q{>Q{>Q{>Q{>Q{>Q{DWDWBUAT~?R|>Q{=Pz:Py4Lr2Lq1Kp.Hm)Ch$>c9^7\0U1V3X5Z8] :_"P@ASEFXHJY;=L46C24A;=JIKXWYfegtoq~np}ln{kmzkmzikx_anNP]@DP=@QCIYY_oŠ ÏÕåØÞµ…•sy‰]csEK[!'7%+;#3 &629KT\su˜“¶‡‘ªv€™isŒcm†|†Ÿ—¡º®¸ÑÀÊ㬶Ïak„)(7 9'1JYc|Ž˜±˜¢»…¨|†Ÿ‚Œ¥wšz„gqŠHRk,6OMWpz„—£»»Çß¹Èߜ«Âbqˆ'6M$3JRaxgv~¤¡°Ç×æýØçþ ¯ÆKZq 7+Bl{’•¤»¨·Î—¦½€¦~¤§¶ÍáðÿËÚñjy'6METkŽ¥‹š±w†ixfq…`k}\gy_j|dogr„mxŠt‘Šœˆ“¥„¡‡’¤˜ª¨ºÀËÝÐÝðm—3N)>[dy˜t‹«m„¦f~¤h©z’À~˜É‚›Ñˆ¢Û‘®è–³ï–²ñ–¶ó±ë¹ñ›Äü·àÿ“¼ô*S‹(Q‰ŒµíÑúÿ—ÀøCl¤;s+TŒsœÔ³ÜÿÓúÿ£Èÿ™¼ò£Æüš½ó‘´ê²è} ÖzÓq”ÊgŠÀn‘Çt—ÍmÆt—Í‚¥Û}¢Ù€ªä¬ç„°íŠ¶óŒºøŠ¸ö‡·÷‡¹ø„µ÷€³ôy®ðs¨êm¤çi ãfŸäeçfžóež÷fŸøg ùg ùh¡úi¢ûi¢ûh¡úg ùdöašó^—ðZ“ìX‘êWé[‘ë[‘ë[‘ë[‘ë[‘ë[‘ë[‘ë[‘ëXŽèXŽèXŽèXŽèXŽèXŽèXŽèZæY‹ä[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ[Šâ^å^å^å^å^å^å^å\Žç[ŒéZŒëZŒëZŒëXëXëWŽëVŽëQ‰æOŠæN‹æN‹æLŒæLŒæLŒæL‹èM‰éM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëNŠìNŠìNŠìNŠìNŠìNŠìNŠìNŠìM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†æI„ÞI…ÝH„ÜGƒÛGƒÛF‚ÚEÙEÙNŠâNŠâNŠâM‰áM‰áLˆàLˆàL‡áK†âK†äK†äJ…ãJ…ãI„âI„âI„âI„âI„âI„âI„âI„âI„âI„âI„âJ‚áJ‚áK‚ßK‚ÝLÝL‚ÚN‚ØN‚ÖNÔNÐPÎPÍQËQÉRÉT€ÉUËT}ÌV|ÍTzÍTxÌSwÍSuÌSvÊPpÃPqÀPp»No´Nm­Ll§Kj¡Mi™RhDWu.>_)Sr>Vx=WxRsAUvI]~Th‰[oWkŒJ^=Tv?VC\…KdQj“Tl˜Sk—Ph–Me“Ld”Lc•Ja•F]‘BYAXŽCZB\•Ca¡De¨Hi¬Ij­Gh«FgªGh«Hi¬No²Pq´Pq´Hi¬=^¡9Z?`£Di¯Alº?nÀApÂCrÄEtÆGvÈHwÉIxÊIxÊFuÇCrÄBqÃDsÅFuÇFuÇEsÀLt¹Mu³Lt²Ks±Ks±Jr°Iq¯Iq¯S{¹Qy·Mu³Jr°Go­Fn¬Go­Go¬Cj£Cj¡Bi AhŸ@gž?f?f>eœ=d›?fAhŸCj¡Dk¢Cj¡Bi >j©8i¸3i¿4jÀ5kÁ5kÁ6lÂ7mÃ7mÃ:pÆ:pÆ9oÅ9oÅ8nÄ7mÃ6lÂ9l»:g¨c%?b2Jn6NpRs:Mm6IgM9:L:;M?@TFG[JK]@BQ35B)+8,.;:'@NXqŒ–¯™£¼†©‹¤‰“¬u˜v€™eoˆMWp8B[Xb{}‡ “Ÿ·ÂÎæÏÞõ´ÃÚet‹%<*AVe|kz‘n}”˜§¾Øçþéøÿ›ªÁ4CZ6-Dq€—¬Ã²¾Ö›ªÁ…‘©†•¬´ÀØëúÿµÁÙVe|#/GP_v” ¸š©À‹£jvŒmxŠeq`l|dokvˆp{u€’z…™ŒŸ‚¢|ˆž‡“©œ² ¬ÂÎÚðêùÿ~Ž¨"3O"5SZm‹nƒ¢q…¨n‚§l‚«„™ÆŠ ÏŠ Ò’©Ý¦½ó¨Áù¢¸ò·ð²è“»ï¦ËÿÂêÿ‡¬á:n6[¸àÿ¹ÞÿfŽÂAv?seŠ¿ÂêÿÜÿÿ¶Ûÿ—ºð¥Æü¦Çý£Æü†§ÝjÃq”ÌeˆÀa„¼c†Àv™Ó€¤Þ}¡Ýˆ¬èŒ°ìwžÙ®é­è„²î‹¹õˆ¸öƒ³ñ…·öŒ¾ý„·ø€³ôx­ïr§ém¢æi ãhžäfžèhŸñiŸõiŸõj ök¡÷k¡÷l¢øl¢øk¡÷j ögódšð`–ì]“éZæYã^’å_’ã^’å^’å^’æ\’è\’è\’êYçYéYé[Žé[Žé[Žç\Žç^ç\Šà\Šà\Šà\Šà\Šà\Šà\Šà\Šà`Žä`Žä`Žä`Žä`Žä`Žä`Žä_Žæ[ŒéZŒëZŒëZŒëZŒëXëXëWŽëR‰æQ‰æQ‰æOŠæOŠæOŠæOŠæOŠèNˆéNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNˆëNŠìNŠêNŠêNŠêNŠêNŠêNŠêNŠêM‰éM‰éM‰éM‰éM‰éM‰éM‰éM‰éM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëJ†èJ†èJ†èJ†èJ†èJ†èJ†èJ†æJ‡àI‡ÜJ†ÜH†ÛH„ÚF„ÙGƒÛEƒÚQåPŽåPŒäNŒãNŠâLŠáL‡áL‡áL‡ãL‡ãN†ãL‡ãN†ãL‡ãN†ãL‡ãKƒàI„àKƒàI„àKƒàI„àKƒàKƒâJ‚áKáKáLßLßLÝNÜNÚN€×N€ÕNÔP€ÔP€ÒPÐQ€ÐR€ÎT~ÊV}ÊV}ÌU|ËV{ÌUzËVyËVyË[~ÏZ{ÊUwÁNp¸Ij¯Eg§Dc£DcšNi”D\€/Gk)Ae4Km9Pr=TvK_€YmŽXkŒ^q‘iyš`p‘GWx4De0@a?St=Tt>Uw>Ty=U{=T}`§Ci´BoÀAqÆBrÇDtÉEuÊGwÌHxÍIyÎDtÉDtÉCsÈBrÇBrÇDtÉFvËIxÈKu½Lu·Lu·LuµKt´Ls´Ls´Ks±U}»S{¹Ow´Lr°Io­Io­Jp®Jq¬Gl£Fk Fk EjŸChBgœBgœAf›?d™Af›ChEjŸFk EjŸDižAi¦9g²8hº8hº9i»;k½nÀ=m¿l·=e¢?d™>c˜Y„=Uf!;`6^5Z5]7\7_ :_";c$>c&?g&@e3Mp8Pt>VzDZDZAUz;Ot8JnW*$=&0I!:!+D8B[lv£­Æ¨²Ë—°€Š£u˜x‚›wšcm†MWpWazz„“Ÿ·³¿×ÚéÿÏÞõo~•.E/>U[jap‡Xg~“¢¹éøÿåôÿ©¸ÏCRi +0+o{“¼ÈàÄÎ獙±oy’š¦¾äîÿìøÿ›¥¾7C[,6OjvŽ§±Êœ¨Àq{”HSi[gw]fu`ix`izozŒ€‹|‰œ‚Ž¤§v„žu…Ÿ{Š§‹œ¸²ÃáÈÙ÷ºËétƒ¢APo"1P;Jihw˜|Š­{‰®w†­‚‘ºˆ—Âœª×¬ºé­»ê®¾ï°¾ï¡µç¢¾î¡Ãó¹ÙÿÑóÿw—È'Iye…¶²â_°=m&Fww™É¾ÞÿÆèÿ¬Ìý©Éú£Ãö¢Á÷£Âø‘²èz™Ð\|µFi£Tv³g‹ÉyœÜ¢äzŸã¤ê„©ï§î§ì}®é|¯æ}°é~±ê±ì€²í€´ðµñ{®í{®íz­îy¬íx«íuªìt©ít¨ñ{¬ùy©ûw§ùt¤ös£õs£õt¤öt¤ör¢ôq¡óp ònžðlœîjšìi™ëi™åi™Ûi™×h™ÛgšÜe™âd™åb™éb™ëb˜î\’êS†ßb”íd“í[‰áf’ë^‡ßa‰Þ^‡Ù]†Ø`‰ÛeŽàh‘ãi’äh‘ãdßcŒÞcŒÞb‹Ýb‹Ýb‹ÝcŒÞ`âd“ï_ï\ì\ì\ì\Ží_‘ðb”óS…äW‰è[ìWŒêSˆæR‡åV‹éZïR†ëR†ìS‡íTˆîTˆîU‰ïU‰ïVŠðW‹ñW‹ñVŠðTˆîU‰ïVŠðTˆîQ‡ëO‹ëMŒéMŒéMŒéMŒéMŒéMŒéMŒéL‹èMŒéNêNêPìPìQíR‘îNîM‹îM‹îPŽñS‘ôT’õQòNŒïLŠíLŠíLŠíLŠíLŠíLŠíLŠíNŠêNŠàN‹ÜO‰ÛL‰ÚNˆÜKˆÛL…ÜJ†ÜN‡àLˆàN‡áL‡áN‡áL‡áN†ãN‡áN‡áN‡áO†áN‡áO†áN‡áO†áN‡áQˆãP‰ãP‡âN‡áO†áM†àM„ßM„áL€ãOƒæR†éS…èP‚åMâMàMàN€áN€ßN€ßO€ßO€ßO€ÝO€ÝR€ØT~ÊX~ÅZ€Ç\‚É\‚Ë\‚Ë[ÌZ€ËV|ÇW{ÇVzÆTxÄQuÁMq»Im·Hk­EjžAf’0S}$Ep.Nw6S{.Jq&@e9OtG[~eu—ƒ’³~‹­U`€2=]+6V4AaERrKZ{d«>d¯@g´El¹EoÁBtË?uÏ@vÐAwÑAwÑBxÒCyÓCyÓDzÔDzÔDzÔDzÔDzÔDzÔDzÔGyÎLzÇNxÀKu½It¹It¸Ks¸Mt·Nu¶PvµPv´Ov±Pt®Os­NsªNq©Nq§No¢KmHjšGi™Gi™Fh˜Ce•@b’=_?a‘Ac“Ce•Df–Fh˜HjšHk¡Hn¯Gm´Gm´Gm´Gm´Gm´Gm´Gm´Ek²Dj±Dj±Ci°Bh¯Ag®Ag®Cf¦Dd•FcFcEbŒDa‹C`ŠC`ŠB_‡GdŒFbŠD`ˆB^†A]…B^†C_‡C_†Fb‡Fc…Hb…Fc…Hb…Fc…Hb…Fc…Lf‰Jg‰Jd‡Gd†Ga„DaƒE_‚D^ƒ@X„AY‡BZˆBZ†AY…?Xf!:c8`8a";c&?h)Bj0Ir/Hp.Gp.Go/Hq1Jr3Lu4MuB[ƒB[ƒB[„CZ†CZ†DYˆDXŠFXˆ@R‚ +8&()'',(*924CJK_RSgYZo]^scc{hh€hh€ce|bdy\auTYmMRfPUi\augl€lq…QVj>CW,1E/4HCH\V[oin‚{€”vvqq‰kkƒjkjl{egsY[gNQZ"%.#&/02?@BQJK_STiUUoNOd:;M.0=!#0*+#%213@>@Macpln{jly[]jMO\@BO79F8:IPQccdxrs‡yzŽ{|Žz|‹~€‰‹˜•—£X[d03<%&%(-*.9GObnx‘˜¢»¢¬Å™²{…žs}–u˜Ž˜±ÇÑêÛåþ¦°ÉKUn6";&0I(2K'1J5?Xfp‰š¤½ ªÃ’œµ”ž·†©v€™pz“nx‘`jƒ]g€s}–‰•­©ÁÒáøÍÜós‚™;JaYhu„›dsŠ:I`…”«ãòÿòÿÿ·ÆÝN]t5 2u˜³½ÖºÄݑ›´wš ªÃÝçÿÖàù‰¢-7P5?Xr|•‘›´pz“R\uFQgfo€lu„pyŠmv‡~‰›“ž²‹—­…”«„’­~ª’°„”µ’³€’¶u‡­\lXg†AOl;HhS`€jw™o|žs€£}Š­|ˆ®u©v‚¬™Ã¬·ä¸Ãð´¿ì®¿ë£»é¦Åó¿ÞÿÓòÿ‚¡Ï(Gu6UƒLk™4Sl‹¹¼ÛÿÕôÿÃâÿ»Úÿ´Óÿ¨Çõ•±á™·é„¢Ôh†ºf„ºPo¦?_šc…ˆªé’µõŽ±õ€¥ë¤ê~¤ëxžçráy«æx¬åx¬åy­æz®èz®è{¯ë{¯ëz­ìz­î{®ð{®ð|®ó|®ó|®ó|®õ~¬ù}«ùz¨öw¥óu£ñt¢ðu£ñu£ñs¡ïr îqŸípžìnœêm›élšèm™âj–Õj—Òi—Óg—Ùf—Üc—âb—å`—ç[’äVŠÞ\Žã^Žâ^‹Þg‘ãfß`‡Ôj‘ÖgŽÏf‹ÏfÎiŽÒj‘ÒkÔiÑcˆÌd‹ÌgŒÐhÐhÑeŒÍcˆÌ_‡Í_ŠØ\‰Ú_ŒÝf“äg”åd‘âd‘âf“äbà^‹Ü[ˆÙ[ˆÙ_ŒÝ`Þ\‰ÚW†ØYˆàWˆäZ‰åYŠæ\‹ç[Œè]Œè\é^é\é^é\é^éZ‹ç]Œè[ŽêU‹ëRëRŒíSŽìSîSŽìSîTíRŒíRëRŒíRëRŒíRëRŒíRëRëQŒêQŒêTíW’ðX“ñUîRëOŠèOŠèOŠèOŠèOŠèOŠèOŠèOŠäPŠÞPŠÜO‰ÛNˆÜNˆÜM†ÝL…ÜL…ÞN‡áN‡áN†ãN†ãN†åN†åN†åN†åN†ãN‡áN†ãN‡áN†ãN‡áN†ãN‡áPˆåP‰ãO‡äN‡áN†ãM†àL„áM„ßM€ÛQ‚ÞT…áS„àPÝM~ÚM~ÚM~ÚPÝPÝPÝPÝPÝPÝPÝSÖX‚Ì\ƒÈ]„É^„Ë^„Ë\‚ËZ€ÉYÊRxÃSxÆTyÉTyÉSxÉQvÇOtÅNt¿Fp¬Do¤@hœ5ZŽ'K{'Gv+Jv.Jr6\-Ad[kŒŽ®r}™MWr7>Z-4P=Gb;Fb7B`2?_8FiEW{Tg‘Xo›^v¦_z¯[x°Ss¬Tv³W{¹Gm¬4W—;Y•B_™HeJhžQl£Xt¦]t¦Zr Mc’Ja‹KaŠMcˆOcˆL`ƒObƒPfPlœLk¡Mk¡Pn¢Wr§Zv¦Zu¤Yt¡Me‘Ha‰BZ€=Sx>Ru@TuEYzI^}QhˆQi‹SkSm’Qm•Ol˜LjœJiŸOoªIm«Bg«>d«=d¯>h´Cl»CpÃBtÍ?tÐ@uÑAvÒAvÒBwÓCxÔCxÔDyÕDyÕDyÕDyÕDyÕDyÕDyÕFyÒKzÊMyÄJv¿Ht»Is»It¸Mt¹Nu¶Ou´Ov±Pt°Pu¬Ps«Ps©Qr§Qr¥Ff—Dd“Bb‘Cc’Ee”Ff•Dd“Bb‘9Yˆ;[Š@`Ee”Ii˜KkšKkšJkžMl¬Kl¯Kl¯Kl¯Kl¯Kl¯Kl¯Kl¯FgªEf©Ef©De¨Cd§Cd§Bc¦DdŸHcIcˆIcˆHb‡Ga†F`…F`…E_„F`…D^ƒB\@Z@Z@ZA[€B\HbƒHcHcHcHcHcHcHcKf„Kf„JeƒHcFaE`~D_}C]€@Y‚AY‡BZˆC[‡BZ†@Y‚>W=W|4Nq5Op6Qo6Qn6Qn5Pk3Ni2Mj*Dg)Ch(Bg'Af'Af(Bg)Ch*Di/In.Hm,Fk)Ch&@e$>c"@EYV[ootˆ’¦}}—ss‹hh€efzfhwbdpXZfMPY$'0#&/.0=>@OIJ^QRgQQkGH]67I*,9 -() "/-/<9;HWYfdfsdfsY[hOQ^EGT?ANACRMN`]^rlmrs‡st†vx‡€‚‘ŒŽ›Ÿ«…‡“[^g03<$%%(-+/:?GZak„‡‘ª”ž·Ž˜±ƒ¦x‚›pz“…¨¼ÆßÛåþ³½Ö[e~$=5",E$.G&0I6@YisŒ›¥¾¡«Ä•Ÿ¸š¤½ˆ’«yƒœq{”lv`jƒcm†x‚›‹—¯š¦¾·ÆÝ°¿Ö}Œ£gv§§[j0?V€¦Øçþéøÿ¬»ÒGVm#: /Ft~—¦°É¯¹Ò“¶‰¢§±ÊÛåþÈÒëu˜0:S?Ibq{”€Š£]g€S]v_j€Š›~‡–vox‰Š•§§²Æ–¢º€Ž¨€Ž©¯Šš»Šš¼{±o¥btšSc‡O^}BPmDQq\i‰ly›ly›q~¡Œ¯o{¡r~¤iuq}§œ§Ô¾Éö»Æó¬ºç®Æô®ÍûÅäÿÒñÿ Î:h/]%DrUt¢¢ÁïÒñÿËêÿ¾Ýÿ©Èö—¶äŸ»ê‰¥Ôˆ¤ÓtÀ`~°h†º_}³Ut«v–Ñ‹«è’´óŒ®î€£å€£ç€¥é|¡çw âyªåw«äw«äx¬åx¬æx¬æx¬èx«êz­îz­î{®ð|¯ñ}¯ô~°õ±ö±ø~¬ù|ªøy§õv¤òt¢ðs¡ïs¡ïs¡ïpžìpžìoënœêm›élšèk™çm™äg’Öi’Òg’Öd“×c“Ý`”à_”â]”äZ‘áV‹ÛZÞ\‹ÛDr¿S}É}¤ïr™Þ[‚½a†»d‰¾cˆ½b‡¼eŠ¿kÅr—Ìm’Çp•Ês˜Ív›ÐušÏr—Ìn“ÈiÉi’Òi”ØhÕ`‹ÏbŠÏeÔi‘ÖdÓfŽÓeÔgÔcŽÒbŠÏ_ŠÎa‰Î`ŠÒ_Û^ß^ß^ß^ß^ß]ŒÞ]ŒÞ[ŠÜZ‰Û\‹Ý_Žà^ß\‹Ý^ßb’çXéWíWíWíWíWíWíWíTŠêTŠêTŠêU‹ëU‹ëVŒìVŒìVêUŒçUŒæUŒæXé[’ì\“íYêVçR‰ãR‰ãR‰ãR‰ãR‰ãR‰ãR‰ãRŠáPŠÞPŠÜO‰ÝNˆÜN‡ÞM†ÝL…ÞL…ÞN‡áN‡áN†ãN†ãN†åN†åN†çN†çN†åN†ãN†ãN†ãN†ãN†ãN†ãN†ãPˆåPˆåO‡äN†ãN†ãM…âL„áM„ßL€ÖP‚×S…ÚR„ÙOÖL~ÓL~ÓMÔQƒØQƒØQƒØQƒØQƒØQƒØQƒØTƒÓZ„Î^„Ë_…Ì_…Ì^„Í[ÊYÊW|ÊPuÃQvÆSxÈUzËUzËUyÍTxÌSxÆKt´Jt®Ls¬Bgž,P„$Du*Iw3Ow#;a';^Qa‚w…¢kw‘OYr@H_1V;Ic=Kf5Da8HiGZ{ThTk”bz¨^zªXvªUt«Ux°Tx²Hl¨9[˜=[—Da›IfžKiŸRm¤Yu§^u§[s¡J`G^ˆH^‡Ka†Nb‡Ma„Sf‡Wm”Uq¡Oo¢Nl OmŸUq£Yu¥\w¤\w¢MfJaŠDZ?Vx?StBWvF[zI^}Rg†Pg‡QhŠQiQj’Oj•NjšKkžOo¨Im©Bh©>eª>d­@g²El¹CpÁBtË?uÏ@uÑAwÑAvÒBxÒCxÔCyÓDyÕDzÔDyÕDzÔDyÕDzÔDyÕGyÐLzÈMyÄJv¿Ht»Is»It¸Mt¹Nu¶Nt³Nu°Pt°Pu¬Ps«Ps©Rs¨Rs¦Ff—Dd“Cc’Ee”Hh—Ii˜Hh—Ff•7W†9Yˆ>^Ee”KkšNnMmœJkžMmªKl¯Kl¯Kl¯Kl¯Kl¯Kl¯Kl¯Ef©De¨De¨Cd§Bc¦Ab¥Ab¥BbHcIcˆIcˆHb‡Ga†F`…F`…E_„D^ƒC]‚@Z>X}>X}>X}?Y~@Z}HbƒHcHcHcHcHcHcHcKf„JeƒId‚Gb€FaD_}C^|B\@Y‚AY…BZ†C\…C\…B[ƒ@Z?Y~5Or5Or4No4Om2Mk1Li0Kh/Jg)Cf)Ch)Ch+Ej,Fk.Hm/In0Jo6Pu5Ot2Lq/In,Fk(Bg&@e$>c8a 9b";d&?h,En3Lu:S|=V9R{8Qz7Py7Py8Qz:S|QQ[tr|•„Ž§Š”­†©z„nx‘z„®¸ÑÚäýÀÊãjt)B .&?$.G+5N?Iboy’œ¦¿§À—°š³†©{…žq{”dn‡\fisŒ‹¤Žš²‹—¯”£ºŒ›²tƒš}Œ£¡°Ç‰˜¯>Md*9P{Š¡ÇÖíÜëÿ¡°ÇIXo)8ODSjq{”– ¹¡«Ä”ž·‡‘ª°ºÓÜæÿ»ÅÞcm†0:SJTms}–u˜Waz^hv—”œ¯–§y”go‚‚¡¨³Ç—£»{‰£‚«Œ›º›«Ì™©Ë‘µgyŸ]o—[kP_~ESpIWt`n‹mzšly™s€¢ƒ³lxžlxž^j’dp˜›ÅµÁë·Ãí«ºå¤¼è¯ÌøÊçÿÇäÿr»+W#O5R~Œ©ÕÇäÿÞûÿÑîÿ¼Ùÿ–³ß€ÉŒ©Õ}˜Åt¼mˆ·h„³o‹»i‡¹`~²pÆ‹ªã“³îŽ®ë‚¤ã†¨è‰¬î…¨ì¦ç{¬çy­çy­çy­çx¬èx¬èx«êx«êz­îz­ï{­ò|®ó}¯ö~°÷±ø±ú}«ø{©÷w¥ót¢ðqŸípžìoëoëm›ém›élšèlšèk™çj˜æj˜æl—åg×gÕe×dÛa‘Ý^‘à]’â]’â^“ãZÝU‰Õ]×0\£Ny¾ÃìÿÄëÿ³àšÀç£ÉðžÄ댲ÙyŸÆp–½o•¼RxŸTz¡U{¢U{¢RxŸLr™Fl“AfMs¤S{®Ot¨=e˜ChœW²eŠ¾^†¹`…¹_‡ºcˆ¼c‹¾gŒÀgÂkÄi’ÊbŽÏ_ŽÒ_ŽÒ_ŽÒ_ŽÒ_ŽÒ_ŽÒ_ŽÒ\‹Ï[ŠÎ^Ñb‘Õ`Ó\‹Ï^Ñe•ß^å]ë\ê[ŽéYŒçX‹æWŠåWŠåZèZèYŒçX‹æX‹æWŠåV‰äV‰âYãXŒàYá\ä_“ç_“ç]‘åZŽâU‰ÝU‰ÝU‰ÝU‰ÝU‰ÝU‰ÝU‰ÝSŠÝQ‰ÜPŠÜO‰ÝNˆÜN‡ÞM†ÝL…ÞL…ÞN‡áN‡áN†ãN†åN†åN†åN†çN†çL‡åL‡åL‡åL‡åL‡åL‡åL‡åL‡åN‰çN‰çMˆæL‡åL‡åK†äJ…ãM„ßKÒQ‚ÑT…ÔT…ÔPÐNÎM~ÍNÎT…ÔT…ÔT…ÔT…ÔT…ÔT…ÔT…ÔU„Ò\†Ð_…Î_…Î_…Î\‚ÍYÊV{ÉTyÇOtÄQvÇSxÉVzÎX|ÐX|ÒW{ÑW|ÌPx¾Py¹Sy¸Nr®9\”)H~)Hw4Oz3Kq(<_ARpcqŒ_kƒMXlCK^5@R.:P8G^FTnJZtCTr>QqI]€Um“e~§Yv¢Sr¡Xx«Z{°Ps©DgŸ=`˜?^—FcJgŸLj Rm¤Xt¦\s¥YqŸG]ŒD[…E[„J`…OcˆPd‡ViŠZp—Xs¢Qo£Pk PlžUo Yt£]u¡^w NeŽJbˆF]AXxAVuCXuGZxI^{Pe‚Nf‚Ne„NfˆNhMi‘Nj™KkœOp¦Jm§Dg§>e¨>d«@h°El·Ep¿DtÉAtÍBuÐCvÏCvÑDwÐExÓExÑFyÔFyÒFyÔFyÒFyÔFyÒFyÔGyÎLzÈMyÄJv¿Ht»Is»It¸Mt¹Nu¶Ms²Mt¯Os¯Ot«Qt¬QtªSt©St§IišHh—Gg–Ii˜MmœOožNnLl›9Yˆ:Z‰=]ŒCc’Jj™NnMmœJkžMmªKm­Km­Km­Km­Km­Km­Km­Eg§Df¦Df¦Ce¥Bd¤Ac£Ac£Bb›HcIcˆIcˆHb‡Ga†F`…F`…E_„C]‚B\?Y~>X}=W|=W|>X}?Y|HbƒHcHcHcHcHcHcHcJeƒId‚HcFaE`~C^|B]{A[~?XAY…BZ†D]†D]†C\„B\A[€7Qt6Ps4No2Mk0Ki.If-He-Hf,Fi-Gl/In2Lq4Ns6Pu7Qv8Rw>X}g(Aj,En1Js7PyW€@Y‚@\ƒ@\ƒB[„BZ†CYŠCYŠDX‹DX‹BS‡>P€6Gs,>f"2V'H> 8%''%("$124C>@OUVjYZn[\qZ[p[[s__w__wZ\s_avY^rV[oTYmTYmW\pbg{ns‡W\p?DX&+?%*>;@TTYmpu‰ˆ¡||–rrŠee}^_s\^mWYeOQ]GJS69B36?:!(")'*/*.9,4G?Ib[e~t~—‚Œ¥ƒ¦x‚›mwr|•¢¬ÅÛåþÍ×ðz„%/H(!:.8Q:D]LVopz“•Ÿ¸”ž·‹¤~ˆ¡‰“¬{…žkuŽ^h\foy’…¨Š–®‡“«žµŒ›²s‚™€¦·Æݞ­Ä8G^'6Mr˜¯¾ÕËÚñ™¨¿KZq.=TL[rpz“‰“¬– ¹•Ÿ¸™²·ÁÚÛåþ®¸Ñ[e~8B[S]vjteoˆXb{r|•’³™¡´”®y”V^sitˆ–¡·‘·{‰¤ƒ‘®ž½Ÿ¯Ñœ¬Ð}µ^p–SeZiUdƒKYvM[x`n‹jw—kx˜x…§Ž›½s€£dp–Ye‹htœˆ”¼žªÔ¨´Þ­¼çš±Ý°Í÷Çâÿ¥ÂìOj—!K1^c€ªÁÜÿÍêÿÏêÿ»Øÿ’­Úr¹x“À}˜ÃuŽ·sŒµ{“¿|—Â{–Ãj†µTp Vt¦­ã—¶í“²ë‹«æ‘±î“µôŽ°ð†¬ë°ë}±ë|°ê|°ê{¯ë{¯ëz­ìz­îz­ïz­ï{­ò{­ò|®õ|®õ|®õ|®÷{©öx¦ôt¢ðpžìm›élšèk™çk™çh–äh–äh–äh–äh–äh–äg•ãi”âd‹ØeŠØd‹ÚaŒÛ^Ý]ß[ŽßZß]’à`”àW‰Ò\ÒF‡3\šÌôÿÚÿÿØüÿÝÿÿÞÿÿØüÿÐôÿÐôÿØüÿâÿÿÜÿÿÛÿÿØüÿÓ÷ÿËïÿÂæÿ»ßù¶Ùõ°Òõ²Öú¡Ã聥Éxš¿ƒ§Ë‡©Î| Äq“¸hŒ°b„©b†ªhŠ¯hŒ°b„©W|¦eŽÂcÉd‘Êg”Íi–Ïl™Òn›ÔoœÕbÈaŽÇf“ÌmšÓk˜Ñf“Ìk˜Ñt¢à[‹×ZŠÜ\‹Ý[‹Ý]ŒÞ]ß^ß^Žàb‘ã`â`á\ŒÞ[ŠÜW‡ÙW†ØU†Õ^Û\Ù^Û`‘Ýd“ác”àb‘ß^ÛYˆÖX‰ÕYˆÖX‰ÕYˆÖX‰ÕYˆÖVŠÖR‰ÙP‹ÛPˆÛNˆÚO‡ÜM‡ÛM…ÜL…ÜO†àN‡áO†ãN†ãO†ãN†ãO…åN†åN†åL‡ãN†åL‡ãN†åL‡ãN†åL‡ãPˆçN‰åO‡æL‡ãN†åK†âL„ãM„ÞLÒQ‚ÏS„ÓS„ÑPÐM~ËL}ÌM~ËU†ÕU†ÓU†ÕU†ÓU†ÕU†ÓU†ÕW…Ò^…Ð_…Î_…Î]ƒÌZ€ËV|ÇSxÆPuÃPuÆRwÈUyÍW{ÏY}ÓZ~ÔY}ÓY~ÏT{ÆT|ÂSx¾UxºKmª4SŠ(Fx3N{CZƒ.Bc5FbM[uP\rDOa?HW7CS3BU0AUCSj]o‡Thƒ9Nk;RrVna{ Rn–Ol˜Yx¦[{¬Lnž>_’;\‘Ba˜HeŸKh KiŸPk¢Tp¢Wn TlšF\‹AX‚BXJ`…Rf‹UiŒWj‹Wm”Wr¡So¡PlžPlœTožXs [t[tœNfŒLb‡G^~EZyCXuEYtG[vI]vOc|Nc~Nc€Lc‚Me‡NhMj”MlšPp£Lm£Dh¤?e¤?d¨Ah­FlµEq¼DtÈAuËBuÎCwÍCvÏDxÎExÑEyÏFyÒFzÐFyÒFzÐFyÒFzÐFyÒGyÎLzÈMyÄJv¿Ht»Is»It¸Mt¹Nu¶Lr±Ls®Os¯Ot«Qt¬QtªTuªTu¨NnŸMmœLl›NnQq Ss¢Rr¡PpŸ?_Ž<\‹;[Š@`Hh—MmœMmœJkžMmªKm­Km­Km­Km­Km­Km­Km­Fh¨Eg§Eg§Df¦Ce¥Ce¥Bd¤DdHcIcˆIcˆHb‡Ga†F`…F`…E_„D^ƒB\@Z>X}=W|>X}?Y~?Y|HbƒHcHcHcHcHcHcHcId‚HcGb€FaD_}B]{A\zA[|?X€@Y‚C\…D]…E^†D]…C]‚B\;Ux9Sv6Pq2Lm/Ij-Hf,Ge,Ge0Jm2Lq5Ot8Rw;UzX}P€7Ht,>f#3W(I ? 9%&&%(#%246EACRUVjZ[o\]r[\q\\t^^v\\tVXoZ\qTYmTYmX]qY^rY^r^cwfkZ_sCH\/4H,1E9>RSXllq…w|xx’ppˆff~]^rWYhQS_IKWCFO8;D7:C?ANHJYMNbUVk]]w[\qIJ\9;H&(5*&*(*757D@BOQS`Y[hXZgXZgY[hZ\i`bqwxŠjkfg{kl€st†‚„“ž‹š~€Œoq}RU^36?"%,"%,'*/)-8%-@/9RHRkfp‰z„|†Ÿu˜nx‘mwœ¦¿ÝçÿÙãüˆ’«,6O &!::D]GQjR\uisŒ‡‘ªŠ”­z„v€™“¶v€™`jƒ]g€eoˆu˜€Š£~Š¢u™Ž¥†•¬et‹Yh“¢¹’¡¸8G^ /Fet‹˜§¾ÂÑ蟮ÅTcz*9P=Lcs}–‹¤™²—¡º”ž·ºÄÝ×áú ªÃ^hGQj_i‚eoˆ^hbl…Š”­¨³ÉŸ§¼–ž±pxAI^T_uŒ–¯‘·~Œ§„‘±Š™º’¢Ä ÄxŠ°^p˜Yj•fuœ[j‰R`{Tb}`n‰drft‘}ŠªªÌw„¦dq”_k‘myŸ|ˆ®‹—¿žªÒ©¸á©Àê¾Úÿ¼Ôÿs·+Co 'O2Jv„ ÈÒêÿÀÜÿ¢ºæ†¢Ên†²c§kƒ¯Yr›s‹±‰¡Åž¶Ü ·à–­×n†²F^ŒJe”©Û•³ç”²è®å˜·ðœ¼õ–¶ñ±í†´ðµñµñ€´ð²ñ~±ð}°ñ}°ñ{®ð{­òz¬óz¬óy«ôy«ôy«ôy«ôx¦óv¤òr îm›éj˜æh–äg•ãg•ãd’àd’àd’àd’àd’àe“áe“ág’ád‰Úd‰Úc‰ÜaŠÜ^‹Þ]ŒÞZÞZÜYÙb–ß^Ô\ŒÌB}!Lƒ²ÛÿÓúÿÅéÿÊîúÑõÿÚþÿàÿÿáÿÿÞÿÿÚþÿÛÿÿÜÿÿÝÿÿÞÿÿßÿÿßÿÿßÿÿáÿÿáÿÿãÿÿßýÿÓóÿÔòÿÜüÿâÿÿÞþÿßýÿÓóÿÆäü¿ßö¿Ýõ¸Øï¬Ê❿ۄ«Ò~§ÓvŸËl•ÁaŠ¶W€¬Ox¤Kt IržHqMv¢V«T}©Nw£T}©`Š¼_‹È^‹Ì_‹Ì^‹Ì_‹Ì^‹Ì`ŒÍ_ŒÍbŽÏ`ÎaÎ_ŒÍ`ŒÍ^‹Ì_‹Ì]ŠÍbÑaŽÑbÒd‘Ôh“Øh•Øf‘ÖbÒ]ˆÍ\‰Ì]ˆÍ\‰Ì]ˆÍ\‰Ì]ˆÍZ‰ÏT‰ÕQŠÙQˆØOˆ×P‡ÙN‡ØN…ØM…ØP†ÜO‡ÞP†àO†àP…áO†áP…áO†áO†áN‡áO†ãN‡áO†ãN‡áO†ãN‡áQˆåP‰ãP‡äN‡áO†ãM†àM„áN„ÞK~ÑQ€ÐTƒÕS‚ÒPÑM|ÌM|ÎM|ÌV…×V…ÕV…×V…ÕV…×V…ÕV…×W…Ó^…Ð^„Í]ƒÌ[ÊX~ÉSyÄOtÂLq¿RwÈTyÊVzÎY}ÑZ~ÔZ~ÔZ~ÔY}ÑW~ÍW~ÉPt¾XzÁ^€ÀB`œ&Dx0KzVm–BVw=NjJYpMZmBN^@JVCO]9H[/AU=OeZn†_sŒJ_z@WvKdƒVp“LhKhRr›Ut¢Hi–9Yˆ1Q‚EbšJg¡Li¡KiŸMhŸPlžRi›Nf”G]Œ?V€@VJ`…WkYmWj‹ThWoRmœPkšQl™VnšXqšYp™Xp–OfˆLcƒJ_~GZxEYtHYsJ[uI]uNbzMczLbzJb~Kd‚MgˆNj‘Ol–PpŸLm Eh Ae¡?e¤Ah©Fm²FpºEtÆBtÉCuÌDvËDvÍEwÌFxÏFxÍGyÐGyÎGyÐGyÎGyÐGyÎGyÐIyÍLzÈMyÄJv¿Ht»Is»It¸Mt¹Nu¶Kq°Kr­Nr®Ot«Qt¬Ru«Uv«Uv©Qq¢PpŸNnPpŸRr¡Tt£Ss¢Qq Ee”?_Ž:Z‰=]ŒEe”Ll›MmœJkžMm¨Km¬Km¬Km¬Km¬Km¬Km¬Km¬Gi¨Gi¨Fh§Fh§Eg¦Df¥Df¥EežHcIcˆIcˆHb‡Ga†F`…F`…E_„E_„C]‚A[€?Y~>X}?Y~@Z@Z}HbƒHcHcHcHcHcHcHcHcHcGb€E`~C^|B]{A\z@Z{?Y~@YC\„E_„F`…E_„D^ƒD^ƒ>X{X}?Y~?Y~?Y~A[€@Z?Y~=W|;Uz9Sx8Rw7Qv6Ox6Ox7Py7Py7Py7Py7Py7Py=V 7%&&$($&357FBDSUVjZ[o]^s\]r\\t]]uZZrSUlVXmQVjSXlZ_s\auZ_s[`tafz\auFK_6;O27K8=QRWkin‚kp„ttŽoo‡ff~]^rUWfMO[FHTADM69B69BACPLN]RSg_`ull†no„VWiCER-/<,%&#%2/1>;=JMO\VXeVXeXZgZ\i\^kcet|}lmefzij~qr„†ˆ——™¨—™¦sugiuNQZ36?$'.$'.(+0(,7 (;&0I>Ha^ht~—wšr|•oy’lv™£¼àêÿáëÿ‘›´1;T &!:@JcNXqS]v`jƒ|†Ÿ…¨{…žx‚›œ¦¿r|•Waz^hnx‘yƒœz„t€˜|ˆ €¦Ÿ¶o~•IXow†žµRax(?Zi€‹š±ÄÓê°¿ÖhwŽ3BY9H_v€™‰¢Œ–¯˜¢»—¡º»ÅÞÔÞ÷—¡ºZd}Q[tpz“q{”hr‹r|•—¡º­¸Î¨°Å—Ÿ²fnƒ4OkDSjFSf8DR7AMCO]9J\3H]:OdLby_u^vLeƒ;TsLf‡IeŠIeŒMj’Pm—Gf’6U'FuFdšJg¡Li¡JhžLgžNjœOf˜Kc‘G]Œ?V€>T}J`…Ym’\p“Wj‹QeŠUm™Ql™Pk˜Ql—Vo˜Xo˜Wo•Vl‘Ne…Nc‚K^|H\wHYsHZrJ\tK]sPbvMbuL`xKayKc}Ng…PjPn”QpœMmœGhBeAe¡Bh¦Gm®Fq¶EtÂBuÈCvÉDwÊDwÊExËFyÌFyÌGzÍGzÍGzÍGzÍGzÍGzÍGzÍIyËLzÇMyÄJv¿Ht»Is»It¸Mt¹Nu¶Kq°Kr­Nr®Ot«Qt¬Ru«Uv«Uv©Ss¤PpŸOožPpŸRr¡Ss¢Qq OožIi˜Aa:Z‰;[ŠCc’Jj™MmœJkžMm¨KmªKm¬KmªKm¬KmªKm¬KmªIkªHj§Hj©Gi¦Fh§Eg¤Eg¦FgHcŽIcˆIcˆHb‡Ga†F`…F`…E_„E_„D^ƒB\@Z?Y~?Y~@ZA[~HbƒHcHcHcHcHcHcHcHcGb€FaE`~C^|B]{@[y@Z{?Y|@ZC]‚E_„F`…F`…E_„E_„A[~=Wz8Ru3Mp/Il-Gj-Gj-Gj4Ns6Pu:Ty=W|?Y~@Z?Y~>X}?Y~?Y~>X}_”`´p‘Æd…¸a‚·kŒ¿oÅgŒÃ_‹ÊZ‹ÍY‰ËV‡ÉV…ÉT…ÈU„ÊT„Ì[ŠÒY‰ÓZˆÕY‰ÕY‡ÕW†ÔX†ÔW†ÖXˆÚUˆÙS†×R…ÖR…ÖR…ÖS†×S†×S†×S†×PƒÔPƒÔWŠÛ]áUˆÙIyÍN|ÒP|ÕQ}ÖQ}ÖR~×R~×R~×R~×T€ÙY…Þ\ˆá[‡à[‡à^Šã\ˆáYƒ×U|ÇPw¼Sz¿ZÆSyÀDj±Ci²Nt¿`†Ñ`…Ó_„Ô\Ñ\Ò^ƒÔ`…Ö_„ÕU{ÌRyÈNrÀUw¿f‡ÌjˆÈEbš5f=T€Ma†EVt6D^6CV/;K2;JCQ^?Qe9Of7Md9Qi@Xr@Xt:Sq8Qp0Jk>ZNj‘IfŽ=Z‚?\†:W$CqKiŸPm§UrªVtªTo¦Rn UlžWoPf•LcI_ˆJ`…Rf‹Xl\o[o”Wn˜Um™Tl˜Rk”Ri’PhŽPg‰Qe†Pe„NaJ^wI[sIYpJ[oJ[oI\mL_nKaoLatMcxMf|NhNi‡MjŒNk“Kl—KmIm¡Fk¢Bi¢?e£;d¦Cq¾AqÃCsÅDtÆFvÈGwÉHxÊIyËHxÊHxÊHxÊHxÊHxÊHxÊHxÊIxÈAo¼CoºCo¸Co¶Dn¶Do³Gn³Gn¯Hn­HoªLp¬Mr©Ps«Ps©Rs¨Rs¦Ss¤Rr¡OožMmœNnQq Uu¤Xx§Tt£Qq Ll›Gg–Dd“Ff•Ii˜Lm Gg Cf Ce¢Fi£KmªMpªKmªHk¥Qs°Ps­Mo¬Il¦Fh¥BeŸ?až@a–?Z…@Z?Y~>X}?Y~A[€C]‚D^ƒ?Y~?Y~A[€B\D^ƒE_„Ga†Ga„F`E`~E`~D_}C^|B]{B]{A\zD_}C^|B]{@[y?Zx=XvW€=VW€AZƒC\…E^†A^€A^€B\AZ‚BYƒAX„AV…AV…?Q>Q|;Mu3Ei)9Z+G7,$$%)$&302?<>MCETNOcQRfXYnbcxoo‡ppˆaayNPg?AVDI]NSgUZn]bvfkej~Y^rFK_E@CH>BMq/FrH[ƒGWx5C^2>T3>P=FWMZkbvŽ@Zq/Ga-G`5MiC\zHa€[ƒ:U€0L{HfœLi£Ro§Tr¨Up§Tp¢Xo¡Zr KaG^ˆF\…G]‚OcˆTh‹Wj‹VjVm–Un—Sl•Sj“QiQgŒRf‡Qf…PcNb}M_wJ\rJ[oJ[mJ[mJ[kM_mMalNapNctNewNg}NhƒNi‡MkLl“Kl™KmGkŸDižBf X}>X}@ZB\C]‚?Y~?Y~A[€B\D^ƒE_„Ga†Ga„D^D_}C^|C^|B]{A\zA\z@[yC^|C^|A\z@[y>Yw=XvQ|=Pz:Lr3Fg):X,F7-%%'!-(*746C?APFHWPQeTUi[\qef{qq‰qq‰``xKMdBDYJOcV[oTYmPUi^cwgl€^cwCH\7E_}‡¢¯¸Õ©´Ô|‰«p} žÃ˜§ÐŠ™Ä†—†—Ã|»x‡°iy“]ldsˆjyjym{•p~˜x†¡jx•iw”bodq‘u‚¤‡”¶’ŸÁ™§Ê£ÈVl“(>eAW~{‘¸ ¶Ý¦¼ã™¯Ö€–½{‘¸{‘¸s‰°l‚©xŽµ{‘¸j~ŸbtŒct†Yj~N^uJZsJ[uRc\o_t“Lc…u‹°¸Ðö§¾çTm•a™>a™AdœGj¢Lo§OrªNq©Lo§Il¤Fi¡CfžAdœBc–A\‡A[€?Y~>X}>X}>X}@ZA[€?Y~?Y~A[€B\D^ƒE_„Ga†Ga„C]~B]{B]{A\z@[y@[y?Zx?ZxB]{A\z@[y?Zx=Xv;Vt:Us:Us:UsYw@Z{?Yz=Wx:Tw7Qt6Pu5Ot4Mu4Mu5Nv7Py9R{:S|?X€?Y~?Y~?Y~?Y~?Y~?Y~?Y~@Z@Z@Z@Z@Z@Z@Z@Z@Y‚?X>W€=V;T}9R{8Qz8Qz6Ox6Ox8Qz:S|W€?X@Y?\|?\|@Z}@Z@W€?V€?T?TKIKXSUbZ\i`boegvjk}fg{kl€z{†‡™ƒ…”tv…hjwwy…uwƒZ]f9Mdbqˆ^m„KZqAPgQ`wš©ÀÐßö›ªÁM\sDSjz„}‡ š³›¥¾¹ÃÜÌÖ¾eoˆISlZd}q{”…¨ ªÃ»ÅÞ»ÅÞ®¸Ñhp‡$; ,KRn‘š·ºÃ⨳Ós€£|ˆ®¢°×£²Ý‹šÅ„•Á‚“¿t…³o~§gw‘^m‚ap…fuŠet‹ixp~˜t‚œhv‘jx•hu•jw—vƒ¥‚±‚±zˆ«fzŸDZ2Hog}¤ž´Û¦¼ã™¯Ö•¼ƒ™ÀxŽµs‰°vŒ³}“º…›Â{‘¸fyšbs‡`pZgxRbrP_tPauSc|VgThƒ?Tqau–š±Ñ†œÁ7Os)?fRqŸu¢Ý{®ïy¬îp£åmŸäkâi›âmŸæmŸèmŸèlélékœéj›èišéišéc‘ßd’àf”âh–äj˜ælšèm›énœêf”âg•ãf”âd’àe“ái—åh–ägßiŠÙkˆØh‡Ùd‡Øa‡Ø^‡×\‡ÖZˆÕi˜àe’ÖBn­(RŒ2Y7[*L|)Gkaw…¢¦¯³¢´¸•§«”¦ªž°´›­±›­±˜ª®”¦ª¡¥‹¡‰›Ÿ‰›Ÿ‡šžŽ£¤¥£’¨¦–¬ª™¯­˜®¬”ª¨‘§¥§½»›±¯“©§¥££¡Œ¢ ˆžœ~“–„š¨‹ ³”©¼²Å¦»Î­ÂÕ°ÅØ°ÅØ£¸Ë¨½Ð®ÃÖ°Åت¿Òž³Æ¤·†œ©s‹r‹‡p‰†m†‚i‚f{c|yazvm†ƒ{”‹¤¡©¥ˆ¡ž|•‘tŠq‰¸ÍàÄØóÃ×òÃ×òÖêÿã÷ÿäøÿæúÿáõÿßóÿßóÿÉÝø©½Ø¥¹Ô¦ºÕ‘©Åj‡§bƒ¤Z{žRs–Op“Oo•Rr˜UuœYy¢Zz£\{§^}©a€®c‚°e„³e…¶g‹½eÀhÁgÂjÃhÃjÃhÃOt¨S{®W|°Lt§Afš9a”?d˜Cj¡n—×k–Úi”Øg’Öf‘ÕeÔdÓdÓ^‰Í_ŠÎ\‡ËW‚ÆVÅZ…É\‡Ë\…Å]…ÀeŽÄ_ˆ¾Lu­Fo§Rzµ[ƒ¾Y¾a‰Ç]…ÃZÂY€ÁW~ÁT{¾T{ÀW~Ã[ƒË^†Î]‚É\ÃfˆÈt’Ði†¾Un¤!7h5Hs>Mt1>a#.N%.Ka™<_—;^–>a™Fi¡Mp¨Mp¨Lo§Jm¥Il¤Fi¡Eh CfžDe˜B]ˆB\@Z>X}X}?Y~?Y~A[€B\D^ƒE_„Ga†Ga„B\}A\zA\z@[y?Zx>Yw>Yw=Xv@[y@[y?Zx=Xv;Vt:Us9Tr8Sq:Ur;VsXy=Wz=U{:K35B+-:%'4$&302?79FCERPR_[]jbdqbdq`bqdew]^rcdx{|‘£ŽŸ{}Œkmzrt€y{‡_bk8;D69@QT[gjonr}iq„Yc|eoˆq{”x‚›r|•[e~Zd}u˜‚Œ¥– ¹ÁËä¸ÂÛLVo6HRku˜€Š£Ž˜±~ˆ¡T^wFPi`jƒyƒœz„†©­·Ð­·Ðƒ¦BLe1;Tz†žÄÐèÔãúÉØ¬=Lc.=TGVmXg~\k‚N]tHWn‰˜¯ÎÝô£²ÉUd{ETkx‚›‰¢š³§ÀÁËäÎØñ‘›´WazLVobl…x‚›‘›´­·Ð¼Æßµ¿Ø£­Æfm‡&@3V]y¦ÃºÃ⣮Îvƒ¦™¿«¹à£²Ý†”Á}Ž¼{Œºo°l{¤gw‘^m€Yh{]l_nƒjy}‹¥„’¬m{–lz•jx•hv“ly™rŸmzœ`n‘@RvEY~VjŠžÃ¢¶Û‘¥Ê‡›À|µ€”¹|µvŠ¯zŽ³•ºs‡¬`t™]pcr…aoz`lz^ly]j{YiyVg{PbxWiK_xYlŠo„¡^r“7Nn>Ru]z¤j—Òp£åp¢çi›àg™àg™àf˜ákækœèkœèj›èišçh™èh™èg—ég˜çaÝbÞe“áh–äk™çnœêqŸír înœêm›éh–äc‘ßf”âm›énœêl•äi‰Ôj‡Óg‡Ôc‡Ó`…Ó\…ÔZ…ÓY…Ð`ŒÕcÔP|½Yw>Yw=Xv?Zx>Yw=XvW€=V;T}:S|9R{7Py7Py7Py7Py8Qz8Qz8Qz9Rz8Uu8Us:Tu9Sv9Qw8Pv9Ox8Nw8Ku8Lq7Im2Ee*;U0F$8 /#& ,&(413@<>KEGVKM\XYm^_sgh}rsˆzz’ss‹YYq@BY`bwty‰Ž¢†šUZn+0D*/CAFZKPdCH\>CWGL`_dxuzŽ{€”v{vvwwttŒkl€Y[jACO)+7'*-636?IKXgix‰Šž¥¦»  º…†›bcu[]jRTaHJW=?L24A*,9%'424A<>KKMZ[]jjlyrtnp}egv`as\]qfg{‚–“”¦ŽŸ}Žrttv‚z|ˆZ]f25>7:AY\cruz~‚ck~T^wXb{eoˆq{”mwZd}R\uhr‹ƒ¦ ªÃ¹Ãܞ¨ÁAKd68B[v€™š³¡«Äš³bl…:D]FPis}–z„‘›´¾Èá½Çà‚Œ¥9C\3=V{‡Ÿ×ãûÖåü»Êၐ§HWn4CZFUlbqˆhwŽ\k‚GVm€¦ÌÛò§¶Í\k‚IXou˜ƒ¦Ž˜±Ÿ©ÂÇÑêËÕ­LVoPZsjt€Š£ž¨Áµ¿Ø´¾×§±Ê– ¹ry“6=W 'C]d§°Ï¹Â㜦ɁŽ±” È¡®Ø—¦Ñƒ‘¾{Œºwˆ¶p€±q€©fv^m€SbuVex]lq€•‘ ·š¨Âx†¡o}˜gu’`n‹[hˆ^k‹^kUd…g4a™?b˜DešFgšMmžKkšHh—Gg–Hh—KkšOožQq Zz©Uu¤OožNnPpŸQq OožKm:[9\’:]“;^”=`–AdšFiŸJm£Hk¡Hk¡Hk¡Hk¡Gj Gj Gj Ik›E`‹D^ƒA[€=W|:Ty8Rw8Rw8Rw?Y~?Y~A[€B\D^ƒE_„Ga†Ga„C]~B]{B]{A\z@[y@[y?Zx?Zx=Xv=XvKEGVJL[[\pabvkluv‹||”ss‹XXp=?VXZo|•’—«€…™RWk"';!58=QJOcLQeMRfPUi\aulq…uzŽuzŽppŠppˆmm…deySUd>@L)+7(03<9Ecfm{~ƒ…‰”ƒ‹ž|†ŸkuŽcm†cm†bl…\fKUnPZs|†Ÿ¯¹Ò¾Èፗ°7AZ4&0Iv€™§±Ê³½Ö˜¢»kuŽ2Pta—Cd™Ef™LlJj™Gg–Ff•Ff•Jj™MmœPpŸWw¦Tt£Qq OožNnNnMmœLnžDeš>a—9\’8[‘;^”@c™DgGj Gj Gj Gj Gj Hk¡Hk¡Hk¡JlœFaŒE_„A[€=W|9Sx7Qv6Pu6Pu?Y~?Y~A[€B\D^ƒE_„Ga†Ga„D^D_}C^|C^|B]{A\zA\z@[yMEGVJK]\]obcwlmwx}~“st‰WXm;=RMOd„—•š®{€“NSg$7049LGL`QViX]qX]p\auglpu‰sxŒlm‚klhi}_`rOQ`<>K)+7!*24@<>JNP]WYhTUgXYm_`u^_sXYkZ\iY[jQS`DFU68E*,;"$1;=LIKX\^mpr‚„“‰‹˜}Žln}kl~{|Ž—–¨¤¥·›š¬€‚‘yx†}Œ‡‡“vx„EEQ"%.AAKknw‚‚Š‡‹–ÂÊßÀÊ㙣¼t~—ak„^h^hDNg=G`t~—¹ÃÜÇÑꆐ©1;T2#MdQ]u^m„q}•n}”P\t|‹¢Ë×嘆Îeq‰Uayq{”—°Š”­¡«ÄÌÖïÃÍ憐©AKdV`yu˜—°±»ÔºÄݝ§ÀŒ–¯ƒ¦|ƒŸ_f‚?Fcry–ËÔóÇÐñŽ˜»ƒ±‹—½‚Ž¶ƒ‘¸Œ™Ã‡–Áyˆ³r€­q¤cq‹^n~S`sUdw]j}m|‘’ž´•¤¹~Š¢l{’htŽcqŒVa}M[vR]yQ_|O_€bu–~‘²v‰ªl pƒ¤k~Ÿq„¥’³…˜¹‘¤Å†™ºbu–L_€EXy@Ol_mz]gpaktcmwZgpXdpVdqL\kGWgBQdCThN_sQcyOayRd|TlY~µ_ŒÏaŽÒ\‹Ï^Ó_×b’Üg˜äf—äf—æe–åe”æd“åd“åc’äd‘äaŽácãe’åi–çmšëqžït¢ðw¢ñh“âk–åh“ábÛh“áržém™ädŠÓPo¯Ur®Xv´]|½`ƒÅd‰ÍfŽÓg’×hÕ\„ÉbˆÉkŽÎe…ÂSq­*GC)6Vçïÿóûÿìôÿëóÿëóÿäìÿåíÿéñÿéñÿèðÿèðÿçïÿçïÿçïÿäðÿßðúã÷þëþÿìÿÿêýÿçûÿèûÿéýÿèûÿåùÿïÿÿåùÿËÞåËßæä÷þíþÿìøÿëòÿíôÿóúÿóúÿïöÿîõÿòùÿÛâõÙàòÓÚíÉÐâ»ÂÕ«²Ä¤·•œ®”¤Œ”¡‹‘Ÿ‰‘žŠž‹“ •£˜¥™Ÿ­•ª˜ž¬¢ª·°¶Ä±¹Æ¨®¼›£°‚Š•~‡”œ§«µ¾§±»š¤­”ž¨š£‡‘›‹”tŠn{ƒjw€bow[hq\krM^eK^dI\bGZ`FY_EX_EX_EWaFXbFXdHZfI[iK]kL^lN`nM`oNewKevKevKevLfwPgyRi{Tk}MdvCZl;Rd;Pc;Pc;Pc@UhE_nPu}Qz~W€†eŽ’z£©’»¿¨Ñ׶ßãÐùÿÖÿÿÙÿÿÙÿÿÛÿÿßÿÿÞÿÿÚÿÿÜÿÿÛÿÿßÿÿÞÿÿÉíÿ±Õ÷±ÕùÁåÿ£Æ옻ᓶޕ¸à‘´Þ†©Ó„§Ñ‹­Ú“¸å£Ç÷§É÷–¶åŠ©×¬Ø–±Þ—¯ÛuŠµ@S{(7^4BgCOuQ[KSx-;`F^„Yuœa}¤IeŒ+Gn(Ai7PyAZƒd{¥`w¡Xm˜PeCXƒ1Fq7LySj–^x©Xt¤QmOkšPl›RmšSk—Qj“?VJbˆYq•by›ax˜[r’Wl‹TiˆRf‡Qe†Pd…Ob‚NaL_}M^zL]wJZsP`wVezTcxO\oIVgJWhMZjL]gL]eJ\fJ\hI\jF[lE[pC\rF`yHc€Ke†MiŽPn”Qn–Pp™Np Jp®HpµJr·Ks¸MuºNv»Ow¼Px½T|ÁT|ÁT|ÁT|ÁT|ÁT|ÁT|ÁT|ÁNv»Nv»Ov¹Ov¹Ov·PvµPvµRv´Hl¨Fi£Adœ>a—>_”@a–Dd—Gg˜Lk™Ji•Hg“Fe‘Gf’Ji•Nm™Po›TsŸTsŸSržQpœOnšMl˜Ml˜MlšPožFf—<\8X‰;[ŒAa’Ff—Hh™IišIišJj›Jj›KkœKkœLlMlšFb‰F`A[|Vx=UyU@WƒBYƒ?X€?Y~?Y~?Y~?Y~?Y~?Y~?Y~D^ƒD^ƒD^ƒD^ƒD^ƒD^ƒD^ƒD]…C\…A]…AZƒ>Z‚>W€;VDBOaamzx…ŽŸÌÒèèòÿØâû“¶lvpz“hr‹Waz&0I9C\€Š£³½Ö§ÀOYr8#-F`l†·¸Ãߓ¡»kv’=Ke$@:Hbˆ“¯¸Æ঱͏·~‰¥?Mg'2NwƒÛçÿçóÿ©³ÌR^v1;TLgÙäöðûÿðûÿâîþçóÿêöÿãïýäðüäðüäñúäñúäñúäñùäñùäñ÷äòóåõôé÷÷êúùé÷÷åõôáïïÝíìçõõäôóâððàðïãññæöõìúúñüþò÷ûóöûô÷þõøýöùÿöùþ÷úÿ÷úÿöùÿöùþöùÿõøýõøÿô÷üô÷þô÷üóöûô÷üøùþ÷úÿøùþóöûòóøîñöÜÝâÑÔÙÈÉε¸½µ¶»ÃÆË­®³qtylpy~…‘˜¢•ž¥“œ¥’›¢Ž˜¡Š•›Œ™¡†“™{Š‘q€…fw~]osSdkM^eRcmP`mK[hHXeFVcGWfIYhK[jN^mN^mO_nP`pP`pQaqQaqPbpUhvYlz]p~]p~[n|^p~eu„k{Šjw‡iv†gt„eqbn~_k{_hy\hvObiH`dBY_?W[?V\C[_I`fMeim„Š}•™§­µ¹žµ»˜°´§­Œ£«•ª»—¬¿œ±Æ µÊœ±Æ•ª¿•ª¿™®Ã«ÀÕ¡¶Ë¡µÍª¾Ö©½Õ ´ÌŸ³Ë§½ÔÓëÿØòÿàøÿâúÿßøÿÝóÿÛñÿÛñÿ·Ì᤹Ν¯Ãª¼Ð¿ÐäÃÔè¹ÊÞ¯ÁՇ ¶‘­Ã“¯Å|˜®ZvŒHbyMg~Zt‹g˜YsŠOi€Jd{?Yp0Ja-G`4Ngn‰§`}›OlŠIf„Jg…@[y)Da4Q:W6Ql]x“d~™Hb{E_xVp‰XpŒH\}FX|EW{M]VfŠYiTd†N^€Yi‹Xh‰ZiŠVe†JYz?NmDSrP_~FWsBVqDXsI\zGZx@Ut?TsEYzF]}H_McˆQgŒTl’Wo•Xp–VqžJk¡Hl¨JnªMq­Pt°Tx´W{·Y}¹Os¯Qu±Sw³UyµUyµTx´Rv²Ru¯Vv¯Vw­Yx¯TsªNm£Rq§Ts©Kj KkžJhœIg›JhšKi›JhšFd–D`KgŽKeˆHb…F`ƒHb…Lf‰QkŽTn‘Uo’Uo’Vp“Vp“Vp“Wq”Wq”Wq–Qh‘Sj”NeAX‚4Ku4KuAX‚OfOfOfOfOfNeNeNeNfŒ=XvA\wE`{Gb}E`{>Yt6Ql1Lg:Up;Vq=Xs?ZuB]xE`{Gb}Ic~H_~G^}E\{D[zBYx@Wv>Ut>Ut:Qp;Rq=Ts>Ut=Ts:Qp8On6NjVr>Vr>Uu>Uu>Uw>Uw>Uw>TyAY@Z@Z@Z?Y~?Y~?Y~?Y~D^ƒD^ƒE_„F`…F`…Ga†Hb‡Ha‰A]…@]‡@[†>[…>Y„=Z†=X‡?Q*+= !39:LJK]`asrs…ƒ„–ŒŸ‚”oq€jgx‹™·µÃÛÙ羼ʍ‹™ljxzx†€~Œ][iIGU?=K@>LNLZges‡ˆšÐÖììöÿÚäý– ¹r|•x‚›pz“\f*4M+5NkuŽ ªÃœ¦¿bl….8QEQip{—{‰¤›¶…“®|Š¥P^y&A*8SŠ˜³ÀÎ骸Ӈ•°t‚M[v8FauƒÜæÿåïÿ¤®ÇS]v7AZ@JcV`yak„hr‹]g€bl…‹•®»Åޑ›´hr‹nx‘€Š£Š”­›¥¾¼ÆßÁË䉓¬[e~]g€x‚›‹¤ˆ’«¡«ÄÁË䵿Ø}‡ Q[tmv“u~›„ª¥®Ë©²Ï–³‚‹¨ˆ¥u~›ox•lu’qz—y‚Ÿw€ir\f`kVasMXjR]ohs…€‹Œ—©˜ªgr„^i{]hz]hzVasVas`k}eq‡]m‡ct’l}›pŸl}›hy—pŸ{Œªz‹©q‚ wˆ¦~­bs‘6Ge0A_JZs\iy^ktYfoO\eFS\>KT4AJ+8A+8A8ENCPYHU^MZcTajYfoUe|Pf•Vs¯eƒÃlÐj×fÚg’ág”åc’äc‘æd‘æfägäiâjàiâb‹åY†áX…à^ŒäcæbŒâaŠÜb‹Û`‡ÖZÎ`†ÏfŒÓb‡Í_„È_„Èb‚¿TlœLcPg“\w¦b€²f‡¼i‰Âd‡Ág‰Æg‰Æi‡Ãh…¿rŠÆu‹ÄL_™#Q1?YÍÙéõÿÿîúÿçóÿéõÿàìøäñúèõýèõýèõûçôúçõøçõøçõöçõõæòðçóïçóïèôðèôðæòîåñíäðìâîêâîêâîêãïëæòîèôðë÷óïøõóõôôôôóóóòòòñññðððïïïîîîôôôóóóóóóòòòñññðððïïïïïï÷÷÷øøøúúúüüüüüüûûûùùùøøøûûû÷÷÷ôôôííííííùùùäää±²´âåìêî÷êñùàçïÏØßÀÉб¼Â§²¸‰–œ•w†‹k}atxWjnM`dFY_UetRbrN^nJZjHXhIYiL\lM]mM]mL\lL\lM]mN^nO_oP`pQapVht]oydv€hz„k|†p‹{‡“‚Žšwx‚Žz‚|„‘~„’€†”ƒ†•‡“‹”Œ’Œ’~‹‘|‰{ˆŽy†Œw„ŠUbhWdj]jpcpvantUbhERXSr>Sr>Sr=RqTi>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>Uu@X|?Y~?Y~?Y~?Y~?Y~?Y~?Y~D^ƒD^ƒE_„F`…F`…Ga†Hb‡Fb‰A]…@]‡?\†?\†>[‡=Z†V$:Q"6N 4L"4L(:R1@W5D[3?W)5M)A!9)*, !3,-?<=OLM_UVhabttu‡‹Œž‘£noUVh56H),=PSdpv†‚ˆ˜sy‰LRb%5/6PPQcdewqr„}~‡ˆš…†˜|~ebs~|Š¶´ÂéçõÉÇՏ›om{wuƒjhvYWeUSaGES31?1/=OM[ƒ„–ÓÙïí÷ÿÑÛô‹•®kuŽv€™u˜_i‚5?X)BT^w†©‘›´cm†,6OLXpw‚žp~™t‚¨‰—²\j…+F#1L‚«¼Ê媸ӂ«r€›cqŒSa|x† ÏÙôÖàù›¥¾WazAKdEOhV`yak„kuŽR\uXb{™²ÀÊ㌖¯`jƒlvƒ¦™£¼¡«Ä­·Ð­·Ðu˜OYrpz“†©Š”­š³ž¨Á±»Ôª´Íu˜KT9FO3@I,9B,9B9FOER[JW`MZcTaj[hq[k‚Mc’Ur¬f„ÂmÏkÖhØg’àg”åd“åd“åe’åg‘åhåjãkájãbŒâ[‡ÞZ†Ý^‹àbŒâbŒàcŒÜgŽÝ_„Ò[Ìb‡ÎiŽÔeˆÌ_‚Ä]€Â\|·Xp Qh’Tk—[v¥\z¬`¶d„½`ƒ½d†Ãg‰ÆjˆÄh…¿tŒÈyÈUh¢!2`!/IŸ«»óÿÿõÿÿéõÿíùÿæòþæóüðýÿðýÿïüÿîûÿíûþíûþìúûìúúïûùïúöíøôëöòéôðèóïèóïèóïêõñëöòëöòëöòëöòêõñéôðéòïïñðððððððññññññòòòòòòòòòóóóóóóòòòñññðððïïïïïïîîîíííîîîðððòòòóóóôôôóóóóóóúúúôôôóóóðððòòòþþþ÷÷÷ÙÚÜóöý÷ûÿùÿÿøÿÿöÿÿôýÿîùÿèóùÂÏÕ¸ÇÌ«º¿š¬°Š¡|“n…ex~ZjyWgwRbrN^nL\lM]mO_oP`pP`pO_oO_oP`pScsWgw\l|_o~Yku_ryexgzfwgx€o|…tŠz„Ž{…}…~†‘‡“‚ˆ”…‰•„Š–‡‘š‡”šŠ—š š ‹˜žˆ•›†“™{ˆŽt‡u‚ˆŒ’ƒ–x…‹gtz\iq\ju[iv[iv]kxYgtR`mQ_lUcpM[hIWdJXeP^kQ_lM[hN\iRbo>P\=Q\Ti>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>Uu>Vz=W|>X}>X}>X}>X}>X}>X}D^ƒD^ƒE_„F`…F`…Ga†Hb‡Fb‰B^†A^ˆ@]‡?\†>[‡>[‡=Y‰=Y‰?[>ZŒV&U3BY2>V(4L(> 6**-!"4-.@=>PLM_VWibcutu‡Ž¡Ž¡lmRSe();"3KN_hn~ylr‚JP`"(8#3:@PQWg_eulr‚lr‚bhxZ`p\brbhvfhwdfs\^kMO\=?L46C57D9;HIKXLN[QS`UWdXZgZ\i[]j\^kefxij|kl~ghzXYkBCU+,>0ABTYZlqr„}~…†˜Ž ŒŸ†ˆ—b_pjhv§¥³æäòÎÌڒžvt‚yw…fdr][i[YgGES'%3'@>L„…—Ûá÷í÷ÿÅÏè|†Ÿ`jƒpz“x‚›cm†#-F)?Ibv€™—°gqŠ*4MP\t}ˆ¤ªzˆ£~Œ§›¶iw’,:U*Em{–¥³Î ®Éˆ–±}‹¦o}˜Yg‚p~˜­·Ò¸Âۑ›´bl…MWpISlXb{eoˆmwOYrQ[t‡‘ª½Çà‘›´bl…bl…ƒ¦ª´Í­·Ðž¨Á– ¹dn‡HRk}‡ š³™²•Ÿ¸œ¦¿Ÿ©Â™£¼r|•?Ib[dœ¥ÂËÔñ ©Æ[d]fƒ{„¡qz—_h…^g„^g„aj‡en‹dmŠ]fƒV`{_j~]hzWbtVasbms~w‚”q|Žfqƒ^i{_j|cn€doit†lw‰gs‰k{•o€žyŠ¨’°®t…£l}›k|šhy—hy—ev”^oQb€BSq;Lj;KdO\lR_hMZcCPY:GP7DM4AJ1>G0=F:GPDQZIV_KXaR_h]jsbs‡ax¤Zw¯\z¸`‚Âf‹Ïk“Ûi•àf”âf“äe”äf“æh’äk‘äl‘âmál‘âc‹à^‹à]‡Ý]‡Û_‰ÛaŠÚfÜiŽÜa‡Ò^ƒÊeŠÐmÔgŠÌ_‚Â[}½Yx±YqŸTk•Xo›[v¥Yw©\}²b‚»^»Y{¸i‹Ès‘ÍpÇwËzÉ\o©2Cq*DYeuÐÜìõÿÿÓßíÕáíÔàìÂÏØÙæîÚçïÛèîÜéïÝëîßíðàîïâîîèòñéôðëöòîùõðû÷òýùóþúôÿûïúöîùõîùõïúöïúöïúöðû÷ñú÷ïñðððððððððððððððððððïïïíííîîîïïïðððñññòòòóóóôôôñññòòòóóóôôôôôôõõõõõõõõõòòòìììííííííìììõõõøøøìíïëîõêî÷êñùîõýóüÿøÿÿ÷ÿÿõÿÿàíóÕäéÅÔÙ±ÃǞ±µŒŸ£|“r…‹br_oYiyTdtQaqQaqRbrScsXhxWgwWgwZjzbr‚l|Œv†–|Œ›‹§¢©£ª‹ž¥’šwˆw„w„hr|hr|jr}jr}lr~lr~osmt~w‚ˆu‚ˆvƒ‰y†Œ~‹‘„‘—Š—š Œ’z‡Œ’Ž›¡”¡§Š—{ˆŽs€ˆn|‡iw„ftes€ao|[ivYgt\jwYgtXfsXfsZhuZhuYgtYgtYivI[gI]hJ^iJ^iI]hI]hH\gI]hH\gI]hK_jI]hDXcAU`CWbDZgMdrF`oIcrZtƒj„“sœw‘ {•¤Ž¨·ˆ¢±‰£²”®½¡»Ê©ÃÒ±ËÚ¸Òá´Íá¬ÇÚÇàöâýÿÞ÷ÿ×òÿàùÿàûÿäýÿáüÿäýÿéÿÿßøÿÂÝðÃÜòáûÿîÿÿìÿÿãöÿãöÿëþÿðÿÿðÿÿìÿÿãöÿãöÿÕèöºÍÛ¢µÃ–©·£±Š ­}“ |” w›q‰•o‡“m…‘bz†Skwiiig‹c{‡^v‚Xp|Rm‚jŠ°i‹¸jŒºhŠ·d†´]¬Vx¦Qs Vx¦Uw¤Uw¥Wy¦Z|ª^€­c…³gˆ³b‚©[yŸYwWu›Sq—Tr˜Qo•Ge‹HfŒGe‹HfŒLjPn”Qo•Nl’MjŒJc‚Nf‚Qh‡OgƒI`F^zG^}Jb~Pg†Ph„Pg†OgƒNe„Nf‚MdƒMdƒL`I]~I]€Ma‚QeˆNbƒBVy8LmFZ}G[|G[~H\}H\I]~I]€H_~E_xD`vEawEawB^t>Zp:Vl7Si:Vl;WmZp@\rB^tC_uE_xD\xEZyDYxCXwBWvAVuAVu@UtAVu?Ts=Rq:On9Nm:OnTi>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>UuX}>X}D^ƒD^ƒE_„F`…F`…Ga†Hb‡Fb‰C_‡A^ˆA^ˆ@]‡?\ˆ>[‡>ZŠ>ZŠA]@\Ž?Z=X;V:UŒ8R‹8Rƒ*Dg*D_)A]&>X$9T 6N2K0I0H#5M- 6++-!"4./A>?QMN`VWiij|uvˆ‡ˆš…†˜hi{PQc#$6-FIZ`fvou…ek{HN^$*:"(8?EUSYi_eulr‚nt„gm}agwciygm{gixfhu_anMO\9;H/1>24A9;HHJWJLYNP]SUbXZg[]j\^k[]jghzlmrs…op‚Z[m=>P)*<"#5CDV`as~‘¢—˜ªš›­“”¦ˆŠ™ZWhQO]ŒŠ˜ÔÒàÐÎܙ—¥|zˆusjhvdbp`^lIGU(&4$:8F€’Ûá÷éóÿ»ÅÞ{…žcm†pz“yƒœbl…'@(?Ibx‚›™²cm†)BCOg˜´¨¶Ñ”¢½¨Œšµ|Š¥AOj:]k†ž¹–¤¿‘Ÿº…“®esŽ?MhN\v~ˆ£”ž·—°u˜WazHRk\foy’oy’S]vOYrz„´¾×™£¼kuŽXb{‹¤³½ÖºÄݗ¡ºƒ¦Zd}FPi‹¤›¥¾Ž˜±—°’œµ’œµš³z„V`yjsµ¾ÛØáþŽ—´GPm`i†€‰¦nw”Xa~^g„cl‰cl‰^g„Zc€Zc€\fdoƒ_j|XcuXcuep‚p{mxŠcn€fqƒfqƒit†do[fxcn€u€’|ˆžsƒrƒ¡yŠ¨€‘¯®rƒ¡du“]nŒ]nŒ\m‹Xi‡Sd‚O`~GXv;Lj1AZIVfN[dLYbBOX;HQ9FO8EN6CL5BK:GP@MVDQZIV_Q^g`mvhy{’¼d¶QnªQp°a„Æn”Ûm—ád’ßf”âf”âh’äh“âk‘âl‘ám‘ßl‘áfádŽàaŠÜ]†Ö\…ÔaˆÕeŒ×iØgŒÓd‡ËjÏp’ÒhŠÉ^€½[{¸Vu¬Kc‘MdŽUl˜Wr¡Us¥Z{°cƒ¼`ƒ½VxµjŒÉw•Ñw”΁™Õƒ™Òat®8Iw(B#/?” °ãïÿÅÑß¹ÅÑ®ºÆ›¨±›¨°œ©±ž«± ­³¢°³¤²µ¦´µ©µµ´¾½¸Á¾½ÆÃÁÊÇÄÍÊÅÎËÃÌÉÂËÈÜåâÜåâÜåâßèåäíêëôñòûøøþüùûúùùùùùùùùùøøøøøøøøøøøøùùùøøøöööôôôòòòïïïîîîíííòòòñññðððïïïïïïîîîîîîîîîééééééðððôôôðððïïïïïïëìîöùÿïóüçîöçîöêóúëôûèóùçòøãðöÙèíËÚß¹ËϨ»¿˜«¯Š¡”šl|‹hxˆbr‚[k{VfvTdtTdtTdt\l|[k{\l|br‚o€ ‘¡±›«ºÏâéØëñâõûæùÿåöýäõüèõýëøÿí÷ÿêôýåî÷Þçð×ÞèÐ×áÌÐÛÇÎؔŸ¥š „‘—|‰w„Šw„Šx…‹z‡P]cVcierxt‡vƒ‰kx~`ms\iqp~‰hx…eu‚fvƒfvƒeu‚fvƒk{ˆ_o|`p}`p}^n{]mz^n{^n{\lyJ\hJ^iL`kMalL`kH\gCWb?S^OcnNbmL`kK_jL`kMalK_jF\iI`nG^lAXfZp;Wm9Uk6Rh5Qg:Vl;WmTi>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>Uu9Qu8Rw9Sx:Ty;UzZŠB^B^A\‘?Z>Y=XZ#8U4O1L0I.F"4L-Ha_i‚{…žnx‘T^wPZsx‚›¯¹Ò™£¼nx‘Waz‹¤±»ÔÄÎ睧Àz„T^wGQj‰¢•Ÿ¸‘›´‘›´Š”­}‡ €Š£ˆ’«…¨£¬ÉØáþ×àý}†£KTqkt‘y‚ŸdmŠW`}aj‡irfoŒZc€T]zXa~`j…|‡›gr„T_qXcuit†q|ŽfqƒWbtbmit†mxŠal~S^pal~‚Ÿ—£¹v† pŸq‚ wˆ¦wˆ¦l}›]nŒSd‚RcM^|K\zPaSd‚K\z7Hf(8QBO_JW`KXaDQZZp;Wm9Uk7Si6Rh6Rh;Wm;WmZp?[q?[qA[r@XrBWrBWtAVqAVsAVqAVsAVq@Ur?To=RoUg>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>Uu6Nr6Pu7Qv8Rw:Ty;UzY>X‘>X‹3Lt1Ji-Dd'>]$9X4Q1O1L.H#5M-@MBDQJLYSUbY[hZ\iY[hfgyop‚ƒ„–…†˜]^p*+= 245GLM_bcu}~“”¦¥¦¸©ª¼™š¬ƒ…”YVg.,:JHV•“¡ÄÂСŸ­yw…][ijhvom{nlzWUc>2Om@QoQb€Zk‰L]{1B` 0I:GWDQZIV_DQZ=JS;HQ:GP9FO4AJ1>G6CLBOXN[dUbk]jsap…o…®f€³a|³_~·c…ÄgŒÐgÕd×j–áj–ák”ãk•án”ßo“Ýq“Ýq“Ýq—âq—âjÛ]ƒÌX}Ä]‚Èf‰Íi‹ËmÎg‡ÄhˆÃj‰Â_~µWu«Sq§Qm?V‚Ja‹Ypœ[v¥Us¥Xy®_¸Z}·i‹Èu—Ôu“Ïv“͐¨ä”ªãh{µ8Iw'A 0HTdìøÿõÿÿñýÿäðüèõþëøÿê÷ÿèõûåòøáïòÞìïÜêëÜèèÎ×ÖÍÓÑÉÏÍÁÇÅ·½»­³±¤ª¨Ÿ¥£”š˜’˜––”•“•“‘—•”š˜–š™˜š™šššœœœžžž   ¢¢¢£££¤¤¤ÀÀÀÃÃÃÉÉÉÐÐÐÙÙÙàààæææééé÷÷÷öööôôôòòòòòòóóóõõõöööõõõûûûýýýúúúööööööúúúþÿÿüÿÿõùÿïöþòùÿóüÿòûÿóþÿ÷ÿÿëøþâñö×æëÈÚÞ»ÎÒ¯ÂÆ£¶º›®´‘ {‹›q‘gw‡]m}WgwTdtRbrVfvTdtUeu^n~q‘‹›«¥µÅµÅÔÊÝäÔçëâõùèûÿèúþå÷ûçôúèõûçòøçòøéòùêóúíôüîõýñõþïöþçòøæóùçôúèõûéöüëøþìùÿìùÿÂÏÕ×äêê÷ýïüÿïüÿïüÿëøþâñøÉÛå¼ÐÛ³ÅѯÃίÁÍ­Á̯ÁͱÅФ¶Â¦ºÅŸ±½‹Ÿª“Ÿ|›u‡“h|‡^r}YmxUitSgrThsThsSgrPdoI]hL`kL`kL`kRfqYmxYmxThsYo|^t]s€VlyTjwWmzWmzRhuNdqSivVlyTjwQgtPfsRhuUkxQdsWjyXkzTgvUhw]pZm|M`o;N]>Q`ATcGZiK^mDWf:M\9LZH\cG\aH]bLafQfkQfkK`eEZ_OdiUjo`uzl†r‡Œt‰Žv‹x”o‡‹n‡‹r‹{”˜‚›Ÿ†Ÿ£‰¢¦Œ¥©¦ª©­—°´Ÿ¸¼§ÀÄ­ÆʲËϱÍسÓèµ×ò¼ÞúÅçÿÏñÿ×ùÿÜþÿàÿÿÞÿÿÜþÿÙûÿÕ÷ÿÏñÿÉëÿÄæÿÁãþÂâù½ÝòÀàõÀàõ´Ôé­Íâ°Ðå²Ò烣¸‚¢·¡¶ƒ£¸„¤¹ƒ£¸Ÿ´}œ±i™dxYm†SgPd}L`xG[tBVnBVoAUm@Tm>Rj=Qj;Og:Ng9MfCXsDYtEZwG\wI^{La|Nc€OdG\yH]xI^{J_zLa~Nc~OdNf€Jd{FbxB^t?[qZp>Zp?Yp>Vn@VnAVqAWoAVqAWoAVqAWo=Rm>Tl>Sn>Tl=RmUg>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>Uu4Lp4Ns5Ot7Qv9Sx;UzX‘?YŒ8Qz5Mq0Fk)@b%9Z 5T2P2M.H$6N.=T4CZ4@V,8N!.A':--/#$6/0B@ASOPbXYkqr„€“lmghzQRd;OQWg\brV\lDJZ*0@+1AHN^gm}kqnt„msƒjp€hn~iokqsu„tvƒjlyOQ^02?!.#%2.0=8:G9;H>@MGIVQS`XZgY[hXZgefxpqƒ‡ˆšŒŸ]^p#$6/:;MPQc`astu‡Š‹Ÿ ²¨©»˜™«ƒ’c`q+)742@yw…¸¶Äžœªxv„ZXfkiwsqqo}VTb>\,E4AQ@MVGT]DQZ=JS:GP9FO8EN0=F-:C3@IER[S`iXenZgpZi|Zm•d{­p‹ÀqÇi‹Èa‡Æb‹ÍeÕk•ßk•ßk•ßm”ßo“Ýq“Ûr’Ûr“Úušáušàm’Ø`ƒÇX{½^€Àe‡Æi‰ÆnŽÇf…¼f„ºeƒ·\xªTp QmNi˜MdŽYpšh«e€¯Yw©Xy®[{´Sv°lŽË{Ú{™Õx•ÏŒ¤à¥Þh{µ?P~+9S'7AM]õÿÿðüÿë÷ÿêöÿÜéòáîöãðøåòøèõûìúýïýÿòÿÿõÿÿñúùóù÷òøöòøöòøöóù÷óù÷ôúøóù÷ôúøôúøóù÷óù÷òøöñ÷õñõôüþý÷÷÷íííàààÑÑÑÄÄĺºº´´´šššššš›››œœœžžžŸŸŸ   ¼¼¼»»»¹¹¹¹¹¹ººº¼¼¼¿¿¿ÁÁÁÛÛÛèèèññññññðððîîîíííìíïèëòâæïßæîäëóæïöæïöêõûòýÿÚçíÓâçÊÙÞÀÒÖ¸ËϯÂƧº¾¡´º‡—¦€ v†–iy‰_oWgwScsQaqVfvTdtTdt]m}p€‹›«¦¶Æ·ÇÔËÞäÖéíãöúêýÿéûÿå÷ûåòøæóùéôúéôúêóúêóúëòúëòúíñúëòúëöüèõûæóùåòøåòøæóùçôúèõûÎÛááîôíúÿéöüçôúéöüâïõÔãêÊÜæÀÔß»ÏÚ¿ÓÞÇÛæÎâíÕéôÜðûáõÿèüÿã÷ÿÕéôÏãîÓçòÎâíÃ×âÆÚåÀÔß·ËÖ°ÄϪ¾É£·Â›¯º”¨³‘¥°‹Ÿª‚–¡|›“ž‚–¡y˜j~‰tŠ•l‚aw„YozTjwRhsRhuRhsYo|WmxRhuOepOerSitVlyYmxgy‡cu_o~`r~hx‡gy…aq€^p|`p]o{YixTfrWgvZlxYixQcoXlwWkvWkvVjuThsPdoJ^iG[fWkvRfqQepThsRfqNbmPdoUkvdz…SkuIakLdnSkuVnxYq{^v€H`jIakKcmOgqVnx^v€e}‡h‚h‡›iŒ¢r’©yœ²†¦½²È™¹Ðœ¿Õ«Ëâ«Îä¯Ïæ°Óé²Òé¯Òè¯Ïæ­ÍâµÖé³ÔåºÛî½Þï²Óæ¬ÍÞ´ÕèºÛì§ÈÛ§ÈÙ©ÊÝ­Îß²Óæ´Õæ³Ôç³Ð◭ŠŸ´wŒ¡j”bwŒZo„OdyF[p?Ti>Sh=Rg;Pe9Nc7La6K`5IaBXpF\tI_wI_wG]uH^vLbzOe}H^vI_wKayLbzNd|Pf~Rh€Ph€PjLh~HdzC_uA]sA]sB^tC_u;Wm;WmVn@Vn@Vn@VnAWoAWoAWoAWoUg>Ue>Ug>Ug>Ti>Ti>Tk>Tk@Vn@Vn@Ur@Ur@Ut@Ut@Ut>Uu3Ko3Mr5Ot6Pu8Rw:TyW#-FPZswšjtjtœ´æñÿãñÿºÈ㕣¾‚«x†¡esŽ8Fa9Gbx†¡±¿Ú•£¾iw’o}˜t‚hvHRmŒ–¯¿É☢»GQj2_r>]q?`sIh|Hi|Kj~Pq„Xw‹]~‘`“_€“r“¤r“¢q’£v—¦|®x™¨w˜©€¡°‰ª»Œ­¼°Á“´Ã˜¹Ê ÁШÉÚ±Îޕ¬¾•§»Ÿ³“§s…™dvŠXj~Qcw7I]7I]6H\5G[5G[4FZ3EY1FY3I^4Ja7Md:Pg=Sj@VmBXoCYpBXoE[rKaxRhXn…]sŠ`v_xŽ^x\xŽZvŒXtŠVrˆTp†So…Rn„XtŠUq‡OkKg}Ie{Jf|Lh~Oi€IbxH^uDZqAWnAWnCYpF\sH^u=Sj@VmDZqH^uLbyLbyI_vG]rF]oE\lD[mBYkAWl?Uj>Tk=SjAWo?Um;Pm8Mj7Lk8Ml;Po;Rr7Os6Pu8Rw9Sx;UzX}E_„E_„E_„E_„E_„E_„E_„C_†=Y[‡?\ˆ@\Œ@\ŒEa“Ea“D_”C^“C^•B]”A[”B[‘C[‰BYƒ>S~9Ox4Go/Ch+>_)<\):V+U.:P(5H"/B+?Q45G01C.1B47H:@PBHX@FV28H*0@28H@FV_eukqu{‹pv†bhxZ`p`fvkqz|‹€‚y{ˆPR_ -#%2:Ha",EAKdhr‹u˜isŒhr‹¢¬Å¹Ã܂Œ¥EOhV`y– ¹ÏÙòèòÿ§±Êq{”V`yfp‰}‡ ‹•®ž¨Á€Š£NXqjt§À­·ÐÃÍæéòÿÙâÿ¤­Ê~‡¤y‚Ÿpy–aj‡W`}MVsLUrJSpENk=Fc;DaHQnXb}v•al~S^pMXjHSeP[mmxŠˆ“¥y„–bmCN`LWit‘}ˆšfqƒXdzbrŒ_pŽYjˆars„¢t…£`qN_}EVtFWuIZxJ[yEVt;Lj2Ca.>W2?O8EN>KTCPYBOX=JS7DM2?H.;D0=F4AJ8EN=JSANWDQZBQdBTxLcd|¬|˜Êƒ¢Ùu˜ÒjÏn•Ø_‡ÌgÔm“Úp•Ûr”ÛnÔkŠÍl‹Ìs’Òv–Ów—Ôt”ÏmŒÅc‚¹]{±Yw©]y©`{ªsŽ»ƒ›Çoˆ±Ul•PgVm–`vŸ_v d{§f°b€²\}²^~·b…¿v˜Õr”ÑrÌ}šÔ}•Ñq‡Àt‡Á|»zˆ¢`l|‹›àìüíùÿîúÿäðüìùÿÝêòÝêòÞëñßìòàîñáïòâðñäððìòòêîíéëêçëêìîíìðïîðïìðïñóòïóòñóòîòñïñðìðïíïîíïî÷÷÷öööõõõóóóðððîîîíííìììïïïðððòòòóóóõõõ÷÷÷ùùùùùùööö÷÷÷÷÷÷÷÷÷øøøøøøùùùùùùýýý÷÷÷øøøùùùôôôôôôöööïðòÛÞåÔØáÇÎÖ¹ÀÈ©²¹›¤«›¡Š•›|‰|‹€”…—›ŒŸ£‘¤¨‘¤¨£©„”£Ÿxˆ˜q‘jzŠaqVfvO_oP`pP`pUeu`p€m}}’¢²£³À¹ÌÒÄØÙÐäåÚîïäöøìþÿïýÿëùüôÿÿóþÿóüÿòûÿóúÿòùÿôùÿòùÿïúÿíúÿíúÿíúÿìùÿìùÿìùÿìùÿïüÿîûÿíúÿê÷ýèõûåòøãðöáð÷ÍáêÇÝèÃÙäÄÚåÊàëÐæñÔêõÕëöÌâíÉßêÇÝèÇÝèÉßêÉßêÆÜçÄÚåÃ×âÃ×âÃ×âÃ×âÃ×âÃ×âÃ×âÃ×â¼ÐÛ¼ÐÛÂÖáËßêÊÞéÄØãÅÙäËßêçûÿçûÿçùÿåùÿå÷ÿäøÿäöÿã÷ÿìþÿéýÿæøÿâöÿãõÿäøÿèúÿëýÿÞìõÎÛäÌÙâÓàéÎÛäÄÑÚ¾ËÔ¹Æό™¢‡”}Š“q~‡fs|]jsWdmS`pN^uN_yN_{N_yO`|O`zO`|O`zUf‚Sd~RcTeWh„Yj„Xi…ThRfRh€Rg‚SiTi„UkƒUj…Vl„Nc~LbzJ_zJ`xK`{Mc{ShƒVn†HewIhzKj|Ji{HgyHgyJi{Ml~Kj|IhzHgyJi{NmOn€NmMl~QrRs‚Pq€StƒYz‰Uv…Stƒ[|‹p‘ q’¡r“¢t•¤v—¦{œ«€¡°†£³…š«„—¦~¡t‡–izŒ\o~SdvL_n8I[7JY7HZ5HW6GY4GV4EW3FW2GZ2I[4J_7N`:PeTi?VhPf{Sj|Zp…axŠg}’lƒ•o…šn‡›i„™i…›i…›j†œk‡lˆžm‰ŸnŠ pŒ¢lˆže—^zYu‹Ws‰Ws‰Xr‰Wp†Si€KaxE[rAWnBXoF\sI_vG]tKaxQg~VlƒXn…Xn…Wm„Wm‚NewMdtKbtH_qE[pBXm@Vm?UlBXp?Um;Pm8Mj7Lk9NmX}?Y~@ZE_„E_„E_„E_„E_„E_„E_„C_†=Y[…?\ˆ?\ˆ@\Œ@\ŒEa“Ea“D_”C^“C^•B]”A[”B[‘D[BX‡?T:Oz6Is0Ck-?c+>_*;Y+?QKL^[\nqr„„…—uvˆjk}XYkFGY9:L12D./A-0A03D4:J;AQ:@P.4D&,<-3C:@PW]mciynt„lr‚`fvW]mX^n]cq{}Œ‰‹˜|~‹KMZ+ "$1?ANFHUUWdZ\iXZg[]j\^kZ\i\^k]^p`asop‚pqƒQRd,-?!"4'(:EFXSTfdewst†~‘ƒ„–}~su„gdu[Yg][iom{}{‰|zˆjhvVTbqo}vt‚ususqo}A?M#!/KL^­³ÉÈÒ뜦¿nx‘gqŠ}‡ †©’œµisŒLgVd~Š”¯ÏÙòÑÛôƒ¦:D]#<*4MU_x‰¢r|•s}–ª´Í·ÁÚ~ˆ¡FPiYc|˜¢»âìÿñûÿœ¦¿V`yNXqt~—~ˆ¡‹¤œ¦¿ˆ’«^hwšª´Í¹ÃÜÀÊãÔÝúÃÌ飬ɇ­ˆ¥nw”OXuGPmDMjGPmIRoDMjI[do€‹bmGRdQ]sZj„ct’iz˜arZk‰`q[lŠHYwM^|\m‹^oM^|KTSr>Uu;Sw;UzX}?Y~A[€B\C]‚D^ƒD^ƒD^ƒD^ƒD^ƒD^ƒD^ƒB^…>Z‚=Z„>[…>[…?\ˆ@]‰A]A]Ea“Ea“D_”C^“C^•B]”A[”B[“D[CY‹@T†;P8Kv2Eo/Ag-?c+;\,=Y.PJK]YZlop‚‚ƒ•pqƒefxTUgDEW9:L12D-.@*->-0A/5E5;K5;K-3C&,<,2B7=MPVf[aqfl|gm}^dtTZjOUeOUcsu„‹šƒPR_"$1!#0@BOQS`cerhjw`bo\^k[]jY[h\^k\]oZ[m]^p[\nJK]45G+,>-.@BCUQRdbcumn€st†wxŠuvˆprdar`^lecqqo}yw…usfdrWUckiwmkytr€}‹{y‡CAO&89K¬²ÈÕßø«µÎeoˆZd}…¨•Ÿ¸›¥¾hr‹=G`>Hacm†^hQ[t…¨Óß÷îùÿðþÿÜêÿ’ »`n‰esŽt‚‡•°\j…1?Zbp‹¼Êå¶ÄßWe€&4OJXršµÙãüÒÜõ€Š£@Jc#<)BPZs…¨{…ž‹¤°ºÓ¬¶Ïnx‘?IbV`y˜¢»éóÿîøÿ’œµ@JcDNgwšz„ƒ¦œ¦¿’œµv€™ˆ’«±»Ô¾Èá¼ÆߺÃੲϞ§ÄŒ•²‚‹¨kt‘BKhKT?LUDQZBOX@MV?LUANWER[JW`LYjTd…^tf}©qŒ»ÏyšÐlÊn”Òc‰Êb‰Ên“×v™Ûo‘ÑpÏrÐk‰ÅnÄs‘Çw•Éw“Åq¿j…´d®c{§Un—Wo•f~¤wŽ°v¯m¢`u”Rf‡QgŽSj”Ypœ]x§^|®_€µb‚»b…¿c…ÂkÊÙ|™Ó™Õ}“ÌPc/@n”¢¼¯»Ë®ºÊ²¾Î´ÀÎÂÎÚ¼ÈÔÅÒÛÞëóßìôáîôåòøèöùëùüîüýòüýïóôõõõøøøøøø÷÷÷ööö÷÷÷ùùùüüüüüüûûûùùùøøø÷÷÷öööõõõïïïïïïïïïïïïîîîîîîîîîîîîòòòòòòòòòòòòòòòòòòññññññíííííííííîîîîîîîîîïïïïïïîîîïïïñññòòòðððñññôôôôõ÷òõüñõþïöþîõýíöýíöýëöüëöüçôúåôùäóøàòöÜïó×êîÓæêÐã魽̦¶ÆšªºŒœ¬~Žžn~Ž_oVfvRbrO_oUeueu…r‚’|ŒœŠšª™©¶ŒŸ£¤£’¦¥£¢¡¡¡¡žŠ˜™˜š‘œž™£¥£­¯±¹¼½ÅÈÉÎÒÌÔ×ÃÎÒÁÎÔÂÏÕÃÐÖÄÑ×ÅÒØÅÒØÆÓÙ°½Ã©¶¼ ­³˜¥«–£©›¨®¢¯µ¤µ¼§¾Æ©ÁË°ÈÒºÒÜÇßéÒêôÛóýàøÿçÿÿäüÿáùÿáùÿäüÿæþÿæþÿåýÿÚðûÚîùÖêõÑåðÌàëÇÛæÄØãÂÖáÄØãÈÜçÌàëÍáìÎâíÐäïÐäïÐâìØéñÙêòÚëóÛìôÜíõÝîöÞï÷Þï÷ÝîöÜíõÛìôÛìôÜíõßðøâóûæõüêõûäíòäëóêóøîõýêóøêñùéò÷îõýî÷üð÷ÿñúÿôûÿöÿÿùÿÿ÷ÿÿòÿÿïÿÿîÿÿìýÿêûÿèùÿçøÿæ÷ÿäõÿàñÿÚëÿÖçÿÓäþÏàúÉÚôÃ×ð¸Ìå·Íå¶ÌäµËã´Êâ´Êâ³Éá³Éᔪ£»ˆž¶„š²u‹£dz’cy‘l…›i„—i†–i†–i†–h…•h…•h…•i†–kˆ˜h…•e‚’e‚’e‚’d‘a~Ž^{‹g‡–h‰˜e†•c„“gˆ—c„“`d…”]~Yz‰Vw†Vw†Yz‰Z{ŠXyˆXuƒZm{ZjwVfuRboL\kFVcBRa@P]9IX9IV8HW7GT7GV6FS5ET4FT/ES/FT0GW2IW4K[6M[7N^8O]OfvSjxYp€`w…g~Žk‚n…•nˆ™j…šlˆžrŽ¤z–¬ƒŸµ‹§½‘­Ã•±Ç¬Â‹§½„ ¶|˜®u‘§o‹¡lˆžl‡œp‰k–`v‹Si~J`uE[pDZoDZoawŒj€•tŠŸy¤w¢w¢{‘¦–¨uŒœr‰™n…—g~`v‹Zp…Uk‚RhH^vE[sAVs>Sp=Rq?TsBWvBYy>Vz>X}?Y~@ZB\C]‚E_„E_„C]‚C]‚C]‚C]‚C]‚C]‚C]‚A]„?[ƒ>[…>[…?\†@]‰A^ŠA]B^ŽEa“Ea“D_”C^“C^•B]”A[”B[“E\’DYŽAUˆNMScV\l_eubhx]csSYiIO_DJXcetƒ…’†ˆ•_an02?% "/=?LY[hoq~uw„giv]_lY[hY[h\^k[\nVWiQRdNOaGHZ:;M23E34FDEWRSeabtij|noqr„noikz]Zka_mfdrnlzusqo}caoWUcdbpfdrqo}~|Šwuƒ>GdHQnGPmGPmHQnFOlFOlOXu[e€[fzXcuBM_0;M6ASDOaYdvq|ŽU`rKTCPYFS\O\eN[dMZcMZcMZcMZcN[dN[lTd…Zm•\qœc{©rÂyšÏu˜ÐsšÕfŒËfŒËr•×wšÚnÐnÍpŽÌi†ÀpŽÂsÁs¿t¾r¼n‰´j‚®h¨\tš[r”`w™g|›f{šfy—[oŠI\|Ma†OfUl˜Zu¤_}¯d…ºhˆÁf‰Ã_¾lŽË„¢Þ€×}•Ñq‡À`->\-;U*9N'4G"/@+;)9!"4$%7,-?78JABTOPbdewvw‰cdvZ[mMN`DEW>?Q89K01C),=,/@+1A/5E4:J4:J28H7=M?EUNTdSYi[aq_eu]csSYiFL\=CQQSbtvƒŠŒ™rtACP,"$1;=J]_lxz‡€‚mo|]_lWYfXZg]_l[\nUVhMN`KL^IJ\<=O56H:;MIJ\STf^_qfgylmnofgy]_nOL]][ifdrjhvnlzigu_]k[Ygcaofdrqo}xv„kiw75C!12DˆŽ¤ÛåþÓÝöu˜ISlv€™– ¹³½ÖlvBLe>HaLVoNXqyƒœÆÐéïûÿñüÿâðÿàîÿ­»ÖYg‚HVqsœ—¥À‰—²Tb}O]xŽœ·§µÐWe€#1LZh‚›¥ÀÅÏè½ÇàŒ–¯Zd}'1J#-FWaz„Ž§‰“¬£­ÆÁË䍗°BLe-7PYc|©³ÌåïÿØâûˆ’«FPiXb{v€™{…ž‰“¬’œµ“¶’œµ“¶§±Ê¸ÂÛ«µÎ¢«È— ½’›¸Š“°}†£gpNWtHQnAJgAJgDMjGPmENk?He?HeCMhBMaQ\nMXj7BT*5G5@RR]olw‰P[mKVh[fxgr„U`rGRdWbtjvŒjz”’°”¥Ãu†¤\7HfSd‚^oL]{;Lj;LjKTDQZIV_R_hR_hR_hR_hP]fMZcKXaHUfARpBV{F\…Ph”b°z›Ð‚¥Ý~¢ÜfŒÊiÎr•Õv˜×r‘ÑnŒÊmŠÆi†¾u‘Ãq¼mˆ·n‰¶qŒ·t¶p‡°l„ªby›ax˜av•ZoŒVj…]qŠ[l†H[yJ^ƒMdŽTk—Zu¤b€²lÂpÉlÉnÍq“ЀžÚ}šÔkƒ¿Oež4G/@n>Lfbn~u‘v‚’v‚y…‘v‚ŽvƒŒw„Œw„Œvƒ‰u‚ˆt‚…s„r€u€vwy–”•¶´µ¾¼½±¯°¡Ÿ žœ£¡¢¢ ¡£¡¢¦¤¥©§¨¬ª«¯­®²°±³±²ÔÔÔÕÕÕ×××ÚÚÚÝÝÝàààâââãããøøøøøøøøøøøøøøøøøøøøøøøøòòòóóóôôôõõõ÷÷÷øøøùùùúúúüüüüüüøøø÷÷÷üüüüüü÷÷÷ö÷ùõøÿôøÿòùÿñøÿïøÿïøÿíøþíøþÞëñàïôåôùå÷ûä÷ûä÷ûæùýçúÿèøÿÞîþÍÝíºÊÚ¥µÅ °|Œœp€VfvL\lO_oeu…|ŒœŸ¯§·Ç¾ÎÛÐäåØìêßóñäøöêýûïÿÿñÿÿíûûïûûñýýôþÿõÿÿöþÿóûýóøûï÷úóþÿñþÿðýÿðýÿïüÿïüÿïüÿîûÿÍÚàÇÔÚ»ÈέºÀž«±£†“™}Ž•YpxZu~`{„c~‡c~‡b}†b}†c~‡|— y”v‘šx“œ}˜¡ƒž§‡¢«Š¢¬—¢‚–¡• €”Ÿ~’}‘œ|›{š£®”¨³Ÿ³¾­Á̸Ì×¼ÐÛ»ÏÚ»Í×ÚëóÝìóßîõâñøåôûçöýéøÿêùÿìûÿìûÿìûÿíüÿîýÿïþÿðÿÿòÿÿð÷ýò÷ûîó÷ëðôîó÷ìñõêïóîó÷êïóëðôíòöîó÷îó÷îó÷íòöéò÷àñøÞòùÞòûÞòùßóüßóúßóüßóúØìõÖêñÕéò×ëòÚî÷Üð÷Ûïø×îôáøÿàùþáúÿâûÿãüÿäýÿäýÿåþÿéÿÿæÿÿçÿÿéÿÿãüÿÛôùÝöýãþÿÕïþÒíÿÐëþÑìÿÒíÿÒíÿÑìÿÏêý¶Ñä³Îá°ËÞ¯ÊݯÊÝ®ÉÜ«ÆÙ§ÄÖ¥ÄÖªËܦÇÚ¡ÂÓ¤ÅؤÅÖ ÁÔ¡ÂӜ½Ð‘²Ã†§º¢³€¡´z›¬l c€as`nyYgrQ_jIWbBP[>LW;IT;IT;IT:HS9GR9GR8FQ7EP5FP2HS2JV4LX8P\;S_>VbAYeBZfG_kJbnOgsSkwXp|Zr~\t€ZtVq„Ws‰[w`|’e—k‡o‹¡q£o‹¡m‰Ÿk‡h„še—b~”`|’`{_xŒ^u‡ZqƒTk}MdvG^pBYk?Vh_vˆf}n…—sŠœsŠœsŠœuŒžwŽ €—§}”¤y¢sŠœl‚—f|‘bx_uŒJ`xH^vDYvAVs@UtBWvDYxD[{@X|@ZA[€B\D^ƒF`…Ga†Ga†B\B\B\B\B\B\B\@\ƒ@\„?\†@]‡A^ˆB_‹B_‹C_C_Ea“Ea“D_”C^“C^•B]”A[”B[”AW@UŽ>Q‰:Nƒ8J|4Ft2Cn0Bh/?a->\,:T(7L%2E!.?*:(8!"4$%7,-?89KCDVRSeghzz{bcuWXjIJ\ABT=>P;W4>Wdn‡€Š£š³¶ÀÙÍ×ð†©7AZ1;Thr‹´¾×äîÿÍ×ð~ˆ¡OYroy’z„~ˆ¡…¨š³”ž·•Ÿ¸”ž·­·ÐÅÏ许ѡªÇ™¢¿‰’¯~‡¤ox•\e‚T]zKTq=FcDMjOXuS\yJSp=Fc7@]:D_9DX?J\CN`7BT)4F0;MHSeYdvP[mlw‰˜ª„¡`k}Zewit†iu‹hx’q‚ }Ž¬nJ[y7Hf4Ec.?]1B`ARpL]{HYwARp?PnP<=O<=O:;M78J/2C,2@36G:@NADUBHVHK\LR`VYjTZhY\m\bp_bsV\jIL]K\^kŠŒ™ŒŽ›SUb$&3(*7=?L`bo€‚‰‹˜qs€\^kUWdXZg^`m\^mXZiSTfTVePQc;=L34FACROPbPRaTUg^`ojk}km|XYkCET.-;SS_kivggs^\iUTbZXfgftmkyts|zˆon~YVg32B(%6NOa}ƒ™¾ÈáÉÓ쒜µlvv€™~ˆ¡§±Êƒ¦R\u4>W$.G9C\¡«Äõÿÿïûÿôÿÿé÷ÿµÃÞx†¡ESnAOjy‡¢£±Ì—¥Àƒ‘¬cqŒp~™‡•°HVq+9T†”®ÅÏꫵݶ…¨eoˆ9C\W7AZv€™¹ÃÜâìÿÄÎçr|•Q[t}‡ |†Ÿ}‡ ‚Œ¥’œµ™£¼˜¢»—¡º¹ÃÜÖàù·Áڟ©Ä—£½‰¤q|˜`i†OZvS\yGRp?HgMXv_h‡bmU^ALl;De?Hg;E^-8L-8L1HR;EN8BL3AN:Ld2Gf>UuKeŠYtŸz™ÈŒ¬ßx™Ïa„¾mÌq‘Îs‘Íy–ÒuÊnˆÁtŽÁ™ÅsŠ³f|¥g}¤s‰®|’·{²s‡¨ex˜m€žm~šZk…Qb|aqŠiy’]m‡M]~RdŠYl”`vŸn†²|—Æ€œÌz˜ÊoÁy—ËoŠ¿c}°Lc—7M=Qƒ=Ny>LgEPdt‘œ¨¸œ¨¸›§’Ÿ¨š£“ž¤“ž¤“ž¢“ž¢“ž¢“ž¢“ž •ŸÃÃÃÝÙØõñðû÷öðìëäÞÞáÛÛäÞÞîèèîèèíççïæçîåæîåæíäåëååÚÔÔÚÔÔÙÓÕØÒÒÖÐÒÕÏÏÔÎÐÓÍÍÇÁÃÆÀÀľÀÁ»»½·¹»µµ¸²´·±±³­­¯«¨¬¦¦¥¡ž šš™•’•’Ž‹¨¢¢§£ ¢œœ¨¤¡¿¹¹ÅÁ¾Àºº¿»¼ÊÈÍÈÇÍÇÆÌÅÄÊÂÃÈÁÂǽÀŽÀÅÌÏÔÑÖÚÖÞáÚâåÚäæÜæèàêìãìñðùÿçïú×ßêÅÍر¹Äœ¤¯‰‘œ~†‘s{†]epPXc[cnks~z‚”œ§­·ÀËÙÚÔäáßïìæöóìûøïþûîúøéóòí÷öëõôêóòèñðêððìòòîôôïô÷êôöèóõèó÷çòôçòöæñóåðôåðòçòöäïñàëïÛæèÖáåÓÞàÐÛßÌÛÞÂÙßÆãçÑìóÖó÷ÙôûØõùÚõüÛøü×òùÑîòÍèïÊçëÎéðÑîòÕð÷Öñø«ÄË«Âʨ¾É¤»Ã ¶Áœ³»™¯º—®¶ˆž©|“›w˜|“›z›m„Œf|‡j~‡o‚‰s„‹x‰~–†—žž¥’£ª”¥¬‹œ£ž¥¡¨”¥¬˜©°›¬³®µ ¯´©´¸³½¿´¾À·ÁÃÅÏÑÍ×ÙÒÜÞÜæèâìîåïñêôöïùûóýÿõÿÿöÿÿòÿÿìÿþéÿþéÿþéÿþéÿþéÿþéÿþéÿþêÿÿèÿýçÿüèÿýêÿÿëÿÿêÿÿèÿýåÿûãÿûäÿúáþùâýøàýøáü÷ßü÷ÛöñÚ÷òÜ÷òÙöñÜ÷òÛøóÛöñÖòóÏë÷ÌçúÉä÷Éä÷ËæùËæùÈãöÄßòÈãöÆáôÆáôÈãöÌçúÎéüÍèûÊçùÙøÿáÿÿÞýÿØ÷ÿÜûÿßþÿÜûÿÛúÿçÿÿÚùÿÌëýÇæøÇæø¿Þð­Ìޟ»É• |—qŠar|TbmGXbAOZ;LV;IT9JT:HS7HR9GR6GQ7EP4FP9MX8PZSŠ>R‡=N„9J~6Hx3Dp0Al/Ag0@b.?[+;T&5L!0C-=)8(7<=O;@OKMZRTcNP]NP_TVcOQ`BDQ"%.KNUrr|y|…kkuQS_JJVPR^zy‡—™¦Ÿž®vw‰A@R121CX[nu}”›¥¾ ªÃŒ–¯‡‘ª‹¤‹•®®¸Ñš³ak„*4M6JTm°ºÓîøÿôÿÿæñÿÆÔ²\j…Zhƒguv„Ÿˆ–±ž¬Çˆ–±„’­„’­}‹¦7E`7E`š¨ÂÜæÿÉÓ쟩„Ž§nx‘FPi=G`Xb{z„¨²ËÍ×ðÁËäu˜",E7AZ– ¹ßéÿÙãüª´Ídn‡V`y…¨‘›´gqŠ}‡ —°§À›¥¾­·ÐáëÿÜæÿ˜¢»“Ÿ·Ž¥t€˜Zh‚NYuN\wJUsFSsDNqJWycm‘nz en—Wc‹R[†IRy6?\,6O",E$.G,6O-7P2Sf8M^9KY2E8AJ6?F4=F3Rw=QvSgŒG[€CSuCQn$>Yc|ÜçûÀÉÚ¤®º— …Ž“…‘ˆ’“‹“•Œ”–’–Ž“—‘–œ—˜œÖÐÐâØÖ×ÍËíãáìâàéÞÜîãáìÞÝìÞÝíÝÝíÝÝïÝÝïÝÝïÝÝïÝÝïÝÝéÖØæÖ×ç×ÚéÙÚêÚÝéÙÚêÚÝëÛÜïßâðàáñáäñáâðàãíÝÞëÛÞéÙÚúëèðãÝæ×ÔáÔÎäÕÒåØÒäÕÒàÓÍæ×ÔÞÑË×ÈÅÒÅ¿ÐÁ¾È»µ½®«²¤£˜ˆ‹–‡Œ“„‰€…‹|ˆy~…v{„uzŒ}‚Š~‚Œ€„’†ŠŸ“—«Ÿ£ªž¢¡–š¾¸º¸´µ²®¯®ª«¨¤¥™šŽŠ‹‚~sopkgha]^]YZc_`sop†‚ƒŽ©­®²¸¸ÀÆÆÏÕÕÝããêððõûûüÿÿïóôòö÷öúûöúûôøùòö÷òö÷ó÷øóùùóù÷òøøòøöòøøñ÷õñ÷÷ñ÷õåëëäêèãééãéçãééáçåÜââÕáßÇÜÝÃàÞÇáâÇäâËåæËèæÎèéÍêèÆàáÄáßÆàáÄáßÇáâÅâàÇáâÅáâÄàäÃßãÂÝäÂÞâÂÝäÄàäÇâéÈäèÊåìÐìðËæíÍéíÖñøËçëÁÜãÏèí¹ÐÖ¹ÐÖ¸ÏÕ³ÊЫÂÈ ·½–­³¦¬p‡n…‹lƒ‰i€†f}ƒcz€`w}av{dy~j}ƒpƒ‰wŠ{Ž”|•{Ž”z“|•’˜„—Š£‘¤ª˜«±°¶ž³¸°ÊË¢¾¿š¶·š¶·œ¸¹œ¸¹ ¼½¦ÂíÉÊ°ÌÍ´ÐÑ·ÓÔ»×ØÁÝÞÉåæÏëîáýÿãÿÿæÿÿäÿÿáýÿßüÿâþÿäÿÿèÿÿèÿÿçÿÿãÿÿåÿÿèÿÿçÿÿàýÿÔðþÍèùÅàñÄßðÇâóÈãôÄßð¾ÙêÂÝîÄßðÆáòÈãôÊåöÌçøÐëüÒîüÐîùÚøÿÝûÿÚøÿÜúÿãÿÿâÿÿÚøÿ×õÿÒðúÌêôÉçñÆäî¾Üæ²ÐÚªÅЖªµ‹©zŠ—hz†[kxOamHXeBT`UgM35D02?/1>68ECEROQ^UWdVXeQS`TVcWYfY[hWYfRTaLN[HJW02?79F@BOKMZFHU24A.0=?AN^`mtvƒy{ˆgivRTaCERBDQMO\KMZOQ^SUbUWdRTaKMZCER=?L79FEGTNP]OQ^RTaWYfSUbGIU.18KNSehooryiluUXaFHTFHTxz‡£¥²®¯Á}~<=Q356J^`uy˜ˆ’«‡‘ª{…žx‚›‰¢•Ÿ¸²¼Õ– ¹cm†%/H'@_i‚ÀÊãïùÿàìÿÄÏ롯Êw… esŽlz•uƒž~Œ§‹™´”¢½‚«ƒ‘¬ˆ–±|Š¥F8?G?FN@GO?FN;BJ7>F6=E8?G6CKE\dEalOj{^xm†¤wµz‘½zÂi~µl¸wŒÃzÄrˆºp†·s‰¸t‡±|‹¬v„Ÿm{–iw’iw’ky”lz•lz•aoŠUc~Vd[i„XfWe€VdR^xS^tem‚muŒpxz„‹¤x„žm{•sœjz”L]{1B`Ob‚q„¤YlŒBSq3@` 4Yc~ì÷ÿäíþÛåñÔÝäÒÜÞÌÔÖÍÖÕÏÕÕÌÒÒÈËÐÅÈÍÈÈÐËÉÎóëéíâÞÕÊÆìáÝîàÝçÙÖìÝÚêÛØïÛÚïÛÚðÛÚïÚÙñÙÙñÙÙðØØðØØæÐÓæÐÓæÐÓèÒÕéÓÖéÓÖéÓÖêÔ×îØÛïÙÜðÚÝñÛÞñÛÞïÙÜí×ÚìÖØúçãõâÜñÞØòßÙøåßþëåÿîèÿïéÿìæùæàóàÚðÝ×ïÜÖê×ÑàÍÇØÅÁθºÍ·ºËµ¸Ê´·Ç±´Æ°³Ä®±Ã­°Ðº½Ñ»¾Ðº½Ñ»¾ÖÀÃØÂÅк½Ä°±¾°¯¶«§®£Ÿ§œ˜ •‘”‰…„yuxmiod`i^ZaVR^SObWSnc_}rn„|y€‹‹Ÿ±±³ÄÄÆÕÕ×ääæííïùùûüüþþþÿýýÿùùûõõ÷ôôöôôôúüùúüùúüùúüùúüùúüùúüùúüùëíêæèåãåâæèåëíêëíêåçäØáÞÎáßÊãàÊãàËäáÌåâÌåâÍæãÍæãÉâßÈáÞÇàÝÅÞÛÃÜÙÂÛØÁÚ×ÀØØÅÞâÂÞâÁÝáÀÜàÀÜàÂÞâÃßãÅáåáýÿåÿÿÙõùÓïóØôøÑíñËçëÖòöåþÿçÿÿêÿÿêÿÿêÿÿæÿÿãûÿßøüéÿÿæÿÿäüÿßøüÛó÷ÖïóÔìðÑêîÃÚàÀÙÞ¾ÕÛµÎÓ¬Ãɟ¸½•¬²Ž§¬¤ª‹¤©Š¡§‡ ¥…œ¢‚› ˜ž˜“¯³Š§«…¡¥‡¤¨Œ¨¬Œ©­‘­±–³·¬°ª®Š¦ª„¡¥„ ¤‡¤¨’®²˜µ¹¬ÇίÌÔµÐÙ·ÔܺÕÞ¼ÙáÂÝæÆãëÈãìÈåíÇâëÄáéÈãìËèðÊåîÄàë¾Úè·Òã±ÌݱÌÝ´Ïà¶Ñâ³Î߯ÊÛ¬ÇØ°ËܹÔåÅàñÑìýÜ÷ÿãþÿçÿÿâÿÿãÿÿãÿÿâÿÿàýÿßüÿÝúÿÛøþÜùÿ×ôúÑîôÎëñËèîÃàæ·ÔÚ¯Êњ®¹¢°~žl~Œ^p~QcqHZhBTb;M[;M[;M[;M[;M[;M[;M[;M[;OZ?S^CYdMcnYoze}‡o‡‘r–…¢ª„¡©„¢ªˆ¦®°·š»Â¥ÈΪÏךÄГÁΑ¿Ì’À͖ÄњÈ՛É֛É֕ÃЙÇԒÀÍ­ºm›¨aœO}ŠAky?csMnSt…_€‘a‚“\}Ža‚“\}ŽXyŠYz‹[|[|Z{ŒYz‹Wx‰Ww†Tn{TlxPguLcqG^nBYi>UgTi=Sh;Qh:Pg:Ph;Qi=Rm?QQRdYZlOPb?AP13B-/<-/<46CACPMO\RTaSUbOQ^QS`UWdWYfVXeQS`KMZGIV57D13@13@:@M24A-/<8:GXZgmo|su‚cerLN[=?L<>KEGTEGTIKXPR_TVcSUbNP]FHUACP-/<;=JIKXPR_WYf\^kXZgOQ]CFMMPUUX_^ahdgpY\eEGS<>Jsu‚®°½ÀÁӂƒ•67K3>?Seg|—®‚Œ¥u˜nx‘q{”‚Œ¥œ¦¿°ºÓ£­ÆgqŠ'@%/Hv€™ËÕîæðÿ»Çߒ¹x†¡o}˜zˆ£€Ž©€Ž©ƒ‘¬†”¯†”¯~Œ§ªˆ–±zˆ£LZuo}˜³ÁÛ¥¯Ê ªÃ§±Ê{…žFPiGQjYc|jt{…ž«µÎÊÔ흧ÀAKd$=\fºÄÝåïÿÅÏ蔞·}‡ Œ–¯“¶oy’CMfoy’‰“¬ž¨ÁÂÌåãíÿÆÐ陣¼–¢ºŒ˜°u„›n|–_m‡R`{Sa|P]}O\|CPr4Ad?Kq^j’nz¢frœZfS_…Xa€LVo2G4;C7>FF;BJ>EM?FN?FNUgBXmAWl@Vm?Ul?Um@VnAVq@Xt>VzPOPbWXjNOaACR.0?*,9*,913@>@MIKXOQ^PR_LN[OQ^SUbVXeUWdPR_KMZGIV68E.0=(*7-/<35B,.;*,946CSUbgivrtcerKMZ;=J:@Lfhu¬®»ÄÅ×€’./C !5HI]lnƒŸ§¾ƒ¦dn‡]g€pz“…¨š¤½®¸Ñ¨²Ëak„ .",E{…žÅÏèÕßø›§¿fqguƒ‘¬˜¦ÁŒšµ€Ž©€Ž©|Š¥~Œ§¨¨|Š¥sœky”—¥À­»Õuš„Ž§¦°É€Š£LVoLVoXb{pz“|†Ÿ®¸ÑÉÓ쉓¬#-F7pz“ÐÚóàêÿ·Áڍ—°—°¡«Ä—°Zd}9C\isŒ†©±»ÔÝçÿâìÿ³½Ö“¶¡­Åˆ”¬n}”lz”ftŽYg‚ZhƒXfƒYf†ERt@MoANqMY_k‘htœ`l”Q^t}šfp‰?Ib&?!:!+D7AZQ[twš™£¼ÌÖïÕßø“¶FPi=G`_k…pq„¢v‰§|­|«r†ŸcwXl„DYn7L_-BS.DR4JX5KY4JW7IU7AJ5R]EYdNbmZnydz…n„rŠ”š£€¥†£«Ž¬´™·¿¤ÅÌ®ÏÖ³ÕÞ¯×ã­Ùæ°Üé´àí¹åò¾ê÷ÁíúÃïüºæóÀìù½éö­Ùæ”ÀÍw£°Wƒ@jxSw‡lž¢³™ºË Áҕ¶Ç±Â„¥¶…¦·ƒ¤µƒ¤µƒ¤µ‚£´€¡²|®y™¨h‚f~Šax†Yp~QhxJaqD[mAXjG]rG]rF\sF\sF\tF\tG\wE]y@X|>X}>X}B\Hb‡Lf‹MgŒLf‹Hb‡F`…D^ƒE_„Ga†Hb‡F`…D^ƒ@Z@Z}@Z@Z@Z@Y@Y@Y‚C\…C[‡BZˆAY‰@Xˆ@Xˆ?Vˆ@V…P67I=>PLM_STfKL^@BQ*,;')6&(5-/<:&(5%'4(*7$&3&(535BQS`egttvƒikxOQ^=?L:Habl…€Š£—¡º·ÁÚ¥¯ÈU_x "%>pz“®¸Ñ¼Æߊ–®KVrn|—¨¶Ñ¸Æᓡ¼|Š¥}‹¦y‡¢|Š¥…“®}‹¦drky”‘Ÿº·Åà˜¦ÀLVqoy’§À‡‘ªdn‡U_xPZsq{”‰¢³½ÖËÕ61z„ÞèÿÏÙòª´Í‘›´¢¬Å­·Ðƒ¦LVo8B[_i‚‚Œ¥ÆÐéêôÿËÕȜ¦¿©Áƒ©ftŽiw‘ky“`n‰_mˆ`n‹bpR_P]JWyHUxQ^ZfŒYe‹Taƒ‚Œ§u€–EPf#92*@5@VP[qitŠ‡’¨»ÆÜÔßõ¡¬ÂR]s?J``l„o™rƒŸrƒs„žzŒ¤zŒ¢gyN`tASg6IZ.AR0CR5HW7JX8KYF5F8BNL^tOdXmŠau–i}¢n«pƒ®r„²qƒ³vˆ¸‘¿z·j}¥g{ q…¨x‹«tƒ t‚r€›o}˜ky”dr[i„Uc~O]xP^yGUp>LgGUpYg‚^l‡Zf€ITjW_t^f}em„mwlv_k…WeQ_zXh‚Wh†TeƒM`€FYyJ]}Uf„ERr!=ZdïúÿðùÿðúÿëôûèòôæîðèñðëññêððéìñèëðëëóïíòýõóËÀ¼˜‰Á¶²âÔÑéÛØóäáøéæóßÞôàß÷âáúåäÿççÿêêÿììÿíí÷áäüæéþèëüæéþèëÿîñÿðóÿíðèÒÕêÔ×îØÛñÛÞôÞáõßâõßâõßáúâÞûäÞûäÞúãÝøáÛößÙôÝ×ôÝ×òÛÕî×ÑèÑËãÌÆßÈÂÛľֿ¹Òº¶Õ¿ÁÖÀÃ×ÁÄÙÃÆÛÅÈÜÆÉÞÈËÞÈËéÓÖïÙÜòÜßñÛÞñÛÞóÝàóÝàïÛÜéÙÙáÓÐ×ÉÆÏÁ¾Ç¹¶»­ª«š ’ˆzw~pmoa^bTQ\NK^PMdVSg\Zuw‹ƒšŽ’©¡·«¯Ä¸¼ÏÃÇ×ËÏàÔØã×ÛçÛßçÛßåÙÝã×ÛäØÜåÙÛË¿¿Ê¿½È½»Ä¹·Á¶´¾³±»°®º¯­¾³±»°®µª¨ªŸœ‘„‚…zx~vtklninqjorkpsmrunsvotwpux‚‡Š…Š‰Ž‘”—–›ž› £ ¥¨ ¨«¬µº¯º¾¶ÁÇÀËÏÌ×ÝÙäèãîôéôøëöüóþÿñüÿëöúîùÿðûÿì÷ýéôøïýýìüùèøõåõòäôñäôñæöóèøõìüùëûøéùöæöóâòïßïìÝíêÜìëáðóâñôãò÷ãòõãò÷âñôàïôßîñäóøäóöãò÷ãòõãò÷ãòõãò÷áóõÙìðØíîØíðÚïðÞóöàõöÞóöÚïðÝòõÜñòÚïò×ìíÕêí×ìíÝòõâ÷úðÿÿïÿÿíÿÿëÿÿêþÿèýÿæúÿåúÿðÿÿðÿÿêþÿãøýàôûÞóøÙíôÏæì²ÎÙ­ËÕ©ÇÒ¦ÄΦÄÏ¥ÃͤÂÍ£ÁË ¾É»ÅœºÅ¡¿É¦ÄÏ¥Ã͜ºÅ”²º‚¡¤s’”q’ž ƒ¢¤~Ÿ‡¦¨š¹»¯ÎЫÊÌ¥ÄÆ£ÂÄ ¿Á™¸º¬®†¢¦ƒ—¢{‹˜m}Š_o|ScpIYfAQ^Vz>Vx>Vz>Vz>Vz>V|>V|>U~BYƒBY…AX„AW†@V…?U„>T…?T:Lt:Jn7Gk5Ei3Cg3Ce4De4Ec3Db0A]+?Q89K>?QIJ\MN`EFX;=L')8$&3#%2*,979FCERIKXJLYKMZOQ^SUbWYfVXeSUbNP]JLY8:G35B(*7"$1"$1 -#%213@MO\cery{ˆrtUWdACP:THSi_j€{†œ±¼ÒÕàö¯ºÐ^iALb\h~_o†cuas‰^p†fxŒm“_q…H[l9L]4GV2ET7JX29A18@+2:-4<6=E7>F8?G8?G6=E4;C5LYLYLYLYU=T€=T€>S~8Jp8Hj6Fj4Df3Ce3Cd4De5Fd5Fd3D`.?['8R0J(@ : 5HI[PQc\]ofgyjk}ghz`as[\nGHZ@AS;@M79F(*7 "/!#0!.!#0+-:IKX`bo{}Šxz‡Z\iCER:Ha";5?Xjtœ¦¿ÆÐ骴Í]g€*4M?Ibbl…q{”yƒœy…do‹”¢½Ôâýáïÿ³Á܉—²‚«†”¯¨‡•°t‚9GbaoŠÆÔïÑßúw…ŸAKfgqŠ|†Ÿyƒœv€™eoˆ[e~q{”…¨½ÇàÓÝö‡‘ª#<+oy’Þèÿßéÿ°ºÓ˜¢»œ¦¿Š”­isŒeoˆx‚›˜¢»´¾×¸Âۙ£¼‰“¬§À£­Æ™±p|–N\vZh‚ky“aoŠ^l‡bp‹guescqŽYg„R_N[{ERrGTtVdlvozŽGRf(<*>)4H+6J4?S`k{†š°»ÏØã÷¹ÄØfq…@K_TatQ`sSdvRcuL]oL]oO`rM^pFWg3DT5GU07?+2:,3;6=E9@H:AILU?KW>LU?KW>LU?KW>LW;KX=MZBR_I[gRdp[ozdxƒg}ˆg‰j…Žr–z—Ÿƒ ¨Š§¯Ž«³Œ­¶‘·Ä•¼ËšÁЛÂњÁЙÀϚÁМÃÒ¤ËÚ Ç֙ÀώµÄ|£²hžW~NsƒfŠšz›¬‰ª»œ½Î ÁҘ¹Ê–·È®¿‘²Ã®¿‹¬½®¿’³Ä“´Å®¿ˆ¨·}—¤|” v›m„’d{‹\sƒVmRi{VlWm‚Yo†Zp‡ZpˆYo‡Wl‡TlˆD\€B\C]‚Ga†Lf‹PjQkPjHb‡F`…D^ƒE_„Ga†Hb‡F`…D^:Sr;Rq;Rq;Rr;Rr;Rt;Rt;QvAW|@V}@V?U~>S~=R}=R}>Q{6Hl7Gh5Eg3Cd2Bc3Cd4De5Fd7Hf5Fb1B^+P?@REFXDEW;LW?O\DTaM]jXhubt€k}‰oƒŽz›}•Ÿƒ›¥ˆ£¬¨±Ž«³¬´Ž¬¶†ª¸‰°¿ŽµÄŽµÄŒ³Â‰°¿‰°¿‹²Á‹²Á†­¼¦µv¬j‘ ^…”T{ŠQv†g‹›yš«ƒ¤µ“´Å–·È°Á±Âˆ©ºŒ­¾ˆ©º†§¸Š«¼°Á‘²Ã‹¬½†¦µ™¦~–¢xp‡•g~Ž_v†Yp‚VmXnƒZp…\r‰]sŠ]s‹\rŠZoŠVnŠE]C]‚C]‚Ga†MgŒQkRl‘QkHb‡F`…D^ƒE_„Ga†Hb‡F`…E]:Qp:Rn:Rn:Rn:Qp:Qp:Qq:Qs@Wy@V{?Uz>T{=Sz=S|Qy6Ij6Ge4De3Db2Bc3Db4Ec5Fd8Ig7Hf3Db->Z%6T,H$B QT]y|…‡‰•z|ˆln{qs€abtOPbWXlij~rs‡wyŽs{’eoˆAKd4-7P_i‚—°•Ÿ¸u˜bl…U_x[e~kuŽyƒœ…¨™±—¢¾«Æ¸Æáëùÿêøÿ®¼×¨aoŠjx“r€›r€›O]xjx“ÄÒíÂÐëx† 9C^fp‰u˜hr‹isŒnx‘q{”{…ž‘›´«µÎÔÞ÷ ªÃ,6O &R\uÅÏèÛåþª´Í– ¹¡«ÄŠ”­^hmw¤®ÇÝçÿÍ×ð¤®Ç‹¤š³™²nx‘t€˜co‰_mˆbp‹dr_mˆVdVd~[iƒR`zR`zN\vHVpAOi?MgBPjFUlMXlR]oGRd4?Q(3E);'9'2DGRd˜ª¸ÃÕ³¾Ð¶ÁӐ›­>I[+;>LY?PZAOZ9JT2@K,=G1?J4EOCQ\GXbP^kRboR`mL\iKYfKWcQZcMT\ELT=DL8?G5X}>Vx:RnRs>Ru=Qt=Qv@MGIVLN[RTaTVcVXeY[hZ\iY[hWYfVXeKMZ?AN02?')6%'4&(5$&3"$157DMO\prƒ…’tvƒQS`9;H46C35B9;HCERMO\RTaOQ^FHU?AN-/<46C?ANLN[XZg`boegtgiucfmMPUMT:IP4CJ0?F2AH6DM?MVES^JXcM[fJXeGUbDR_EQ]LU^IPXDKS?FN;BJ:AI:AI:AINU]PW_SZbU\dV]eX_g[bj[duZg‰bqšq¦u…©q¤m}žyˆ©‡˜¶kz—]nŠgv“q‚žtƒ¢…•¶Ž¾z‰¨Uc€t‚‹™´¨P^y4B]Yg‚Š˜³dr7E`^l‡¨]k†9Gb6D_Wc}~‰Ÿt|‘s{’lt‹[e~[e~bnˆao‰ftl|–nt…£o‚¢m€ o‚¢bs‘P]}7BLgçòÿðùÿóýÿåîõêôöêòôêóòíóóîôôïò÷ðóøóóûõóøþöôóè䮣ŸÅº¶áÓÐïáÞõæãùêçíÙØìØ×íØ×íØ×ðØØòÚÚôÜÜõÝÝïÙÜðÚÝòÜßóÝàóÝàóÝàòÜßòÜßòÜßðÚÝòÜßõßâôÞáòÜßøâåÿêêöÝÖ÷ÜÑöÛÐôÙÎñÖËïÔÉíÒÇìÑÆåÊ¿çÌÁèÍÂæËÀãȽáÆ»âǼâÉÂûããïÙÜòÜß÷áäîØÛèÒÕí×ÚòÜßÚÄÇÙÃÆØÂÅÖÀÃÓ½ÀÑ»¾Ðº½Ï¹»¦’“Ÿ‹Š‰ˆš†…”€—ƒ‚œˆ‡›‡†™…„’~}†rqyedkWV`LKXDCU@?[EG`JLkRUu_a†mp‘{}ž…ˆ¢ŒŽÀ§ªÃ­¯Îµ¸Õ¿ÁáÈËéÓÕôÛÞúââùßÞüàßýáàÿãâÿãâÿãâÿãâþâá÷ÛÚó×ÖíÑÐäÈÇÛ¿¾Ó·¶Í±°È®¯Á¨¬¾¥«º¡§µœ¢°—¬“™©–¨• ‡Ÿ†Œž…‹ž…‹ž…‹ ‡¢‰¢‹‘³Ÿ¡´¡£¹¥§¼©«À¬®À­¯Â®°Á®°½©«»¨ª¼¨ª»¨ª½©«¿¬®Ã¯±Â²²ÍÄ¿ÐÉÁÏÈÀÒËÃÛÔÌÝÖÎÚÓËÜÕÍ×ÐÈÙÒÊÛÔÌÛÔÌÙÒÊØÑÉÚÓËÜÕÏêâàçßÝãÛÙàØÖß×ÕáÙ×åÝÛçßÝåÝÛáÙ×ÜÔÒ×ÏÍÔÌÊÓËÉÕÍËÔÏÌÓÏÌÐÏËÏÎÊÍÌÈËÊÆÉÈÄÇÆÂÆÅÁ¯®ª¯®ª¯®ª®­©®­©®­©­¬¨­¬ª•“”–”•—•˜˜–—š˜››™šœš›œ²°³¶´µ¾¼¿ÆÄÅÎÌÏÔÒÓ×ÕØ×ØÚÛéìØìíÚìðØìíØêîØìíÞðôâö÷å÷ûäøùå÷ûäøùæøüåùúæøüåùúèúüæúûæøúã÷øãõ÷àôõàòôÞòóèúüã÷øÝïñÔèéÉÛݸÌÍ©»½ž°²‚•x‚‹gqzWajMW`HR[DNWBLU@JS@JS@JS@JS@JS@JS@JS@JTEO[GSaMYgTbo_mzl|‰|Œ™†˜¤ž°¼¡µÀ¦ºÅ¨¾ÉªÀË­ÅϲÊÔ³ÏÚ¦ÇÖ¢Ç×£ÇפÉÙ¥ÉٝÂґµÅ…ªº{Ÿ¯h[\‘g‹›o”¤w›«~¢²Š«¼…¦·„¥¶„¥¶‚£´}ž¯|® ±w˜©yš«}ž¯ ±€¡²~Ÿ°{œ­zš©vu™o†”g~Œ_v†XoRi{OfxLbwMcxNd{Oe|Pf~QgQfOgƒIa…F`…E_„Ga†Jd‰Lf‹KeŠIcˆIcˆHb‡F`…C]‚A[€>X}=W|=Uw7Oi9Of9Of9Og9Og9Ni9Ni9Nk;Po;Po:No:No9Mp8Lo7Kn8Kl5Fd5F`6Gc7Hd8Ie8Ie9Jh9Jh;LjNo>No:Jk/?` 0R&G>?QJK]WXj^_qcdvcdv\]oTUg@AS;%'6)*!#0)+846C>@MFHUKMZRTaSUbUWdVXeWYfWYfVXeVXeKMZ@BO24A)+8(*7(*7&(5$&3.0=DFShjw‚„‘z|‰Y[h=?L35B46C8:G?ANIKXOQ^OQ^IKXCER35B9;HCERNP]XZg_anbdqdfrNQXFIN?BI:=DADM\_hy{‡„†’~€np}KL^56HFG[deypq…mo„z‚™q{”MWp *C.8QJTmXb{LVoT^wWazWazXb{`jƒs}–‰“¬–¢ºœ§Ã¨¶Ñ¶Äß¿ÍèÈÖñ´Â݆”¯m{–Žœ·v„Ÿ]k†o}˜¤²ÍÃÑ쪸Ót‚œ=GbMWpak„pz“wšx‚›}‡ †©Š”­œ¦¿ÙãüÖàùjt%>D7EFLg-;VYg‚š¨Ãbp‹(6QAOjky”Xf7E`9Gbbnˆ~‰ŸqyŽy˜s{’JTmGQjdpŠhvn|—sƒyŠ¨ƒ”²t‡§cv–dw—_pŽ[hˆ:EOjéôÿìõÿñûÿçð÷èòôêòôêóòíóóîôôïò÷ðóøóóûõóøÿûùùî굪¦ËÀ¼ãÕÒéÛØçØÕæ×ÔîÚÙïÛÚñÜÛòÝÜôÜÜóÛÛòÚÚñÙÙöàãõßâôÞáóÝàóÝàóÝàóÝàôÞáóÝàñÛÞñÛÞóÝàñÛÞïÙÜòÜßúââõÚÑõÙÍó×ËðÔÈíÑÅëÏÃéÍÁèÌÀÜÀ´ß÷áŹâƺáŹâƺäȼæËÂï××çÑÔí×Ú÷áäôÞáðÚÝôÞáúäçóÝàôÞáöàãøâåúäçûåèýçêþèêùãåöáàøãâôßÞåÐÏ×ÂÁÌ·¶¿ª©£Žˆ‡‘|{ƒnmu`_hSR_JIZED_JI`LKfQPnZYzed…qp{z•€–€”€’}||{{zyxŒwv‰ts¢ˆ‡©Š²–“¾¢ŸË¯¬×»¸àÄÁåÉÆíÑÎêÎËäÈÅßÃÀÛ¿¼Ù½ºÙ½ºÙ½¼½£¦½¢§» ¥¹ž£µšŸ±–›®“˜¬‘– …ŠŸ„‰Ÿ„‰žƒˆŸ„‰¡†‹¤‰Ž¥Š¶ ¢·£¤»¥§¼¨©¿©«¿«¬¿©«¾ª«»¥§º¦§¼¦¨¼¨©Àª¬Ã¯°Ç±³Çµ³ÙËÈØÍÉÒÇÃÒÇÃÛÐÌßÔÐÞÓÏãØÔÓÈÄÖËÇÚÏËÛÐÌÛÐÌÜÑÍàÕÑãØÔèÝÛçÜÚäÙ×â×ÕáÖÔáÖÔãØÖãØÖÝÒÐÝÒÐÝÒÐÝÒÐÞÓÑÞÓÑÞÓÑÝÓÑäÜÙãÛØáÙÖÞÖÓÛÓÐØÐÍÖÎËÕÍÊÑÉÆÑÉÆÐÈÅÐÈÅÏÇÄÏÇÄÎÆÃÎÆÃÄ»¼Ãº»Â¹¼Á¸¹À·º¿¶·¾µ¸¾µ¶§ž¡§žŸ¦ ¥œ¢™œŸ–—œ“–•“”œ¤§˜¦§š¥©–¤¥–¡¥”¢£™¤¨™§¨³¾Â³Á¸ÃÇ»ÉÊÃÎÒÅÓÔËÖÚËÙÚÞéëÜêëßêìÝëìàëíßíîáìîàîïçòôàîïÚåçÍÛÜÂÍϯ½¾Ÿª¬”Ÿ£z…‹py€ajqT]dKT[GPWCLSAJQ?HO?HO?HO?HO?HO?HO?HO>HQCMYEQ_KWeR`m]kxiy†y‰–ƒ•¡¢´À¥¹Äª¾É¬ÂÍ®ÄϱÉÓ¶ÎØ·ÓÞ´Ôã°Ôä³Ôå´Øè·Øé¯Óã¤Å֘¼Ì‚£´jŽž^dˆ˜s”¥}¡±°ÁŸÀÑ¥Æמ¿Ð—¸É’³ÄŒ­¾…¦·„¥¶‡¨¹€¡²ƒ¤µ†§¸‰ª»ˆ©º†§¸‚£´€ ¯z”¡vŽšm„’czˆ[r‚Ul|QhzPgyOezLbwH^uF\sF\tI_wMb}Nf‚D\€A[€@ZA[€D^ƒF`…D^ƒC]‚C]‚B\@Z>X}No@PrAQs=Mo2Bd#3W)K>?QJK]VWi^_qbcubcu[\nRSe;&'9"$3(*"$1+-:68E@BOHJWLN[TVcTVcSUbSUbSUbTVcTVcUWdHJW>@M24A,.;,.;-/<,.;)+8(*7:PQRfgh|noƒjl}…œx‚›Waz.8Q3=VKUnMWp=G`DNgQ[tYc|Waz[e~oy’Š”­™¥½ž©Å ®É©·Ò¦´Ïª¸Ó«Æ¨„’­¡¯Ê¨aoŠy‡¢ ®ÉµÃÞª¸Óx† T^yV`ycm†oy’r|•v€™‹¤Š”­ƒ¦™²ÑÛôèòÿ‹•®-7P?Ib„Ž§¢¬Å›¥¾“¶†©s}–q{”“¶¼Æ߶Àٛ¥¾†©¦°É³½Ö‹•®wšwƒgrŽbp`n‹`n‹_mˆYgP^xJYpP_tKZmFUhEUeIYiM]lO_nN^mQ]kNZhGSa>JX0LLAOO>LM:HI7EH6CI0=C2?G5BJ5BK4@L4@L7COTk;Qi?UmDYtG_{^+>^+>\5F`6H`6H`7Ia8Ic9Jd9Jf9Jf=Mn?OpAQsBRt>Nr4Dh&6Z,PABTLM_XYk_`rbcuabtZ[mQRd78J45G01C-.@*+='(:#$6 "1+ -')613@<>KFHUMO\QS`XZgVXeSUbPR_OQ^OQ^QS`RTaEGT=?L35B/1>02?24A13@/1>&(502?LN[mo|y{ˆgivLN[<>K:!$+(+4NQZ‚„§©µ™›¨ikxBCUCDVVWkbcwhi}jlw–{…ž^h8B[5?XKUnMWpAKd?IbPZs\fZd}[e~mw‡‘ª˜¤¼¡¬È–¤¿œªÅ˜¦Á¸ª~Œ§¢°Ë°¾Ùx†¡`n‰€Ž©¸š¨Ã¥³Î†”®q{–kuŽkuŽkuŽfp‰jt€Š£•Ÿ¸ƒ¦{…ž­·Ðàêÿ¨²ËKUnHRk|†Ÿ—¡º™²„Ž§z„t~—{…ž•Ÿ¸®¸Ñž¨Áž¨Á’œµ¦°É°ºÓ‘›´|†Ÿs™[f„Xe…We‚We‚VdR`zIWqAPgKZoFUhBRbBRaGWfL\iN^kN^kS_kVbnQ]i>JV-9E+7C0c#=b$=\&;P(;L(;L(:N(:N(:P(:P(:R(:R(9S(9U'8T&7S%6T%6T$5Q0BZ1CY1CY2DZ3E]4E_4Ea4Ea;Kl=Mn?OqAQu>Mt4Cj&5\+RDEWOPbZ[m_`rabt_`rVWiLM_45G23E/0B+,>();$%7!"4!0 "1%'4/1>:@M57D24A46C68E46C13@(*7(*79;H[]jprikxTVcEGT>@M9;H68E=?LKMZXZg\^k[]jKMZNP]SUbWYfY[hXZgVXeUWcKNUJMR69@ '!*ADMy{‡¦¨´¢¤±mo|GHZIJ\WXl`auij~np…owŽ}‡ dn‡?Ib0:SFPiJTmFPiFPiS]v^h_i‚`jƒmwƒ¦“Ÿ·®¹Õ™§ÂŽœ·}‹¦jx“lz•‘ŸºÅÓÎTb}GUpw… ~Œ§}‹¦Žœ·…“­ƒ¨x‚›nx‘gqŠYc|V`y{…ž­·Ð©³Ìv€™u˜°ºÓ¬¶ÏeoˆV`yz„•Ÿ¸ƒ¦t~—q{”wšƒ¦•Ÿ¸¥¯È¡«Ä¤®Ç¤®Ç­·Ð­·Ð—¡º€Š£my“VaUb‚R`}M[xKYtJXrFTn@OdETgBRb?O^?O\BR_FWaJ[eK\fQ]iVbnR^j=IU*6B,8D2>J-9EBNZamy‰•¡³¿Ë·Ãφ’žLXd"/7;GE?LEERKIVOHTPDPN?KIYFTojx“^l‡D6=C6=C6=C6=C6=C6=C6=C6=E7?L:AQ>GVEN]NWfZftiuƒr€}š‘ž…—£‰›§‹ŸªŽ¢­’¨³•­¹ž»Ë›ºÌ›ºÌž½ÏŸ¾Ð™¸ÊŒ«½‚¡³oŽ [zŒVu‡q¢”³Å¨ÇÙ²Ñã¸×é³Ôå©Ê۞¿Ð—¸É°Á‰ª»‰ª»Ž¯À™ºË¾Ï£ÄÕ¦ÇئÇØ¡ÂӚ»Ì—·ÆŒ¦³Œ¤°‡ž¬€—¥vlƒ“czŒ]t†\r‡TjH^u;Qh3Ia/E]0E`/Gc(@d%?d#=b#=b%?d%?d#=b!;`9^8]8]7\6[5Z4Y4S4I!4C!4E!4E!3G!3G!3I!3I!3K 2J 1K0L/K/K.L.H(:P);O);Q*V,=Y,=Y7Gh9IjNr;Jq1@g$3\)REFXOPbYZl]^p]^pYZlPQcFGY34F23E/0B+,>&'9#$6 !3!0')8-/<79FCEROQ^XZg_anbdqcer]_lTVcKMZFHUFHUGIVIKXJLYBDQ9;H57D57D57D24A.0=,.;"$1)+8HJWdfshjwZ\iOQ^BDQ:KLN[[]jbdqcerQS`TVcWYfY[hY[hWYfSUbQS_DGNDGL25< '!$-HaBLeFPiS]vXb{`jƒeoˆgqŠnx‘~ˆ¡Œ˜°¬·Óž¬Ç…“®bp‹IWrft¨¶ÑÌÚõ„’­2@[-;VesŽ|Š¥}‹¦zˆ£r€š„Ž©s}–gqŠeoˆT^wCMfu˜ÌÖïßéÿ‡‘ªNXq‚Œ¥£­Ær|•ak„‚Œ¥Ž˜±u˜cm†jt{…ž‹•®Ÿ©Â²¼Õ¡«Ä˜¢»¸ÂÛÊÔí­·Ð’œµ~ˆ¡iuVaYf†XfƒP^{JXsGUoCQk>Mb>M`>N^=M\;KX;KX>OYDU_HYaLXdLXdKWc:FR'3?(4@0@0;?+5>%/8$.8(2<2Tk5Kc/E]+@[(@\ 8\6[4Y4Y5Z5Z3X1V3X2W2W1V1V0U/T/N/B/=.>.>.@.@.B.B,C,E+E*D)C)C'D(B 2H 3D!3G"4J"4L#5M$5Q$5Q3Cd4De7Gk:Jn7Fm.=f!0[&QEFXOQ`XYk[]lZ[mUWfKL^@BQ23E24C/0B+-<&'9"$3 !3!0+-<04@<>MHLXUWf]amdfufjvfhw^bnUWfJNZDFUBFREGVGIVOQ^GIV=?L79F68E46C/1>+-:.0=!. "/=?L]_lgiv^`mUWdEGT<>K57F<>KMO^^`mfhwgivTVeVXeY[jZ\iY[jVXeRTcOQ]@CJ=@E),1&),3>AJRU^dfr…‡“ikxSUdKM\OPb\]o_`rRTirz‘š³‰¢U_x-7P9C\=G`DNg\f\fak„hr‹kuŽnx‘z„‰“¬–¢¼š¨Â†’¬[iƒCOilz”³¿Ù·Åßnz”)7Q*6P[iƒ‰•¯•£½|ˆ¢eq‹}‡ isŒ^heoˆS]v7AZr|•ãíÿõÿÿ™£¼GQjt~—£­Æwšdn‡„Ž§‡¦iqˆYaxhp‡€ˆŸ”œ³®¶ÍÈÐ瓛²‰ ÅÍäåíÿ¬´Ë…¤x€—gqŠU`~]kˆcnŒYg‚R]yIWqCOg9H]"/8,8D/7D==HDBNJGRNGSQFPQDOQ;DI5@F/8?&09#,5&0:08C8@K5>G4=F4=F7@IF[3>TT_u[gTb|brŒ`oŒZk‰bs‘yŒ¬ˆ˜¹pŸYf†:9C^Úåûíöÿôþÿåîõí÷ùêóòêóðíóñîôòïóôðô÷óôùõóöùïîðåá´¦£Ð¿íßÜûìéýîëÿïíüèçúåäõàßñÙÙíÕÕëÑÒëÑÒëÑÒÜÃÆÚÁÄÕ¼¿Îµ¸Ä«®º¡¤°—š«’••|—~–}€“z}•|˜‚’y|‰on€c[aV|^T{]R|^T€bW…g]ˆj_ˆj`‘shž€v¬Žƒ¹›‘Ç©žÔ¶¬Ü¿¹åËÌâÉÍßÆÊéÐÔ÷ÞâóÚÞð×ÛúáåÿçëÿèìÿêîÿìðÿïóÿòöÿôøÿõøöÞÜ÷ßÛÿéåÿïëÿëçÿèäýäàôÜØæÍÉáÉÅÜÿи´Ä«§¶žš«’Ž¢ˆŒ{trjpc]dWOaTNh[Ssf`{nf‹~x–‰¥˜’³¦ž½°ªÅ¸°ÍÀºÓĽãÏÈçÐÈëÔÌî×ÏðÙÑðÙÑïØÐî×ÏèÑÉåÎÆàÉÁÚûֿ·Ó¼´Ò»³ÓºµÇ«ªÄ¦¨½Ÿ¡µ—™¯‘“ªŒŽ¨ŠŒ§‰‹¦ˆŠ¦ˆŠ§‰‹¨ŠŒ«¯‘“²”–´˜—¿§£½©¢¼¨¡º¦Ÿ¶¢›±–­™’«—®š“²ž—¹¥žÀ¬¥Ç³¬Ë·°Í¹²Î¹¶äËÎèÍÒæËÒæËÐëÐ×æËÐÜÁÈÚ¿ÄͲ¹Ï´¹Ðµ¼Ï´¹Ì±¸Ê¯´Ë°·Í³¶º¢ ¶Ÿ™°™“«”Ž§Š§Š©’Œª“¦‰Ÿˆ‚•~xŽwqxr—€z¡Š„§’½ª¤½¬¥À­©Á°©Ä±­Å´­Ç´°Ç¶¯Á®ª¿®§¾«§º©¢¹¦¢µ¤´¡³ œ¾ª©¿«ªÁ­¬Â®­Ä°¯Æ²±È´³Éµ´ÔÀ¿ÕÁÀØÄÃÝÉÈäÐÏìØ×óßÞ÷ååÞÏÒÚÏÓÛÏÓÞÓ×ã×Ûâ×ÛßÓ×ÚÏÓÞÒÖÜÑÕÛÏÓ×ÌÐÕÉÍÒÇËÑÅÉÎÃÇĹ¿Ä¹¿Â·½Á¶¼¿´º½²¸¼±·»°¶¼±·¶«±®£©¥š ’˜“ˆŽˆ}ƒ~x|rqvjnqdhk^beW[^OSVFJM@DG6:=6:=6:=6:=6:=6:=6:=69>26A59E:>J@DPGMYTZfaitks~t~ˆx‚Œ{ˆ‘Œ•€Ž—„’›‰— ‹œ¦Ž¡¯Š ­Š ®‹¡®‹¡¯ƒ™¦vŒškŽ\r€bx…p†”„š§”ª¸³À ¶Ä ·Å–­»§´‹¢°ˆ¢¯ˆŸ­„ž«ˆŸ­‹¥²“ª¸”®»š±¿˜²¿•¬º‰£°€—¥yžk‚qˆ–yž}”¤y m„–`w‰Wm‚Uk€Pf}I_v@Vn8Mh0E`+@[&=\4U2W/T/T0U0U-R+P1V0W/W0W.V/V-U-O+C+?+?+?+A+A+C+C*B(B(D'C&B&B%C%A-E-C-C.F.H/I/K0N0@a1Ab5Eg7Gk5Dk,;b-V$MHJYLN[RTcTVcPRaGIV<>M57D)+:$&3!#2!#0!0)+ /+.=39GFIZU[idgxkqsv‡tzˆjm~`ft[^oKQ_:=N5;I=@Q?BQKMZMO\QS`SUbPR_DFS57D)+8"$1,"$1-/<:?QWYhlmqs‚[\nWYhSTfSUdVWiXZiUVhRTaBEJ8Xc™¸„«`i†T`zNXq8D\;F\HUhQ\pGTe;FX7DT;GW=IW.;D,9A*7@(5='4=(5=)6?)6>3@Ijw¨µ¾Ê×ßáî÷ÇÔÜ^kt(--794@;CFE29A/8?18@3:8;758536425758:8;<:=65:98=<;@@?DEDIMLQWV[^]bxy}}~‚ƒ„ˆˆ‰Œ‘‘’–—˜œ™œ¡š¢Ÿ¤¨ž£©—œ ’—Š“rw}X]a[`fty}•›¡¦ª¬±·´¹½´¹¿°µ»£ª²¦­—ž¦‘š¡’™¡•ž¥œ£« ©°¤«³©²¹±¸À§°·“š¢„”ov~LYb6IWE\lYp€`w‰]t†Wm‚McxE[r>Tk>Tle!?e)El(Em)Do(Eo)Dq(Eq)Dq+Dl&=]':X$7U!4R2P1O1O1O/M1Q 3S"5U!4T1Q-M*J#A"?#@#B#B#B$C$E*K,M /P!/R-P)L$G CHJWLN[QS`SUbOQ^FHU;=J46C(*7#%2 "/!#0!.**".(+<5;KKQa_eunt„v|Œz€{‘io_euU[kFL\4:J4:J?EUDJXMO^PR_UWdXZgVXeKMZ<>K24A%)')624A9;HIKX^`mgivVWiMN`CDV9:L:;MOPbij|st†\]oXYkTUgUVhXYkYZlVWiRTaCFK9=>*.1 $'"%*-05=@GHKRX[d[^g\^jWYeSUbQS`KM\CFWT\su˜™²bl…0:S";3=VS]v^h[e~\fgqŠu˜~ˆ¡‰¢}ˆž~‰|‡™fqƒOZlal~˜ª›­ozŒbmQ\n6AS>I[y„–©´Æš¥·t“bmƒYc|Wazlvjt]g€˜¢»ôþÿÛåþz„š³Úäý¬¶ÏQ[tOYrŒ”«†ŸZ`pDJZciy…•“™©¬²Â¨®¾’˜¨ÄÊÚÜâò­³Ãƒ‰™„Ššjp€8?R9Zc‚˜¡¾“œ¹oy”`j…T^w=G`LWmT_uU`tITh;FX5@R3?O3?M.;D,9A*7?(5='4<(5=)6>)6>6CKerz›¨°ºÇÏ×äìÄÑÙ^ks$++2:18@29A8?G9@H6=E8?G9@H7>F4;C18@3:B:AIAHPCLU7AM-9G-9G1=K3?M>JXHTbGSaMYgZftdp~`lzZft[gu`lzbocpZjzVex[j}cr‡dsˆ]lƒUd{R`zgux†£€Ž«…’²‚¯}ŠªŒ®Àp~¡HVy8GhMZ|IVvU^}^g†dkˆkrsx•tz”ptnrsuŽxz…‘œ ©ž¥¯_fp#0$,9S\mdllw‹nzu›o}—l{˜l{˜cr‘]l‹\g‡!?7@]ÅÐæòûÿðúÿäíòìöõêóîêôìíôìîõíïôîðõïóõòõôðÿ÷õøé泤¡×ÈÅñßÝìÚØïÚÙñÜÛôÜÜòÚÚôÚÛöÜÝùÜÞøÛÝùÛÝûÝÝÿåãþáÝùÜØ÷ÚÖ÷ÚÖöÙÕô×ÓòÕÑòÕÑëÎÊåÈÄãÆÂàÿܿ»ÝÀ¼áÅÁÜÿÙÁ½ØÀ¼ÛÿàÈÄãËÇãËÇáÉÅäÌÈìÔÐõÝÙüäàÿçãÿéåÿëçÿìëüßáûÞâøÛßõØÜòÕÙîÑÕìÏÓëÎÒèËÏåÈÌßÂÆÒµ¹Ä§«·šž°“—­‘šxštœv¡†{ª„¶›Â§œÉ®£Ì±¦Ì±¦É®£Ä©ž» •±–‹§ŒŸ‡}uqˆsr€kju`_iTSbMLaLKcNMq\[ydc‡rq•€£Ž±œ›¾©¨Æ±®ùâÜÿíåÿøðÿùñÿøðÿòêýæÞðÙÑøáÙøáÙñÚÒäÍÅ×À¸Î·¯Ä­¥¼£ž¾Ÿ¾šš¹••´±±²ŽŽ´¸””¹••»——½™™¿››ÀœœÁ¾Ÿ¸ œ¶£¸£ž·¤ž·¢´¡›³ž™±ž˜¹¤Ÿ¹¦ »¦¡¼©£À«¦Á®¨Ä¯ªÅ±ªÖ¿·×Á¶ÚĹÜÆ»ÝǼÜÆ»ÜÆ»ÛźåÏÄãÍÂàÊ¿ÜÆ»ÚĹÙøÙøØÄ»ÝÊÄ×Æ¿ÑÀ¹Ð¿¸ÒÁºÕĽ×Æ¿×Æ¿ëÚÓîÝÖíÜÕëÚÓíÜÕôãÜøçàöçâèÝÛãÙØàÔÖÞÔÓßÓÕÞÔÓÝÑÓÙÏÎ÷¹¾´³¹­¯²¨§­¡£¨ž¦šœ¥™™«œ¬œœ¬œœªšš¨˜˜¨˜˜¬œœ¯ŸŸ­­®žž°  ±¡¡²¢¢³££´¤¥¤•˜¤•š§˜«œ¡±¢§´¥ªµ¦«µ¦«ÔÅÊÒÃÈοÄɺ¿Ã´¹¾¯´º«°¶ª®¯£§ªŸ£¥šžŸ”˜š“–‹”‰”‰“ˆŒ“ˆŒ“ˆŒ‘†Š‚†‰~‚„y}x{‚|~{||xyxtuqmngcdZVWQMN@<=>:;:67734734845;78=9:845:67>:;A=>EABMIJWST^Z[vrs{wx}~†‚ƒ‹‡ˆŒ–’“›—˜žš›¤ ¡¤ ¡™š—“”Œˆ‰sopZVWhde~z{š–—¯«¬¹µ¶½¹º½¹º¹·¸ª¨­¥¤©ž¢™˜™˜ž¢¤£¨©¨­²±¶º¹¾ÁÀŹ¸½¡ ¥‚†[Z_49?8JXCZjRi{Wn€Uk€Pf{H^u@Vm>Tl=Sk@MMO\]_lacpXYkSTfNOaABT78JJK]hi{vw‰^_qYZlUVhWXj[\n\]oWXjRTaDGL:>?+/2 $'"'(+058?>AHTW`X[dZ\hWYeTVcSUbMO^FIZV^uhr‹yƒœdn‡=G`$=8B[Zd}^hU_xR\u`jƒyƒœ‰“¬…¨{†œ~‰ozŒT_qQ\nxƒ•—¢´ŒžXcucn€S^p=HZHSe}ˆš¢­¿’¯q|cn„NXqPZseoˆcm†‚Œ¥ÏÙòñûÿ¤®Çx‚›ÁËäí÷ÿ¬¶ÏZd}AKdz‚™ƒŠœ[aqHN^ciy{‘Š £³Ÿ¥µ±·ÇÔÚêÀÆ֐–¦ƒ‰™ƒ‰™_eu(/B5Xa€š£Àœ¥Â|†¡isŽYc|EOhWbxXcyR]qFQe;FX5@R2>N.:H.;D,9A*7?(5='4<(5=)6>)6>;HP^ks‡”œ¢¯·ÇÔÜ¿ÌÔ]jr  '&-5-45F29A7>FCJRKRZJS\7AM/;I.:H2>L6BP@LZHTbHTbS_m]iwco}am{\hv\hv`lzbo^k|WfyUdwXgz^m‚_nƒYhSa{Tb}m{–{‰¦{‰¦y†¦vƒ£s€¢vƒ¥x†©uƒ¦Xgˆ+:[CPr`mkt“endkˆmt‘w|™v|–qunr‹vx‘~€•…‘“œ’™£`gq%2$,9U^oks†z…™|ˆžu›n|–hw”fu’gv•`oŽ]hˆ!?6?\ÄÏåñúÿñûÿåîóìöõêóîêôìíôìîõíïôîðõïóõòõôðúïíôåâ²£ ØÉÆôâàñßÝôßÞóÞÝõÝÝ÷ßßøÞßöÜÝøÛÝúÝßúÜÞøÚÚôÖÔóÖÒòÕÑóÖÒô×ÓòÕÑíÐÌèËÇèËÇâÅÁÞÁ½ÝÀ¼Ü¿»Ù¼¸Û¾ºßÿ׾ºÛ¾ÞÅÁàÇÃßÆÂáÈÄäËÇèÏËòÙÕõÜØùàÜùàÜ÷ÞÚôÛ×óÚÖòØ×ùÜÞùÜÞùÜÞùÜÞùÜÞùÜÞùÜÞùÜÞÿéëÿìîÿîðÿíïÿèêÿãåýàâüàßïÓÏðÕÌò×Îò×ÎñÖÍðÕÌíÒÉìÑÈÜÁ¸Ø½´Ò·®È­¤¼¡˜°•Œ¥Š„}xvŠut‚mlva`jUTbML`KJ`KJhSRp[Z|gf‰ts—‚¤Ž±œ›º¥¢µ™¹¢œ»¤ž¸¡›³œ–®—‘¦‰Ÿˆ‚ì¦Ç°ªÇ°ªÄ­§Â«¥Ã¬¦À©£¼£ž²“‘±¬Š‹¨†‡¦„…¦„…¨†‡ªˆ‰³‘’µ“”¸–—»™š½›œ¼š›»™š·—˜¶œ›³ž›¶žœµ ¶žœ²š²š˜®™–¸ ž¸£ ½¥£À«¨Æ®¬È³°Î¶´Ï·³Ò»µÕ¼µØ¿¸Û»ÞžßÆ¿ßÆ¿ÞžáÈÁàÇÀÞžÝĽÝĽÞžßÆ¿ßÈÀÔÁ»Ð¾ºÍ»·Î¼¸ÓÁ½ÙÇÃÝËÇßÍÉÙÇÃÞÌÈáÏËáÏËäÒÎé×ÓëÙÕæ×ÒáÓÒÞÓÑáÓÓàÕÓãÕÕÝÒÐÙËËÑÆÄʼ¼Æ»¹Ä¶¶¿´²¾°°»°®½¯¯½¯®»­¬¾°¯À²±Á³²Â´³Å·¶Ê¼»ÎÀ¿ÖÈÇÖÈÇÖÈÇÖÈÇÖÈÇÖÈÇÖÈÇÖÈÈÊ»¾Ê»Àɺ¿Æ·¼Ã´¹Á²·Á²·Â³¸Ë¼Áɺ¿Å¶»¿°µº«°´¥ª°¡¦¬ ¤¢–š’–˜‘‘†ŠŠƒ…z~‚w{vz„y}„y}…z~„y}ƒx|vz~sw|sv{}~z{|xyyuvsopjfg^Z[UQRB>??;<;78845734845:67<89623845;78>:;B>?IEFRNOYUVmijrnoyuv~z{‚~ˆ„…ŽŠ‹“™•– œ¡ž›—˜’Ž„€kghTPQmij€|}œ˜™´°±¾º»½¹º¼¸¹»¹º®¬±©¨­£¢§ž¢ž¢£¢§ª©®®­²½¼ÁÈÇÌÏÎÓÈÇÌ°¯´€„GFK %+=O]CZjMdvNewMcxKavDZqGIVKMZPR_QS`LN[BDQ79F/1>%'4 "/ - "/!., -!%1@M "/( -/1>EGT^`mprqs€cdv\]oVWiIJ\<=ONOalmxy‹`as[\nWXjYZl_`r`asZ[mRTaEHM;?@-14!%( %#&+-0747>NQZTW`XZfWYeVXeVXePRaIL]Zbydn‡jt`jƒDNg)BP-9I(4B.;D,9A*7?(5='4<(5=)6>)6>?LTWdls€ˆ‹˜ ¹ÆνÊÒ^ks +#$+3+2:.5=4;C4;C07?07?07?8?G8?G3:B9@HJQYRYaMV_7AM1=K0V_phpƒ}ˆœ~Š nz”hvhw”l{˜}Œ«{Š©_jŠ!?5>[ÂÍãñúÿòüÿåîóìöõêóîêôìíôìîõíïôîðõïóõòõôðÿöôúëè´¥¢ÖÇÄóáßöäâýèçÿêéúââ÷ßß÷ÝÞ÷ÝÞøÛÝô×ÙôÖØõ××ùÛÙøÛ×÷ÚÖ÷ÚÖô×ÓíÐÌãÆÂÜ¿»áÄÀÛ¾ºÖ¹µÕ¸´Ó¶²Ñ´°Ó¶²×º¶Ó·´Ø¿»ßÆÂàÇÃÜÿÝÄÀäËÇëÒÎñØÔòÙÕôÛ×ôÛ×ôÛ×óÚÖóÚÖóÚÖ÷ÛÚ÷ÚÜ÷ÚÜ÷ÚÜ÷ÚÜ÷ÚÜ÷ÚÜ÷ÚÜòÕ×÷ÚÜûÞàüßáúÝßøÛÝ÷ÚÜ÷ÛÚöÚ×õÙÕôØÔõÙÕøÜØýáÝÿçãÿêæÿïëÿíéÿçãùÝÙêÎÊÙ½¹Ê®ª¿¦¢¢Šˆš…„{zƒnmva`lWVfQPdONjUTr]\~ihŒwvš…„©”“¸£¢Á¬©É±­Î·±Õ¾¸Ö¿¹Ò»µÈ±«»¤ž²›•¤‡¨‘‹ª“¨‘‹©’Œ«”Žª“¦‰ž€€œ|}™wx’rs‘opŽno‘oppq¨†‡§‡ˆ«‰ŠªŠ‹­‹ŒªŠ‹«‰Š¨ˆ‰¸œ›·œ¸ž¸ž¸ž¶œ›³™˜²˜—·œ¸žº Ÿ½£¢¿¥¤Â¨§Äª©Å«ªÆ­¨É°©Îµ°Ô»´ÙÀ»ÜüÞÅÀßÆ¿âÉÄáÈÁßÆÁÜüÛ½ÜüÝÄ¿Üſϼ¸Î¼¸Ï½¹Ñ¿»Ô¾ÕÿÕÿÕÿçÕÑé×ÓèÖÒäÒÎåÓÏêØÔíÛ×ëÙÕçØÕåÖÓäÕÒåÖÓåÖÓâÓÐÜÍÊ×ÈÅ;»Ì½ºÊ»¸È¹¶È¹¶Éº·Ê»¸Ì½ºÆ¸·Ê¼»ÎÀ¿ÑÃÂÓÅÄ×ÉÈÜÎÍàÒÑäÖÕäÖÕå×ÖæØ×çÙØçÙØèÚÙèÚÚæ×ÚèÙÞéÚßåÖÛáÒ×ßÐÕâÓØåÖÛÒÃÈÐÁÆ̽ÂǸ½Á²·¼­²¸©®´¨¬¨œ ¤™ž“——Œ…‰‰~‚„y}‚w{|qu}rv}rv~sw~sw~sw~sw}tw~xz{wxyuvvrsqmngcd[WXRNOEABB>?=9:956734845956;78512734956;78>:;D@AMIJTPQd`aiefplmvrs{wx€|}‡ƒ„Œˆ‰’Ž˜”•›—˜•‘’Š†‡|xygcdUQRplm{|š–—´°±¼¸¹·³´µ±²·µ¶²°µ­¬±§¦«£¢§£¢§¨§¬¯®³´³¸ÁÀÅÍÌÑÒÑÖÏÎÓ¾½Â‹ŠQPU05;HZhKbrQhzPgyNdyMcxH^uAWn?Um?Um?Tq@UrAVuBWvBWvAXw>[{:Yx:Xz?]B`„B`„B`†Ca‡Fc‹Fc‹FcFcFb‘Fb‘Fb‘GbE[€DXy?St:No5Ij2Fg1Ef0De5Ij7Kl:No;Op;Op8Lm4Hi1Ef*=^+;]*:\(8Z&6X$4V#3U"2T-O+M(J$F B@ > =FHUJLYOQ^PR_JLY@BO46C,.;"$1 -,!. "/ - "/$(4CFWMSc]cskqv|Œ„Šš“™©ž¤´’˜¨}ƒ“bhxDJZ,2B-3C>DTHN\]_n`bodfsgivcerXZgIKX>@M&(5)(')6@BOdfsƒŠŒ™rs…cdv\]oPQcEFXYZluvˆyzŒcdv]^pYZl\]ocdvdew\]oSUbFIN=AB/36"&) %"'&)0,/6ILUPS\VXdWYeXZgY[hTVeLO`\d{fp‰gqŠXb{CMf(2K?IbKUnV`yT^w]g€r|•ƒ¦…¨~ˆ¡xƒ™w‚–R]oDOaq|Ž «½‰”¦NYk-8JKVhYdv^i{bmu€’‚Ÿ{†˜q|cn„>HaOYrcm†bl…¶ÀÙôþÿª´ÍOYr§Àôþÿäîÿ£­Æ†©kuŽRZqgn€bhx^dtbhxrxˆ‡—‹‘¡–œ¬ÇÍݵ»ËˆŽžz€‰ŸŒ’¢_eu &7HQpu~›vœbl‡U_zPZsLVoal‚VawHSg>I]7BT.9K%1A*8.:F,9B*7@(5>'4=(5>)6?)6?ANWS`ifs|}Š“³ÀÉÀÍÖbox +!")1+2:.5=4;C3:B.5=.5=,3;5L5AO=IWDP^HTbKWeYes`lzkw…r~Œq}‹ht‚^jxWdtTatRavSbwUdyVe|Ud{Sa{Q_yWe€gu’n{›n{›q~ n{fs•cp’\kŒ\kŒIXy$3RIVvhv“kt“nw”lsv}™…Ÿ|‚œuy’rv}–ˆ‹ž‚†’…‰’ˆ™hoy4IEFOKL^Z[c_`jfgplmvrs|xyƒ€ˆ„…‰Š‘Ž“Œˆ‰}~tpqgcd]YZsop{|—“”­©ª³¯°­©ª«§¨®¬­¯­²©¨­¤£¨ Ÿ¤¡ ¥§¦«®­²³²·¹¸½ÃÂÇÅÄÉÆÅÊ¿¾Ãš™žlkpRW]TftXo^u‡\s…Yo„VlRhLbyCYqDZrEZwF[xG\{H]|I^}H_~Da<[z;Y{B`‚Ge‰Ec‡Ec‰Ge‹JgJgJg“Jg“Jf•Jf•Jf•Kf‘G]‚FZ{BVwb+=a*<`"4X1U-Q)M$H D B AFHUJLYNP]NP]IKX>@M24A*,9 "/++!. "/!."$1&*6?BSKQa]cskqu{‹…•Œ’¢–œ¬Š w}`fvEK[06F39IEK[PVdacrdfsgivikxfhuZ\iJLY?AN!.)+%'457DWYf|~‹‘ž|}hi{_`rUVhLM_bcu}~{|Žefx^_qZ[m_`rghzhi{^_qSUbFIN>BC047$(+!&!&#&-'*1CFOLOXTVbXZfZ\i[]jWYhORcYaxdn‡fp‰OYrAKd4>WDNgEOhZd}Zd}jt…¨—°‰¢pz“nyp{Q\nP[mŠœ™¤¶r}:EW"-??J\^i{ozŒny‹r}y„–w‚”s~’Ydz7AZYc|s}–|†ŸÐÚóëõÿ‹•®FPi¦°ÉèòÿÏÙòŸ©Â’œµyƒœFNe\cubhxek{bhxnt„|‚’‹‘¡¨®¾ÀÆ֘ž®y~„”Ž”¤“£Y_o!$@DMlaj‡^g„Q[vISnGQjJTmU`vITj?J^.:F,9B*7@(5>'4=(5>)6?)6?BOXR_hcpy{ˆ‘·ÄÍÈÕÞhu~  '/)08-4<3:B29A,3;*19*1907?29A07?6=EBIQHOWENW6@L6BP3?M6BPAM[FR`HTbLXfam{co}jv„r~Œr~Œiuƒ^jxXeuQ^qRavTcxUd{SbyR`zQ_yQ_z\j‡ft‘ly™rŸvƒ¥o|žcp’bo‘cr“[j‰:Ih+HIWtgumv“pz•qx”x™~„žz€˜swrw{}”„‡š}‚†{‚ŒW^h4<89845734734845623734845845956>:;FBCLHI\XYa]^iefokluqr{wxƒ€ˆ„…ŽŠ‹‹ŒŒˆ‰‚~uqrlhihdegcdyuv†‚ƒ˜”•§£¤ª¦§§£¤¦¢£¦¤¥§¥ª¢¡¦œ¡™˜›šŸ¡ ¥¨§¬­¬±¯®³´³¸¶µº·¶»´³¸ Ÿ¤€…hmsYkyby‰m„–lƒ•f|‘awŒ\r‰Wm„J`xKayK`}La~MbOdƒOdƒNe„Da:Yx8VxA_Ge‰Db†Ca‡Ec‰IfŽIfŽIf’If’Ie”Ie”Ie”JeF\EYzAUvK02?(*7!.**!.!#0 "/#%2'+79BC269'+. #("'"%,$'.?BKILURT`XZf[]j^`mZ\kRUfRZqZd}cm†HRk@Jc@JcISlKUnYc|bl…‹¤§À“¶oy’_i‚itŠitˆYdvep‚ƒŽ ‚Ÿ[fx2=O(::EWdo{†˜v“u€’|‡™z…—s~’DOe)3L]g€~ˆ¡“¶ÛåþÎØñjt\f¢¬ÅÐÚó¹Ãܖ ¹—°v€™OWn\cu`fvek{ciykqtzŠ“£ÅËÛ¹¿ÏˆŽžu{‹ƒ‰™”šªŠ JP` (/KFOnYbW`}OYtGQlCMfGQjEPf=H^9DX=H\>I[9DV4@P2>L.:F,8D*6B(4@'3?(4@)5A)5AAMYS_kfr~™¿Ë×ÑÝénz†  +"*%,4)08/6>.5='.6&-5(/7*19,3;.5=29A8?GRw>Rw>Rw=Qv=Qv2Fk2Fk0Di,@e&:_3X,Q(MEGTIKXMO\MO\GIV;=J/1>')6 -))!.!#0!#0$&3(,88;LAGWOUeY_obhxpv†…‹›•›«sy‰ek{V\lDJZ39I8>NIO_RXfbdsfhukmzoq~mo|dfsUWdKMZ "/!.(*724A:18@4;C7@I6@L9ES5AO8DREQ_IUcHTbMYggsYesLXfKWeMYgMYgP\jUbrO[qRaxWeVd~R`zO]xQ_|Sa~gt”q~ Œ®Š—ºƒ³kx›am“lyœ€®Yh…%4Q5E_o}˜cq‹eoŠt~—ry“s{’tzov‰kp„joƒpr‡twˆ‹š‘•žhoy,3=$,9IQ^bk|ai|lw‹nz‹¥{‰£Ž«‰˜µŽ­€®ep"@09V½ÈÞðùÿôþÿçðõí÷öêóîêôìíôìîõíïôîðõïóõòõôðÿôòùê箟œÇ¸µåÓÑóáßÿîíÿïîÿøøÿòòÿñòÿõöÿóõÿíïÿìîÿðñûÙØõÓÑíÊÈäÂÀݺ¸Ô²°Íª¨Æ¤¢¼™—µ“‘²±°‹­‹‰±ŽŒµ“‘¦‡‚žy™|v›~v¢…¤‡Ÿ‚|˜{s¦‰ƒŸ‚z–ys’um“vp–yq–ys–ys•yu–zw˜|yš~{~Ÿƒ€¡…‚¢†ƒ­‘Ž·›˜Å©¦Ñµ²Ø¼¹Û¿¼Þ¿ßÃÂåÈÊæÉÍèËÏêÍÑìÏÓïÒÖñÔØòÕÙìÏÓóÖÚüßãÿæêÿæêýàäô×ÛìÒÕʲ²Á¬«µ Ÿª•” ‹Š”~‡rq~ih\GFbMLlWVydcˆsrš…„¬—–·¢¡Ì¹µÍ»·ÙÆÂæÔÐíÚÖèÖÒæÓÏçÕÑéÖÒêØÔèÕÑàÎÊÛÈÄ×ÅÁÓÀ¼Ì¸·É°³Æ­°Ãª­À§ªÀ§ªÂ©¬Å¬¯Ç®±Ë²µË²µÌ³¶Ë²µÉ°³Å¬¯Á¨«À¦©È©®Êª¯Ë«°Ë«°Ë«°É©®Æ¦«Å¥ªÃ£¨Ä¤©Æ¦«È¨­Ë«°Í­²Ï¯´Ï°µË®²Ë±´Ñ´¸Ó¹¼Ø»¿Ø¾ÁÛ¾ÂÙ¿ÂæÉÍãÉÌãÆÊßÅÈáÄÈßÅÈãÆÊáÈËÓ¿ÀÕÃÃØÆÆ×ÅÅÔÂÂÓÁÁÕÃÃØÆÆÔÂÂØÆÆÚÈÈÖÄÄо¾Ë¹¹Â°°º¦¥¦ŽŠª‘Œ±˜“¹ ›½¤Ÿ¼£ž¶˜°—’‘xs’yt“zu—~yœƒ~¡ˆƒ¦ˆ¦‘Ž¹««¼²³Ä¹½ÊÀÁÎÃÇÑÇÈÔÉÍ×ÍÎÛÐÔÛÑÒÜÑÕÞÔÕàÕÙá×Øâ×ÛãØÜïãçðáæñâçòãèðáæéÚßÝÎÓÔÅÊɺ¿Éº¿È¹¾È¹¾Ç¸½Æ·¼Æ·¼Ã·»½±µ»°´¹®²´©­®£§¦›ŸŸ”˜›”‘†ŠŽƒ‡Šƒ†{ƒx|‚w{ƒx|‚y|‰‹‰ŠŒˆ‰Š†‡†‚ƒ~z{sopkghOKLJFGD@A=9:845623623734845956956956956=9:D@AIEF^Z[c_`kghrnoxtu{|‡ƒ„Œˆ‰œ˜™•‘’‡ƒ„tpqc_`^Z[fbcqmn‰Š›—˜¦¢£¦¢£¥¡¢©¥¦ª¦§¦¤¥§¥ª¢¡¦œ¡›šŸœ¡£¢§«ª¯°¯´µ´¹´³¸·¶»²±¶¥¤©œ› „ƒˆ[`fRdrf}|“¥~•§s‰žh~“awŽ^t‹Vl„Vl„VkˆVkˆVkŠVkŠVkŠTkŠB_5Ts2Pr>\~Ec‡A_ƒ>\‚A_…IfŽIfŽIf’If’Ie”Ie”Ie”JeCY~CWx@Tu=Qr:No9Mn9Mn:No@TuBVwEYzFZ{EYzBVw>Rs@MACP=?L46C)+8"$1, - - - -!#0(*7,0BE+/2),1'*/#&-&)0,/89N DKgENmLUrNWtEOjHT9ES>JXHTbGSaEQ_R^lfr€R^lLXfEQ_EQ_GSaEQ_HTbR_oHTj=Ke:HcCQlKYtJXuFTqERr_lŽanan‘\hŽS_…KW}HT|HUxKZyM]w'A>Nhˆ–±esOYrju‹rz‘|„™{—jq„]bvafyor…wz‹¥©´{ˆPWa.5?/7DKS`ZctmuˆmxŒmymy“m{•tƒ {Š§w†¥n}œWb‚!?+4QºÅÛñúÿóýÿèñöêôóìõðìöîîõíîõíïôîïôîñóðóòîþóñÿö󰡞µ¦£é×Õöäâ÷âáíØ×õÝÝôÜÜõÛÜôÚÛöÙÛõØÚöØÚöÖ×ôÐÐñÎÌîÈÇåÂÀູص³Ô®­Ð­«Á›šÀ›ÄžÂŸÅŸžÇ¤¢Ï©¨Ò¯«Û½µÜ¾´ßÁ¹âĺæÈÀéËÁëÍÅìÎÄêÌÄìÎÄîÐÈìÎÄèÊÂæȾèÊÂêÍÅâÆÂàÄÀÜÀ¼Öº¶Ð´°Ë¯«Ç«§Å©¥¦Š†¥‰…¢†‚ „€ŸƒŸƒŸƒ „¸›»ž¢º¡¯’–ž…‘txŒosptŠmqpt‘tx—z~€„£†Š§ŠŽ§¶žž¯š™¨“’ ‹Š˜ƒ‚Žyxƒnm|gfkVUjUTjUTnYXwba„on‘|{™…„¼ª¨¹ª§ÜÊÈãÔÑüêèÿú÷ÿñïòãàîÜÚãÔÑáÏÍÚËÈÛÉÇØÉÆÔÂÀϽ»Â®¯Ã­°Â¬¯¼¦©Ã­°Ñ»¾Å¯²Ì¶¹Ëµ¸Ó½Àɳ¶Ã­°Ç±´Â¬¯Â¬¯Ì³·Ï²·È©¯Ï°¶½ž¤Í®´Î¯µÎ¯µÉª°Î¯µÊ«±È©¯Ì­³Î¯µÎ¯µÐ±·Ò³¹Ô¹¾Ì³·Ö»ÀÜÃÇÒ·¼Ð·»ÛÀÅÚÁÅàÅÊÝÄÈÝÂÇÜÃÇÜÁÆäËÏáÆËßÆÊ×ÃÅÖÃÅÔÁÃÔÁÃÖÃÅÖÃÅ×ÄÆÚÇÉìÙÛõâäõâäóàâúçéöãåíÚÜðÜÝáÉÇâÉÅÕ¼¸Í´°Ò¹µÐ·³Ç®ªÇ®ªÂ©¥¾¥¡Ãª¦Ä«§¼£Ÿ¿¦¢È¯«Å°­Â¶¸°§ªŸ–›¦ ¡˜’‰Œ“Š‰€ƒ‡~ƒ“Š”™²©¬·®³­¤§¬£¨¨¡‘•’ƒˆ•†‹¥–›¦—œ™Š˜‰Ž¦—œ¨™ž§˜´¥ª½®³¸©®º«°¿°µ¹­±¼°´º¯³¹®²µª®±¦ª« ¤¦›Ÿ£˜œš“–‹„ˆ‡|€‚w{tx~sw~uxy{„€‹‡ˆ‹ŒŽŠ‹‡ƒ„~z{xtua]^[WXPLMEAB=9:956956956845845845845845845845845PLMUQR^Z[jfgwstƒ€‰Š’Ž§£¤£Ÿ “vrs\XYYUVnjk„€™š¡ž¦¢£©¥¦ª¦§­©ª²®¯´²³­«°«ª¯¬«°­¬±°¯´´³¸·¶»º¹¾¿¾ÃÂÁÆÀ¿Ä¸·¼«ª¯™˜€…jou@R`d{‹ƒš¬Œ£µvŒ¡tŠŸk˜e{’g}•f|”cx•`u’\qYnVkŠSj‰A^~<[z;Y{@^€HfŠKiHfŒCa‡Fc‹HeJg“Kh”Jf•Fb‘B^@[†?Uz>RsRsAUvCWxAUv>Rs=Qr=Qr>Rs?St@Tu@TuAUvAUx@V{AW~CY€DZDZCY€AW~@V}9Ov8Nu9Ov9Ov7Mt1Gn(>e 6]46C8:G>@MACP=?L46C*,9#%2, - - - -!#0(*7,0<@CTGM]NTdMScJP`RXhfl|x~Ž~„”msƒV\lGM]EK[KQaRXhV\jLN]WYfegty{ˆ|~‹su‚givMO\,*46CEGTOQ^WYfKMZ@BObcujk}mn€abtXYkbcuvw‰‡ˆšuvˆjk}efxkl~lmcdv[\n[]jWZ_W[\FJM,03!$)#&+*-425<58A?BKQS_fhtikxqs€‚„“vyŠEMd1;TCMfOYrKUnHRkDNgPZsWaz‰“¬²¼Õ¤®Çoy’KUnS]vlw€‹Ÿlw‰bm_j|`k}NYk,7I$/Aal~r}lw‰[fxxƒ•©´Æš¥·[fz&<@JcgqŠz„¡«Äš¤½\fR\u– ¹¨²Ë˜¢»š³œ¦¿‘›´pz“OWnfmagwV\lagwy€†–Ž”¤³¹É®´Ä}ƒ“w}‹‘¡§­½w},2B AHdBKjIRoKTqEOj@JeFPiQ[tGRhJUkLWkLWkFQc=HZ2>N,8H'3C ,<'3C1=M0F29A+4=:DP7CQ>JXIUcKWeJVdVbpgsO[iFR`@LZ?KY@LZGSaR^lYfwMYqBPk=KfCQlHVsGUrDQqCPr\i‹^kŽ`l’_k‘[gXdŒXdŒZfŒZi†@Pj!;EUnŠ˜²_n…DOelw‹“›°ƒ‹žszgn€^cvX]pbexps‚w{†Y]f=DN(/9-5BGO\U^oem€itˆq}“t€šn|–q€w†£o~^mŒWb‚!?+4QºÅÛñúÿóýÿèñöêôóìõðìöîîõíîõíïôîïôîñóðóòîÿøöÿò瀞˜³¤¡æÔÒíÛÙïÚÙîÙØóÛÛóÛÛóÙÚóÙÚô×ÙóÖØóÕ×ôÔÕòÎÎñËÊíÇÆæÀ¿ß¹¸Ù³²Ô®­Ò¬«Ç¡ É£¢Ë¥¤Ì¦¥Ì¦¥Ï©¨Õ¯®Ù³°ß¾·ÞÀ¶âÁ¸ãÅ»èǾéËÁíÌÃìÎÄöÕÌøÚÐþÝÔþàÖÿßÖÿá×ÿäÛÿéßÿìæÿíæÿëçÿëäÿéåÿéâÿèäÿèáÿéåÿèáÿäàýâÛúÞÚúßØúÞÚúÞÚëÎÐîÑÓîÑÕèËÍÞÁÅÖ¹»Ó¶ºÓ¶¸Í°´Ì¯±È«¯Ä§©À£§»ž ¸›Ÿ´š›¬””¦‘¡Œ‹ˆ‡™„ƒ“~}‹vu…pomXWiTSePOfQPmXW{feŠut“~•ƒ‡xu«œ™¯ ¾¯¬ÓÄÁÕÆÃÑ¿ßÐÍÝÎËÚËÈÏÀ½Ê»¸ÒÃÀÕÆÃÏ¿¿Á®°¶£¥´Ÿ¤µ¢¤É´¹ÚÇÉ˶»Â¯±Î¹¾Î»½Ä¯´¿¬®Æ±¶Å²´Æ±¶Ì¶¹È­´Ë®³Õ·¿È«°Ì®¶Î±¶Ç©±Â¥ªË­µË®³Ë­µÍ°µÐ²ºÑ´¹Ð²ºË°·Í´ºË´ºÌµ½Í¶¼ÑºÂÖ¿Å×ÀÈÔ½ÃØÁÉßÈÎÚÃËÕ¾ÄÚÃËàÉÏÛÄÌÛÆËÚÇËØÅÇÖÃÇ×ÄÆØÅÉ×ÄÆØÅÉÜÉËØÅÉÛÈÊßÌÐâÏÑåÒÖåÒÔäÑÕäÐÒÞÆÆÜÄÂÕ»ºÔ¼ºÜÂÁÙÁ¿Ö¼»ÚÂÀؾ½Ñ¹·Ò¸·Ñ¹·Ñ·¶ÞÆÄóÙØöâãþòöýôù÷îóûò÷õìñëâçóêïñèíåÜáäÛàÚÑÖÜÓØØÏÔÏÆËÐÇÌÌÁÇƺ¾È¹¾Æ·¼À±¶¼­²»¬±¸©®´¥ªž”ž”¤•š¨™ž¥–›¤•š¥–› ”˜µ©­³¨¬±¦ª®£§©ž¢£˜œž“—›”•ŠŽ…‰‰~‚vz|quynrxmqwnq{uw{|†‚ƒ‹‡ˆ‰…†‚~yuvsopa]^[WXPLMEAB=9:956845845845845845845845845845845IEFOKLYUVfbcuqr‚~Œˆ‰‘Ž£Ÿ Ÿ›œŒuqr^Z[\XYoklƒ€Ÿ›œ£Ÿ §£¤ª¦§¬¨©¯«¬´°±µ³´±¯´°¯´°¯´±°µ´³¸·¶»»º¿½¼ÁÇÆËÊÉÎÈÇÌ¿¾Ã³²·¢¡¦Œ‹v{?Q_by‰…œ®’©»|’§y¤p†i–i—h~–ez—av“\qXmŒUj‰Qh‡Da?^}>\~B`‚Ig‹KiGe‹A_…Fc‹HeJg“Kh”Ie”Fb‘A]Œ@[†?Uz?St=Qr>RsAUvBVw@Tu>RsRs?St@Tu@TuAUx@V{AW~CY€DZDZCY€AW~@V}9Ov9Ov9Ov:Pw8Nu1Gn(>e!7^35B8:G>@M@BO=?L57D*,9#%2, - - - -!#0(*7,0<#.@*5G*5G)4F'2D$/A,7IHSegr„z…—Ÿª¼ÈÓ囦¸6?N$ '/'.6*19&-5$+3(/7$+3$+3'.6.5=5F29A,5>3=I2>L:FTFR`KWeLXfVbpbn|O[iCO]>JX;GU:FTNZheqgt…R^xIWtCQnESpIVvJWwJWyJWybo’dp–dp–co—am•`l–bn˜dp–`oŒFVo#3L?Ofr˜\k€HSikvŠ¨°ÅŒ”§nuˆ_fxW\oPVfORcRUdKOZ?CL7>H29C8@MIQ^R[l]exdoƒmyp|–lz”ržx‡¤fu”JYxWb‚!?+4QºÅÛñúÿóýÿèñöêôóìõðìöîîõíîõíïôîïôîñóðóòîÿù÷þï즗”µ¦£èÖÔé×ÕëÖÕíØ×ëÓÓëÓÓìÒÓìÒÓîÑÓïÒÔðÒÔñÑÒêÃÄêÂÂ翿㻻߷·Ü´´Ù±±Ø°°É¡¡Ì¤¤Ï§§Ð¨¨Ñ©©Õ­­Ú²²Þ¸µß½´Þ¾³á¿µâ·åùåźèƼçǼíËÁïÏÄóÑÇôÔÉöÔÊ÷×ÌüÚÐýÜÓùÜÔøÝÔøÝÖøÝÔøÝÖøÝÔøÝÖøÝÔøÝÖöÛÒôÙÒñÖÍðÕÎïÔËðÕÎñÖÏêÎÍëÏÎìÏÑìÐÏëÎÐèÌËæÉËåÉÈâÅÇâÆÅâÅÇáÅÄáÄÆàÄÃàÃÅÞÄÅÞÆÆÕÀ¿Êµ´½¨§°›š¡Œ‹“~}‰tsva`oZYePOaLKfQPt_^…po{z~nnj\[¤–•©›š¥—–¯¡ ¦˜—¤–•£•”¥—–™‹Š|nmk]\}on‘ƒ‚Œ||vfijZ]r_eqt¢•±¡¤ “…ux¯œ¢­ ¯œ¢±¡¤¼©¯¾®±¼©¯½ª®Ä­µÍ´ºÎ´½À§­³™¢Â©¯Á§°Æ­³Äª³Ç®´Ë±ºÏ¶¼Ó¹ÂÒ¹¿Ë±ºÁª²¼©¯Â±·Ã²ºÁ°¶É¸ÀÑÀÆÒÁÉпÅ×ÆÎáÐÖÞÍÕØÇÍÝÌÔÙÈÎÖÅÍØÇÍÜÉÏÔÁÅнÃѾÂнÃϼÀÔÁÇÚÇËâÏÕßÌÐâÏÕäÑÕáÎÔàÍÑàÍÓÞÉÎàÊÍÜÆÈÙÀÃÛÅÇâÉÌÛÅÇÛÂÅáËÍØ¿ÂÖÀÂÝÄÇÞÈÊßÆÉáËÍêÑÔçÔÖÜÑ×äÝäãÜãáÚáÝÖÝÚÓÚáÚáàÙàæßæåÞåÚÓÚÛÔÛßØßáÚáêãêèßäÖÊÎáÒ×àÑÖÕÆËÑÂÇÖÇÌÒÃÈÆ·¼Ë¼ÁοÄ˼Áɺ¿Ì½Â˼ÁǸ½Å¹½Å¹½Â·»¾³·¸­±±¦ª©ž¢¢—›ž“——Œ“ˆŒ‹€„„y}~swzosynrxorztv{|…‚‰…†ˆ„…€|}wstplmb^_\XYQMNFBC=9:956845845845845845845845845845845B>?HDESOPa]^plm~z{‰…†‹Œš–—•‘’ˆ„…rno_[\_[\plm}~Ÿ›œ¢žŸ§£¤ª¦§¬¨©¯«¬³¯°µ³´´²·²±¶²±¶³²·¶µº¹¸½¼»À¾½ÂÆÅÊÈÇÌÆÅʾ½Â³²·¤£¨”{€†BTbby‰ˆŸ±š±Ã„š¯•ªvŒ£o…œn„œl‚šh}šbw”]r‘XmŒTiˆOf…Eb‚Ba€B`‚Ec…JhŒKiGe‹B`†Fc‹HeJg“Kh”Ie”Ea@\‹>Y„?Uz@Tu>Rs?St@TuAUv?St>Rs;OpRs?St?St?Sv@V}@W€BY‚CZƒCZƒBY‚@W€?V9Py8Ox9Py9Py7Nw1Hq'>g 7`24A79F=?L@BO=?L57D+-:$&3, - - - -!#0(*7,0<69J9?O=CS>DTAGWKQa\brjp€x~Žmsƒ`fvX^nV\lV\lU[kRXfDFUOQ^egt‡‰–ŒŽ›xz‡givPR_ "/*,9CER^`mkmzacp@BO%'4MN`cdvrs…xy‹uvˆst†|}}~uvˆst†vw‰wxŠlm^_q]^pfhugjoostimpCGJ#"'69@GX +%-'.6)08'.6&-5(/707?-4<,3;.5=29A5:;956845845845845845845845845845845?;Rs>Rs:No:No;Op;OpRsK@BO>@M68E,.;&(5, - - - -!#0(*7,0<47H7=M=CSAGWFL\SYifl|tzŠ…•rxˆagwV\lQWgOUeLRbIO]DFUQS`kmz‘ž’”¡z|‰dfsIKX(*79;HRTapr|~‹giv?AN ->?Q]^pst††‡™†‡™€’‚ƒ•z{ij|qr„~‘ƒ„–uvˆ`as\]odfsjmry}~x|OSV&).'*/7:A47>OR[[^gikw’”¡¬®»¶¸Ç—š«jr‰(2K)3LLVoWazAKdBLe‹¤ÊÔí¿Éâoy’:D]cm†‚Œ¥€Š£š°£®Âz…—WbtMXjT_qHSeAL^bm¨ºw‚”:EW/:Lju‡š¬`k}%9#.DU_xŠ”­– ¹…¨lvgqŠ‚Œ¥‘›´ƒ¦…¨’œµ„Ž§r|•dn‡BJaahzpv†u{‹w}‰Ÿž¤´›¡±Œ’¢|‚’|‚’‡®´Ä ¦¶AGW &9SZv`iˆpy–s|™gqŒQ[v;E^-7P+6L,7M.9M1F5F7>F6=E4=F3=I4@N9ES>JXFR`NZhR^lQ]kQ]kDP^AM[=IW:FTWcqt€Žs€‘`l†^l‰\i‰Yf†Zg‰^kdq”hu˜y…«wƒ©u©s©r}ªp{¨oz§myŸ\kˆq˜m}”>Ne2AVDShXcw‚ŸŠ’¥€‰šip‚OVfCIY@FT;>M04@9=HFJSPWaY`jV^kPXeNWhLTgZeyWcy_k…ky“m|™_n‹L[zCRqWb‚!?+4QºÅÛñúÿóýÿèñöêôóìõðìöîîõíîõíïôîïôîñóðóòîÿøöÿõò¨™–¨™–ÙÇÅäÒÐçÒÑáÌËÜÄÄÛÃÃÛÁÂÚÀÁÛ¾ÀÙ¼¾Ù»½Úº»Üµ¶Ü²³Ú°±Ö¬­Ó©ªÏ¥¦Í£¤Ë¡¢×­®Û±²ßµ¶á·¸á·¸ã¹ºæ¼½èÀ¾ç¹ç÷æ¶æ¶åÁµäÀ´äÀ´äÀ´á½±â¾²äÀ´éŹîʾòÎÂôÐÄóÑÇúÞÓùÞÓøÝÒøÝÒ÷ÜÑ÷ÜÑ÷ÜÑöÛÐðÕÊïÔÉíÒÇìÑÆëÐÅìÑÆîÓÈïÔËæËÄãÇÃâÆÂåÉÅéÍÉêÎÊåÉÅáÅÁçËÇçËÇæÊÆæÊÆåÉÅäÈÄãÇÃáÈÄäÌÊÜÇÆÔ¿¾Ì·¶Ã®­¹¤£­˜—¦‘’}|†qpt_^gRQfQPoZY~ih‡sr{mli]]ÑÅÅÿóóÿóóÿõõ÷ëëüððúîîÿööóççƺº‘‘¼°°üððÿööÿûÿíàçáÒÙä×Þÿøÿýð÷ÜÍÔ¦™ š‹’¬Ÿ¦äÕÜþñøÿõüÿúÿÿöýÿôûúéñÿóûôãëÁ°¸ƒrz‡™ˆ§–ž˜‡”ƒ‹—†Ž£’š¨—Ÿ —•„ŒŽ†bX`<5W€9R{9R{9R{:S|8Qz2Kt(Aj!:c02?57D<>K@BO>@M68E-/<')6, - - - -!#0(*7,0<9E25P;FXBN^FRb8CW'2F';-8LHSgITh0;O';"-A+6JZey„££®ÂÏÚî¸Ã×]fw  "*$+3")1$+3)08*198?G:AI=DL?FN?FNF3JX?KY@LZJVdWcqZftT`nLXfBN\@LZ>JX=IWO[ico}dq‚eq‹hv“hu•bo^kanfs–iv™z†¬x„¬wƒ­v‚¬u€­r}ªmx¥iufu’l|“n~•[l€IXm8GZFQcŒž–Ÿ°€‰šfm}NVc8>L)/=,0<6:EEITSW`[blcjt_gtV^kV_pRZmWbvVbxam‡iw‘\kˆCRo>MlJYxWb‚!?+4QºÅÛñúÿóýÿèñöêôóìõðìöîîõíîõíïôîïôîñóðóòîýòðùê瑂„ur®œšº¨¦¿ª©¹¤£Å­­Å­­Æ¬­Å«¬Çª¬Æ©«Ç©«È¨©É¡¢Ë¡¢Ë¡¢Ì¢£Ì¢£Í£¤Î¤¥Î¤¥Ê ¡Ð¦§Ù¯°à¶·å»¼êÀÁðÆÇóËÉêÄ»éŹç÷åÁµã¿³â¾²à¼°à¼°ç÷ç÷èĸìȼòÎÂöÒÆ÷ÓÇõÓÇ÷ÛÐõÚÏôÙÎò×ÌñÖËðÕÊîÓÈîÓÈðÕÊîÓÈìÑÆêÏÄèÍÂèÍÂéÎÃêÏÄäÉÀâǾáƽãÈ¿æËÂåÊÁáƽݹßÄ»àżáƽâǾäÉÀæËÂçÌÃæÍÆãËÉÜÇÆÕÀ¿Î¹¸Æ±°½¨§³ž¬—–•€‰tsxcbjUTePOiTSs^]yeftff_SSĸ¸þòòÿõõõééçÛÛìàà÷ëëÿööýññØÌÌ ””°¤¤õééþòôÿôøÔÇܟ¦±¤«õèïÿóúêÝ丫²t{™Œ“ßÒÙÿòùüïöÿôûúíôöéð÷êñÿøÿÿóúƹÀƒŠ«ž¥ÓÆÍíàçÿùÿÿõüûîõ÷êñýð÷ÿ÷þÿõüøíõëæí¡ž¥°­´îëòòïöîëòüùÿ÷ôûèåìÉÆÍ×ÔÛçä뺷¾b_fwt{—˜—‡‘”€‰’~‡ˆt}}irˆt}|…†r{t`imvy‚ Œ•±¦¨”‰’¤“›° ª´§±¾®¹º­·´¤¯³¦°ºªµ¸«µ¼¬·½°ºÀ°»Ä·ÁÒÂÍ×ÊÔÜÌ×ÞÒÜÐÉѽÄÙÔÛåàçÕÐ×ÐËÒÓÎÕÔÏÖÒÍÔÜ×ÞÞÙààÛâÒÍÔÄ¿ÆÐËÒÚÓÚÔÇÎØÉÎÖÇÌÑÂÇÒÃÈØÉÎÜÍÒÚËÐÞÏÔéÚßéÚßàÑÖßÐÕâÓØàÑÖÝÑÕÛÏÓÚÏÓÚÏÓÙÎÒÖËÏÒÇËÎÃÇÌÁÅø¼¾³·¶«¯­¢¦¦›Ÿ¡–šŸ”˜ž•˜˜’”œ˜™¢žŸ¥¡¢¢žŸ™•–‹Œˆ„…mijeabZVWMIJC?@>:;<89<89845845845845845845845845A=>FBCOKL[WXhdetpq}yz‚~€|}uqrfbc\XY^Z[kghzvw…‚”‘˜”•œ˜™Ÿ›œ¡ž¤ ¡¨¤¥ª¨©ª¨­¨§¬§¦«§¦«¨§¬ª©®¬«°®­²¬«°­¬±©¨­¢¡¦œ› –•š‹Š{€†Sesd{‹§¹°Çٕ«À‰Ÿ´†œ³„š±€–®|’ªt‰¦jœ_t“Uj‰MbG^}6Ss:YxA_HfˆMkNlLjJhŽGdŒHeIf’If’Fb‘@\‹;W†9T@V{CWxCWxAUv>RsW€:S|:S|:S|:S|9R{2Kt)Bk";d/1>46C;=J@BO>@M79F.0=')6, - - - -!#0(*7,0K*,9OQ^oq~“•¢™›¨np}9;H!"4PQctu‡œ¯¤¥·”•§¢yzŒSTffgy‚ƒ•’“¥„…—hi{Z[m[]jtw|„ˆ‰quxFJM58=BEJDGN9I[2=OR]ocn€kvˆ’¯“ž°it†DOa=HZHSeMXj?J\(3GMXn‹•®ž¨Á}‡ oy’z„wšfp‰lv‹¤•Ÿ¸– ¹pz“JTmLVoS[rfmrxˆsy‰…‹›«±Á­³Ã“£z€~„”w}‰Ÿ³¹Ésy‰%5'3:MAHdFOnKTqJSpKUpQ[vS]vR\u%0F&1G'2F)4H-8J1FEM;BJ8AJ@JVAM[@LZ?KYLXf^jxbn|ZftJVdDP^BN\CO]DP^HTbP\jTar_j†fs“iv–bo]jŒ_lŽcp“eq—kwŸkwŸlx¢o{¥p{¨lw¤do^j’bqŽdt‹evŠm~’p”M\o9DVT_q‘š«zƒ”]dtBJW,2@!'3,0<<@KPT_[_hZak`gq\dqS[hXarT\oWbvUawZf€[iƒM\yMlL[zWb‚!?+4QºÅÛñúÿóýÿèñöêôóìõðìöîîõíîõíïôîïôîñóðóòîÿõóôåâˆyvxifšˆ†™‡…˜ƒ‚“~}“{{‘yyŽtu‰op…hj€ce}_a|\]ƒ[\…[\ˆ^_‹abef’hi•kl–lm¯…†µ‹Œ½“”Äš›ÈžŸË¡¢Ð¦§Òª¨×±¨Õ±¥Ó¯£Ð¬ Í©Ê¦šÈ¤˜Ç£—ά༰άåÁµìȼðÌÀñÍÁîÌÀùÝÒøÝÒ÷ÜÑ÷ÜÑöÛÐõÚÏõÚÏõÚÏàźßĹÞøÞøßĹâǼäɾæËÀßĹàźáÆ»ãȽæËÀæËÀäɾâǼæËÀæËÀåÊ¿åÊ¿åÊ¿åÊ¿åÊ¿âÊÀåÍÉÞÉÈ×ÂÁι¸Æ±°¼§¦±œ›©”“•€‹vu|gfnYXfQPfQPjUTmYZ]OOK?A¨œžñåçýñóåÙÛÓÇÉÔÈÊèÜÞôèêùíïã×Ù¤˜š©ŸõéëÿúüÿúþÑÆ̕Š”‰ïäêÿûÿüñ÷ÔÉρv|—Œ’æÛáÿûÿÿôúýòøèÝãÚÏÕÜÑ×ìáçñæ쮣©€u{ •›àÕÛÿõûþóùÿôúèÝãɾÄÐÅËóèîþóùëäëéè››£ããë÷÷ÿòòúøøÿóóûññùääìòòúþþÿëë󕕝»»Ãöóúùéóÿî÷ÿ÷ÿÿî÷õáêÿëôþêóäÐفmvˆt}¬˜¡Ó¿ÈáÍÖáÍÖâÎ×ÜËÕʽǽ±½»­º°¤°‚rfrl^kmamwivvjvqcptht‰{ˆšŽš¨š§³©´Ž‰ols•’™µ²¹Ÿœ£‘Ž•Š‘Š‡Ž«¨¯¾»ÂÌÉÐÓÐ×»¸¿š¡¨¥¬½¶½¹¬³»¬±Ã´¹ÐÁÆÓÄÉ̽Âȹ¾Ë¼ÁÔÅÊáÒ×ëÜáåÖÛÜÍÒáÒ×åÖÛÞÒÖɽÁÊ¿ÃÌÁÅÏÄÈÑÆÊÑÆÊÑÆÊÐÅÉÆ»¿Á¶º¸­±¯¤¨¨¡£˜œ¡–šŸ–™˜’”›—˜¡ž£Ÿ  œ—“”Œˆ‰…‚qmnief]YZQMNGCDA=>?;<>:;845845845845845845845845@<=EABOKL\XYjfgwst€|}†‚ƒ‚~sopb^_[WXb^_rno„€ŽŠ‹š–—žš›¢žŸ¥¡¢§£¤ª¦§®ª«°®¯­«°«ª¯ª©®©¨­ª©®¬«°®­²¯®³¤£¨¥¤©¡ ¥š™ž–•š’‘–ˆ‡Œz…I[i[r‚¦¸¹Ð⟵ʐ¦»‹¡¸ˆžµ„š²•­wŒ©lž_t“TiˆLa€E\{5Rr9XwA_HfˆLjŽKiIgGe‹GdŒHeIf’He‘Ea?[Š:V…7R}@V{DXyDXyBVw=Qr;Op;Op=Qr5Ij6Jk6Jk7Kl8Lm9Mn9Mn8Oq>W=Xƒ?Z…@[†@[†?Z…=Xƒ46B;=J?AM>@M79E.0=(*6, , - , -!#/(*7-/JMTLOXAENTXcgkwvz†…ˆ—š®ÀÃÔÑÔ篴ȀˆŸNXq%/J.8Q8B]_i‚³½ØÝçÿ©³ÎeoˆNXsmw‹¦‡‘ªŽ˜³™²˜£·p{?J^/:NMXlcn‚v•¦±Å†‘¥doƒOZnITh=H\6AU5@T2=Qem„¦®Å¤¬Ãt|“nv{ƒšmuŒT\siqˆŽ–­•´ˆ§jr‰HPgJRi[cxjqƒnt„io…‹›ºÀж¼Ì†Œœlr‚€†–tzŠŠ ´ºÊgm}.,5HcBMkALjH9@H:AK=DL@GQAJS>HTAJY?HW=FULUdbkzgp^gvOXgKTcIRaLUdOXgIRaHQ`LYlP`Zl’`rš[m•VhYj•_pœ`qp~­p~­p~¯r€±p}±ivª]jŸTbTafuŒdsˆo~“‰–©q~:EW ,B@;?@;?845845845845845845845845>:;D@AOKL]YZlhizvw„€Š†‡†€‚vprc]_\VXf`bysuŒ†ˆ–’¡›¥Ÿ¡ª¤¦¬¦¨®¨ª±«­¶°²¹µ¶³®²°®±¯­²®¬¯¯­²°®±²°µ´²µ©§¬©§ª¥£¨žœŸš˜˜–™’‚…ŒCQ^Wj{¤µÀÕ覽ϖ¬ÁŒ¥¹‡ ¶„³€˜°vŽ¨kƒ^v’Ti†K`}D[z9Rp=XuE`~Kf„MgˆKe†HbƒF`ƒKeˆLf‹Lf‹KdŒHa‰B[ƒX}=Y€?[ƒ@\ƒ@\„?[‚=Y),5')5(+4+!*!- #,"$0#&/%'3%'3JLX[_jkmzil{_`t_avss‹‡‰ ss‹xz‘pq†hk~gixMQ])+7'02?[]jŠŒ™±³À¹»Èž ­np}79F -JLYvx…©«¸§©¶]_l(*7'%(9>DTru†š °«®¿¨®¾œŸ°„Šš^arbhxorƒx~Ž€ƒ”|‚’twˆlp|{~…vw{SV[*-2',2HLU_cn\bnLR`ek{ls†qwŠ’©ÂÊáÞåÿ°ºÓ}‡¢PZu&C-6?\—¡¼ÒÛøÉÓî}†£Wa|FOlr|—•ž»¥¯Ê”º‰“®€Š£mxŽYdz8CY>I_ju‹Œ—­¬·Íz…›itŠcn„R]s3>T'='2HT\s„Š š ¶z€–cims‰ntŠekX^tlrˆƒ‰Ÿ…‹¡tzqw\bxEKaY`ssx‹tzŠjp€~„”ÁÇ×ÉÏ߀†–TZjek{]cs…•ž¤´]cs*0@!'79@S:Ea5C`6Da2@['5O(4N.8Q.9O2:M1:K09H07G/7D.6A.4@,4A)< 2 11@Wtƒš¬ÃŠ™°ap‡@Of 3)8OL[r|‹¢ÆÕìÒáøš­+3@&(.:(/9"(4+2<'-93:D5;G7>H7=I6=G8>J;BL8>J17C2:G7>NUB]’Gb™LgžWp¨e~·l…¾jƒ¼f|¸j€¼m‚Áp…ÄtˆÇj~½J]Ÿ->thu—xƒ™t•t•}ˆœep‚CK^9BS,5D6@L8BN+5?",6+4==FOJR]V_pHPe=EX=EXBJ_BMaGRfOZlMXlLWiITfERcERcJWhMZkO[qQZw&C&0KŽ™¯êöÿðýÿê÷ýåðòæòðåñíåñíäðìãïíâîîâíïåêíþøøëßߤ––¦””ε¸Í°´Ñ±´Ë¨¬Îª¬Ð©¬Ï¨«Î§¨Í¦§Ê¦¦É¦¤É¦¢¾™“Æ¡™É¢›Ê¥Ñ¬¤Ñ¯¦Ó±¨Ú¹°õÔËêÌÂðÒÈúÜÒúÞÓýáÖøÝÒêÎÃÝ¿µÙ¸¯Ò±¨Ï®¥Ï®¥Ï®¥Í¬£Ê© Å¤›Ä£šÁ —½œ“·–°†ª‰€§†—ut“qrklˆfgˆfgkl“qr—uvmnŒjk†de‚`a€^__`„bc†dcˆg`†f[Šj_”tišzoœ|q €u§‡|É©žÃ£˜Â¢—ǧœÊªŸÈ¨Ç§œÆ¨žÈ«£Î±«Ì¯©Á¤ž¸›•¶™“µ˜’±”Žš}w“vpˆke~a[vYSmPJdGAZA<[GFO??‚rr̼¼ìÜÜùééÿôôÿïïêÚÚÿóóÿúúÿøø§——Ž~~ýííÿõõÿùûÝÛޒ“žœŸæäçûùüòðóäâåxvyŽ‘äâåÿþÿÿþÿïíðøöùøó÷üöøúôöÿýÿý÷ù‰ƒ…—‘“úôöüöøÿýÿøòô©£¥„~€¥Ÿ¡ØÒÔ÷ñóáÛß¿ºÁ²­´š•œÆÁÈìçîîéðÿýÿþùÿýøÿýøÿÿúÿõð÷ÎÉЌ‡Ž¬§®ùôûùòù÷íõÿ÷ÿÍÃË¢˜ ÛÑÙþôüÝÓۉ‡…{ƒÁ·¿þôüúðøüòúÿøÿØÑØÜÖÚñëïúôøÿúþÿúþïéí´®²¾¸¼ÙÓ×ØÒÖ¹³·­§«êäèÿüÿÿùýÿûÿÌÊτƒˆ˜—œõôùöõúùøýýüÿíìñ¶µºçæëñðõ÷öûùøý•”™}|¼º¿ª¨­À»¿åàæòíñþùÿùôø›–œ›–šÀ»Áéäèúõûõðôýøþÿýÿþùÿøöû•”šcbjqpx‰ˆÁÀÈ×ÖÞÐÏ×±°¸ÄÃËÇÆÎÍÌÔ¯®¶\[c`_g{z‚zz‚•Ž‘˜¡¤«¢¥¬¬¬´¯¯·„ƒ‹^]e\Ybjgpe_iUOYMEPE=H@8C>7?837845845845845845845845845<89C?@LHIVRS_[\fbcjdfkbef]`aX[aX[kbe}tw‡Š”—¦ ¨Ÿ¢«¢¥¯¦©´«®¸¯²»²µ½´·Â¹¼Â¹¼Â¹¾Â¹¼Â¹¾Â¹¼Â¹¾Â¹¼µ¬±µ¬¯´«°³ª­¯¦«¨Ÿ¢”™”`huGTe‹›«ÍàñÎãô ºËª»Ž«½„£µ}œ°s¤d€–WqŠMeH]xDYt:Ng>OiBSmEVpGXrHYsGXrFWsM^zM^zM^zK\xHYuCTp?Pn:Mk9Nk9Nk9Nm:Ol9Nm9Nk8Ml7Li;Po9Nk6Kj4If4Ih7Li:On:Qp8Pr7Qr7Qt7Qr7Qt7Qr7Qt7Qr8Ru7Qr7Qt8Rs8Ru4No-Gj(Bc25>7:C;>G9CIYqw‡”šª¢¨¸¥«»™Ÿ¯ƒ‰™ciygm}msƒu{‹yw}pv†lp|tw~mnrLOT*-2(,5DHSX^jZ`nPWicj}jr‡jr‰†«ÇÑìÝèÿ´¿Û…Ž«W`}%B,GPm¸ÁÞÝæÿ²»Ølu’]fƒS\yt}š“œ¹¨±Îš£Àšµ”ž¹z„V`y;E^;E^eoˆ•Ÿ¸Ÿ©ÂyƒœkuŽbl…PZs6@Y(A$.GT\s“™¯–›¯v{ej~qvŠns‡bg{_dxv{‚‡›{€”kp„rw‹ej~KPdZ_ruztzŠio€†–ÆÌÜÉÏß{‘OUeagw]csw}—­[aq#)9#35=P;Fb6Ed9He3C]'5P$3J-7P/:N2:M2;J29I08C06B.5?/3<,4?*=7 61AZsƒœ¥µÎ¥µÎ‹›´EUn 2'@6F_o˜ÃÓìàðÿª¹Î?FV!'317C6J8>J7=I9?K)3?)3?)3=0:D>HRGQZIS_JUi?J`>I_FQgDOe?J`BMaIThHSeHSeGScFRbGSaIUcJVdKVhS]x&C$.I‹–¬êöÿðüÿê÷ýâðñâððâñîáðíàïìàîïßíîÞìïâêí÷óôçÛݟ‘‘¡ŽË±´Í®³Ô°´Ð©®Ñ§«Ñ§«Ñ§©Ð¦¨Ï§§Î¨§Í§¤Ë¨¢Î©¡Õ°§Ö±¨Ö±¨Ø¶¬×·¬×·¬Ü¾³æʾãÇ»éÏÂôÚÍúãÕþçÙúäÖòÛÍóÖÎðÒÊëÍÅéËÃéËÃéËÃæÈÀãŽìÎÆíÏÇíÏÇíÏÇëÍÅéËÃæÈÀäÅÀêÆÈèÃÊåÀÇã¾Åã¾ÅåÀÇèÃÊêÅÌÔ¯¶Ò­´Ïª±Ì§®Ì§®Í¨¯Ïª±Ð¬®Ô±«Í«¡Ç¥›Â –¸–Œªˆ~¢€v¡u–tjndŽlb‘oe’pfmcŒj`Œla|u ‚zž€x”vnŒnfŠldˆjb…g_™{s’tlˆjb~`XuWOlNFbDAJ?BK:=F/2;&)2"%."%. #, #,!$-#&/%(1&)2'*3(+458ACFOUWd_apbcwijuu€€šttŽyy‘ppˆkl€ikzMO[')5#$&3XZgtvƒ–˜¥ÁÃпÁƘ¥kmz57DDFSxz‡Ÿ¬‰‹˜SUb)+8!-/2CJP`pv†Š ˜ž®¢¨¸š °…‹›sy‰rxˆsy‰u{‹w}v|Œqw‡oslovabfEHM-05,09@DOQWcW]kX_qbi|fnƒ`h…ªÓÝøáìÿ¹Äàˆ‘®V_|<.`i†×àýãìÿ™¢¿cl‰cl‰Zc€r{˜™¶¨±Î£¬É§±Ìª´Ï}‡ JTm;E^?Iboy’£­Æ—°t~—kuŽ^hLVo;E^",E$.GW_v¨®ÄŽ“§otˆin‚w|lq…Y^rgl€„‰€…™in‚Z_sotˆns‡TYm]buv{ŽtzŠjp€…‹›ÈÎÞÀÆÖnt„HN^ek{djzu{‹™Ÿ¯ek{ &6%5 -@%<$;/?VfvšªÁ«»Ò£³ÊGWn-, 0G`p‡½ÍäðÿÿÓâõZaq.4@9?KFLX;AM5;G-3?-3?:@LDT?EUKQaTZjOUeJP`LRbNTdPVfPVfNTdKQaDPj*Br9X‘Zx´u“ρžÚ|™Õu’ÎrËtŽËsÊsÊx’φžÜ‰¡ßpˆÆTh›iv–fnW_tDL_4%.=(1@2?IEFNJKSOPVPRXORZOS\QUdY]pei€uy„ˆ˜‘¢—›¤™§œ ªŸ£®£§²§«µª®¶«¯¹®²¹®²¹®²¹®²¹®²¹®²¹®²¹®²µª®µª®´©­´©­²§«« ¤¡–š–‘—lo~O[kŒ™ªÅÖæÇÜí¤¾Í–³Ã‘±À|®v—¨mŒ `“Vp‡Ke|F[vCWpCSlFUlHWnIXoGVmCRi?NeSp?Tq@Ur?TqKjly‹šwy†SUb.0=".14EMSclr‚…•–¦ ¦¶œ¢²Š …‹›‡—}ƒ“{‘z€z€w}vz†gjqZ[_CFK69>59B@DOLR^U[i^ewah{ai~U]t†«àêÿæñÿºÅáy‚ŸBKh 1 =vœØáþÖßü“œ¹ox•aj‡PYvox•“œ¹¥®Ë©²ÏÇÑì³½ØgqŠ4>W9C\S]vš³°ºÓ‰¢kuŽeoˆWazHRkAKd*4M)3L^f}´ºÐ†‹Ÿlq…pu‰|•gl€NSgjoƒ‘–ª}‚–W\pGL`hmrw‹[`tbgzv{Žv|Œpv†Š ÂÈØ«±ÁZ`pCIYjp€jp€w}¡§·sy‰#3!'7FNaCNjCRqIXuAQk-;V&5L/9R3>R4.2;*2='4G/F,C*:QK[rp€—‘¨‚’©=Md/++BYi€±ÁØñÿÿîûÿqxˆ8>J9?KLR^DJV=CO4:F06BBHTDJVDJVCIUEKWHNZEKW>DP+1A06F=CSFL\GM]MScQWgMScCIYHN^NTdTZjY_oZ`pZ`pT`z.Ds>[“d¹„¡ÙŒ©ážÖx•Íw”ÌvÉsÆsÆv‘Èy’ÊwÈsŒÄs‰¸XfNViAI\4837845845845845845845845734956<89?;KXZgtvƒegtNP].0='.1BKQagm}x~Ž“£ ¦¶ž¤´–¦Œ’¢‡‚ˆ˜~„”}ƒ“|‚’z€y}‰hkrZ[_ILQADI@DMBFQHNZQWeahzbi|ZbwMUl‹•°ëõÿéôÿ³¾Ú[d!*G *4=Z‰’¯¿Èå»ÄᝦÁŠ§U^{W7BV5=P4=L3:J19D/5A-4>-1:)1<+8I(7L'6K+:O6EZCRgIXmIXm.=R"7#8&5JYh}¢±Æè÷ÿòÿÿ…ŒœCIU28DFLXHNZDJV>DP:@LJP\LR^LR^KQ]MS_PVbMS_FLX'-=,2B>DTPVfTZjTZjSYiMSc9?OAGWOUe\brfl|kqlr‚gqŒH]ŠTo¦qŒÃ‰¤ÛŽ©Þ… Õ€œÎ‚žÐpŒ¾{—Éz–Èq½v’Íu‘Áax¡GUo6BR+7G'3C#.@0;M=HZ9DXDOc[fzp{ju‰NYo9DZ;F\HSiJUiDOaU`rfqƒU`r6C;3>837845845845845845845845:67;78=9:?;C?@D@AF@BKBERGK_TXodhtx„ˆš“ •™¤™¥šž¨¡ªŸ£­¢¦°¥©³¨¬´©­¶«¯¶«¯¶«¯¶«¯¶«¯¶«¯¶«¯¶«¯¯¤¨®£§®£§®£§« ¤¤™š“Šps‚IUe~‹œ¼ÍÝÈÝî©ÃҔ±Á…¥´u–§q’£j‰`“Xr‰Mg~H]xDXq?OhAPgBQhCRiBQhAPg?Ne>MdFUlFUlGVmHWnIXoKZqL[rL\uAUp@Ur?Tq?TqAVsDYvH]zJ_|F[xCXu?TqAJ.1:"%. )( #, #,!$-#&/%(1&)2'*3(+4,/8.1:46CACRSThcdyoo‰ttŽmm‡oo‡kkƒop„prOQ])+7 )%'4)+835BGIVegtšœ©¿ÁΩ«¸giv8:GACP]_lWYfIKX46C*,/@HN^ciyw}•¥ž¤´š °’˜¨ˆŽž…‹›‡—€†–…•}ƒ“yx|ˆknu`aeRUZMPUIMVFJUEKWJP^`gydk~RZoJRi‘›¶òüÿêõÿ¦±Í:C`. 1[dŸ¨Å©²Ï¡ªÇ§°ÍŒ•²IRo09Vy‚Ÿ©²Ï¤­Ê­¶Óéóÿ¬¶ÑCMf(2KS]vš³»ÅÞ ªÃs}–Zd}PZsISlFPiHRk:D]Q5>M4;K19D/5A,3=,09)/;,7I,;P1=S0?T3?U/>S.:P(7L)5K"1F'3I.=RZf|“¢·Úæüêõÿ¡©¶X^j/5A;AMIO[KQ]HNZFLXOUaQWcQWcPVbRXdU[gRXdKQ]*0@*0@=CSU[k]csZ`pU[kNTd8>NBHXRXhbhxnt„tzŠu{‹pz“gz¥jµvÁ~˜É›Ì›ÌƒžÍ‡£Òy•Äv“¿v“¿žÊ­×Š§Ñc€ª$0@+6H[GQlLWkFRbITfR]oLWi6C=5@837845845845845845845845;78<89<89=9:>:;?;<@<=B<>H?BQFJ`UYrgk…z~–‹¢—›¨¡ªŸ£« ¤­¢¦°¥©²§«µª®·¬°¸­±»°´»°´»°´»°´»°´»°´»°´»°´µª®´©­³¨¬±¦ª®£§¦›Ÿ›”Šsv…@L\o|´ÅÕÉÞï¨Âю«»|œ«s”¥o¡j‰b•[uŒPjK`{G[t>Ng>Md=Lc=Lc>Md?NeAPgCRiFUlFUlFUlGVmHWnKZqM\sN^wG[vDYvBWtBWtCXuF[xJ_|La~I^{F[xBWt>Sp=Ro>Sp@Ur@Xt8Qp7Rp7Rp7Rp7Rp7Rp7Rp7Rp8Sq7Rp7Rp8Sq8Sq4Om-Hf(CaQT]QT]LOX?BK.1:"%. ) )!*"+ #,!$-#&/%(1&)2&)2,/8/2;68EBDSRSg_`uggjj„iiƒkkƒiipq…rtƒQS_+-9!$-')6,.;-/<9;HUWd‡‰–µ·Ä³µÂdfs68E/1>LN[LN[@BO:HaBLejr‰™ŸµŒ‘¥{€”uzŽ\au:?SBG[bg{uzŽpu‰W\pFK_\au`eyNSg]bu{€“{‘sy‰‰Ÿ«±Áz€?EU]csu{‹}ƒ“Ÿ¥µ“™©W]m &6@FV_gzhsds’fu’^nˆLZuAPgBLe?J^7?R6?N4;K19D/5A,3=+/8(.:,5F-:M4?S8EX:EY5BU1K?7D>6A837845845845845845845845956956:67;78;78<89<89>8:ESp?TqAVsAYu8Qp7Rp7Rp7Rp7Rp7Rp7Rp7Rp8Sq7Rp7Rp8Sq8Sq4Om-Hf(CaSV_RU^LOX?BK/2;"%.!*!* )!*"+ #,"%.#&/%(1%(1+.703<9;HEGVSTh\]raa{bb|gghh€ggpq…su„SUa,.:#&/(*735B-/<46CRTa~€«­ºº¼Éfhu<>K+-:EGTCER46C79F#'3.1BGM]ciy}ƒ“•›«˜ž®“£‹‘¡‚ˆ˜ƒ‰™†ŒœŠ ‹‘¡ˆŽž€†–{‹pszjko_bgWZ_OS\GKV>DP:@N[btgnGOdIQhœ¦ÁõÿÿêõÿŽ™µ!> */8U•ž»ËÔñ¯¸Õ”ºŸ¨Å’›¸MVs09Vkt‘”º©²ÏÂËèïùÿ¹ÃÞ{…žZd}‘›´­·Ðƒ¦jtgqŠ[e~GQjFPiJTmFPi>HaEOhhp‡‘—­’—«„˜pu‰NSg.3GDI]ch|fklq…_dxPUi^cwZ_sFK_V[n„—z€nt„‡¬²Â}ƒ“EK[gm}ou……•¦¬¼€†–>DT%5FL\\dwp{—jy˜kz—csR`{HWnGQjAL`8@S6?N5R;FZ@K_?J^;FZ9DX:EYAL`3>R)4HOZnˆ“§ÍØìßçúÛãð“Ÿ=?LJL[VWk`avff€hh‚iiƒiihh€hi}gixZ\h>@L$'0&(5,.;-/<.0=FHUrtšœ©¬®»z|‰WYf@BOACPFHUDFS9;H)-903DJP`kq”šª™Ÿ¯‡Ž”¤”šª…‹›€†–sy‰}ƒ“Ÿ¥µ«±Á–¦tx„SV]himux}jmrRV_,0;#&,:U\ncj}bj^f}ž¨Ãèòÿçòÿ~‰¥7 1^g„¾ÇäÁÊ礭ʣ¬É¢«È„ªIRoV_|}†£‰’¯Ÿ¨ÅÇÐíïùÿ³½Ø’œµ™£¼¬¶Ïš³kuŽjtv€™_i‚T^w>Ha>HaMWpNXq[e~bjƒ‰Ÿ~ƒ—‡Œ sxŒ9>R*/CINb[`tV[o`eyUZn`eysxŒNSg;@TinŽ“¦w}rxˆž¤´²¸Èw}OUeou…z€”šªºÀÐw}%(JP`dlz…¡x‡¦o~›dtŽ\j…IXo=G`?J^FYCK^EM`EM`DL_=EX=EX5=P(0CAI\t|£«¾ÏØéçïü½ÃÏIO[ ,DJVJP\:@LIO[GMYEKWCIU@FR?EQ@FRAGSCIU5;K)/?*0@>DTRXhV\lQWgOUe[aqZ`pX^nRXhOUeQWgW]m\dycr‘YkI[7Im1Eh:QsI_„QiIc†_{ lŠ®Pn’%EkJXEQ_HTdHSeJUi3>R2=ST^wx‚›‹•°—¡¼Ÿ¨Åkt“.7T9T_uñýÿïûÿçôúäòóáïïáðíáðíáðíáïðáïðáïòåíðÿüýïã壕••‚„¿¥¨Å¦«Æ¢¦Ë¤©Í£§Ì¢¦Ì¢¤Ì¢¤Í¥¥Î¨§Ñ«¨Ñ®¨èûæÁ¸ìǾìǾåùîÎÃÿâ×ÿéÞîÒÆíÑÅèÎÁáǺØÁ³ØÁ³×Á³Ô½¯Ô·¯Óµ­Ö¸°Ñ³«Â¤œ¹›“µ—¯‘‰qiŒnf‡ia„f^€bZz\TtVNqRM’om”qoŽkiŽki—tr–sqmk’om…b`„a_ƒ`^ƒ`^„a_‡dbŠgeŒieŸ}t{q—uk{q­‹±…¯ƒ·•‹É§Ìª Í«¡Î¬¢Õ³©à¾´æĺäĹëÊÃêÌÄìÎÆöØÐúÜÔïÑÉìÎÆøÚÒÿäÜÿáÙùÛÓíÏÇÛ½µÅ§Ÿ²”Œ¥Šƒ‹vstb`_MKXFD]KIgUStb`~lj{yÆ´²ûéçáÏ͓{ig³¡ŸïÝÛÿøøØÊɝŽ‹}|¶¨§ïáàÿóòôæ外•™‹ŠÁ³²öèçÿñðüîíÿôóÿññöçêÿõúÿúÿêÛ௠¥Š{€œ’³¸ôåêÿñöÿ÷üÿóøýîóþïôÿðõüíòíÞ㥖™ž”Ŷ¹±¢§•†‰Â³¸ÿöùúëðÿõøßÐ՗ˆ‹¦—œ¹ª­–‡Œ­¡¥üöúùôúôïõíèîèãéêåëñìò÷òøêå로¢¦¡§äßåøóùúõûúõûçâ汬°ÔÐÑøôõøôõû÷øöòóÊÆÇ­©ªÊÆÇÔÐÑËÇȶ²³¾º»ãßàúö÷öôõøöûŒ‘mlqŽ“ãâçÿþÿöõú©¨­×ÖÛÿþÿÿþÿ÷öûýüÿÞÝ⩨­À¿Ä¾½Â£¢§Ž“ÔÓØóò÷ôóø¨§¬‚†ÅÄÉôóøüûÿàß䬫°¨§¬âáæôõúëëóÕØ჆Z]fŒ˜ÛÞçÜßèÃÆτ‡€ƒŒŸ¢«òõþîñúŸ¢«_bkWZcx|…ËÏØûÿÿïóü½Àɼ¿Èòòüüüÿêçòsp{82>JDPPHUF>KDU0?V4CZ7F]BQh@Of=Lc@MMO^[\pdezjj„ll†mm‡ll„jj‚ij~gixZ\h?AM&)2)+8.0=.0=02?HJWtvƒœž«¯±¾|~‹]_lIKXIKXLN[IKX<>K*.:/2CIO_jp€•¥“™©ƒ‰™‰Ÿ•¥“£‡—jp€lr‚–¦¦¬¼•¥qu`cjuvz†‰Ž{~ƒSW`#. 39G[btcj}jr‡owŽ§±ÌëõÿÞéÿhs<$-Jr{˜¼Å⶿ܜ¥Âœ¥Âž§Ä}†£LUr^g„…Ž«‹”±œ¥ÂÁÊçåïÿ°ºÕ—¡º¦°É·Áڊ”­U_x_i‚ƒ¦t~—Zd}8B[;E^Q[tYc|hr‹s{’€†œŠ£–›¯qvŠ/4H%*>KPd`eyX]qafzW\p_dxjoƒFK_6;Odi|Ÿ¤·€†–msƒ–¦©¯¿w}QWgjp€|‚’£©¹¿ÅÕpv† ! #FL\jr…• ¼¯fu’[k…^l‡Wf}NXqMXl7?R.7F(/?+3>/5A-4>-1:*1;5BTIMeZ^wlpŠƒ™Ž’¡–šªŸ£« ¤¬¡¥®£§¯¤¨±¦ª²§«³¨¬Àµ¹Àµ¹Á¶ºÁ¶ºÂ·»Ã¸¼Ä¹½Ä¹½Ê¿ÃËÀÄËÀÄȽÁÁ¶º¶«¯¬¡¥¢£‹ŽWcsJWh’¢¯ÄՏ©¸‡¤´y™¨x™ªyš«{š®€Ÿ³z”«Pj4Id;OhAQj>Md7F]1@W/>U/>U1@W3BY=Lc=LcSp;Pm9Nk9Nk;Pm>Sp?Ws>WvBDQTVebcwlm‚qq‹rrŒuurrŠmm…jkhjy\^jCEQ+.7%'4+-:-/<35BMO\z|‰£¥²·¹Æ‚„‘givTVcOQ^OQ^MO\ACP/3?),=CIYfl|†Œœ‹‘¡‡—‡“£–œ¬ˆŽžio`fv‡—œ¢²†Œœ`dpqt{”•™ª­²‰Œ‘GKT 39G`gygnu}’„Œ£¸ÂÝïùÿÌ×óMXt/8UPYvŒ•²¯¸Õ¢«È“œ¹•ž»–Ÿ¼w€W`}ox•Ž—´–³›¤Á¾ÇäÙãþ¬¶Ñš¤½©³Ìµ¿Ø…¨MWp\f—°…¨[e~,6O8B[Xb{gqŠu˜‰ ~„š› ´¥ª¾ns‡&+?$)=NSgbg{]bvch|[`t_dxafz?DX6;Oafy¥ª½Š sy‰Š Ÿ¥µtzŠRXhjp€‚ˆ˜µ»Ë»ÁÑ_eu + #AGWnv‰¨Äyˆ§SbJZtWe€Zi€S]vMXl6>Q.7F+2B19D8>J8?I9=F7>HDLYFM]IPbLScMTfLScJQcIP`:AS4;K-4F")98?Qip€š¡³ÆÍÝíóÿÙßëio{$"(4CIUDJV7=I;AMDPSp;Pm8Mj8Mj;Pm>Sp>Vr?Xw=Xv=XvJ$'8@FVdjz…•…‹›‚ˆ˜ˆŽžŽ”¤•›«•¥v|Œdjzw}•¥x~ŽMQ]mpw©ª®ÃÆ˄‡Œ15>  17E]dvov‰{ƒ˜—®ÈÒíñûÿµÀÜBMi]fƒŠ§¦Ãœ¥Â’›¸‘š·˜µ‡­vœmv“…Ž«”º‹”± ©ÆÇÐíÔÞù¨²Í™£¼™£¼œ¦¿‹¤cm†isŒƒ¦‹•®Yc|'1JCMfkuŽ|†Ÿ‹¤Š’©„Š ¥ª¾¨­Ájoƒ).B*/COTh_dxfkfk_dxbg{^cwBG[BG[in–›®ˆŽžz€“£—­kqQWgqw‡•¥»ÁѤªºGM]$,>DTgo‚Œ¨apGVsGWqSa|RaxHRk@K_>FY7@O6=MJKQ];AM6J8>J8>J7=I5;G4:F17G:@P@FV?EUDJZQWg\br^dtZ`pV\lNTdGM]BHXAGWDJZEL\LUdLXhMXjKXkL[rO_yK^~EY|4Js0\ 'V:lOZpìøÿôÿÿìùÿßíîãññãòïãòïãòïãñòãñòãñôçïòÿûüþòô¾°°±ž Ö¼¿Ø¹¾×³·Ú³¸Ù¯³Ø®²Ö¬®Õ«­Õ­­Õ¯®×±®Ö³­â½µã¾µèúíÈ¿îÌÂîÎÃïÏÄëÍÂêÎÂéÍÁãɼáǺåÎÀæÏÁãÍ¿çÐÂëÎÆéËÃìÎÆîÐÈéËÃêÌÄíÏÇéËÃèÊÂëÍÅæÈÀãŽæÈÀáû۽µßÁ¹Ú·±×´®Ð­§Ë¨¢Ê§¡É¦ È¥ŸÊ§¡À—Áž˜Ã šÅ¢œÆ£Æ£Å¢œÄ¢™Å£™Å£™È¦œÍ«¡Ð®¤Ï­£Ó±§Ú¸®à¾´âÀ¶ìÊÀûÙÏÿâØÿá×ýÛÑøØÍìËÄéËÃçÉÁíÏÇöØÐöØÐöØÐÿáÙÿéáÿçßþàØòÔÌßÁ¹Ê¬¤¶˜¨†Œwtmktb`kYWdRPaOMeSQm[Ywec‚pn‚pnƒqoŒzx}{“Ÿ‹œˆ‡‰ˆ¨“’²ž¯š™ Œ‹ ‹Š¨”“¦‘{zzy“~ƒnmvbau`_mYZjoyflzgm‚ouˆu{ˆu{ˆu{‹x~Œyœ‰·¤ªÏ¼ÂÓÀÆÇ´º½ª°½ª®Ï¼¾Î»½Ê·¹Ð½¿Ð½¿º§©Ç´¶ûèêòßáøåççÔÖ¼©«Â¯±Î»½¸¥§Äµ¸ùðõùôú÷òøïêðæáçåàæíèî÷òøÿúÿ¿ºÀ»¶¼íèîþùÿùôúúõû÷òöþùýúö÷øôõùõöòîïÜØÙÉÅÆÍÉÊÐÌÍÓÏÐÅÁ³¯°½¹ºâÞßúö÷ù÷øöôù¤£¨|{€”ÔÓØüûÿûúÿÎÍ҈‡Œº¹¾íìñùøýÿþÿãâ璑–ž¢ÁÀşž£ÎÍÒõôù÷öû÷öûçæ두•®­²ðïôÿþÿø÷üïîóñðõ÷öûëìñûûÿðóü©¬µ~Š¥¨±ðóüûþÿïòûÞáêçêóúýÿîñúöùÿèëôtw€NQZž¢«ßãìó÷ÿó÷ÿïòûæéòööÿûûÿÖÓÞwtPJVb\h\TaLDQF>K:2=837845845845845845845845845845845845845845845935@7:G<@RGKbW[tim†{•ŠŽ’–£˜œ£˜œ¤™¦›Ÿ¨¡©ž¢ªŸ£« ¤¯¤¨¯¤¨°¥©±¦ª²§«²§«³¨¬³¨¬¹®²¹®²·¬°²§«ªŸ£ •™–‹ˆŽ|ŽXdtGTez‹›²Ã† ¯…¢²†¦µ„¥¶†§¸‹ª¾˜·Ë“­ÄZt‹#8S(A(8Q)8O(7N'6M%4K$3J#2I"1H,;R/>U4CZ:I`@OfFUlIXoJZsMa|K`}I^{G\yEZwBWtAVs@Ur?Tq=Ro:Ol7Li7Li:Ol=Ro=Uq=Vu=@IOQ^bdsqr†z{~~˜~~˜„„ž€€˜yy‘stˆoq€bdpIKW14=*!#0*,98:GSUby{ˆŸ¬±³À”–£€‚dfsFHU68E?ANJLYHLX/2CIO_msƒ…•‚ˆ˜ƒ‰™†Œœ‹‘¡“£‘—§‡—hn~msƒ‚ˆ˜tzŠPT``cj¡¢¦»¾Ãvy~&*3".:@NW^py€“{ƒ˜Š’©ËÕðêôÿ «ÇNYu‰’¯£¬É£¬ÉŽ—´–³”º‡­s|™zƒ ƒŒ©— ½•ž»†¬§°ÍÖßü×áü£­È™£¼†©yƒœz„|†Ÿv€™q{”…¨Xb{,6OWaz‹¤’œµŒ–¯’š±•›±¤©½—œ°di}7DP6OZpìøÿôÿÿìùÿßíîäòòäóðäóðäóðäòóäòóäòõèðóÿûüÿóõ¾°°­šœÒ¸»Ö·¼Ö²¶×°µ×­±Ö¬°Õ«­Õ«­Ô¬¬Õ¯®×±®×´®Ý¸°Ý¸¯à»²éÄ»òÐÆñÑÆæƻ۽²ß÷ìÐÄìÒÅçÍÀçÐÂæÏÁá˽äÍ¿êÍÅçÉÁëÍÅîÐÈëÍÅìÎÆíÏÇèÊÂëÍÅéËÃæÈÀåÇ¿æÈÀæÈÀâļÞÀ¸Ù·®×µ¬Ö´«Ô²©Ð®¥Í«¢Í«¢Ìª¡Æ¤›Å£šÃ¡˜Â —ÁŸ– —á˜Ä¢™Àž”Ä¢˜Í«¡Ó±§Ï­£Í«¡Õ³©ß½³Ô²¨Û¹¯åùðÎÄõÓÉõÓÉôÒÈòÒÇíÌÅëÍÅçÉÁêÌÄóÕÍóÕÍòÔÌùÛÓöØÐöØÐõ×ÏïÑÉãŽԶ®Å§ŸºŸ˜œ‡„Ž|zomucalZXfTRhVTo][|jh‡us‡us‰wu’€~–„‚šˆ†¨”“³ž›¹¤¡È°®ÕÀ½áÉÇàËÈàÈÆÜÇÄßÇÅʵ²Ç¯­Ä¯¬¹¡Ÿ±œ™´œš­˜—¬—œ¥— ‹’¡Œ“ ‹’™„‹“~…zš…Œ¡Œ“­˜Ÿ³ž¥¦‘˜x{fmwbg|hjvbcs_`wcduabp\]|hi’~®š›³Ÿ ¯›œ–‚ƒœˆ‰¨”•œˆ‰£“”ÍÄÉÕÐÖßÚàÞÙßÔÏÕÑÌÒÙÔÚãÞäÿûÿÝØÞÜ×Ýõðöü÷ýýøþÿüÿü÷ûìçëïëìëçèëçèêæçßÛÜ×ÓÔ×ÓÔÔÐÑÔÐÑÅÁ³¯°¼¸¹Û×Øîêëëéêóñö¶µº’‘–ž¢ÏÎÓðïôïîóÑÐՆ…Š·¶»ïîóúùþùøýáà囚Ÿ©¨­ÆÅÊ¥¤©ÔÓØòñööõú÷öûíìñ•”™’‘–ÛÚßÿþÿø÷üòñöõôùø÷üîïôûûÿéìõ£¦¯‚…Ž­°¹ô÷ÿúýÿîñúîñúñôýóöÿõøÿ÷úÿÕØáru~UXa—›¤æêóûÿÿõùÿñôýìïøûûÿýýÿÞÛætq|UO[oiu`XeOGTNFS<4?837845845845845845845845845845845845845845845935@7:H=ATIMeZ^ynrŒ…œ‘•¤™§œ ¨¡©ž¢« ¤¬¡¥®£§¯¤¨°¥©¯¤¨¯¤¨°¥©±¦ª²§«²§«³¨¬³¨¬²§«°¥©­¢¦§œ Ÿ”˜•ŠŽŒ…ƒ~„ru„Q]mAJ*-6"%."+!*"+ #,!$-"%.#&/%(1&)2&)2>AJGJSWYfgixuvŠ}~“›‚‚œ‰‰£††ž—z{tv…giuKMY25>!.%'4.0=;=JPR_kmz†ˆ•—™¦•—¤ŠŒ™oq~GIV,.;68ELN[PT`FIZ^dt…•„Šš‡—„Šš€†–ƒ‰™ƒ‰™Š €†–ek{agwy|‚’eiueho•–š¦©®jmr&*3'$*6=CQU\n€‡šy–}…œ»ÅàÙãþ”Ÿ»hs¢«È®·Ô ©Æ‡­ˆ‘®˜µˆ¥ir~‡¤Š“°š£À“œ¹‚‹¨§°ÍÝæÿÝçÿ›¥À”ž·v€™ak„r|•‚Œ¥x‚›hr‹{…žWaz0:S`jƒ‡‘ª›¥¾”ž·œ¤»¬²È™ž²y~’]bvINb?DXJOc_dxx}‘bg{Z_sbg{ch|^cwjoƒ}‚•€…˜kqbhx…•†ŒœPVf@FVx~Ž²¸È©¯¿io-3C%5&,<:@PLTgVa}Sbfu’~Ž¨}‹¦ixZd}R]qOWjHQ`FM]KS^PVbMT^IMVGKV8>J5;I06D,2@)/=(.<)/=)/='-;$2%+9'-;/5CNTbouƒ“¡¸¾ÊáçóÇÍÙciu "@FRJP\;AM:@L8>J7=I8>J:@L=CO?EQ7=M7=M-3C28Hbhx•›«“£bhxLRbFL\?EU:@P:@P=CS?EU@FRBKRMV[T]dQ[gHSeOo€¢·È·Æ‘®¾¯¾®¿®¿’±Å¡Àԝ·Îb|“%:U$= 0I /F /F-D+B)@'>&= /F"1H'6M.=T7F]?NeETkHXqL`{J_|H]zF[xCXuAVs?Tq>Sp>Sp;Pm8Mj6Kh6Kh8Mj;PmAJ*-6"%. #,!*"+"+!$-"%.$'0&)2'*3(+4JMVQT]]_lkm|vw‹~”‚‚œƒƒŒŒ¦ŠŠ¢……€•z|‹jlxLNZ25>!.%'4/1>=?LLN[_anrtŽ‘ž’Ÿ~€QS`-/<35BKMZRVb[^oqw‡–¦Œ’¢„Šš‡€†–€†–|‚’‡—y`fvZ`psy‰€†–rv‚qt{•–š™œ¡\_d)-6+/:06B4:HY`r‚‰œw”rz‘Ÿ©ÄÂÌ瑜¸€‹§ª³Ð«´Ñ˜¡¾~‡¤vœ{„¡{„¡w€}†£‚‹¨Ž—´™¶Š§ž§ÄÙâÿàêÿ”ž¹ƒ¦_i‚V`yq{”‰¢t~—pz“€Š£bl…9C\eoˆ…¨¢¬Å¥¯È¶¾ÕÄÊà’¦[`tUZnUZnAFZGL`kp„}‚–[`tOTh[`tafzfksxŒ|”†™jp€hn~Ž”¤‹‘¡CIY5;Kz€¾ÄÔ¢¨¸ciy8>N$*:%56BM59E25D,/>(+:&)8'*9),;+.=*-< /%(7&)8+.=FIXfix‚…”©¯»ÔÚæ×Ý鉏›$0 9?KPVbBHTAGS@FR?EQ>DP=CO=CO=CODJZGM]BHXFL\hn~Œ’¢…‹›ek{KQaEK[=CS9?O9?O
DT>DPGORQ[\W`eMW`;GW-9Q /N)O#QTi ¥äž¶ü”®ù„Ÿî|˜ë„ï™ªòivºP^uƒÀ‹šÓ{‹¿q‚°ewŸ=PqBUsDXpG\oH^l>T_9PXBV]O^aR`aTbeUbhVckZgpam{gsƒgr†`jƒR\wXa€ir“fn’em’w£js”09V ;R]sïûÿñýÿèõûãñòåóóåôñåôñåôñåóôåóôåóöéñô÷óôíá㝏€mo£‰Œ¬’¬ˆŒ©‚‡²ˆŒ²ˆŒ³‰‹µ‹·º”“½—”¾›•Ý¸°Ù´«Ö±¨ç¹þÜÒôÔÉÍ­¢­„½¡•÷ÛÏÿùìÿóæÿðâÿñãÿðâÿóåÿîæÿëãÿïçÿóëÿîæÿèàÿáÙòÔÌͯ§©‹ƒÁ£›øÚÒÿâÚöØÐ÷ÙÑñÓËÖ´«Ó±¨×µ¬Ö´«Î¬£Ï­¤Õ³ªÔ²©×µ¬Õ³ªÒ°§Î¬£Ê¨ŸÆ¤›Ä¢™Â —Ä¢˜¼šÄ¢˜Ó±§Ú¸®à¾´ä¸ྴëÉ¿éǽ߽³Ö´ªà¾´óÑÇöÔÊêÊ¿ôÓÌæÈÀÖ¸°Øº²íÏÇùÛÓôÖÎïÑÉõ×ÏöØÐ÷ÙÑóÕÍêÌÄÞÀ¸Ñ³«Ç¬¥­˜•‹‰Ž|z…sq{igo][fTRcQOkYWkYWr`^|jh„rp‘}›‰‡Ÿ‹Š¼¤¢Æ­©Ï¶²Ô»·Ø¿»ÝÄÀÝÄÀÙÀ¼ÚÁ½Óº¶Ð·³Í´°Ê±­Îµ±Ð·³É±±Ã¬²Á¬³Â­´Ä¯¶É´»Í¸¿ÏºÁιÀ͸¿ÖÁÈÞÉÐÝÈÏØÃÊÕÀÇÓ¾ÅÓ¾ÃßËÍÚÆÇÛÇÈÜÈÉÙÅÆÛÇÈØÄÅ͹ºÕÁÂÓ¿ÀÙÅÆÒ¾¿Îº»ÕÁÂÖÂÃ×ÇÈÚÑÖÕÐÖÒÍÓÑÌÒÑÌÒÏÊÐËÆÌÈÃÉÍÈÎÍÈÎËÆÌÆÁÇÅÀÆËÆÌÈÃɺµ¹¯ª®´°±¦¢£¤ ¡¤ ¡™•–š–—™•– œ¦¢£¤ ¡œ˜™›—˜™š‹Œywxqotlkpedilkpxw|‚†}|yx}ƒ‚‡‹Š‘•¥¤©¿¾ÃÆÅʛšŸ–•šµ´¹¶µºÌËÐßÞãïîóóò÷æåêÁÀų²·¸·¼ÐÏÔëêïôóøôóø÷öûýþÿÑÑÙÔ×೶¿§ª³½ÀÉÞáêâåîïòûóöÿêíöèëôìïøÓÖߥ¨±nqzmpy“— ÎÒÛáåîéíöòõþóöÿúúÿèèòÄÁ̊‡’zt€ƒ}‰qiv\TaQIV?7B837845845845845845845845845845845845845845845935?69F;?RGKbW[vko‰~‚˜‘ •™¶«¯¶«¯¸­±¹®²»°´¼±µ½²¶¾³·Àµ¹Àµ¹Á¶ºÁ¶ºÂ·»Ã¸¼Ä¹½Ä¹½½²¶º¯³µª®®£§¤™›”“ˆŒ‹†Œux‡O[k+8Ip‘­ÂÓ°Êٚ·Ç¯¾°Á°Á’±ÅŸ¾Òœ¶Íd~•,A\/H'7P&5L#2I /F,C*A)@(?,C.E"1H(7N0?V9H_BQhFVoK_zI^{G\yEZwCXu@Ur>Sp>Sp=Ro;Pm8Mj5Jg5Jg8Mj;Pm;So8Qp8Sq8Sq9Tr:Us;VtKKM\Y[jhjytv…‰Šœ“•¤‰‹š\^m35B46CIKXPT`dgxz€˜°–¦‡ŒŸŒ’¢ƒˆ›ƒ‰™z’|‚’uz_euY^qqw‡}‚•ps‚psz•˜”—žMRX)-6BFQDJX06F_fxˆ›w}•krŒŒ“¯µ¼Ù“œ¹™¶­¶Ó§±Ì‘š·s}˜bkˆhr{„¡‹•°{„¡wœ‚‹¨™´Š§”ž¹ÑÚ÷áëÿšµpz“ISnQ[twœ}‡ s}˜{…ž’œ·v€™ISnnx‘ˆ’­®¸Ñ¼ÆáÖÝ÷ÒØžINbQVjZ_s?DXEJ^w|~ƒ—UZnFK_TYm]bvhmuzŽv{€…˜pv†}€‘¦¬¼˜›¬;AQ/2C…“ÆÉØ ¦´il{EKY'*9)58GIPbJTo2@]:EcXceq‹bl…WbxNVkCK^=DV;BR@HUCIU>DP9=H6:F39G/5C*0>&,:$*8&,<*0@-3C*0@!1!'7!&9#(;=BU^cv{€“Œ“£¿ÇÔàèõ­µÂFQ:BM8@KOUe[`safy^cvdi|qv‰rwŠhm€PUhINa@EX;@SNgDTmK_wI_wH\uE[sCWp@Vn?Sl=Rm>Rm;Pk8Ki5Jg6Ig7LiWv?Xv@Yw8Qo6Om2Lg.Hc+E`+E`+E`,F_ƒ…’su‚^`mIKW68D%'3!*"+#&-")!( #(!$)$',.259<>MNOaabvlm‚op…ttŒƒ„™|}‘VWi35D.0==?KHLXX[lns†}‚–‹£ ¥¹ž£¶ˆ¡}‚•ˆ¡{€“sxŒafyV[osx‹‹¤|‚’€„Š•„ˆ‘PWa$39GPVfX]pMRh|€™‹ª‚‡¤”²› À› À ¦Æ¬³Ï™²‰“®bl…L17E/6F-6E&/>'6 )8.7H)(fQPκ¹ãÏÎÜÈÇʶµÁ­¬ª–•·¢¡³››­“’Á§¦ÜÂÁàÇÃáÈÄÝĿ̳®›‚}I0)hPFäÌÂÞƺи¬Ç¯£©‚~_M’r]šze~^IŒlWÁ¡ŒÐ°›Í­˜Ö¶¡éÉ´ÿåÐöÖÁ×·¢È¨“Ʀ‘Ùº¥ªz…oXt^ÜƯÿîØÿøáÿóÝÿìÕÿïÙìֿꔤŽwÄ«•ÿúãÿúäÿîÜÿõéñØѐwphaÝĽÿóìÿêãüãÜíÔÍóÚÓúáÚúáÚ÷Þ×÷Þ×êÑÊи´«™™€rr©™™É»¸§˜“‰|t€riznbm_Th[RfWPk^X|mj‡yx…uv{kl¯ Ë¼·Î¼º¯ ›Ï½»ÜÍÈ­›™ ‘ŒÅ³±Â³®½«©³¤Ÿ±ŸÓĿμºÃ´±ÇµµÂ²³Ç´¶Ë»¼Î»½Í½¾ØÅÇâÒÓáÎÐÚÊËê×ÙàÐÑÚÇÉäÔÕåÒÔàÐÑÛÌÏáÒÕÛÌÏÔÅÈÞÏÒèÙÜÞÏÒÏÀÃÜÍÐÙÊÍÝÎÑÞÏÒÛÌÏÛÌÏÜÍÐÜÑÕÝÙÚ×××àÞáÞÞÞåãæÝÝÝæäçæææèæéÜÜÜæäçÓÓÓäâåáááåãæßßßßÝÞáááâàáààààÞßØØØßÝÞåååÞÜÝÍÍÍÇÅÆÏÏÏÒÐÑÉÉÉÄÂÃÆÄÅÇÃÄÅÁ½Á¿»¼¾¹½¾º»¿º¾À¼½ÊÅÉÿÀ¾¹½ÄÀÁÌÇËËÇÈÉÄÈÏÉÍžÅÌÂÊÊÀÈÌÂÊÖÌÔÕËÓÌÂÊÌÂÊùÁùÁĺº°¸Ã¹Á¸À§¥­¦®ª§°©©³ª¨³´´¾¯­¸˜˜¢”’™„‚„„Ž…ƒŽtt~gepggqqozyw‚|‡Ž‹–•›‘‹—œ–¢³­¹¹³¿¯©µ—£™‘ž‡”|tjbo_WdTLYHBL647666756777867666756555201222423444645666867867824;57C:=KEG]TWpjl‰€ƒ–’«¢¥®¨ª¶­°¸²´º±´¸²´»²µº´¶Â¼¾Ä¾ÀÆÀÂÇÁÃÇÁÃÅ¿Áý¿Á»½·±³µ¯±²¬®«¥§£Ÿš”–‘‹Œ‡‹~}‚mpw:AIeoxÈÙáÜóûºÂ‘±¼‘µÁŽ³ÃŒ±ÄŠ®Ä£¼h‡£Dc€,Gd@Ur=Nl6Ge1B`->\*;Y&7U#4R.L.L.L/M!2P%6T):X,=W3FW6LZ@SbDZhGZkAVg=Oc6K`;Me9Mf:Kg9Mh=Nl>QoCStCVvDWxDVzDWxCVwCVvBUuBUsBVq]alms‡—uzŽkp†uy’z~›„ˆ¥Œ­ŠŽ©‘¬Œ‘§„‰w}W]k07A*%(113@?APSThgh}ssuuuu}}•ss‹PQe24C.0<:]?C`HLiOSnLPkFJcCH^CH^>CW9>Q8=P9?O7=M5;K3:J)2A*6D(4B!-; ,<(4D3>P8CW3>T.9O*4M+5N*4O'1L6?\S]xv—™¤¸¾Éݱ¼Ð• ²ƒŽ q}v‚¦²À¶ÂΪ·À£°¹«¸À™¦®™¦®ÂÌÖ¾Åع¾Ôª¯ÅŒ‘§in„`e{†œ«°Æ”™¯QVl#(>).D:?UBG]AF\;AW.6M(2K(4N%3N)F/PL\€}¸\r›ay¥{“ʦؓ®ã­ãžÕÓž¹î£¿ñc}®1L{u½¢ºæsŠ´]tVl“Ne‡BVw;PoATrCWrBSoKYsW]s_avV[qRWmSYqHNfBIcPWq]g‚\h‚]h„[i„UdQ`}Ve„_n‹am…4@V.KVhêòÿðùÿøÿÿæîùìóýìóùîóùîóöïóöïóôñóòòòðûúõùô¢˜‰Äµ²Ó¿¾×ÂÁàÈÈãÆÈàÃÅÚÀÁÕ½½Ò½¼ÒÀ¾ÕÃÁÕÆÃàÍÏê×ÙìÙÛõâäÿìîùæ輩«\IKnp÷äæÿôöÿíïøåçßÌά™›·£¥Æ°²Ç®±êÒÒÿóóÿñïÿïíÿìèñÙ՝†€M6.w`XÿëàýçÚæÐÃÙö¿¨˜µ™ƒ—w^uU<|\C«‹r¼œƒ¤„k›{b‘qXƒcJ•u\šzaŽnU•u\¢‚i­‘y‡qYWC*\H/°œƒÍ¹ Ê¶Â®•¹¥Œ½©©•|vbIWC*‰u\ÞʱÞʱ×­ïÙÌÓ¼´r[SeNFͶ®ÿöîÿòêýæÞÿïçÿðèÿôìÿñéÿëãÿðèÿöîÿòí ‘~or³¥¥å×Ô˾¸¨›’’†z‚vhsgYnbVh[Ri\Vtfc|nnvgjj[^® ŸÕÇÄÓÅÂ×ÉÆýïìÿûøúìéõçäüîëèÚ×ßÑꬩžÅ·´Ç¹¶Ë½ºÉ¹¹È¸¸È¸¸ÊººË»»Ï¿¿ÙÉÉâÒÒæÖÖìÜÜîÞÞÐÀÀ¸¨¨ÊººÝÍÍÜÎÎßÓÕÎÂÆÐÄÈäØÜìàäçÛßã×ÛâÖÚã×Ûã×ÛÜÐÔÙÍÑæÚÞïãçéÝáãÚÝèæçåååãããÚÚÚêêêêêêçççÚÚÚäääâââéééÓÓÓêêêéééåååÝÝÝãããééééééÚÚÚçççâââçççæææìììäääÔÔÔÖÖÖâââØØØÍÍÍØÖ×ÉÅÆÉÃÅÈÂÄÈÂÄÈÂÄÊÄÆÍÇÉÎÈÊÖÐÒÎÈÊÊÄÆÌÆÈÑËÍÕÏÑÓÍÏÎÈÊÔÉÑÜÑÙØÍÕÔÉÑÚÏ×ÝÒÚÙÎÖØÍÕÜÑÙÚÏ×ÝÒÚÙÎÖØÍÕÕÊÒǼÄĺÃÈÅÎÍËÖÎÌ×ÖÔßÐÎÙ¾¼Ç¹·Â³±¼Ÿ¨¡Ÿª¡Ÿª˜–¡ŽŒ—‹–“‘œ›˜£˜’ž¢š§¤œ© ˜¥£›¨¯§´´¬¹°¨µŸ—¤—œŠ‚yq~g_lYQ^KCP@:D758666666777777666666666111222222333444555666756623935>8:GACTNPhbd}wy‹…‡œ–˜¡›§¡£ª¤¦«¥§¬¦¨­§©¯©«¹µ¶»·¸½¹º¾º»¾º»½¹º»·¸¹µ¶®ª«­©ª©¥¦£Ÿ ›—˜“‹‡ˆ…ƒ„}€qrt@CHgpuËÚßÞõûŸºÁ±ºŽ²¾Œ±Á‰¯Â†¬Ã| ºeˆ¤Gh‡3Pp?Vv=Pp8Kk4Gg2Ee1Dd.Aa,?_$7W!4T1Q/O0P 3S%8X(K1;G4@L3?M)5C!-=#/?)4F.9K/:N-8N*4M-7P+5P(C",G7AZju‹†‘¥¦±Å«¶Ê¨³Å³¾Ð»Ç׿ËÙÂÎÜ´À̗¤­š£•¢ª‰–ž†“›¦°ºµ¼Ï®³É™ž´sxŽNSiOTj†œ·¼Ò¡¦¼KPf0$)?JOedi[`v:@V-5L$.G".H$2M)7T2CaN^€g{ Vl•Wo›o‡·‚žÐ“®ã”²èƒ¢Ù€žÔ… Õ¦ÀórŒ½*Eth€°‰¡ÍAX‚4KtLb‰I]€=Pq8KkCTrHYuHYuIWq\bxcezX]qTYmV\rNTjFNePWq^hƒ\h‚]h„[i„WfƒVe‚^mŠiy“`l„6BX.ITfëóÿñúÿøÿÿæîùìóýìóùîóùîóöïóöïóôñóòòòðûúõü÷ñ³¬¦œ‘Ç¸µÕÁÀØÃÂàÈÈäÇÉâÅÇÞÄÅÜÄÄÛÆÅÜÊÈßÍËßÐÍåÒÔìÙÛðÝßúçéÿðòÿíïƳµfSU~kmÿìîÿùûÿóõÿöøàÍϒ—ƒ…–€‚œƒ†Õ½½ÿòòÿôòÿôòÿøôÿè䤍‡P91w`XÿñæÿõèþèÛÿíàüåÕÕ¹¤rZ}_GÌ®–ÿðØÿï×ÿäÌÿäÌîиغ¢÷ÙÁÿêÒðÒºêÌ´ãÅ­Å©‘“}eVB*eQ9ʶžãÏ·ÛǯÚƮӿ§Í¹¡¾ª’vbJA-~jRØĬ͹¡Ì·¤Ì¶«¯˜’S<6C,&¦‰ÝÆÀ¿¨¢ž‡Žwq~ga{d^†oiŒuo‹tnƒlft_\gWXA25tff¶¨¥±¤žœ†Ž‚v|pbthZnbVeXObUOgYVk]]bSVUFI¬žÜÎËÕÇÄìÞÛÿöó÷éæÿñîöèåûíêüîëÿûøéÛØ©›˜º¬©¿±®ÎÀ½Ì¾½Ì¾½É»ºÇ¹¸ÎÀ¿ßÑÐðâáûíìûíìÿöõÿñðßÑз©¨¼®­ÞÐÏäÖÖÚÎа¥©¾³·ðåéüñõòçëòçëòçëÆ»¿ÌÁž³·½²¶ÒÇËÖËÏÔÉÍßÖÙíëìÞÞÞ«««ÆÆÆØØØÚÚÚÏÏÏÞÞÞàààØØØ´´´ÕÕÕßßßÜÜÜÖÖÖãããëëëååå¾¾¾ßßßãããêêêàààØØØÜÜÜÊÊÊÊÊÊáááÖÖÖÂÂÂÑÏм¸¹Á»½ÇÁÃÍÇÉÐÊÌÑËÍÏÉËÎÈÊľÀ¾¸ºÊÄÆÚÔÖâÜÞèâäãÝßÐÊÌÒÇÏàÕÝàÕÝØÍÕÜÑÙäÙáäÙáàÕÝäÙááÖÞÜÑÙßÔÜÚÏ×ÔÉÑÕÊÒȾÇÐÍÖÔÒÝÑÏÚ×ÕàÔÒÝÇÅÐÂÀ˹·Â±¯º°®¹ª¨³¦¤¯£¡¬¡Ÿª¨¦±¯¬·°ª¶´¬¹¶®»¶®»µ­ºµ­º»³ÀÁ¹Æ¥ªš’Ÿ‰Žyq~ianWO\F>K<6@869777777666666777777777222222222333444444555645623824<68B<>NHJ_Y[smo€z|‘‹•‘š”–—™ž˜šŸ™›¢œž¥Ÿ¡¯«¬°¬­±­®²®¯²®¯±­®¯«¬®ª«£Ÿ ¡ž™š˜”•‘ŽŠ†‡„€~|}|z}qrtADIdmrÉØÝßöü¡¼ÃŽ¯¸Š®º‰®¾‡­Àƒ©Àxœ¶d‡£Mn?\|@Ww>Rs:No9Mn;OpO/CN4GU9LZ;N]:M\7J[5G[J*,8!$-!$- #* ' %"' $'!%((,-058SWbgm{€†–‚‡›x}“quŽrv“x|™‡‹¨ŠŽ©Œ«’¨’¦…•Y_m29C ,$'013@DFU_`txyŽ›€€š™€€˜ss‹TUi24C#%1(*604?ORech|y~’Š£Š£rw‹hmz“Œ‘¥†š{€”\auJOc‡Œ ¾Ã×­³Ã‘—£y€ˆelvRej€‘ª…¢_c€{~Ÿ©¬Í¦©Ì’²{‚ž}‡ ~ˆ¡MWp5?Xs}–Ÿ©Âš³v€™ƒ¦|†ŸCMf+5N|†ŸÌÖïÌÖוּÒr{˜DMjU^{nw”dmŠ~‡¤ÅÎ미Ջ”±nw”†¬¯¸ÕÔÝúßèÿ»ÂÞbh~SXlgl€otˆpu‰lq…^cwmr†mr†ch|\au^cwafzfkqvŠ~ƒ—¤•–ª£¤¸žŸ³mn€RTckm|{}Ššœ¨xz†NQZ:=F69@.18+.348CMOfX\y]a~UYtPToSWpTYoOTj9>R9>Q=BUEK[FL\@FV;AO:BO9CO=IU;GU/;I%1A)5E4?QT{Nb‡QeˆI\}EXvFWsHYuN_yO]wekoq†ch|X]qU[qOUkOWn_g~|†Ÿv‚œp{—jx“et‘gv“tƒ ‚’¬]i:F\.FQcìôÿòûÿöýÿçïúìóýìóùîóùîóöïóöïóôñóòòòðø÷òü÷ñ·°ª •‘˼¹ÝÉÈáÌËéÑÑëÎÐêÍÏçÍÎçÏÏæÑÐçÕÓêØÖêÛØê×ÙíÚÜíÚÜõâäþëíÿîðн¿s`bwdföãåÿóõÿòôÿøúãÐґ~€{}†pr~eh½¥¥ÿííÿñïÿîìÿ÷óÿì諔Ž\E=€iaÿóèÿøëÿïâÿ÷êÿóãÀ¥jN6€aLñÕ½ÿñÜýáÉÿíØþâʨ‰t¨ŒtëÌ·ÿøàÿçÒÿðØÿõàêй¯™‚hT<lWõáÉÿúåÿòÚÿöáÿóÛÿóÞÿðØ®™„]I1ŸŠuÿöÞÿëÖÿìÙÿìáй³fOIR;5¾§¡ÿöðÿðê÷àÚüåßÝÆÀÖ¿¹î×ÑÿéãøáÛÞÇÁ­ª“ƒ„\MPykk¸ª§¹¬¦¦™˜Œ€€tfpdVj^RbUL^QKbTQdVV\MPPADrdc›ŠŠ|y‘ƒ€|{mj—‰†•‡„ ’µ§¤ßÑÎõ²…wtˆzw¢”‘³¥¢²¤£³¥¤°¢¡¯¡ ¿±°ÝÏÎøêéÿöõùëêÿñðÿûúÿûúâÔÓÅ·¶ÖÈÇÕÉÉÎÄÅ·¬°×ÌÐÿùýÿõùúïóÿ÷ûýòöìáåÜÑÕ¹®²Ç¼ÀõêîüñõóèìøïòÿþÿõõõÚÚÚÈÈÈèèèøøøüüüõõõùùùÿÿÿêêê¹¹¹âââöööõõõóóóïïïòòòááá¡¡¡ÏÏÏáááñññçççîîîéééÊÊÊ¿¿¿ÚÚÚáááßßßôòóëçèåßáÙÓÕÏÉËÌÆÈÏÉËÕÏÑÚÔÖ¼¾±«­Á»½ßÙÛçáãçáãÞØÚÊÄƺ°¸ÏÄÌÜÑÙÜÑÙáÖÞëàèëàèäÙáîãëêßçÌÁÉÑÆÎÙÎÖÔÉÑÙÎÖÊÀÉÓÐÙÔÒÝÐÎÙØÖáÔÒÝÃÁ̽»Æ´²½¹·Â²°»£¡¬¥£®¬ªµ«©´´²½¾»Æ¹³¿¹±¾¿·ÄÇ¿ÌƾËÁ¹ÆŽÊÐÈÕ®¦³£›¨‡”w„qiv[S`H@MA;E:8;888777666666777888999333333333444444444444534734:46<68A;=LFH\VXoik|vx‰‹”Ž™“•œ–˜œ–˜—™Ÿ™›¡›¨¤¥¨¤¥¨¤¥¨¤¥§£¤¦¢£¥¡¢¥¡¢™•–—“”“ŽŠ‹‰…†ƒ€{|zxywuxpqs>AF[di¿ÎÓÝôú¡¼Ã‹¬µ†ª¶†«»†¬¿‚¨¿w›µd‡£PqDc‚>Wv>RsRs8Lm.Bc$8Y2S1R2S 5P$9J(L/BP2ET3FW4FZ4FZ=Oe=OeFHWdey}~“ƒƒ}}—„„žˆˆ ‚‚šdey:.;C6CK:GOLV`PWiW\pW\pJOc7¿ª¥ÿõðÿíèõàÛÓ¾¹«–‘œ‡‚²˜Å°«Ã®©·¢ª—“«›œo`c‰{{ØÊÇæÙÓÑÄ»¸¬ „vi]OfZN`SJ^QKcURgYYbSVXIL€Å·´ÙËÈÞÐÍÉ»¸´¦£Å·´À²¯æØÕðâßîàÝÓ؊‡pb_|nktfcvkiznn}qq‚vv”ˆˆ°¤¤Å¹¹ÍÁÁ«ŸŸ°¤¤ÏÃÃòææÛÏ϶ªª¯££šŽŽ¦œ¼³¶îåèÿøûíäçóêíÿüÿÿùüðçêëâåÈ¿ÂËÂÅïæéÿ÷úÿüÿÿýÿÿþÿûûûïïïååå÷÷÷óóóòòòñññöööÿÿÿééé³³³ÞÞÞõõõôôôñññüüüÿÿÿùùùµµµãããùùùÿÿÿóóóúúúöööâââÝÝÝñññúúúõõõù÷øýùúüøùû÷øúö÷úö÷û÷øüøùýùúïëìÈÄÅÎÊËõñòÿþÿþúûû÷ø÷ñ󢘠¹®¶ÔÉÑçÜäñæî÷ìôöëóïäìüñùôéñº¯·º¯·ÚÏ×ÙÎÖÙÎÖÎÄÍÇÄÍ×ÕàãáìíëöÝÛ濽ȳ±¼«©´¡Ÿªœš¥‹–¡Ÿª·µÀ¶´¿À¾ÉÉÆÑÅ¿ËýÉÉÃÏÔÎÚÔÎÚÉÃϼÈſ˳­¹­§³˜’žƒ}‰vp|`ZfKEQE?I<:=999777666666777999;;;666666666555555555555645:67;78=9:B>?LHI\XYnjk{wxŒ–’“™š¡ž¡ž¡ž¡ž¢žŸª¦§©¥¦§£¤¥¡¢£Ÿ ¡ž œ œ”‘’ŽŽŠ‹Š†‡†‚ƒ‚~€|}|z{xvyrsu9Pf>PfOi@QmARp@Pq?Op>NoF>HRHOaV[och|`eyQVjCH\BG[HMaBG[:?S@EYFK_GL`X]qY^r>EX+$8-9O>MdESn>Ok7Gh1Eh+Ah$=f.Ft4P\4T‡7U‰7Q‚-Eu(@pIaby¥\si¨‚–»hzžyŒ­}®x‰¥Xg„?OiUedpˆz”†‰œpuˆOTg?FYDK^]ez‰ž~‰Ÿx„œr~˜guXh‚N^xO_yVfYe}AMc/@K]ï÷ÿõþÿóúÿèðûìóýìóùîóùîóöïóöïóôñóòòòðùøóÿüö»´®’ŽÆ·´ÜÈÇæÑÐîÖÖéÌÎéÌÎéÏÐêÒÒêÕÔëÙ×íÛÙìÝÚðÝßê×ÙèÕ×ïÜÞøåçÿòôâÏчtv‡tvîÛÝÿ÷ùÿùûÿùûÿöøçÔÖæÓÕàÌÍ»¥§×ÂÁÿùøÿùöÿìéÿòíÿñ쾪£s_V†riûçÜÿïáÿòäÿûíÿõç”ziqXB¨zÿëÕÿùæÿñÛÿðÝïÖÀ™~k†mW¬‘~üãÍÿùæÿúäÿøåÿö⭚xeTŠwfôáÐÿòáøåÔùæÕñÞÍÿîÝÿøçÚǶr_N„q`þëÚÿùèÿóäÿúóÝÈÀkfaLGº¥ ÿóîÿñìÿêåÛÆÁª•‘|w£Ž‰¹¤ŸÀ«¦¼§¢¶¢¡³£¦rcf‰{{å×ÔþñëâÕ̼°¤…ykbVH`TH\OFZMG^PMcUU_PSWHKƒut¼®«çÙÖêÜÙÀ²¯¥—”³¥¢°¢ŸçÙÖÿøõÿøõÿûøðâß¹«¨É»¸ÎÀ¿Ä¸¸Ê¾¾ÔÈÈàÔÔïããüððÿõõÿõõÿööòææÿóóÿûûÿôôäØØʾ¾ž”•À·ºÙÐÓìãæÙÐÓ¶­°«¢¥¦ –³ª­ÍÄÇ¿¶¹§ž¡œ“–³ª­ÝÔ×ÜÖؼº»¨¨¨›››ššš°°°ÝÝÝúúúûûûÿÿÿäää©©©ÐÐÐíííöööøøøûûûüüüððð®®®ÏÏÏíííûûû÷÷÷ÿÿÿüüüäääØØØéééõõõñññîîîûùúùõöóïðïëìïëìôðñúö÷ÿûüâÞßµ±²¶²³çãäÿüýùõööòóüöøœ’š©ž¦ÌÁÉòçïÿöþÿõýÿôüÿôüÿûÿõêò¬¡©§œ¤ÕÊÒÚÏ×ÖËÓÐÆϪ§°ÔÒÝôòýüúÿæäïÂÀË©§²Ž™‹‰”ŽŒ—‹‰”¸¶ÁáßêáßêçåðìêõâßêãÝéåßëëåñéãïÚÔàÀºÆ­§³º´À¼¶Â¦ ¬‰ƒxr~b\hMGSEBK==?;;;888666666888;;;===:::999999888888777777666:89=9:>:;A=>JFGYUVjfgwstŽŠ‹—“”¢žŸ«§¨­©ª¬¨©«§¨ª¦§µ±²²®¯®ª«ª¦§¦¢££Ÿ ¡ž¡ž•‘’“ŒŒˆ‰‰…†‡ƒ„†‚ƒ„‚ƒƒ„|}91B"5F)Pf=OgOm=Nl;Lj9Jh7Hf4Ea3D^2C]1C[0BZ1C[4F\7I_8J^6H^4FZrtƒacpPR_<>J(*6 )'&$$!&"% # $%&+.;?JMSagm}‹¤‘–¬z~—pt‘hl‰‚†£‹ª‘¬“˜®ž£·Ž”¤_es7>H$!*13@OQ`rs‡†‡œ›ssss||”‡‡Ÿ~“Z\k13?$&2+/:@CVdi}•š®¯´È”¨Y^rjoƒ²·ËÃÈ܌‘¥|•ch|9>Rin‚»ÀÔÈÎÞ®´À„‹“`gq+2<!/$249LBG[~ƒ™®²Ë…¢6:WloÙÜý×Úý‹°X_{JTm^hlvt~—‹•®—°€Š£™²®¸Ñnx‘ .!+D„Ž§¦°É‹•®ª³Ð¹Âßqz—1:WQZwt}š•ž»ÕÞû¶¿ÜPYvJSpŸ¨ÅÞçÿêóÿ¿È再©Y_ufkpu‰joƒfkej~kp„‚‡›’—«ns‡RWkQVjY^r^cwjoƒ{€”†‡›¢£·ÊË߂ƒ—FGYnp|~su‚^`lBENCFOCFM03:),18G.:F4@L$:=H\ny¨¼ÀËߦ±Ã¤¯ÁÝéùÙåóJVd%+8A,9A3@H1>F8BL5I[ðøÿöÿÿòùÿèðûìóýìóùîóùîóöïóöïóôñóòòòðòñìûöð´­§–‹‡À±®ÛÇÆêÕÔôÜÜéÌÎëÎÐíÓÔðØØòÝÜôâà÷åãöçäúçéóàâòßáúçéÿïñÿùûòßᗄ†{hjåÒÔÿîðÿôöÿðòÿóõòßáýêìÿíîçÓÔôàßÿùøÿõñÿðìÿ÷ñÿõïλ´}ka{qÿóçÿùëÿðâÿðâüéڏxfr\Gµ›ŠÿîÙÿõäÿ÷âÿòáñÛÆÖ¼«°š…˜~m̶¡ÿóâÿõàÿëÚÿóᾫœn^Ž}mðßÏÿöæÿòâÿóãûêÚõäÔýìÜ÷æÖ¤“ƒ‘€pøç×ÿüìÿöêÿ÷ðèÕѓ€|bOK¯œ˜ÿôðÿøôÿïëÜÉŲŸ›ž‹‡¯œ˜Á®ªÄ±­¾«§µ£¡ºª­qbe~ppßÑÎÿôîéÜÓ÷«†zlh\NfZN`SJ[NH\NK^PPXILPADpba²¤¡ðâßÿóðĶ³Š|yŽ€}…wtÑÃÀûíêýïìüîëîàݨš—´¦£ÞÐÏÌÀÀÐÆÇÝÓÔïåæûñòþôõüòóùïðéßàǽ¾ÚÐÑÿõöÿüýÿùúêàáùºíäçúôöÿüþÿýÿÿúüõïñôîðÿýÿõïñÿüþùóõáÛݼ¶¸ÍÇÉÿýÿÿþÿÿþÿåååÇÇǛ››‹‹‹£££àààýýýñññðððÏÏϏ°°°ÒÒÒèèèðððùùùîîîÚÚڜœœ©©©ÔÔÔìììüüüóóóààà¡¡¡xxx°°°ÃÃÃÚÚÚéçèêèéëéêíëìðîïóñòöôõ÷õöÕÓÔ­«¬­«¬áßàÿþÿÿýþöôõÿûü¢˜ œ‘™»°¸íâêÿôüøíõüñùÿûÿÿôüäÙ᠕˜•Â·¿ÏÄÌËÀÈĺ棬ÝÛæýûÿÿýÿöôÿäâí¸¶Áyw‚kitsq|xv·µÀðîùòðûøöÿûùÿ÷ôÿùöÿùöÿú÷ÿûøÿëèóÀ½È–“žÄÁÌÏÌ׸µÀ‘Ž™zw‚ebmNKVFCL>>@<<<888666666888<<<>>>======<<<;;;:::999999888:89:89978;9:A?@NLM^\]ighŠˆ‰–”•¨¦§¶´µ¼º»¼º»º¸¹¹·¸Â¾¿¾º»¸´µ²®¯¬¨©¨¤¥¦¢£¥¡¢š–—˜”•”‘‘Ž‹ŒŽŠ‹‹Œ‹Œ—•˜Œ>AF6?DŸ¤ÁØޓ®µz›¤¥±ˆ­½“¹ÌšÀ׎²ÌiŒ¨;\{:Y?Y|>VzVzBZ~F^‚G_ƒG_ƒG_ƒIa…Jb†G_ƒ>Vz1Im#;_2Q/D->+<*>0D'9M0BV6H\@Rh?Qg=OeBMNTbfl|”¨—œ²~‚›qu’dh…ƒ ‰¨‹ª’—­Ÿ¤¸Ž”¤]cq6=G% #,35BSUdwxŒŠ‹ ‚‚œppŠiiƒqq‰—‚–egv>@L+-9-1<:=P^cw’—«­²Æ’¦\au}‚–ÔÙíÓØ쑖ª„˜in‚9>Rbg{·¼ÐËÑᲸąŒ”dku18B"0)38KQVj’—­²¶Ï~‚Ÿ;?\ru–ÕØùÑÔ÷Ž“³HOk9C\Wazv€™‰¢‰“¬‰“¬†©œ¦¿¸ÂÛkuŽ'%/HŒ–¯©³Ì‹•®¬µÒÂËèw€.7TOXuu~›— ½Úãÿ¨±ÎBKhPYv¯¸Õãìÿáêÿ°¹ÖƒŠ¦[aw`eyuzŽhmdi}fk_dx€…™¢¶pu‰MRfMRfX]q]bvin‚z“„…™£¤¸ÐÑ倁•ABToq€{}Œqs€xz†XZf?BKBENADK+.5$',59BDGZBG]FKaRWmbg}hm[`sJP`DJZLR`[aohnzagsMT^>EO9BK,6?/AGWZ_r`fvW\oLRbJObLRbFK^;AQ8=P=CS;@S28H).A!(:%.?)4F7DWDShJYpPa{gx–“´f|¡Ha‰7O{-Jv5Q€8W†)Iz%Cu-Eu4`1]0Epv‹¶”§Ñk¤m£zŠ¬„”µ†•²Šš´_m‡5D[N]tal€Y^qorƒjp€W]mMTfFM_FNaT\oJUiHTjGSiETk@Pg@PiIYrTd{VbxDPf/>>===<<<;;;::::::888777645555;9:EEETRS^^^Šˆ‰˜˜˜®¬­¿¿¿ÉÇÈÊÊÊÉÇÈÇÅÆËÇÈÇÃÄÀ¼½¸´µ±­®¬¨©©¥¦¨¤¥žš››—˜˜”••‘’”‘”‘•‘’”’“§¥¨™šœCFK2;@‰˜»Ò؏ª±v— ¥±Š¯¿—½Ð Æݔ¸ÒkŽª4Ut-LC]€AY}?W{?W{C[F^‚G_ƒG_ƒE]Jb†Og‹Og‹G_ƒ7Os%=a2R-E*>(<(<.B&8L0BV7I]ASi@Rh>PfPf?Qi;Lf:Ke8Ie6Ga3D^0A[.?Y->X1B\1B\3E]8Jb=Og>Ph[x{œÊÍîÍÐ󌑱:A]&0IgqŠ~ˆ¡‹¤…¨Ž˜±ª´ÍÚäý¾Èápz“2";ƒ¦´¾×Ÿ©Â¾ÇäÏØõt}š9B_kt‘„ªŽ—´ºÃàs|™CLi}†£ÚãÿÔÝú®·Ô¡ªÇ“š¶dj€afzfkhmotˆns‡RWk~ƒ—ÄÉ݀…™TYmW\pKPdKPdx}‘•š®‹Œ Ž£¶·Ë‡ˆœfgyprprxz‡kmyPR^GCY;@TINbZ_rSXk>DTJP`TZh^dp\cmOV`>EO29C,5<'28!.4,4!.6'4<*7@(4@%1=.:H0LAGWFLZNTdZ`n_eu^drJP`KQ_IO_AGU4:J)/=#)9 '7%.?-8J4AR8GZHWnew„•±“¨Ç’©Ë\v›6OxKh’Okš7V…2R ?n 8f'EUAJ[BJ]8CUERe@M`GVkHYm;KbGWnTd{S_uFRh 4@K]óûÿ÷ÿÿòùÿíõÿéðúéðöëðöëðóìðóìðñîðïïïíïîéõðêÁº´‡|x°¡ž¶¢¡·¢¡¿§§¡„† ƒ…ƒ„š‚‚—‚“’€~€}z||~—„†§”–»¨ª×Äƾ«­dQSr_aÒ¿ÁïÜÞýêìôáãȵ·ŠŒ¶£¥­››»««Â°®Ì½ºÑ¿»ÐÁ¼æÕÎéÚÓÑÀ¸wi^udZìÞÑÿüíÿûëÿõæóãԅtds`Q”rÿïàÿùêÿïàÿûìÿïàÿðáþëܪ—ˆÀ­žÿûìÿûìÿúëÿòäæÖɛ€¨—èÚÍÿûñøêÝÿúðÿôçáÐÆøêÝÿûñèÚͽ¬¢ìÞÑÿñçÿüóÿõñýîë°®whe ŽŒþïìÿ÷õÿôñóáßÿôñüêèÿ÷ôÿ÷õÿðíÿúøÿð𾯲‡x{‹}}ÓÅÂÿõïúíäÚÎÂÁµ§¢–ˆ„x‚ulzmgqc`dVVPAD9*-aSR–ˆ…ƸµóåâÙËȏ~‚¸ª§ëÝÚýïìûíêÿôñùëè´¦£•‡„ǼºÉ¿ÀÓÊÍèßäýô÷ÿ÷üÿüÿÿüÿñèë«¢§¦ ´«°ôëîÿüÿÝÔ׬£¨ÖÍÐþøúÿþÿùõöýùúòî益§Ÿ›œôðñõñòøôõüøùòîïÐÌÍÍÉÊñíîýùúïíîúúúúúúììì½½½ÒÒÒÿÿÿüüüûûûøøøòòò´´´ÉÉÉöööüüüóóóöööòòòóóóôôôñññíííòòòúúúöööõõõéééÁÁÁÛÛÛñññåååæææöööúüûôôôþÿÿüüüåçæìììùûúÈÈȝŸž¡¡¡Õ×Öööööø÷ôôôöôõïåí¶«³®£«åÚâÿûÿÿûÿþóûýòú²§¯’š³¨°¦›£¦›£š—·¿á×ààÝæÃÁÌÄÂÍÍËÖ½»ÆÉÇÒ×Õà›¦`^iVT_hfq†„ÔÒÝýûÿÿýÿØÖáíëöääîÝÛæããíúøÿ÷÷ÿ»¹Äppz—• ÏÏÙÛÙ䛛¥wu€iisOMXLKSDDF??????===111,,,888IIIcccSSSIIIEEEDDDCCC<<<666>>>:<;9998:9;;;:<;999576___ŽÃÃÃÞàßìììñóòìììßßßúøùùõöÁ½¾‹‡ˆŒ œŸ›œ¤ ¡—“”“‹ŒŒ•‘’œ˜™ œ žŸ©§ª”•—ehm.7]A^€C]‚D^ƒE_„F`…Ga†Hb‡Hb‡=W|A[€Jd‰Uo”[ušTn“C]‚5Mo1J-C(>%;)?1G);Q0BX9K_9K_8J^6H\5G[3EY2DX2DX.@X/AY1B\3E]3E]3E]2C]1B\:Ke=NhARlDUoDUoARl=Nj:Kenpgix[]jLN[;=I,.: #,&")!($#" #"##&,0;DJX`fvv{¢¸ƒ‡ vz—ae‚y}šƒ‡¢“—²©®Ä¢§»…•[ao3:D+$'0/1>`bqŽ££¤¹‹‹¥{{•gggggggh|dfu\^jSUaLP[MPcej~ˆ¡£¨¼{€”FK_w|ÑÖêìñÿ¸½Ñ‚‡›V[o9>RKPdƒˆœª°À¥«·‚‰‘]dn:AK*0>'-;27JW\p‹¦ŠŽ§\`}BFcux™ÁÄåÌÏò•šº07S!+DgqŠƒ¦…¨…¨—°ª´ÍÎØñ±»ÔgqŠ 08r|•¢¬Å›¥¾ÂËèÈÑît}šGPmu~›Š§zƒ ’›¸\e‚GPm–³äíÿÕÞû ©Æ™¶‘˜´tzhmej~fkrw‹rw‹QVjx}‘ÂÇۆ‹ŸW\pHMaCW7L+7G.:J/:L7BT?J\+6JIThy„˜¶ÁÕ·ÂÖ¨³ÅÔßñØäô™§%1?&&/"/8*2"/7%2:,6?/7B8>LAGUIO]TZh\bp\bpU[iBHVBHV>DR6TMXnmuˆciw^bnQWeEKY>EU?FV>><<<999///,,,;;;OOO\\\NNNGGGGGGFFF@@@;;;<<<=?>:<;8:98:9:<;:<;798576IKJ~€º¼»ÝßÞîðïôöõëíìÝÝÝêèéû÷øÄÀÁxturnoŽŠ‹“‰ŠŒ‰Š‹‡ˆŽŠ‹”‘š–—žš››œ¡Ÿ¢‘“gjo-6;jy~Ÿ¶¼Š¥¬ƒ¤­ˆ¬¸Œ±ÁŠ°Ãˆ®Å‰­Ç{žºRs’'EgEa†Ea†Ga†Ea†Ga†D`…F`…D`…=W|>ZHb‡Rn“[ušTp•F`…8Pr"6Q1I*B&<'=.D%7M,>T7I]6H\5G[3EY2DX0CT/BS/BS-?U/AW2D\4F^5G_5G_4E_4E_;Lf=NhARlCTpCTpARn=Nj;Lhkm|egvY[hJLY:DR\brtyž£¹‡‹¤uy–^btx•‡‹¦œ »­²ÈŸ¤¸|‚’Z`n29C)%(146CbdsŒ¡¤¥ºª™iiƒcc{\\tXYmXZiXZfVXdQU`RUhmr†“˜¬§¬ÀuzŽ:?ShmÃÈÜóøÿÄÉݎ“§Y^r27KAFZz“¤ªº¤ª¶‚‰‘cjtNU_EKY;AO27J@EY^cyswdh…VZw~¢ÃÆçÐÓöœ¡Á,3O)Bfp‰‹•®– ¹– ¹•Ÿ¸¤®Ç´¾×ª´Íq{”#< /OYrˆ’«¢¬ÅÐÙöÄÍê~‡¤ir‘š·Š“°foŒ_h…?HeXa~«´ÑíöÿÌÕò‰’¯vœˆ«€†œuzŽns‡kp„uzŽqvŠLQesxŒ½Â֊£Y^r5:N).Bmr†¾Ã׺¿Ó‚ƒ—Š‹Ÿ¡¢¶yzŽkl~uw†uw†{}ŠdfrACO.1:8;D:=D+.5(+048AORcINaDRGMYJQ[JQ[CJR8?G-4:(/5'05#.2!/2"03$17'4:(5='4<&3<,8D/;G+7E-9G1=M;GWDP`8CUXcwƒŽ¢·ÂÖ´¿Ó«¶ÈÙäö×ã󇓡(6)*3"/8)1!.6&3;,6?5=HK:BO7@O2;J=IYN[k]j{oƒ”¦izŒ>Oc?Pd[g}GSi0>I[óûÿõþÿìóÿäì÷éðúéðöëðöëðóìðóìðñîðïïïíø÷òÿüöÝÖЫ œÜÍÊîÚÙñÜÛøàà÷ÚÜ÷ÚÜöÜÝöÞÞôßÞóáßôâàòãàïÜÞïÜÞðÝßôáãúçéÿùûñÞà—„†ˆuwÕÂÄÿöøÿùûÿùûøå繦¨¸¥§ùééÿñðüîëúìéñäÞìßÙöéáûîæûî嚎‚‰}qñå×ÿýíüðàÿøèþñá|naeWJ˜‡}üîáÿôêöèÛÿóéûíàßÎÄ¿±¤wf\¢”‡üëáÿôçÿöìÿö둂{dWObUM‹~vÑļÛÎƵ­viaZME—Š‚­ ˜¥˜Žy“†~¢•­ šÔÆÃÎÀ¿”†…ZLK|nmØÊÉàÒÑÙËÊ©›š•‡†Œ~}…wv„vu‰{z€Ÿ‘‘xilVGJfXX ’¿²¬·ª¡¥™•‰{•‰{Š~rƒvm|oipb_eWWWHKG8;VHG‚tq›ŠË½ºéÛØÙËÈäÖÓúìéÿñîÿñîýïìÿûøÿùöȺ·©›˜ÍÂÀËÂÅÐÉÐäÝäûôûùòùüõüúóúÐÉЦŸ¦¼µ¼ÔÍÔÚÓÚÇÀÇüÃÊÃÊñëïüúû÷÷÷øö÷þþþçå欬¬¥£¤ÖÖÖøö÷ûûûòðñêêêæäåæææñïðêêêõõõúúúöööäääµµµÈÈÈñññùùùòòòöööðððÆÆƲ²²ãããõõõñññëëëôôôïïïéééòòòõõõîîîêêê÷÷÷ýýýôôôÅÅÅÎÎÎÞÞÞáááôôôþÿÿúþýó÷öõùøó÷öíñðìðïáåäÃÇÆ¢¦¥ÆÊÉüÿÿüÿÿîòññõôïïïóìóüñùôéñ÷ìôúï÷ýòúþóûåÚ➓›¾³»Ç¼ÄɾÆɾƳ¨°ëàèÿ÷ÿýúÿïíøèæñ«©´’›¥£®õóþüúÿÛÙ䁊‚€‹¦¤¯ïíøÿýÿõóþäâí³³½µ¸ÁÈËÔÒÕÞÏÒÛÊÍÖ¦©²jmvqt}ÁÄÍáäíµ¸Áru~EHQ=@I@@H??A<<<888444---,,,>>>WWW```TTTKKKOOOQQQHHHDDDFFF<>=8<;5985987;:7;:5982659=M*=L.@T/AU3E[6H^8J`9Ka8Jb8JbOiARnCTrCTrARp>OmRv{¢¨¸£¯†Žipzmt~sy‡_es7ORaHM`9>Q-3C4:JFLZLR`GMYGNXGNXDKSJZ;GWgr†š®¸ÃׯºÎ¨³Å×âôÓß›*8&2%2;*7@"/7 -5&3;-7@>FQDJVJP\KQ]IO[DJV=CO8>J(.:)/;+1=.4@17C6\‚JhŽWu›XvœMk‘D^5Ji1B^&7S-G(B)A,B/E+=Q+=Q*=N*=L)Oi@QmBSqCTrCTrBRs@Pq>Noln}fhw[]jMO\=?K/1=$'0!*")!($#" #"##&$(317EU[kpu‰¥ªÀ•™²w{˜[_|jn‹‰¨§«Æ¸½Ó¥ª¾…•W]k+2<+%(1.0=PRavw‹Ÿ µœœ¶ŠŠ¤ppŠ__wGG_89M>@OPR^Z\hX\gLObns‡¢¶¤©½otˆ8=QMRf“˜¬Ò×ë¼Á՘±[`t&+?27Kpu‰œ¢²Ÿ¥±Š‘™…Œ–¢©³µ»É˜ž¬X]p$88=S^b{qu’tx•Œ°ÁÄåÅÈ뀅¥CWgl€°µÉ„˜Z_s9>R$)=otˆÍÒæÇÌà‘’¦›œ°‰Šž`aujk}rtƒuw†{}ŠgiuWYeFIRDT4:J8>NFLZNTbLR^DKUBIS>EM6=C-4:%-0"*- *, +-$23+9:,:;&47,2(0&.)2)2%1=0G9FO0=E&3;,9A4>GFOXKR\KR\ELV8?I-4>+2<-4>")3&-7-4>6=G?FPGNXKR\LT_>HT:FR7ER7GV:I\SnJb~HcA[~Sq—mŠ´Œ¬Õ£ÄÍVk–EV?NyVeŽlz¡ft™cp“p}‹–´GRn9C^Yc|ck‚YavU[qSZlX^jY]fBIS,3=/7B:BM>HT@JVFR``n{s€p€k|ŒHYi):LL]o£Xdz ,5@Rîöÿöÿÿñøÿíõÿéðúéðöëðöëðóìðóìðñîðïïïíø÷òýøòâÛÕ« œÖÇÄðÜÛïÚÙñÙÙöÙÛöÙÛôÚÛôÜÜòÝÜñßÝñßÝïàÝê×ÙíÚÜïÜÞñÞàõâäÿùûøå禓•…rt¶£¥ÿïñÿïñÿòôÿî𿬮ŸÛÍÌßÔÒèÝÙèÝÙçÜÖìáÛöìãÿ÷îñçݤšŽ†zëâÓÿþíüóâÿöåýô帮wmc„woÐƼÿóëÿõëýðèùïåûîæÒȾŸ’ŠÇ½³ÿõíÿ÷íÿøðýóêâ×Ӌ€|~sq¹®ªþóñÿùõÿûùÛÐÌtigž“öëéÿüøüñïöëçúïíÿüúúïíïã㫟Ÿ„xx›öêêÿøøÿõõ÷ëëÝÑѹ­­ÆººË¿¿¹­­º®®²¦¦Á²µ¢“–´¦¦òäáÿüöúíäʾ² ”†qeWl`Tl_Vh[U]OLUGGN?BE69C54qc`‚œŽ‹“…‚¦˜•ÙËÈÜÎËéÛØôæãèÚ×˽º¸ª§ªœ™œŽ‹“‡‡¶°´¬§®¯ª±ÙÔÛðëòùôû÷òùÀ»Â|w~Ž‰£ž¥¨£ª±¬³§¢©•—›™žîîðòôóøúùìîí¹»º‚„ƒˆŠ‰·¹¸ÂÄÃëíìûýüîðïÐÒÑÆÈÇåçæþÿÿûûûýýýÿÿÿöööÍÍÍØØØôôôÿÿÿóóóÿÿÿóóóÕÕ՟ŸŸÃÃÃòòòúúúûûûëëëöööÿÿÿòòòëëëñññîîîèèèúúúñññ©©©™™™§§§½½½äæåùýüñ÷õêðîèîìôúøøþüÖÜÚ¬²°ÒØÖ¹¿½·½»ÓÙ×íóñôúøñ÷õðòñðéðùîöûðøúï÷øíõÿúÿîã뜑™Ÿ”œÅºÂ²§¯»°¸Ä¹Áº¯·óèðüòûüùÿòðûÐÎÙkithfqŠÙ×âÿýÿúøÿÈÆч…‘šïíøöôÿöôÿööÿâåîÕÙâáåîíñúìðùîòûÒÖߙ¦”˜¡ñõþôøÿòöÿº¾ÇBFO!%.!$+568:::777222...+++<<<[[[ŠŠŠ„„„^^^SSShhhtttlllMON8<;5;93973974:84:8286064064NTRz€~œ¢ ©¯­©¯­ª°®¯³²§¥¦¥¡¢š–—‰Š…‚}~€|}‚~ƒ€ˆ„…Œ›—˜¢žŸ£Ÿ Ÿ›œ˜–—}~€_bg"+0N]b¤ªˆ£ªyš£y©{ °{¡´§¾‘µÏ‘´Ðn®De†Cc‰CcŠDd‹Dd‹EeŒEeŒFfFf;[‚7W~9Y€EeŒTt›XxŸOo–Gcˆ?StPd@Rh@Rj@Rj@QkARnBSqCTrCStBRtAQs@Prln}fhw\^kNP]?AM13?&)2 #,")!($#" #"##&#'2-3ASYipu‰ª¯Åž¢»y}š[_|gkˆƒ‡¢¥©Ä¾ÃÙ°µÉ…‹›V\j%,6!-$'0*,9HJYnoƒ¡¢·¢¢¼ŒŒ¦uu``xAAY-.B57FMO[[]iY]hEH[gl€”™­•š®lq…CH\KPd„˜­²Æ«°Ä› ´di}(-A-2Fch|‰Ÿ…‹—€‡‹’œ²¹ÃÀÆԝ£±^cv$816LX\uuy–|€Ž‘²ÄÇèËÎñƒˆ¨:A]$.G]g€§±Êàêÿßéÿª´Ímws}–ÓÝöÞèÿpz“";5[e~ËÕîÛäÿ›¤Álu’›¤ÁÇÐ픝ºAJg5:C`²»Øâëÿª³Ðy‚Ÿlu’ox•}„ {—}‚–{€”{€”ˆ¡uzŽ-;<%36,/+1 -5#09*3*6B:FR>JX/;I(4D>JZr}—¢¶µÀÔ¨³Ç®¹ËãîÿÖâò|ˆ–'3A3?K;HQER[CPX@MUHU]KU^IR[HOYELVHT5AOKYfVcsQapHYi0AQ3DVfw‰‘³_k +1SYiqvŠ®³É¥©Â{œ\`}ei†|€› ¤¿ÄÉß¼ÁՌ’¢TZh&0!#/%(1)+8GIXop„¦§¼¨¨Â§zz”bbz>>V'(<02ALNZ[]iX\gBEX_dx†‹Ÿ†šfkOThPUityŠ£¢¶¢§»rw‹05I(-AOThkqu{‡‚‰‘˜Ÿ©²¹Ã¦¬º}ƒ‘UZm*/C*/EHLeei†uy–”—¸ÕØùÞáÿ”´29U&0Iq{”ÇÑêêôÿÊÔ힨Áz„gqŠÍ×ðãíÿ€Š£&0I /OYrÏÙòäíÿ•ž»\e‚–³½Æ㊓°@If%B\e‚ÉÒïßèÿ’›¸foŒlu’s|™ztzx}‘v{v{‡Œ uzŽ>2@A,:;#14"03*7=3@F0=E!.7-9E@LX@LZ'3A*8BN^r}’±«¶Ê£®Â³¾ÐçòÿÉÕå_ky%1?BNZIV_LYbR_g]jrgt|\foENW>EO7>H4;E07A+2<+2I,@KS$%9.0?KMZZ\hXZgADU[`s}”sx‹bdyW\oXZoot‡xz•š­©«À}‚•9;P$)04=-1:(/7/7B+5A)5A-9G1>N:JZPauewRfKcLcƒbzœWq”A]‚LhD]…I\„Yh‘[j“Yhbp•ds”Xe…LZuGSmDOe5=R(0CMTfjqMUb8@Kqx€qx~QZ_4=D1APN]hxˆ•¥µ™¦¹al€'08Kìõÿôûÿìôÿçíùéðøëðöëðôìðóîïñîðïîðïïïíúùôùôðçßܪ¡œÖÈÅÿïíÿñðÿóòÿéêÿêëÿëìÿíìÿïíÿòïÿôðÿõñÿïîÿóòÿóòÿîíýéèÿùøÿîí¶¢¡‹wv«—–ÿìëÿùøÿõôÿñðóßÞÏ»ºîÜÚðáÞÿóîýîéöçâöçàïàÙøéâÿôëÓż—‰~ǹ¬þðãÿõèüîáÿôéñäÜÏľ¶©£„~ÎÁ»ÿùóÿúôÿûõýðêýòìøëåÿôîÿöðþóíþñëâÔÑãÓÔÙÉʬœªš›ÿòóÿúûÿòóþî礼™“ƒ„ ‘ÐÀÁÿ÷øýíîûëìùéêÿõõ÷é鯠£§˜›ùëëÿõøþððÿúýÿôôÿöùÿ÷÷ÿòõýïïýîñÿûûèØٔ„„{li¿°«ÿñêÿùðçÙÎĶ© ’…•‡|v†wpxidl]Z^NNM??=20cXV{pnž“‘“ˆ†dYWvtÁ¶´ÿüúùîìÿù÷ÿüúÜÑÏ®£¡±¦¤Æ¼»ÎÉÍÊÈÍ·´»ãáæÿýÿðîóú÷þôò÷ÌÉШ¦«ØÕÜ÷õúú÷þù÷üçä륣¨ßßáÿÿÿûûûöööôôôÄÄĸ¸¸ùùùõõõóóóùùùöööÏÏÏÁÁÁèèèÿÿÿûûýóóõ÷÷ùèèêÀÀÂÄÄÆÖÖØùùûööøÿÿÿøøúÉÉˤ¤¦  ¢ííïÿÿÿýýÿö÷ùààââãåÿÿÿþÿÿññóòóõööøþÿÿîî𛜞  ¢ÅÆÈËËÍËÌÎÕ×Öíñðûýüòöõþÿÿäè禨§‘•”µ·¶¾ÂÁ¾À¿¤¨§©«ªÕÙØâäã»»»ôëðÿ÷ýÿúÿÿõûÿõþ¿´ºnaj‘†Œ “œ„Š‚‹‡|‚r{›–Á´½àÖÞöóüôôþ°°ºPPZFFP^^hŒŒ–ããíüüÿóóý°°ºuuÆÆÐûûÿþþÿöùÿòöÿñøþð÷ýíôüïöþ÷þÿöýÿìõüž§®¦­íöýðùÿöÿÿåïøYbk &)-0=?>BDC@BA:<;&('')(BDCŠŒ‹»½¼~€9;:acb¹»ºÊÌˀ‚7;:487267265489487267/32'+*^bc¨¬«ÅÉʽÁÀÊÎÏíñòÛÛÝÀ¾Á¤¢¥Šˆ‹rpsust†„…Šˆ‰Š†‡“¡ž®ª©´°¯®ª© œ›–’“ˆ„…~|pqu,47ANT…˜ž«²‡¥­¡­€¦³€¥¸¥º‰­Ç°Ìw™µWx™Cc‰CcŠDa‰AaˆB_‡?_†@]…>^…He<\ƒ8U}?_†Ro—Yy Vs›MiOeŠRe†ObƒGZz:Mk,=Y.H&>%9(9,;1?$6B);E-?I/AK>R]@SaBUdCVeDWhCUiBTjASkDUoCTpCTrBSqBRsCStCSuDTvdfs[]jLN[;=J,.;#%2!. ,!#/"$0"$0#%1#%1#%1#%1"&1&*6#1@FVlq…¢§½³·Ð…¢hl‰hl‰mqŒ‰¨³¸ÎÀÅٙŸ¯W]k)/;* "1)+:UVh†‡™ÀÁÕ±²Æˆ‰}~’kl€EFZ"#589KNP_Z\kTVeIJ\WZkdeympvw‹ps„hi}gj{€••˜©¬­Á˜›¬efz'*;1NQbou¡¨²²¹Ã—¡w}‰NTb#1#)9/4G/4H2 %;‚†ŸîòÿöúÿÁÇáJQm8B]œ¥Âðúÿ¹Âߣ­È¾Ç䒜·GPm§Âçðÿ‡‘¬*3P!<J;=I46B)+7..::G37@).449?IPV@GQ;CN3;F,4?)1<19D?GRJR]>FQ8@M6>K7?L5=J5=J>FSLR`|‚’§ª» £²—š©¼¿ÎØÜ茐œ>BMRV_X\e[`fW\bTY]RW[KPSBGJ/3615859<:>A<@C=AD=AD<@C?CF=AD9=@48;/36*.1'+.%(/'+6&,:%-:")9!*9)5E:EWGTgVez\lƒbr‹Rc}8Le6JeBUsDWwJ\€Qc‡WiUh‰Qa‚Pa}Xhap…S`sO\l3?M,9BLV_R]cFQUMXZYdfny{w‚„dosFQU0=C+8>,9A4AI8EN;?>9=<8<;*.-'+*8<;lpo¤¨§‘QUT[_^¤¨§ÍÑЯ³²deg78:'(,56867;4579:>9:< PQU›œžÉÊÎ×ØÚóôøþÿÿýþÿàäçÂÆɕ™œhimhik~~€}}}ŽŒ˜—•¨¤£±­ª°«¨£ž›’Š†~ƒz{vyrmqNOSCKN•­Äʖ³¹”´¿±½‡¬¾†«¾„ª¿~¤»t˜²lŽªUs•Rp’NkGe‡Daƒ?]?\~=[}Daƒ@^€[>Gdœ¥ÂÔÝúÎ×ô‡­NWtS\ypy–ry•u{‘x}‘y~’qvŠqvŠjoƒafzty¡¦ºŠ£•š®‘–ªch|W\prw‹z€’š¥˜£©ƒŒ“zƒŠŠ‘y‚‰ov€fmwSWbBFQ9;H9;H35B')6)+:56JFGeDDf@A`\]{wx–pr‹dfZ\qruˆ`crVZfZ^iSW`CGPBGMMQZ8>J6&,:*0>28F9?M7=K39G06D06D4:H:@NFLZPVd~€«­¼ ¢¯–˜¥­¯»¿Áͅˆ‘GJSVY`Y\cX[`QTYKORGKN@DE8<=23545778:;<>=>@=>@=>@<=?@AC>?A;<>78:235./1+,.'*/(,7(+:%+9$*8$+;-4D:BUEM`JUiN[nT`vFUj3CZ6F]DTmFWqRb„RdˆRe†NaM^|Pa{[k‚du‡ZgwYgrDQZ5BHGRVWccVbbS_]Tbbaooo}~guvGUX-;>-:@6CI;HP;HQ:FR8DP?KYQ]kco}nzŠks†_gz/-4Déïÿøþÿó÷ÿîòûîñøîòõñðõñññòðñòñïòñíòñíùõôøôóßÚגŠ—‹Àµ³Ê¼¹Ç¸µ«˜”«–“ª’Ž§ŽŠ¦‰…¢…¡‚}žy–yq™~s›€u”ynœv¹ž“±–‹‚g\K0%pUJŽshf[qVK…j_•zo…ja‹pitp•yu–zv“ws“ws˜|xž‚~½¡ˆlhmQM–zvÜÀ¼ùÝÙèÌÈÿíéÒº¸Ñ¼»Í¸·¿ª©¯š™®™˜Ã®­ÛÆÅÿëêÿòñÿöõÿòñöáàåÐÏëÖÕÿéìÿèíÿçïÓµ½ªŒ”ñÓÛÿëóÿìôÿõýÿëóëÍÕѳ»»¥òÔÜÿï÷ÿõýÿêïÿïñÿñòÝÉÊÀ¬­Îº»óßàÿùúÿòóÿ÷øÿôõÿðñÿðñÿòóÿôõÿôõÿôðùçݪ˜Œ…sg¾¬ ÿðäÿûïýëßõã×½«ŸÈ¶ªÐ¾²À®¢¢„‹ymucWZLC5+*F@B]WYztv‰ƒ…rlnZTV_Y[ÖÐÒÿûýÿüþôîðÿûýØÒԜ–˜©£¥½·»«¥©­§«ÏÉÍòìðý÷ûûõùúôøïéíæàäõïóüöúòìðûõùðêîÁ»¿­§«îèìÿüÿúôøôîòúôøñëïúôøõïóöðôþøüøòö¿¹½¸²¶÷ñõÿýÿìéðïîôùøþðïõßÞäçæìóòøêéïôóù÷öüúùÿãâ螝££¢¨ðïõ÷öüýþÿ÷úÿâå곶»ÕØÝøûÿñôùòõúèëðñôùöùþÝà塤©ž¡¦°³¸ÌÍÑÿüÿüöøóíïöðòÿüþÿûýÝ×Ù¨¢¤½·¹ÏÉËÖÐÒÎÈÊÅ¿ÁÅ¿ÁÒÌÎåÜßóçëûìñÿöûÿóøÿöû¦—œsdi˜‰Žª› ¥–›¤•š¦—œ§˜®Ÿ¤Æ·¼ÛÒ×þþÿôûÿ­´¾_fpT[esz„«²¼ëòüåìö×Þ肉“W^h†—êñûôûÿöýÿÖá㙧§ÒàáóÿÿÜêíâñôáðõ¡³·ŒŸ¥·ÌÑåùÿìÿÿÜóûhˆ+CM07,679?=9?=6<:5;9*0.(.,9?=[a_ŠŽous+*/87<87<32776;87<"POTŽ’·¶»ÆÅÊæåêóôøðóøÖÛߺ¿Ã‹”Z^aY]`wxz}~ˆ†‡žš—¥¡ž£žš˜“‰„€yv}st|rssmqNNPDIM†”—·Ìѝ¸¿•¶¿Ž²¾‰­½†«½„ª¿~¤¹s—±k¨Ut“SpOlŒIf†Eb‚B_A^~@]}B_?\|:Ww:WwC`€PmUr’Tn‘Sj“Qh‘QgŽPf‹L`ƒM9GT=KV;IT6GQ6HT8KY=P_BUdFYjH[lI[oJ\pFXnFXnEWoEWoDUoCTnBSoBSohjwbdqTVcACP02?&(5%'4')6&(5')6)+8+-:+-:)+8&(5$(4".,9?Obg{“˜®­±Ê“°w{˜koŒimˆy}˜œ¡·®³Ç”šª_es6+1?)/=%+9%+9/5CAGUOUcU[i‰‹šµ·Æ£¥²™›¨Ÿ¡­¢¤°‚…ŽY\eUX_TW^ORWEHM<@C7;>156+/015826948;6:=87;>>BE<@C:>A6:=37:/36-14+.3*.9),;%+9%+9(/?/6F8@S>FYFQeHUhJVl@Od3CZ7G^DTmHYsYi‹XjŽUh‰M`€HYwJ[uWg~ct†gt„_mxS`iFSYFQUP\\Zff_kiXffP^_ZhiaopM[^8FI8EK>KSANW@MV9EQ2>J8DRJVd\hxdp€go‚^fy/,3Cçíýøþÿòöÿíñúîñøîòõñðõñññòðñòñïòñíòñíÿüûÿþýïê箩¦Â¸¶ðåãûíêýîëýêæþéæÿèäÿçãÿæâÿæâÿåàÿæÞÿíåÿîãÿìáüáÖüáÖÿóèÿçÜÙ¾³z_Tf[•zoti†k`¹ž“íÒÇèÍÄÖ»´Ú¾ºÜÀ¼Ú¾ºÕ¹µÓ·³Õ¹µÙ½¹Ê®ª‘uqnRNfJF†jf‰mi†jf¨‹§œ‡†•€•€‘|{€kjiTSZEDoZYq\[~ih‰ts„onji†qp‘x{“x}‰lq`CHY<6<:286397+1/*0.;A?[a_…‹‰jpnBHFFLJ|‚€»Á¿ÂÆÅoptA@E-,198=:9>43854965:$#(#"'QPU‡†‹¬«°µ´¹ÏÎÓÜÝáÔ×Ü¿ÄȬ±µƒˆŒSWZRVYstv~€€‡†„Œ‰”“ŽŠ‰„€~yuyqnvlmwmntnrOOQBGK‹™œÅÚß«Æ͗¸Á´À‹¯¿‡¬¾„ª¿}£¸s—±jŒ§Vs“Vp‘QkŒMgˆIc„Ga‚F`E_€A[|?Yz:Tu:TuD^RlWq’Uo’Um“Sj“SiQgŒNb…@Ut-@^2K1I/C!0C+;J9GT?MX24A13@.0=)+8%)5 $0 .9?O^cwˆ£¨¬Å•™¶y}šmqŽfj…ptŒ‘§ž£·“£bhv?EQ//$%7<=O^_q…†˜‹Œžxy‹vw‰qr„VWi)*<56HVWilm`asZ[mdewmn€xy‹‚ƒ•{|Žjk}cdv‚ƒ•©ª¼ÄÅח˜ªCDV#();nq€ÁÅÑ¿ÆВ™£sz„bhtEKW7=K17E6;N9>Q*/C " %;”ªãèþâèÿov’vœ´½ÚºÃà‚‹¨´½ÚßèÿŠ§6?\Ž—´ÊÓðs|™BKhS\yV_|›¤Áãìÿ‰’¯;Daox•ƒŒ©mv“JSpYb‘š·ÒÛøÈÑ°`i†PYvaj‡}„ …‹¡y~’z“otˆdi}mr†x}‘ƒˆœ†‹ŸqvŠkp„qvŠotˆmr†v{€…˜†Ž™Ž— ƒŒ•‚‹”‚‹”v~‰ouhn|LR`?EU6J6A8JV4@L3?M@LZP\lXdtck~\dw.*1Aäêúöüÿòöÿíñúîñøîòõñðõñññòðñòñïòñíòñíþúùÿþýïêç°«¨Æ¼ºïäâõçäøéæëØÔì×Ôï×ÓñØÔô×ÓõØÔ÷ØÓöÙÓûÞÖûàÕúßÔóØÍôÙÎÿæÛøÝÒÛÀµÏ´©Ê¯¤ÐµªÆ« » •âǼÿðåÿêáÿêãÿìèÿðìÿðìÿîêÿîêÿòîÿõñÿåááÅÁµ™•¥‰…®’Ž“ws­‘¾¥¡ÿìêüçæóÞÝöáàÿîíüçæ͸·™„ƒ®™˜¬—–­¬àËÊïÚÙøãâúåäôÜÜñ×ÚÑ´¹ž†€…¦‰Ž®‘–«Ž“Ũ­³–›§Š¬”qTYhKP•x}¤‡Œ‰or“{{²œÍ¸·¡Œ‹gRQŽyxϺ¹Êµ´”~Žyx‡rq€kj}hgydct_^q\Y|h_cODO;0VB7jVKvbWt`UnZO`LAmYNk`mbwcXr^SnZOaPHC77KBERIL\SVjadkbeaX[_VYTKNŽ…ˆáØÛüóöûòõþõøÉÀÃzosǺÁ»®µº­´Ë¾ÅÞÑØéÜãóæíþñøüïö÷êñÿòùÿöýþñøÿôûòåìÍÀǸ­³ÜÓØñèí÷îóðçìÿöûÿøýÿøýúñööíò÷îóïæëǾÃżÁôëðÿûÿðëñõòù÷òùðíôòíôñîõõð÷ùöýóîõøõüøóúÌÉЕ—š¡ÞÙàýúÿýüÿùúÿéè®¦¥«ØÙÞûúÿòóøíìòïðõóòøîïô¶µ»Ž“¨§­ÄÂÇîèìýô÷ÿöùÿøû÷îñÿüÿýô÷£š›’•ÌÃÆÚÑÔÏÆÉƽÀ«¢¥°§ªæÛßþòöÿùþÿóøÿøýÿøýáÒ׈y~xin¬¢°¡¦¯ ¥¨™ž¨™ž³¤©¿°µÂ·½êéñ÷ûÿêíö²¶¿“–Ÿ±µ¾åèñûÿÿ÷úÿÊÎ×vy‚sw€±´½ñõþúýÿóøþåí𝧨´¾¿ÖââØãåáïðÜê헦©³ÂÇíþÿîÿÿïÿÿäöÿoƒŒ%.)347=;4:8/53286-31,20;A?\b`ŠŽy}RXVOUS…ƒÄÊÈ×ÛڇˆŒSRW105549:9>87<65:438)(-$#(POT‘•À¿Ä»º¿À¿ÄÇÈ̶¹¾¥ª®› ¤„ˆW[^W[^uvx~€}~€~‡ƒ€ˆ„†}zvwrntliuklwmnxrvRRT?DH Öëð¿ÚᚻĒ¶Â±Á‰®À„ª¿}£¸r–°i‹¦UrUoQkŒMgˆKe†Ic„Ic„Ic„?Yz=Wx9St9StC]~Pj‹Vp‘TnVn”Tl’RhQgŒOc„CXw3Fd&:S!3K/C-@'7G7DT?MZ)+8+-:-/<13@68E9;H8:G35B,.;'+7#/,5;KY^r†œ¨¬Å¡¥Â~‚Ÿlpei„imˆ}‚˜Ž“§„ŠšdjxHNZ'(: !3$%723EOPbmn€z{op‚pqƒpqƒ]^p45G9:LVWilm_`rbcujk}qr„|}‡ˆš€’lmabt…†˜´µÇÌÍߍŽ 34F$=>PŠœÎÒÞ¸¿É„‹•jq{`frKQ]DJX=CQ?DWCH[149-14*.1)-.*.//47/48/48/4805905916:27;;@D:?C:?C9>B8=A7<@6;?6;A/3?-0?)/=*0>.5E5LO,:=8FIIV\VciZgoUbjN[dLXdGSa>JX7CS:FVEQaO[k^fy[cv.(/?áç÷õûÿòöÿìðùîñøîòõñðõñññòðñòñïòñíòñíýùøÿýüïê籬©À¶´ãØÖæØÕçØÕðÝÙñÜÙóÛ×óÚÖöÙÕöÙÕ÷ØÓöÙÓóÖÎóØÏôÙÐò×ÎôÙÐüáØ÷ÜÓçÌÃñÖÍò×Îò×ÎëÐÇèÍÄøÝÔÿêáÿåÜðÕÎó×ÓõÙÕöÚÖõÙÕöÚÖøÜØúÞÚÿêæó×ÓßÿÞ¾êÎÊѵ±àÄÀÜÿüäâüçæûæåûæåÿòñÿùøþéèäÏÎâÍÌäÏÎöáàÿíìúåäôßÞòÝÜíÕÕþäç׺¾¦‰¨‹œƒ¢…‰£†Š¿¢¦ÿìðûÞâþáåÂ¥©œƒ­”­”™‚‰qq¼¤¢òÚØʲ°~fd˜€~ÞÆÄîÖÔëÓÑåÍËÜÄÂÕ½»Ð¸¶Ë³±Å­«Á©¥²›“«•Š‡|’|q‘{p•t“}rwl‚lai^~h]xbWnXMjTIfPEXE>K==K@DI>BK@DXMQdY]g\`i^bi^bUJNpeiƒx|‡|€œ‘•‚†_SWk\agV\hW]n]cragvek„sy”ƒ‰£’˜«š ¶¥«³¢¨¥”š¡–š‰‰z†z~“ˆŒ°¥©Ç¼Àø¼åÚÞûðôöëïÿ÷ûùîòõêîðåéÙÎÒÚÏÓ÷ìðÿöûèáèëæìýöýÿýÿûôûõðöúóúöñ÷øñøþùÿûôûÒÍÓ®§®·²¸ÝÖÝûöüüúÿþýÿïíò®­²¥£¨ÏÎÓøöûôóøïíòîíòøöûöõúÅÃȔ“˜¬ª¯Ä¿Åóêïûðôùîòùîòîãçÿôøýòö¨¡˜‘ź¾ÑÆÊËÀÄɾ±¦ª°¥©ÞÓ×øìðÿúÿÿò÷ûìñÿò÷öç쒃ˆpafª› ¯ ¥®Ÿ¤§˜§˜¯ ¥´¥ª¯¤ªÀ½ÄÒÕÜííõâåìÌÌÔØÛâôôüóöýùùÿ²µ¼uu}{~…¸¸Àóöýúúÿ÷úÿðô÷ÂÈÈ ¦¦¶¿¾ÖÞàÕßàÓÝߙ¤¨»ÆÌíúÿõÿÿñÿÿôÿÿ®¿Ç):B(027;:487/32376043-108<;lpo¢¦¥ž¢¡lpo_cb“—–×ÛÚñõô¨©­ons=>=B:9>327&%*FEJž¢ãâç×ÖÛÆÅÊÅÆʵ¸½Ÿ¤¨”™~ƒ‡]ad^bexy{~€‚€ƒ‚€…~„€}|x|wswrnumjzpq|rs„~‚]]_?DH ãøýÓîõ¾Ç•¹Å³ÃŠ¯Á…«À|¢·q•¯hŠ¥UpŽTmŒQj‰Ng†Le„KdƒKdƒLe„@Yx=Vu9Rq8QpB[zOh‡TmŒRjŒUm‘QiOeŠNe‡Ma‚DYx7Jh,@Y#5M/C+>$4D4AQ=KXK@BO>@M8:G/1>(,8+'/5EW\p„š¯³Ì±µÒ…‰¦jn‹dhƒei„rw„˜z€ciwMS_56H !30)*E69@25:149.25+/2,01/36,15,15+04+04-26/4816:27;:?C:?C:?C:?C;@D;@D;@D;@F15A03B,2@,2@/6F7>N?GZFNaKVjQ^qS_uO^sK[rHXoP`y^o‰±m£at•j}{ŒªyŠ¤`p‡EVhan~qŠ`mvIV\EPT1==(44BNNTbc=KN-;>1>D?LRLYa_lts€‰fr~XdpMYgJVdEQa@L\CO_LWiZbuYat.&-=ßåõôúÿòöÿìðùîñøîòõñðõñññòðñòñïòñíòñíþúùÿüû÷òクµÃ¹·äÙ×ëÝÚéÚ×ìÙÕîÙÖñÙÕóÚÖøÛ×ùÜØûÜ×ûÞØõØÒõÚÑ÷ÜÕ÷ÜÓ÷ÜÕùÞÕöÛÔñÖÍïÔÍöÛÒôÙÒñÖÍ÷ÜÕøÝÔôÙÒ÷ÜÕöÚÖöÚÖöÚÖõÙÕôØÔó×Óó×Óó×ÓùÝÙéÍÉ÷Û×ðÔÐïÓÏìÐÌçËÇîÕÑóÛÙíØ×íØ×òÝÜöáàùäãþéèÿïîñÜÛõàßýèçþéèöáàñÜÛóÞÝöÞÞÿîñøÛßåÈÌòÕÙèËÏèËÏáÄÈîÑÕýàä÷ÚÞþáåáÄÈË®²Òµ¹Ô·»Ö¹»Ë±°ÞÆÄõÝÛÏ·µ˜€~ ˆ†Å­«ØÀ¾æÎÌáÉÇÛÃÁØÀ¾Ö¾¼Õ½»Òº¸Ð¸´Í¶®Ï¹®È²§»¥š±›¯™Ž­—Œ¨’‡¥„—v‹uj€j_u_TpZOkUJ]JCWIIQFJJ?CI>BRGKaVZodhwlp‹€„~sw…‰¨¡·¬°º¯³±¦ª¶ª®¾«±º¥ª¹¤«¼§¬½¨¯¾©®Ç²¹Ñ¼ÁÌ·¾Ð»ÀѼÃʵº¿ª±¸£¨¯š¡¢“šŽ’”Š‹¢—›¯¥¦’–µ«¬Åº¾¸®¯—ŒŒ‚ƒ‰~‚ˆ~~sw~tu‹€„Žƒ‡¢™ž›”›»±¹ÖÏÖÕËÓÖÏÖßÕÝÒËÒçÝåÚÓÚƼė—Ž„Œ¤¤¼²ºÚÓÚü÷ýÿþÿ÷òø¼º¿¶±·ÍËÐðëñøöû÷òø÷õúÿýÿÿþÿáÜâ²°µÀ»ÁÌÇËöíðøíñøíñÿúþÿûÿÿûÿïä衖š •™¾³·Æ»¿Ä¹½Ç¼À¼±µ½²¶ÛÏÓøéîÿúÿÿúÿýîóÿúÿÿò÷•†‹n_d©šŸ¬¢«œ¡¥–›¥–›©šŸ§˜’˜ª§®¯¯·ÚÙáúúÿ÷öþôôüùøÿïï÷ïîöšš¢onv||„«ª²ããëùøÿúûÿûüÿäå玒““—˜ÓØÛÐÕØÈÐӝ¥¨¼ÅÊæñ÷÷ÿÿìùÿõÿÿÖãì?MV(-07;:598/32487154+/.154kon¦ª©´¸·uyx^ba”˜—ÎÒÑôöõÆÅʒ‘–VUZ87<98=BAF>=B438 $438•”™óò÷òñöÜÛà×ØÜÑÔÙ²·»¢¦‚‡‹_cf^bexy{€‚ˆ†‡ˆ‡…‰…‚†‚ƒ~zzvzuqyqn€vwƒyz–”rrtFKOŽœŸéþÿáüÿ Áʘ¼È‘µÅ‹°Â…«À|¢·o“­fˆ£Rm‹Qj‰Oh‡Le„KdƒKdƒLe„Mf…AZy>Wv9Rq7Po@YxLe„PiˆNg†Qi‹Me‡JaƒI`€J_~CXu8Lg.B["4L/E+@"1D0=N:GWAH937:-14+/0/36).2&-3&-3&-3(/5,39/6<18>7>D8?E8?E:AG;BHD5BJ;HP@M(*7!#057D;=JCERHJWFHU=?L35B*.: $0*.4DW\p€…›µ¹Ò»¿Ü…¢fj‡ei„ei„in„ns‡kq_esRXd9:L !30 !3@ASSTfop‚pqƒop‚tu‡{|Žefx\]o_`rjk}\]ost†wxŠz{†‡™“”¦‰Šœno\]o…†˜«¬¾­®À`as)*a;Ei\d‰FLp6<`DJlLRtKRoOVrBIc@H_BJ]2;L#,;>HTnx‚z„Žfp|ZasQVjBG[7R=BVINbX]pghzsu„rtkmzWYeRT`CFOFIRDGN>AH:=B:=B6:=-14*./+03%-0$+1$+1%,2'.4,3907=29?7>D7>D9@F:AGEK?FL@GO37C58G28F/5C/6F8?OHPcV^qS^rZgz[g}Yh}\lƒcsŠ{‹¤œ­Ç¦¶Ø‘£Ç€“´€“³‹œºŠ›µy‰ fw‰jw‡gu€hu~gtzYdh?KK6BBLO8EK1>F9FN?LT4AJUamœ¨´£¯½q}NZjWbtdo\gyQ\pQ\pU]pX`s.$+;ÛáñóùÿòöÿìðùîñøîòõñðõñññòðñòñïòñíòñíÿýüýùøÿþûÎÉƸ¶àÕÓñãàéÚ×íÚÖîÙÖðØÔð×ÓóÖÒóÖÒôÕÐóÖÐòÕÑòÖÒó×ÓöÚÖôØÔîÒÎíÑÍôØÔõÙÕòÖÒðÔÐó×ÓôØÔñÕÑó×ÓùÝÙ÷Û×öÚÖöÚÖöÚÖøÜØøÜØøÜØ÷Û×ó×ÓõÙÕäÈÄ÷Û×çËÇïÓÏ÷Û×êÑÍãËÉîÙØñÜÛèÓÒæÑÐðÛÚõàßðÛÚðÛÚöáàðÛÚíØ×ôßÞñÜÛëÖÕï××çÍÎòÕ×ô×ÙíÐÒðÓÕóÖØóÖØïÒÔëÎÐöÙÛèËÍëÎÐöÙÛòÕ×ðÓÕÿêéøßÛñØÔíÔÐïÖÒûâÞèÏËÒ¹µóÚÖúáÝõÜØîÕÑéÐÌçÎÊäËÇáÈÄÞÅÀÞžßǽâÊÀâÊÀÝŻԼ²Ï·­Íµ«»£™´œ’²š¨†“{q…mc~f\uaZaQRVJNQEIQEIPDHXLPj^bxlp‰}†z~˜Œœ”ž’–´¨¬½±µ¾®±Ã­°Ê±µÑ¶»Õ¼ÀÕº¿Óº¾Ù¾ÃàÇËßÄÉæÍÑèÍÒåÌÐêÏÔìÓ×ðÕÚóÝàëÛÜìààçÛÛñååöêêÿööþòòÿôôéÝÝéÝÝñååôèèíááæÚÚã××çÛÛÿ÷ûóçëøëòÿ÷ûüïöùíñÿöýÿûÿôçîæÚÞ×ÊѶºâÕÜôèìÍÀÇÌÁÅëâçÿüÿñèíËÂÅÑÈÍż¿ÑÈÍñèëèßääÛÞÿùþìãæÒÉν´·À·¼Â¹¼Å¹½À´¸Æº¾ÜÐÔíáåÙÍѬ ¤•‰’†Š‘•¬ ¤®¢¦¥™£—›Ÿ“—’†Š†w|˜‰Ž¢“˜¡’—ÒÃÈŶ»sdiufkŽ“š‹˜‰Ž™Š™Š“„‰‰zry_X_`[bqls†ˆ¤Ÿ¦ÍÈÏÌÇќ£‹’idkfah‰„‹€{‚˜“šõð÷ÿýÿýùúÿûü¢žŸyuv¼º½ÄÂŵ´¹°±µÆÇÌÞáèðõû÷ûÿóúÿòùÿahr)*,:<;;;;576;;;465)))')(PPPŽÌÌ̒”“mmm‹ŒžžžÌÌÌÛÚßÃÂNjŠPOT98=>=B@?D98=.-2XW\ÆÅÊòñö÷öûö÷ûóöûØÝáÅÊ΢§«lps]aduvx‚„ƒŽŽŒŒ‰‰†Š…„{zv~vs†|}ƒ„¶°´Ÿ\ae›žèýÿçÿÿ¤ÅΛ¿Ë“·ÇŒ±Ã†¬Á{¡¶n’¬g†¢Mf„MeKbJb~Ja€KcLc‚Nf‚E\{AYu;Rq8Pl>UtH`|KbH_~JcF_}BYxAYuBWt>Sn7Kf/C\ 2J0H.E!0E+7M4AT;H[=M]3ES2ES3FU5HW9L]?RcDVjGYmBTjBTjBTlASk@Qk?Pj?Pl>OkCERY[hŽ†ˆ•ikxIKX.0= -*,9<>KDFSOQ^QS`GIV: 2+,>9:LIJ\\]ohi{z{vw‰lmghznouvˆrs…mn€wxŠwxŠst†|}‘’¤“”¦…†˜}~|}“”¦{|Ž?@R#$6STfmn€‰Œ›ˆŒ˜ls}\cmfmwqwƒqwƒu{‰…“[`sNSfCH\HMaej€~ƒ™šŸµÍÓëìóÿÎ×ô’›¸t}š¡ªÇÑÚ÷´½ÚvœQZw_h…‰’¯¨±Î‚‹¨ox•s|™}†£¨±ÎŠ“°`i†en‹y‚Ÿ–³¤­Ê”ºjsu~›“œ¹‘š·ˆ¥vœkt‘ov’pvŒpu‰mr†ch|Y^r`eyv{†‹Ÿ› ´ˆ¡z“ƒˆœuzŽNSg|•¯´ÈŠ adw[`s{€”§­ÃÀÆޕœ¸PYv*3R0:]0=`0>c7El5Bl0?h4AkT]„Zb‡_gŒ`hŒ^gˆW`IRo;E^9DZ6AU(3E%1?9ESLXdP\hQZi]dwTYoTYoNSi38N).DEJ`diW\rV[qMRhCH^FKaV[q_dz_dxjk}€‚‘•—¤np}XZfQS_MPYKNWLOVILSEHMADI>BE<@C;?@:?B.5;)29)29/8?1:A09@4=D;DK4=D6?FGN:CJ;DKAJQGNXBFR8;J/5C4:H=DTEL\LTgS[nT_sLYlCOeCRg=MdQaxu…žo€šVfˆ_q•\oex˜‡˜¶ŽŸ¹|Œ£t…—dq`nyly‚‚•y„ˆFRR*669EEBOUFS[ANW9FOJW`LXdEQ]gs§³ÃŒ˜¨U`r8CWKVjWbvOZpNYmCK^9AT#5)0@ÁÇ×öüÿöúÿìðùïòùïóöòñöòòòóñòóòðóòîóòîþúùúöõýøõ­¨¥º°®éÞÜúìéÿ÷ôôáÝ÷âßûãßþåáÿçãÿêæÿëæÿîèÿåáÿåâÿäáÿãàýáÞüàÝûßÜúÞÛñÕÒñÕÒñÕÒñÕÒñÕÒñÕÒñÕÒñÕÒùÝÙÿãßÿèäÿæâúÞÚõÙÕõÙÕøÜØó×ÓñÕÑîÒÎìÐÌêÎÊêÎÊëÏËêÑÍãËÉåÐÏêÕÔïÚÙòÝÜòÝÜñÜÛðÛÚóÞÝòÝÜòÝÜñÜÛðÛÚðÛÚïÚÙñÙÙìÒÑðÔÓïÓÒîÒÑñÕÔó×ÖîÒÑæÊÉìÐÏðÔÓðÔÓîÒÑïÓÒó×ÖôØ×ñÕÔôØÕðÔÐöÚÖêÎÊíÑÍäÈÄƪ¦×»·ùÝÙöÚÖñÕÑíÑÍëÏËëÏËìÐÌíÑÍàžàżßĻݹÜÁ¸ÛÀ·Ù¾µÙ¾µÇ¬£À¥œµš‘ª† …|•zq‹pgjdjWYcTY]NSXINWHMZKP^OTbSXwhm~otˆy~“„‰œ’§˜±¢§¹©¬Ä«¯Ê°³Ó¶ºÖ¼¿Ú½ÁÚÀÃàÃÇáÇÊæÉÍèÎÑìÏÓéÏÒïÒÖòØÛòÕÙçÎÑèØØëÝÜíßÞìÞÝíßÞòäãóåäðâáèÚÙèÚÙèÚÙèÚÙèÚÙèÚÙèÚÙèÚÚèÙÜçØÛæ×ÜäÕØãÔÙáÒÕàÑÖßÐÓ×ÈÍ×ÈË×ÈÍ×ÈËØÉÎØÉÌÙÊÏÙÊÍßÓ×ÝÓÔ×ÌÐÖÌÍÙÎÒÔÊËÓÈÌÛÑÒÜÑÕãÙÚåÚÞÞÔÕÚÏÓÝÓÔÞÓ×ÞÒÖÔÈÌÔÅÊÚËÐÝÎÓØÉÎÖÇÌÔÅÊ;Ãô¹Â³¸À±¶¾¯´»¬±¹ª¯·¨­¶§¬µ¦«¶§¬·¨­¸©®¶§¬´¥ª±¢§¯ ¥¦—œ¤•š¡’—ž”œ’›Œ‘›Œ‘š”•‹“——Ÿ˜Ÿ¨¡¨­¦­ª£ªŸ˜Ÿ––ˆƒ|ƒ€y€š“š¯¨¯¢›¢¦Ÿ¦ÍÇËÍÄŽ´µŸ–—‰€‰‹¢œž ›ŸŽŒ‘ŽŒ‘ˆ‡Ž”ÂÂÊóöýÍÐÙdgp#779888:89999867444201///FDEzzz›œŽŽŽywx}}}Šˆ‰ŒŒŒ…„‰€…onsTSX?>C98=76;549*)."#"'POT—–›ÒÑÖêéîêëïïò÷áæêÌÑÕ­²¶‡‹Žimpcdfikj‰‡ˆŠ‰‡Œˆ…‡ƒ€€{wzuqytp|tq€vw•‹Œ›•™——™dimy‡Šßôùãþÿ¶×à¡ÅіºÊ‘¶È…«ÀyŸ´m‘«c‚ž@ZuDYtF[xG\wG\yDYtBWt@UpDYvAVq@MHJWUWdWYfJLY<>K$(4*)06FOThlq‡›Ÿ¸¥©Æ{œlpbfZ^y`e{mr†rxˆio}]coEFX+,>"#512D?@RLM_[\ndew€’wxŠdew`astu‡‚”~‘{|Žƒ„–{|Žlmlm}~„…—€“€“yzŒ‘’¤yzŒ;d*8_M\‡w…²ar 4Es*8eJV€dm”‚Š±‹•¹‡«alŒBKh-9S;E^8DZ0;M1>NCO_JXeFR`BN\Zat]bxhmƒW\r5:PDI_y~”™ž´~ƒ™hmƒINd5:P:?ULQg[`vafzjk}œž«|~‹\^jLNZMPYSV_JMTGJQCFK?BG<@C:>A9=>8=@29?,5<,5<2;B5>E6?F9BI>GN=FM>GNÀÆÖöüÿ÷ûÿîòûïòùïóöòñöòòòóñòóòðóòîóòîÿýüøôóîé扄‚xv£˜–¥—”¦—”•‚~˜ƒ€…¢‰…ª‰®‘³”³–’ΰ®Î²¯Ð´±Ó·´Öº·Ø¼¹Ú¾»Û¿¼ÝÁ¾ÝÁ¾ÝÁ¾ÝÁ¾ÝÁ¾ÝÁ¾ÝÁ¾ÝÁ¾çËÇìÐÌïÓÏîÒÎêÎÊêÎÊïÓÏôØÔøÜØöÚÖó×ÓðÔÐîÒÎíÑÍíÑÍìÓÏóÛÙôßÞùäãþéèÿìëÿìëÿêéþéèÿ÷öÿ÷öÿöõÿõôÿôóÿôóÿóòÿòòÿìëÿèçýáàûßÞÿãâÿæåúÞÝíÑÐÿãâÿçæÿèçÿçæÿéèÿîíÿïîÿíêÿîêÿíæÿôðÿëäÿîêÿçàæÊÆôÙÒÿíéÿéâýáÝöÛÔòÖÒñÖÏòÖÒôÙÒåÊÁåÊÁäÉÀäÉÀäÉÀãÈ¿ãÈ¿ãȿͲ©Åª¡ºŸ–®“Š£ˆ—|s‹pg‚idjWYcTY^MSXINXGMYJO^MS`QVq`fwhmƒrxŽ„š‰¥–›± ¦»¨¬Ãª®Ë®²Ñ´¸Õ¸¼Ö¹½Ø»¿Û¾ÂÝÀÄäÇËèËÏëÎÒëÎÒëÎÒçÊÎÝÀÄзºèÖÖëÝÜïßßîàßïßßðâáîÞÞèÚÙïßßîàßïßßîàßïßßîàßïßßïßßç×Øç×ÚéÖÚæÖÙæÓ×áÑÔáÎÒÞÎÑØÅÉÔÄÇÓÀÄÐÀÃÓÀÄÕÅÈÜÉÍÝÍÐäÕØã×ÙâÓÖáÕ×çØÛßÓÕÝÎÑâÖØæ×ÚêÞàîßâæÚÜäÕØäØÚçØÛæ×ÚÙÊÏ×ÈÍßÎÔáÒ×ÞÍÓÛÌÑÛÊÐÔÅÊпÅοÄͼÂɺ¿Ç¶¼Ã´¹Â±·À±¶Â³¸Â³¸Á²·À±¶¿°µ½®³»¬±º«°«œ¡©šŸ¦—œ£”™¢“˜¡’—¡’— ”˜ •›£šŸªŸ§°§¬´©±±¨­« ¨¥œ¡« ¨© ¥§œ¤¶­²É¾Æú¿Ç¼ÄáÖÜêÞàÕÉɽ±³²¨©¹®²À·ºÀ·¼¹³··²¸ºµ»¶³ºÄÁÈÐÏש¨°b`k76>:8;;9:;9:;9:9787563121/0GEFnlmŠˆ‰…ƒ„|z{‚€Šˆ‰ˆ†‡|{€wv{fejMLQ;:?65:549438/.3&%*'&+@?DjinŽ’ž¢Ÿ ¤ª­²£¨¬™ž¢Š“w{~gknijlqsr„‚ƒ…„‚…~€|yzuqvqmvqmzrouv’ˆ‰˜’–‘‘“X]ao}€Þóøåÿÿ¹Úã£ÇӘ¼Ì‘¶È…«Àxž³lªcƒœD^wG\wG\wG\wEZuDYtBWrAVqCXs@Up;Pk8Mh8MhVp;Un8Pl5Mg4Id3Hc4Ha4Ha0BZ.@X*8R#2I!-G$0H.:T4CX8IY5HV1DS.AP3FW=PaASg?Qe@Rh?Qg%&878JFGYNOaXYk_`r|}qr„STfLM_noƒ„–ƒ„–ˆ‰›‹Œž‚”qr„mn€wxŠ{|ŽwxŠvw‰tu‡Ž st†67I'(:`asz{{~nr~_fpX_ibisv|ˆ…‘w}‹kqZ_r;@S!56;O‹¦³¸Î«°Æ½ÃÛñøÿÉÒŒ•²˜µ…Ž«{„¡ˆ¥¡ªÇfoŒHQnfoŒhqŽbkˆcl‰u~›€‰¦ˆ¥ox•…Ž«œ¥Âš£À•ž»|…¢IRot}š¦¯Ìš£Àw€|…¢‚‹¨x›syx}‘v{mr†ej~gl€v{†‹Ÿ”¨Ž“§¡¦º©®Ârw‹38Lv{ÄÉ݄†›MOf[]tšž·¹¾Û›¢¿ag‰CMpLX~9Fp1?lk|ªª¼î“Æ3Gz&8jVct€¦— Ç›¨Ë‚Œ¯Wd„:Ec*8S@Ld:I^7DW=M]LYiGWd;IV5AQSYoae~uy’fjƒFJc\`y“¬¡¥¾Ž’«im†AE^48Q@D]QUn]azaf|op‚‚„“¦¨µŽaco?AMHKTVYbGJQEHOADI6:;5:=4=D1;D2HQCMVHR[OYbPZcBLU4>G5?H3=F4>G@IRIO[EHW?;@MNP]bdqcerNP]9;H#/#/*(.>EJ^fk•™²£§Ä„ˆ¥fj‡\`{TXsX]sdi}lr‚hn|agsFGY*+=%&89:LHI[NOaUVhZ[myzŒop‚HI[;YHVp@Of:I^BQdN^nEUd6FU4AQU[q]azkoˆlp‰`d}ae~osŒy}–’–¯ei‚<@Y8AJSV_EHOCFM?BG;>C8HQBLUDNWIS\S]f\foaktgqzPZc5?H1;D/9B5?HLT_ekyLO^39G5;I@GWAHX7?R.6I;FZBObKWmYh}csŠ`p‡\l…Zk…^n_q•v‰ª‚•µwˆ¦q‚œl|“Yj|\iyES^=JSN[a^imXddP\\T_aFS[JVbMYeT`lam{am{]iygr„AL`LWkR]s^i‰¢š¤½’œµz…›;CX19L,!(8ºÀÐòøÿôøÿíñúïòùïóöòñöòòòóñòóòðóòîóòîöòñúöõýøõ¥ ´ª¨íâàúìéùêçõâÞ÷âßúâÞýäàÿåáÿæâÿçâÿèäÿîìÿïîÿïîÿîíÿîíÿíìÿíìÿíìÿëêÿëêÿëêÿëêÿëêÿëêÿëêÿëêÿíêÿïëÿðìÿíéÿêæÿêæÿíéÿñíýáÝúÞÚôØÔîÒÎèÌÈäÈÄâÆÂßÆÂ׿½ØÃÂÜÇÆàËÊâÍÌâÍÌàËÊÞÉÈßÊÉßÊÉÞÉÈÝÈÇÜÇÆÜÇÆÛÆÅÝÅÃ϶²×»¸Öº·Ì°­Â¦£Á¥¢Å©¦È¬©·›˜¹šµ™–®’©Š¨Œ‰¥‰† „€•xr—zr€x•xp“vn‰ldqTLtWO ƒ{¡„|¢…} ƒ{š}u‘tlˆkc‚e]}`X}`X|_W{^V{^Vz]Uy\Ty\T„g_d\~aY}`X~aY}`Xz]UvZVkUXeRX_LRZGMWDJWDJYFLZGMcPViV\s`f|io…rxŽ{—„ŠŸŠ´›ž¹¡¡ÂªªÈ°°Ì´´Ñ¹¹Õ½½ÙÁÁþææûããÿççÿòòÿõõÿîîÿççüçæÿðïÿòðÿíëùçåùçåÿíëÿñïÿñïõãáõãáõãáõãáõãáõãáõãáöâáèÔÕèÔÖêÔ×çÓÕåÏÒßËÍÛÅÈÖÂÄÍ·ºÏ»½Ô¾ÁØÄÆÜÆÉÜÈÊÝÇÊÜÈÊçÔÖæÖ×æÓÕæÖ×ëØÚãÓÔàÍÏäÔÕçÔÖèØÙìÙÛëÛÜîÛÝïßàóàâôáãÙÆÊ×ÄÊÝÊÐáÎÔÞËÑßÌÒáÎÔÜÉÏнÃϼÂλÁ̹¿É¶¼Ç´ºÆ³¹Å²¸Â±·Á²·À±¶¿°µ½®³º«°·¨­µ¦«°¡¦®Ÿ¤¬¢ª› ©šŸ©šŸª› «œ¡«œ¡¬ ¤°¡¦®¢¦®Ÿ¤­¡¥´¥ª¶ª®´¥ª¼°´¿°µ¼°´Éº¿ÌÀÄ;ÃÐÁÄÞËÍÑ¿¿Ì¹»ÒÂÃÔÄÇοÂοÄÔÈÌÔÇÎÙÎÔËÀȱ§¯“œ‚{ƒg_jYRZB=AA=>A=>?;<>:;<89:67956NJKXTUhdeyuv‡ƒ„ŽŠ‹‹Œ‹Œwuzlkp[Z_HGL;:?549438438/.321676;<;@CBGLKPWV[^_c[^c\aebgkkptswzx|}~€€‚ƒ‚€}}yvxtqwrnzuqzv…}zƒ„—Žœ–šŒŒŽ=BFP^aÑæëçÿÿÄåî«Ïۚ¾Î´Æ€¦»s™®hŒ¦_˜Ph‚Pd}K_xFZsCWpAUnAUnAUn?SlEJ^gl‚“—°Ÿ£Àƒ‡¤imŠ_c~W[vY^tbg{gm}ciw]coJK]*+=#$69:LHI[LM_RSeWXjwxŠrs…MN`:;MUVhmn€|}•–¨–—©¢ˆ‰›ƒ„–}~xy‹pqƒij|cdvop‚XYk./A=>Pxy‹•–¨}€nr~IPZAHRryƒ¨®º¬²¾‚ˆ–Z`nBGZ(-@(>CW±¶ÌÝâøº¿Õ²¸Ðçîÿ¶¿ÜŠ§¦Ã¼Åâox•DMj–³Î×ôZc€!*Gbkˆ‹”±†¬r{˜zƒ ”º‡­„ª˜¡¾“œ¹“œ¹Ÿ¨Å}†£CLiir¥®Ëª³ÐƒŒ©˜µ¤­Êˆ«qw~ƒ—€…™{€”w|sxŒx}‘‡Œ ”™­­²ÆÀÅÙ©®Â[`t!&:joƒ²·ËrrŠ99SUVr ¤Á·ºÛy¡@Hm[gn{§€Ž½t…¹”Ì«Àù›±ëo‡Ãr‡¾¡Ï~Œ³dr™JX},:]&G,K0?\P`zEUl:K_?PbJ[kEWe:LZB]7;VHLgVZu^b}dixy‹…‡– ¢¯’”¡bdp13?>AJRU^FIPDGN@CHG%2;%2;4AJR\fouƒMP_39G:@NEL\AHX8@S8@SDOcGTgNZpTcx\lƒ[k‚Rb{O`zSc…Pb†at•n¡k|šgx’csŠUfxIVf6DO7DMR_elw{gssMYY6AC.;CHT`VbpXdr]iyeqhs…cn€[fz\g{bmƒmw~ˆ£‹•°‰¤gqŠ?G\4@B<>@:PhPf6H`-?W&7Q"3M!2N!2N35BNP]`boŽ‡‰–fhuCER!.,.;=?LOQ^fhufhuLN[46C ,$(4"0+1AHMajo…“¬•™¶z~›osfj…_c~`e{fkiociw\bnNOa,-?%&8=>PMN`MN`PQcUVhlmmn€STfABTOPb`asop‚…†˜…†˜„…—‰ŠœŠ‹ƒ„–z{pqƒdew\]oZ[mCDV+,>HI[{|Ž™š¬}€hlxCJTDKU€‡‘½ÃϼÂΈŽœ[ao27J %8)7Fmfrœ†“À‡—Êo€¶i~·¦âž¶ô† Ý{‘Ëp¯YfBPw7El*8],O%4U8GdSc}JZq=Md=N`IZlIZjASa@P`GMeSWr]a|†Š¥¡¥ÀquMQlmqŒ“®hl‡DHc@D_LPkVZu^b}fjƒuvŠƒ’ŒŽ›Ždfr>@LILUVYbILSGJQCFK?BG;?B:>A9=>8=A1;D:GPDQZIV_O\e\irivrˆhu~s€‰boxANW1>G5BKGT]aku[aoIL[=CQGM[JQaAHX=EXDL_CNbFSfUawYh}_o†fvZjƒO`zp€¢`r–Re†Re…]nŒ_pŠ[k‚Zk}BO_,7+8AR_egrvs]ii%02(5==IUDP^JVd]iy{‡—†‘£p{bmVaw^hoy’s}˜nx“ak†MWpBJ_5=P-&6·½Íîôÿñõÿêî÷ïòùïóöòñöòòòóñòóòðóòîóòîÿûúþúùþùö§¢Ÿ´ª¨æÛÙìÞÛéÚ×ê×Óì×ÔîÖÒð×Óô×ÓõØÔö×ÒöÙÕøÚÚöÙÛõØÚô×ÙóÖØòÕ×ñÔÖðÓÕõØÚõØÚõØÚõØÚõØÚõØÚõØÚõÙØðÔÑòÖÒôØÔöÚÖõÙÕó×ÓñÕÑïÓÏñÕÑïÓÏîÒÎìÐÌìÐÌíÑÍïÓÏîÕÑëÓÑì×ÖðÛÚóÞÝôßÞóÞÝðÛÚîÙØöáàöáàõàßõàßôßÞóÞÝòÝÜôÜÚôÛ×øÜØöÚÖòÖÒòÖÒõÙÕõÙÕòÖÒøÜØûßÛùÝÙõÙÕó×ÓôØÔó×ÓðÓÍùÛÓýßÕÿâØýßÕúÜÒ÷ÙÏïÑÇéËÁà¸âĺãÅ»äƼâĺßÁ·Û½³Øº°ÞÀ¸Ý¿·Ú¼´×¹±Óµ­Ð²ªÎ°¨Ì®¦Ã¥¼ž–±“‹¦ˆ€›}uqi„f^|_[t[_nY`iT[cNU^IP[FMZELZEL^IPfQXq\c~ipŠu|–ˆ¢”ª•šÂ®­Å³¯Ì¹µÏ½¹Ñ¾ºÑ¿»Õ¾ÖÄÀàÍÉ×ÅÁн¹Í»·Ï¼¸Ð¾ºÕ¾ØÅÁÀ­©Â¯«À­©¹¦¢´¡³ œ®›—©–’Ž{wŽ{wŽ{wŽ{wŽ{wŽ{wŽ{wzw”||”{~“z}“z}“z}”{~”{~”{~•|Ÿ†‰¯–™»¢¥¾¥¨·ž¡¬“–£Š“}’~Žz{|}–‚ƒ•‚–‚ƒ Œ²žŸ¯›œ°œ·£¤¼¨©¾ª«¿«¬Á­¯É´¹Æ±¸É´»Ë¶½È³ºÊµ¼Ì·¾É´»¾©°½¨¯¼§®º¥¬¹¤«·¢©¶¡¨´¡§¹¨®¹ª¯¸©®·¨­´¥ª°¡¦«œ¡¨™ž«œ¡ª› ¨™ž§˜§˜¨™ž©šŸª› §—š¥•˜£“– “¡‘”¥•˜¬œŸ±¡¤µ¥¨´¤§¶¦©¼¬¯Á±´Ã³¶Æ¶¹Î»½Î¸º×¿¿ÛÂÅØÂÄÙÃÆÛÇÉÙÄÉÓÀÄλÁƵ»º©±ª›¢œŒ–‡zƒpcm_T\G>CD>@A;=?9;=79=79=79=79LFHTNPd^`wqs‚|~‡ƒŠŒ™•–ˆ†‹wv{cbgRQVDCH98=54965:549438549:9>BAFJINPOTSTX\_dchlnswx}„ˆ‹“–”•—’”“Ž‡†„{x{wt|x‹†‚–‘ž–“£™š©Ÿ ª¤¨¡¡£MRV@NQ¶ËÐãþÿÍî÷°Ôà™½Í‰®Àvœ±hŽ£^‚œVvTj‚Tf~OayI[sBTl=Og:Ld8Jb:Ld9Kc6H`5G_4F^5G_7Ia6Jb9Rf9Tg:Si:Si;Qh9Of8Ld7Kc=NhCTnIWtCQn7B`)4R#.L .H1BT4GU4GV1DS1DU8K\>Pd@Rf8J`2DZ);S 2J+E(B(D)E=?LJLYSUbbdqikxTVc57D "/13@@BOQS`ikxikxNP]68E $0%)5%306FPUisxŽ“—°“—´x|™tx•nrimˆkp†pu‰pv†io}bhtPQc/0B+,>GHZWXjSTfQRdSTf`asdewYZlNOaUVh^_qdewnors…uvˆƒ„–ŒŸ…†˜€’xy‹lmXYkFGY/0B'(:MN`uvˆ“”¦x{ŠcgsAHRCJT„‹•ËÑÝÏÕᑗ¥SYg).A#(; %9_APmQa{M]tBRiARdL]oO`pDVd=M]DJdW[xdh…ˆŒ©£§Äy}šSWtgkˆlpZ^{LPmOSpX\y]a~ae‚fjƒxy„†•z|‰jlygiuOQ]TW`X[dMPWKNUGJOCFK?CF=AD=ABI]ANa[g}_nƒeuŒv†k{”Uf€‰™»s…©J]~@Ss^o_pŠP`wWhzAN^*5#09>KQOZ^jvvjvv=HJ7DMBN\AM[HTb\hx€Œœ–¡³€‹Ÿdo…OZp^h‰¢}‡¢hrYbLVqAI^5=P-&6¸¾Îðöÿôøÿîòûïòùïóöòñöòòòóñòóòðóòîóòîùõôôðïöñž¶¬ªæÛÙíßÜíÞÛñÞÚòÝÚõÝÙ÷ÞÚûÞÚüßÛþßÚýàÜöØÚöÙÝöÙÝöÙÝöÙÝöÙÝöÙÝöÙÝòÕÙòÕÙòÕÙòÕÙòÕÙòÕÙòÕÙòÕ×ñÕÒñÕÑòÖÒó×ÓôØÔôØÔôØÔôØÔôØÔòÖÒðÔÐíÑÍìÐÌëÏËìÐÌêÑÍíÕÓíØ×ñÜÛôßÞõàßóÞÝðÛÚîÙØðÛÚðÛÚïÚÙïÚÙîÙØíØ×íØ×îÖÔñØÓöÛÔöÛÔöÛÔùÞ×þãÜüáÚ÷ÜÕîÓÌò×ÐóØÑñÖÏóØÑ÷ÜÕøÝÖ÷ÚÔôÖÎúÙÐûÚÑø×ÎõÔËöÕÌôÓÊíÌÃñÐÇñÐÇñÐÇðÏÆíÌÃëÊÁèǾçƽäüã»áÀ¹Þ½¶Ûº³Ù¸±×¶¯Õ´­Ì«¤Æ¥ž¼›”²‘Š¨‡€ž}v•tm‹nj}dhwbir]dlW^gRYcNUaLS`KRaLSiT[vahƒnu{‚ž‰ª•œ²¢Â°®Å¶¯Ï¾·ÓĽÙÈÁÚËÄàÏÈâÓÌïÞ×ëÜÕêÙÒæ×ÐìÛÔñâÛöåÞõäÝðÝ×õâÜùæàøåßùæàûèâøåßóàÚ÷äÞ÷äÞ÷äÞ÷äÞ÷äÞ÷äÞ÷äÞøãàëÓÓèÎÑâÈËÜÂÅ×½ÀÕ»¾Õ»¾Õ»¾Ö¼¿Ö¼¿×½À×½ÀؾÁÙ¿ÂÙ¿ÂØ¿ÂØÂÄ×ÁÃÑ»½Ï¹»Ðº¼È²´Ä®°Ê´¶Á«­¹£¥µŸ¡·¡£·¡£²œž®˜š®˜›—‚‡“~…•€‡–ˆ‘|ƒ“~…–ˆ’}„¤–¤–¤–¤–¤–£Ž•£Ž•¢•ž“š‹•†‹†Œ}‚‹|‹|‹|Œ}‚‹|‰zˆy~‰zŠ{€Œ}‚~ƒ›‹Ž™†Š”…“€„–ƒ‡›ˆŒ ‘£”«˜œ¬™®›Ÿ°¡µ¢¦½ª®Ä±µÈ´¶È¯²Î´µÒ¸¹Ð¸¸Ñ¸»Ñ»½Í·ºÆ±¶Ï¼ÂÁ°¶µ¤¬ª›¢œŒ–‰yƒvfph[dG>CC=?@:<=79;57;57<68=79HBDOIK]WYmgixrty{ˆ‚„‹Œˆ†‹tsx_^cPOTCBG87<32743854954954987CHGLPOTUVZ[^cejnqvzzƒ…‰Œ’–™š›™›šŽ…„‚|xuxtq€{wˆ„š•‘£›˜£™šª ¡«¥©««­]bf?MP©¾ÃáüÿÏðù±Õᘼ̅ª¼q—¬bˆY}—QqŠRh€Td}P`yJZsCSl :9 <">@BODFRFHUGIUMO\ACO&(5*68EDFRSUblnzkmzOQ]8:G$&2#'2 &27:KX]p˜œ ¹œ¹ƒ yz˜sw”rsswz|‘w|ru„jm|RTc24C02AOQ`_apXZiRTcRTc^`obcuabt_`rcdvghzefxbcuqr„qr„{|Ž‚ƒ•~‘‚”†‡™‚„“VXg;=L"$3$&5OQ`oq€ŒŽrv‚cgs@FR>DP€†’ÔÚèâèö˜ž®GM]%*=+0C5:NEJ^mrˆ†‹¡Š¥ ¦¾­´Ðfm‰DKh‚‰¥ §ÄZa}_fƒÓÚöÆÍêCJf#*Gw~š”±ˆ¤w~›w~špy–Œ–±Œ•²ž¨Ãª³Ð’œ·ƒŒ©v€›irjt„ª•Ÿºš£ÀÔÞùÚãÿkrŒag}z“‚‡›‚‡›†‹Ÿ„˜{€”‹¤¼ÁÕ¹¾ÒŸ¤¸‘–ª}‚–BG[RWk}”mnƒ[[sxz‘Ž’­”˜µlq‘CG=HN5CL0>G9GPQ_jes~drXeuO_nScsP`pBQd:I\DShKZoIUk3;P:AT=DWA8;<68<36:46=47<68F=@JDFWNQc]_rilztvƒz}…„‚…ppr\Z_MMOB@E66820522464966875:66897X5F`5G_5G_6F_7G`9Ib;Kd;Mc@VkBYkCYnE[pDZqBXo?Um>Sn?RpCVtGZzGWy=Mq/?c 0T(I'9O/BQ5FV4EU4DT7GW:JZ:JZ%5E/?&93 +/ 0 5 7MO[FIR;=I14=*,8(+4)+7*-635ADGP]_kor{lnzTW`24@%& $-JLYhk|œ²¸ºÑ””°ƒ„¢„ƒ£}~œwv•vw“™‡‰ž‚–vx‡XZf47@03Q7CW/4HJOcX]q[`tv{‘–°W]w49Vhnˆ|žmsˆªÌÒ쮳Ð6PxIX=JlBMk@Kg9Ga=LcBQf?Nc:I^.=RKQDRUWefWbdNSWknu|†tw~mpwz}„ˆ‹’™benMPY;>G&)825D.".ž¢®õ÷ÿûýÿïòûîñøîñöîñöðñõðñõðñóðñóðòñ÷öôúöõøó𧝜À²±õããôßÞïÕÖùÛÛùÛÛûÜÚûÜÚûÞÚüßÛüßÙýàÚöÙÑöÚÏ÷ÙÏöÚÏ÷ÙÏöÚÏ÷ÙÏöÚÏûÝÓòÖËòÔÊøÜÑøÚÐïÓÈïÑÇöÚÏùÛÑ÷ÛÏùÛÐúÞÒýßÔûßÓøÚÏó×ËðÒÇìÐÄîÐÅñÕÉòÔÉîÒÆðÒÇòÖËøÝÔôÜÒòÙÒðØÎð×ÐðØÎòÙÒóÛÑøßØóÛÑ÷Þ×ùá×óÚÓõÝÓùàÙôÜÒöÛÒ÷ÜÑøÝÔúßÔúßÖøÝÒ÷ÜÓöÛÐò×ÎõÚÏøÝÔ÷ÜÑóØÏò×ÌôÙÐ÷ÜÓøßØöß×÷Þ×õÞÖõÜÕóÜÔôÛÔóÜÔõÜÕóÜÔòÙÒïØÐíÔÍêÓËéÐÉèÏÈâŽãŽâļâļßÁ¹Û½µÖ¸°Óµ­Æ¨ À¢š¹›“³•¯‘‰¬Ž†¨Š‚£†€•}yzwŠur†qn€khwb_mXUfQNbMJePMoZW}heŠur–~§’¶¡œÊ²®Ñº´Û½âËÅçÎÉèÑËëÒÍìÕÏõÜ×ôÝ×õÜ×ôÝ×õÜ×ôÝ×õÜ×õÜ×ð×ÒñØÓñØÓð×ÒïÖÑîÕÐïÖÑð×ÒñØÓñØÓñØÓñØÓñØÓñØÓñØÓñØÓéÑÍèÓÎêÒÎçÒÍéÑÍèÓÎêÒÎçÒÍæÎÊèÓÎðØÔóÞÙ÷ßÛõàÛõÝÙñÜÙõàßòÝÜðÛÚðÛÚòÝÜòÝÜðÛÚîÙØñÜÛñÜÛñÜÛðÛÚðÛÚðÛÚðÛÚðÛÚéÏÎéÏÎíÓÒêÐÏãÉÈéÏÎîÔÓåËÊàÆÅÜÂÁÝÃÂÚÀ¿Ò¸·Ò¸·Ò¸·Ë³±É´³Ç³´Æ²³Å±²Ä°±Ã¯°Â®¯Á­®Ï»¼È´µÁ­®¿«¬Â®¯Æ²³È´µÈ´µº¨¨·¥¥²  ®œœ¬šš¬šš®œœ°žž±ŸŸµ££¹§§¹§§¸¦¦¹§§½««À®®Å±²Ä°±Ã¯±Â®°À¬®¿«­¾ª¬¼©«¾«­µ¢¦©–šœ‰|€|lokX\ZKNNBFG>AA6:=47>37>58?48>58E:>JADTIM]TWh]anehtimulonjkdbcXSWHFG?:>645615312837756837534948=;CW€…™ÔÙíäéý’¦"'; &>CWFK_9>RHMaUZn^cwuz}šW[v:>Ydhƒ}œƒ‡¢ž¢½ÏÓË>B]-AE`rv‘ƒž|€›tz”† „Ž§Ž˜±†©™²‡‘ª„Ž§x‚›t~—wšs}–„Ž§Ž˜±¬¶ÏÄÎ瑙°gmƒin‚~ƒ—•š®…Šž`eygl€’—«®³Ç“˜¬’—«ª¯Ã¤©½|•fkmr…V\hnu‚‰“‡Ž˜…‘kq}[aoZ`nLQdTYlSXlHMa38N-2HBG]NTlOVsENmBKh7@]7A\BLgEOhNXq^i]h~[fzYdxU`rQ\nam}}†—ux‰PQc78JFGYbcukl~efx_`rcdvjk}Z[mOPbghz‚”…†˜…‡”“–quxQUXKORUY\[_b\`c\`cVZ]W[^W[^VZ]TX[TX[VZ]W\_NY[IWXHU[KX`M[fN[kQ`sZi€€¬v†§dt˜TfŽPaL^ŒI[‹L]‹IXJX{ETs=Li;Kd;Kb5FZ.?Q>Oc@QeJZqFVo@Olap‘ŸÂ¢²Öƒ•¹y®i}žh}œv‰§K_x!3KHYm\k~Uetgu€m|ƒS`hDQWGUXFPRX\_uty€…tsxhglsrw…„‰Ž’dchLKP65:327;:??>C<;@78=-,:68G "/!.›©ôöÿùüÿíðùîñøîñøîñöîñöîòõîòõîòóðòñòòòùõôøó𤚙¹©©îÚÛòØÙòÔÖÿáâÿáâÿâáÿãáÿäáÿæâÿèáÿèßÿìáÿíßÿíßÿíßÿíßÿíßÿíßÿíßÿêÜÿâÔÿâÔÿèÚÿçÙüßÑüßÑÿå×ÿíßÿëÝÿêÜÿëÝÿïáÿñãÿñãÿïáöÙËóÖÈóÖÈ÷ÚÌ÷ÚÌóÖÈô×ÉöÚÌÿçÜÿéÞÿíâÿðåÿñæÿïäÿìáÿëàÿëàÿæÛÿêßÿìáÿçÜÿéÞÿìáÿèÝÿäÙÿåÚÿæÛÿçÜÿçÜÿæÛÿåÚÿäÙ÷ÜÑùÞÓûàÕúßÔ÷ÜÑöÛÐøÝÒùá×øáÙöâÛõáÚõáÚôàÙóßØóßØòÞ×óßØóßØñÝÖîÚÓìØÑêÖÏèÔÍéÒÊß¼ãŽãŽßÁ¹×¹±Ñ³«Ï±©Ð²ªÊ¬¤Å§Ÿ¾ ˜¸š’µ—³•¯‘‰«Ž†¡Š„›‡€–‚{‘}vŠvo€leuaZmYRdPIfRKnZS{g`‡sl”€y¤‰µž˜Ï¶±Ù½¹äÈÄìÐÌïÓÏïÓÏïÓÏðÔÐõÙÕõÙÕõÙÕõÙÕõÙÕõÙÕõÙÕõÙÕñÕÑñÕÑñÕÑñÕÑðÔÐðÔÐðÔÐðÔÐøÜØøÜØøÜØøÜØøÜØøÜØøÜØöÝØößÙòÞ×òÞ×ôàÙôàÙòÞ×òÞ×ôàÙóßØôàÙöâÛ÷ãÜøäÝøäÝ÷ãÜ÷âÝóÞÛòÝÜñÜÛóÞÝ÷âáùäãøãâ÷âáñÜÛñÜÛðÛÚïÚÙîÙØì×Öì×ÖíÕÓð×ÓòÖÒõÙÕó×ÓîÒÎó×Ó÷Û×ïÓÏçËÇäÈÄäÈÄáÅÁ×»·Ô¸´Õ¹µÎµ±Ì´²Êµ´É´³È³²È³²Ç²±Æ±°Æ±°ÝÈÇ×ÂÁлºÍ¸·Í¸·Ïº¹Ð»ºÎº¹Æ²±Â°®½«©¸¦¤¶¤¢µ£¡·¥£¸¦¤¼ª¨À®¬Ã±¯Ä²°Ä²°Å³±É·µÌº¸Ï¼¾Î»½Íº¼Ì¹»Ë¸ºÊ·¹É¶¸É¶¸Ç´¶¾«­±ž £’–ƒ…„qsp]_`PQOCGH=AB7;>37>37?48?48>37G<@LAEUJN`UYj_crgkxmqypssmojfg\XYNJKB>?:67734623734734734734956@<=JFGRLLf]^rhg€vuƒ‚“‰ˆ”Š‰’ˆ‡†……{zut{qp~ts‡}|†…’ˆ‡‘‰‡™“™“• ›Ÿ—•˜rqwILQ–žëõþËÙâ ²¼Ž¡¯|” g\y‡Ol|Edx),5%(1&)2'*369BEHQ\_hloxjmvTW`58A"+")%;=Iacr¤··Ï¦¦Â†…¤€ }|œyx—||˜……ŸŠ‹ ‚—su„admDGLUX_š¤¦©²^aj68DRT`Y[hXZgQRdUVhkl€Œ¡~“wxŒxy~“|}‘~“|}ƒ’ŽŸ…‡”^`l68D%DGNnqx}€…y}†twˆJOcBG[ƒˆœ×Üðáæú‚‡›/0FK_TYmGL`KPdPUiUZnfkim†OSn8HJMQTbafjin_^cYX]bafkjolkpVUZA@E-,1*).10565:76;56;43A=?N%'4!.”–¢óõÿöùÿêíöîñøîñøîñöîñöîòõîòõîòóðòñòòòúöõõð핋Š›‹‹Æ²³Ê°±Î°²Û»¼Þ¼½Þ¼»Ý¾¼Þ¿¼ÞÁ½Ý»Ý¹áøáĶáĶáĶáĶáĶáĶáĶåȺß´ÞÁ³ãƸãƸܿ±Û¾°áĶíÐÂé̾äǹáĶâÅ·ãƸãƸâÅ·äǹáĶáĶäǹäǹáĶáĶäȺÿèÝÿèÝÿèÝÿéÞÿêßÿëàÿíâÿîãÿäÙüáÖþãØÿåÚüáÖþãØÿåÚýâ×ÿìáÿíâÿîãÿðåÿðåÿîãÿíâÿìáÿîãÿðåÿñæÿðåÿïäÿîãÿïäÿòèÿõíÿõîÿõîÿôíÿóìÿóìÿòëÿòëÿöïÿõîÿóìÿñêÿîçÿìåþêãÿèàèËÅíÏÇíÏÇæÈÀÛ½µÕ·¯Øº²Ý¿·Ç©¡Â¤œ¼ž–·™‘µ—³•°’Š¬‡Ÿˆ‚›‡€™…~—ƒ|“xŒxqƒoh|hadPIcOHiUNs_Xkd‹wp›‡€«”Ž»¢Ç«§×»·ãÇÃéÍÉëÏËëÏËëÏËôØÔôØÔôØÔôØÔôØÔôØÔôØÔôØÔîÒÎîÒÎîÒÎîÒÎïÓÏïÓÏïÓÏïÓÏöÚÖöÚÖöÚÖöÚÖöÚÖöÚÖöÚÖôÛÖòÛÕë×Ðë×ÐðÜÕðÜÕë×Ðë×ÐðÜÕñÝÖñÝÖðÜÕñÝÖñÝÖóßØôàÙõàÛúåâøãâöáàöáàøãâùäã÷âáõàßõàßõàßôßÞóÞÝòÝÜñÜÛðÛÚòÚØíÔÐïÓÏñÕÑðÔÐíÑÍñÕÑó×ÓíÑÍëÏËèÌÈêÎÊçËÇÜÀ¼×»·Ù½¹Ö½¹Ì´²Êµ´Ë¶µÍ¸·Ïº¹Ð»ºÑ¼»Ò½¼Ó¾½Ð»ºÎ¹¸Î¹¸Ò½¼×ÂÁÙÄÃÙÅÄκ¹É·µÂ°®»©§¶¤¢´¢ ´¢ ´¢ º¨¦½«©À®¬Â°®Ã±¯Ä²°Çµ³Ê¸¶Ï¼¾Ï¼¾Î»½Î»½Î»½Íº¼Íº¼Íº¼ÓÀÂɶ¸»¨ª®›ŸŒŽz|xeghXYOCGI>BB7;>37>37?48>37=26H=AMBFWLPbW[mbfwlp}rv€wzysuplmb^_SOPFBC>:;956734512512623734:67A=>LHITNNlcdwml†|{•‹Š“’œ’‘•‹Š…„„zyut|rq€vuˆ~}†…“‰ˆ‘‰‡’‰Œ‘‹˜“—”’•qpvCFK„‹“ãíöÄÒۙ«µ‡š¨u™a{ŠWt‚KhxBau7Uq2Oo0Jk.Hi0Ih2Kj3Ji3Kg1Fc3Hc6Jc8Le;Me(+4$'0%(1&)2;>GHKT\_hknwjmvVYb:=F%(1!$+"02>Y[j…†š³³Ë±±Í‰ˆ§~ž}|œ{z™›‰‰£Œ¢€–qs‚X[dFINfip¨«² £¬KNW,.:WYeegtY[hEFXMN`wxŒ¥¦ºŒ¡pq…yzŽ€•}~’|}‘{|Ž„†•‘ €‚]_k57C&BELjmt}€…ƒŒz}ŽV[oLQe‡Œ Ûàôàåù{€”'"';PUi]bvUZn[`tSXlGL`RWmcg€HLg7;Vdhƒ}œŠŽ©¥©ÄÉÍ謰ËY]x.9X\wy}˜y}˜u{•sz”wšu˜‚Œ¥—¡º~ˆ¡jt|†Ÿ—°{…žjtmwpz“pz“€Š£’š±|‚˜otˆx}‘†‹Ÿy~’lq…w|†‹Ÿª¯Ã†‹Ÿ„˜Š£‹¤‘–ªŠ£lq„RXdipzz‹z‹ms[amW]kciwPUh`exkp„SXlAF\?DZJOepvŽt{˜R[z2;X&/LOYt‚Œ§{…ž`jƒ\g}Ze{^i}R]q:EWEPbv‚’Ÿ¨¹fiz9:L!"49:LRSeTUgWXjefx„…—~‘xy‹nomn€ƒ„–†‡™kmzvy€[_bBFI?CFHLONRUOSVNRUHLOHLOJNQQUXX\_[_bY]`TY\Q[]YdfR]aJW]O\eFTaFSdXg|Žœ¶{Š§q€¡p€¤u„­z‹¶l}©N`ˆVd‡P_~M\yIYrCThARd>O_6HV'9G;L\Zk}Xi}CSl[j‡†•´ ¾[nŽjž`s“!4R9"4L$4K3DVTdteu‚p~‰kzdqy[hnOZ^EMPLMRVUZ[Z_\[`bafhgl_^cPOT?>C327*).,+02162160/4./4<;IDFU*,9!.‹™òôÿô÷ÿçêóîñøîñøîñöîñöîòõîòõîòóðòñùùùÿüûôïì†|{yii˜„…˜~œ~€“st•st–ts•vt•vs•xt•zs•zqqfrdrdrdrdrdrdrdŽqc‰l^‰l^Œoa‹n`†i[†i[‰l^rdŒoaŠm_Œoase”wi•xj”wiÁ¤–¼Ÿ‘ºº¶™‹°“…­‚®’†Å©ž½¢—±–‹£ˆ}–{pŒqf…j_‚g\†k`…j_†k`†k`…j_†k`‡la†k`†k`‡la‰ncŠodŠod‰nc‡la†k`ŒqfŒqfrgrgŒqfŒqfŒqf‹si’{s|u{t{tŽzsyrŒxqŒxq•z”€y“x|uŽzs‹wpŠvo‹tlŸ‚|¢„|£…}¡ƒ{Ÿy¡ƒ{¦ˆ€«…³•®ˆ©‹ƒ¥‡¥‡¤†~¡ƒ{žy“|v|u{tŽzs‹wp„pizf_s_XaMF^JC`LEiUNt`Y€le|u ‰ƒ¸ŸšÉ­©ßÿó×ÓÿãßÿéåÿëçÿìèÿñíÿñíÿñíÿñíÿñíÿñíÿñíÿñíÿêæÿéåÿèäÿéåÿëçÿìèÿëçÿéåÿòîÿòîÿòîÿòîÿòîÿòîÿòîÿóîÿêäùåÞùåÞÿëäÿëäùåÞùåÞÿëäùåÞúæßüèáÿëäÿíæÿðéÿñêÿñìÿðíÿíìÿëêÿëêÿìëÿìëþéèüçæñÜÛñÜÛñÜÛñÜÛðÛÚðÛÚðÛÚòÚØð×ÓñÕÑñÕÑñÕÑó×ÓõÙÕõÙÕòÖÒæÊÆâÆÂæÊÆåÉÅÙ½¹Ô¸´×»·Ö½¹Ì´²Ë¶µË¶µÍ¸·Î¹¸Ïº¹Ð»ºÑ¼»ÖÁÀÔ¿¾Ó¾½Ó¾½ÕÀ¿ÖÁÀ×ÂÁÖÂÁ̸·È¶´Â°®¾¬ª»©§»©§¼ª¨¾¬ª¸¦¤¹§¥»©§½«©¿­«Á¯­Ã±¯Å³±Èµ·Èµ·Èµ·Èµ·É¶¸É¶¸É¶¸Ê·¹ÚÇÉн¿Â¯±µ¢¤¦“•“€‚lno_`PDHJ?CC8<>37>37>37=26<15I>BNCGVKObW[ncgxmq€uyƒz}}wyuqrgcdXTUKGHA=>;789563/0401512623:67B>?MIJVPPtkl}srƒ‚“’§œ¤š™™Ž…„…{z‚xwwv„zy‹€’ˆ‡•‹Š”ŒŠ•Œ’ŒŽ—’––”—vu{@CHy€ˆ×áê»ÉҐ¢¬~‘Ÿm…‘ZtƒRo}Heu@_s7Uq4Qq3Mn3Mn5Nm6On6Ml4Lh0Eb1Fa4Ha6Jc:Ld;Me=Mf>NeIXoKZoL\sK]uIZtF[xH\}G_ƒLf‹Nk“TqPpŸRr£VwªFjž0O}*K 0I(7N.9M/8I,2@'+6"%.!! # & + ,[^gQT]ADM25>'*3$'0%(1'*3>AJJMV\_hiluhktWZc>AJ+.7"%,#')5PRaz{­­Å¹¹ÕŒ«|{›|{›~}œ„„ §Ž¤€–npHKTHKPtw~©¬³Œ˜7:C(*6]_krt[]j<=OGHZ„…™¿ÀԘ™­fg{z{‚ƒ—|}‘yzŽz{ˆŠ™‘“¢}Œ[]i46B'CFMils}€…‚††‰šlq…[`t‰Ž¢ÚßóÝâösxŒ 3HMaY^rdi}{€”gl€HMaQVldhSWrEIdfj…rv‘… Ÿ£¾¿ÃÞ¦ªÅZ^y/:[_zx|—rv‘rx’w~˜Š”­…¨š³ž¨Áv€™PZsjt§À‡‘ªs}–pz“fp‰[e~mw‡¦u{‘mr†y~’…ŠžuzŽkp„~ƒ—•š®¤©½†‹Ÿ„˜„‰‡Œ ˜±‘–ªglLR^dkuu|†v}‡lr~[amTZhZ`n[`sdi|hmRWkINdNSiZ_u}ƒ›|ƒ R[z5>[7@]bl‡„Ž©q{”T^wbmƒ^i[fzGRf.9K=HZr~Žœ¥¶_bsABT34F@ASHI[DEWSTfmn€¢£µ‰ŠœyzŒvw‰{|Ž†‡™yzŒVXe^ahUY\DHK8*D*:Q7F[=L_Ubs`n{_kwWdl_irgrx^glRZ]PQVWV[[Z_]\abafbafSRW?>C.-2*).*).0/44382160/4/05CBPJL[02?!.‚„óõÿòõþæéòîñøîñøîñöîñöîòõîòõîòóðòñêêêû÷öÿûø¥›š­ßËÌðÖ×þàâÿìíÿìíÿíìÿîìÿïìÿñíÿòëÿóêÿëáÿëàÿëàÿëàÿëàÿëàÿëàÿëàÿëàÿéÞÿèÝÿêßÿéÞÿæÛÿåÚÿçÜÿìáÿêßÿéÞÿéÞÿéÞÿèÝÿãØýßÔîÐÅìÎÃïÑÆõ×ÌùÛÐùÛÐüÞÓÿã×ÿøíÿ÷îÿõìÿðçÿéàûà×ôÙÐïÔËüáØýâÙýâÙüáØýâÙýâÙüáØýâÙêÏÆëÐÇìÑÈîÓÊîÓÊìÑÈëÐÇêÏÆÜÁ¸ÜÁ¸ÛÀ·ÜÁ¸ÜÁ¸ÜÁ¸ÜÁ¸ÙÁ·ßÈÀÜÈÁÜÈÁÛÇÀÚÆ¿ÚÆ¿ÙžÙžѽ¶Ð¼µÎº³Ì¸±Éµ®Ç³¬Å±ªÆ¯§¶™“°’Š¨Š‚¢„|Ÿyœ~v˜zr”vnŠld†h`c[€bZ€bZ€bZaY|_Ww`Zvb[zf_kd‚ngkdye^s_XdPI^JC]IBdPIo[T}ibyrœ…–}x „€©‰ªŽŠ£‡ƒ•yuˆlh€d`‰mi‰mi‰mi‰mi‰mi‰mi‰mi‰mi˜|x–zv–zv™}yŸƒ£‡ƒ£‡ƒ¡…×»·×»·×»·×»·×»·×»·×»·Õ¼·×ÀºÑ½¶Ñ½¶ÕÁºÕÁºÑ½¶Ñ½¶ÕÁºéÕÎìØÑñÝÖöâÛøäÝøäÝ÷ãÜöáÜÿîëÿíìÿìëÿîíÿñðÿóòÿòñÿñðÿíìÿìëþéèúåäõàßñÜÛîÙØîÖÔûâÞûßÛùÝÙûßÛÿäàÿåáÿãßÿãßõÙÕìÐÌìÐÌéÍÉÛ¿»Ð´°Ð´°Í´°Ô¼ºÒ½¼Ñ¼»Ð»ºÏº¹Î¹¸Î¹¸Í¸·Ò½¼Ó¾½ÕÀ¿ÖÁÀÕÀ¿ÕÀ¿ÕÀ¿ÔÀ¿Ó¿¾Î¼ºÇµ³À®¬¼ª¨¹§¥¹§¥º¨¦»©§»©§¼ª¨½«©¿­«Á¯­Á¯­Á¯­À­¯Á®°Â¯±Ã°²Ä±³Å²´Æ³µÇ´¶ÖÃÅͺ¼À­¯´¡£§”–•‚„‚oqrbcRFJK@DC8?MIJVPPxop‚xw‘‡†¢˜—ª Ÿ§œš…„†|{…{z†|{‰~…„”Š‰—Œ—œ“–—‘“™”˜™—š}|‚CFKqx€ÈÒÛ±¿È†˜¢t‡•e}‰Tn}OlzHeuA`t>\xNeHWnJYnL\sK]uIZtF[xI]~H`„NhOl”UržQq Ss¤]~±Sw«=\Š)K,F#1K*6L,4G(.>!%1 ) "%!+$0&4]`iRU^BEN14='*3$'0'*3),5>AJHKTX[ddgpcfoTW`>AJ-09#&-("$0GIXqr†¤¤¼¼¼Ø’‘°zy™|{›€ž‡‡£‘‘«‘¦€•ln};>GSV[ˆ‹’¦©°tw€'*3')5^`luw„\^k9:LEFXŽ£ÒÓ磤¸bcwxy‚–{|uvŠz{ž•—¦{}ŠZ\h13? )FIPjmt|„‚†Šž|•gl€„‰ÓØìÛàôsxŒ  +.3GTYm~ƒ—Ÿ¤¸„‰_dxch~bfei„[_zei„bf}œ¥©Ä½Áܞ¢½OSn-&*Egk†w{–lp‹rx’„‹¥¤®Ç”ž·”ž· ªÃu˜EOhdn‡¥¯È§À€Š£s}–eoˆR\ubl…v~•lrˆfkx}‘Œ‘¥x}‘`ey|•®³Ç”™­ƒˆœ…ŠžŠ£•©£¨¼—œ°glGMYhoyy€Šov€ekw`fr[aoX^l`ex[`sTYmINbLQgY^tfkx~–V]z8A`6?\PYvwœ„Ž©gqŠQ[t[f|]h~\g{LWk9DVAL^coŠ›ehyTUgHI[GHZDEWDEWYZluvˆ”•§€“lm{|Ž–—©…†˜VWi;=JPSZOSVAEH/36/36?CFJNQHLO9=@;?B?CFEILLPSRVYTX[SX[NVYR\^LUZITZLV_EQ]FRbUbso{‘w…Ÿ„’¯œ»¬ÍªºÜœ¬Ð~Ž°bpTb|UayTcvKXiEUbFT_;LT!/8327*).)(-,+010543832776;;LHITNNvmnwv‘‡†Ÿ•”¥›š –••‹ŠŒ‚„zy…{zˆ~}‹€†…”Š‰—Œ˜Žž•˜š”–—’––”—€†GJOjqy·Áʦ´½|Ž˜k~Œ^v‚PjyNkyJgwEdxGeEb‚F`F`F_~B[zA/36269>BEDHKBFI9=@;?B@DGDHKHLONRUTX[W\_QY\MWYIRWGRXGQZCPYFR`LYiTat_nƒlz”w‡¡ƒ’¯’°u…¦m|›iuWcyWbvVcsGSa?MV>KS3BI6CK=LSR_hSanCGHMKJXQSb68E -suõ÷ÿóöÿèëôîñøîñøîñöîñöîòõîòõîòóðòñðððû÷öü÷ô¤š™°  àÌÍæÌÍêÌÎïÏÐòÐÑòÐÏñÒÐòÓÐòÕÑñÖÏò×ÎóÕËóÕËóÕËóÕËóÕËóÕËóÕËóÕËôÖÌôÖÌôÖÌòÔÊòÔÊñÓÉñÓÉðÒÈùÛÑöØÎõ×Íõ×ÍöØÎöØÎóÕËðÒÈóÕËðÒÈðÒÈóÕËóÕËïÑÇïÑÇòÖËûÞØøÝÖõÙÕóØÑó×ÓõÚÓøÜØûàÙöÚÖûàÙ÷Û×öÛÔúÞÚùÞ×õÙÕúßØ÷Û×øÝÖúÞÚûàÙûßÛúßØøÜØ÷ÜÕôØÔò×ÐðÔÐñÖÏó×ÓôÙÒó×ÓîÕÐòÛÕðÜÕðÜÕïÛÔîÚÓíÙÒíÙÒìØÑóßØòÞ×ðÜÕîÚÓë×ÐéÕÎçÓÌèÑÉäÇÁáûݿ·Û½µÚ¼´×¹±Ñ³«Ë­¥Ê¬¤Ç©¡Ä¦žÄ¦žÇ©¡Ê¬¤Ê¬¤È«£½¦ ¹¥ž¶¢›±–§“Œ˜„}ˆtm|haq]VgSLaMFgSLt`Y…qj–‚{¦‰·ž™Æª¦Ø¼¸çËÇðÔÐòÖÒòÖÒòÖÒîÒÎîÒÎîÒÎîÒÎîÒÎîÒÎîÒÎîÒÎñÕÑìÐÌêÎÊíÑÍôØÔ÷Û×ôØÔðÔÐÿíéÿíéÿíéÿíéÿíéÿíéÿíéÿîéñÚÔôàÙôàÙïÛÔïÛÔôàÙôàÙïÛÔòÞ×ôàÙ÷ãÜùåÞúæßùåÞ÷ãÜöáÜðÛØîÙØëÖÕëÖÕì×ÖëÖÕéÔÓæÑÐÞÉÈÜÇÆØÃÂÓ¾½Î¹¸É´³Æ±°Æ®¬½¤ ¼ œ¶š–¼ œÇ«§Å©¥À¤ Ä¨¤Á¥¡¯“©‰«‹£‡ƒ—{w‘uq‹rn’zx‘|{’}|”~•€—‚˜ƒ‚™„ƒˆ‡¢Œ¦‘¦‘¡Œ‹œ‡†˜ƒ‚–‚Žzy‹yw‡us…sq…sq‡us‹yw{y‹‰šˆ†—…ƒ—…ƒ˜†„—…ƒ”‚€‘}™†ˆš‡‰œ‰‹ŸŒŽ¢‘¤‘“¦“•§”–¸¥§±ž ¨•—¡Ž™†ˆŒy{}jlo_`SGKLAED9=?48=26<15;049.2A6:C8BQFJ[PTf[_odhsjmvprokleabYUVMIJC?@<89845734734734734956@<=JFGRLLpgh|rqŒ‚˜Ž›‘•‹ŠŒ‚†|{€vu‚xw†|{Š€Ž„ƒ‘‡†”Š‰•‹˜’•‘Ž‰‹Ž€…JMRdks¦°¹ž¬µt†ex†Zr~NhwOlzMjzIh|Mk‡Li‰Nh‰Nh‰Oh‡Jc‚CZy=Uq5Jg3Hc3G`2F_4F^6H`9Ib:JaFUlIXmK[rJ\tJ[uG\yJ^Jb†Lf‹KhRo›MmœOo d…¸dˆ¼Kj˜+M&B'A-D"-A&7+&!"% )'1-9 3A!7E\_hQT]@CL14='*3&)2*-6.1:69B>AJKNWUXaVYbILU69B(+4!$+'*3+<>Mgh|——¯»»×š™¸xw—{zš‚ ŒŒ¨••¯“”©€•ikz9[-6U?HeU^{cmˆ`j…Q[tS]vR]s^i\g{VauXcuS^pP\lZctorƒjk}^_qWXj^_qjk}mn€ghzefxYZl{|Ž§¨º‘’¤UVh45G.0=DGN;?B48;6:=<@C@DG>BE:>A:>A>BEBFIDHKFJMLPSUY\[_bV[_KSVHOUHQVENUCMVGQ]FR`=HZFSfO[qZi€`nˆP`zETqN^x\h~KVhMYiR^jFS\BOUDQW;ILAOR:HKQ^f\ir?KW2>N:EW3@SARfCThK\p4EW5DW=M]/?48=26<15;049.2>37@59E:>LAEVKOaVZj_cnehrlnlhic_`XTULHIC?@<89845845956845734956?;*A+>$4*'#$'#.)61?"8F%%(1"%.),514==@IJMVTW`SV_LOXADM/2; #,$"+*)+:CDXrrŠ££¿¤£Â€ }|œ~}œ‰‰¥––°•–«‚—ln}OR[’—¸»Âƒ†HKT 9;GLN[PR_RSeWXjŒ¡ÛÜðÓÔ老•pq…op„uvŠwxŒ~‘‘“¢’”£y{ˆPR^!#/.1:X[bqt{z}‚y}†ˆ‹œ”™­‡Œ rw‹Š£ ¥¹afz !CH\ˆ¡ÃÈÜÊÏ㣨¼†‹Ÿw|’*.GDHckoŠqulp‹PToƒ‡¢ØÜ÷¼ÀÛ6:U-CGbdhƒmqŒPTo‡¡÷þÿðúÿÀÊ㚤½š¤½cm†0:Scm†¦°É¿Éℎ§u˜q{”KUnAKdbjkq‡otˆ€…™|•v{z“†š˜±ƒˆœz“ˆ¡‡Œ ˆ¡…Šžfk`extz†t{…|ƒryƒ\bnW]ilr€‰QVi6;N).B+0D7FQ9CO8DR7DT6CT3BU3BW2AV1@W1@U@K]BKZAKW=GP:EK:EG=HJAMMLXXMYYLW[HSY@JS9CO5>M2>N:JZ\l|Qaq0@P"/@+8H:FV5AOYbqltiq|Z`lX_iY]hQU`PS\;37<15;04<15B7;C8:;FBCMGGi`albapfetjiwmlxnmxnmxnm}sr~ts€vu‚xw…{zˆ~}Š€Š‚€Š„‡ƒ‚}€~srxUX]Zai‹”}‹”l~ˆ]p~UmySm|Ro}Wt„[zŽ\z–Ur’Nh‰Lf‡VoŽZs’Ne„?QABTMO\JMTEILBFIBFI@DG?CFDHKLPSHLODHKAEHBFIEILGKNHLOHLOPUXMRUJOSGLPDIO>EM9@J5=H3=I1=K1=M0=M/=BDCHJINNMRQPUQRWRQ_OQ`<>K*giuðòþøûÿíðùîñøîñøîñöîñöîòõîòõîòóðòñòòòýùøýøõ®¤£Á±±âÎÏíÓÔñÓÕïÏÐðÎÏðÎÍïÐÎñÒÏô×ÓøÝÖúßØñÒÍòÓÎôÕÐö×Òö×ÒõÖÑóÔÏòÓÎïÐËîÏÊíÎÉîÏÊïÐËðÑÌðÑÌïÐËóÔÏóÔÏóÔÏóÔÏóÔÏóÔÏóÔÏóÔÏö×Òö×Òö×Òö×Òö×Òö×Òö×ÒõØÔôÖÔó×Ôó×Ôó×Ôó×Ôó×Ôó×Ôó×ÔõÙÖó×ÔñÕÒòÖÓõÙÖöÚ×ôØÕòÖÓöÚ×öÚ×öÚ×öÚ×öÚ×öÚ×öÚ×öÚ×öÚ×ó×ÔòÖÓó×ÔõÙÖöÚ×ôØÕð×ÓïØÒíÙÒíÙÒíÙÒíÙÒíÙÒíÙÒíÙÒõáÚ÷ãÜòÞ×íÙÒîÚÓêÖÏåÑÊéÒÊìÏÉèÊÂéËÃèÊÂâļáûâļÞÀ¸Ú¼´Ú¼´Øº²Ö¸°Ô¶®Óµ­Õ·¯Ö¹±Ò»µÏ»´Ë·°Æ²«¾ª£°œ•¡†–‚{mfwc\iUNaMFeQJs_X†rk•~x­”ºžšÊ®ª×»·ßÿãÇÃæÊÆèÌÈäÈÄäÈÄäÈÄäÈÄäÈÄäÈÄäÈÄäÈÄëÏËìÐÌìÐÌìÐÌíÑÍîÒÎñÕÑó×ÓôØÔó×ÓñÕÑðÔÐïÓÏïÓÏïÓÏíÔÏïØÒë×Ðë×ÐíÙÒñÝÖóßØóßØñÝÖõáÚùåÞöâÛõáÚöâÛòÞ×îÚÓôßÚóÞÛõàß÷âáõàßñÜÛïÚÙðÛÚóÞÝì×Öì×Öì×ÖíØ×íØ×íØ×íØ×ðØÖð×ÓñÕÑðÔÐïÓÏíÑÍëÏËêÎÊéÍÉäÈÄßÿھºÙ½¹ÜÀ¼àÄÀâÆÂáÈÄãËÉßÊÉÞÉÈÜÇÆÛÆÅÜÇÆÝÈÇÞÉÈáÌËàËÊåÐÏêÕÔèÓÒãÎÍåÐÏéÕÔÖÂÁÓÁ¿Ñ¿½ÒÀ¾ÕÃÁÖÄÂÕÃÁÓÁ¿É·µÇµ³Å³±Å³±Å³±Ã±¯½«©¹§¥¯œž°Ÿ±ž ²Ÿ¡´¡£µ¢¤·¤¦·¤¦¸¥§¹¦¨º§©¹¦¨±ž ¡ŽŽ{}opbVZSHLE:>@59?48=26<15=26B7;C8K@DTIM^SWh]alcfrlnkgha]^UQRIEF@<=:677343/0512623734956>:;FBCMGGi`amcbqgfukjyon{qp|rq|rq€vuwvƒyx†|{ˆ~}‹€ƒ‚…ƒ‰€ƒ†€‚|€}{~ontORWPW_uˆx†i{…\o}VnzUo~Vs\y‰`“^|˜Vs“Nh‰Lf‡UnYr‘Ne„=UqG\yCXs=Qj:NgRhh€——³¦¥ÄŽ­„ƒ£}|›‚‚žŒŒ¦Ž¤ƒ„™wyˆtw€“–›Ÿ¢©pszILU"+&24@FHUIKXRSe`as•–ªàáõßàô—˜¬rs‡z{wxŒlmxy‹’”£’¡tvƒTVb$&2+.7RU\jmtsv{qu~‹ŽŸº¿Ó¶»Ï‡Œ qvŠ]bv-2F +7YCGb59T?C^x|—•™´£©ÃàçÿõÿÿëõÿÆÐ閠¹eoˆU_x^h”ž·²¼Õ„Ž§oy’mwS]vDNgck‚lrˆpu‰|•y~’rw‹sxŒ~ƒ—“˜¬}‚–kp„w|~ƒ—„‰†šin‚ns†ƒ‰•ov€t{…jq{F3E6?D5?A4>=5@:9D>+7C4>J>HRKS^ouvz†KO[+-:24A57D!#/%&+&%*&%*'&++*/0/454998=87<<;@A@EHGLMLQRQVTSXTUZRQ_PRa>@M(ceqïñý÷úÿîñúîñøîñøîñöîñöîòõîòõîòóðòññññû÷öûö󴪩¿¯¯çÓÔóÙÚùÛÝÿçèÿäåÿàßýÞÜþßÜÿãßÿèáÿëäÿãàÿåâÿçäÿéæÿëèÿëèÿêçÿéæüÝÚøÙÖôÕÒóÔÑôÕÒôÕÒïÐÍëÌÉòÓÐòÓÐòÓÐòÓÐòÓÐòÓÐòÓÐòÓÐ÷ØÕ÷ØÕ÷ØÕ÷ØÕ÷ØÕ÷ØÕ÷ØÕöÙÕøÚØ÷ÛÚ÷ÛÚ÷ÛÚ÷ÛÚ÷ÛÚ÷ÛÚ÷ÛÚûßÞøÜÛ÷ÛÚøÜÛúÞÝûßÞùÝÜ÷ÛÚýáàýáàýáàýáàýáàýáàýáàýáàúÞÝøÜÛ÷ÛÚ÷ÛÚúÞÝûßÞùÝÜõÜØôÝ×òÞ×òÞ×òÞ×òÞ×òÞ×òÞ×òÞ×üèáþêãøäÝòÞ×ñÝÖë×ÐåÑÊéÒÊêÍÇæÈÀçÉÁçÉÁàºßÁ¹áûܾ¶Î°¨Ñ³«Óµ­Ò´¬Ð²ªÑ³«×¹±Û¾¶×ÀºÔÀ¹Ó¿¸Ð¼µÉµ®¼¨¡­™’¢Ž‡„piye^jVO`LEaMFnZSkdvp¨Š¶š–Ȭ¨Ø¼¸äÈÄëÏËðÔÐó×ÓåÉÅåÉÅåÉÅåÉÅåÉÅåÉÅåÉÅåÉÅãÇÃèÌÈìÐÌíÑÍìÐÌëÏËîÒÎòÖÒîÒÎîÒÎïÓÏïÓÏîÒÎíÑÍëÏËéÐËìÕÏèÔÍèÔÍêÖÏîÚÓñÝÖðÜÕïÛÔìØÑðÜÕóßØùåÞûçàóßØñÝÖüçâóÞÛôßÞõàßóÞÝðÛÚîÙØïÚÙðÛÚòÝÜòÝÜñÜÛñÜÛðÛÚïÚÙîÙØðØÖîÕÑïÓÏîÒÎìÐÌêÎÊèÌÈçËÇæÊÆàÄÀÝÁ½Ú¾ºÚ¾ºÞ¾âÆÂäÈÄâÉÅßÇÅÝÈÇÜÇÆÝÈÇÞÉÈáÌËäÏÎåÐÏåÐÏæÑÐéÔÓì×Öì×ÖèÓÒèÓÒë×ÖÛÇÆØÆÄÕÃÁÕÃÁ×ÅÃ×ÅÃÕÃÁÒÀ¾ÕÃÁÓÁ¿Ð¾¼Í»¹Ê¸¶Å³±¿­«º¨¦¶£¥·¤¦¸¥§º§©»¨ª½ª¬¾«­¾«­Á®°Ä±³Èµ·É¶¸Â¯±²Ÿ¡ŠŒŒ|}dX\TIMG<@B7;A6:>37=26?48@59B7;E:>LAEUJN`UYj_cofi|vxuqrjfg]YZPLMD@A<89845512734845845:67?;VrF[xNc~EYr9MfASkASk1AZ$4K7F]APeHXoFXpDUoCXuFZ{C[E_„Da‰He‘Ii˜NnŸQr¥Sw«Ww¦5Qv(?_-J'@%<"5., %)'4"4B,BP9P`B\mGbu^ajPS\KHJWTUg_`r‘’¦áâöäåùœ±pq…}~’xymn‚}~—™¨‘ tvƒXZf')5),5NQXdgnlotjnw„‡˜ÃÈÜÈÍᒗ«gl€=BV2-Z_s«°ÄÓØì¼ÁՏ”¨sxŒkp„^cyAE^KOjgk†osŽei„†Š¥ÅÉäÑÕðei„/3N?C^-1LSWršž¹­±ÌŸ¥¿ÎÕïñûÿõÿÿÇÑê}‡ ]g€gqŠWaz‰“¬®¸Ñ—°r|•nx‘Yc|BLe`hhn„ns‡x}‘w|qvŠrw‹‚‡›–›¯}‚–hmty|•†š|•hmsx‹…‘ls}mt~cjt8>Jflx¡§µ[ao18=PFK_;@T:?UQVlpu‹„Š¢SZw:Cb=FcBKhGQl:D_&0I>Ha_j€nyal€U`tcn€ep‚WcsYbs]`qefxfgy`asYZlTUgSTfTUgGHZBCU?@RDEWMN`QRdOPbKMZKNUJNQFJM?CF8ADHKOSVMQTFJM=AD7;>7;>9=@;?B<@CFJMKORPTWOSVJMRCHL@EK=DL:CJ8BK7AJ3@H1>G.=2=72=55A78D8EQEHTJJUMITNEONAKM@IN?JPBOWIX_1?H!07"/8'4==GQMU`;AM>DPCGS6:F$&3%'4')6*! &"!&&%*+*/0/476;<;@?>C<;@?>CDCHJINONSSRWUTYUV[ON\OQ`ACP&_amîðüöùÿðóüîñøîñøîñöîñöîòõîòõîòóðòñÿÿÿÿûúíè嚐‚rrš†‡”z{“uw•uv”rs‘onŽom’sp˜{wŸ„}¤‰‚«Œ‰¬Š®Œ°‘Ž±’°‘Ž¯®Œ¼š¹š—¹š—Á¢ŸÌ­ªÔµ²Ôµ²Ñ²¯Ø¹¶Ø¹¶Ø¹¶Ø¹¶Ø¹¶Ø¹¶Ø¹¶Ø¹¶Ü½ºÜ½ºÜ½ºÜ½ºÜ½ºÜ½ºÜ½ºÛ½»Ü¾¾Û¿¾Û¿¾Û¿¾Û¿¾Û¿¾Û¿¾Û¿¾áÅÄßÃÂÝÁÀÞÂÁàÄÃáÅÄßÃÂÝÁÀäÈÇäÈÇäÈÇäÈÇäÈÇäÈÇäÈÇäÈÇàÄÃÝÁÀÜÀ¿ÝÁÀßÃÂàÄÃÞÂÁÚÀ¿×¿»ÕÁºÕÁºÕÁºÕÁºÕÁºÕÁºÕÁºîÚÓðÜÕêÖÏåÑÊäÐÉßËÄØĽÝƾèËÅäƾæÈÀåÇ¿ÞÀ¸ÞÀ¸ßÁ¹Ú¼´ßÁ¹âļãŽÞÀ¸×¹±Ô¶®Øº²ÝÀ¸òÛÕîÚÓë×ÐåÑÊÛÇÀË·°¸¤¬˜‘ƒohxd]hTM\HA]IBhTMye^†oi„®’ŽÅ©¥ÜÀ¼ïÓÏýáÝÿëçÿñíõÙÕó×ÓðÔÐëÏËæÊÆâÆÂÞ¾ÝÁ½ñÕÑ÷Û×ûßÛøÜØðÔÐéÍÉéÍÉìÐÌ÷Û×øÜØûßÛüàÜüàÜúÞÚøÜØôÛÖñÚÔîÚÓíÙÒðÜÕôàÙöâÛöâÛôàÙöâÛ÷ãÜúæßÿîçÿðéúæßúæßÿôïýèåýèçüçæûæåùäãøãâøãâøãâøãâ÷âáöáàõàßôßÞòÝÜñÜÛóÛÙñØÔòÖÒïÓÏìÐÌéÍÉæÊÆãÇÃâÆÂÛ¿»Ù½¹Ù½¹ÜÀ¼âÆÂæÊÆèÌÈåÌÈèÐÎåÐÏãÎÍáÌËáÌËáÌËãÎÍäÏÎãÎÍçÒÑçÒÑçÒÑéÔÓåÐÏâÍÌäÐÏßËÊÛÉÇÙÇÅØÆÄÙÇÅÙÇÅÖÄÂÔÂÀ̺¸Ìº¸Ë¹·É·µÇµ³Ã±¯¿­«¼ª¨´¡£´¡£µ¢¤¶£¥·¤¦¸¥§¸¥§¹¦¨»¨ªÁ®°Èµ·Ì¹»Æ³µµ¢¤ŸŒŽ}~eY]VKOH=AC8LAEVKObW[laeqhk„~€}yzrnod`aVRSIEF?;<:67734845956956:67?;CVMRfINbLQgY^t`e{^d|PWt;DcAJgJSpT^yCMh%/H8B[_j€nybmS^rZewR]o@L\BK\VYj\]oefxij|dew]^p\]o]^pDEW>?Q<=OEFXVWi^_qVWiKMZPSZRVYNRUAEH59<48;>BEHLOEIL@DG:>A7;>7;>:>A:>A:>A?@BFGINOSOSVNRUKPTKPTJQWJSXHSYDOU>KQ9FN5BJ2?G0=C3@8A@7@=3=52<32=/4?1AL>DOAHRIHRJFOLDMLDLNDNPNY_?LR.;C'4:)2&09BKTDMV9@J+/:+-:/1>('5"!/"!1)%$*'&+,+021676;<;@?>C@?D@?DBAFFEJKJOONSQPURQVQRWIHVKM\DFS&]_kïñýõøÿòõþîñøîñøîñöîñöîòõîòõîòóðòñöööùõôòí궬«žŽŽÇ³´È®¯Ì®°Ø¸¹Ö´µÐ®­Ê«©Ê«¨Í°¬Ñ¶¯Õº³¸™–¹š˜º›™»œšº›™¹š˜¶—•µ–”¯Ž¨‰‡¡‚€ ¢ƒ¡‚€š{y”us•vt•vt•vt•vt•vt•vt•vt•vt—xv—xv—xv—xv—xv—xv—xv–xv“uu’uw’uw’uw’uw’uw’uw’uw•xz“vx‘tv’uw•xz–y{”wy’uw˜{}˜{}˜{}˜{}˜{}˜{}˜{}˜{}“vx‘tvrtsu“vx”wy’uwŽts†nj„pi„pi„pi„pi„pi„pi„pi†rk‰un„pi€le‚ng~jcye^~g_ŽqkŠld‹meŠld„f^ƒe]„f^€bZ}_W‚d\…g_„f^€bZ€bZ‡iaph· š¶¢›¶¢›µ¡š¯›”¢Ž‡’~w†rkmfvb[eQJZF?YE>eQJuaZ‚keto–zv „€¥‰…¥‰…¡…ž‚~œ€|”xt”xt•yu–zv—{w˜|x™}y™}y¬Œ´˜”¼ œ¾¢ž»Ÿ›ºžš¾¢žÂ¦¢Ê®ªÌ°¬Î²®Ð´°Ð´°Ï³¯Í±­É°«ÞÇÁÛÇÀÚÆ¿ÝÉÂáÍÆãÏÈãÏÈáÍÆïÛÔíÙÒíÙÒôàÙøäÝñÝÖóßØÿïêÿêçþéèýèçüçæûæåûæåùäãøãâüçæüçæýèçþéèÿëêÿìëÿíìÿìêþåáýáÝ÷Û×ðÔÐèÌÈáÅÁÛ¿»Ø¼¸Õ¹µÕ¹µ×»·ÝÁ½äÈÄèÌÈéÍÉæÍÉÖ¾¼Ô¿¾Ô¿¾ÕÀ¿ØÃÂÛÆÅßÊÉáÌËåÐÏì×ÖéÔÓéÔÓïÚÙîÙØèÓÒêÖÕÔÀ¿ÒÀ¾Ñ¿½ÓÁ¿×ÅÃÙÇÅØÆÄ×ÅÃÑ¿½Ñ¿½Ð¾¼Í»¹É·µÃ±¯¿­«½«©·¤¦·¤¦·¤¦·¤¦¶£¥¶£¥µ¢¤µ¢¤¼©«Â¯±Ë¸ºÑ¾Àͺ¼¼©«¦“•”„…eY]VKOH=AC837@59D9=K@DUJNaVZk`dqhk…{|uqrhdeYUVLHIA=>;78734845956845956=9:D@AKEEaXYf\[mcbvlkut…{zŠ€Œ‚—Œ—Œ˜Žš›‘œ’‘“’•“•Œ‘‹†…}{~pouORWDKSYcldr{^pz`se}‰k…”p›z—§‚¡µo©\y™Ke†Ga‚Mf…Oh‡Ja€BZvMbWl‡EYr1E^J\tbtŒHXq+B-Z2Kj$;Z3N.F)>&9'7%2+8%5D/BQ;PaC]nKfyOk€ehqQT]69B&)2&)2.1:69B:=FCFOGJSSV__bk_bkMPY58A%(1!(( , /-.BLLdyy•ª©È´³ÓŒ‹«gf…bb~qq‹~”ƒ„™…‡–„‚‡mpwSV]EHQ'*3)+7-/;35BIKXYZl\]o…†šÔÕéÚÛ«deystˆyzŽ‹Œ «¬¾ª¬»ŒŽ}Œaco-/;%(1EHOY\c_bg]aj{~ÀÅÙÑÖꘝ±OTh-1OTh»ÀÔçìÿÇÌà–›¯y~’CH\16JX]skoˆuy”x|—ae€6:U‡‹¦æêÿÓ×òGKf + $?X\wÆÊåùýÿ¥©ÄPVp¯¶Ðæðÿóýÿ¥¯ÈWazeoˆs}–:D]cm†¢¬Å§±Êƒ¦t~—ak„5?XPXoag}lq…pu‰v{sxŒuzŽŽ“§¡¦ºrw‹in‚}‚–‚‡›€…™}‚–rw‹„‰œpv‚fmwelv^eoHNZkq}“¡X^l49LBGZNSgOThSXn]bx\awPVnAHe3<[IRo_h…jtPZu#-F(2KP[qbmƒ\g{R]qWbtMXjBE>BE=AD<@C=AD@DGAEH?CF<@C;<>@ACGHLMNROSVQUXRW[SX\U\bQZ_MV[FQU@KO8FI3@F3>B3=>6?>9B?8A<4>51;01<,2=-7B2;F6@J?BLCAJEAJGBKJCMNVae7DJ(5;,9?(396AGNW`>EO/3>(,7(*7')6#"0 -! 0 ,-,410565:<;@?>CA@EBAFA@EBAFDCHGFKJINKJOLKPLKPJKP@?MFHWGIV']_kòôÿõøÿô÷ÿîñøîñøîñöîñöîòõîòõîòóðòñôôôû÷öûöóÑÇÆ´¤¤çÓÔéÏÐðÒÔôÔÕôÒÓòÐÏðÑÏôÕÒøÛ×þãÜÿçàÿåãÿåãÿæäÿæäÿåãÿãáÿàÞþßÝÿâàþßÝþßÝÿãáÿêèÿïíÿïíÿìêÿïíÿïíÿïíÿïíÿïíÿïíÿïíÿïíÿðîÿðîÿðîÿðîÿðîÿðîÿðîÿððÿñóÿñóÿñóÿñóÿñóÿñóÿñóÿñóÿðòÿîðÿíïÿîðÿðòÿñóÿïñÿíïÿóõÿóõÿóõÿóõÿóõÿóõÿóõÿóõÿîðÿìîÿêìÿëíÿíïÿîðÿìîÿëêÿôðÿöïÿöïÿöïÿöïÿöïÿöïÿöïÿôíÿ÷ðÿóìÿñêÿôíÿñêÿíæÿðèÿîèÿéáÿëãÿêâÿãÛÿãÛÿäÜýß×êÌÄëÍÅëÍÅçÉÁâļàºäƾçÊÂæÏÉâÎÇßËÄØĽ˷°·£œ¡†’~w…qjye^hTM[G@YE>cOHs_X€ic’ytž‚~­‘¹™À¤ Ã§£Å©¥Æª¦Â¦¢Á¥¡¿£Ÿ½¡»Ÿ›¸œ˜¶š–µ™•­‘°”³—“°”ªŽŠ§‹‡§‹‡©‰—{w˜|x™}y›{›{›{›{˜zŽwqŠvoŠvoŒxq|u“x’~w‘}v‘}v’~w–‚{¤‰µ¡š¼¨¡Å±ªÔ¿ºàËÈÚÅÄѼ»Ç²±¾©¨´Ÿžª•”¤Ž“~}“~}”~•€–€—‚—‚š‚€˜{š~z™}y—{w–zv”xt“ws“ws£‡ƒ¤ˆ„¨Œˆ®’Ž´˜”·›—µ™•±˜”­•“¬—–®™˜±œ›¶¡ »¦¥À«ªÃ®­Ä¯®Î¹¸Êµ´È³²Ó¾½Ô¿¾Î¹¸Ï»ºÆ²±Ã±¯Â°®Ä²°Çµ³É·µÈ¶´Æ´²À®¬Â°®Ã±¯À®¬»©§·¥£´¢ ´¢ °Ÿ¯œž®›¬™›©–˜§”–¦“•¥’”¯œž¶£¥¿¬®Æ³µÃ°²´¡£ŸŒŽŽ~dX\TIMG<@B7;A6:>37=26?48>37?48C8BSHL^SWh]amdg€z|{wxsopgcdZVWMIJB>?<89623734734734734;78A=>HBBYPQ_UTh^]rhg|rq…{zŠ€ƒ‚–Œ‹—Œ—Œ˜Ž™Žš›‘š’”‹Ž‰‹‚}ywzontTW\JQY\foaox_q{ex†m…‘tŽy–¤…¢²¬Àu“¯_|œKe†E_€KdƒLe„I`D\xLa~ShƒDXq0D]GYqk}•[k„(8O%4K4CXCSjHZrJ[uI^{I]~E]D^ƒB_‡EbŽEe”Hh™KlŸKo£Npž@\ƒ7Oq,Cc(=Z&8P!2F.A!.? -=#3@+=K6IX?TeE_pKf{Mi~hktQT]47@$'0&)203<8;D;>GFIRJMVWZcgjsgjsQT]58A#&/")'!--()=FF^qq«ªÉ¾½ÝŒ‹«^]|WWsjj„{|‘‚ƒ˜…‡–€ƒŒ‚‡nqxX[bFIR$'0)+7,.:=?LIKXYZlcdv‡ˆœÈÉÝÎÏ㕖ª]^rkl€yzŽ ¡µÇÈÚ´¶ÅŒŽ…‡”dfr/1=#&/BELTW^Z]bW[dsv‡µºÎÌÑ哘¬>CW !+0D~ƒ—àåùäéý±¶ÊŽ“§w|38L$8PUkosŒ•™´‘¬cg‚8O>?QTUgij|efx\]o\]o^_qSTfOPbJK]NOa[\nefx^_qQS`RU\\`c[_bHLO37:-1448;;?B=AD?CFDHKJNQMQTKORDHK?CF>?A@@BBCGGHLJNQNRUOTWOTWRZ]NXZJTVCNPA/:<8?85=23;.3;,3<+-6%19*7?2:B7;B;DD>FHP[]7EH+6:1<@4=BBKPRYa?FN $/#'2!#0 -! 0 /# 1(&354<98=?>CDCHGFKGFKEDIDCHDCHEDIFEJGFKGFKFEJDCHBCH76DACRIKX(^`lõ÷ÿöùÿöùÿîñøîñøîñöîñöîòõîòõîòóðòñóóóû÷öýøõÝÓÒ¶¦¦ìØÙëÑÒðÒÔìÌÍíËÌëÉÈèÉÇéÊÇêÍÉìÑÊíÒËñÒÐòÓÑôÕÓõÖÔôÕÓóÔÒñÒÐðÑÏóÔÒñÒÐðÑÏïÐÎïÐÎîÏÍíÎÌëÌÊñÒÐñÒÐñÒÐñÒÐñÒÐñÒÐñÒÐñÒÐôÕÓôÕÓôÕÓôÕÓôÕÓôÕÓôÕÓóÕÕ÷ÙÛöÙÝöÙÝöÙÝöÙÝöÙÝöÙÝöÙÝ÷ÚÞõØÜóÖÚô×Û÷ÚÞ÷ÚÞöÙÝô×ÛøÛßøÛßøÛßøÛßøÛßøÛßøÛßøÛßô×ÛòÕÙðÓ×ñÔØóÖÚô×ÛóÖÚîÔÕíÕÑë×Ðë×Ðë×Ðë×Ðë×Ðë×Ðë×ÐïÛÔòÞ×ïÛÔìØÑðÜÕíÙÒêÖÏïØÐòÕÏïÑÉðÒÊïÑÉéËÃèÊÂéËÃäƾÞÀ¸ÞÀ¸ÞÀ¸Ý¿·Ý¿·ßÁ¹âļãƾñÚÔîÚÓíÙÒèÔÍÜÈÁɵ®³Ÿ˜¥‘Š{t‚ngo[T`LE]IBeQJr^W~ga™€{§‹‡¸œ˜Ç«§Ò¶²Ø¼¸ÜÀ¼Þ¾ÜÀ¼ÜÀ¼Û¿»Û¿»Ú¾ºÙ½¹Ù½¹Ù½¹ôØÔôØÔòÖÒðÔÐîÒÎíÑÍîÒÎïÓÏïÓÏîÒÎîÒÎîÒÎïÓÏñÕÑòÖÒòÙÔûäÞ÷ãÜ÷ãÜùåÞýéâÿìåÿëäþêãüèáûçàôàÙõáÚþêãýéâ÷ãÜùäßÿêçûæå÷âáõàßôßÞñÜÛíØ×éÔÓàËÊàËÊßÊÉßÊÉßÊÉÞÉÈÞÉÈàÈÆØ¿»×»·Ò¶²Ê®ªÃ§£¼ œ¶š–³—“ƪ¦Ç«§É­©Î²®Ñµ±Ð´°Ì°¬Å¬¨¹¡Ÿ¶¡ µ Ÿµ Ÿµ Ÿ·¢¡¹¤£»¦¥³ž¾©¨·¢¡²œ½¨§½¨§³ž³Ÿž‰ˆšˆ†˜†„™‡…›‰‡›‰‡™‡…—…ƒ«™—¯›³¡Ÿ´¢ ² ž°žœ±Ÿ³¡Ÿ¤‘“£’ œ‰‹˜…‡”ƒ‘~€|~—„†ŠŒ¦“•­šœª—™ŠŒŠwy{klbVZSHLE:>@59?48=26<15=26>37?48B7;H=APEI[PTdY]i`cxrtsopmijd`aXTULHIB>?=9:512512623512512845?;S@PgHZrK\vK`}L`G_ƒC]‚B_‡DaDd“Gg˜IjIm¡LnœC_†=Uw5Ll4If1B\+;R(7J*7H(5E*:I2CS8N\@WgD^oHcxIezikwQT]35A#&/&(414=9;G"%.@CLRU^WZaUYdglª°ÆÄÊàŒ’¨17M@USXlxz†œGMg07QDKe]d~fn…T\s.6K.6KLTick~dlai|hq‚]fwNWfV]mLO`JM^^_qorƒefxRUfMN`KN_[\nX[lVWiUXi^_q`ctVWiGIVJMTW[^Z^aHLO59<0478BECGJKORSWZW[^RVYIMP@DGBCE?@B>?CABFEILJNQINQGLOLQUHPSDLO?GJ8BD3=?.9;,67,221545987<66;44:04:.5;/%+*0$06,4925:67;:9=<;AAHPR>HI0:<19<2:=9ADEJP9>D%(/!$-&!!+**6##/" -0.9:9?>>@DCHJJLLKPKKMHGLFFHDCHEEGFEJFFHDCHBBD@?D>=C11==?LKJX)aam÷úÿùùÿöùÿððøîñöðñöîòõðñõîòóðñóðòñïïíöõñýøõâØÖ¸¨¨ñÜÛíÓÔòÔÔëÉÊìÈÈíÉÉîËÉïÍËïÐËòÓÎòÕÏóÔÑôÕÒ÷ØÕùÚ×úÛØùÚ×ùÚ×øÙÖóÑÏóÑÏóÑÏòÐÎðÎÌîÌÊîÌÊïÍÌóÔÒòÔÒóÓÔòÔÒóÓÔòÔÒóÓÔòÔÒøØÙ÷Ù×øØÙ÷Ù×øØÙ÷Ù×øØÙ÷ÙÙñ×Øð×Úñ×Úð×Úñ×Úð×Úñ×Úð×Ú÷ÝàôÛÞóÙÜóÚÝ÷Ýà÷ÞáöÜßóÚÝöÜßõÜßöÜßõÜßöÜßõÜßöÜßõÜßôÚÝð×ÚðÖÙð×ÚóÙÜóÚÝòØÛï××ñÞÚðßØñÞØðßØñÞØðßØñÞØðßØðÝ×òáÚïÜÖìÛÔðÝ×ìÛÔéÖÐíÙÒò×ÐîÑÉðÓËïÒÊèËÃçÊÂéÌÄäÇ¿åÈÀãƾàûÞúàûàżáƽßǽçÐÈæÒÉèÔËæÒÉÞÊÁκ³º¦Ÿ­™’˜„}Švovb[ePK`KFfQLr]X~fb’yt „€²–’ç£Î²®Öº¶Û¿»Þ¾ßÿàÄÀàÄÀáÅÁáÅÁâÆÂâÆÂãÇÃð×ÓíÔÐêÑÍèÏËèÏËéÐÌêÑÍëÒÎñØÔð×ÓîÕÑîÕÑïÖÒòÙÕõÜØöÞÚõàÛòßÙòßÙôáÛøåßûèâúçáùæàþëåþëåøåßøåßÿïéÿðêøåßóàÜÿóñÿïíþììÿíëÿïïÿðîÿííûéçîÜÜîÜÚðÞÞñßÝóááõãáöääøäãôÜØòÚÖîÕÑçÏËâÉÅÛÿؿ»Ô¼¸êÑÍêÒÎíÔÐîÖÒð×ÓëÓÏåÌÈÞÆÂÚÅÂÚÆÅÜÈÇàÌËåÑÐë×ÖñÝÜôàßòÞÝüèçòÞÝèÔÓñÝÜîÚÙàÌËÞÌÊÓÁ¿ÐÁ¾Ï¿¿ÒÃÀÖÆÆÙÊÇÙÉÉ×ÈÅ×ÇÇÙÊÇØÈÈÒÃÀȸ¸À±®¼¬¬»««´¢¢²  ¯ª˜˜¤’’ŸœŠŠ™‡‡›‰‰¡©——¯®œœ¢~~qraUWRHID:;?56>45<23;12<23>45?56A78G=>OEFXNOaWXg]^sjmoikjdfb\^XRTMGIC=?>8:5/15/15/14.04.0713>8:C=?NEFTLJ^UVjb`vmn€xv‡~Š‚€Š‚‹ƒ‹‚ƒ‹ƒŒƒ„Œ„‚„…„……|}y{pjlidhediRUZLSY^iobpydv€kŒxœ~š¦…¢°¯¼™ºÍ{š¶a~žHe…A^~Gb€Ha€F_}F]|?WsJ_|J_z5Id6Jcgx’t…ŸL]w)B*R.=P*9L.?Q4GX:Ob@VkC\pE`uFavnp}NP\/1>%'3.0=79E;=J;=I68E?AMUWdjlxƒ…’ikw=?L%"$0*(,!#235D]^p†‡›»¼Ñœœ´qq‰WWo__wvvŽ™€•”•ªŒ¡~“jk}IKX%'3%'3ADMMPYFHTHJWwyˆª«¿°±Æ¸¸Ð™š¯mn€WYh–˜§äæõëíü®°½‘ž€‚dfs79F%;=Iikw™›§fixDK^”œ³ÀÈßx€— (?%UXg…‡–qt…QTeCFW>ARGJ[LO`HK\FIZJM^X[lehwps‚vyˆvyˆlo~`cr\_nil}djzdgx_euWZkMScSVg\brz}Ž{‘‘”¥Œ’¢mpFL\58IAEQNQXOSVOSVKORGKNFJMKOROSVCGJJNQRVYTX[RVYMQTKORKORLPSFJM?CF<@C?CFCGJEILDHKEILFKNFKNCHK=BE8=@7>=BEEGHHHKKMOOOQQSQQQPPROOOBBD@@@<<>88855733322421653>88DMKX_]h÷÷ÿüûÿóôùòñ÷ñòöòòôñóòòòòñóòòòòòòðêëæùøóÿúöØÏÊÆ·´íØÕíÑÐñÒÐñÍÍñËÊîÆÄíÆÁíÈÂîËÅóÐÊõÔÍìÎÆðÑÌñÒÍïÐËòÑÌöÕÐ÷ÖÑôÓÎïÌÈïÌÈïÌÈïÌÈñËÈñËÈñËÈïÌÊëËÌêÎÍìÎÐìÐÏîÐÒíÑÐîÐÒíÑÐðÒÔîÒÑñÓÕó×ÖöØÚöÚÙùÛÝøÞßòÝÜòàÞíÙØëÙ×ôàßòàÞîÚÙðÞÜ÷ãâñßÝïÛÚîÜÚïÛÚïÝÛðÜÛðÞÜïÛÚðÞÜñÝÜðÞÜðÜÛîÜÚðÜÛðÞÜöâáðÞÜïÛÚñßÝñÝÜêØÖêÖÕìÚØèÚ×êßÙîáÛêßÙìßÙìáÛìßÙæÛÕîáÛìáÛíàÚêßÙìßÙéÞØêÝ×ëÜÕïÖÏðÕÊïÔÉíÒÇìÑÆêÏÄçÏÃæÎÂßɼàʽàʽß̾âÌ¿àÍ¿áÎÀáÎÀßÍÁâÐÄïÝÑóáÕæÔÈÕù¯¨°–ŸŒ†Ž{uxe_hUQ^KG]JFfRQr]ZŽuq™}y§‹‡´˜”À¤ Ë¯«Õ¹µÜÀ¼Þ¾àÄÀâÆÂåÉÅçËÇçËÇçËÇåÌÈãÎËåÒÎåÒÎèÕÑê×ÓãÐÌäÑÍïÜØïÜØïÜØïÜØïÜØïÜØïÜØïÜØïÛÚèÖÔèØØëÛÛêÚÚéÙÙéÙÙëÛÛîÞÞñááìÜÜìÜÜñááôääòââðààðâáéÞÜëáßìâáêàÞëáàïåãðæåíãáêàßêàÞêàßêàÞêàßêàÞêàßëàÞçØÕæÔÐæÓÏãÑÍßÌÈ×ÅÁÙÆÂÜÊÆÜÉÅáÏËáÎÊàÎÊåÒÎãÑÍáÎÊåÓÏãÔÑâÓÐåÖÓçØÕçØÕéÚ×ëÜÙêÛØëÜÙëÜÙìÝÚêÛØèÙÖãÔÑßÐÍÛÍÊÛÍÌÙÎÌÚÎÎÛÐÎÜÐÐÜÑÏÝÑÑÝÒÐçÛÛåÚØáÕÕÜÑÏ×ËËÒÇÅÎÂÂÎÀ¿Ã±¯Á®ª¼©¥¶£Ÿ±žš®›—¬™•«˜”°™²Ÿ›´¡µ¢ž°™£Œ“€|†trgYXYMMK??B66@44@44>22<00>22?33A55H<]DWwbu•Wjˆ8Mh+C[/G_AYqNf€Tl†Rl‡JdF_}E`}E`~E`~E`~C`€C`€E`~I`J_|I^{FZu@To:Ng5F`2D\2D\3E]4H`8Le')6/1>79F9;H9;H24A<>KTVckmz…‡”kmz>@M&#%1+* ,"$124AWYh|~±²Æž²xyŽZ[pZZrppˆ€€˜€€˜••¯‹‹£{{“gh|IKZ')5')5BENILU@CLIKX~€¯°Ä­®Ã²²Ì˜™®ij|`bo ¢¯îðýóõÿ©«¸„†“„†“hjw8:G$46Cikx ¢¯mp'/D‰¢µ¿Ønx‘'@6@YŽ˜±ØâûÇÑꛥ¾™£¼‰“¬eoˆak„…¨u|–HNhsw’œ »nrCGb›ŸºÛßú¡¼9=Xuy”æêÿùýÿÒÖñ…‰¤>B]EIdÀÄßòöÿáåÿcg‚FJe‡‹¦¥©Ä€„ŸZ^yz~™”˜³”˜³}œfj…BFa_c|y~”uzŽz“ƒˆœej~‡Œ àåùÚßóV[oHMasxŒ‡Œ ˆ¡‡Œ “˜¬Š¢qs‚egtoq~tvƒ`bo[]j\^kLN[35B57DNP]LN[79FY[h~€jlyLN[DFSACPDFSACP;=J?ANJLY[]jacphjwprmo|Z\iLN[NR^bev`fv_eu[aqTZjQWgW]m_eukqy”šªŒ’¢msƒX^nMScSYeVY`VZ]TX[PTWLPSMQTQUXVZ]FJMIMPLPSNRUMQTLPSKORLPSKORFJM?CF;?B;?B?CFCGJFJMFJMLPSOSVJNQ?CF6:=59<8<=224111/////////000222333888999888444///...///222;;;999555///***&&&###"""$$$(((---111333666;;;???JJJLLLNNNOOOPPPOOOMMMLLL@@@>>>:::77744433322222453>:8EMKV^]eø÷ÿüûÿôóùòñöòòôòòôòòòòòðòòðòòðòóîòóîýü÷ûøñÑÈý®©æÑÎéËÉçÅÄíÇÆìÄÂéÀ¾æ½¹å¾·èÁºêŽêÈ¿ìËÄîÐÈïÑÉìÎÆïÎÇóÒËõÒÌòÏÉèÅ¿èÅ¿êÅ¿êÅ¿ëÄ¿ëÄ¿ëÄ¿èÅÁêËÉèÌËèËÍéÍÌêÍÏìÐÏîÑÓïÓÒïÒÔïÓÒîÑÓíÑÐïÒÔó×Ö÷ÚÜöÜÝêÖÕëÜÙìÚØìÝÚõãáïàÝé×Õæ×ÔñßÝìÝÚìÚØìÝÚòàÞñâßðÞÜëÜÙ÷åãðáÞîÜÚîßÜöäâöçäôâàìÝÚòàÞëÜÙìÚØìÝÚíÛÙåÖÓæÔÒçØÕçÙÖéÞØëàÜéÞØéÞÚëàÚéÞÚåÚÔìáÝìáÛëàÜëàÚêßÛéÞØéÞÚëÜÕëÕÊíÒÇêÒÆéÑÅçÏÃæÎÂäÌÀãÍÀàʽÞ˽ß̾ßÍ¿áÎÀàÎÀáÏÁáÏÁèÖÈèÖÈðÞÐñßÑäÒÆ׏ʷ°¼©¢¡Žˆ}w{hdjWS`LK]IHdPQnYX‚ieŽrn}­‘»Ÿ›É­©Õ¹µÜÀ¼èÌÈéÍÉìÐÌîÒÎïÓÏïÓÏîÒÎìÓÏðÝÙñßÝïÝÛòàÞöäâñßÝðÞÜùçåôâàôâàôâàôâàôâàôâàôâàòãàùéêúììüîîüîîûííûííýïïÿññúììóååïááòääôææòääóååóççîæäïêçñéçìçäïçåðëèòêèíèåìäâéäáêâàèãàêâàèãàëãáíãáéÛÚæ×ÔåÓÑáÒÏÝËÉÕÆÃÙÇÅÝÎËìÚØíÞÛëÙ×æ×Ôé×ÕãÔÑáÏÍâÓÐå×Ôå×ÔæØÕèÚ×éÛØëÝÚìÞÛìÞÛèÚ×éÛØêÜÙéÛØèÚ×å×ÔâÔÑÞÓÏàÔÔßÕÔàÖÕá×ÖâØ×âØ×ãÙØãÙØæÜÛåÛÚá×ÖÜÒÑ×ÍÌÓÉÈÏÅÄÎÃÁʸ´Èµ¯Ã°ª½ª¤¸¥Ÿ´¡›²Ÿ™²Ÿ™¶£¸¥Ÿº§¡»¨¢¶£©–™†€ŒzvhZWZOMLA?C86A64A64@53=20?42@53B75I>26<04:.2;/3>26B6:D9=VPR^Z[lhi{wx„€†‚ƒ…‚‚~{|€|}}~‚~}~{|}yz}wwsijka`cYZWQQSNRDDF:?CS\ao~ƒwŠ~—ž‰¦¬—¸Á–»Ã´½³À£¼hŠ¦Km‰PrŽ[z—Ut‘SnŒId‚F_~:Sr=Tt8Oo.Bc?StZmŽ[p8Pl+E^/Ib?YrKe~Rl…Qk„Ic|F`yF`yF`yF`yF`yF`yF`yG_yJ_zK_zI]xEYt@To:Ni4Hc1E`0D_1E`4Hc8LgABFIHLONRUVZ][_bTX[EIL842@64@64C97J@>TJHbXVndbvlkˆ~Šƒ†{zosncgbW[UJNI>B?48=26;049.2:/3=26A6:C:=\VXd`asop}~Š†‡‰Š‹‡ˆ‰…†‡ƒ„ˆ„…‰…†‰…†ˆ„…†‚ƒƒ€ƒ}}wmnndce[\XRRTOSDDF:?CR[`p„z“‚›¢Ž«±™ºÃ–»Ã²»Š°½„¦¿jŒ¨LnŠRt]|™Wv“ToId‚Jc‚>Wv:Qq7Nn2Fg;OpRe†_t“ikx¬®»z}Ž"*?u˜®¸Ñjt9C\š³ÛåþÌÖ¤mw§À•Ÿ¸KUn‘›´ðúÿ¤¾%+Ejn‰©­Èz~™=A\ƒ‡¢ÍÑ쪮ɠ¤¿ÑÕðÞâý¡¥À–šµ¨¬Çrv‘>B]}œãçÿÔØóX\w>B]{š’–±~‚ƒ‡¢Ž’­}œƒ‡¢ptGKf[_zŽ’«y~”ns‡„‰¤©½†‹Ÿ› ´ÑÖꡦºgl€X]q|•“˜¬Œ‘¥Š£…Šžuzln}fhuoq~wy†ikxXZgIKX9;H!.')6ACPTVc[]jikxikxTVcFHUDFS@BO9;H.0=(*735BCERDFSEGTUWdvx…Ž[]j@BOJNZJM^PVfTZjRXhV\lciynt„qw‡z€š °¥«»ou…LRb_euek{U[g_bi_cf`dg_cf^be\`c\`c\`cLPSHLOEILFJMKOROSVPTWOSVKORGKN@DG7;>2696:=@DGIMPOSVVZ]\`c[_bTX[KORFJMEIJFFHDDDAAA===;;;:::::::::FFFGGGGGGCCC<<<777444444)))&&&!!! ###&&&333777:::;;;;;;<<<@@@CCCSSSRRROOOLLLHHHDDD@@@>>>88877744422211111111122431<:8EOMX ]\döõýûúÿöõûòñöòòôòòôòòòòòðòòðòòðòóîìíèø÷òòïèÁ¸³Ž‰Ì·´åÇÅ῾æÀ¿æ¾¼ä»¹â¹µà¹²áº³â½µã¾¶â¿¹äüäüáÀ¹âÁºåĽæýãÀºÚ·±Ú·±Ü·±Ü·±Ü·±Ü·±Ü·±Ú·³äÅÂâÅÁáÂÀàÿäÅÃéÌÈðÑÏóÖÒùÚØÿâÞÿàÞõØÔ÷ØÖÿäàÿåãüàÝÿïíÿïîÿìëÿìëÿðïÿðïÿîíÿîíÿðïÿëêúåäùäãÿêéÿìëøãâì×ÖÿïîÿðïÿñðÿñðÿïîÿïîÿðïÿñðÿñðÿðïÿîíÿîíÿìëÿêéþéèþéæÿìæÿðéÿòìÿðéÿðêÿòëÿðêÿìåÿóíÿóìÿóíÿòëÿñëÿðéÿðêÿïèÿìâÿëàÿêßÿèÝÿæÛÿåÚýåÙüäØüäØüäØýåÙþæÚþæÚÿçÛÿèÜÿéÜÿðãÿóåÿûíÿûíÿîãïÛÐÜÈÁʶ¯š…€‹vqydalWTbML]HGaKMjRRqXT~b^Žrn „€°”¿£ŸÌ°¬Ô¸´ÿæâÿçãÿçãÿçãÿæâÿãßýáÝùàÜÿñíÿñïýëéþìêÿôòÿóñÿîìÿïíÿòðÿòðÿòðÿòðÿòðÿòðÿòðÿóðüìíþððÿòòÿòòþððþððÿòòÿõõÿññ÷ééòääóååõççõçç÷ééúììÿóóÿõõÿóóùíí÷ëë÷ëëõééñååõééóççñååïããïããñååóçç÷éèñÝÞì×ÖæÑÐáÌËÜÇÆÙÄÃÞÉÈæÑÐõàßõàßíØ×çÒÑèÓÒäÏÎÞÉÈÞÊÉßÐÍáÓÐàÒÏàÒÏå×Ôå×Ôå×ÔèÚ×èÚ×èÚ×æØÕäÖÓâÔÑßÑÎÝÏÌÚÏËßÓÓßÕÔßÕÔàÖÕá×ÖâØ×âØ×ãÙØàÖÕßÕÔÞÔÓÜÒÑÚÐÏØÎÍ×ÍÌ×ÌÊμºÌ¹µÇ´°Á®ª¼©¥¹¦¢·¤ ¶£Ÿ´¡¶£Ÿ¹¦¢º§£µ¢ž¨•‘—„€ˆyvh][\RPMCAE;9C97C97A75?53A75A75D:8KA?UKIcYWoecwml‹‚‚†‰~‚~swqfjf[_XMQMBF?48=26;049.2:/3=26A6:C:=^XZfbctpq‚~Œˆ‰ŽŠ‹‰ŠŠ†‡Œˆ‰‰Š‰Š‰ŠŒˆ‰‰…†‡ƒ„†€€wmnndcf\]XRRTOSDDF:?CR[`r†}–‡ §’¯µ›¼Å•ºÂ‹°¹‡­ºˆªÃlŽªLnŠQs]|™Xw”UpŽJeƒLe„E^};Rr3Jj3Gh:NoL_€_r’CXs2Jb1Ia>VnH`xOgOgH`xE]uE]uE]uE]uE]uE]uE]uG]uI]vH\uFZsCWp?Sl;Oh8Le7Kd1E^3G`6Jc:Ng>RkAUnDXqFZs^`mIKX68E79F?AN?AN57D,.;$&302?LN[hjwˆŠ—su‚KMZ')6,.:')5&(4+-957DCERTVeacrxy’“§–—¬{|‘ggppˆ~~–€€˜‘‘«ˆˆ ~~–wxŒbds=?K-/;9N\brfl|TZf[^e]ad`dgbfibfi^beY]`UY\EILBFI@DGBFIGKNKORKORJNQLPSHLO@DG7;>26959lG?jGAmJDmJDiF@iF@lIClIChE?iF@iF@iF@iF@iF@iF@iF@iF@tSNpQLoMKlMHpNLrSNyWU{\W|ZX„e`ˆfd€a\ƒa_‰jeŠhf~a]tZYpXXnVVoWWqYYrZZrZZoWWrZZnVVhPPfNNoWWx``u]]kSSnVVoWWpXXpXXnVVnVVoWWpXXqYYrZZpXXnVVlTTlTTkSSiQOpWRu\Uv]Xt[Tt[Vv]Vu\WpWP{b]{b[za\y`Yy`[x_Xw^Yw^W{`Wz_Vy^Ux]Tv[RuZQsXOsXOz_V{`W{`W|aX}bY~cZ~cZd[i\€j]Štgzm‹uj…od~gat]W”|x†njv^\jRPbJJ^FFcJMkSSmTPy]Yˆlh—{w¥‰…²–’¾¢žÅ©¥½¡À¤ Æª¦Í±­Ó·³×»·Ú¾ºÙÀ¼àÍÉáÏÍÛÉÇÚÈÆáÏÍâÐÎÜÊÈÜÊÈïÝÛïÝÛïÝÛïÝÛïÝÛïÝÛïÝÛíÞÛíÝÞïááñããñããïááïááñããôææôææðââñããøêêþððÿññÿññÿôôÿóóÿööÿööÿòòÿññÿôôÿôôþððÿóóÿòòþððýïïýïïþððÿòòÿòòùãåôÜÜíÕÕçÏÏàÈÈÛÃÃÞÆÆæÎÎ÷ßßôÜÜêÒÒäÌÌçÏÏäÌÌÞÆÆÜÇÆäÕÒèÚ×æØÕå×ÔìÞÛìÞÛéÛØïáÞëÝÚéÛØæØÕâÔÑßÑÎÛÍÊÙËÈÖËÇáÕÕàÖÕá×ÖâØ×âØ×ãÙØäÚÙäÚÙá×ÖàÖÕÞÔÓÛÑÐ×ÍÌÔÊÉÒÈÇÑÆÄ̽ºÊ¸¶Å³±À®¬»©§·¥£µ£¡µ£¡´¢ ¶¤¢¹§¥º¨¦´¢ ¨–”—…ƒ‰zwh][[SQLDBD<:B:8B:8@86>64@86@86C;9JB@TLJbZXnfdvnlŠ‚Œƒ†ˆ‚}twpgje\_WNQLCF>58<36:148/2903<36@7:C:=^XZfbctpq‚~Œˆ‰ŽŠ‹‰ŠŠ†‡Œˆ‰Œˆ‰Œˆ‰Œˆ‰Š†‡‡ƒ„„€ƒ}}sijj`_cYZWQQTOSEEGTkG]tNd{Oe|I_vG]tG]tG]tG]tG]tG]tG]tG]tH\tI[sFXpCUmASk>Ph=Og@MGIVDFS68E*,9%'4.0=FHU`boƒ…’tvƒRTa35B24@,.:(*6-/;9;HHJWUWf\^mWXlrs‡€–tuŠjj‚ss‹—‚‚š‹‹¥††ž€€˜|}‘fhw=?K(*625>;>G47@]_lŠŒ› ¡µžŸ´©©Ã ¡¶kl~‹šÛÝêÜÞ닍šY[hwy†„†“jly=?L)&(5@BOgiv£¥²ƒ†—DLaXb{x‚›|†Ÿž¨ÁäîÿÜæÿ– ¹cm†t~—£­Æ’œµisŒÄÎçÕßøV]w :EId‘¬•™´vz•¡¥ÀÒÖñ¹½ØŸ£¾ƒ‡¢„ˆ£•™´ÂÆáäèÿž¢½37RBFaÇËæÇËæei„DHcvz•ˆŒ§{šŠŽ©—›¶~‚vz•bf/3NW[v‡‹¤|—otˆ€…™¤©½“˜¬£¨¼ÆËߊ£OThRWk„˜Ÿ¤¸‡Œ „‰„˜z’bdsoq~uw„tvƒsu‚hjwMO\79F$&3+-::A<@C@DGCGJFJMGKNNRUIMPAEH9=@59<858<36:148/2903<36@7:A;=[WXd`asop}~Š†‡‰Š‹‡ˆ‰…††‚ƒ†‚ƒ†‚ƒ…‚‚~{||xy{uuj`acYX]STTNNSNRGGI?DHZch{Š‡š ©°–³¹š»Ä’·¿‰®·‡­º“µÎp’®Gi…Gi…Ut‘TsVqLg…KdƒMf…D[{5Ll3Gh;OpH[|Re…Nd|@M8:F02>)+7+-98:GGIVPRaSUdJK_^_slm‚jk€iiuu€€˜‚‚š‡‡¡ƒƒ›—yzŽ`bq57C!#/+.769B47@\^ky{ŠŠ‹Ÿ—˜­ªªÄŸ µuvˆ¤¦³ÛÝ꯱¾\^kLN[…‡”›ªnp}BDQ))+8GIVcer›ª‰ŒRZoT^wkuŽ‚Œ¥ª´ÍËÕ׎˜±q{”ƒ¦Ÿ©Â—°†©ÎØñ ªÃ)0J ,9=X‚†¡–šµ‘¬½ÁÜÓ×òœ »IMhRVq…‰¤£§ÂÁÅàó÷ÿ¾ÂÝ;?Z<@[ÈÌ绿ÚbfUYt‚†¡†Š¥… ‡‹¦›ŸºˆŒ§vz•bf/3NPTovz“ƒˆžx}‘‚‡›£¨¼—œ°¤©½ÃÈ܊£JOcOTh~ƒ—¢§»ˆ¡ˆ¡€…™{€“cetnp}su‚wy†|~‹mo|QS`BDQ02?.0=-/K@BOEGTHJWIKXHJWDFSACP>@MFHUIKXdfsƒ…’jly68E!%136G4:J@FVTZjjp€~„”‘—§£³âèøîôÿ§­½9?O17G_eu_euSYe[^eY]`X\_Y]`[_bZ^aVZ]RVY>BE=AD;?B9=@:>A@DGGKNMQTPTWJNQBFI<@C:>A=AD?CFAEHIMPEILDHKIMPQUXSWZMQTFJKMMOLLLJJJIIIIIIJJJLLLMMMFFFEEE@@@888...&&&"""""" $$$***000777<<88E??PJJ]WWjddqkk€z|‚|~~xzsmof`bZTVMGIA;=<68:46824602713:46>8:A;=UQR^Z[lhi{wx„€†‚ƒ…‚‚~}yz}yz}yz|xyyuvuqrrnoqkkaWX[QPWMNPJJRMQIIKCHL^gl•ŒŸ¥’«²–³¹˜¹Âµ½‰®·‰¯¼—¹Òq“¯CeAcOn‹QpVqNi‡Oh‡Ha€D[{=Tt7Kl7KlDWxNaSg€?Ti7La=RgCXmJ_tMbwH]rF[pF[pF[pF[pF[pF[pF[pF[pHZpGWnDTkBRiAQhAQhBRiBRi6F]8H_;Kb?OfCSjGWnJZqK[r[]jKMZBDQIKXQS`KMZ8:G(*7*,9-/<>@MTVcxz‡su‚\^kDFS=?K35A)+7)+768EEGTLN]LN]NOcZ[odezef{jj‚uu~~–™„„ž€€˜||”tu‰Y[j.0<)(+414=36?Z\iln}{|‘’§©©Ãž³ ¡³ÒÔáæèõœ46C35Bxz‡˜š§qs€FHU))+8JLY`bo–˜¥Ž‘¢U]rT^weoˆ{…ž“¶•Ÿ¸ƒ¦ˆ’«†©Š”­•Ÿ¸‹•®›¥¾ÈÒëpz“ ./3Nsw’„ˆ£‡‹¦¿ÃÞÃÇâpt59T@D_Œ«¹½Ø¿ÃÞâæÿ´¸Ó37R>B]ÎÒí±µÐ]a|dhƒ‘¬…‰¤ˆŒ§‚†¡ž¢½•™´z~™ae€.2MKOjnr‹„‰Ÿ„˜Š£«°Ä¡¦º§¬À»ÀԀ…™LQeQVj~ƒ—¥ª¾Ž“§”¨ƒˆœ|”fhwln{oq~{}Šƒ…’np}RTaLN[ACP35B!#0GIV‡‰–y{ˆ;=J"$135B=?LIKXNP]MO\JLYGIVDFS;=JBDQ>@MSUb{}Šqs€CER+/;14E06F=CSV\lnt„‚ˆ˜–œ¬¥«»äêúìòÿ›¡±/5E4:Jfl|ciy\bn_biZ^aUY\TX[VZ]X\_W[^VZ]DHKCGJ?CF;?B:>AAEHNRUX\_RVYJNQBFI>BE>BE@DG@DG>BE9=@9=@:>A?CFEILIMPHLOFJKCCECCCCCCDDDFFFIIILLLNNNGGGCCC;;;///$$$!!!"""(((///777>>>BBBEEEOOOQQQQQQOOOJJJHHHHHHJJJ999777333///,,,+++,,,,,,***)))))))))+++---0001130.9;9FSQ\"[ZbóòúûúÿùøþòñöòòôòòôòòòòòðòòðòòðòóîõöñûúõÿÿøåÜן‹®™–Ù»¹×µ´Ö°¯Ø°®Ù°®Ø¯«Ö¯¨Õ®§Ò­¥Ò­¥Ö¯ªÙ²­Ù°¬Ô­¨Ó¬§Ô¯©Ó®¨Íª¤×´®Öµ®Öµ®Ô¶®Ô¶®Ó¶®Ô¶®Ô¶®Ô¶®Ö¸°Ú¼´ÞÀ¸âļæÈÀèÊÂéËÃîÐÈíÏÇïÑÉóÕÍõ×Ïõ×Ï÷ÙÑùÚÕ÷ÛÚíÓÔñÔÖòØÙñÔÖòØÙ÷ÚÜîÔÕíÐÒóÙÚõØÚíÓÔïÒÔóÙÚñÔÖäÊËòÕ×ñ×Øô×Ùñ×ØòÕ×ðÖ×óÖØòØÙðÓÕñ×ØòÕ×êÐÑëÎÐìÒÓìÏÑçËÊêÍÇîÑÉñÓËîÑÉïÑÉðÓËïÑÉêÍÅðÒÊîÑÉïÑÉíÐÈíÏÇëÎÆìÎÆéÎÇåÎÈãÏÈäÍÇâËÅàÉÃßÈÂßÆÁàÄÀáÅÁâÅÁãÆÂåÆÃæÇÄæÇÄéÇÅçÈÃèÍÄäÌÀèÐÄèÐÄÛùи®Æ­¨º¡œ¢‰…ws{a`kQPbHIaGHjPSu[\‘urœ€|®’ŽÁ¥¡Ó·³äÈÄó×ÓüàÜøÜØùÝÙûßÛüàÜýáÝüàÜúÞÚ÷ÞÚïÜØùçåøæäðÞÜïÝÛðÞÜîÜÚðÞÜôâàôâàôâàôâàôâàôâàôâàòãàõåæöèèøêêøêê÷éé÷ééùëëûííøêêóååòää÷ééúììöèèóååõåæíÙÛòÜßôÞáóÝàöàãûåèýçêûåèöàãùãæþèëÿëîÿëîþèëùãæøßâíÓÖêÐÑìÏÑéÏÐçÊÌßÅÆâÅÇåËÌæÉËàÆÇØ»½Õ»¼âÅÇäÊËäÇÉãËËÖÄÂÝÏÌ×ÉÆÕÇÄàÒÏÞÐÍØÊÇâÔÑÖÈÅÔÆÃÑÃÀÏÁ¾ÎÀ½ÏÁ¾ÑÃÀÐÅÁÑÅÅÐÆÅÑÇÆÑÇÆÒÈÇÓÉÈÔÊÉÔÊÉÉ¿¾È¾½Ç½¼Å»ºÂ¸·À¶µ¾´³½³²¹®¬·©¨²¤£­Ÿž¨š™¤–•¢”“¢”“ž ’‘£•”£•”ž’„ƒsrsggcZ[UOOGAC>88<68<66:46822:46;55=79D>>OIK\VVhbdpjl|vx~xzztvoikc]_WQSICE>8:<68:46824602713:46>8:A;=MIJVRSeabsop|xy{|}yz{wxwstwstwstuqrsopoklkghjdd[QRVLKSIJNHHRMQJJLFKOajo„“˜Ž¡§“¬³–³¹—¸ÁŽ³»‰®·Š°½š¼Õq“¯Ac<^zKj‡On‹VqOjˆSl‹C\{BYyE\|;Op3Gh@StM`~UiAVk7La@BOQSb[]lVWktu‰‘¦uv‹__wzz’ŒŒ¤¨„„ž‹‹£††žtu‰PRa%'3)36?58A:=FVXertƒ„…™¡¢·¶¶Ð°±Æ¸¹ËóõÿÙÛèXZg#46Cbdqƒ…’mo|LN["$1 "/PR_xz‡uw„cfw\dydn‡ak„isŒ|†Ÿhr‹DNg†©×áúª´Ír|•‘›´ÅÏ许ÑGQj  :26QSWrTXsRVqW[v^b}}œhl‡sw’‘•°šž¹³·ÒØÜ÷˜œ· $?MQlÄÈãµ¹Ôƒžw{–… ™¸ŠŽ©ƒž›Ÿº¸¼×„ˆ£imˆY]x15P\`y˜³Š£€…™Š£”™­”™­Œ‘¥x}‘HMa@EY{€”¯´ÈŽ“§„˜ˆ¡z’gixvx…pr~€•—¤qs€DFSKMZmo|UWd+-:MO\‰‹˜rt=?L$&313@8:GACPHJWNP]SUbJLY9;H/1>46C9;HOQ^z|‰‹šhjw9=I.1B#)98>Npv†•›«Ÿ¥µ©¯¿­³ÃÓÙééïÿ…‹›.4DLRbmsƒdjzX^jbelVZ]MQTNRUQUXPTWQUXTX[NRUGKNMQTLPSFJMUY\dhk[_bY]`PTWCGJ@DGAEH7;>/3648; $')-0.25/368>>DDDGGGGGGFFF(((%%%!!!!!!%%%(((---///333888>>>CCCGGGJJJMMMMMMLLLJJJEEE???999666((((((((((((((((((((((((((())))))***+++,,,,,,--/20;97DSQ\MLTõôüúùÿûúÿñðõññóññóñññññïññïññïñòíñòíø÷òÿþ÷êáܗˆƒ©”‘Óµ³Ý»ºÛµ´Û³±Ú±¯Ù°¬Ö¯¨Õ®§Ô¯§Õ®§Ø¯«Ö­©Õ©¦Ð§£Î§¢Í¨¢Ïª¤Î«¥É¦ Ñ°©Ûº³Î°¨Î±©Ö»²Òµ­ÞÁ¹×º´Ù¼¶ÝÀºãÆÀéÌÆîÑËòÕÏõØÒìÏÉïÒÌóÖÐ÷ÚÔøÛÕöÙÓô×ÑñÕÑòØ×ðØØñ×ØòÚÚõÛÜôÜÜòØÙîÖÖîÔÕëÓÓéÏÐéÑÑëÑÒêÒÒéÏÐåÍÍìÒÓéÑÑíÓÔòÚÚôÚÛðØØñ×ØòÚÚíÓÔìÔÔíÓÔëÓÓìÒÓëÓÓìÒÓìÒÑçËÇèÍÆìÏÉîÓÌïÒÌîÓÌíÐÊëÐÉñÔÎîÓÌíÐÊíÒËñÔÎñÖÏðÓÍëÒËßÌÅÝÎÇàÏÈàÏÈàÍÇÞËÅÜÇÂÝÅÁÞÅÁçËÈÞ¿äÆÄåÇÅâÄÂðÑÏíÎËëÐÇîÓÈïÔÉìÑÆâǾӸ¯Ã§£¹™§‹ˆ“wtcbqUTeHJaDFoRV„giœ€}¨Œˆ»Ÿ›Ï³¯àÄÀïÓÏûßÛÿæâûßÛýáÝÿãßþâÞúÞÚøÜØûßÛûâÞðÝÙïÝÛïÝÛïÝÛïÝÛïÝÛïÝÛïÝÛõãáöäâøæäùçåùçåøæäöäâóäáôäåöèèòääïááóååòääñããöèèìÞÞéÛÛêÜÜîààïááìÞÞíßßòâãóßáðÚÝóÝàõßâðÚÝòÜßõßâñÛÞæÐÓïÙÜ÷áäøâåòÜßîØÛïÙÜóÝßçÎÑäÌÌãÉÊáÉÉäÊËãËËáÇÈÝÅÅäÊËãËËäÊËãËËäÊËãËËäÊËáÌËÙÊÇÜÎËáÓÐå×Ôå×ÔáÓÐÜÎËØÊÇÝÏÌÜÎËÛÍÊÚÌÉÙËÈØÊÇ×ÉÆÕÊÆÖÊÊØÎÍÙÏÎØÎÍØÎÍ×ÍÌ×ÍÌÙÏÎÛÑÐØÎÍÕËÊÔÊÉÕËÊÕËÊÒÈÇÏÅÄɽ½Ç»»Ä¸¸¿³³»¯¯¶ªª³§§±¥¥ªžž©§››¤˜˜Ÿ““”ˆˆ‡{{}sr_Y[VRSJEIB>?=8<;78:59956948;78?:>C?@KFJVRSd_cmij{wx„€ƒ€vrsjfga]^QMN?;<623512401401623:67>:;A=>SOPZVWeabplmvrswsttpqqmnsopqmnmijhdeb^_]YZYUVXRRPFGMCBPFGKEEOJNPPRLQUZch“¢§ž±·•®µ“°¶•¶¿²º²»‡­º¨ÊãhŠ¦"D`!C_RqŽc‚ŸYt’WrPiˆLe„Kb‚H_BVw8Lm8Kl>QoOayEWk:L`7I]=OcDVjGYmGYmEWkEWkDVjDVjDVjEWkFXlGYmGVkGVkHTjFUjIUkIXmNZpM\q@Lb=La>J`>MbEQgL[pWcyZi~acpSUbIKXLN[PR_FHU35B$&3')613@=?LWYfy{ˆƒln{XZgIKW;=I*,8"$0*,9;=JOQ`Z\kdeyˆ‰¡¢·{|‘]]uxx‘‘©šš²‡‡¡ŒŒ¤¥}~’RTc#%1)14=47@9KCERrtšœ©|~‹?CO #4;AQPVfdjz‡—¦¬¼ÁÇ×»ÁÑçíýÛáñmsƒ'-=OUepv†djzW]i_biSWZHLOFJMGKNFJMHLOMQTOSVLPSPTWMQTEILJNQNRUDHKIMPHLO>BE59<8BEDHKCGJ9=@045557333111222555777777666&&&$$$"""!!!"""&&&+++...333555999===BBBFFFJJJLLLMMMKKKHHHDDD>>>999444111((((((((((((((((((((((((((())))))***+++,,,,,,--/20;97DSQ\MLTõôüúùÿûúÿñðõññóññóñññññïññïññïñòíûü÷ýü÷ÿþ÷éàۘ‰„©”‘ΰ®Ô²±Ö°¯Ö®¬×®¬×®ªÕ®§Õ®§Õ°¨Ö¯¨Ø¬©×«¨Õ©¦Ó§¤Ï¦¢Î§¢Í¨¢Ë¨¢Ð­§Î­¦Ï±©Ë®¦Ì±¨Õº±×¼³ØÀ¶ÞÅÀÞÅÀßÆÁáÈÃâÉÄäËÆåÌÇæÍÈíÔÏìÓÎëÒÍëÒÍìÓÎîÕÐð×ÒðØÔðØÖíØ×íØ×ïÚÙñÜÛñÜÛîÙØëÖÕîÙØì×ÖêÕÔêÕÔëÖÕëÖÕéÔÓçÒÑíØ×ëÖÕì×ÖñÜÛñÜÛì×ÖëÖÕíØ×òÝÜðÛÚîÙØì×Öì×ÖîÙØðÛÚòÝÚçÏËéÒÌìÕÏïØÒñÚÔòÛÕòÛÕñÚÔíÖÐêÓÍèÑËçÐÊéÒÌèÑËæÏÉàÍÆáÔÌàÖÍàÖÍáÔÌàÓËÞÏÈÝÌÅÜÉÃëÖÑäÌÈåÌÈéÐÌîÒÏîÒÏîÐÎô×ÓõØÐóØÍñÖËêÏÄàżԹ°È¬¨Á¥¡ªŽ‹—{xedqUTcFH`CErUY‰ln¨Œ‰´˜”ƪ¦Ø¼¸çËÇó×ÓüàÜÿæâôØÔ÷Û×úÞÚúÞÚøÜØùÝÙüàÜýäàùæâøæäøæäøæäøæäøæäøæäøæäöäâ÷åãùçåúèæúèæùçå÷åãôåâöæç÷ééóååðââôææôææòää÷ééôææñããðââóååóååðââðââôäåøåçõáã÷ãåøäæóßáôàâ÷ãåóßáðÜÞòÞàôàâôàâòÞàîÚÜìØÚìØÙçÑÓäÏÎâÍÌâÍÌãÎÍãÎÍáÌËÞÉÈåÐÏåÐÏåÐÏåÐÏåÐÏåÐÏåÐÏäÐÏáÒÏâÔÑå×ÔçÙÖçÙÖå×ÔâÔÑàÒÏÝÏÌÝÏÌÜÎËÛÍÊÚÌÉÙËÈÙËÈÖËÇÚÎÎÚÐÏÜÒÑàÖÕâØ×á×ÖâØ×åÛÚá×ÖÞÔÓÛÑÐÛÑÐÛÑÐÛÑÐØÎÍÕËÊÑÅÅÏÃÃÌÀÂÇ»»Â¶¸¾²²º®°¸¬¬¯£¥®¢¢¬ ¢ªžž¤˜š›ƒ……{|f`dZX[PKOECFB=A=;>=8<97:948:8;?:>B@CKFJTRUc^bjhk}yz…ƒ„‰…†{yzoklcabTPQB@A845534512201512756=9:?;9@MVXeŽln{8:G)&(5.0=57D;=JDFSKMZKMZHJWDFSMO\=?L02?bdq¢¤±‰‹˜9=I 1SYiciy]csv|Œ²¸ÈàæöÛáññ÷ÿµ»ËFL\!'7V\lqw‡`fvPVbY\cOSVEILAEH>BE=AD@DGDHKEILGKNIMPGKNDHKBFI?CF8>>AAADDDGGGJJJLLLNNNHHHEEE@@@:::555000---+++((((((((((((((((((((((((((())))))***+++,,,,,,--/20;97DSQ\MLTõôüúùÿûúÿñðõññóññóñññññïññïññïñòíö÷òöõðú÷ðæÝؚ‹†®™–Ò´²Ö´³Ûµ´Ü´²Ý´²Ý´°Û´­Ú³¬Ù´¬Ù²«Ó§¤Ô§¤Ô§¤Ò¦£Ð¤¡Ì£ŸÉ¢Ä¡›Íª¤Ï±©Í°¨Ðµ¬Ô¹°Ö¾´×¿µÌµ­Ò½¸ÓÀ¼ÖÿÚÇÃßÌÈãÐÌæÓÏèÕÑåÒÎçÔÐëØÔîÛ×ïÜØïÜØîÛ×íÚÖíÙØìØ×ìØ×îÚÙñÝÜñÝÜíÙØêÖÕÓ¿¾Ð¼»Îº¹Îº¹Ð¼»Ð¼»Îº¹Ë·¶Ñ½¼Îº¹Ì¸·Ì¸·Ç³²¾ª©¹¥¤¹¥¤ãÏÎàÌËÜÈÇÚÆÅÚÆÅÜÈÇàÌËâÐÎ×ÈÃÚËÆÞÏÊâÓÎæ×ÒéÚÕêÛÖëÜ×èÙÔæ×ÒãÔÏäÕÐåÖÑæ×ÒãÔÏàÓÍÙÒÊØÔËÙÕÌÜÕÍÛÔÌÚÑÊÛÎÈÚËÆâÐÌÚÇÃåÐÍâÊÈæÌËïÕÔäÈÇèÌÉøÛÓ÷ÛÐõÙÎïÓÈåÈÀÙ¼´Î±­Çª¦¬ŽŒ›}{†hhqSS`BD_ACuV[qs§‹ˆ³—“Ç«§Ú¾ºéÍÉõÙÕýáÝÿæâùÝÙûßÛýáÝýáÝüàÜüàÜþâÞþåáòßÛñßÝñßÝñßÝñßÝñßÝñßÝñßÝõãáöäâøæäùçåùçåøæäöäâóäáòâãóååïááìÞÞðââðââîààóååöèèòääñããôææòääîààíßßðââñáâïÜÞñÞàòßáîÛÝîÛÝñÞàíÚÜóàâñÞàðÝßñÞàòßáñÞàíÚÜêØØáÍÎÞÊÉÜÈÇÜÈÇÞÊÉÞÊÉÜÈÇÚÆÅåÑÐåÑÐåÑÐåÑÐåÑÐåÑÐåÑÐäÒÐçØÕæØÕçÙÖçÙÖçÙÖçÙÖæØÕæØÕàÒÏàÒÏßÑÎßÑÎÞÐÍÝÏÌÝÏÌÛÐÌÚÎÎÖÌËÚÐÏâØ×ãÙØßÕÔÞÔÓàÖÕäÚÙá×ÖÞÔÓÝÓÒÞÔÓÝÓÒÛÑÐØÎÍÒÈÉÐÆÇÍÂÆÉ¿ÀĹ½¿µ¶¼±µº°±³¨¬±§¨¯¤¨­£¤¨¡Ÿ•–”‰‹‚…mhl`_dTRWHGLCAF=87<97<:9>>Oa>M`=N`?Na@ObCPcCNbBMaAL`BMaCNbEPdGRf@M=?L?AN9;H.0=&(5')6-/<79FIKXcersu‚prgivTVbEGS02> ". "/.0=ACROQ`xy³´ÈÆÇ܍Ž£bbzss‹‹‹£ŒŒ¤ƒƒ’’ª±±É¨©½]_n'#03<14=>AJacp€‚‘Œ¡˜™®¬¬Æ¸¹ÎÞßñÐÒߍœ')6%'4FHU]_lqs€OQ^24A46CQS`hjwXZg25F:BWfp‰Ž˜±¹ÃÜÄÎ熐©0:S;E^ÃÍæÌÖ´ˆ’«š³Œ–¯bl…57=A\NRm`djn‰koŠ|€›… ‰¨£§Â½Áܤ¨Ãuy”QUp'+F *hl‡ÖÚõÒÖñ‘¬JNisw’ìðÿæêÿ„ˆ£‹ª“—²ƒž… w{–QUp]aztyUZnQVj²·ËÙÞòŸ¤¸‰Ž¢~ƒ—NSgmr†—œ°’—«‚‡›…ŠžŒ‘¥sx‹[]lfhumo|dfsXZg\^kacp]_lNP]JLY;=JLN[uw„qs€@BO)$&313@9;H;=JACPDFSDFSFHUGIVKMZ68E"$1PR_™›¨ƒ…’'+7/2CagwbhxRXhagw–¦ÅËÛÑ×çéïÿ…‹›#)9#)9Z`pjp€V\lGMYPSZMQTIMPDHK@DG>BE?CFBFI=ADAEH@DG?CF@DG?CF<@C<@C]addhk]adOSVIMPEILCGJEILIMP;?BAEH]adimpW[^AEH9=>779000((("""$$$%%%'''***///666;;;???FFFGGGHHHIIIJJJKKKLLLLLL???<<<666000,,,***))))))((((((((((((((((((((((((((())))))***+++,,,,,,--/20;97DSQ\MLTõôüúùÿûúÿñðõññóññóñññññïññïññïñòíóôï÷öñþûôêáܜˆ°›˜Øº¸à¾½Ü¶µß·µá¸¶ãº¶â»´â»´á¼´áº³È›˜Ë›™ÌœšÊšÉœ™Ãš–¾—’»–Â¡šÓµ­º•²šÌ´ª×Á¶Ó½²Â®¥À®¬Á±±ÅµµÊººÐÀÀÕÅÅÙÉÉÜÌÌâÒÒäÔÔæÖÖæÖÖâÒÒÜÌÌÕÅÅÑÁÁ˼¹Ì½ºÐÁ¾ÖÇÄÝÎËâÓÐâÓÐàÑÎñâßîßÜìÝÚìÝÚíÞÛîßÜëÜÙéÚ×þïìüíêýîëÿñîÿðíúëè÷èåùêçýîëúëèõæãïàÝêÛØçØÕåÖÓäÖÓËÁ¿ÉÁ¾ÈÀ½Æ¾»Ã»¸Á¹¶¾¶³½µ²Á¹¶¿·´¿·´Á¹¶Å½ºÇ¿¼Ç¿¼Ã¾ºÓÔÌÓÖËÔÖËÔÔÊÓÓÉÒÏÆÒËÃÑÈÁäÙÓëÞØñßÛßÌÈÜÇÄéÔÑèÐÎèÏËëÎÆîÒÇñÕÊïÓÈçÊÂÚ½µÌ¯«Ã¦¢¥‡…™{y†hhpRR^@B^@BuV[qsªŽ‹¸œ˜Í±­àÄÀïÓÏùÝÙÿãßÿçãøÜØùÝÙûßÛüàÜýáÝþâÞÿãßþåáøåá÷åã÷åã÷åã÷åã÷åã÷åã÷åãóáßôâàöäâ÷åã÷åãöäâôâàñâßöæç÷ééóååðââôææôææóååøêêñããíßßíßßïááïááëÝÝêÜÜíßßñããîààñããóååïááñããõççñããìÞÞíßßîààîààìÞÞçÙÙãÕÕßÑÐÚÊÊØÉÆÖÇÄ×ÈÅÙÊÇÚËÈØÉÆÖÇÄàÑÎàÑÎàÑÎàÑÎàÑÎàÑÎàÑÎàÑÎãÕÒäÖÓæØÕçÙÖçÙÖæØÕäÖÓãÕÒÙËÈÙËÈØÊÇØÊÇØÊÇØÊÇØÊÇÖËÇØÌÌ×ÍÌÞÔÓåÛÚäÚÙâØ×á×ÖÝÓÒá×ÖÞÔÓÜÒÑÛÑÐÜÒÑÛÑÐØÎÍÕËÌÖËÏÔÉÍÑÆÊÍÂÆɾÂź¾Â·»Á¶º¼±µº¯³¶«¯²§«¬¡¥¢—›—ŒŒ†ŠsqvihmZY^MLQDCH>=B98=65::9><;@>=BA@EGFKQPU]\aedi–––’’’………vvveeeXXXAAA===888333111333666999IGHQMNZVWc_`hdeiefgcdfbciefgcdd`a_[\ZVWUQRRNOQKKSIJSIH[QR[UUd_chhjejns|•¤©Ÿ²¸–¯¶”±·”µ¾Œ±¹‹°¹„ª·—¹Ò|žºGi…"D`,KhBa~Ni‡Pk‰Mf…KdƒJaF]}BVw:No7Jk7HfCSj>M`7FY6EX:I\@ObDSfFUhBQd@Ob;J]8GZ6EX6EX7FY;H[?J^>I]@MOQ^xz‡bdqLN[46C=?Ljlyy{ˆNP]#%2$&3;=JEGTACPCERDFSBDQDFS9;H9;H*,9+EGT‘žƒ(,8UXi‹‘¡‡tzŠrxˆˆŽžÆÌÜìòÿäêúciy(+1AW]m]csNTdFLXHKRNRURVYPTWJNQFJMDHKDHKAEHAEH=AD=AD@DGAEHCGJHLO_cf`dgZ^aSWZJNQ8C9:?<=B=>C?@EABGEFKNOTZ[`bcg|}ŠŒ‹™›šœž”–•…‡†sutfhgKMLEGF>@?798354465798:::FDEMIJUQR\XYa]^b^_a]^`\]b^_`\]^Z[ZVWWSTSOPQMNPJJVLMWML`VW`ZZidhllnhmqv„—¦« ³¹–¯¶”±·”µ¾‹°¸Š¯¸ƒ©¶²Ë£¿`‚ž@b~5Tq6Ur?ZxHcIbIbH_D[{BVw=Qr8Kl6Ge>Mb"ACP€‚su‚RTa68E8:Gacp{}Š\^k68EDFScerhjwUWdNP]LN[EGTCERDFS>@M13@ "/9;H{}Švx…'+7FIZ•¥“™©~„”iokq³¹Éñ÷ÿæìüQWg%5;KPVfRXhMScKQ]DGNPTWZ^aX\_QUXKORHLOFJM@DG=AD@DGGKNLPSPTWVZ][_bVZ]UY\PTWNRUFJM047!%(%),158+/2158BFIKORCGJ:>A8<=**,%%% !!!!!! ...000333777<<>><<<;;;+++***)))''''''&&&''''''((((((((((((((((((((((((((())))))***+++,,,,,,--/20;97DSQ\MLTõôüúùÿûúÿñðõññóññóñññññïññïññïñòíòóîûúõÿÿøâÙԂsnŠur²”’¿œ¼–•¾–”À—•À—“¼•Ž·‰±Œ„°‡«{y®{z®|{¯}°€~­~ª}¨ƒ}¹˜‘°“‹R7.?)Á« ÿøíõã×àÒÉÝÓÒÚÔØÜÖÚÞØÜàÚÞâÜàãÝáäÞâ«¥©ª¤¨¨¢¦¤ž¢ šž›•™—‘••‘–Ž‹–‰—Šœ•¡š”£œ–¡š”Ÿ˜’ˆ{†y„}w„}w…~x…~xƒ|vzt†€‰‚|‰‚|‹„~‰‚|‚{uxr€ys‰ƒ’‹…”‡”‡‘Š„Œ…‡€z€}x„ˆ‡‚‹Š†ŒŒ‡Ž””‘š™˜žž˜¡ ØÞÞÕÞÝÙßßÜåäåëëéòñìòòêóðïüòîþñòÿóóÿôõÿôöþóõûñ÷øðùöïÿúô÷îéïäàĶ³‹|y‰wuzw‰lfŒndqg‘siqiŠld„eb€a^”usŽom_`mMN`@CdDGxX]‹kn”vt}ªŽŠ±•‘®’Ž¦Š†ž‚~˜|x¢†‚¢†‚£‡ƒ¦Š†«‹¯“°”­”¼©¥»©§»©§»©§»©§»©§»©§»©§ÚÈÆÜÊÈÝËÉÞÌÊÞÌÊÝËÉÜÊÈØÉÆâÒÓäÖÖßÑÑÜÎÎáÓÓàÒÒßÑÑäÖÖßÑÑÜÎÎÝÏÏâÔÔãÕÕàÒÒáÓÓã××ìâáèàÞíãâïçåîäãðèæõëêñéçâØ×êâàòèçïçåçÝÜß×ÕàÖÕâÚ×ÖÎËÔÍÇÓÌÆÕÎÈØÑËÙÒÌØÑËÖÏÉÛÔÎÛÔÎÛÔÎÛÔÎÛÔÎÛÔÎÛÔÎÜÓÎÛÐÌáÓÐçÙÖëÝÚëÝÚçÙÖáÓÐÝÏÌÕÇÄÕÇÄÕÇÄÖÈÅ×ÉÆ×ÉÆØÊÇÖËÇÓÇÇÛÑÐÖÌË·­¬­£¢ÓÉÈóéèëáàÝÓÒÚÐÏØÎÍ×ÍÌØÎÍ×ÍÌÔÊÉÑÇÈÎÅÈÎÅÊÍÄÉÌÃÈËÂÇÊÁÆÊÁÆÉÀÅÍÄÉËÂÇÉÀÅÈ¿ÄǾÃÄ»À¾µº·±µ–•›Š‹xy~ghmZ[`OPUHINCDI>?D?@E@AFABGEFKMNSXY^`aexy{…‡†—™˜£¥¤£¥¤–˜—ƒ…„tvuWYXPRQGIH>@?8:98:9;=<>>>CABIEFOKLVRSZVW\XY[WXZVWYUVXTUWSTUQRTPQRNOQMNQKKZPQ[QPdZ[c]]kfjllnglpt}‚˜§¬¡´º—°·”±·”µ¾‹°¸‰®·‚¨µŠ¬Å¡½q“¯_@_|"A^'B`>YwC\{E^}E\|BYyCWxAUv;No6Ge9H]8EV4AR1>O2?P4AR7DU9FW4AR0=N+8I&3D%2C'4E+8I-:K;CV9AT7?R5=P5=P5=P7?R7?R9AT8@S7?R9AT?GZGObOWjU]p`boPR_ACP;=J8:G/1>&(5!#0!#0 "/')6.0=:ACPTVcuw„ˆŠ—y{ˆ[]jMO\9;H')6(+047(,/#'(! %%%)))******666777:::===@@@CCCEEEGGGHHHFFFCCC>>>:::555222000))))))))))))(((&&&$$$###((((((((((((((((((((((((((())))))***+++,,,,,,--/20;97DSQ\MLTõôüúùÿûúÿñðõññóññóñññññïññïññïñòíèéäóòíþûôèßڔ…€¦‘ŽÓµ³á¿¾å¿¾æ¾¼å¼ºâ¹µÚ³¬Ñª£È£›Åœ–Ä’‘Å’‘Å“’Å•“Ș–Èœ™ÈŸ›È£éÈÁ¼Ÿ—F+"%£‚æÒǸ¦šž‘‰Š‚‰„ŠŒ‡‘Œ’–‘—›–œž™Ÿ ›¡©¤ª±¬²¿ºÀÍÈÎÚÕÛâÝãåàæçâæúõòùôîúõïü÷ñÿúôÿûõýøòúõïÿüöÿúôýøòýøòþùóþùóü÷ñúõïúõïøóíúõïÿúôÿúôûöðúõïü÷ñøóíùôîûöðü÷ñûöðùôîöñëðñìÃÌ˸ÆƯ»»Ÿ­­“ŸŸ…““‹‹y‡‡t€€n||myyiwwkwwguueqq`olgxnh|pmsqƒww„zy…{}„|~ƒ|yztŠ²­©ÍÅÂÏÄÂ˽¼ÛÍÌóàÜãÆÀåÄ»âÁ¸Ú¹°Ï®§Â¡šµ“‘®ŒŠ–tsŽlk}[\kIJc@DlIM^d‘qt ‚€¬Œ¾¢žÌ°¬Ñµ±Í±­È¬¨Ä¨¤¼ œ·›—±•‘­‘«‹§‹‡¡…›‚~˜…—…ƒ—…ƒ—…ƒ—…ƒ—…ƒ—…ƒ—…ƒ{yŽ|z}{‘}‘}}{Ž|z‹|y’‚ƒ“……Œ~~‚‚‚‚Ž€€“……†xxƒuuƒuu‡yy‡yy„vv„vv†zzwomqlivnlupmskirmjwomqliia_hc`kcae`]bZX]XUaYWb]Y`[W^YS]XR_ZTb]Wd_Yc^Xa\Vd_Yd_Yd_Yd_Yd_Yd_Yd_Yf_Yg\Xl^[oa^rdardaoa^l^[i[X~pm~pmqn€rosp‚tq‚tqvr™¨ž™Žg]\f\[¹¯®ÿ÷öÿûúÿ÷öþôóüòñûñðüòñûñðøîíõëìêáäèâæéãçêäèëåéëåéìæêìæêùó÷ôîòíçëçáåàÚÞØÒÖÏÉÍÇÂƤ£©—˜„…ŠrsxcdiWX]NOTIJO?@E@AFABGBCHEFKLMRWX]^_cstv€“•”¦¨§®°¯¤¦¥’‘€‚acbZ\[OQPDFE>@?=?>?A@BBB@>?FBCKGHQMNUQRWSTWSTVRSRNORNORNORNORNORNORNOSMM]ST^TSf\]e__jeijjlbgknw|˜§¬¢µ»˜±¸”±·”µ¾Š¯·‰®·§´†¨Á€¢¾Ž°Ì”¶Òf…¢"A^2P4Om>WvAZyBYyAXxDXyDXy?Rs7Hf5DY5BR1>N.;K,9I-:J/N+8H'4D"/?+;*: -=%2B)6F:CT8AR6?P4=N3O2;L39;HWYfvx…€‚rt€`bnCEQ')5(!.24CBDSstˆÄÅÙÓÔ雜±aayTTlmm…vvŽll„‘“ªÌÍâéìÿ´µÇADS 79Fjnz¨ª¹´·ÈŠ‹Ÿfh}ŠŠ¢ÌÍâÃÅԅ‡“KMY')5!#/13@@BOSUbvx…•—¤ˆŠ—cetLN]02A /,/@dlƒ•Ÿ¸·ÁÜáëÿÛåÿ—°.8S!:„Ž©ÏÙò¯¹Ôt~—„Ž© ªÃak†"<6+/HW[tx|••™²¡ºŒ©‘•®°´Íª®ÇŒ©swy}–]az#< )\`{Ÿ£¾šž¹osŽŽ’­âæÿìðÿ¡¥À‚†¡}œjn‰mqŒ~‚‚†¡Œ«˜œµej~QViŠ£ÖÛîËÐ䟤·x}‘AFY`eyˆ ¹¾Ò“˜«ƒˆœŒ‘¤’—«OUe(*9Y[goq~\^jGIV@BNIKX\^jqs€Z\hTVcNP\[]jpr~fhu[]jsu‚›ª”–£egtPR_OQ^GIV?AN8:G68E.0=" -oq~‘žY[jY\m•›«Ÿ¢³¥«»ˆ‹œTZj–™ªóùÿÅÈ×&,: AGUSVeSYgWZiOS^FINUY\_`dUY\KLPDHKEFJBFIIJNCGJ]^brvynoshloijn[_bXY]Z^aRSWCGJCDH;?B./3"&)'(,37:<=A158*+/%),#$(%%%---222444333:::;;;>>>@@@BBBDDDEEEFFFFFFCCC???:::444///+++)))******++++++)))&&&""" ((((((((((((((((((((((((((())))))***+++,,,,,,-,120;97DSQ^LLVôôþùùÿúúÿðñöðñöðñõîòõîòóîòóîòóîòñèèæïîêúöóçÝۚ‹ˆ°›–Û½»æÄÂÛµ²Ý¶±ß¶²Þµ¯Ø±ªÑª£É¤œÆŸ˜Çš•È˜”É™•È›–Ëž›Ï£ Ò©¥Ó®¨çÄÀª‹†A&1º¦Ÿÿúóÿîæùîèöòóóò÷ôóøôóøõôùõôùöõúöõúûúÿûúÿúùþùøý÷öû÷öûöõúööø÷öôöõðõôð÷öñø÷óø÷òôóïðïêöõñôóîòñíòñìóòîóòíñðìïîéóðëñîéòïêöóîõòíñîéïìçñîé÷ôï÷ôïøõðùöñùöñú÷òú÷ò÷øóøÿÿôÿÿòüþïúüïùûïúüñûýòýÿ÷ÿÿôÿÿòüþñüþôþÿóþÿñûýîúúíþøìÿ÷íÿøðÿùñÿùñþ÷ñüôòùòßáÜëìæøõðÞÖÓÏÄÀÞÐÍãÔÑðÛÖðÓËôÔÉôÒÉíÌÃ࿶ͬ¥¼›–±™wuŒmkyZXfFGaABnNQ†fi–xx²–“©¤ÝÄ¿õÜØÿìèÿóïÿôðÿôðÿôïÿñìÿïìÿïìÿóïÿôðÿñíÿîêÿöóÿöóÿöóÿöóÿöóÿöóÿöóÿöóÿóðÿôñÿöóÿ÷ôÿ÷ôÿöóÿôñÿóðÿôñÿ÷ñÿòïýðêÿóðÿôîÿñîÿ÷ñýïìúíçùëèûîèúìéöéãöèå÷ìæóîèîëâïìåïìãéæßèåÜêçàåâÙÜÙÒÔÑÈÉÆ¿¿¼³¹¶¯·´«µ²«µ²«·²¬µ°ªµ°ª·²¬ºµ¯¾·±½¶°¼µ­´­¥´­¥´­¥µ¬¥µ¬¥µ¬¥µ¬¥¶«¥º«¦½«§¾¬¨¿­©¿­©¾¬¨½«§¼ª¦»©¥»©¥¼ª¦½«§¾¬¨¿­©À®ª¿°«Æ¶¶ÎÀÀ§™™QEE@65•“ðëèõñîØÔÓÔÓÑÑÐÎÐÏÍÑÐÎÐÏÍÍÌÊËÉʶ´¹¶µº¸µ¼¹¸½¼¹À½¼Á¿¼Ã¿¾Ã¿¼Ã½¼Á½ºÁ½¼ÁÀ½Ä¾½Â¼¹À¸·½§ª±™ž¤†‹‘rw}bgmV[aLQWGLR=BH>CI>CI?DJBGMINTSX^[`fmrvw|Œ‘”¥ª­²·ºª¯²”™œƒˆ‹ejm]beQVYEJM>CF=BE?DGAFI;?@@ACEFHLLNOOQQQQRPQRPQMIJNJKOIKPJJRLLULMVMNWMNbTScUTh][g_]jddigj`dgjtvš§­¢µ»˜±¶”±¹”µ¾Š¯·‡­¶§´¤¸ˆªÃµ×ðØøÿŸ¿Ø:Xr0K-G`".:)5%1&2*6$0<(4@9CO8BN6>K3=I3;H2J-5B/9E5=J;EQCKXIS_PXeR\hoq~dfsWYfMO\@BO35B,.;+-:.0=.0=.0=24AEGTcerŽœy{‡`bn?AM')5* -13BFHW‚ƒ—ÝÞòøùÿ¬­Âff~bbz{{“ŠŠ¢}–{€”Ÿ¡¶ßäøßâõjo‚ /2EtyŒ´·ÊÅÊÝ¡£¸~ƒ—ž µ¿ÂÕ¦¨´uxMPY%(103[#>–³Üæÿª³Ðpz•‚‹¨ ªÅbkˆ$@5/4JPUkqvŒ™ž´‰Ž¤Œ‘§¶»Ñæëÿ«°Æfk]bxrwW\r,1G$)?uy’´¸ÓÂÆá ¤¿§«Æäèÿéíÿ ¤¿|€›ƒ‡¢rv‘bfgk†€„Ÿ¯³Î’–¯KPdIO_”™¬çíýÝâõ—­SXk &6bgz§­½¨­À“™©Œ‘¤©¯¿šŸ²W]k13@Z]fpr~UXa35A25>GIUVYbY[gY\efhtor{ceq[^gbdpjlxY[hcer`boMO\@BOACP@BO:?CIHMrsw€„‚†gfkLMQ\[`YZ^WV[RSWLKPCDHBAFBCGBAF?@D327./3)(-#$(#"" !"""'''---444:::???BBBGGGGGGFFFFFFEEEEEEEEEDDD++++++***)))(((&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&''''''((((((...///00022244466677787<==GA@NON\*BDPØÚæ÷ûÿó÷ÿàçñàçñàçïßèïßèïßèïÞéïÞçìäåêîìñùõöíã䫜™ª•Ô·±Ù¸±ã¾¶â¼³Þ¶®×¯§Ðª¡É¢›Ãž–Áœ”¾˜¿™ŽÁ™‘Û“ÈŸ™Î¥¡Ô«§Ö®¬üÖÕçÅÄR445áÍÎÿõõÿõõñéçýûüêëííîðïðòôõ÷÷øúîïñö÷ùñòôóôöóôöïðòìíïíîðòóõõöøêëíêìëëìîìîííîðîðïîïñïñðíîðîðïîïñïñððñóñóòòóõóóóïîìôðïöòñõñðòîíñíìóïîöòñóïîóïîóïîóïîóïîóïîóïîñïðòòôñòöòñöñòöòñöñòöòñöñòöïîóîïóïîóîïóïîóîïóïîóìïôèñöèöùëùüêøùèö÷ëùùðüúðùöøýùÿÿûýúõÜÓ㤟ìÙÕëÖÑíÑÍñÐÇñÏÃñÌÃëÉ¿ãÁ·Ò±¨ÀŸ–²”Œ |rnvYUaCA[?HR@JTCMWIS]V`j`mvq~†}Œ“’¡¨£²¹¥´»–¥¬~”l{‚UdkL[bET[CRYBQX?NU>MT@OT?MN=KK@LLBLMBJLFLLHLMIIIRPQVPPYPQ\RQ^RRbTTdTUgUUmZVkXRn_Zl^[ka_d^^XXXafi§µ¸ÆÙÝ ¹¾œ¹Á–·À•ºÃ‰¯ºˆ®¹‚¦´ƒ¤µ¾ßðáÿÿÔñÿ?Zk.?2B1GU7JY>P^EUdKXhN\iP\lR\h;DK8AF4=B.7<(16"+0',%*',$) %## %$)',)27,5:07=09>.5;+49,39,5:(/5)27/6<9BGFMSOX]V]cV_doq~dfsXZgMO\@BO35B,.;,.;/1>02?.0=24AEGTcer~€ŒŽ›uwƒ^`l@BN)+7!."$146EEGV}~’ØÙíõöÿ«¬Áee}bbz}}•‹¤‚„™y~’‹¤ÊÏãØÝñpu‰ +#-2F~ƒ—ÂÇÛÏÔ裨¼‚‡›ž£·¿ÅÕ¢¥®x{€RU\#&-+.7MPY^`lVXd]_l{}Š€’`asMNb'&acx²¹Õ¨±Î²»ØäíÿðùÿŽ—´.7T/8Uš£ÀÄÍꡪÇxž|…¢‘š·`i†)0L$:16JOThmr†Œ‘¥~ƒ—–›¯ÐÕéêïÿª¯Ã`eybg{~ƒ—QVj$)=:?U}š´¸Ó¶ºÕ—›¶¦ªÅÜàûÞâý¢¦Áqu€„ŸquW[vZ^y{š­±Ì’–¯W\oMSc•¥åëûÜâò•¥CIY*`fvª°Àª°À•¥Š °¶Æ¤ªº[ao02>Y\empyQT]/2;.1:BENQT]VYbSV__bkor{mpybenbenhktLN[QS`MO\ACP<>K@BO<>K35B24A13@8:G$&3!EGT|~‹tv…{|ŽŽ£“”¨­®ÂÒÓ埡°~€„†“ceq#%1&LOXdgnX[bRUZTW\ediedidch`_d`_dgfkjindchmlqtsxihmonscbgNMR]\a`_dhglVUZDCH<;@;:?;:?A@EIHM327.-2'&+ $ ! $##%&&((((,,,222888===AAACCCJJJIIIGGGEEEBBB???===<<<******)))((('''&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$%%%&&&((()))******00000022233355577788898=<LW=KV?MXBP[GU`Sal`nyv‡‘ƒ•Ÿ˜ª´©»Å«½Çœ®¸„– r„ŽPblGYc@R\>PZ=OY:LV9KU;NU>RS=QPAQQDTTJVVOYZSYYUWV][\`ZZe[Zg[[l\\m]]q]^r^]}f`ye\}jdyjeynjpkhba_hnn§²´ÅØÜ¡¸¾›¸À•¶¿”¹Â‡­¸ˆ®¹Œ°¼€¢®ªÊ×âÿÿßûÿ?[g* 6A5IT9KU@NWDR[LV_OYbS\eT]d?GJDTyÙßïßåõ•¥AGW#3ciy¯µÅ«±Á‰Ÿ†Œœµ»Ëª°À]cq35AY\eknwOR[.1:,/8>AJKNWSV_MPYTW`lox{~‡ps|bendgpIKXHJWBDQ<>K>@MBDQ<>K02?/1>.0=79F13@&(5CERkmzsu„‚”Š‹Ÿ˜™­¼½Ñßàò·¹È…‡–egt]_k35A-09LOXY\cSV]PSXNQVbafqpudchLKPbaf‘•—–›{zonsVUZ98=JINSRWJINZY^cbg{z`_dIHMCBG@?D:9><;@EDI105+*/#"'!#&%*++-224333666999===AAADDDEEEKKKIIIFFFAAA<<<777333111))))))(((((('''&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%###$$$%%%''')))+++------222333444555777888999:9><9=I·»Ç÷ýÿðöÿÒÚåÓÛæÓÝçÔÞèÓàéÕâëÕãìØâëâåîòïöÿüÿúðñ¸¨¨¶¡œáļêÊ¿ôÏÆñËÀê¸ฮԮ¥É£šÀ›•¼—²„´“„»•ŠÁ›Ê¡›Ñ¨¢Ø¯­Û³³êÂÃÿå磄‰B),³ž£ÿñôøìðóíïòòòîòñòöõêîíèìëìðïéíììðïîòñîòñîòñíñðëïîêîííñððôóñõøñõøðô÷ïóöîòõíñôìðóëïòôøûó÷úòöùñõøðô÷ïóöîòõíñòðñóóóóôôôóóóòòòñññòòòôôôóóóóóóóóóóóóóóóóóóóóóóóóöõúöõúöõúöõúöõúöõúöõúöõúëêïìëðíìñïîóñðõóò÷ôóøòõúíöÿñûÿíúÿäñ÷àíóãñòë÷÷ñüøòøö÷ùô÷òîÍĽ©—“ÝÈÃëÒÍæÉÃòÐÆóÏÃòÎÂïË¿åùֶ«Å¤›·™™|v‰lfpTP^B>ZA=jQMƒkg–~z¬—’Å°«ØÅÁâÐÌåÓÑîàÝöèçéßÝêâàåáÞâÞßÛÛÛ××ÙÔÕ×ÑÕÖÒÔÓÂþÄþÅÄ¿ÆÅÀÈÇÂÉÈÃËÊÅËÊÅÁÀ»ÁÀ»ÂÁ¼ÄþÅÄ¿ÇÆÁÈÇÂÈÈÀëìäêíâëîåìïäíðçïòçïòéðóèýÿ÷íðåèëâô÷ìøûòïòççêáéìáÇÊÁÄǼÃƽÅȽÄǾÀø¿Â¹Âź¼¿¶µ¸­«®¥¦©ž¨«¢®±¦µ¸¯»»³ÉÁ¾ÏÄÂÔÉÇØÍÉÜÎËÛÎÈÚËÆÚÉÂÑÀ¹×ĽØžӿ¶×úØ·Ծ³äÌÂÚ¿¶ÛÀ·ÜÁ¸ÜÁ¸ÛÀ·Ú¿¶Ø½´×¼³Ú¿¶ÛÀ·ÞúâǾâǾàżãÈ¿èÍÆïÑÓÿöúòÙÜ[II7++¥¡žüÿýöÿûèøõäùôæúøäú÷ÝöóÛôñÞôòÜñòÞñ÷Þï÷Þï÷ÜíõÛìôÚëóÚëóÙêòÕæîÔåíÕæîÖçï×èðÔåíÎßçÉÚ⬺Þ«´‹˜¡x…ŽdqzQ^gGT]FS\ER[ANW@MVCPYER[JW`Ubk`nwyŠ’†™ ›®µ«¾Å®Áȟ²¹†™ t‡ŽM`gEX_=PWLUAOXHR[LV_QZcS\cCKNAIK@/79)13$,."*,"*, (*%'#%#%%' (*"*,5=?8@B;CE@@HJKSUU]_Yac[ceqs€givZ\iMO\>@M13@.0=13@68E57D13@24ACERbdq}ŒŒŽ›rt€[]i<>J')5%'413@BDSNP_noƒÃÄØëìÿ³´Éoo‡gg‚‚š”–­˜š¯z“_dxŽ“§ÁÆÚy~’*%*>”™­Þã÷ÅÊޔ™­“˜¬ª¯Ã¯µÅ“œz}‚Z]d&"+gjsŠŒ˜VXd24ARTanoabtDEY/†ˆãêÿÙâÿÎ×ô·Àݚ£Àw€qz—œ¥Â”º]fƒqz—™¶ˆ¥vœir[b~28N@EY_dxx}‘y~’hm¤©½îóÿïôÿ”™­ej~œ¡µ¦«¿8=Q NSiz~—­±Ì¸¼×¡¼•™´´¸ÓÂÆá¡¥Àvz•…‰¤pt6:U:>Ypt—›¶y}–W\o03<>AJFIRTW`MPYILUcfo…ˆ‘~Šdgp]`iQS`MO\HJWDFSEGTEGT@BO9;H68E.0=13@79F;=JHJW_annp€“…†š¢£·ÔÕéíîÿÈÊوŠ™VXeY[gIKWGJSKNWEHOCFMLOTQTYXW\zy~a`eEDIsrwœ¡Ž“zy~mlqPOT65:JIN\[`\[`lkpwv{‰ˆqpu[Z_SRWLKP>=B3270/4)(-%$)! %"! %'&+/.3446>>@>>>???@@@BBBCCCDDDEEEFFFDDD@@@;;;666000---***''''''''''''&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%###$$$&&&(((+++...000111444555555666777888999:9>::DBAOIKX<>K7;G¢¦²ñ÷ÿéïûÈÐÛÉÑÜÉÓÝÌÖàÌÙâÏÜåÐÞçÔÞçÝàéñîõÿüÿìâ㓃ƒ}hc¥ˆ€´”‰Ç¢™ÅŸ”À˜Ž¹‘‡°Š©ƒz£~x {s“qe”sd™shœvk¡xr¤{u§~|¨€€´ŒÎª¬yZ_?&)¶¡¦ÿùüýñõÿùûìììéíììðïëïîïóòõùøó÷öïóòïóòíñðíñðïóòîòñìðïíñððôóó÷úó÷úó÷úòöùñõøñõøðô÷ðô÷ïóöïóöïóöîòõîòõîòõíñôíñòéíîêîíêîíêîíéíìéíìêîíêîíêîíêîíêîíêîíêîíêîíêîíêîííñôíñôíñôíñôíñôíñôíñôíñôîòõîòõîòõïóöïóöðô÷ðô÷ðõùåî÷éóýæóûäñ÷æóùåóôæòòéôðîôò÷ùôÿû÷ÐÇÀ±Ÿ›áÌÇýäßÿâÜÿëáÿéÝÿäØÿÜÐñÏÅݽ²È§ž¸špjb\lPL^B>]D@lSO€hdws·¢Ò½¸ÙÆÂÁ¯«³¡ŸßÑÎüîíøîìòêèðìéòîïñññòòôñòôîòóïñðúûöûúõûúöúùôúùõùøóùøôùøóø÷óø÷òùøôùøóúùõûúõûúöùûöñú÷ðû÷ñüøòýùòýùóþúóþúóþúëöòäïëâíéêõñòýùóþúðû÷ðùöõùøòöõõ÷öøüûüþýøüûûýüüÿÿüþýñõôçéèÛßÞÚÜÛÜàßåçæëëëàÚÚâÚØãÙØá×ÕßÔÒÚÏËØÊÇÖÉÃÝÎÉÙÊÃÚÉÂåÔÌèÕÎ̺°Ã¯¦åÏÄÖ¾´Ø½´Ø½´Ø½´Ø½´Ø½´×¼³×¼³Ø½´ÛÀ·àżãÈ¿äÉÀäÉÀæËÂéÎÇäÆÈÿèìûâån\\8,,‹‡„êïëôÿùäôñàõðàôòÞôñÛôñÚóðÜòðÛðñÕêïÖêñ×ëòÙíôÚîõÜð÷ÝñøÝñøÕéðÔèïÓçîÓçîÒæíÍáèÆÚáÁÔÛ¬ºÃŸ¬µŒ™¢y†dqzQ^gHU^GT]ER[BOXANWDQZFS\JW`Taj]ktrƒ‹~‘˜’¥¬¢µ¼¥¸¿–©°’™nˆL_fCV]=PW.68)13&.0&.0%-/#+-!)+!)+#+-%-/&.0:BD>FHAIKAIK?GI=EG=EG>FH9AC9AC@M13@/1>35B:K68E46C:EFINNQV[Z_kjodchgfk€„yx}fejrqvpotbafSRWZY^`_da`eqpu|{€Ž“|{€bafNMRCBG87<+*/ $#"'"!&#"'%$)+*/21698=>>@GGIGGGFFFDDDCCCBBBAAA@@@;;;:::777444000,,,***(((%%%%%%%%%%%%&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%$$$%%%'''***---///11122255566666677777788888887<99C>=KFHUGIV;?K‘•¡âèôÚàì¼ÄϽÅпÉÓÃÍ×ÅÒÛÉÖßÊØáÏÙâÚÝæíêñþùÿëá␀€wb]œw«‹€µ‡³‚®†|§užxo—qhkeh`‡eYˆgXŽh]’la–mg™pj›rp›ssƞŸÈ¤¦V7<.ª•šÿúýÿ÷ûþøúðððòöõøüûûÿþôø÷êîíéíììðïôø÷ïóòïóòôø÷õùøñõôðôóó÷öòöùòöùó÷úó÷úôøûõùüõùüõùüùýÿùýÿøüÿ÷ûþöúýõùüõùüôøùöüüõûùõûùõûùöüúöüúõûùõûùõûùõûùõûùõûùõûùõûùõûùõûùôùüôùüôùüôùüôùüôùüôùüôùüò÷úóøûôùüõúýöûþøýÿùþÿ÷ÿÿøÿÿòüÿçôüìùÿõÿÿõÿÿìøøì÷óôúøùûööñí§ž—{ie‘|w§Ž‰©Œ†²†´„´„³ƒªˆ~œ|qŒkbaW~a[tWQgKG`D@bIEpWSgcŠrn”z¦‘Œ—„€cQMaOMĶ³úìëÿöôÿøöüøõû÷øøøøùùûúûýûÿÿþÿÿùù÷ö÷òòòðìíèååãßàÛÛÛÙØÙԝ›™š•““‘‹Œ‡‚‚€z{vssqmqpt‚ƒqƒ‡p‚†p‚†o…n€„n€„n€„n€„k}k}o…vˆŒ{‘{‘|‰gnvhluloxrvwzƒw{„{~‡~‚‹¹¼Å¶ºÃ¶¹Â¸¼ÅÂÅÎÑÕÞâåîïðõøöùúôôûòóúòðüòñþôòÿ÷õÿøôÿõòóæàöçàÿüóÿôì± ˜‰vo¨”‹©‘‡ª†ª†ª†ª†«‡«‡¬‘ˆ¹ž•¾£šÄ© Æ«¢Ç¬£È­¤É®¥Ê¯¨Æ¨ªâÅÉãÊÍdRR2&&…~ñöò÷ÿüâòïÙîé×ëéÖìéÓìéØñîàöôßôõ×ïó×îô×îô×îôØïõØïõØïõØïõÑèîÐçíÏæìÐçíÏæìËâèÄÛáÁÕܬ»Â¡«´— yƒŒdnwPZcFPYEOXEOXBLUBLUEOXFPYIS\R\eZgom|ƒwˆˆ™ –§®˜©°Œ¤wˆhy€L]dCT[=NU=NU=NU;LS;LS=OS?STCWVIYYUeenzzt~msslnmqoptnnxnm{oo€ppqq…qr†rq‹tn‰ul‹xr„up„yuxspZYWMSSš¥§ÅØÜ¡¸¾˜µ½’³¼²»‚¨³¶ÁÐôÿÛýÿzš§>^kUq}Tp|6NZCYd;OZ;MW=KT=KTBLUFPYKT]MV]HPSFNPBJL=EG7?A2:<.68,46,46+35*24)13)13*24+35,46=EG@HJDLNDLNAIK?GI?GI@HJAIK?GI?GIBJLFNPIQSIQSHPRrtjly]_lNP]=?L02?02?68E>@M;=J46C35BBDQ`bo|~‹‹šuwƒZ\h57C!-&(5?ANUWf`bqTUižŸ³ÜÝòÉÊ߄„œbbzrrŠŠŒ£œž³„‰fk€…™¥ª¾kp„,49M™ž²ÎÓ硦º•š®ÇÌàÄÉݔšª~ŠmpuILS"+nqzŸ«dfr(#%2XYkmn€OPd/89M‰‹ âéÿÚãÿÄÍꗠ½Ybs|™Î×ôçðÿ[d =DMj•ž»›¤Áu~›py–ov’V\rPUiTYm`eygl€}‚–ÑÖêøýÿ¿ÄØY^rin‚ÈÍᥪ¾*/C(GLbjn‡¢¦Á°´Ï“—²—›¶ÏÓîÛßú›Ÿº†Š¥{šae€"&A48Spt‚†¡mqŠlq„V\lgm}©¯¿¾ÄÔtzŠ06F-3Cz€ ¦¶…‹›qw‡„ŠšºÀб·Çjp~VXdjmvknwQT]=@I=@I>AJ8;DVYbmpyVYbILUru~‚‹dgpY\eMO\EGT@BOACP@BO=?LBDQKMZACPEGTBDQ8:G79FFHUbdqz|‹†‡™Œ¡®¯ÃèéýûüÿÑÓâsu„@BORT`XZfZ]fQT]DGN?BIDGLILQZY^cbgxw|~ƒjinYX]ZY^`_d^]b\[`WV[SRWMLQMLQYX]ediƒ‚‡onsONS438)(-)(-(',#"'&%*'&+)(--,1327;:?BAFFFHLLNKKKHHHDDDAAA===:::999000///...,,,+++)))((((((######$$$$$$%%%&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%((((((***,,,...00011122255555566666666666666665:88B:9GCEROQ^BFR‡‹—ÌÒÞÅË×±¹Ä³»Æ¶ÀÊ»ÅϾËÔÃÐÙÅÓÜÊÔÝÜßèéæíü÷ýüò󷧧ª•Î±©Ù¹®ç¹㽲ݵ«Òª Æ —¼–³Žˆ¯Š‚²„¶•†¿™ŽÇ¡–Ϧ Õ¬¦Ù°®Ú²²ÿæçÿâäoPU …puÿô÷ÿ÷ûôîðïïïôø÷õùøéí춺¹|€txw„ˆ‡‚†…{~{~ƒ‡†…‰ˆƒ‚|€ƒ‚„ˆ‹„ˆ‹…‰Œ†Š‡‹ŽˆŒ‰ŠŽ‘¤¨«§«®­±´´¸»¼ÀÃÃÇÊÈÌÏÊÐÐÈÑÐÆÑÍÅÎËÅÐÌÈÑÎÈÓÏÇÐÍÅÐÌÇÐÍÆÑÍÇÐÍÆÑÍÇÐÍÆÑÍÇÐÍÆÑÍÂÊÌÁËÌÂÊÌÁËÌÂÊÌÁËÌÂÊÌÁËÌÎÖØÏÙÚÓÛÝÖàáÜäæßéêãëíäîðÞèñÄÎد¼ÄÈÕÛðýÿóÿÿåññæñíøþüûýøïê揆kYUs^Y„kf‰lfŽlb“ocšvj |p ~t›{p‘pg‡i_vYSnQKdHDaEAgNJv]Y…miŽvr¹¤Ÿ¹¤Ÿ‡tp7%!D20пÿôóÿöôÕÍËÆ¿´°±žžž‘‘“‰ŠŒ†Š‹‡‹Œ’‘’”‘–––˜š—žžž ¢Ÿ¤¤¤¥§¤ÜÜÜÞàÝäääêìéòòòøú÷þþþûÿÿðÿÿìÿÿìÿÿêþÿêýÿèüÿèûÿçûÿïÿÿëÿÿèûÿæúÿéüÿéýÿéüÿçøÿÊÒÝÂÈÔ¸¼È©¯»›Ÿ«†Œ˜|€Œw}‰qumslp|flxhlxkq}tx„|ˆ…„‰‚€~z{yutxrrxsp|tr}ur„zxvq£˜’íãÚòåÝ “‹{le•„|Šqj‹pgŠofŠof‹pgŒqhŽsjtk…jari“xo“xo“xo•zq•zq“xq¸šœÖ¹½Ô»¾SAA%‚~{üÿýòý÷ôÿÿëÿûìÿþá÷ôÊãàÍæããù÷çÿÿèÿÿæÿÿèÿÿåÿÿæÿÿäÿÿåþÿãÿÿÚóøØôøÛôùÜøüàùþÜøüÙò÷Öí󠯶”ž§‚Œ•oy‚[enIS\@JS?IR@JS>HQ>HQAKTBLUDNWLV_U_het{k|ƒ{Š‘„•œˆ—ž}Ž•n}„_pwJY`@QXRSEYXK[[Zjjv‚‚v€gmmbdcqoptnnyon{oo€ppqq…qr†rqˆqk†ri‡tnpktpsnkONLLUBLUDNWGPYHQXFNQEMOBJL>FH:BD6>@3;=2:<2:<2:<19;19;19;19;2:<2:<FH>FH?GIBJL@HJ>FH>FH?GI?GI=EG:BDsu‚kmz^`mNP]<>K/1>02?8:GACP=?L68E35BBDQ_an|~‹‹šrt€XZf46B ".*,9FHU[]lbdsLMa‘’¦ÚÛðØÙ«aayjj‚„†’”©…ŠžuzŽ‰Ž¢œ¡µbg{/ +=BV‰Ž¢´¹Í–›¯£¨¼ÛàôÆË߆Œœx{„dgl;>E$'0jmvšœ¨lnz%'4)PQcop‚XYm56JZ[o—™®ÚáýÄÍꦯÌvœdmŠ¨±ÎâëÿÌÕò:C` +01:W‰’¯§°Í}†£w€v}™lrˆY^rJOcNSg`ey”¨æëÿò÷ÿ¡¦ºEJ^^cw¸½Ñ’¦!5 %AF\quŽº¾Ù²¶Ñ}œ”˜³Ûßúàäÿž¢½ˆŒ§uy”^b}"&A26Qfj…rv‘koˆpuˆek{kqš °®´Äpv†5;K;AQ†Œœ§­½ƒ‰™io‚ˆ˜ÁÇ×µ»ËciwZ\hfiradmILU;>G=@I8;D*-6RU^…ˆ‘mpy@CLY\eor{benbenVXeEGT9;H<>K?AN>@MBDQLN[LN[SUbIKX/1>*,9JLYnp}~€–—©œ±©ª¾ØÙíøùÿÕ×æ]_n -KMYTVbY\eSV_FIP>AHFINTW\YX]fejxw|jinNMRTSXa`eUTYUTYVUZYX]WV[POTIHMKJOSRW_^cLKP438$#(#! %)(-0/432721610521676;>=BFEJKKMNNPLLLHHHBBB<<<777333111(((((('''''''''&&&&&&&&&""""""###$$$%%%&&&&&&'''%%%%%%%%%%%%%%%%%%%%%%%%++++++,,,---///00011111155544444444444444444443866@54BACPSUbKO[ƒ‡“·½É±·Ã©±¼«³¾¯¹Ã´¾È¸ÅξËÔÂÐÙÇÑÚÚÝæâßæõðöúðñ¾®®³ž™Ó¶®Úº¯×²©Õ¯¤Ñ©ŸÊ¢˜Âœ“¼–¶‘‹³Ž†»™¾ŽÆ •Ë¥šÐ§¡Óª¤Ô«©Ô¬¬ÿÝÞÿïñpuePUÿô÷ÿúþÿúü÷÷÷øüûöúùæê镙˜598&*)@DC9=<154154:>==A@598265598,03,03-14-14-14-14-14.256:=6:=6:=7;>8>3=<0<8/:6/;72=92>:2=9.:61<80<81<80<81<80<81<80<81;<0<<1;<0<<1;<0<<1;<0<<1;<1==3=>4@@7AB8DD;EF:EGIS\/9C0=E~‹‘Üéïõÿÿìøøðû÷ðöôøúõóî꣚“¯™Ë¶±åÌÇòÕÏÿÝÓüØÌôÐÄæ¶ѯ¥·—Œž}tŒndwZTnQKcGCbFBkRN~eawsš‚~ι´Í¸³‹xt-H64ëÝÚÿûúÿù÷üôòùõòùõöõõõööøõöøôøùõùúñõöòöõôõ÷ó÷öö÷ùõùøøùûöúù÷øúôø÷õöøòöõòóõïóòðñóêòôçôúãöüäõüãöüäõüâõûãôûâõûàñøÜïõÝîõàóùçøÿëþÿïÿÿóÿÿòüÿðùÿð÷ÿòûÿóúÿî÷ÿïöÿñúÿæí÷åî÷âéóÙâëÑØâÉÒÛÉÐÚËÏعº¿³³µ§§©˜˜˜ŒŠ‹€{wvxtqe`]kc`‘‡…ÜÓÎíâÞ½²¬¬¡›¼­¦Ê³«Ì±¨Ë°§Ê¯¦Ë°§Í²©Ðµ¬Ò·®ÜÁ¸åÊÁëÐÇêÏÆèÍÄêÏÆéÎÅåÊÃÕ·¹óÖÚèÏÒ]KK a]Zõúöêõïèøõâ÷òæúøÄÚׂ›˜wž´²¯ÇǛ·ºš·»›·»š·»š¶º™¶ºš¶º™¶º“¯³‘®²’®²‘®²‘­±Œ©­†¢¦ƒš {Š‘t}„fovYbiLU\AJQGNGN?HO@IPGPWOZ`S`fXglboujy~mz€etyZgmN]bERXT_8LW:LV>LU?MVCMVCMVCLUCLSCKNBJL@HJ>FH;CE9AC7?A6>@8@B8@B8@B8@B8@B8@B8@B8@B9ACFH;CE8@B8@B8@B7?A4<>19;su‚kmz_anOQ^<>K/1>13@9;HCER?AN68E35BACP_an{}Š‹šnp|VXd46B"$0.0=JLY]_nacrBCW„…™ÓÔéÜÝò––®[[s__w{}”ŠŒ¡…Šž„˜‘–ª—œ°]bv3 +#@EYy~’ž£·”¨­²ÆãèüÁÆÚz€ux]`e25<'*3gjs–˜¤qs24A'KL^op‚\]qHI]tu‰¦¨½Ùàü½Æ㔝ºV_|lu’ÕÞûàéÿš£À"+H ($-J~‡¤®·Ô…Ž«€‰¦~…¡{—afzGL`FK__dxšŸ³íòÿåêþ”™­INbkp„ÂÇۖ›¯%*>( #,MPY•˜¡‚‹=@IGJSadm`cliluhjwNP];=J>@MEGTDFSEGTKMZXZgZ\iGIV%'4%'4SUby{ˆ|~¥¦¸©ª¾¤¥¹ÇÈÜôõÿÙÛêNP_EGSQS_Z]fSV_@CJ7:AJMRhkpdchdch\[`NMRKJOSRW\[`]\a]\aYX]a`egfka`eQPUDCHEDI<;@,+0#"'&%*'&+$#(*).76;>=B;:?65:43876;?>CHGLNNPNNPLLLGGG@@@999333...,,,%%%%%%%%%$$$$$$$$$$$$$$$!!!!!!"""###$$$&&&&&&'''%%%%%%%%%%%%%%%%%%%%%%%%------......//////00000044444433333333333322221666@10>?ANUWdQUa‚†’©¯»¥«·¤¬·§¯º«µ¿±»Å¶Ã̼ÉÒÀÎ×ÅÏØÝàéèåìýøþÿøù²²´ŸšÖ¹±ß¿´Ø³ª×±¦Ó«¡Ì¤šÄž•¾˜¸“µˆ¼šŽÀŸÈ¢—ΨÔ«¥×®¨Ø¯­×¯¯óËÌÿôö»œ¡6 cNSÿòõùíñþøúïïïìðïòöõòöõ©­¬FJI:>=[_^HLK?CB?CBIMLMQPEIH@DCCGFFJMFJMEILDHKCGJBFIBFIAEH=AD=AD=AD>BE>BE>BE>BE=CCAKJ=IE;GCJF;GC=IE=IE=IE=IE=IE=IE=IE=IEFRRFRRFRRFRRFRRFRRFRRFRRFRRHTTKWWO[[T``Xdd[gg]hj=GP)%jw}×äêõÿÿíùùñüø÷ýûúü÷éäà•Œ…¯™Ç²­ÙÀ»âÅ¿Ý»±Ý¹­Ú¶ªÓ¯£Å£™²’‡Ÿ~uqg{^XpSMcGCaEAmTPƒjf˜€|¥‰Î¹´×½”}/L:8òäáÿûúüòðÿøöúöóöòóïïïîîðîïñîòóðôõïóöîòõîòõîòõíñôíñôìðóìðóëïòëïòëïòìðóìðóíñôíñôìñôåðôäòõäòõåóöæô÷çõøèöùèöùñÿÿëùüæô÷æô÷æô÷äòõäòõæô÷èó÷äïóãîòæñõåðôáìðàëïãîòÖáåÜçëäïóéôøëöúîùýòýÿöÿÿóøüôøûõùüöúýùúþúûýüüüýýûùõôðìéñìéÿþúÿ÷ô×ÐÊËľȽ·Ï¸°Ðµ¬Ï´«Î³ªÐµ¬Ò·®Õº±×¼³Ø½´âǾèÍÄæËÂäÉÀåÊÁãÈ¿ÞüâÄÆÿåéùàãq__EA>ñöòøÿýîþûíÿýñÿÿ½ÓÐTmj:SPl‚€ˆ  LhkJgkHeiGdhEbfC`dA^bA^bFcgFcgGdhIfjKhlIfjDaeC[_XekR[bIRYDMT>GN9BI:CJ>GN9BI7@G8AHFH@9AC=EG=EG;CE9AC9AC:BD:BD7?A4<>3;=4<>3;=08:-57‡‰–xz‡]_lACP-/<(*702?8:GCER>@M79F8:GFHUbdqƒ…’™›¨|~ŠWYe+-9!#/>@MacpnpMO^ !5‚ƒ—×ØíèéþµµÍ]]uBBZoqˆˆŠŸƒˆœ†‹Ÿ ¥¹£¨¼_dx/6;Ogl€„˜šŸ³ÍÒæËÐ䙞²€†–svVY^58? #EHQlnztv‚UWdFHUUVhbcuUVjjk™š®­¯ÄÇÎê¸Áތ•²LUr€‰¦ÛäÿÜåÿˆ¥<$A1:WW`}Ž—´š£Àxžv}™€†œ„˜KPdNSg„‰»ÀÔîóÿîóÿŽ“§724ARTamo|‚„“ÓÔ欭ÁŽ£ÒÓçüýÿ™›ª"$3 ACOEGS>AJ7:C58?;>Ecfk ¥€„SRW@?DIHMIHMKJOTSXSRWIHM^]brqvnmrUTY:9>+*/)(-%$)&%*&%*&%*(',.-287CHGLFEJEDIDCHEDIGFKJINKKM;;=888333...***'''&&&&&&########################%%%%%%%%%%%%%%%$$$$$$$$$))))))***+++,,,---......000000000000000000000000//////////////////////.311;10>FHURTaJNZz~Š°¶Âœ¢®Ÿ§²Ÿ§²ž¨²§±ª³¤±º¬ºÃ¶ÀÉÍÐÙÔÑØíèîòèéξ¾¸£žÈ«£Ù¹®Ò­¤Ñ« Î¦œÊ¢˜Äž•¿™»–¹”Œ¾œÄ£”Ï©žÖ°¥Û²¬à·±å¼ºèÀÀíÅÆÿìîÿçìZADVAFÿô÷ÿó÷ôîððððîòñúþýòöõØÜۂ†…¯³²¶º¹ÍÑÐÀÄù½¼ÎÒÑáåäÛßÞÓ×ÖÓ×ÖØÜßÕÙÜÓ×ÚÔØÛØÜßÙÝà×ÛÞÔØÛÕÙÜàäçãçêÏÓÖÌÐÓÓ×ÚÉÍÐÆÌ̸ÂÁ•¡‰•‘¢®ª¯»·žª¦“Ÿ›™¥¡›—›—–¢ž’žš‘™›—Š–’•¡…‘‘}‰‰|ˆˆƒ‚ŽŽz††y……myy.::kwwp||r~~€ŒŒv‚‚grt:DMR_eíúÿîüýóÿÿì÷óöüúõ÷òü÷󢙒žŒˆØþÛ½àýèƼ㿳ٵ©ÎªžÀž”¬Œ—vm†h^rUOfIC]A=bFBnUQ€gc’zv ˆ„®™”ßÊÅàÍÉ@.*SA?öèåÿñðÿù÷÷ïííéæîêëóóóóóõîïñíñòó÷úëðôëðôëðôëðôëðôëðôëðôëðôïôøïôøïôøïôøïôøïôøïôøïôøîòóîòóîòóîòóîòóîòóîòóîòóìðñìðñìðñìðñìðñìðñìðñéòñåñïæõòåôñàïìßîëÝìéÓâßÆÕÒÝìéÝìéÝìéÝìéÝìéÝìéÝìéßëëåïñâéïåìòíõøîó÷çìïçëîíñòììîìììýüúûúöéåâ­©¦´°­Å¼·Í¹²Õº±Ðµ¬Î³ªÓ¸¯Ó¸¯Ò·®×¼³æËÂãÈ¿áƽâǾãÈ¿äÉÀâǾ߼շ¹èËÏúá伪ª)62/æëçñüöòÿÿñÿÿïÿÿÅÛØD]Z 96\rpo‡‡Ieh?\`:W[;X\=Z^@]aA^b>[_>[_FcgIfjDaeDaeHeiDae?W[@MSAHN=DJ9@F5D;BH@GMBKPFQUEPTCNR?JNLUCMVEOXHQZIRYAIL@HJ@HJ?GI=EGFH?GI?GI4<>4<>4<>4<>4<>4<>4<>4<>6>@5=?5=?4<>3;=2:<2:<19;ŠŒ™z|‰_anBDQ.0=(*7.0=57D?AN:KPR_`boXZgNP]HJW:KUWdnp}ˆŠ™ÂÃÕ¯°Äº»Ïéêþäå÷xz‰)"BDP35A36?25>),3@CJwz £¨]\a?>C98=GFKKJOMLQQPUKJOHGLWV[dch^]bHGL105&%*$#('&+)(-)(-*).,+0105:9>@?DJINJINIHMIHMGFKFEJEDIDDF668444000,,,)))'''&&&&&&########################%%%%%%%%%%%%&&&&&&&&&&&&***++++++,,,---...////////////////////////////////////////////////////.311;10>FHURTaJNZy}‰­³¿™Ÿ«™¡¬š¢­˜¢¬˜¢¬˜¥®ž«´¦´½±»ÄÏÒÛØÕÜ÷òøûñòÑÁÁ½¨£Î±©Ö¶«Í¨ŸÍ§œË£™È –Äž•Á›’¾™“½˜¿‘Ť•Ï©žÖ°¥Û²¬Þµ¯ãº¸å½½êÂÃÿâäÿêïjQT\GLÿòõÿöúñëíõõõïóòöúùïóòØÜۍ‘¹½¼ÃÇÆÕÙص¹¸¬°¯ÇËÊÛßÞÜàßÞâáàäãêîñéíðéíðíñôó÷úöúýöúýõùüëïòîòõùýÿõùü÷ûþüÿÿôøûîôôÚäã¿ËǹÄÀÏÛ×ÞéåÓßÛÎÙÕÓßÛÝèäÚæâÚåáÜèäîùõíùõÖáÝÕáÝæðñßëëàêëçóóéóôâîîãíîêööÉÓԟ««ãíîïûûçñòäððäîïÑÜÞYGEúìéÿø÷ÿöôüôòôðíöòóõõõññóîïñìðñëïòïôúïôúïóüïôúïóüïôúïóüïôúëïøëðöëïøëðöëïøëðöëïøìïôîîîîïêïîìîïêïîìîïêïîìîïêòñïñòíòñïñòíòñïñòíòñïîóíåòëáõêáòêÚîãÚëã×ëàÑâÚÅÙÎäõíâöëäõíâöëäõíâöëäõíäõïãñôâíóâíóæñõèñöæðòæîñéîñëïòéíîùûúöø÷ããã©©§¶¶´ÐÈÅκ³Ö»²Ò·®Ðµ¬Õº±Ö»²Õº±Ú¿¶äÉÀâǾßÄ»ßÄ»áƽáƽÞúÜÁº×¹»áÄÈ÷Þá˹¹?33A=:êïëøÿýïÿüíÿýíÿÿÏåâ_xuF_\~”’ˆ  ’®±Š§«…¡¥‚Ÿ£‚ž¢ž¢€œ }šžt”w”˜u‘•i†Šcƒ_|€VrvLdh?JP>EK:AG6=C29?07=/629?6=C;BH@GMFMSIPVMV[JUYFQUBMQ=HL8CG4?C3>B)48)48)48*59+6:+6:,7;+9<4FFJ^]fvv’¢¢ÕááÔÞߢ¨¨Ÿ¡ §¥¦©££¬¢¡°¤¤·§§·§§¸¤¥µ¡ «”Ž¦’‰ž‹…–‡‚›Œ—’gfd#))ƒŽÕèì¾ÕÛ¨ÅÍ«ÌÕ¦ËÔ¥ËÖªÐÛÛÿÿàÿÿŸ¿Ì"BO5A:Vb;S_6LW6JU8JTLUCMVEOXGPYHQX@HK@HJ?GI>FH>FH=EG@5=?5=?4<>3;=2:<2:<19;ŠŒ™z|‰^`mACP-/<')6+-:13@8:G57D13@46CBDQ\^kz|‰Žrt€RT`%'3%'3MO\vx…rtƒDFU'DEY‘¦ßàõÜÜôqq‰AAYz|“„†›†š}‚––›¯£¨¼afz, +PUins‡…Šž› ´°µÉ£¨¼~ƒ—gm}mpyORW(+2##&/47@KMY^`likxegtbcuMN`PQe“”¨ÅÆÚ³µÊ©°Ì›¤Á~‡¤`i†Ž—´×àýÔÝúŠ§CLifoŒ]fƒ2;XJSpŠ“°‘š·x›~„šmr†=BVhm³¸ÌÇÌàÕÚîÕÚî^cw.3G„‰Ò×둖ª;@T. #Y]vÒÖñÙÝø›Ÿº™¸™¸•™´­±Ì ¤¿quEId26QIMhUYtbfei‚hm€gm}ioek{Y_o_eu‡±·Ç¯µÅ†ŒœZ`p=CS“£êðÿËÑá`ft_amMPY958A7:C9CDCHLKPLKPLKPJINGFKA@E<;@99;//1---***(((&&&&&&&&&&&&###########################$$$%%%&&&'''((()))***---------...//////000000//////////////////////////////////////////////.311;21?EGTSUbLP\w{‡¨®º•›§‘™¤‘™¤š¤š¤œ¥–£¬ž¬µ¨²»ÁÄÍÑÎÕùôúúðñÇ··¸£žÏ²ªÐ°¥Ç¢™Ç¡–Æž”Û‘¿™¼–¸“·’ŠÀž’Ť•Ï©žÔ®£Ø¯©Û²¬ß¶´á¹¹íÅÆýÙÛÿçìv]`cNSÿô÷ÿûÿûõ÷öööòöõùýüñõôÙÝܜ ŸÆÊÉÜàߎ’‘JNM7;:PTSUYXQUTTXWSWV_cf^be`dgdhkimpmqtnrunru~‚…ˆŒª®±­±´šž¡–š•™œ“™™˜¡ ‡’Ž„Š›—˜¡ž‘œ˜–“›—¤­ªŸª¦”šž©¥Î×ÔÏÚ֜¥¢‰”œ¤¦•Ÿ —Ÿ¡œ¦§ž¦¨˜¢£š¢¤Ÿ©ª¬´¶™š¾ÆÈÆÐѲº¼²¼½æîðéóõ@JSN[aìùÿïýþóÿÿëöòóù÷õ÷òýøô —˜†‚Ô¿ºßÆÁëÎÈðÎÄêƺ޺®Ò®¢Ã¡—¯„›zqŠlbqTNfIC^B>bFBkRNza]‹soš‚~¬—’ι´üéår`\YGEëÝÚÿöõÿöôøðîòîëôðññññëëíîïñðôõêîñîóùìóûìóýìóûìóýìóûìóýìóûíôþíôüíôþíôüíôþíôüíôþðóøôôôõôï÷óðõôï÷óðõôï÷óðõôïöòïôóîöòïôóîöòïôóîöòïòõîìüòèþñåùîßõèÞòçÝóæÙíâÒèÛáõêàöéáõêàöéáõêàöéáõêáôîè÷úçöýäñùâï÷æðùéôúèñöäîðäìïãëíõúýðööÙÝޜ Ÿ¬®­Èÿȵ®Ñ¶­Ì±¨Ê¯¦Ï´«Ï´«Î³ªÓ¸¯×¼³Õº±Ô¹°Ö»²Ù¾µÛÀ·Ú¿¶Ø½¶Óµ·Ñ´¸èÏÒμ¼J>>>:7áæâøÿýïÿüêÿúêþüÙï옕p‰†š°®Ž¦¦—°´“¯³‘ª¯Š¦ª‹¤©ˆ¤¨‡ ¥ƒŸ£‰¢§ˆ¤¨ƒœ¡t”n‡Œh„ˆ\uzOdi8CG:?C6;?27;/48-26-26-26.37/4827;7<@>CGEJNJOSLTWNXZKUWGQSAKM;EG5?A1;=/9;'13(24)35*46+57,68,68+68);;G[Zk{{­­ãïïáë쫱±¡£¢¬ª«®¨¨²¨§¶ªª¼¬¬¼¬¬¼¨©¹¥¤­–¨”‹¢‰œˆ •‘ž™–onl*00{†ˆØëïÈßå¯ÌÔ­ÎקÌÕ¨ÎÙ¯ÕàÝÿÿâÿÿ¥ÅÒ%ER3?9Ua:R^5KV8LW9KU=KT>LUCMVDNWFOXFOV@HK?GI?GI>FH>FH=EG=EG@5=?5=?4<>3;=2:<2:<19;ƒ…’rtXZg>@M,.;')6+-:02?46C13@/1>24A?ANVXeqs€ƒ…’jlxNP\"$0-/;XZgƒqs‚?AP !01EyzÖ×ìááù||”JJbƒ…œ™›°‚‡›uzŽ‹¤—œ°afz %9'W\pns‡ˆ¡šŸ³ ¥¹•©uzŽciyiluLOT!$+&,/825>BDPWYejlyjlyfgyNOaTUižŸ³ÌÍᱳȠ§Ã“œ¹|…¢py–”ºÎ×ôÈÑîy‚ŸDMjox•hqŽ/8U1:Wr{˜‘š·†©‰¥uzŽKPd€…™ÃÈÜ»ÀÔ¶»Ï¶»ÏRWk?DXª¯ÃÛàô’¦UZn+0D<@YÓ×òßãþ ¤¿¡¼“—²ŠŽ©¢¦Á—›¶mqŒ@D_04OOSnZ^ydhƒjn‡kpƒrxˆtzŠ\br:@PFL\Š ÊÐ౷LjŽž`fvCIY—­ôúÿÍÓãbhv\^jJMV:=F7:C:=FX[bpszadiKNS>=B:9>A@EIHMJINNMRMLQBAF98=87<438-,1%$)! %"!&$#(65:87<;:?<;@=CDCHHGLLKPJINHGLCBG>=B76;216//1((*'''%%%######$$$&&&'''###########################$$$%%%''')))+++,,,---////////////000000000000........................//////////////////////.322<21?DFSSUbOS_uy…¡§³Ž” Š’Š’‰“ˆ’œˆ•žŽ›¤—¥®¡«´¶¹ÂÎËÒýøþøîﺪª¯š•Ð³«Ñ±¦Í¨ŸÌ¦›Ê¢˜Æž”Á›’½—Ž¹”Ž·’ŠÃ¡•Ê©š×±¦àº¯éÀºïÆÀöÍËúÒÒÿáâÿïñÿñö„knt_dÿöùÿøüóíïòòòôø÷üÿÿøüûÝáல±ÑÕÔñõôŠŽ(,+<@?AEDAEDJNMJNM?CF?CF?CF@DGBFICGJCGJCGJ!%(HLOŒ“‚†‰<@C)-0;?BCGHNTTGMKDJHFLJGMKCIG?EC?ECNTRIOM397FLJ“™——›IOM"(&A49<49<7CF*/2CF',/;@C·¼¿ÚâåFOXKX^ëøþðþÿóÿÿêõñîôòóõðþùõ¤›”žŒˆßÊÅïÖÑÿãÝÿíãÿâÖôÐÄά˩Ÿ±‘†˜wn†h^oRLfIC_C?cGCjQMx_[ˆpl—{§’¾©¤òßÛ|jf^LJæØÕÿ÷öÿöôÿ÷õøôñ÷óôðððëëíðñóõùúïô÷êñùêñûêðüêñûêðüêñûêðüêñûéïûéðúéïûéðúéïûéðúéïûëïøðñóññïññïññïññïññïññïññïïïíïïíïïíïïíïïíïïíïïíëñíêûóäûñàõìÛòèÙîåØïåØíäÖíãßôëÞõëßôëÞõëßôëÞõëßôëßôïßòöàóúÞï÷ÙêòÚèñÞíôàíóÞìïãîòäïñ÷ÿÿóýþÖÞà™˜›¡¡¶µ±Ë¸±Ó¸¯Î³ªË°§Î³ªÍ²©Ë°§Ðµ¬Î³ªË°§É®¥É®¥Ê¯¦Ê¯¦È­¤Åª£À¢¤¸›ŸË²µ¸¦¦<000,)ÓØÔôÿùòÿÿêÿúéýûàö󕮫†Ÿœ–¬ªnƒ„s‹z‘—y–uŒ’wŽ”wŽ”uŒ’v“j‡k‚ˆg~„`w}ax~byWntJ]c1:?27;/48+04(-1',0',0',0&+/(-1,1516:7<@=BFBGKDIMCKN@JL,68)35&02$.0%/1'13*46+57+57+57*57&88J^]q °°æòòåï𬲲œž©§¨¬¦¦±§¦µ©©ºªª¹©©¸¤¥´ Ÿ«”Ž£† ‡œˆŸ”Ÿš—rqo,22r}ÛîòÔëñ¹ÖÞ°ÑÚ©Î׬ÒÝ´ÚåÜÿÿáÿÿªÊ×'GT1=LU?MVBLUCMVDMVDMT?GJ>FH>FH>FH>FH>FH>FH=EG:BD:BD;CE;CE;CE;CE;CE;CE6>@6>@6>@6>@6>@6>@6>@6>@6>@5=?5=?4<>3;=2:<2:<19;wy†givOQ^8:G+-:)+8-/<24A35B24A13@35B=?LPR_fhuuw„acoKMY"$09;GdfsˆŠ—mo~>@O -.Bop…½¾ÓÇÇßvvŽQQiƒš­¯Ä…Šžv{‹¤Ž“§`ey*/C)V[ootˆŒ‘¥šŸ³—œ°‡Œ sxŒgm}firJMR!( #*47@:=FKMY[]idfsdfsjk}`ashi}¥¦ºÊËß°²Ç¡¨Ä”ºˆ¥€‰¦˜¡¾ÄÍê¼Åâox•+4QfoŒnw”5>[#,I]fƒ˜µŒ“¯“™¯„‰afz“˜¬ÃÈÜ©®ÂŸ¤¸¢¶RWkX]qÑÖêçìÿ’—«otˆ>CW)-FÔØóçëÿœ »–šµ•™´‰¨‘•°†Š¥mqŒDHc-1LOSn`dimˆptmr…|‚’‡—\br+1A7=M…‹›ÊÐपºŒ’¢ou…HN^–œ¬õûÿÊÐà`ftY[gILUK68E(*7)+8@BOSUb\^k^`macptv…“”¦ÌÍáüýÿíîÿ‚ƒ• /&)+8,.:-/;@CLiluwzPSZ47=B?>CEDIIHMJINKJOFEJ:9>-,1)(-$#(! %! %$#()(--,1?>CBAFEDIFEJEDIDCHEDIGFKEDIBAF==7;:9=@:>A9=@86:=59<6:=TX[¹½À¡¥¨.258?:>=:>=:>=;?>;?>;?>;?>EIHAED&*)>BAž¢¡¦ª©FJI>BE;?B:>A<@C;?B89=@BFI9=@;?B8ST49.BI1EL-AH0DK1EL/CJ2FM4HO5IP3GN3GN=QXEY`=QX.?F*25+/2(,/$(+"&)!%(!%("&)"% $'#'*(,/,0304726938;/79.68+35(02%-/"*, (*&(!)+#+-'/1*24,46,46+35(44);;Rfe|ŒŒ©¹¹ìøøéóôª°°’”“¢ ¡¦  «¡ ¯££´¤¤²¢¢°œ«—–¥Žˆœˆ›ˆ‚˜‰„™ŽŠš•’pom'--juwÞñõßöüÁÞæµÖß®Óܱ×â¸ÞéÙýÿßÿÿ¯ÏÜ)IV/;?[gAYe?U`FH>FH>FH>FH>FH>FH?GI?GI?GI>FH>FH>FH>FH>FH>FH7?A7?A7?A7?A7?A7?A7?A7?A6>@5=?5=?4<>3;=2:<2:<19;np}_anIKX68E-/<-/<24A57D79F68E57D57D;=JIKXZ\ifhuY[gIKW&(4HJVnp}ˆŠ—fhw?AP134HZ[p€•zz’OOgNNf{}”­¯Ä’¦‚‡›”™­Ž“§Z_s$)= &TYmv{”™­œ¡µ“˜¬ƒˆœtylr‚dgpKNS #*#&-;>GLOXegsjlxY[hVXehi{uvˆ‚ƒ—¯°ÄÉÊÞ°²Ç¤«Ç™¢¿ƒŒ©–³™¢¿¿Èå·ÀÝlu’!>\e‚r{˜BKh#,IR[x‰’¯‡Žª—³•©uzŽšŸ³·¼Ðž£·™ž²”¨LQehmåêþæëÿ”™­{€”@EY%)BÊÎéèìÿ›Ÿº“®˜œ·…‰¤~‚w{–lp‹FJe*.IQUpei„mqŒuy’ns†}ƒ“…‹›bhx06F:@P|‚’±·Ç•¥ˆŽžw}FL\Œ’¢ìòÿÁÇ×^drXZfKNW>AJ7:C69B7:C;>G>AJHKTFIRLOXILUTW`MPY=@I`cl¥§´]_l57DIKX\^kOQ^79F&(5,.;02?GIVVXeacpacpQS`LN]‘’¤ãäøüýÿÏÐäst†,.=%'6!#0"$079Empy‰Œ•^ah.1825:LOT87<:9>?>CCBGEDIBAF87<-,1$#("!&! %#"''&+-,132776;DCHGFKKJOJINGFKCBGA@EA@E98=65:0/4+*/'&+%$)%$)%%'!!#!!!  """$$$&&&########################((()))***+++,,,---...///000000//////...---------,,,,,,,,,,,,,,,,,,,,,,,,//////////////////////.333=32@BDQSUbSWcqu“™¥‚ˆ”{ƒŽ|„z„Žz„Žz‡€–ˆ–Ÿ“¦¤§°»¸¿àÛáÎÄŋ{{ze`˜{s}rœwnwlŸwm xnŸyp zqŸzt {s{o¤ƒt¯‰~·‘†¾•Ãš”ÈŸË££Õ­®ëÇÉѲ·E,/VAFúëîÿöúùóõîîîèìëìðïôø÷çëêÖÚÙÐÔÓëï”265265043265/32,03.25/36.25,03,03-14/36GKN¿Ãƨ¬¯$(+ 8:9>:9>;:?65:98==OW4EM&3;"*-#'* $'!$ #"" #  # $'"&)$(+%),%), %(%'$&#%"$!# "!%' (*%-/)13+35+35*24(23&66Thg‚’’®¾¾ïûûëõö¤ªª…‡† žŸ£©Ÿž­¡¡²¢¢¯ŸŸ¬˜™¦’‘¤‡™…|˜…–‡‚•Š†—’mlj#))doqáôøèÿÿÉæîºÛä´Ùâ·Ýè»áìØüÿÞÿÿ´Ôá+KX-9A]iD\hBXc>R]?Q[AOX@NWAKT@JS@IR@IPFH>FH?GI?GI@HJAIKAIKAIK@HJ?GI?GI>FH>FH8@B8@B8@B8@B8@B8@B8@B8@B6>@5=?5=?4<>3;=2:<2:<19;mo|^`mIKX8:G13@24A68E9;H=?L<>K:36?47@36?7:C:=F?BK8;DLOXZ]fTW`tw€¨ª·^`m<>K`bowy†Z\i24A!.-/<8:GNP]Y[hikxoq~PR_57F•–¨íîÿôõÿ¥¦ºij|MO^-/> ".XZfŒ˜x{„=@G,/6CFKPSX=43AACPTVcUYept€“Ÿ}ƒs{†t|‡r|†r|†rˆx…Ž€Ž—‹•ž‘”¤¡¨Ä¿ÅÀ¶·–††‹vq ƒ{£ƒx¥€w§vª‚x¬„z®ˆ°Š±Œ†²…­‹³’ƒ¾˜ÅŸ”Ê¡›Î¥ŸÓª¨Ö®®ç¿ÀÿÛÝáÂÇF-0E05ðáäÿûÿöðòãããáåäåéèíñðÚÞÝÑÕÔÄÈÇåé蚞154043,0/*.-)-,'+.*.1,03,03*.1)-0+/2.25<@C»¿Â®²µ&*- :>A2350020.//-.0./0.//-..,-.,-201423645˜–—§¥¦DBC.,1/-20.30.31/420531631653886;64986; ¸¶»âãèU\f  CPVèõûòÿÿôÿÿèóïóù÷ôöñýøô¤›”¡‹ÞÉÄæÍÈîÑËïÍÃåÁµÓ¯£Á‘®Œ‚™yn„cZuWMiLFeHBdHDiMIoVR{b^uq…¬—’Dz­øåᩗ“H64‘ƒ€ýïîÿüúÿúøû÷ôóïðùùùëë휝Ÿ`dejosT\gS\kS\kS\kS\kS\kS\kS\kKTcKTcKTcKTcKTcKTcKTcHUeCVg@Wi@Vk@Wi@Vk@Wi@Vk@Wi>Ti>Ug>Ti>Ug>Ti>Ug>Ti>Ug5K`3J\3I^5L^2H]-DV/EZ6M_5K`5L^5K`5L^5K`5L^5K`5L^8O]3KU>V`F]e2IQ1ELvŠ‘Îáçëüÿàòöíüÿîýÿ×å葟 œª«¿ÁÀÒÁºÛÀ·Õº±Ò·®Ô¹°Ó¸¯Ñ¶­Õº±Ú¿¶×¼³Ô¹°Ô¹°Ô¹°Ô¹°Ñ¶­Î³¬Óµ·Ô·»âÉÌ¿­­3''¼Á½ðûõîþûêÿúëÿýëÿþµÎË¥¾»—•01$2;)7@!/8#1:!/8*3!/8-6+4(1+4-;D9GP.GNFH>FH?GI@HJ@HJAIKAIK@HJ?GI>FH=EG=EG@5=?5=?4<>3;=2:<2:<19;oq~`boKMZ;=J57D68E9;H;=JACP@BO=?L:M/0BLMa{|ž³ÃÄÙÈÉÞ¤¦½¢¨Â¤À‡Ž«˜Ÿ»œ£ÀÄËçÄËè|ƒŸ@GdQXtel‰ipŒELi>Eamt‘„‹§ ¦¾Ÿ¤º‡Œ¢•š°¢¸šŸµ¡¦¼€…›).D[`vÖÛñÅÊà†œlq‡%*@$(A•™²ÌÐ颦¿”˜±˜œµ|€™uy’rvei‚;?X(,E\`ymqŠosŒz•ot‡rxˆz€lr‚TZj\brrxˆsy‰~„”z€ou…=CS‡—ßåõºÀÐkqbdp\_hMPY:=F25>36?36?.1:/2;58A8;D/2;KNWgjsilu†‰’–˜¥acpXZgƒ„†“PR_*,9(*7!.02?JLYY[htvƒ…‡”bdq;=L›œ®ìíÿæçù‚ƒ•dewhjy.0=13?qt}†‰’_bi-,1**,,+0((*"!&!!#! %'')/.3668:9>==??>C@@BCBGFFHIHMGGI@?D779105..0! %""$%$)'')(','')&%*%%'###""" !!!###%%%########################.........---------------......---,,,+++***))))))++++++,*++++,*++++,*++++0.////0.////0.////0.//.353>43ACBPTVcWYfosŒœ{ounvnvlv€nx‚rˆ|‰’…˜ˆ‹”•”š°®³¶°²Ÿ““˜†„¡‰… …~›}už}v x¢y¤{¥„}§†§†«‚³“†¼šÄŸ–Ç¢šÌ¥ Ñ©§Ô¬¬Î§¨ïÍÎäÆÈI038%'ãÔ×ýñóÜÖØÔÖÕÜâàçííéïíÉÏÏÂÆŸ¼½èì뛟  021013.0/+,.-.0+,.,01126-12,-1(,-,-1-12 9=>¼½Á´¸¹)*. 67;+,.1/2-+..)-/-02-1.,-/+,.,-3/0534$ !986™•”¨§¥KGF7266477283144/53144/51/294:758506647 ½ÃíìòW^f BOUèõûòÿÿôÿÿèòñõûûõ÷ôýøô¥œ—¢‘ŠÝÉÂâÉÂçÊÂÞ¼³Ö±¨È¢™¹”‹¬‡~›yp‰h_{]UhJBeHBfICkOKrVR}d_wr¡ˆƒ¸œ˜Ô»¶ÿøôÅ°­?-+xjiûñðÿýû÷óòôóñðîïÿýþíë쁁.,-87<^^h^]k^]k\^k\^k\^k\^m[^mZ]lZ]lX^nX^nX^nX]pX]pV_pR]oQ^qQ^qQ^qQ^qR]qR]qR]qS^rS^tR^tR^tP_tP_tO`tP_tLXnJVlNYoP\rMXnFRhITjP\rHSiGSiHSiGSiHSiGSiHSiGTeIWb>LUCT[FW^'8?15r„ˆàòöðÿÿåôùóÿÿõÿÿãîò›¤©Ÿ©«¼¼¼Î½¶Ö¾´Ò¹²Ð¸®Ö½¶Ö¾´Ö½¶ÛùÙÀ¹×¿µÖ½¶×¿µÙÀ¹Ú¸ÙÀ¹Ù½¹Ì°¯Ñ´¶çÏÏ̺º>31¾¾¼øÿüïûùìüùêýûêþý·ÍË©ÁÁ‚šš/0 !*1(18 )0#,3!*1%,"+2'.%,")(/2;B@IP7@G$+1 # !##$&$%'#$&#$& ! $%&*++/0.23.23,01'0/.>=]qp‡——®¾¾òþþøÿÿ¹¿¿›œ«©ª°ªª¶¬«º®®¿¯¯ºªªµ¡¢¯›šª•ž‰„ŸŒ†Ž‰˜‹œ”’rqo&*+_kkäöøîÿÿÑíñÃâçÀáè¾ãë½âêàÿÿãÿÿ¿ßì1OZ*6A\gBZf@VaBT^BS[BPYANVAKT@IP?FN>EK;CFFH=EG@5=?5=?4<>3;=2:<2:<19;‚„‘ln{NP];=J8:G>@MDFSFHUEGTCER?AN9;H57D9;HACPIKZXYkUVjZ[oop„|}‘noƒbcwgh||}’Œ¢~”MNc !6,12GSTivw‹ ±½¾Ò¬¯Àƒ„˜ADU Z[o£¦·ÀÁՙœ­ˆ‰‚“fg{efxhjwZ\i/1> ACR¦¨·²³Ålm !6*+@AAYppˆ±±ËññÿÜÜøµ¶Ò«¯Ê¤ªÄŒ‘®–°¡¦Ã±·Ñ²·Ô…‹¥[`}=C]^c€x~˜in‹Y_yX]ztz”‹ª¢¦¿œ ¹–š³—›´˜œµ˜œµ…‰¢@D]IMf¨¬ÅËÏ虝¶_c|!:49Ow|’¯´Ê§¬ÂšŸµ‘–¬ƒˆžy~”mrˆ\aw38N %;PUkin„}‚˜v{x}w}‡v|ŒOUeY_o~„”•¥‹‘¡„Ššqw‡>@;;;779111++-%%%!!#""$"""""$"""""$"""""$"""########################"""###%%%''')))+++---...222111000...,,,***)))((()))))))))))))))))))))))),*+,*+.*+,*+.*+,*+.*+,*+40131251242373464584575:85@=;IFDRRP^][ifesjlylp|gkwekwekwfnyiq|kuoyƒr{„†‹‘Ž“’‘—Ž“Š…‰‡~ˆ|~Œ~~{{Žzy‘|{•}{—}™~›€œƒ§…©‘…¯”‹´—¼›–ÀžœÅ¢ Æ¢¢Â ¡Ð°±Â¥§dNPG55¸ªªÿóóÖÒÑÃÇÈÁËÊÆÎÐÉÒÑ»Ãŧ­­°µ¸ÒØؕ™œ**,/.3))++*/**,++-*,+++-*,+++-*,+++-*,+687²²´¸º¹113557++-+*/+*/,*/+*/,*/++-,*-+++31211/"!ˆ‡ƒ¯°«RQM0.////0.1///0.1///0.1///0.1999425444 ¤¢¥ðñóltw 6CIíúÿíúÿóþÿêôöò÷ûûüþÿýý¸¯ª¥”ßËÂáÉ¿âĺ俷۴­Í¤ž»”«„}™tnŠe_~[UkJCeG?eG?nQK{^X‰ngœz«ŽˆÁž˜Íª¦ÿêçßÆÂ=++WKKôîîüúûîïñìíïóóõûùúòìî…|}, "kZbcR\^MW^NX]PZZLYZN\^ScZRaXQaYUfTQdPMbSQgIG]QNa_Wd^R\XJWVHU^N[\JXWBSaL]\JZ\I\[J\UHYQFWMFVLHWNJYMETMETODTMETODTMETNCSLDSMBRQIXVK[RJYPEULDSNCSLDQE@FCAB>>>FHG6:9 T]\ïùøòþþñýýåïñöþÿåê¯ ¡¦¸´µÎ¼¸Ò»³Ò»µÒ»³Ò»µÒ»³Ò»µÒ»³Ö¿¹Õ¾¶Ó¼¶Ò»³Ò»µÓ¼´Õ¾¸Ö¿¹Ñ¸´Óº¶ï×ÕæÓÏXJG ›˜ýýûøþþêôõîüýëýÿÄ×Û¤¼¾w“%8<  '+.$(+ $'!%("&)"% $' $'"% $'.25:>A59<()+###$$$"$#*,+132465354-33.>=`ts…••¥µµïûûìö÷½Ã⤣µ³´º´´¾´³¿³³À°°»««¹¥¦¶¢£ª•”¤Ž¡ŒžŽŽ˜‹Ÿ—•‚265[dcçõõêþýÒêêÌæçÁßßÃãâÁãåàþÿéÿÿÍëö6R])44LV@T]>QXBS[DSZGQZHQXGNVDKQCHNAFJAIKAIKAIKAIKAIKAIKAIKAIK@6>@4<>3;=2:<08:/79-57,46+35‚„‘ln{PR_>@M<>K@BODFSEGTACPACP?AN<>K:KACPGIX[\p`avkl}~“‚—no„bcxkl‚—’“¨„…šQRg"#8,-.CMNbpq…—˜ª½¾Ð²³Å„…—ABT + [\n¢£µÄÅשª¼—˜ª‚”_`r`ashjy[]l13B'QRd±²Ä°±Æbcx 8,,D==Wjj„³³ÏòòÿØ×ö²³Ñª«Ç ¤¿Ž’­›Ÿº©­È¶ºÕÀÄß¡¥Àcg‚37RRVq€„Ÿ}œcg‚TXshl‡Œ«£§Â¡¼“—²’–±’–±“®}œHLg;?Z{š°´Ï™¸fj….2M !&IPQXDSZERZHSYHQXJOUGLREHMBGKDILBJLBJLBJLBJLBJLBJLBJL=EG@6>@2:<2:<19;/79-57,46+35*24€‚mo|TVcDFSACPDFSEGTDFS:AJKNWWZadgnfinRUZ?CF8QXDSZFS[ITZIRYKPVHMSGJODIMEJMCKMCKMCKMCKMCKMCKMCKM>FH=EG=EG@6>@19;08:/79.68,46*24)13)13|~‹ln{WYfJLYGIVGIVDFS@BO35B8:G@BOFHUHJWFHUCERACRRSgmnƒ‰ŠŸ“”©„…šhi~dezvwŒ“”©§¨½—˜­]^s()>,&'<>?SXYm‚ƒ•ÃÄÖÊË݌Ÿ=>P  abtš›­ÂÃÕ»¼Î£¤¶pqƒABTKL^jl{^`o;=L57FwxŠ±²Ä‚—#$9 877Q›èèÿüüÿ«ªÉvw•›œ¸”˜³Ž’­˜œ·—›¶³·ÒåéÿÞâýƒ‡¢$(C15P~‚’–±gk†KOjkoŠ¡¥À¬°Ë¢¦Á–šµ™¸’–±„ˆ£{štx“9=X9=X‘•°¡¼hl‡JNi3#(>SXl„˜»ÀÔ´¹Í†‹Ÿy~’€…™œ¡µafz 43JOcej~ns‡gltyŒ§­½…•RXhW]mfl||‚’|‚’„Šš|‚’nt„X^n‘—§»ÁÑ~„”ciwVXdADM58A8;D?BKKNWUXaVYbJMVCFO9K#%2:>QGHúö÷ñòôôøûêîñîïñüúûÿöù¸¬¬G99C1/pXV{a`{ccu`_v`bq^`p]asdkqdmdZcC9DSMY¯¨¸•‘ @=NF@Ln^amYXpXXv\]rUWpPSuRXiFLwTZrOUjKQeKNfMQeQSaQR_OPkWYjVWjTWgSTfPScOPbLOaMNgQT^JK\FIbNOhRUbNOYCFR>?K;;J?=C97MHD@?;RWSñúõøÿÿõÿþëóõûÿÿìïô¤¥ª”‘˜©£¥È¶´Ê¶¯Ê¶¯Ê¶¯Ê¶¯Ê¶¯Ê¶¯Ê¶¯Í¹²Ì¸±Ê¶¯Éµ®Éµ®Ê¶¯Ì¸±Í¹²Ê±¬ÜÅ¿íÕÑíÚԈyv"tljüûùûüþï÷ùòýÿìûþÂÕ۟·»{’˜=PT +&&&### !!!!!!!!!!!!///<<<666(((###$$$###+++222555444-33+99Uih€¥µµîúúòüýÁÇǒ”“­«¬²¬¬¶¬«·««¸¨¨³££±ž®š›¨’”¡ŽŸ‹ŒžŽŽ˜ŒŒ ˜–„ƒ796YbaêöôîÿÿÖìéÌåâ¿ÜØÄáÝÆääÜûÿäÿÿÔðûB^i*41HP?S\?RYET[GT\ITZKT[MRXKPVILQGLPGLOEMOEMOEMOEMOEMOEMOEMO?GI?GI>FH>FH=EG@6>@08:/79.68,46+35)13(02'/1uw„hjwWYfNP]KMZHJW@BO8:G-/<46C@BOJLYOQ^LN[FHU@BQGH\gh}†‡œ¥€–hi~hi~}~“œ²±²ÇŸ µbcx*+@.&'<;cB;cE=lNFwZR‚e]‘tl x©‚{¸‘ŒË¨¤Ä¨¥D22NDEùõöõöøøüÿëïòîïñûùúÿûþÙÍÍtffvdbxrŠqjŠsm’}x”|Œzx{{’ƒ†…y}I@E;6=ÔÎÚÆÃÎGERB=D–†† ‡“{wœƒ¯“¬‹¨†…¢~~©……ž|{’rsqnvu“~{“€|’{’}z‘|w‘ywxsŒtr‡rm‡om„oj‰qo‚mh~fd|gb€hfwb]aIGE2.J;8J?=C97NIECB>OTPñúõöÿþîø÷ßçéíòõËÎÓtuzXU\hbdgUSiUNiUNiUNiUNiUNiUNiUNq]Vp\UnZSmYRmYRnZSp\Uq]V‚id›„~¾¦¢Ä±«cTQogeÿÿýûüþñùûóþÿìûþÁÔڜ´¸}”šH[_ +&&&### !!! !!!!!!...;;;666'''###$$$###+++222555444-33,::Thgƒ““¨¸¸êööðúû¿ÅňŠ‰¤¢£¨¢¢¬¢¡­¡¡®žž©™™§“”¤‘¡‹›‡ˆ™…†™‰‰“‡‡›“‘€}241Xa`êöôïÿÿÖìéÌåâ¾Û×ÄáÝÇååÜûÿäÿÿÙõÿJfq.81HPAU^AT[ET[GT\JU[LU\NSYMRXLOTINRHMPFNPFNPFNPFNPFNPFNPFNPAIKAIK@HJ?GI>FH>FH=EG=EG:BD:BD9AC8@B8@B7?A6>@6>@08:/79.68,46+35)13(02'/1ln{bdqVXeOQ^LN[FHU:?SKL`hi{¯°ÂÓÔ棤¶FGY(*+=mn€¦§¹»¼Î˜™«z{WXj34F9:L_apacrUWffhw˜™«›œ®WXm.6677Qžž¸üüÿßßûonRSqžŸ»Ÿ£¾”¯tx“_c~›ŸºäèÿÎÒípt26Q=A\}œ’–±]a|?C^{š­±Ìœ »’–±”˜³”¯mqŒ`d‰¨Ÿ£¾`dpt¼ÀÛ¬°Ëei„FJe48Q7AJADMNQZbengjsPS\ADMPS\SV_?BK<>KUWdacp]_l\^kRTa57D'GIVUWdacprtŒŽ›—™¦†ˆ•oq~mo~km|kmzXZg@BNLNZgjsmpyGJQ;>E.16'*/$(+#'*#'(%)*---111333333666???GGGKKKEEEBBB===777111,,,)))''' !!!!!!"""######$$$""""""""""""""""""""""""************************111000///...---,,,+++***'''''''''''''''&&&&&&&&&))))))))))))))))))))))))2./2./2./2./2./2./2./2./40151251262373484584594::7B>:IFBQNJYUSaZYg^]k^`m_co^bn[am[am[cn]ep_isajs_djbejbch[\aTRWNLQSMQXORXMQYMO\LM\LM_KL`LMaKMaLKbOIcPIdPIgPJjQMmQNoQQoQSmPTnTWlVYP=?F7:cYZtklomnmvuiuufpqfpqfnp`hjjor„‡imp/36#&%*)',+).)',)'*++-+++++++++++++++++++++111‘‘‘¥¥¥;;; ,,,++-+*/+*0+*0+*0+*/+*/++-+++111//-%&! |}wÂýXYS//-/////////////////////000666111111%%%‚‚‚ñõö‰‘“ -;>ëøþñþÿôÿÿåîóéîôôõùîè褚˜„sl©•Œ¹¡•½Ÿ”Ϫ¤ÈŸ›¹Œ¨{—pk†_ZvQKjGAfC=bA:cE=nPHx[S„g_‘tlŸ~w­†¸‘ŒÅ¢ž²–“1F<=úö÷þÿÿ÷ûþíñôðñóûùúÿüÿøì죕•¯™Ûļº¢–®˜·£š¹¥ž¼«¤Ê¸´ÏÁÀ•‰‰/&'4/3ÙÔÛôñø‡†ŽNIM¸«¥Þ̸¤›¼£œúßØÿâÝïÌÈîËÇÞ»·È¥¡­Œ‡¡ƒ{ª†¼¦›Ë·¬Ó¿´ÙøØ·ֽ¶Ñ»°Ï¶¯Ê´©È¯¨Æ°¥¹ ™»¥š°—žˆ}ž…~š„yv]VD0)I:7J?=B86OJFFEAMRNòûöôýüëõôÜäæò÷úÙÜᎏ”|ƒ˜’”¼ª¨¾ª£¾ª£¾ª£¾ª£¾ª£¾ª£¾ª£Ä°©Ã¯¨Á­¦À¬¥À¬¥Á­¦Ã¯¨Ä°©Á¨£Ò»µòÚÖëØÒwheg_]ùøöûüþóûýõÿÿëúýÀÓٚ²¶–œSfj '''%%% !!!"""  ---:::555&&&###$$$###+++222555444-33*88Pdc‘‘¥µµãïïí÷øÄÊʋŒžœ£§œ¨œœ©™™¤””¢ŽŸ‹ŒŸ‰‹˜„…—ƒ„—‡‡’††›“‘~|241Xa`êöôðÿÿ×íêËäá½ÚÖÄáÝÇååÝüÿåÿÿßûÿSoz2<2IQCW`EX_FU\HU]KV\MV]PU[OTZNQVLQUJORHPRHPRHPRHPRHPRHPRHPRBJLBJLBJLAIK@HJ?GI?GI>FH:BD:BD9AC8@B8@B7?A6>@6>@19;08:/79.68,46*24)13)13dfs\^kSUbNP]LN[CER46C')6')6/1>=?LLN[UWdTVcKMZBDSMNbcdywx€–€•xyŽ|}’Ž£§¨½¼½Ò§¨½cdy+,A3./DCDXMNbYZl”•§ÉÊÜ°±ÃQRd+34Fuvˆµ¶ÈÂÃՊ‹jk}XYk9:L67IY[jbdsacrxz‰ž°ˆ‰›FG\4//G##;??Y««ÅòòÿººÖUTsVWu­®Ê©­È•™´quUYt‘•°ØÜ÷¸¼×`d=A\HLgy}˜‘•°]a|;?Z|€›«¯Ê”˜³”¯—›¶… IMhFJe“—²œ »X\wy}˜º¾Ù¤¨Ã`d48S.2KJOe»ÀÔñöÿáæú™ž²Š£„‰‰Ž¢–›¯OTh+7>>===@@@CCCBBB;;;888333...+++)))((())) !!!"""######$$$""""""""""""""""""""""""........................//////---+++)))(((&&&%%%%%%%%%%%%%%%&&&&&&&&&&&&))))))))))))))))))))))))2./2./2./2./2./2./2./2./40151251262373484584594:74?<8GD@OMIXTR`ZYg^]k_an`dp_co\bn[am[cn]ep^hr`ir^ci`ch`afXY^QOTKINPJNVMPTIMUIKXHIXHIZFGZFG[EG[FE]JF]JD_JEaIEcIHeIHeHJfIKfIM_FJaLQK;>>26YPSjdfdddclk`ll\fg[ef\dfU]_Z_binqaeh37:%$)%$)'%*,*/(&+)'*++-+++++++++++++++++++++!!!111‹‹‹¢¢¢=== +++++-+*/+*0+*0+*0+*/+*/++-+++111..,&'" {|vÅÆÀZ[U//-/////////////////////000555000111'''|||òö÷Ž–˜ +9<ê÷ýòÿÿôÿÿäíòíòøüýÿþøøÅ»¹³¢›ÞÊÁóÛÏöØÍЫ¥É œº‘©€|˜ql‡`[wRLkHBgD>eD=hJBtVNd\ph›~vª‰‚Ò«¤Ý¶±ûØÔÕ¹¶-=34ùõöûüþõùüîòõóôöúøùÿùüÿöö¸ªªÍ»·¶ •‡pbzdW„qc„peuŸŽ†ƒ}zok'#"½¸¼ÿýÿÀ¿ÄIEDVIA¢„jVKeMCÖº¯öØÎÚ¸¯Ý¸°Ò­¤³Ž…Šh^rREoSEy_P€iYƒl\jZ€iYeXxaQv\OpYIoUHkTDiOBzcSx^QhQA}cV”}mz`S='J84J?=A75OJFHGCKPLòûöíöõâìëÓÛÝìñôÛÞ㚛 •’™·±³Ê¸¶Ì¸±Ì¸±Ì¸±Ì¸±Ì¸±Ì¸±Ì¸±Ë·°Ê¶¯È´­Ç³¬Ç³¬È´­Ê¶¯Ë·°Ì³®ÚýúâÞúçáŒ}z \TRöõóûüþõýÿöÿÿëúý¿Òؘ°´˜ž\os + )))&&&"""###### ---:::444%%%###$$$###+++222555444-33$22H\[zŠŠ­­Øääí÷øÑ×םŸž žŸ¤žž©Ÿžªžžªšš¥••£ Œ¢ŒŽœˆ‰›‡ˆ›‹‹–ŠŠŸ—•„ƒ796W`_êöôñÿÿØîëÊãà¼ÙÕÄáÝÈææßþÿçÿÿäÿÿZv5?4KSFZcH[bFU\HU]LW]NW^RW]QV\PSXNSWKPSIQSIQSIQSIQSIQSIQSIQSDLNCKMCKMBJLAIK@HJ@HJ?GI:BD:BD9AC8@B8@B7?A6>@6>@2:<2:<19;/79-57,46+35*24_anXZgQS`NP]KMZACP02?"$1')6.0=<>KLN[VXeUWdLN[DFUWXlgh}tuŠ}~“‚ƒ˜€–„…š’“¨©ª¿¾¿Ô¨©¾cdy+,A 523HFG[PQeOPb€“¿ÀÒ¸¹ËYZl,67I{|ŽÁÂÔÉÊ܄…—cdv[\n@AS67IVXgcethjyƒ’›œ®vw‰56K2EE],,DBB\¨¨ÂÜÜø››·KJijk‰º»×¯³Î™¸vz•VZu‹ªÎÒíª®ÉZ^yFJeMQlrv‘‘¬^b};?Zƒž«¯Ê’–±•™´œ »y}˜15P6:Uœ »ƒ‡¢:>Yimˆ©­È™¸ae€.2M/3L`e{×Üðùþÿíòÿ¢¶†‹Ÿ‰Ž¢ˆ¡”¨JOc,>CW^cwmr†rw‹€…˜¶»Î†ŒœmsƒbhxV\l`fvou…pv†u{‹tzŠou…{‘–¦ƒ‰™hn~hn|^`lNQZGJSILUJMVOR[UXaTW`QT][^g„‡‹Ž—SV_*-6'*3!$-?ANhjwkmzFHU8:GCERBDQ79FIKXWYfln{wy†ƒ’ŸƒY[h`bqˆŠ™‘žoq~np|ŠŒ˜or{+.7/29 #*!!$)*.1,03-12/34>>>GGGLLLGGGBBBAAA???:::222///+++((('''(((***,,, !!!!!!"""#########""""""""""""""""""""""""000000000000000000000000...---+++)))'''%%%###"""$$$$$$$$$%%%%%%%%%&&&&&&))))))))))))))))))))))))3/03/03/03/03/03/03/03/040151251262373484584594:63>:6EB>MLHWTR`ZYg_^l_an`dp_co\bn\bn[cn]ep^hr`ir_djadi`afXY^PNSKINOIMULORGKSGIVFGUEFXDEXDEYCEWCB^LH^MF_LFaLIcKIdJKfIKdJMfKPY@D`KPN>A:.2XORnhjbbd^fhZffV`aU_`U]_MUWOTW\ad]ad59<(',%$)'%*,*/(&+)'*++-+++++++++++++++++++++$$$000ˆˆˆ   >>> ***++-+*/+*0+*0+*0+*/+*/++-+++111..,&'"z{uÇÈÂZ[U//-/////////////////////000555000111(((yyyòö÷‘™›+9<ê÷ýòÿÿõÿÿäíòðõûþÿÿÿùùËÁ¿¼«¤äÐÇòÚÎîÐÅÚµ¯Óª¦Ãš–³Š†¡zuid€[UuRLiF@gF?lNFz\T‰ld–yq¦‰µ”Ê£œÜµ°ÿôðîÒÏ'5+,ùõöøùûôøûîòõôõ÷öôõùðóþòò¸ªªÐ¾ºÍ·ª¦ª•„½ª›»¨šÃ³¦¿®¤“†}]RL)"%!°¬«ÿþÿââäGC@xkbØȹˆuggPBçË¿ÿìáÚ¸¬Ó¯£ÐªŸÀš°Œ|®|¸™…¿¤½¤Ž¸Ÿ‰É®›Ç¬™Ä©–¿¤‘» ¶›ˆ³˜…±–ƒ°•‚§”°•‚‹p]ta¥Šw}bO1 J92J?=A75PKGIHDJOKòûöñúùäîíÔÜÞíòõÝà圝¢™–¼¶¸Ð¾¼Ò¾·Ò¾·Ò¾·Ò¾·Ò¾·Ò¾·Ò¾·Ñ½¶Ð¼µÏ»´Í¹²Í¹²Ï»´Ð¼µÑ½¶È¯ªÕ¾¸õÝÙÿð꣔‘#XPNüûùúûýöþÿöÿÿëúý¿Òؗ¯³˜ž`sw ***'''###$$$%%%!!!,,,999444%%%###$$$###+++222555444-33--AUTsƒƒ•¥¥ÑÝÝí÷øÝãã®°¯£¡¢¨¢¢¬¢¡­¡¡®žž©™™§“”¤‘§‘“¡Ž Œ œ¥›Š‰‡=?@6>@4<>3;=2:<08:/79-57,46+35UWd>@M@BORTadfsIKX13@!#0/1>46C<>KEGTMO\QS`TVcTVe`aujk€uv‹€•…†›€–~”„…š—˜­¬­Â¤¥ºkl/0E 589NTUiTUi=>PZ[m¾¿ÑÌÍßno 2MN`‡ˆš»¼Î¿ÀÒ€’YZlQRdABTABTVXgacrdfu~€‘£abt>?T[\q„„œnn†ff€’’¬££¿€€œ_^}€ž±²ÎÀÄߘœ·~‚vz•£§Â°´ÏmqŒIMh]a|fj…qu}œMQlW[v~‚ ¤¿¼ÀÛ¤¨Ã›Ÿºpt ,+/J¯³Î–šµQUphl‡Ÿ£¾¬°Ëvz•)-H,0Ix}“æëÿùþÿØÝñ•š®”¨‘–ªˆ¡qvŠ6;O 4\aukp„hmz“–›®²·Ê|‚’Z`pbhxhn~fl|jp€gm}tzŠou…~„”‰Ÿ¡§·}ƒ“lr‚gm{acoTW`@CL36?ILULOXY\eknwY\eZ]f^ajben^ajMPY25>!*9;HIKXOQ^9;H$&313@KMZUWd[]jikxŽ|~‹‚„‘’”¡{}ŠVXewyˆª¬»‘“ `boVXdRT`EHQ.1:(+2*-4),1&).+/259<<@A>BCJJJHHHEEE@@@;;;666222000&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!!!!!!! """###%%%''')))+++---...------------------------%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$%%%&&&''''''(((((())))))***+++,,,---......2./2./2./2./2./2./2./2./4014014014014014014014/574?62AD@OMIXUSa_^l^]k\^k_coaeqagsciuckvckv`jtajshmsjmrefkZ[`RPUFDIGAEQHKODHPDFRBCRBCT@AT@AT>@S?>R@BE8FH;CE8@B6>@4<>19;,46'/1WYf?ANBDQUWdikxOQ^57D$&3-/<24A;=JDFSKMZPR_RTaRTcYZngh}wx‚—‚ƒ˜~”|}’€–‘’§¦§¼£¤¹qr‡78M$%:=>S\]qXYm12DJK]·¸ÊÖ×鄅—89K`as‡ˆš®¯Á°±Ãz{Z[mQRd@AS@ASUWfdfumo~€‚‘‚ƒ•RSeBCXqr‡œœ´nn†WWq›‘‘­}}™ml‹Œ«°±ÍÄÈã ¤¿…‰¤~‚¡¥À¡¼UYtRVq`dbffj…quNRm^b}…‰¤ž¢½ÉÍ貶ќ »lp‹/,0K§«Æ—›¶PToX\w…‰¤šž¹nr)-H15N‰Ž¤îóÿöûÿÍÒ掓§Š£’¦…ŠžsxŒ,1E#7gl€joƒ\auuzŽ˜°®³Æw}Y_ofl|ou…nt„msƒhn~msƒ^dtsy‰‹‘¡¤ªº|‚’ou…ouƒegsWZc@CL25>HKTNQZ_bksvSV_RU^TW`Y\e\_hVYbILU=@ICERBDQ>@M13@')668EMO\WYfikxuw„†ˆ•…‡”ŠŒ™“•¢y{ˆZ\iz|‹—™¨uw„HJWBDPACO9BEEIJFJKEEECCC@@@<<<777333000...&&&&&&&&&&&&&&&&&&&&&&&&!!!!!!!!!"""""""""######%%%&&&((()))+++---//////------------------------%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$%%%&&&&&&'''((((((***++++++,,,---...//////2./2./2./2./2./2./2./2./4014014014014014014014/552=84CC?NNJYXVda`ncbpcerimyko{kq}msltltjt~js|pu{orwklqbchWUZKINKEISJMQFJRFHUEFTDEVBCVBCV@BUABO@=O@;PA>SA?V@BY@CZ?DZAET;AP9?OBE6:=-,1&%*)',*(-'%*#!$%%'%%%%%%%%%%%%%%%%%%%%%'''%%%hhh‡‡‡@@@(((--/&%*'&,'&,('-)(-)(-**,***222..,*+&fgaÃľ]^X 00.000000000000000000000///---///555&&& lllðôõºÂÄ -0èõûõÿÿîùÿæïôìñ÷üýÿý÷÷ñçå± ™Éµ¬ÞƺëÍÂÞ¹³Ø¯«Ë¢ž¼“ªƒ~˜ql†a[zWQgD>fE>lNF|^Vph€x®‘‰¿ž—Χ Þ·²ÿêæÿîëI77'óïðþÿÿöúýíñôóôö÷õöýô÷ûï﫝®–äÎÀã̺ÜÇ´×ijñÞÏÿöçƵ«SF="2+# +‹‡†ìëéêêê±­ª}si “ƒ€n`N8*¬„ÿãÖݹ«ÏªšÇ É£Ï¦’Ò¬•Ó±˜Ó´˜Ôµ™Ôµ™Ñ±˜Ï±—ϯ˜Ì®”Ë«”ȪÈ¨‘ƨŽÊª“غ ì̵›}c^>'‘sY{[DE*O<5H=;C97LGCHGC?D@ÞçâôýüàêéÒÚÜóøûáä陚Ÿ˜•œÁ»½Ë¹·Ï»´Ò¾·ÔÀ¹ÔÀ¹Ó¿¸Ñ½¶Ð¼µÐ¼µÏ»´Í¹²Ë·°Ë·°Ì¸±Í¹²Îº³Õ¼·Õ¾¸âÊÆüéã³°4)'G?=õôòö÷ùöþÿíøúëúýÉÜ♱µ…œ¢k~‚%%%"""&&&$$$""" )))999;;;,,,$$$''' ###***///444666399"008LKv††“££ÊÖÖìö÷ìòò®°¯›™š¬¦¦¯¥¤§››«››«››¨”•¥‘’¡‹›‡ˆžŠ‹šŽŽ¡™—ŸžœQSPQZYÓßÝòÿÿÌâßÁÚ×ÃàÜÆãßÊèèÈçìÞüÿéÿÿ«¶,DN0GOOclI\cN]dMZbLW]KT[LQWLQWMPUMRVNSVLTVLTVLTVLTVLTVLTVLTVLTVLTVKSUJRTJRTIQSHPRHPRBJLBJLBJLBJLBJLBJLBJLBJL?GIK(*7+-:02?9;HBDQIKXNP]PR_PRaSThdezz{ƒ„™€•{|‘|}’|}’‹Œ¡ ¡¶¢£¸yz@AV+,AEF[ij~gh|+,>;?QJK`¥´´ÌiiBB\nnˆ€€œ~~š‚ ™š¸«¬ÈÅÉ䨬Ǎ‘¬ŠŽ©¥©Ä‡‹¦<@[W[vae€_c~^b}ei„TXsgk††Š¥™¸ÙÝøÄÈ㛟ºhl‡3,0K—›¶™¸Z^yUYtw{–’–±mqŒ,0K7;Tœ¡·ñöÿëðÿÀÅن‹Ÿ‡Œ Š£ƒˆœhm$)=7K:AH@CJ?BGMPL[ZXfcbpon|rty}‰z~Š{|‚Ž|„|„z„ŽzƒŒ€…‹{~ƒwx}lmrZX]IGLICGOFIPEIQEGSCDRBCT@AT@AT>@R>?N?AU?BW>DW>DT:CO:AM8:GACPHJWMO\OQ^PRaTUief{€•„…šz{{|‘‚—|}’Œ¢žŸ´¡¢·|}’HI^34IPQfxypq…)*<78J˜™«¼½Ï‚”]^pŒŸ—˜ªŽ¡†‡™op‚[\nJK]45G45GMO^jl{‹œ‘“¢kl~@AS`av­®ÃµµÍ\\t11Kgg€€œˆˆ¤“’±š›¹¡¢¾½Áܪ®É’–±—›¶±µÐ… 59TTXs^b}bf^b}^b}]a|nr… •™´ãçÿÎÒ홝¸fj…8(,G„ˆ£“®bf`d}œ•™´lp‹.2M:>W ¥»æëÿÛàô¹¾Ò‡Œ ‰Ž¢Œ‘¥ƒˆœLQe$)=afz¨­Álq…AJADM;=J35B8:G?AN79F57DKMZbdqrtz|‰†ˆ•œ—™¦‡‰–jlynp}œž­ŠŒ›^`m>@M=?K@BN?BK@CLPSZQT[MPUEHMAEHAEH?CD;?@333222000...,,,***((('''&&&&&&&&&&&&&&&&&&&&&&&&######%%%&&&(((***+++,,,/////////000000111111111************************%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&'''(((((())))))////////////0000000000002./2./2./2./2./2./2./2./4014014014014014014014/50-8<8GA=LQM\XVdcbp„ƒ‘‹š‹›‘“Ÿ•¡—¢—¢Œ– –Ÿ•›‰Œ‘Š‹€…b`eLJOPJNULOTIMTHJVFGUEFWCDUABU?AT@AM?N>>R>@S=@UfE>lNF|^Vphžy°“‹Á ™Õ®§â»¶ÿêæÿìésaa/%&âÞßðñóöúýîòõóôöõóôýô÷ÿó󭟟«™•äÎÃâ˽ÙõçÔÆÿîàÛ˾wf^%/$A:4{|ÛÙÜááãÏËʹ²Œ~sA0&:&´˜ÿàÕÕ±¥Á™Ì¡‘Σ’Ѧ“Õ«•×¯–Ö±–Ö±”Õ²–Ò®”Ю“Ь’Ï­’ΪÍ«Í©Ë©ŽÏ«‘Ý» øÔº¥ƒhZ6‡eJ{W=K/M:3H=;A75ID@HGC8=9ÇÐËõþýãíìÑÙÛõúýêíò”•š€}„ª¤¦ÒÀ¾×üÜÈÁßËÄÞÊÃÙžӿ¸Îº³Á­¦¿«¤»§ ¸¤µ¡š´ ™´ ™´ ™´›–¶Ÿ™»£ŸÓÀº«œ™2'%H@>óòðùúüôüþæñóêùüÓæ졹½…œ¢j}###!!!  )))999;;;,,,$$$''' ###***///444666399&&5IH|ŒŒ™©©ÏÛÛóýþëññ™›š‹‰ŠŸ™™¦œ›Ÿ““¡‘‘¡‘‘žŠ‹œˆ‰‡‰—ƒ„š†‡™‰‰–ŠŠž–”›š˜MOLKTSÉÕÓòÿÿÑçäÄÝÚÃàÜÇäàÉççÇæëÞüÿçÿÿ•±¼.FP'>FNbkNahO^eN[cNY_LU\MRXMRXNQVNSWPUXNVXNVXMUWLTVLTVKSUKSUKSUJRTJRTJRTJRTJRTJRTIQSEMOEMOEMOEMOEMOEMOEMOEMOAIK?GI=EG,46&.0Z\iEGTMO\fhu|~‹`boBDQ-/<,.;13@9;HCERJLYOQ^QS`QSb\]qjk€‚—‚—rsˆ|}’‹Œ¡‚ƒ˜‘’§ ¡¶Ÿ µ|}’LMb=>S\]r…†šmn‚*+=>?Q‹Œžœ¯lmqr„´µÇ¨©»ˆ‰›yzŒmn€]^pGHZ/0B+,>LN]np–˜§Ÿ®xy‹]^p‚—¾¿Ô¡¡¹OOg))Cjj„©˜˜´œ›º“”²˜™µ¯³Î¥©Ä‘•°Ÿ£¾ÁÅà‰¨>B]NRm\`{fj…_c~UYtfj…vz•|€›•™´àäÿÈÌ瘜·nr"=!%@tx“ƒžbfhl‡†Š¥•™´jn‰6:UGKd•š°ÌÑåÊÏã¿Äؑ–ª•©‘–ªƒˆœ.3G',@~ƒ—°µÉfk8=Qmr†Ÿ¤·¢§ºsy‰pv†z€|‚’…‹›}ƒ“pv†Y_oHN^fl|‡—™Ÿ¯‚ˆ˜|‚’jp~FHT#&/=@IOR[JMV]`i€ƒŒjmvFIRBEN;>G36?-09,/8/2;25>@BO;=JBDQHJW<>K8:GNP]fhuuw„~€‡‰–‘“ ™›¨y{ˆ[]jvx…—™¨…‡–cer@BO57C<>J?BKADMSV]UX_PSXGJO?CF;?B59:.23++++++***))))))(((''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&'''(((***,,,---//////111111111000000/////////((((((((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%%(((((())))))***+++,,,,,,000000000000////////////2./2./2./2./2./2./2./2./4014014014014014014014/5/,7<8G@-&,§Š„óÒËÓ­¤É¡—Í¡”Ñ£”Ô§”ת•Ú­–Ù¯–ر”Õ°•Ò­“Ь”Ñ«”Ï«“Ъ“Ϊ’Ï©’Í©‘Ъ“ݹ¡úÔ½¨„lX2„`H|V?P1L92H=;@64FA=HGC495¹Â½ùÿÿêôóÑÙÛíòõàã老†]Za{}gUSlXQq]Vt`Ys_XnZShTMcOHo[To[Tq]Vt`Yye^kdƒoh†rk§Ž‰²›•º¢žÍº´ ‘Ž#>64óòðøùûôüþåðòëúýØëñ£»¿…œ¢k~‚###  )))999;;;,,,$$$''' ###***///4446663991ED€¢²²Ôààöÿÿëññ•—–|z{’ŒŒ›‘•‰‰–††”„„“€‘}~”~€Žz{|}”ŒŠ‘ŽDFCGPOÄÐÎñÿÿÔêçÅÞÛÄáÝÈåáÉççÆåêßýÿæÿÿ™µÀ/GQ!8@MajQdkP_fO\dNY_MV]NSYNSYORWOTXOTWMUWLTVKSUJRTIQSHPRHPRIQSJRTJRTJRTJRTJRTJRTKSUFNPFNPFNPFNPFNPFNPFNPFNPCKMBJL@HJ?GIBR=BR;CQFH7?A-57%-/TVcGIVUWdln{z|‰XZg;=J)+846C9;HBDQKMZRTaWYfY[hY[juvŠpq†vwŒhi~VWlxyŽœ²Ž¤Ž£ž³œ²|}’[\q[\qxyŽ“”¨dey,-?NOayzŒnoQRdŠ‹ÚÛíÂÃՈ‰›rs…qr„bcuLM_34F();ACRWYhy{Š‡‰˜ŒŸ¨©»·¸Í¥¦»‰‰¡ZZr$$>ZZt””°££¿Ÿž½–—µ—˜´›ŸºŸ£¾Œ«›ŸºÍÑ쐔¯>B];?ZVZutx“imˆKOjrv‘~‚qu¥©ÄÇË梦Áž¢½–šµ26Q9osŽ–šµosŽrv‘”˜³—›¶pt[_ztx‘ƒˆž™ž²·¼ÐÜáõ¦«¿”™­“˜¬x}‘*/C:?Sy~’pu‰;@T+0Drw‹·¼Ï©®ÁŽ”¤–œ¬…•fl||‚’€†–u{‹jp€ek{rxˆx~Ž•›«„Ššv|Œbhv.0< #,9AJAH?BG;>C8:IRN]31?WVdÕÔâêìùÇË×ÉÍÙÉÏÛËÑÝËÓÞËÓÞÈÒÜÉÒÛÇÌÒËÎÓäåêÈÉÎnlq;9>QKOh_bbW[bVXcSTaQRaMN_KL^HJ[IISEEOEDRDDRBCS@DR?CR=DR=DQ24?69 wryáÞçÚÙᱯ´µ«¬Ä¶³ˆvtH30„fdض´Ú³®Åš“Ñ¢šÓ£—צ—Ùª–Ú¬•Ù­”Ù­”Ö¬“Ò©“Ò©•Ò©•Ò©•Ò©•Ò©•Ò©•Ò©•Óª–Ú±øÏ»¬ƒoY0‡^JƒZFW6%K70H=;?53C>:IHD-2.£¬§óüûðúùÐØÚèíðñôù©ª¯‹ˆ±«­Â°®Æ²«È´­Ê¶¯Ë·°Éµ®Ç³¬Æ²«Ä°©Ã¯¨Á­¦¿«¤¾ª£¿«¤À¬¥Á­¦Ãª¥Ê³­Ñ¹µðÝ×Æ·´3(&3+)ÞÝÛôõ÷ôüþæñóïþÿÝðö£»¿ƒš q„ˆ"%&&&!!!  )))999;;;,,,$$$''' ###***///444666399(<;ˆ˜˜¸ÈÈâîî÷ÿÿíó󜞝ƒ‚œ––¨ž£——£““ Ÿ‹ŒžŠ‹¡‹›‡ˆ‰ŠœŒŒšŽŽ¡™—ž›QSPAJIºÆÄîÿÿÙïìÈáÞÄáÝÉæâÈææÅäéßýÿäÿÿŸ»Æ1IS/7L`iVipQ`gQ^fP[aNW^OTZOTZQTYPUYRWZOWYNVXLTVJRTIQSGOQGOQHPRHPRIQSJRTJRTKSULTVLTVIQSIQSIQSIQSIQSIQSIQSIQSFNPEMODLNDLN@HJ8@B-57%-/QS`GIVWYfmo|xz‡TVc8:G')679F<>KEGTNP]UWdZ\i\^k\^m{|Žpq…pq…^_sLMauv‹žŸ´‘’§†‡œ™š¯š›°}}•bbzff~€€˜•–«RSe-CDVmo~ghzTVe•–¨áãòÆÇوŠ™st†su„dewOQ`89K+,>HI[WZktu‰ƒ†™š›¯ÇÉÞÎÏä ¢¹¥eg€##=KMfŒŒ¨Ÿ ¼Ÿž½žŸ»šž¹™¶ ¤½Œ©–š³ÊÎ犎§48Q.2KQUn|€™tx‘QUnx|•}šgk„®²Ë¾Âە™²£§À¦ªÃ9=V7sw£§Àrvpt“—°“—°koˆX\umqŠƒˆž•©µºÎæëÿª¯Ã•©•©rw‹5:NGL`x}‘Z_s',@$8w|ÖÛﭲŗ­¢§º€†–^cvw}„—v|ŒrwŠlr‚sx‹w}˜°ƒ‰™sx‹gjy.0<*-466>:=DJJR>AH<>F@CJ@@H?BIGGOKNWSUapr€‚egt>@M>@MY[hkmzkmzz|‰ƒ…’’”¡’ŸKMZ02?€‚ÞàìïñýÕÕß]`i + +#22:-0756;9B8AT>AQqPKqPIwXSˆjbš{vª…½ž™Í¬¥â½·ÿäáÿõóÿóïN:;ÇÁÁøøøùúüòóõóóõðîïúôöÿúû®¢¢£““ÞÉÄàÉÃÿìèûæᓀ|7%#/?11;/1=26  qlrãÞäßÜã³®´ª¡¤Ê¾¾œŽŽI56dLLĦ¤Þ»¹Â›–ΣœÑ¥šÖ¦šÙªšÚ«™Ú«—Ú«—Ø«–Ô§’Ò¨’Ó¨•Ó¨•Ó¨•Ò©•Óª–Óª–Óª–دõ̺«‚pY0†`Mƒ]JX7(J50K=<@53D<9KGD +0,ž§¢òûúñûúÌÔÖÜäæíðõ­®³”“™»µ·¿°­Ä°©Æ²«È´­Éµ®Éµ®Éµ®Éµ®Îº³Ì¸±Ê¶¯Ç³¬Å±ªÅ±ªÅ±ªÆ²«Ë´®Ë´®Ð»¶úéâÜÍÊC972-*ÔÓÑñõöóýþåóôîÿÿÝò÷£»¿šŸs†Š%''''! !!!! !!!! )))8:9;;;,,,$$$''' ###)+*///354666399%9:‰›¿ÏÏäòóöÿÿîóöž¢£…ƒ„žš™«¢£§››¦˜˜¤””¢‘¢Ž£Žž‹‡ ŽŒ ‘Ž’¥š¤ UUSBHH¹ÃÄïÿÿÚðîÈààÄáßÇçæÇæèÃäëÝþÿãÿÿ ¼Ç/JS.5JagXkqPahP_dN\_MX\NVYMUWPUXNVXRZ\PZYOYZMWVKUVISRHRSGQPFPQGQPGQRHRQJTUKUTKUVLVWISTISTISTISTISTISTISTISTFPQEOPEOPDNO@JK7AB,67#-.KMZLN[OQ^RTaQS`HJW:*,946C>@MJLYTVc^`mwy†˜š§²´Ãxy‹STf./A=>Pop„‰ŠŸz{oo‡‚‚šŠŠ¢~~˜hh‚zz”¬¬È~~–*+=,GIX^`m_apikx‰‹šÐÒßÈÊّ“ wyˆln{acrRTa9;J23E_avQVlOQj}šÃÅÞíñÿåçÿ§«Ä‘ª_c~#$@&*Est¢¦ÁžŸ»‘•°Š¥”™¯‡Œ¢Ž“©™ž´¬±Çrw27M &TYo’—­x}“ej€w|’y~”‹¦ÀÅۙž´”ª°µËº¿ÕNSi"8kp†ž£¹in„w|’› ¶ˆ£af|[`vw|’v{otˆ¤©½Ûàô»Àԓ˜¬‹¤otˆLQeY^rkp„INb %#(<’¦ßäø¢§»¢µž£·tyŒFK_v{Ž€…™y~‘|•uzkp„‡ŒŸ’—«}‚•uzŽfiz==G'(-&%+56;:9?45:106)*/,+1-.310645::9?>?DCBHEEM%'3bdq²´ÁŽNP]:::<465///+++))))))((('''&&&%%%$$$$$$+++,,,---...///000000111224335438446216..0+*/((*&%*'')'&+'')&%*$$&"!& "'''''''''&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,........................,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.-+0,,.-+0,,.-+0,,.20511320511320511320510554:87??>FHGO!YX`õôüùùÿóóûããëêêòèèðííõææîííõ×Úßßãæâæçôôôõñò«¢£hZZ’€€ ‹Šš}›~z˜yt“toŽph‰ka†h^‚g^w_[p[XmUQjQMiMIeIE`D@\@=Z@?YCEWDHL?FC9BGAMXVcegsqzs~„ƒŒ‘•ž£’™Ÿ{ƒ††Š ¥©y}€+/2&&&-+,&$%(&')'(&&&&&&&&&&&&&&&%%%%%%%%%$$$222777111+++&&&%%%)))""$##%$$&&&(''))))***+++111)))&&& SSQšš˜SSQ777666555444333222111111555666111444///LLLéíîáëì ./ +¶ÀÂõýÿò÷úìðñññóôóñÿùùþôò´©§Ãµ²äÕÐÜÇÂѲ¯Ë¨¤½š˜­Š†œyw†c_oLJ^=8^<:mLGƒa_˜wrªˆ†º›–άªÙ·µèÅÃíËÉÿñïÿëêjVU…ƒÿüùüûùññïøö÷óñòý÷ùûòõ­¢¦š‹ŽßËÌðÛÚûæ寚™R>=@..I77F66?11>22( f]^êáâëåå´®°ª¥©±ª±Â¸À‚u|P@C—ƒ„ϵ¶¹›™Ç¤ È¡šÏ¤Ò£™Ð ’ا˜ß«Ô£’Ù©•Ù«”Ù¬—Û®™Û®™×¬™Ö«˜Õª™Ò©—Ó©™èÁ°«„sT-uP@ƒ]P`@5R:6K99F87G=;IDA/0+',(“œ—òûúñûúÒÜÝßçéï÷ú°µ¹‰Œ‘­«¬Äµ²Éµ®Éµ®Ê¶¯Éµ®Ç³¬Ä°©Ã¯¨Æ²«Æ²«Ç³¬È´­È´­Éµ®Ê¶¯Ê¶¯Ê¶¯Ó¿¸Èµ¯âÓÌæØÕ]UR($!¶¸µöüüôÿÿÚêêëÿÿàøüŸ¸¼€œ uŠ *+)+*#'& "!! !#"&*)!  "!!%$(*)487@BA<>=  "!#'&243<@?ACB7@?,/‹ £åùúêùüõÿÿòúý°µ¸„ƒˆ›™œ§¡£¤›œ¤˜š¤––¡‘”¡‘‘œŽ…—‰~ž‡Ÿ’Š “£˜”°¨¥Œ‹HIK£«®íûþçúþÇàäÂáäÅèì¾ãéÈêóÒôþçÿÿ­Î×4RZ9?LhlWosRghSgfSfdTdcVb`Vb^Va]Ua]\hdZidXgdWfaUdaTc^Sb_Ra\O^[O^YO^[O^YO^[O^YO^[O^[O]]O]]O]]O]]O]]O]]O]]O]]LZZLZZM[[M[[GUU9GG'55((HJWHJWJLYKMZIKX@BO35B)+8*,946C?ANMO\Z\igiv…‡”¨ª·½¿Î{}ŒMO^$&556Hij|ˆ‰žz{ggoo‡››{{—ŒŒ¨¥¤ÃppŠ!"4,ACPUWd\^kkmzŒŽ›ÑÓàÉË؏‘žpregt^`mRTa:>>888111---(((((((((''''''&&&&&&&&&---------.........//////327327216105.-2+*/)(-'&+&%*&%*&%*&%*&%*%$)%$)$$&&&(&&&&&&''''''(((((((((------------------------........................,,,,,,,,,,,,,,,,,,,,,,,,,+0,+0,+0,+0,+0,+0,+0,+010510510510510510510510554:87=?>DHGMYX^õôúúùÿüûÿïîôôóù÷öü÷öüæåëñðöéêîçëìèìëööôõñî±¥¥qb_£‹‹¶š—°‘Ž°ˆ°‹…«†}¥ƒy ~rœ|m˜zo†kd€gc|`\y\VwYQsUMnPHiLFaEA]ECXEGN?DC9BICO\Xfgivov€pzƒˆ’›¢—|ƒ‰ƒˆŒ¢§«„ˆ‹8<=---21/+*()(&$#!''''''&&&&&&%%%$$$######%%%000777666000)))%%%&&& !!!"""$$$%%%'''((()))333)))'''TTT•••NNN111111000000///.........'''+++,,,333+++FFFêîïáëì"01 +°¸ºöûþòö÷íïîóñòöòñÿú÷üôò²§¥½²°ßÑÐ×ÅÃؼ¹Ñ¯­Àžœ¯‹œzx…camKI];9`>,,E55E55>0/B43+  bXVéßÝïçä³­­¬§­¯¬µÁºÂ¡—ŸaT[scfµŸ¡Å«ªÂ£¡ÁžšÉ šÏ£šÐ –×¥šÜ¨›Õ¡“ب”Ù©“Ú¬•Û­–Ú­˜Ù¬—Õª™Ô©˜Ò¨˜Ò¨˜æ¿°­†wU/"uOB‚^R`?6S98L89G77G<:IDA21-&+'˜“ñúùðúùÒÜÝáëìóûþ±¹¼„‰¡¡¡Ã´±È´­Ê¶¯Ë·°Ë·°Ê¶¯Éµ®È´­Éµ®Ê¶¯Ê¶¯Ë·°Ì¸±Í¹²Í¹²Îº³Îº³Öüͺ´èÙÒòçãxpm540¥§¤ôýüôÿÿØêêêÿÿáùýžº½¡tŒŽ%/0+/.'+*#'&!%$#'&*.-%)("&%#'&%)()-,6:9>BA9=<((($$$!!!!!!  "!$('043<@?>BA6@?-1ŠŸ¢åøüèúüõÿÿðúü±¶ºƒ„ˆš˜›¦¡¥£š¢˜™¡•—¡‘” šŽ‚”ˆxœ„ž’†Ÿ’Š¡–°¦¤ŠŠHHJ¢§«íøþêýÿÉâé»Úß»àèºáèÁæïÇìõæÿÿ·Øß:X`8MO\bdqqs€qs€vx…bdq8:G]_l·ºÃìëðÒÒ҇‡‡,,,===IIIJJJMMMLLLJJJFFF@@@999222...''''''((((((((())))))))).........---------,,,,,,327216/.3-,1+*/*).)(-)(-(','&+&%*&%*&%*&%*'&+'')%%'%%%&&&((()))***++++++................................................,,,,,,,,,,,,,,,,,,,,,,,,,+0,+0,+0,+0,+0,+0,+0,+010510510510510510510510554:87??>FHGO!YX`õôüúùÿø÷ÿöõýóòúõôüöõýèçïôóûñò÷ìðñìðïøøöøôñ»¯¯pm²ššÇ«¨Å¦£Å¤ÄŸ™¾™¶”Š±ƒ¬Œ}§‰~¡†™€|’vr‹nh…g_|^VtVNmPJkOKaIE]IJSDGF?))).-+,+).-+)(&///...,,,***'''$$$"""!!!%%%+++555999222)))$$$""""""###$$$%%%''')))******222***+++VVVQQQ000111222444555777888999:::;;;777999,,,JJJôøùáëì%34¤¬®ôùüòö÷ìîíðîïôðïÿú÷ÿ÷õ·¬ªÂ·µæØ×àÎÌÓ·´Ê«¨º›˜©Š‡˜yv„eboPM`A>_@=lMJ€a^“tq£„´•’Ŧ£Ð±®âÀ¿åÆÄÿææÿõôµ¡ +rhfÿþú÷óðïîêôòóôòóÿúþùó÷°§¬™‘ÝÊÌùãådz´nZ[A-.=++C33D44<.-C54/$" +YOMäÜÙñéæ³­­±¬³¯¬µ¿¸ÀÊÀȋ~…YHN|~δµÃ¤¢¿œ˜Ãœ•Ë —Ï –Ó¡–×£–Ô ’ب”Ù©“Ù«”Û­–Ú­˜Ø«–Õª™Ô©˜Ñ§—ѧ—ä½®¯ˆyW1$sM@ƒ_Sa@7Q76K78F66G<:KFC651&+'ˆ‘ŒöÿþðúùÍ×ØÛåæòúý¶¾Á‰Ž’£££¸©¦½©¢À¬¥Â®§Ã¯¨Ã¯¨Â®§Â®§Á­¦Á­¦Â®§Ã¯¨Ä°©Ä°©Å±ªÅ±ªÆ²«Íº³Èµ¯ãÔÍóè䉁~=<8ŒŽ‹õþýôÿÿ×ééêÿÿâúþ ¼¿‚ž¢tŒŽ5?@#'&:>=6:9376265376:>=8<;487487487598?CBFJI@DC333...((($$$""" """%%%$$$"$# ! #"%)(154=A@>BA6@?,0ŠŸ¢æùýéûýõÿÿðúü±¶º€…˜–™£ž¢ —šŸ•–Ÿ“•žŽ‘™“‡w›ƒœ„ˆ •®¤¢ŽˆˆRRT¨­±òýÿðÿÿÎçî¿ÞãÂçïÅìó´Ùâ§ÉÓÎïø´ÕÜ?]e6:FbfPjkG\]H\ZH[YIZTIXSKXQKVNJWNQ`[Q`[P_ZN]XL[VKZUJYTIXSHWRHWRHWRHWRHWRHWRHWRHWRHVVHVVHVVHVVHVVHVVHVVHVV@NNAOOAOO@NN:HH.<< ..$$MO\KMZHJWCER;=J24A)+8#%2*,957DACPSUbgiv|~‹¡£°ÉËØÍÏÞ|~9;J&12Djk}‘¦€–WWo<ACPJLY^`msu‚‘“ ÀÂϦ¨µvx…\^kjlyxz‡dfs79F,35LKOjimˆ’–±ÚÞùìðÿµ¹Ôšž¹›Ÿº\`{36gk†¦ªÅ¢¦Á‰¦…Š ‚‡›‹¤‡Œ ˜±„‰bg{49M "16JfksxŒw|‰Ž¢œ¡µ¹¾Ò¢§»otˆ]bvƒˆœ¤©½X]qINb¬±Å’¦afzqvŠ„‰kp„^cwdi}joƒsxŒjoƒ’¦ÈÍáÅÊޚŸ³€…™hmw|y~’`ey"'; GL`¡¦ºÇÌà–›¯ƒˆœns‡@EYhm¥ª¾°µÉˆ¡{€”[`tLQeƒˆœšŸ³v{gl€bev++3)(-+*/105327216105/.3/.30/4216438549549549349FHU–˜¥•—¤[]j35B02?KMZbdqxz‡uw„tvƒTVc=?Lƒ…’ÑÔÝ×ÖÛ¢¢¢ddd555444EEEGGGLLLRRRPPPKKKEEE===666///,,,''''''((()))***+++,,,,,,//////...---,,,+++******105/.3-,1+*/+*/-,1/.3105/.3,+0)(-&%*%$)%$)&%*((*%%'&&&''')))+++,,,......////////////////////////........................,,,,,,,,,,,,,,,,,,,,,,,,,+0,+0,+0,+0,+0,+0,+0,+010510510510510510510510654<87??>FHGO!YX`õôüúùÿñðøùøÿïîöìëóñðøìëóòñùòóøìðñîòñùù÷ýùöȼ¼€}Á©©×»¸Ñ²¯Ñ°©Ñ¬¦Í¨ŸÆ¤šÂ ”¾žºœ‘¯”ªŽŠ¤‡€x™{s’tl‹me…h`v[TgOKeQR\LOJ?GPJTeaogftgnxgqzr{‚ƒŒ“‡Ž”|ƒ‰ˆ‘§¬°€„‡EIJ113????><:97;:8542444444444333333333333333111...;;;EEE:::///---)))***+++,,,...///111222333111...555'''VVV‹‹‹^^^777>>>>>>======<<<;;;;;;;;;@@@EEEBBB@@@555PPPïóôãíî+9: •Ÿóøûòö÷ëíìñïðôðïþùöýõ󱦤¸­«ÛÍÌØÆÄÓ·´Ê«¨¹š—¨‰†˜yv†gdsTQgHE\=:jKH}^[‘ro¢ƒ€µ–“È©¦Ôµ²Þ¼»âÃÁøÚÚÿíìм»3$!aWU÷òî÷óðòñíóñòõóôÿúþøòö±¨­˜ŒãÐÒë×؛‡ˆN<..A11D65;-,A642(& MEBÝÕÒóëè´®®¶±¸®«¶¹³½á×àö¿kZ`nZ\º¢¢Å§¥ÂŸ›Â›”Çœ•Ì•Îž”ÑŸ”Ô ’ק“ب’Ù«”Ú¬•Ù¬—Ø«–Ô©˜Ó¨—Ц–Ц–ẫ²‹|[5(qK>ƒ_SbA8P65K78F66F;9MHE:95%*&ˆƒøÿÿðúùÈÒÓÔÞßíõø°¸»|…½®«Â®§Ä°©Æ²«Ç³¬Æ²«Å±ªÄ°©Ê¶¯Ê¶¯Ë·°Ë·°Ì¸±Í¹²Îº³Îº³Ö»ÙÆ¿ÔÁ»ìÝÖôé劂=<8~€}õþýôÿÿÖèèêÿÿãûÿ£¿Â„ ¤uS]^?CBVZYRVUPTSPTSPTSUYXUYXPTSOSRLPOKONTXWY]\SWV;;;555...)))&&&###  $$$'''&&&$&%! ! ! ! ! ! ! !  "! $#%)(265>BA@DC7A@+/‰ž¡çúþéûýôÿÿïùû²·»xy}Ž‘›–š™“˜Ž—‹–†‰–††ƒw‰}m‘…y“‡{”‡–‹…¥›™…NNP©®²ðûÿèûÿÇàçÃâçÉîöÊï÷ ÂÌu—¡œ½Æ¥ÆÍB`h155NS7OQ7LM8KI:JI:ID;GC;HA;F>;F>=IE:ID9HC8GB6E@5D?3B=3B=:ID:ID:ID:ID:ID:ID:ID:ID5CC5CC5CC5CC5CC5CC5CC5CC3AA4BB4BB2@@+99!//$$XZgUWdNP]EGT:@M"2DHcpt›ŸºÝáüãçÿª®Éœ »¡¥ÀX\w29ei„¬°Ë®²ÍˆŒ¥†œ~ƒ—Œ‘¥Œ‘¥•š®tyTYm16J "',@Y^rty„˜”¨£¨¼»ÀԈ¡`eySXly~’£¨¼fk[`t¶»Ï€…™di}w|„˜di}^cwgl€kp„tyotˆ’¦ÇÌàÉÎ⚟³{€”kp„v{†š`ey/SXl¥ª¾¸½Ñ”™­|•Z_s9>Rv{®³Ç°µÉ†‹Ÿ|•W\pEJ^y~’‘–ªpu‰di}adu00865:98=76;65:549438438.-2/.32163273272160/4./49;H‡‰–šœ©XZg(*757DPR__anxz‡xz‡prGIVDFSšœ©ÒÕÞ¶µºrrrFFF>>>EEEFFFBBBOOOMMMIIICCC<<<555///+++)))))))))***+++,,,---............---,,,+++***)))))).-2-,1-,1/.321676;;:?>=B87<438-,1'&+#"'#"'$#(&&('')''')))***,,,...///000////////////////////////........................,,,,,,,,,,,,,,,,,,,,,,,,,+0,+0,+0,+0,+0,+0,+0,+010510510510510510510510654<86A?=HHFQ#YWbõóþúøÿôòýúøÿòðûóñüóñüáßêØÖáïï÷ïóôðôóøøöþú÷ÑÅŝŽ‹ÒººëÏÌÛ¼¹Ý¼µÞ¹³Ý¸¯Ù·­×µ©Õµ¦Ò´©½ š·›—°“ªŒ„¥„}ž}t–ulqi‚e_oVQoZYeUVK@FSLTmgsjjvgnxfpynw~{„‹€‡y€†ˆ‘¥ª®•™œimnhhj‚‚‚‡†„„ƒ‡†„„ƒzzzwwwrrrkkkddd]]]XXXUUUDDD:::KKKYYYIII<<<>>>;;;444555666777999;;;<<<<<:%*&u~yôýüïùøÊÔÕÖàáëóö¥­°bgkhhhn_\s_Xt`YuaZt`Yr^Wp\Uo[TeQJfRKfRKgSLhTMiUNiUNjVOt`Yxe^€mg¦—µª¦VNKgiföÿþóÿÿÕççêÿÿåýÿ¥ÁĆ¢¦vŽaklLPOaed^ba^ba^ba]a`aed`dc[_^Y]\VZYTXW\`_`dcY]\;;;555...)))&&&###  $$$'''&&&$&%! ! ! ! ! ! ! ! ! #"&*)376@DCBFE:DC*.ˆ çúþêüþóÿÿîøú³¸¼\]atruz~}tw|rs{oqzjmzjj„xlsc†znˆ|p‰|tŒ{šŽztt<<> ¥©éôúÙìò¼ÕÜÁàåÃèðµÚⅧ±Uu€†¤®¢ÀÈFck+/'@E*BD+@A-@>.>=/>90<80;50:2/:24@<3?;2>:1=9/;7.:6,84,84/;7/;7/;7/;7/;7/;7/;7/;70<<0<<0<<0<<0<<0<<0<<0<<,88-99.::*66$00''`bo\^kSUbFHU8:G.0=)+8(*7*,957DDFSWYfkmz€‚¤¦³ËÍÚº¼Ëhjy%'6-MN`…†˜¤¥º„…šZZr66NPPj}}—µµÑÃÃߍŒ«??Y,HJWOQ^MO\`bo€‚¥§´¬®»‚„‘^`mLN[{}Š¨ª·‘žNP]+'GKfuy”ž¢½ÒÖñÍÑì¡¥À¡¼¡¼PTo8"&A^b}ª®É¹½Ø‹¨}‚˜|•Œ‘¥•š®•©gl€CH\+0D'',@UZnx}‘…Šž”¨ž£·«°Ä{€”fk_dx}‚–§¬Àty`ey§¬Àw|joƒ{€”z“fkej~joƒjoƒv{x}‘“˜¬ÊÏãÎÓ瘝±w|qvŠƒˆœˆ¡\au &UZnœ¡µ¢§»Ž“§rw‹EJ^:?S„˜¯´È¢§»€…™{€”\auGL`tyŠ£pu‰ej~_bs99AGFKGFK;:?549105.-2.-2+*/-,10/42162160/4-,1*+0")+8|~‹¤¦³VXe*:C98=/.3'&+"!&! %$#(&&(**,***+++,,,---///000000................................................,,,,,,,,,,,,,,,,,,,,,,,,,+0,+0,+0,+0,+0,+0,+0,+010510510510510510510510654<86A?=HHFQ#YWbõóþúøÿõóþñïúõóþþüÿôòýÉÇÒ£¡¬ÖÖÞõùúôø÷ööôúöóÑÅşÒººìÐÍö×Ô÷ÖÏ÷ÒÌóÎÅíËÁéÇ»åŶáĶα©Çª¤¿¡™¶˜Ž¯Ž…¦…||s–ulŠmesZUt_^iVXH;BVLUysxx„jq{hr{kt{t}„y€†u|‚„‰ ¥©”—W[\HHJ[[[[ZXUTR[ZX\[YUUUTTTRRRPPPMMMKKKIIIHHHDDD999QQQeeeNNN<<<@@@>>>666666777999;;;<<<===>>>AAACCCPPPFFF^^^†††}}}ttt|||}}}~~~€€€ƒƒƒ………†††‡‡‡’’’›››———’’’‡‡‡]]]€€€üÿÿëõö9GH z‚„ôùüõùúíïîðîïñíìü÷ôýõ󮣡°¥£ÔÆÅÖÄÂ˲®¿¢ž«ŽŠ—zv‡jfwZVgJF\?;^A=hKGuXT‚eaŽqm€|­Œ¹œ˜¾ŸÇ¨¦Ï±±ÚÀ¿«—–,bXVúõñÿûøúùõñïðôòóÿúþøòö¼³¸¢—›ØÈ˟ŒŽWDF@01J:;D66?11=11;//=326,+ +<42ÉÄÁñì麶·´±º¯­º¯¬·ÌÄÏÿöþÜÍÔ{hllSV°”“ÀžœÅ šÁ˜’Å™ÉšÍ“Ò¡“Õ¥‘ק‘ש’ت“ת•Ö©”Ó¨—Ѧ•Î¤”Ì¢’Ú³¤¸‘‚bBA=A@EIHJNMCGF333...((($$$""" """%%%$$$"$#"!&*)487CGFFJI?IH*.‡œŸèûÿëýÿòÿÿí÷ù´¹½ghl~|Š…‰‡~†|}…y{…ux„tt‹s…yiuŽ‚v‚z’‡ –”€zz99;¢§«êõûÖéï¹ÒÙ¿Þã¶Û㙾Æi‹•Yy„›¹Ã¯ÌÔGdl '+'>D1FI*>?*=;-;;.:6.95-82.80.803>:1=90<8.:6-95+73*62)51*62*62*62*62*62*62*62*62-99-99-99-99-99-99-99-99*66+77+77'33 ,,%% cer^`mRTaBDQ35B(*7%'4&(5(*757DFHUZ\ioq~ƒ…’¥§´ËÍÚ¯±À^`o-.VWiŒŸ¨©¾€–\\t??WTTn~~˜±±Í»»×Š‰¨==W)HJWKMZGIVY[h†ˆ•·¹Æ±³ÀƒUWd46Cbdqœž«’Ÿ\^k*->.RVqz~™¡¼¿ÃÞ±µÐ˜œ·›Ÿº”¯FJe#'B-1LRVqŸ£¾¿Ãޑ•®y~”}‚–‹¤ ¥¹‹¤_dx38L%*>1.3GX]q}‚–‡Œ ‹¤’—«’—«{€”w|uzŽ…Šž©®Âv{RWk€…™uzŽpu‰y~’tyns‡sxŒlq…fkw|‚‡›œ¡µÏÔèÑÖꕚ®sxŒy~’—œ°‡Œ LQe + SXl”¨“˜¬ˆ¡kp„6;ODI]‰Ž¢¯´È”™­„˜z“di}RWkv{Š£uzŽjoƒ[^o::BMLQLKP:9>/.3*).&%*&%*(',+*/.-2105105/.3+*/().$*vx…²´ÁVXe ?AN[]jacptvƒ‰‹˜}ŒRTanp}¸ºÇ¼¿Èdch777222===<<<>>>BBBIII222...)))%%%###$$$''')))/////////......---------))))))*********+++++++++43876;<;@BAFHGLLKPONSQPUA@E:9>0/4&%*"!&"!&&%*))+--/------....../////////------------------------........................,,,,,,,,,,,,,,,,,,,,,,,,,+0,+0,+0,+0,+0,+0,+0,+010510510510510510510510653>86C?=JHFS%YWdõóÿúøÿïíúêèõöôÿüúÿøöÿÌÊ×~|‰¨¨°ùýþùýüøøöøôñË¿¿~{²ššÅ©¦Ð±®Ð¯¨Ïª¤Ê¥œÃ¡—¾œ¹™Šµ˜ŠªŽƒ¦‰£…}¢x¡uŸ}sšxn–ul‘skv[Tu][fTTB38WLT‰ŒŽ™ov€jt}jszoxsz€pw}€…‰šŸ£ŠŽ‘;?@))).-+*)'/.,0/-333333222111111000000///555,,,OOOiiiKKK222666222---...///111222444555666666222888...<<@M-/<#%2!#0"$1&(546CGIV]_lrt†ˆ•§©¶ÍÏܪ¬»XZi'-XYkŽ §¨½}~“\\tFF^XXr€€š¯¯ËµµÑ‰ˆ§;;U%DFSEGT@BORTa‰‹˜ÅÇÔ¸ºÇƒ…’NP],GIV‡‰–ˆŠ—bdq7:K!8^b}}œšž¹°´Ïœ »’–±™¸„ˆ£@D_+/J48SHLg•™´ÁÅà•™²w|’}‚–Š£§¬Àˆ¡[`t*/C"'; %95:N\au†šˆ¡‡Œ ˆ¡€…™}‚–„‰„‰‰Ž¢¦«¿rw‹AFZ]bvv{sxŒv{pu‰uzŽ~ƒ—ns‡afzx}‘ˆ¡£¨¼ÓØìÓØ쓘¬rw‹}‚–¥ª¾†š86C?=JHFS%YWdõóÿúøÿìê÷íëøûùÿ÷õÿÿýÿèæózx…„„ŽøüÿûÿþüüúúöóŹ¹yjguu•yvž|Ÿ~w¡|v {r{qœznšzk™yl§‰¥‡}¥„{¦„z§…y§…y§ƒw¢€v•tkwZTtZYbNO<+1WLT”Œ—¢ «ryƒmw€jszmv}pw}nu{}‚†–›Ÿ“—š;?@***542,+)%$"$$$$$$%%%&&&'''((()))))),,,%%%PPPoooLLL///000+++$$$%%%&&&((()))+++,,,---***###)))&&&888TTTHHH:::............////////////555...,,,999000777ÛßàñûüDRSmuw÷üÿùýþñóòíëìîêéýøõÿúø´©§¶«©ÞÐÏäÒÐ맷›— „€‹ok{_[lPL^B>U95`D@kOK|`\qmž‚~²–’Ç«§Ö¹µóÔÒúÛÙÿççÿñð’~}ZPNýøôýùöùøôëéêñïðÿûÿÿùýÏÆË·¬²¨™ž[KNN=CO@C:+0=13@481'(>377./2,. +1-.»·¶íé꿽Àªª´¸·Å²°½¹¶ÁÝÕàüñù˺ÀR>@z`a§ˆ†ÁžšÁš•Åš”ʝ—Ê›“É™Ô£’Ö¦Ö¨‘ש’Ö©”Õ¨“Ò§–Ð¥”Í£“Ê Ö¯ ¼•†f@3jD7„`TfE,::.::.95.74-61/6//6/.74-84,73*51(3/'2.&1-%0,#.*#.*#.*#.*#.*#.*#.*#.*)*)*)*)*)*)*)*)*$./&01%/0 *+#$kmzdfsUWd@BO+-:!#0"$1')6!#0:EGTƒ…’ØÚçÓÕ⇉–LN[) -HJWmo|jlyNQb9;Rei„z~™ŠŽ©£§Âšž¹†Š¥†Š¥ptDHcFJePToFJetx“¶ºÕÂÆߌ‘§mr††‹Ÿ³¸Ìœ¡µfk&+?1$)=).BUZnšŸ³°µÉŒ‘¥}‚–Z_sns‡¡¦º„˜†šž£·z“HMaw|‚‡›mr†kp„sxŒw|y~’|•…Šž‡Œ †‹Ÿ’¦ÅÊÞÙÞòz“OTh ¥¹ÀÅÙotˆAFZ)'TYm†š˜±|•PUiBG[uzŽ¸½Ñ½Â֕š®†šy~’FK_z“£¨¼œ¡µŠ£kp„=@Q""*/.3/.3'&+#"'" #! %%$)+*//.3/.3*).$%*$`boÅÇԏ‘ž$&3"$1\^kXZg\^kgivVXeDFS ¢¯ËÍڌ˜#"'222555999999999===555%%%$$$%%%)))...111000...&&&&&&&&&&&&&&&&&&&&&&&&((())))))'''&&&)))///444QPUQPUQPUQPUQPUQPUQPUQPUFEJ>=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++////////////////////////*).*).*).*).*).*).*).*).+*/,+0-,1/.310532743854::8E;9G:8FIGU'RP^õóÿúøÿôòÿïíûøöÿôòÿÇÅÓ§¥³‹™°°ºüÿÿñõôööô÷óðñå婚—È°°êÎËÿäáÿãÜÿàÚÿÝÔýÛÑúØÌ÷×ÈöÖÉظ­Õ´«Ò±¨Ñ¯¥Ï«ŸÇ£•¿™Œ·“‡§†}›~v‹rnzfe))#½³¼ÇÄͅŒ”‹”Š‘ƒŒ“x…krxsx|{€„x|HLM!!#)(&('%#" #" """III”””LLL %%%""" %%%333<<<777+++$$$$$$$$$$$$$$$$$$$$$$$$'''++++++(((...'''Üàáöÿÿkyz `hjò÷úúþÿóõôëéêðìëü÷ôüôòĹ·®£¡ÓÅÄÒÀ¾Ã«§·ž™¥Œ‡“zu„kft[VdKFY@;cJEqXS…lg˜z¨Š·ž™Ç®©Ô¸´Õ¶´àÁ¿ÿééÿðï¹¥¤@64ùôðÿüùôóïöôõóñòÿüÿÿùýéà嘍“NAH:+0@18@16;,3=158-39037.35/11+/ + ™—˜èæ麹¾¯±½¯±¾³²À´²¿·±»ÝÓÜåÖݞ‰ŽE,/‡ii·•“̦£Ä›•À“ÎŸ™Â’ˆÎŒÎžˆÍŸˆÍŸˆÌŸŠÌŸŠÊŸŽÊŸŽÎ¤”ÈžŽÍ¦—ÃœzTG]7*yUIcB9F,+H45G77H=;IDAPOK&+'IRMÖßÞçñð¹ÃÄ»ÅÆéñôÃËΊ“‹‹‹½®«Ä°©È´­Éµ®È´­Ç³¬Ç³¬Éµ®Éµ®Éµ®Ê¶¯Ë·°Ì¸±Í¹²Îº³Îº³Ñ½¶Ò¿¸Ê·±ÏÀ¹àÕѨ 762GIFìõôíùùØêêÙîïæþÿÄà㘴¸—¯±5?@'+*#"! #'&*.--10 ! $('265BFE]a`ISR + +"&ƒ˜›êýÿëýÿïýÿïùû¿ÄȄ…‰†„‡š•™”——ŽšŽ™‰Œ›‹‹˜Œ€™}ž’†ž’†ˆ¢—‘¦œš——OOQTY]†‘—‹ž¤e~…Fej;C 19h†‘®ÊÖÜ÷ÿºÕÞAYc)/0704$36#11$00'2.+41/51/4.,3,,52)2/'0-&/,'0-'0-$-*!*'(%'$%"# # $!%"&#%'&(&(&(&(&(%'%'%'&(&(#% ikxbdqTVc?AN+-:!#0#%2(*7')6?ANXZgkmz‚„‘ž ­±³Àµ·Ä‘ JL[  /TUgŽ ®¯Ä¥__w@@Xaa{——±ÁÁݯ¯Ë{z™IIc.,.;35B&(5?AN‡‰–Þàíßá£QS`&"9;H`boegtSVg;=Thl‡ƒž‹ª¡¥Àœ »„ˆ£|€›`dGKfOSn[_zQUphl‡¥©ÄÎÒ돔ªsxŒŒ‘¥º¿Ó ¥¹hm).B!53#7Z_s°µÉÃÈܐ•©tyHMaZ_s ¥¹‘–ª‹¤•©gl€OTh’—«˜±afzY^rotˆz“w|rw‹‚‡›’—«’¦‹¤¶»ÏÄÉÝrw‹\au¶»Ï·¼ÐotˆUZn%*>*QVj~ƒ—Œ‘¥rw‹LQeHMaŠ£ÆËß½Â֘±‚‡›hm9>Rx}‘®³Ç¬±Å“˜¬hm58I$$,0/4/.3&%*#"'#! $# $$#(+*/0/40/4-,1().'TVcÁÃТ¤±8:G(*7]_ldfs`bobdqPR_JLYª¬¹ÈÊ×z}†$#(777999888777888>>>444'''''')))...222333111...&&&&&&&&&&&&&&&&&&&&&&&&((())))))'''&&&)))///444QPUQPUQPUQPUQPUQPUQPUQPUFEJ>=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........................+*/+*/+*/+*/+*/+*/+*/+*/.-2/.30/421643854976;76<42?A?MC@QJHV$QO]øõÿüúÿÙÖçÿýÿÿüÿôòÿÐÍÞ­«¹¨¥¶ææòúþÿðôóúúøÿûøûïï²£ Ï··ïÓÐôÕÒõÔÍöÑËôÏÆðÎÄîÌÀë˼êʽãøáÁ¶ß½³ß»¯Ü¶©Õ¯¢Ì¦™Ä ’­‹£…}—{wˆsr9&(9-1ÑÇÏàÝ揖žˆ’›Š“š•ž¥Š‘—dkqZ_clquptwEIJ##%('%'&$"!#" """III”””LLL ### $$$111;;;555***########################&&&***+++(((...%%%ÕÙÚõÿÿn|} + ^fhò÷úúþÿôöõèæçîêéþùöÿüúÓÈƼ±¯ÝÏÎÔÅÂÁ¬§º¡œ«’›‚}‹rmw^YbIDS:5cJEpWR„kf–}x¦ˆ¶˜Æ­¨Ò¶²Ü½»ãÄÂþààÿç滧¦:0.ÿþúýùöúùõðîïõóôÿýÿÿùýîåê‚w}D7>=.5?07=07:-4;067.3604826504/*. + –”—èæ鿾ݲ¿¬¯¾¯±À¶´Á´®ºÊÀÉØÉа¡_FJrUW®Œ‹Î¨¥¿–’¾“Çš•Ã”ŠÌ‹Í‡Ìž‡Ìž‡Ëž‰Ëž‰ÉžÉžÍ£“ÆœŒÊ£”Áš‹{UH]7*xTHdC:G-,H45F66G<:IDAPOK%*&GPKÕÞÝëõôÂÌÍ¿ÉÊéñôÂÊ͌‘•’’’¸©¦À¬¥Å±ªÈ´­Éµ®Éµ®Ë·°Í¹²Í¹²Îº³Îº³Ï»´Ð¼µÑ½¶Ò¾·Ò¾·Ï»´Õ»̹³È¹²ØÍɧŸœ984AC@î÷öïûûØêêÖëìãûÿÆâ坹½œ´¶8BC'+*#"! #'&)-,-10 ! $('265BFE]a`JTS + $–™êýÿíÿÿïýÿïùûÀÅÉ}~‚€~”“˜’’ˆ‰•‰‹–†‰—‡‡•‰}•‰yšŽ‚šŽ‚˜‹ƒ’Œ –”—‘‘IIKRW[˜£©¨»Á|•œMlq;C3;lŠ•®ÊÖÜ÷ÿ½ÕßCYd%,/615%36%11%/0(1.-31/51.3--2,-31(1.&/,&/,'0-'0-$-*"+((%'$%"# "# $!%"') (* (* (* (*')%'$&%'&(&(#% fhu_anPR_<>K+-:"$1$&3(*702?DFS]_lqs€ˆŠ—Ÿ¡®ª¬¹©«¸|~ACR "$3PQc‰Šœµ¶ËŸ µcc{66NYYsŸŸ¹ÎÎê±±Íxw–NNh !3(*7+-:*8:G‘“ èê÷îðý£¥²Y[h$ +')6LN[\^kUXi?AXosŽ‹ªŽ’­ž¢½ž¢½€„Ÿjn‰UYtOSnVZu`dY]x^b}•™´×Ûô•š°}‚–•š®ÂÇÛ¤©½gl€.3G"';,.bg{ËÐä×Ü𓘬lq…7$$,0/4/.3&%*$#("!&! %%$)" $#"'*).0/4327105./4 ,?AN°²¿´¶ÃXZg9;Hegtuw„ikx_anKMZPR_³µÂÁÃÐadm&%*===???888444999AAA555)))***...333666555000+++&&&&&&&&&&&&&&&&&&&&&&&&((())))))'''&&&)))///444QPUQPUQPUQPUQPUQPUQPUQPUFEJ>=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------,1-,1-,1-,1-,1-,1-,1-,143843854976;87<98=:9>;:B64BGDUKH[QN_-VSdóðÿìéú¦£¶äáòøõÿ×ÔåÉÆÙÐÍÞÎËÞþþÿûÿÿñõôùù÷þú÷ûïï²£ Ñ¹¹òÖÓõÖÓ÷ÖÏùÔÎøÓÊõÓÉôÒÆòÒÃòÒÅíËÁëÉ¿ëÇ»éÅ·çÁ´áº«Ù²£Ñ«ž¿š‘³•‹¦‹„”|?,.=.3ÔÉÑçâ館±˜¢«Ÿ¨¯·ÀÇ«²¸bioCWy~’‰Ž¢|•kp„Š£ž£·•š®Š£–›¯‘–ªbg{uzŽÒ×덒¦SXlbg{HMa/4Hw|‘–ªch|X]qUZnrw‹ÁÆÚÌÑ嗜°„‰qvŠLQe+0Dz“ÄÉÝÓØ챶Êjoƒ$'8'-,10/4*).)(-&%*$#(&%*# $"!&)(-0/454965:45:''3 )+8‹š³µÂz|‰WYfuw„„†“xz‡givLN[OQ^¯±¾³µÂLOX+*/EEEEEE999333;;;EEE888///000444999;;;888111***&&&&&&&&&&&&&&&&&&&&&&&&((())))))'''&&&)))///444POTPOTPOTPOTPOTPOTPOTPOTFEJ>=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,0/40/40/40/40/40/40/40/487<98=:9>;:?<;@==E@>LHEXKH[[Xk-*=\YlèåøÕÒåifyŠ¡ž±li|~‘ÜÙìéæùõôÿöúýíñðùù÷ÿüùÿó󷨥ս½õÙÖùÚ×ûÚÓþÙÓþÙÐüÚÐüÚÎûÛÌûÛÌöÔÈôÒÆõÑÃõÏÂó̽îǸ濰޹©ÎªžÄ£š¹œ–©‘R>?L=@æÙàûöýº¾Ç­·À¸ÁÈÛäëÒÙßmtz*/3PUYVZ]<@A((*$$$'&$#" "! """III”””LLL  ---777111&&&""""""""""""""""""""""""%%%(((+++'''---¸¼½í÷øy‡ˆ + S[]ò÷úùýþöø÷ôòóñíìúõòÿúøØÍËź¸ãÕÔÔÅÂÉ´¯¿¨¢­–›„~Šsmv_YaJDS<6^GAlUOhb’{u£Œ†µž˜È±«Õ¼·Ú»¹íÎÌúÜÜÿòñòÞÝ<-*7-+ùôðüøõýüøïíî÷õöÿûÿÿýÿÔËÐ@7<,!)C6?:/79.6;195+37073.4839205/-2 Š‹ãäèÇÊѬ¯¾¦«¾¨«¼±°¾¯«¹©¡¬·ª´É¸Àª“™dJMyYZ¶“‘À˜–¹Œ»ŒÁ’ŠÉšˆÊš„É›„É›„È›†È›†Æ›ŠÆ›ŠÇ¿•…À™Š»”…|VI\6)tPDdC:K10J67E55F;9HC@NMI!&"@IDÖßÞñûúÓÝÞÎØÙõýÿÎÖٌ‘•·¨¥¿«¤Ã¯¨Å±ªÄ°©Ä°©Å±ªÇ³¬Îº³Îº³Ï»´Ï»´Ï»´Ï»´Ï»´Ï»´Â®§É¶¯Â¯©»¬¥ËÀ¼§Ÿœ@?;CEBïø÷õÿÿÙëëËàáÛó÷Íéì¬Ę̀ÀÂBLM#'&#" "&%(,+,0/  "&%043AED^baLVU v‹ŽçúþðÿÿðþÿïùûÃÈÌklpomp„ƒ‰€ƒ…{|Š~€‹{~}}Ž‚vŽ‚r‘…y„xŒw…’ˆ†ˆ‚‚CCE\aeÒÝãëþÿ³ÌÓt“˜KNP]giv}ŒŽ“•¢Ž†ˆ•dfu24C"02AYZl‘£¼½Ò¡¢·ll„00HKKeœœ¶ÒÒ҂ bb|!"4 -"$1"8:G­¯¼òôÿúüÿ¢¤±bdq#%2,79FEGTADUFH_„ˆ£°´Ï›Ÿº–šµ¢¦Áx|—CGbHLg_c~qu_c~FJe^b}›ŸºÆÊ㣨¾’—«¡¦ºÅÊޘ±UZn+0D(-A1(-AƒˆœäéýÝâö•š®qvŠ8=Q3ch|‘–ª±¶Êž£·afz‡Œ Ýâö|•#(CW’¦šŸ³W\pDI]]bvˆ¡ÅÊÞ¹¾Ò…Šž~ƒ—v{SXl6;O~ƒ—¿ÄØÖÛï¿ÄØuzŽ%(9(',0/4/.3/.3*).$#($#("!&! %#"'(',0/465:98=9:?..:&([]jœž«‘“ wy†‡‰–‘žŒŽ›{}ŠTVcGIV›ªŸ¡®ADM327JJJHHH;;;777@@@KKK>>>:::;;;>>>BBBBBB>>>666///&&&&&&&&&&&&&&&&&&&&&&&&((())))))'''&&&)))///444NMRNMRNMRNMRNMRNMRNMRNMRFEJ>=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,438438438438438438438438;:?;:?<;@<;@=
=B>=B>=EDARC@UGDY`]r1.CWTiãàõÚ×윙®Ÿœ±dav-B?T¬©¾îëÿüûÿðô÷éíìøøöÿüùýññ±¢ŸË³³èÌÉòÓÐõÔÍøÓÍøÓÊ÷ÕË÷ÕÉ÷×È÷×ÈôÒÆõÑÅõÏÂõÏÂõοòȸêÀ°â»¬Ô®£È¨½ š¯—“VBCM=@åÖÝùòùÉÍÖ¿ÉÒÎ×Þðùÿëòø~…‹&+/GLPOSV:>?**,&&&&%#"! !  """III”””LLL ,,,666000%%%!!!!!!!!!!!!!!!!!!!!!!!!###&&&+++&&&,,,¦ª«éóô€Ž  LTVò÷úøüý÷ùøôòóóïîýøõÿüúØÍËź¸ãÕÔÖÇÄÒ¿¹Æ²«²ž—žŠƒŠvos_X]IBN:3cOHo[T€le‘}v¡†³Ÿ˜Å±ªÕ¼·ãÄÂóÔÒöØØÿêéùåäO@=?53ðëçþú÷÷öò÷õöôòóþøüÿûÿ© ¥,#(,!)B6@:.89-7;1:5+47083.55070-41.5†‡ŒàáæÈÌÕ¦¬º¦«¾¨«¼©«º®¬º¬¦²¯£­Á²¹¿ª±‚imgIK™wv¿™˜¸‹¹Š»†È™‡É™ƒÈšƒÈšƒÇš…Çš…Åš‰Åš‰Ã™‰»‘º“„·|VI[5(qMAeD;N43K78E55E:8GB?MLH#@Ocdv’“¥·¸Í”•ªii44LNNh””®ËË绻׍Œ«iiƒ#$6+"$1$;=J¹»Èñóÿ÷ùÿ™›¨egt/1>' "/79FACP9KŽŠŒ™=@I=>>>>>HHHRRRFFFEEEEEEEEEFFFFFFAAA:::333&&&&&&&&&&&&&&&&&&&&&&&&((())))))'''&&&)))///444JINJINJINJINJINJINJINJINFEJ>=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------76;76;76;76;76;76;76;76;<;@<;@<;@<;@<;@<;@<;@<;C?;PB?TZWlMJ_êçüõòÿõòÿôñÿebw1<9N^[pÌÉÞþýÿöùþìðïööôüøõýññ¸©¦ÚÂÂýáÞùÚ×ûÚÓÿÚÔÿÚÑýÛÑýÛÏýÝÎýÝÎû×Ëû×ÉûÕÈýÖÇþÔÄúÐÀóɹìŶ㽰ִªÌ­¨À§£gQSXHKêÛàûôûÒÖßÎØáÝæíôýÿôûÿ‘˜ž/48>CGOSV<@A--/&&&&%##"   """III”””LLL ---666111%%% """%%%***&&&+++–š›åïð‡•–  +FNPò÷ú÷ûüùûúñïðóïîÿûøÿýûÞÓÑÒÇÅýïîúëèäÑËÔÀ¹¹¥žžŠƒ†rko[T[G@N:3\HAiUN~jc”€y«—Â®§ÚÆ¿ìÕÏÿéçÿìêÿççÿòñùåäQB??53äßÛÿüùõôðýûüôòóþøüòìðvmr#6*4?3=;/99/8:095.65074/62/6/,3217‚‡ÜßäÌÐÙ¤ª¸¥¬¾©¬½¥§¶®¬º²¬¸®¢¬¸©°Ä¯¶ª‘•oQS{YX°Š‰¸Ž·ŽŠºŽ…Æ—‡Ç—Æ˜Æ˜Å˜ƒÅ˜ƒÃ˜‡Ã˜‡À–†·}µŽ´~}WJZ4'oK?eD;P65K78D44D97FA>LKG!8A<ÙâáïùøÕßàÊÔÕòúýÊÒÕqvzeee¡’¨”«—ª–§“Œ¥‘Š¤‰¥‘Š®š“®š“®š“­™’¬˜‘¬˜‘«—«—¬˜‘©–§”Ž©š“´©¥Š‚%$ *,)ßèçòþþÛííÇÜÝÙñõÖòõ´ÐÔ¥½¿NXY "!#" $#&*)*.-  $#.21@DC_cbNXWg|ÞñõíÿÿïýÿòüþÎÓ×nosqor†…‹‚…†|}Š~€‹{~}}‘…y‘…u•‰}”ˆ|‘„|•Š„˜ŽŒŽˆˆ==?RW[ÝèîíÿÿÄÝä©È͔¹Á‘³¼¬¸©ÀÎÎäñ¶ÊÕYkw"* .7&39%.3$,.%*-(,+-/./1../*-.)%'&!%$!%$$(')-,+/.+/.*.-$('"&%"!$(+*.11587;>7;>269*.1%), $'!%(!%("% WYfNP]?AN24A*,9')6)+8+-:DFSZ\ixz‡‘ž“•¢ˆŠ—y{ˆpr]_n68G)+:OQ`kl~‘£¯°Åˆ‰žaay::RTTn§ÄÄàÂÂޘ—¶jj„'(:,#%2$<>KÁÃÐðòÿôöÿ”–£jly9;H+ "/9;HDFS9C;;G13@#!.dfs‘žœŽ¢¤±°²¿¥§´hjw24Agivxz‡=B327+*/)(-+*/-,1..0++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++........................98=98=98=98=98=98=98=98=:9>:9>:9>:9>:9>:9>:9>:9A:7H<9N>;POLa.LI^òïÿÿüÿýúÿ÷ôÿtq†GDYXUjGDY®«Àñðþûþÿðôóøøöýùöýññ¸©¦ÛÃÃþâßÿïìÿïèÿîèÿîåÿîäÿîâÿïàÿïàÿîàÿíßÿìßÿíÞÿìÜÿéÙÿâÒÿÞÏôÎÁä¶غ²Îµ°t_^aNPéÚßõîõÝáêàêóìõüóüÿôûÿ¦­³?DH9>BRVY?CD..0&&&&%#$#!!  """III”””LLL   ...777222&&& !!!$$$***%%%*** ŠŽáë쌚› AIKò÷úöúûùûúöôõùõôþùöïç壘–wlj~ro‹zs†sl~kdyf_s`YhUNZG@O<5bOHkXQxe^ƒpiŽ{tœ‰‚¬™’»¤ž“usnl”vv¯•”§“’ .$"äßÛÿûøùøôýûüöôõÿûÿÛÕÙKBG C7A:.8;1:;1:8.78194/6507418/,3217z}‚ÛÞãÓ×৭½¤«½ª­¾¥§¶«©·³­»­£®·§±¿ª±Ê±µŒoqdEC”qo¹‘·ŽŠ¼‘ˆÅ–†Æ–€Å—€Å—€Ä—‚Ä—‚—†Â—†½“ƒ´Šz°‰z±Š{}WJZ4'mI=fEKJF6?:ÖßÞïùøÙãäÊÔÕï÷úËÓÖv{ppp»¬©Á­¦Ã¯¨Â®§¾ª£º¦Ÿ¹¥ž¹¥ž½©¢¼¨¡¼¨¡»§ º¦Ÿ¹¥ž¸¤¸¤®š“±ž—¯œ–«œ•³¨¤Œ„%$ !ÔÝÜîúúÜîîÈÝÞÛó÷ÙõøµÑ՟·¹R\]  + ! "! $#&*)*.- #"-10@DC_cbOYXavyÙìðëýÿîüÿôþÿÓØÜvw{ywzˆŒ‘ˆ‹‹‚Ž‚„Ž~€€•‰}•‰yšŽ‚šŽ‚˜‹ƒ’Œ –”—‘‘JJLOTXÚåëëþÿÅÞå«ÊϜÁɜ¾Ç˜²¿¦¼ÊÈÛé²ÆÑ_q}&.#1:(5;$-2$,.$),'+*,.-//-/.*,-(#%$!#""$#%'&*,+.0/.0/-/.&('$&% "!$%)+,0459<=A=>B89=126+,0"#'#$(#$( !% XWeLN[@?M13@+*8(*7,+9+-:JIW_an€Ž•—¤—–¤†ˆ•xw…np}Z\k:C<>J68E&)XZg…‡”ˆŠ—‰‹˜¨ª·¹»È®°½mo|-/=B327+*/)(-+*/-,1.-2++-+++++-+++++-+++++-+++++-+++++-+++++-+++++-+++++++++++++++++++++++++++////////////////////////::<::<:9>::<:9>::<:9>::<98=99;98=88:87<88:87<76<96G<9L;8KIFY*SPcõòÿùöÿÿüÿíêû¢Ÿ°‚‰†—zwˆÀ½Îù÷ÿþÿÿõ÷öüúûøòòäÚهwwŽzy¡‰‡˜|y™|x™zu˜zr˜zp—yn•ym–xm”ti”rf—sg™sfštg—pa‘j[ŒeVj]ˆf\Œnf˜zWBAWDFëÜáýöýéìóð÷ýùÿÿóúÿöûÿ¸½ÁOSV:>AUY\CDF///%%%&%#%$""! """III”””LLL  !!!...888333'''!!!###***%%%*** ƒ‡†áé둝>HJðøúõúýøüýððòöôõÿüü÷ïí¯¤¢€²£ ² œ¥‘Š›„|Œuoh`r^WgSJZF?P>4gSLr^Uƒoh•x©’Œ¾§ŸÔ½·åÊÃÿçåõÓÑøÙÖÿìèÙÄÁ+3($àÛ×ýùöþýûúøùøöùÿýÿÈÃÉ2+3! MBJ7,4<2:<2:7-592:5.670894;2-42/6 zyßÞæÛÛå­¯¼¦©¸­¯¼¨¨´©¦±¯©³­£¬¸­³·¦¬ÕÂÄ¢ŒŽT<KJF6<8ÔÚÚïø÷ÜæçÊÔÕìöøÍÕØ|„‡€€€³¥¢¼¨¡À¬¥Á­¦À¬¥¿«¤À¬¥Â®§À¬¥¿«¤¾ª£½©¢¼¨¡»§ º¦Ÿº¦Ÿ¬—’¸£ž¸¥Ÿ°¡œ¸­©™‘Ž40-$&#ÍÖÓë÷õÜîîÈÝÞÛõöÛ÷ø³Ñӛ³³T^_ +  !"#$ %*&).* #"/10@DCacbPYX ]rsÖêëéûýìûþôÿÿÔÜßy|}|’‘•Œ„†“……‘‚•ƒ™‹€š}Ÿ‘†Ÿ‘†žˆ¤—‘§œš——NLOGJOÓÞäêýÿÈáè©ÊϝÂÊ¢ÄΛ·Å¢¹ÉÂ×è®ÄÒbt‚'4%3>(5=#.4#*0$)-'+,,-/.0/..,,,*!#" "!!"$%'&*+-.0/./1-/.&')$&% !#"#'*+/56:>?C@AE;<@348./3"#'#$(#$( !% \ZhJIW64B'&4" .$#11/==K”–£ÑÓàÜÞ듕¢qs€SUb) -BDQY[hPSd+-D… ØÜ÷»¿Ú’–±œ »„ˆ£cg‚hl‡cg‚W[v-1L!@L #(#'*()-&*-%&* $'!"&#&)*./36<=A@DG:;?-141269327.-2+*/+*/,+0:9>FEJ105#"''&+'&++*/+*/)(-))+*).**,+*/,,.-,1--/'&+((*)(-**,+*/,,.-,1--/......///000111222333333777777777777777777777777////////1/////1/////1///11322222433344655555765:86D85F0->HEV*>@ÇÐÕùÿÿòúýòõú÷øúýûüôëìÓÈƙŠ‡Î¼¸É²¬¿ ›±‰›|w‡jbsXQ`H>XA9VB7s\T}g\Žun¡†}²•Â¤œÑ°«Ú·±ëƾåÀ¸âÁ¸ÿòêÿêâ9(! ÐÈÅ÷óòÿþÿúùþïîôïîöKHS&80=7-58-18-38-38-37-57-57-5;1:7-67-8&)WO\íåòôîø±®µ³²··µºµ³¶³®²²­±·±³»µ·¼³´Ãº»Ñǃˆ‡ZNN…zx°¢¡¬™“º˜Œº“‚À™ŠÂ›Œ·´~¶€³Œ}¯ˆyª„w£}p°Š}‰cVa;.sM@eD;Q<9B22D65A64H@>PKH%$"/1.ÊËÍùÿÿíõ÷ÏÙÚèòôÎÙۄ‘{~µ§¤¾ª£¿«¤½©¢½©¢¿«¤½©¢¹¥žµ¡š¸¤»§ ¸¤³Ÿ˜¯›”¯›”°›–±™—¼¤¢µ ¬š˜´¦££›˜IEB"$!Ÿ¨¥éõóä÷óÍæâÝúöÊé䘻µˆ¢Ÿ`km  !%(!"# !",1+H,5 *3 )0%-0-26158124./1+,.'(*$%)'(*,-1/02,-1()+*+/()+%&*!"$ "%%(-038:=B>AF<@C59<,03-1458=9;G46C$&3(*7GIV`bowy†•—¤ ¢¯ÌÎÛÊÌÙfhu(DFSY[hUXaMLQNNNJJJJJJUUU```YYYHHH777222)))!!!))))))))))))))))))))))))***+++,,,+++)))***...222DCH@?D98=216-,1+*/+*/+*/:9>FEJ105#"''&+'&++*/+*/)(-*).*).+*/,+0-,1-,1.-2)(-)(-*).*).+*/,+0-,1--/224222333333444444444555555555555555555555555555////////////////////////11122222233344455555565:86C85F0..1ùêïÿ÷üúö÷òòòùùùûûûööößßßiiiKKKuuuUUU ,,,"""&&&!!! AAAzzzMMM"""!!! !!!!!!+++DDDFFF---###&&&###%%% ^`_ÐÕѲ¸´'& .8:¿ÈÍøÿÿðùþñöüöúýÿýÿõïïÖËɛŒ‡Ð½·Ì³¬À™³Žˆzt‡iasVN`H>YA7YC8t^S~h]‘vm£†~´–ŽÆ£Ô¯©Ý¶¯æ¾¶ä¾³åùÿôéÿëáC2* ¾¶³ýùøûûýñðõûûÿ½»Æ0.;$ 1?9G7-57.18-17.18-37.38-57-6<0:8.98,8*-VK[ïâóøíû¶±µ¹µ´»·¸¹µ´µ±²´°¯¶²³¹µ´¸´µÃ¿¾ÓÏв®­kghea`•‘’¬¡¶š¸’…¼–‰½—Šµ‚´Ž¶ƒ²Œ¯‰|«…x¥r²Œ‹eXa;.sM@fF;P=9A32B75@64I?>OJG&"!//-ÉÉË÷ûüíòõÏÙÚëõ÷×â䋙š€††µª¦Á­¦Â®§¿«¤¿«¤À¬¥¾ª£º¦Ÿ·£œ¶¢›´ ™±–®š“­™’®š“°›–´œš´œœ±œ›¬˜—® Ÿ¥›™VRO)+(¦¬ªìûöéüøÏèâÝúõÈé☻´†£ž_jl +  + #(!"% ",1*AFMO\WZkOQh…‰¤ÁÅல͉¨‰¨Ž’­œ »»¿Ú}œ $?5"&ATXsÈÌçðôÿÃÆ卐¯˜›º«®Íil‹4&*-Ly|›ÇÊéÅÈ甗¶x{š­°ÏÒÕôuy–3NRmmqŒz~™¤¨ÃÛßúÑÕðŠŽ©;?Z2:>Y‹ª”˜³{š“®¸¼×ª®É¨¬Ç˜œ·’–±Œ«}œy}˜x|—ptkoŠ^b}CGbUYtŒ«’–±w{”©  ¸—dd|wx‘’§–—«‰Šœxy‹fhw†ˆ•²´Á·¹ÅŸ«giu58A #(#'*%),$(+!%(#&"%#&"&))-02697;>269*.1*.1/279;G24A&(5-/C98=216-,1*).*).+*/:9>FEJ105#"''&+'&++*/+*/+*/+*/+*/,+0-,1.-2.-2/.3,+0,+0-,1-,1.-2/.3/.3//1779777777666666555555555222222222222222222222222////////////////////////11122222233344455555565:86C85F0.>>rrrJJJ###  """)))EEEMMM000 """%%%###&&& []\ÉÎʯµ±(''13´½Âôýÿïøýóøþ÷ûþÿþÿúôôÝÒС’Õ¼϶¯Ážš´‰ž{uˆjbtWO`H>YA7XB7v`Uk`”yp¦‰¸š’ʧ¡Ù´®â»´êºêĹìÊÀÿöëÿîäVE= š’þúùõõ÷ðïôþþÿ}{†#.*;@:H5.55/37.35/37-55.57-65.6:0;6.;7,:+#2NEVìáò÷ïü½¸¾¼º»¼º½»¹º¸¶¹¶´µ¶´·¶´µ¸¶¹ÅÃÄ×ÕØÛÙړ‘”RPQusvªŸµ™Ž¸’…¸’…·‘„³€´Žµ‚°Š}±‹~­‡z§t¶ƒgZa;.sM@gG:B43B75@64I?>OJG%! ..,ÅÅÇó÷øëðóÑÛÜñûýáì¡~„„°¥¡º§¡»¨¢¸¥Ÿ·¤ž¸¥Ÿµ¢œ°—°—«˜’¥’Œ¡Žˆ ‡£Š¥’Œ§’±™—©‘‘©“•§••§™™§œa]\130©¯­ðÿúëþúÍæà×ôïÂãܔ·±„ž›]hj  "'!"% ",1*7;>7;>/36*.1%),&*-+/2/36/36,0337:047+/2%), $' #!!!&%(-038:=B>AFNP]jlymo|egt|~‹ÎÐÝÓÕâcer+BDQKMZJMVHGLAAA>>>LLL```hhhXXXDDD888333***"""))))))))))))))))))))))))***+++,,,+++)))***...222CBG?>C87<105,+0*).)(-*).:9>FEJ105#"''&+'&++*/+*/,+0,+0-,1.-2/.3/.30/40/421621621621632732732733588:888777666555444333333////////////////////////////////////////////////11122222233344455555565:86C85F0.YA7XB7lVKwaVŒqh ƒ{²”ŒÆ£Ö±«ß¸±èÀ¸çÁ¶çÅ»ÿñæÿñçsbZ#~vsúöõóóõúùþßßçKIT#95F51?4/64/35/34/55.54/65.64.86.;60<5-<-'5 E>NçÞïøòÿÃÀÇÁÀÅÁ¿ÄÀ¿ÄÀ¾Ã½¼Áº¸½·¶»¿½ÂÈÇÌÙ×ÜñðõÈÆËjin\Z_”Š‰´—¹“†¶ƒ²Œ°Š}³€²Œ­‡z³€¯‰|«…x»•ˆ‘k^bR?;C54C86@64I?>NIF%! --+ÁÁÃòö÷îóöÕßàõÿÿåðòžŸouu¯¥£¹¨¡º§£µ¤´¡³¢›±žš«š“¨•‘¡‰›ˆ„—†š‡ƒœ‹„ŸŒˆž‹‡¢Œž‰ˆžŠ‹Ÿ¦˜˜¦žœ`\[352£¬©ñýùéüøÆßÙÌéä¹ØҎ®©~˜•[fh + !& "%",1*ž±¯ÜðïÜðñìûÿñÿÿ’› \ad~|‹……~”‚~•€{–wœ†{‡z ‰¤…¦‘Œ©–’¨˜˜¤š›[UYWX]ÎÙßèûÿÇâé³ÔÙ¨Ï֘¾Ç–µÉ‘­Ã´ÏäÂÝðh~“ 1%4/AM9GT6CL4>G1:?49?6;?:>A<@C/36)-0#'*$(+*.1.25.25,038AFMEGVRTcZ[mno‚—‚ƒ˜ppˆnn†ww‘yy“}}™——³—–µrrŒ<=O$&3.0=9;H#%2'dfsßáî÷ùÿÐÒß}Œ.0= + +>@MQTewyšž¹³·Òœ »ƒžƒž§«Æäèÿðôÿ–šµ"=&*E*.I37R³·Òùýÿðóÿ­°ÏŸ¢Á„‡¦25T (*-LnqŽ‘°Ô×öÌÏ²kn¥¨ÇÕØ÷w{˜7*.IZ^yŒ«œ »­±Ì¾Âݨ¬Ç]a|,0K8+-:13@VXe|~‹mo|=?L\^kÆÈÕÚÜéhjw#%2NP]QS`FIRA@E888888III]]]```QQQAAA;;;555---%%%  """))))))))))))))))))))))))***+++,,,+++)))***...222BAF>=B76;0/4+*/)(-)(-)(-:9>FEJ105#"''&+'&++*/+*/.-2.-2/.3/.30/410521621676;76;76;76;65:65:65:668557555444333222111000000........................////////////////////////11122222233344455555565:86C85F0.3,=NIF$ ,,*½½¿òö÷óøûÚäå÷ÿÿåðòˆ–—[aayom€ql‚pn{lgzhfwhcvdbn_ZiWUbSN_MK\MHaOMaRMcQOaOMnYXu_ar^`qab„xzxy0,- + ›¤£ìøöä÷õ¿ÕÒÃÝÚ±Îʊ¨¦{““Yce  % "%",1*49=9=@<@C+03%*-!&)"'*',/+03*/2(-08=@=BEAFI=BE169&+."'*"'*"%%),047:>A>BE<@C7;>37:(,/"&)" QO]B@N20>)'5(&40.<@>LOM[`^lpn|{y‡tr€dbpWUcPN\KJX=MFHWPQcfgy|}’‚ƒ˜vvŽrrŠ||–€€š••±”“²rrŒEFX')6(*768E&(5#Z\iÜÞë÷ùÿÖØ傄‘<>K#/1>GJ[ŒŽ¥µ¹Ô¿Ãޙ¸z~™}œ¬°Ëíñÿùýÿ… %)DOSnJNi+/J”¯ïóÿ÷úÿÀÃ⧪Éy|›!$C + ,HKj‰Œ«£¦ÅÖÙøÄÇ拎­eh‡ž¡ÀÒÕô{œ"?#'BSWr›Ÿºª®É˜œ·¡¼¢¦Árv‘9=X=A\rv‘ƒ‡¢… ‘•° ¤¿–šµœ »¦ªÅ•™´|€›x|—|€›†Š¥lp‹`dbf\`{\`{pt€„ŸŽ’«ŒŒ¦™™±™ss‹}~“‚ƒ˜Œ¡•–¨yzŒ`bqƒ—™¦Ÿ¡­¢¤°aco !$)"&)!%(#& #"!$ $'"&)(,/,03.25047158,03%(-(*6,.;.0=68E`boŽrt&(568E³µÂÜÞësu‚,.;WYfXZgHKT;:?333666HHHWWWTTTIIIAAA>>>999000(((###"""$$$%%%))))))))))))))))))))))))***+++,,,+++)))***...222A@E=FEJ105#"''&+'&++*/+*//.30/40/410521632732732787<87<76;76;65:65:549557113111000000/////////...------------------------////////////////////////11122222233344455555565:86C85F0.YA7YC8kUJv`UŠof€x°’ŠÃ šÓ®¨Üµ®ÿæÞÿÚÏõÓÉÿïäÿì❌„=0*h`]ÿüûÿÿÿëêïMMU%;9F@=MHE#++)ºº¼òö÷øýÿÝçèöÿÿåðò†”•RXX“‹‰šŒ‹šŠŠ“…„€€Ž€‹{{„vu‚rr~po|llzlk|ll}onoooo†rs‘}~Œy{}~¤˜š”•B@A˜—ãïíÞîíµÉǸÑΪÄÁ†£¡zWac$ "%",1*05;05948;7;>',/#(+!&)$),).1+03(-0$),38;CHKQVYOTW=BE+03#(+$),"%%),047:>A>BE<@C7;>37:)-0"&)!! OM[A?M1/=)'5)'520>CAORP^dbprp~{y‡qo}`^lSQ_MKYIHV;:J35D57F<>MFGY]^puv‹€–yy‘ss‹™ˆˆ¢‰‰¥––²’‘°rrŒRSe,.;#%213@(*7!JLYÃÅÒîðýÍÏ܁ƒQS`!. +FEJ105#"''&+'&++*/+*/0/4105105216327438438549549549438327216105105002..0......//////000000000........................////////////////////////11122222233344455555565:86C85F0.E76E:8A75H>=LGD"**(¶¶¸ñõöùþÿÝçèôþÿèóõŽœX`bŸ™™¦šš¦˜˜ž’’œŽŽ˜ŒŒ•‡‡‡yyƒwwss|pp|nn}qq…wwŠ||›ˆŠž‹œŒŸ“®£§§¡£PNQ"#%}‚…ÓÝÞÏÝÞ¥··©¾¿œ¶µ~˜™sˆ‰U_a#"%",1*?>BC<@A7;<378)-."&' NLZ@>L0.<)'5*(631?DBPSQ_gestr€{y‡pn|^\jQO]KIWHGU;:J46E24C68G@ASVWiop…}~“{{“ss‹›ŽŽ¨ŽŽª——³‘¯rrŒ[\n13@!#0-/<)+8;=Jª¬¹åçôÃÅÒ~€acp-/< 47H–˜¯ÖÚõÔØ󖚵w{–†Š¥º¾ÙñõÿÞâýPTo04Oƒž… OSnhl‡©­Èìïÿ×Úù¸»Úx{š=>>666...)))((()))+++))))))))))))))))))))))))***+++,,,+++)))***...222@?D<;@549.-2*).'&+'&+'&+:9>FEJ105#"''&+'&++*/+*/1051052163274384385495492161051050/4.-2-,1-,1,,.--/---...///000111222222........................////////////////////////11122222233344455555565:86C85F0.>>)))###&&&HHHrrr<<<""""""###''''''IKJ› œŸ¥¡8A@ $&…Ž“ÙâéäíòÞãéæêíûùüúôôÒÇńupµ¢œ¸Ÿ˜¥‚~›vp‰f`y[SkNF^F<[C9]G=LGD"**(´´¶ðôõùþÿÛåæóýÿì÷ù˜¦§ckm¢žŸ¨žŸ¦›Ÿ –—›”™”‰Ž„…timrhimbfg]^dY]h^_rgk|pršŠ“ƒ†–‡ŠšŽ —šœ–˜KILlqtÄÎÐÁÏЗ©«›°±‘©«uj}T]b""%",1*7 +&95z‹°ÄÃÃ×Øéøýõÿÿ©²·inq‰‡Šœ––¢”“¦”¤Š§ˆ±›´ž‘¸¡™º£›º¥ ¾«§Ä´´Æ¼½ŠŽPQV­¸¾æùÿÚõü°Ñ֕¼ÃŽ´½“²Æ—³É¹ÔéÆáôq‡œ !2(%7C-:$1:(2;)27(-3&+/)-0+03$,.#+-%-/*2408:/79(02!)+&.0FNPfnpgoqLTV.68!)+!)+##%)(045:>=>BC<@?7;<376*./!%$@>L31?%#1&$253AFDRWUcecqiguljxnlzljxcaoWUcKIWBAO65E&(7-/>8:IDEWTUgfg|ƒ„™‡‡Ÿ—……ŸŒŒ¦ŠŠ¦‘‘­•”³‰‰£abt68E&(513@(*7 "/BDQnp}ÆÈÕ³µÂ‹šcer:68EKMZln{‚„‘|~‹jly%'4UWd‡‰–uw„[]jcerUWd>AJ@?DAAAAAABBBCCCCCCDDDDDD:::888555222111000000111((())))))***+++,,,,,,---,,,+++)))(((((((((***+++:9>87<,+0! %#!216CBG549*)./.3.-2105216.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////11111111111111111111111122222233344444455566665:42?52C0.G?<ýùøõõ÷FEJIGR;9F95F-)74275346474251/4-+0*'.(%,1.7<9B41<-)7+'6¶²ÁúöÿõòûÙÖÝÑÎ×ÑÎÕÜÙâäáèØÕÞ×ÔÛ×ÔÝÖÓÚäáêàÝä×ÔÝõòùõòûĸºeH@lF9œvi­‡z«…x¹“†·‘„¾˜‹Á›Ž¼–‰¼–‰Ðª©ƒve?2c=0rRGXEAG98?42<20I?>KFC/+*¨¨ªøüýûÿÿïùúëõ÷òýÿµÃÄaik™—š«¢¥© ¥”——Ž“‡Š…|~ux`W\WNQI@E>58;27A8;KBGSHLƒty•†‹•‰†{†}‚…€„_]b,-1W\`¦¯´ªµ¹‡–›~‘•wŒ‘q†‹o…IPV*-2" #("%!#$#'&"!!  #$)"*/(.3-%%####  """!!!***222:::;?>-:3#&95fyw”¨§®ÂÃÍÜáçõø¤­²’—š“‘” šš¨š™¬š–³ž™¶Ÿ—±›³¶Ÿ—¹¢š»¦¡¾«§¾®®»±²—‘•TUZ «±èûÿ»Öݗ¸½·¾¶¿®Â”°ÆµÐåËæù}“¨3D -9 .;*3 *3$-2).4',0)-0,14(02)*",-*450:;6@A5?@+56#$0:;GQRXbcCMN%/0",-"!(.,162CGFKPLAED:?;<@?Yƒž‚†¡™¸ØÜ÷¹½ØŽ’­—›¶¯³Î…‰¤^b}ƒ‡¢±µÐŒ«;?Z]a|fj…lp‹†Š¥osŽ\`{”˜±­­Ç’’ªŒŒ¤……no„|}’©ª¾ÀÁӊ‹oq€vx…z|‰“•¡”–¢KMY #,36;,03'+.%), $' # $'(,/+/259<48;9=@6:=1586:=25:24@02?57DHJWdfsy{ˆy{ˆpr57DCER^`m[]jVXe_anRTaBENA@E@@@???>>>===;;;::::::111///,,,***)))))))))***((())))))***+++,,,,,,---)))((('''&&&&&&(((***+++;:?98=,+0! %#!105CBG549*)..-2.-2105216.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////11111111111111111111111111111122222233344455554953@63D1/=KIW!,,*7ÖÔßûùÿòñùòñùòñ÷òñ÷òñöòñöòòôóñô÷òöôîòþõúÿúÿþó÷Ÿ•–‹¿³³ÒÄÃÑÃÂÔÂÀÓÁ¿ÓÀ¼ÓÀ¼Ò¿¹Ó¾¹ÝÅÁÙÀ»Ô·³Ë®¦Å¤¾”»™¹—¶•Œºœ”Ū£Ô¼¸XDE8(+ÝÎÓÿöûþúûïïïòòòðððüüüøøøÍÍÍ¿¿¿úúú°°°111)))((('''!!!!!!  """)))000///$$$ ###HHH>>>!!!!!!%%%((($$$+++=?>‚‡ƒƒ‰…IRQ$.0gpu›¤«¸ÁÆÃÈÎÓ×Úù÷úÿüüàÕÓ±¢»¨¢±˜‘¡~z“nh}ZTlNFaD<\D:cKAkUJv`U‡qfžƒz¯’Š½Ÿ—ͪ¤Õ°ª×°©ß·¯Ô®£Ó±§èÌÁѹ¯jYQ +KC@ÿýüööø?>CFDO>1sSHXEAG98?42<20H>=JEB/+*ššœñõöøýÿïùúîøúõÿÿ²ÀÁ]gi‹Š›–œš“šŒ‡‡€‡z€tmtlgmWPWNIOD=D:5;818;6?8BC7AB-78().89>HIJTU7AB!+,#-.(',205:6GLHOTPDIE;@<=B>?D@.3/',(#@>L1/=(&4-+9;9GNLZa_mmkymkyljxkiwges`^lWUcNLZGFT32B$&5+-<79HEFXUVhhi~†‡œŒŒ¤—€€š‡‡¡ˆˆ¤’’®™˜·‘‘«cdv68E"$113@;=J;=JJLY_anž ­²´Á’ŸfhuLN[& UXi˜š±›Ÿº™¸˜œ·… ‚†¡¹½Ø×Ûöpt3JNi‘•°koŠ^b}|€›„ˆ£œŸ¾ðóÿÝàÿUXw1>A`Œ®ÇÊéïòÿ³¶Õ™œ»x{šqt“ £Â¢¥Ä{œdh…JNi.2MAE`|€›¼ÀÛàäÿÙÝø{š ;59Tƒž‡‹¦›Ÿº×ÛöÆÊ嗛¶™¸°´ÏƒžRVqˆŒ§¼Àۃ‡¢'+F\`{ptw{–”¯rv‘_c~¡¥¾®®ÈŒŒ¤‡‡Ÿˆˆ vwŒˆ‰ž¬­Á²³ÅŠ‹ln}tvƒuw„ˆŠ–›MO[&)2149/36-14+/2&*-!%($(+)-0*.1/3626937:*.1047@DG25:35A02?46CEGT[]jjlyrtvx…TVc9;H46CACPRTa[]jMO\BEN>=B===:::777444111...---$$$"""!!! !!!"""((())))))***+++,,,,,,---&&&&&&%%%%%%&&&)))+++---<;@98=-,1! %# 105BAF438*)..-2-,1105216.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////000000000000000000000000//////00011122222233332753@74E20>JHV#!.-+8ÑÏÚûùÿòñùòñùòñ÷òñ÷òñöòñöòòôóñô÷òöñëïúñöÿöûÿöú®¤¥¥™›áÕÕôæåôæå÷åãøæäùæâúçãúçáûæáÿèäúáÜñÔÐåÈÀݼµÖµ¬Ô²¨Ó±§É¨ŸÒ´¬àžêÒÎeQR(¿°µÿøýþúûðððôôôñññûûûøøøÑÑÑÇÇÇÿÿÿÈÈÈ&&&000...+++---$$$$$$######"""!!! """$$$,,,444444***"""###  ###FFF{{{???!!!!!! $$$!!!(((9;:uzvy{JSR#%.8:dmr–¤­²¶»ÁÄÈËòðóûõõØÍË°¡œ²Ÿ™¬“Œž{w‘lf|YSkMEaD<\D:bJ@jTI‚lazo¥Š´—Â¤œÓ°ªÜ·±Þ·°ã»³×±¦Ó±§îÒÇëÓɈwo  F>;ÿþýôôö;:?;9D=;H51B93??99?82<5/:3-91.80-7/-7./5,//&)/&+1(- %#€v~ùÁÚÏÕ¶©°¶©°Ë¾ÅÔÇÎÒÅÌÌ¿ÆÐÃÊÎÁÈØËÒßÒÙÕÈÏÏÂÉèÛâùìóñßߒtj[Nštg³€½—ŠÂœ»•ˆÁ›ŽÄž‘¿™Œ¾˜‹Õ¯¢²ŒjD7d>1tTIYFBF87?42=31G=9@529507529<7>@;BODJXMSXOTNHLNGNKIN;:@"%*,17W`gmw€p}…lzƒ]nvYjr]lsELR038#&+&).$(+#&!%&$(' $#$ ## %$)"(-&+0*""  !!!'''...3334873@9.&+>:]pn•”“§¨¬»ÀÃÑԕž£Š’‹Ž™““¡“’¥“ª•­–Ž£‚¤Ž¦‡©’Šª•«˜”ªšš¨žŸŠ„ˆGHM›¡ä÷ýÀÛ▷¼Œ³ºŠ°¹‘°Ä•±Ç²ÍâÊåø„š¯%:K (4-:*3 *3%.3).4&+/'+.).1!+,++)555AA:FF=II;GG2>>%11)55/;;4@@'33''#//%/.0629>8MRLV[UJOI?D>CHBHMG7<605/%*$" <:H-+9'%3.,:;9GOM[dbpnlznlzljxiguecq`^lXVdOM[HGU54D&(7.0?:15P|€›ˆŒ§–šµÕÙôÑÕ𠤿œ »­±Ìvz•LPk’–±ÆÊåw{–8[_zsw’z~™–šµvz•fj…¶ºÓ¬¬Æ‡‡Ÿ™‚‚šuv‹Œ¢ª«¿£¤¶ŒŸmo~xz‡xz‡ƒ…‘ŒŽšWYe47@+.3.25158158/36,03,03.25+/2+/2047047&*-=ADW[^;>C.0<.0=68EFHUSUb\^kikxuw„oq~@BO&(579FTVcXZgGIV9-,1"!&#0/4A@E327)(--,1,+00/4105.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////////////////////////////......///00000011122221675B96G42@JHV&$1-+8ÊÈÓúøÿòñùòñùòñ÷òñ÷òñöòñöòòôóñôùôøòìðøïôüóøÿôø°¦§«Ÿ¡êÞÞêÜÛêÜÛîÜÚîÜÚïÜØðÝÙðÝ×ñÜ×öÞÚòÙÔëÎÊàûٸ±Ó²©Ð®¤Î¬¢Ì«¢Óµ­ÞüñÙÕ~jk- ¨™žþõúþúûðððöööñññùùùøøøÔÔÔÍÍÍÿÿÿÐÐÐ444---&&&%%%'''###""""""!!! ###%%%---555444***"""%%%""" """###!!!&&&FFFzzzBBB """ """ !!!$$$354chdhnjHQP'/18BDbkpˆ‘šŸ­²¸»¿ÂíëîùóóÔÉdz¤Ÿ­š”«’‹˜uq‹f`xUOiKC`C;[C9aI?iSHk`Œvkžƒz­ˆ¿¡™Ó°ªà»µä½¶Ýµ­Ø²§Ñ¯¥æÊ¿õÝÓ¡ˆ&5-*ÿþýóóõTSX$$,,*5/-:3/@E?IMCAI?6B8/>4+=2,=2,>3/=2.8-+6**4((6*,/#'6*.THLiZ_cSVF69G7:RBEI91vVKYFBD65@53>42F<;JEB2.-{{}ìðñôùüòüýôþÿòýÿ“¡¢JJ@LL@LL8DD+77$00"..#//((''%11*43395=B269-14.25,03/36*.1!%(JNQmqtILQ%'3+-:9;HHJWNP]RTa^`mmo|qs€JLY+-:8:GTVcVXeCER14=216111///,,,(((&&&###"""((())))))***+++,,,,,,---++++++***+++---000333555>=B;:?.-2"!&"/.3A@E216(',,+0+*//.30/4.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////////////////////////////......///00000011122221686C:7H64BJHV)'4-+8ÂÀËúøÿòñùòñùòñ÷òñ÷òñöòñöòòôóñôúõùóíñùðõþõúÿõù¯¥¦©ŸçÛÛêÜÛêÜÛíÛÙìÚØíÚÖíÚÖìÙÓíØÓòÚÖð×ÒîÑÍçÊÂã»ݼ³Ù·­×µ«Ó²©Ú¼´âÇÀúâÞ ŒC36Ÿ•ÿ÷üþúûðððöööñññùùùøøøÔÔÔÍÍÍôôô»»»(((,,,+++111...***))))))((('''&&&&&&&&&+++,,,333:::888---### ###!!! !!!$$$$$$""" !!!###"""(((EEEyyyFFF###$$$""""""$$$###"""!!! ###"""'''465PUQV\XCLK19;AKM_hmt}„Š˜£©­°Ù×ÚéããÁ¶´¤•œ‰ƒœƒ|Žkgƒ^XrOIeG?^A9ZB8aI?hRG€j_Œvk‚y¬‡¼ž–ͪ¤Ô¯©Ó¬¥Ô¬¤Ù³¨Ó±§Ù½²òÚе¤œ0#( ýùøõõ÷‘•ggo'/+<`XcdYS]OBOA4E7*@2'?1&=/&<-&G81H94=.+9*'7''8((M==eSSfRS^HJkUWnXZS=?WAC~hjy{•¢ŒŽu_aD.0bLN˜‚„¤Ž„€«‰€¬†y·‘„º”‡½—ŠÆ “Æ “Äž‘È¢•Äž‘ÂœÞ¸«ÂœsM@e?2xXMZGCC54@53?53E;:JEB3/.ttvòö÷öûþôþÿõÿÿíøú|Š‹$-2;>GMMWQO\JJTLJWKKUFDQAAK64A33=20=..8.,9--7.,9/-83,44-45.53.42-41.543;58?37@*1;S[f~ˆ’v‚Žco{T`lEOY=BH:=B58=25:158/36-12/32,0/+0,*/)*/)*/(+0)-2+.3---++++(((&&&$$$###$$$$$$ !!!"""######$$$$$$###########################$$$$$$%%%'''***///3332650=6&7/-@?D|‡ßòøÊå엸½‹²¹‰¯¸•´È•±Ç¬ÇÜÉä÷‘§¼1FW ,+8)2 *3&/4).4$)-"&)#(+!--#110>>9GG9GGLL9GG-;;++''&&%%,,&44,866=6AF?[`YingZ_XNSLW\UejcRWPGLE7<5).'!&" :8F'%3&$20.<:8FNLZdbpiguljxigufdrecqcao\ZhQO]GFT:9I,.=57FCETSTffgy{|‘š›°šš²‚‚š}}—ˆˆ¢‹‹§’’®˜—¶““­tu‡KMZ&(58:Goq~…‡”_an13@kmzž ­™›¨{}Šjly=?L02?fiz’©sw’w{–‘¬€„ŸmqŒ„ˆ£¨¬Çjn‰$(C48SDHc04OX\w”¯ž¢½ ¿ëîÿØÛúY\{9FIhž¡ÀçêÿæéÿŸ¢Á`c‚nq‚…¤²µÔÝàÿŸ£Àbfƒw{–€„Ÿfj…tx“µ¹ÔÃÇ❡¼w{–6:U37Rx|—… ˆŒ§æêÿìðÿ©­È ¤¿•™´]a|`d·»ÖÊÎé\`{5ae€mqŒrv‘¢¦Áƒ‡¢lp‹ÈÌ徾ؘ˜°rrŠ[[sef{—˜­®¯Ã•–¨xy‹]_nz|‰Ž|~ŠˆŠ–ceqBEN25:6:=:>A?CFBFI@DG37:&*-)-00476:=(,/"IMPptwJMR+*,9;=JFHUIKXLN[WYfceregtOQ^24A;=JRTaRTaCER14=0/4///---+++(((&&&$$$$$$((())))))***+++,,,,,,---//////......///111444666?>C<;@/.3"!&".-2@?D216'&++*/+*/.-2/.3.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////........................//////00011122222233332797D<9J75CIGU,*7.,9»¹Äúøÿòñùòñùòñ÷òñ÷òñöòñöòòôóñôùôøóíñüóøÿùþÿùý±§¨©ŸåÙÙìÞÝìÞÝïÝÛîÜÚïÜØîÛ×îÛÕïÚÕìÔÐëÒÍëÎÊæÉÁã»ݼ³Ù·­Ö´ªÌ«¢Ú¼´ÞüõÝÙ²žŸTDG—ˆÿùþþúûðððôôôñññûûûøøøÑÑÑÇÇÇõõõººº'''...333999000++++++***))))))(((''''''(((***222;;;;;;222***'''"""""""""%%%((()))'''$$$ ###!!!'''AAAtttEEE!!!%%%'''%%%%%%'''%%%!!!$$$###!!!######)))465EJFIOK>GF7?AEOQYbgiryt}‚”š£§ªËÉÌáÛÛ¶«©š‹†–ƒ}•|u‚_[yTNjGA`B:[>6YA7`H>hRG€j_‰sh˜}t§Š‚ºœ”Ϭ¦Úµ¯Û´­Ú²ªã½²ß½³×»°íÕËòª?2,)!ôðïÿÿÿåäéÆÆÎ20;95F†ŽÊ¼³¾­›©˜ˆ˜‡w~pŒzlˆvj…sg‰wmo\U:'!-25"aNJ•‚~ž†„¢ˆ‡³™˜¦Œ‹lRQdJI•{z©Ž£‰ˆ¯•”kQP5pVUµ›š¸ž­Œ®Œ‚º”‡Âœ¾˜‹½—ŠÅŸ’Ç¡”ÅŸ’ʤ—Ç¡”Äž‘⼯ɣ–wQDe?2yYN[HDB43@53@64D:9IDA40/mmoöúû÷üÿõÿÿöÿÿêõ÷lz{#=AJOO[QQ]IIUHHTFFR==I88D22>11=//;--9,,8,,8--9.,7/*10+12-30.30-410655=9H6;A=@E59:6:937638427116016/16/16/160//----***(((&&&&&&&&&'''"""###$$$%%%%%%%%%##############################$$$$$$%%%'''***...222154.;4*;3/B>EXV[oneyzv…ŠŠ˜›Š“˜’—š™—š¡››­Ÿž°žš¯š•´•¶ •¶ “¶Ÿ—¶Ÿ—µ ›´¡±¡¡®¤¥‹…‰@AFv‡Þñ÷Ïêñ™º¿´»Œ²»–µÉ–²È©ÄÙÈãö—­Â8M^ +(+8)2!+4&/4).4#(, $' %(&22'553AA;II:HHAOOJXXLZZ4BB**$$##(('55,::1=;KBDQBDQHJWSUb\^kcerUWd8:G>@MPR_MO\EGT9C105'&++*/*)..-2/.3.-2.-2.-2.-2.-2.-2.-2.-2,+0,+0,+0,+0,+0,+0,+0,,.++-,,,,,,---...//////000////////////////////////------------------------111111222222333444555549:8E=:K97EIGU.,9.,9¶´¿ù÷ÿòñùòñùòñ÷òñ÷òñöòñöòòôóñôøó÷òìðûò÷ÿøýÿøü¯¥¦¦šœâÖÖèÚÙèÚÙëÙ×ìÚØîÛ×îÛ×ïÜÖðÛÖóÛ×ð×ÒìÏËäǿ࿸ٸ¯Ö´ªÔ²¨Ó²©áûÛÀ¹ëÓϼ¨©dTW“„‰ÿ÷üþúûïïïòòòðððüüüøøøÍÍÍ¿¿¿êêêÊÊÊ999...//////)))'''&&&&&&%%%$$$######""",,,...666>>>>>>444,,,)))******,,,111555777555222,,,000---444)))LLL~~~SSS%%%)))+++))))))+++)))%%%000666222+++)))(((+++354AFBBHD;DC:BDEOQS\a_hoirwy~„‘•˜®¬¯ÉÃېŽ~oj€mg}d]xUQoJDc@:[=5X;3W?5`H>hRGu_T|f[Šofš}u°’ŠÉ¦ Ö±«Ù²«½•Äž“Ç¥›½¡–ѹ¯³¢š02?/1>,.;*,9*,9*,9,.;//;/,34/561852952;76>::D:=F8:F",ciu¬´¿¬¶Âž¨´o{‰,6@',269>8;@36;6:=6:=37859815416205//4..3,-2+,1*+0*++))))'''$$$"""""""""### !!!###$$$$$$"""  !!!!!!###'''+++////320=60A92EAATRSgf[opix}|Šˆ‘–•š›ž£±£¢³¡±œ—¶Ÿ—¶ •µŸ’µž–µž–³ž™±žš®žžª ¡’ŒDEJs~„Þñ÷Óîõš»À¶½µ¾˜·Ë–²È§Â×Çâõœ²Ç2BA9ECDKDQVOmrkzxgleTYR`e^uzshmfZ_XFKD381&+$$!A?L,*7-+886D>P+,>ln}´¶Å ¢¯KMZNP\vx„ŠŒ˜ƒ…’uw„^`m\^mvw‰xz‘`d}Y[tdhuwtx‘y{”‰¦rtAE^-/H7;TBD]TXqrtrv‘‘”³ãèÿêïÿŠ­.3SJOm·¼ÜïôÿÎÓó|ŸRWw˜»ª¯Ï§¬ÊÊÏ¼<@]X\w‹ªŠŽ©”¯ÈÌçÃÇ₆¡… gk†OSn‚†¡y}˜w{–îòÿíñÿ¨¬Å¢¦¿~‚›MQjƒœÕÙòÂÆßLPi $=mqŠsw~‚›½Áڔ˜±_c|¬°Éîðÿ¼¾Óij:38>9AH%*0),3]bh…ˆpu{KNU]bhpszCGP(+.=<>M>>CCCEEECCCAAACCCHHHEEELLLAAAbbb”””jjjjjjooopppnnnnnnpppooojjjMMMRRRKKK>>>888333222999CEDAED7`H>iQG}e[†kbsh—yo¡€w¨ƒz¢|sšrjTK‚ZPl`pe¦‹‚“v(ÈÃÀõóôûúÿýþÿNNX !zíÛÑâɵ˲ž½¢¸Š¹ž‹¹ž¹žå˼éœO7+'7#zf_­–µ˜’«…´•¨Š‚Z;6E'Œmhµ—«Œ‡¯‘‰[<70 +‡hcÇ©¡·˜“²‡»•ˆ½–…¿•‡ÅžË¡“Ãœ‹ÄšŒÄŒÐ¦˜Ë¤“ÉŸ‘èÁ°Õ«}VEh>0|ZN]IB@2/C52B75C97KCA621Z[]òö÷ï÷ùôþÿ÷ÿÿîüÿftw#18BAEPDFS:>I:)-824A.2=,.;)-8*,9*.9-/#,03126*.1015/34./1.21,.-).*+-*(-')+&%*$%'"$&!&&$%%%"""!!!""""""  $$$(((---,0/3?;5F@7GDAQPQ`cXglbouv†‡Ž”˜™žžœŸ¦ž°¤¤²£ °—´ ™°œ“°œ“°œ•¯š•­š–¬š˜©™™¥›œ˜’–HINs|ßñõ×ðô¼¿”·»“¸À˜·É–²Ç¥ÁÖÇâõ·È>Ue#*5)2"+2(/5).2#'*"%"%$00(88:JJI[]Wims…‰“¦¬¤·½>QW/5#*!%.04DD7GG?KIKQOW\Xsxt„€injTYU_d`uzvnso_d`INJ5:6(-) %!!87?*)1/-8GERYWedarkh{kh}olvs†wt…qo}ljwecnSRZ>>H10>57F79H?APTUgmn€‡ˆžŸ´¥¥½——¯ŒŒ¦§¬©‰ˆ§ˆ‡¦ssNNh^^vª«ÀÉÊ܅‡–-/<.1:]`ior{‹™„†“jl{WXj~‘±²Æhk~;36GGM]^arciyCFW #+.?ª°Àîñÿèîþ£¦·ƒ‰™hk|!'7/-2FBDYJOcSViX]phk|z€ ¯ouƒ7;G'-9HLWV]gNR]GKT;<@;;;777333...***&&&$$$"""######$$$%%%&&&&&&'''((((((((((((((((((((((((<<<777..0$$$,,.===557,,,**,)))//1---//1/////1/////1/////1///..0.....0.....0.....0....,-.,-0,-.,-0,-.,-0,-.,-/+,-+,/+,-+,/+,-+,/+,-+,3333333333333333333333335555555555555555555555570/5.-3439DCIEDJ0/5…„Šùøþöõûïîóìëðïîóñðõðïôðïôóñöùôúûôûòéîþóùþòö¦—š²¢£îÚÛûæãÿæâÿæâÿçäÿæâÿäÞÿãÝÿãÚýß×÷ÙÏïÎÅæ¶۵¨Ñª›Ì¢”ÉŸ¾”†À–ŠÃ”س­°ŽŒdDEŽquÿíïÿùù÷÷÷òòò÷÷÷ÿÿÿòòòÛÛە••ªªªìììôôôëëë÷÷÷ùùù÷÷÷ôôôøøøòòòæææ×××ÇÇǹ¹¹­­­§§§~~~xxxlllaaa\\\VVVOOOKKK@@@@@@@@@@@@@@@@@@@@@@@@IIISSSXXXhhhllleeexxx‘‘‘£££©©©±±±´´´°°°¥¥¥˜˜˜mmmhhh^^^TTTKKKEEEBBBAAA=;><<><=A?CFDLNNXZWac[fhaklfpqpuxrvwiik[WXSMOXLNUABX@@V>>U=;W?;`GBlSLv[R‚e]qg¢‚w³‘…ÁÌ§—Ö¯ Þ´¦Ï£–׌śÎ¨æÄ»²•'  ¼±¯ÿüüûùüñòöƒˆŽ vtwíÔÍÿÞÎÉ¥•Â‹Æ¡Ž¿š‡¾™†¼—„ãÀ­É¨—gJ:$H6,ud\µ¡˜ªŒ‚¬ˆ|´†µ‘…gB9AŽi`µ‘…º•Œ§ƒwM(@ŸzqÍ©¼—Ž¶ƒ½’À“~“Ä—‚ǘ†È›†ËœŠËž‰Ì‹×ª•Ô¥“ø˶ú˹•hSa2 ~WF^F<>-&E61G:4F;7KA?FA>TUWìñôøÿÿåðôîûÿìûÿt…Œ!(+4=7>F9=H29A59D3:B26A18@*.9)08-1<-4<26A29A6:E7;D@CLADKCFMDHQGKTHOWJQYJSZ6AG antÕäëÚëò×è笠¿%+  !"" $&#""  &&&+++////321<8/>;6DDALNHSYNW`Z^iegs„„‹ˆ‘˜‘˜¦ ±¥§³¥¤¬˜¥–‘ ‘Œ ‘Œ¡’¡’¢’’£““£•• –—‘‹XW\qvzÅÓÔËßࢼ»Ÿ½½Ÿ¾Á™»Ç›¼Ë¤ÄÓÈåó©ÅÑ@[f#+2)/ '-!&*!%("#%##%#$ *+4CF?PWUgqpƒ‘ µÆÕëÿÍãúCYp. "5)7'9C9JQBQTU`bbgk]`e^af`chWZ_ILQLOTZ]bUX]MPU?BG038%(-!&$#76<+*031C`_c~}œƒ‡¢–šµÂÆá¼Àۄˆ£Z^yy}˜|€›ŠŽ©ŠŽ©vz•½ÁÜáåþ²·Í¢¶uzŽfk’—«ÂÇÛ¬±Åpu‰>CWz“„˜bg{ÀÅÙèíÿ|•\atšŸ²¤ªºioNTd†Œœ«±Á¦¬¼£³FL\>DTv|ŒˆŽž‚ˆ˜†Œœ\br4:J/4H.3G7>>;;;;;;;;;<7=<:?>=BAEHHMPNXYT^_Wcc^jjbnnjrtlqtaehTSXMKPRINQBES@BS?@R>=W??`HDnRNx[S‰kc–vk¨„xµ‘Áš‹Ç Ï¦”Ô©˜É›ŽÀ’…“‰ÊŸ–ã¾µ¶˜0½®«ÿüúýùúö÷ûž¦©  bbbêÏÈÿÝÎÏ¥—ÅœŠË Ã˜…Ùƒ¿–€ç¾ªÍ¨•jK9$H6,se\² –«‹€«…x±‹~µ‚iC6CŽh[¸’…½—Š¤~qN(G!¤~qͧš¼–‰·¿’’|Ĕ~Ɩ€É™ƒË›…͝‡ÎžˆÏŸ‰Û«•×§‘úÊ´ýÍ·›kUc3XF`E:?.&G6/G:2H:7J@>GB?VWYìñôøÿÿØæéßìôåöýx‰‘#*)2;4;C529A4;C6=E7>FCGPDHQDKSFMUHQXJSZKV\LW]9FL +`otÛíñãöúáôø¶ÉÍ!03 +"""%%%### &&&+++////321;:/>;7BDALPIPXPT_Z\ifes|x†ƒ}‰Ž‡›’—¤˜š¤™—Ÿ‘Ž˜‹…ŽƒŽƒ‘ƒ‚’„ƒ“……“……’†ˆ‘‡ˆˆ‚†OOQhloÀÌÌÎÞÞ¨¾¼¤¾»¤Âš¼Æš¾Ì¤ÄÑÈèó¬ÈÔB]f !+2)- '-!&)#$("#%$"#!"$&015DG@QY_r€~“¦©ÁÙÕíÿÅÞü7Pn/ #;,?&9G8IQJY\itv{ˆdgpPS\NQZPS\LOXKNWOR[MPYFIR9RFK_SXlKPd.3G1di}ÙÞòðõÿÉÎ⚟³joƒ16J "*/E?DZRWm`e{sxŒˆ¡¤©¼ÀÆÖÏÕ劐ž9?K%+7DKUOV`AHR?DJ78<777444000---)))&&&%%%!!!  !!!"""######$$$%%%&&&&&&'''''''''''''''''''''''''''333///''',,,===555,,,***)))///---////////////////////////........................3/03/03/03/03/03/03/03/01-.1-.1-.1-.1-.1-.1-./-.2011111111111111111111113333333333333333333333331050/4438CBGFEJ/.3‚†ø÷üöõúïîóìëðïîóñðõðïôðïôòñöùôúûöü÷ñõÿ÷úúîò™‹‹—„†Ì·¶ÿçæÿèäÿèåÿéãÿèãÿåßÿäÝÿåÜÿà×üÜÑóÑÇëŸẫ۱¡Ù«›×©™Ö¨™Õ©œÞ²©úÑË·G##‚`aÿîñÿ÷øÿÿÿõõõîîîñññÿÿÿòòòmmm000???666222,,,******///////////////000000000;;;;;;<<<;;;777333111111************************---......,,,333444---000------...//////......---999666222...---...111333839:8=A@EEILKPSNXYR\]S__[gg]iickmejm[_bONSHFKNEJPADS@BS?@R>=X@@`HDoSOy\TŽph™ynª†zµ‘¿˜‰Ãœ‹ÈŸË É›ŽÂ”‡Ä•‹Éž•ã¾µÃ¥B&"µ¦£ÿûùýùúüýÿÅÍÐ  +EEEáÆ¿ÿÜÍÒ¨šÆ‹Ì¡Åš‡Äš„Á˜‚潩Ϫ—mN<$I7-rd[­›‘¨ˆ}§t­‡z´ŽlF9Di\¼–‰Á›ŽwjM'T.!¬†yË¥˜»•ˆ¸‘€À“€Â”}ĖƘÉ›„˝†ÍŸˆÎ ‰Ñ£ŒÜ®—ت“ùË´ÿѺŸqZc5€ZGaF;@/'G6/F91H:7I?=IDA$#!RSUÝâåìöø¾ÌϾËÓÍÞåq‚Š %&/818@18@-4/6>,3;.5=.5=/6>07?3:B5F9@H:AIHLUIMVIPXKRZLU\NW^OZ`P[a>KQZináó÷êýÿéüÿÆÙÝ)8; +"""%%%###  &&&+++////322<;0?<7BD@KOGNVNR]WYfcbpqm{ysƒ|„Ž…Š–ŠŒ•Šˆ‚Š}w‚wu‚wu…wv†xw†xx‡yy†z|…{|}w{DDFY]`´ÀÀÎÞÞ­ÃÁ¦À½¦ÄĜ¾È›¿Í¦ÆÓËëö°ÌØGbk  +2)- '-!&)#$("#%$"#!"$.896EHCT\m€Ž•ª½¸ÐèÔìÿºÓñ.Ge ( ":0C)CWotˆíòÿÛàôv{ŽZ_rSYiRXh~„”®´Ä³¹É—­sy‰,2BNTd‡ˆŽž†Œœ…•IO_5;K5:N5:N05I8=QGL`BG[5:N7CI459444222000---***((('''$$$###!!! !!!###$$$"""######$$$%%%&&&&&&'''&&&&&&&&&&&&&&&&&&&&&&&&///+++$$$,,,===555,,,***)))///---////////////////////////........................4014014014014014014014011-.1-.1-.1-.1-.1-.1-./-.1/0000000000000000000000111111111111111111111111105327438BAFGFK/.3€„ø÷üöõúïîóìëðïîóñðõðïôðïôòñööôùøóùøòöÿûýÿöú©››ª—™äÏÎçÍÌêÎÊíÎËðÏÈóÎÈóÌÅóËÃñËÂëÊÁèȽåù⼯ݶ§Ù¯Ÿ×©™Õ§—שš×«žáµ¬ÿÚÔ¹‘;{YZÿòõÿö÷ÿÿÿûûûôôôïïïÿÿÿõõõiii$$$666888555//////111''''''((()))+++,,,,,,---###&&&000444,,,%%%%%%&&& ### !!!...???((($$$$$$######$$$%%%'''(((%%%###!!! """&&&***---506:8=CBGHLOMRUNXYQ[\R^^XddXdd\df]beTX[JINDBGI@EO@CR?AR>?R>=X@@aIEpTPz]Uqišzo¬ˆ|º–†Ç ‘ͦ•Ñ¨–Ó¨—Π“É›ŽÉšÊŸ–⽴вªW;7 ¤•’ÿù÷þúûýþÿâêí%) +++Ö»´ÿÜÍÖ¬žÈŸÍ¢‘Æ›ˆÅ›…Ú„仧ҭšqR@$J8.qcZ§•‹¥…z¤~q©ƒv´ŽpJ=Ej]ݐƠ“”naM'd>1¶ƒÉ£–¹“†¹’ƒÂ•‚Ä–ƘÈšƒÊœ…ÍŸˆÎ ‰Ï¡ŠÔ¦Þ°™Ù«”÷ɲÿÔ½¦xac5[HaF;B1)G6/E80H:7H>/6>+2:.5=.5=+2:-4<29A3:B5F:AIEM?FNKOXLPYKRZMT\NW^OX_P[aQ\b?LRM\aßñõëþÿêýÿÏâæ,;> +"""&&&$$$!!! &&&+++////322<;0?<7BD?JNELTKOZTVc_^lokyvp|€yŠ†ƒ…ŽƒŠ|y†ysƒxvƒxv…wv†xw‡yyˆzz†z|†|}xrv>>@LPSª¶¶Ïßß±ÇŦÀ½¦ÄğÁ˝ÁϧÇÔÎîù·ÓßMhq+2)- '-!&)#$("#%$"#!"$4>?6EHDU]x‹™¤¹ÌÁÙñÏçÿ«Äâ,Ec $ 72E.AO?PX_nq›šž§dgp,/8#&/=@ISV_MPYCN?BQ>@Q=>Q=/6>-47>F8?G:AIAJ*-6&)2!$-($""#,+1)(.97BOMZWUc\Ylfcxmi€wsŠ~“„”yw…kiv_^fNMU==E65C68G68G?APVWikl~|}’Š‹ šš²‘‘©„„ž{{•{{—||˜ut“kj‰XWwqpˆˆ¤žž¶Ÿ ´gix$&3 #&/'*1EHQhjv«­º»½Ì¤tu‰‚ƒ•„…—VWi#$6OPb·¸ÊÝÞðº»Íxy‹34F+WXjop‚qr„{|Ž…‡œˆ¬}†§Ÿ¨ÉÁÊ먱Ң«Ì¤­Î¨±ÒŸ¨Éox™JSt?Hilu–éòÿî÷ÿ‹‘±16Simˆ‘•°›Ÿº¢¦Á¡¼ƒ‡¢lp‹ž¢½‘¬z~™™¸“—²µ¹ÔÝáü ¤½› ¶› ´¢¶œ¡µ•š®”¨Ž“§‘–ª‚‡›v{uzŽNSgINb¶»Ï÷üÿÃÈÛSXk%5;AQ•›«±·Ç£©¹—­sy‰%+;_eu£³‘—§ƒ‰™u{‹TZjjp€]bv=BV%*>.3G>CW?DXCH\RWkotˆ ¥¹¤©½ch|QVj>CW$)=-2FAP=?Q=>Q=29A3:B18@3:B=0?<6AC?=LOK\dwŠ˜›°Ã±Éá»ÓÊ4Mk '51D6IWM^fetwŠ•—jnwJMV$'0 )8;DSV_PS\=@I%(1"%.!*&$###('-&%+53>IGTOM[TQdb_tmi€uqˆ~“„”yw…kiv_^fPOW??G98F9;J79H@BQVWijk}xyŽ„…š˜˜°¨‚‚œxx’ww“yy•rqgf…SRrhg†~~ššš²¡¢¶hjy')6# #,.18GJSdfrž ­ÈÊٖ—«qr†€“’“¥ghz#$6?@R©ª¼ÚÛí½¾Ð‡ˆšEFX 2MN`cdvjk}vw‰‚„™„‹¨u~Ÿ•ž¿Î×ø¸Á⟨ɞ§È¡ªË ©Ê‰’³u~ŸendmŽèñÿìõÿ‹‘±#(Elp‹‘•°ˆŒ§‘¬’–±y}˜\`{¤¨ÃŽ’­w{–™¸˜œ·ÊÎéêîÿ’–¯˜³ ¥¹¥ª¾¡¦º˜±•©Š£†‹Ÿ†šv{uzŽZ_sKPdŸ¤¸íòÿØÝðdi| &6DJZ©¯¿´ºÊ›¡±–œ¬u{‹$*:^dtœ¢²Ž”¤|‚’u{‹nt„œ¢²•©UZn+0D-2F6;O6;O:?SDI]\auŽ“§ÂÇەš®otˆNSg-2F$)=FKa]bxqvŒ|—„‰Š£˜°ª°À¿ÅÕy)/;$0LS]`gqHOY5:@348444444333333222222222***)))'''&&&&&&''')))***"""######$$$%%%&&&&&&'''$$$$$$$$$$$$$$$$$$$$$$$$000,,,%%%,,,===555,,,***)))///---////////////////////////........................1-.1-.1-.1-.1-.1-.1-.1-.,(),(),(),(),(),(),()*(),*++++++++++++++++++++++------------------------21698=549@?DIHM.-2zy~÷öûöõúïîóìëðïîóñðõðïôðïôòñöñðõíìñúøûÿýþÿøûª Ÿ ’’ÞÌÊçÒÏëÒÍðÓÏòÔÌõÒÌöÑÉõÏÆóÎÅ÷ÖÍöÖËõÓÉõÏÂñÊ»íó뽭躪䶧߳¦â¶­ïÆÀШ¦hDDtRSÿíðÿö÷óóóõõõíííóóóúúúÿÿÿêêê¾¾¾BBB'''(((!!!"""!!!!!! $$$+++GGGQQQ444$$$ CCCƒƒƒDDD """"""!!!  !!!'''---000:5;=;@CBGEILJORS]^eopq}}]iiWccS[]RWZMQTGFKDBGI@EL=@O<>P<=Q=F6=E8?G?FN@GOBIQDKSGNVIPXKRZLS[NR[NR[MT\MT\MV]NW^MX^NY_DQW4CHÕçëñÿÿèûÿçúþSbe +###((('''$$$ &&&+++////324>=1@=6AC;FJ@GOCGRKMZUTbmiwwq}‚{ƒŠ†Ž‚„Žƒ‚‘„~‚€‚€‚‘ƒ‚’„„’„„‘…‡†‡‡‹LLNCGJ¡­­ãóóÉßݫŨÆƧÉÓ¢ÆÔ­ÍÚÙùÿÉåñ^y‚ +2)- '-!&)#$("#%$"#!"$5?@ETWSdlt‡•¢µ¤¼Ô´Ì萩Ç1Jh* !92E6IWO`hetw…’Y]fCFO'*3"+7:CPS\LOX8;D#&/!$-!*'%$#$&%+$#)31DT­³Ã¶¼Ìš °–œ¬sy‰"(8Z`p™Ÿ¯Š v|Œv|Œ‚ˆ˜ÁÇ×¼ÁÕkp„05I).B,1E+0D27K8=Q]bvw|®³Çˆ¡ch|NSg5:N"';NSich~ty|—†š…Šž‘–©£©¹­³Ãouƒ'-9 &2SZdkr|SZd549@?DIHM.-2yx}÷öûöõúïîóìëðïîóñðõðïôðïôòñöõôùðïôûûýÿýþþøú«¡  ’’ÞÏÌêÕÒî×ÑòÖÒô×Ï÷ÖÏ÷ÕÌøÓÊöÑÈôÓÊôÔÉõÓÉöÐÃô;òȸñóîÀ°ä¶§ß³¦à´«è¿¹Ú²°€\\~\]ÿõøÿ÷øöööûûûðððþþþÿÿÿùùùòòòøøøYYY&&&)))"""###"""!!!!!! ###***IIITTT444!!!EEEHHH + + +!!! """!!!'''...222=8>?=BBAFBFIHMPU_`jtuy……`llXddS[]RWZMQTHGLECHKBGL=@O<>P<=Q=fWTÿ÷õúö÷óôøñùü›¦ª ±–ÿÛÌ㹫ͤ’Ѧ•Ì¡ŽÉŸ‰É Šß¶¢Û¶£}^L# O=3n`W•ƒy˜xm¢|o±‹~ݐ}WJE˜reìƹױ¤uOBJ$™sfÖ°£Âœ³€¼•†ÄšŠÆ›ŠÈŒÊŸŽÌ¡Ï¤“Ð¥”Ѧ•Ò§–Ú¯žÕª™ç¼«ÿÕı†uZ/zUEbJ@H7/G6/B5-F85D:8QLINMKUVXafi|†ˆhvyfs{x‰du}4EL*3<6=E8?G5=1@=6AC;FJ?FNBFQIKXTSagcqqkw|u}…|‰}‰~||‚|ŽƒŽƒ‘ƒ‚’„ƒ“……“……’†ˆ‘‡ˆ‘‹OOQCGJ¢®®éùùÏåã¯ÉÆ«ÉɨÊÔ£ÇÕ­ÍÚÛûÿËçóa|…"+2)- '-!&)#$("#%$"#!"$5?@KZ]Yjrq„’ƒ˜«œ´Ì±É吩Ç+Db+&>4G4GUN_getw„‘SW`BEN),5!$-69BMPYHKT14=#&/"%."+(&%$$'&,-,275@CANNLZWTg]Zo`\sok‚wt‰|vta`hIHP88@98F8:I:@OHI[XYkjk€wx‚‚šƒƒ››yy“ttvv’}|›ƒ‚¡‰ˆ¨‹Š©«§§¿¤PRa((-0947>ADMEGS{}ŠÅÇÖº»Ïˆ‰€’‚ƒ•xy‹YZlNOayzŒ­®ÀÁÂÔÈÉÛ€’-.@();IJ\Z[mno}”ƒŠ§cl–ŸÀàéÿÑÚû•ž¿s|foOXy‰’³ÅÎµlu–åîÿêóÿ£Ã#@Z^yËÏꮲÍptz~™‡‹¦… ‰¨ei„x|—¨¬Çéíÿøüÿñõÿ~‚›pu‹› ´©®ÂŸ¤¸šŸ³‹¤~ƒ—‡Œ ƒˆœw|„˜v{OTh‹¤ìñÿÜáô†™!1LRbÀÆÖ¤ªº‡—‘—§fl|!1agw…•w}qw‡io–œ¬ñ÷ÿÜáõ`ey#7*/C6;O05I*/C27KX]q¯´È› ´hmUZnAOYZš››§§lxxdpp\dfV[^MQTDCH?=BD;@D58I68P<=YEDhPPv^Z…iephž€x¨ˆ}´„»—‡¿˜‰¿˜‡Á˜†Â—†¾ƒ½‚·ˆ~­‚yޕ»•cGCfWTùñïÿýþóôøùÿÿèó÷#)ŽslÿÙÊôʼ̣‘Ѧ•Ï¤‘Ó©“Åœ†Ò©•Þ¹¦ˆiWP>4qcZ‹yo’rg¢|o«…x×±¤•ob> štgÿÙÌ⼯S- Eµ‚Ù³¦ÂœÁ›Ž½–‡ÉŸÊ Ë¡‘Ì¢’Í£“Ï¥•Ð¦–Ц–Ï¥•Ó©™Í£“ѧ—ݳ£¨~nf<,kG9ZB8L;3H70C6.?1.C97LGDMLJJKMkps|†ˆv„‡ƒ˜©ºÁ•¦®6GN'0BIQDKSFMUMT\ELTFMUELTHOWIPXLS[NU]OV^OV^NU]MT\JNWJNWHOWHOWGPWGPWFQWFQW@MS$38®ÀÄîÿÿìÿÿéüÿˆ—š  111CCC111!!!""" &&&,,,1111543=<1@=6AC9DH>EMCGRGIVJIW_[if`lngoypuƒwyˆ}{|‚|Œ‚€‚’„ƒ“……•‡‡”ˆŠ”Š‹ˆ‚†\\^BFIœ¨¨êúúÁ×Õ¡»¸²ÐвÔÞ´Øæ³ÓàËëöÑíùmˆ‘& !07#.2$+1$),'(,)*,,*++,.5?@CRUYjrj}‹ƒ˜«‹£»—¯Ë~—µ2P1+C%:M;N\O`h“‰”–RV_ADM58A$'0/2;CFOPS\>dBCÿìïÿúûøøøôôôðððôôôëëëãããüüüîîîddd ((('''!!!!!! BBBooo888""" 999DDD"""+++111728?=BA@EBFI494pbYŠxn“sh¤~q®ˆ{Ûµ¨—qd@ štgÿÚÍÙ³¦M'I#º”‡Ú´§ÂœÁ›Ž¾˜‹ÆŸÈžŽÉŸÊ Ë¡‘Ì¢’Í£“Τ”Ê Î¤”ǝË¡‘Õ«›¤zjf<,jF8YA7L;3H70C6.@2/C97KFCKJHBCErwz’œž›ž•¢ªÂÓÚ®¿ÇARY"+4DKSGNVIPXOV^IPXIPXHOWHOWJQYLS[NU]OV^OV^NU]MT\JNWJNWHOWHOWGPWGPWFQWFQW@MS#27«½Áîÿÿìÿÿêýÿ‹š   222DDD222!!!""" &&&,,,1111543=<1@=6AC9DH>EMCGRGIVJIWYUc_Yehaisjo}qsƒxvˆzwŠ}wˆ}{‰~|Œ~}Ž€‘ƒƒ„††‡Š„ˆZZ\BFI©©êúúÅÛ٨¿³ÑѳÕß´Øæ²ÒßÉéôÐìøl‡% !07"-1#*0$),'(,()++)*+,.7ABDSVXiqh{‰”§…µ‹£¿l…£0N0*B$9L=P^Ufn‡–™‹–˜SW`ADM58A$'0/2;CFOQT]A?LMKYWTg^[pa]tok‚wt‰|vta`hIHP88@<;I:MCDVPQc`avklƒƒ›™}}—zz”yy•||˜‚ ‡†¥¯—–µšš¶§§¿Š‹ŸMO^* #,/2;8;B36?:C@?D>BE.36HRS•Ÿ ®ººmyydpp]egW\_NRUEDI@>CE@ZFGeQPw__‡ok˜|x¡„|¿¡™Ç§œÑ­¡Ô° Õ®ŸÑª™Ð§•Ñ¦•Ð¢•ÊœÉšÁ–Î© Ö¸°Šnj +YJGüôòþúûëìðùÿÿéôø9DJeJCÿØÉÿÞÐѨ–Ð¥”Ѧ“Ï¥Ä›…Ê¡Ô¯œ„eS P>4pbY‰wm”ti§t´Žá»®œviAštgÿÙÌÈ¢•F P*Á›ŽÚ´§Á›ŽÀšÀšÃœÃœÄŽÄŽÅžÅžÅžÆŸ¾—ˆÁš‹¼•†½–‡Åžšsdc<-fD8X@6L;3I81C6.@2/E;9JEBGFD78:~ƒ†µ¿Á®¼¿¯¼ÄáòùÌÝåM^e&/8ELTKRZLS[PW_LS[KRZKRZJQYKRZMT\OV^PW_OV^NU]MT\HLUHLUFMUFMUENUENUDOUDOUANT /4¦¸¼íÿÿìÿÿêýÿŸ¢  + + +!!!!!! 333EEE333!!!""" &&&,,,1111543=<1@=6AC9DH>EMCGRGIVJIWRN\YS_aZblchwkm~sq„vs‡zt†{y‡|zŠ|{Œ~}Ž‚„Ž„…‰YY[BFIžªªéùùÌâà³ÍʶÔÔ³Õß³×å°ÐÝÇçòÍéõk†% +.5!,0")/#(+&'+'(**())*,9CDETWWhpcv„wŒŸy‘©z’®Vo0N1*B"7J?R`^owž¡Œ—™UYbADM69B%(1.1:CFOSV_=@I(+4$'0"+(('%#%$**)/31DP‘˜¢­´¾`gq"'(,((('''''')))+++---///111...---------+++&&&"""***,,,...000111000///...222222222222222222222222555666///"""&&&555555***(((++++++,,,%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&($%($%($%($%($%($%($%($%&"#&"#&"#&"#&"#&"#&"#$"##!"######$$$%%%&&&&&&'''((())))))***+++,,,,,,---/.30/4.-2=C@?D<@C*/2CMN– ¡·ÃÃnzzeqq^fhX]`NRUEDI@>CF=BJ;>Q>@ZFGgSRzbbŒtpž‚~§Š‚ŧŸÍ­¢Ö²¦Ùµ¥Ø±¢Ô­œÓª˜Ó¨—Т•ÈšÉšÁ–É¤›Ú¼´™}y PA>þöôüøùæçë÷ÿÿëöúYdj + + +J/(÷ÐÁÿçÙÕ¬šÏ¤“Ѧ“Ì¢ŒÂ™ƒÃš†Ë¦“€aO" O=3pbY‡uk•uj©ƒv·‘„æÀ³ zmC™sfûÕÈ´Ž> Z4'È¢•×±¤½—Š½—Š¿™Œ¾—ˆ¾—ˆ½–‡½–‡½–‡¼•†¼•†¼•†²‹|³Œ}¯ˆy­†w²‹|‘j[c<-cA5V>4K:2I81C6.A30F<:IDAA@>-.0Š’ÕßáÍÛÞÂÏ×òÿÿÞï÷Sdk(1:CJRNU]MT\OV^NU]LS[KRZLS[MT\OV^PW_PW_OV^NU]MT\GKTGKTELTELTDMTDMTCNTCNTANT,1 ²¶ëþÿìÿÿëþÿ˜§ª + + + +!!!!!! !!!444GGG444!!!""" &&&,,,1111543=<1@=6AC9DH>EMCGRGIVJIWQM[WQ]_X`jafvjl~sq‡yvŠ}w‹€~Œ€‚’„„“……“‡‰’ˆ‰–”[[]DHKžªªéùùÔêè½×Ô·ÕÕ²ÔÞ±Õã­ÍÚÃãîÊæòi„& .5!,0!(."'*%&*&')*())*,9CDGVYWhp]p~k€“m…m…¡Jc2P4,D!6IATbct|’¡¤‹–˜X\eADM69B&)2-09CFOVYb>AJ+.7&)2!$-!* )(&$$#))(.1/:=;HIGUURe_\qd`wok‚wt‰|vta`hIHP88@DCQBDSACRACRGHZSTfbcxmnƒŠŠ¢€€˜yy“||–ƒƒŸ†…¤Š‰¨˜—·ª©È¯¯Ë®®Æ…†šKM\+!$-),536='*3,.:NP]…‡–¦§»¤‚”„…—ƒ„–ƒ„–Ž žŸ±±²Ä¾¿Ñ«¬¾vw‰*+=0MN`~‘•–¨¤t{˜`iŠ— ÁÆÏð¡ªËˆ‘²‡±mv—5>_ox™Úãÿäíÿ–ŸÀ¢«ÌÅÎ©"'D:>Y—›¶Ûßú»¿ÚZ^yei„º¾Ù¤¨ÃW[vOSn°´Ïîòÿó÷ÿÚÞùº¾×¢§½ch|–›¯ÕÚ¼z“lq…9>RKPd\aujoƒfk]bv¢§»ò÷ÿÛàóV[nEK[{‘›¡±‘—§¡§·ƒ‰™9?O!1qw‡›¡±˜ž®’˜¨kqIO_W]mNSgGL`9>R',@:?SV[oGL`05Iª¯ÃùþÿêïÿQVj).B+ %9PUiqvŒ„‰Ÿž£¹²·ÍÍÒæÜáõ¿Äטž®|‚’CIW'-9JP\•œ¦£ª´]dn#)/04...+++***+++...222444000,,,'''%%%%%%%%%$$$!!!---...000222333333222111444444444444444444444444666777111%%%&&&444444)))(((******+++########################&&&&&&&&&&&&&&&&&&&&&&&&'#$'#$'#$'#$'#$'#$'#$'#$&"#&"#&"#&"#&"#&"#&"#$"##!"######$$$%%%&&&&&&'''((())))))***+++,,,,,,---/.30/4.-2=C?>C=AD).1AKL– ¡ºÆÆo{{frr_giY^aOSVFEJA?DF=BL=@S@B]IJkWVgg‘yu¤ˆ„®‘‰Æ¨ Î®£×³§Ú¶¦Ù²£Õ®Ô«™Ô©˜Ñ£–ÈšÈ™Á–Å —Ú¼´¦Š†)I:7þöôüøùåæêôüÿíøü€‹‘ 5èÁ²ÿèÚÚ±ŸÎ£’Ϥ‘Èžˆ¿–€»’~Š}^L$ +O=3oaX…si•uj¨‚u·‘„çÁ´£}pE•obóÍÀ zm;gA4Ë¥˜Í§š·‘„¸’…º”‡´Ž´Ž³€²Œ°Š}¯‰|®ˆ{®ˆ{¤~q¤~q¡{n›uhœvi…_RbEMCGRGIVJIWTP^ZT`aZbmdiymoƒxv|‘„~”‰‡”‰‡˜Š‰™‹Š›œŽŽ›‘›‘’Ÿ™cceFJMœ¨¨ëûûÛñïÃÝÚ¶ÔÔ¯ÑÛ­ÑߨÈÕ¾ÞéÇãïi„( /6"-1")/#(+&'+'(*+)**+-8BCHWZYjr\o}i~‘l„œn†¢Kd‚5S7.F#8KATbbs{‘ £Š•—Z^gADM7:C'*3+.7CFOX[d?BK-09),5#&/"+!* )'$$#)('-0.9;9FHFTURe_\qeaxok‚wt‰|vta`hIHP88@HGUFHWFHWHJYOPb\]olm‚wx¨™yy“~~˜„„ „„ …„£‰ˆ§™˜¸³²ÑººÖ´´Ì†‡›KM\+ #,(+414;,/8(*6>@Mqs‚•–ªŽ£‹ŒžŠ‹ƒ„–‚ƒ•‘£¡¢´°±Ã½¾Ðž°jk} 2 + >?QŽ ¯°Â’”©ip\e†˜¹¶¿à™¢Ã‹”µŽ—¸t}ž1:[r{œÙâÿØáÿ™¢Ã¢«Ì¼Åæ}ƒ£*/L@D_‘¬ÝáüÄÈãIMhTXsÅÉä©­ÈVZuX\wÉÍèó÷ÿðôÿÓ×òÂÆߝ¢¸[`t‘–ªÖÛ溺À}‚–hm',@49MV[ons‡`eyNSg¢¶ôùÿÑÖéW\oRXhx~Ž–¦”šª©¯¿‰Ÿ9?O/pv†–œ¬™Ÿ¯œ¢²io=CSW]mY^rRWk16J+7>T23Æ­°íäåÁÁÁ°°°®®®§§§¨¨¨ÐÐÐÅÅÅXXX)))'''$$$$$$!!! !!!>>>mmm:::333XXX666&&&"""+++111;6CPADXEGbNOp\[„ll–~z©‰³–ŽÈª¢Ð°¥Ùµ©Ú¶¦Ù²£Ô­œÒ©—Ò§–تÏ¡”̝“Åš‘Ç¢™Ý¿·´˜”=*&E63þöôþúûçèìðøûðûÿ¦±·*Ô­žÿâÔÞµ£Î£’Ë Ã™ƒ¼“}´‹wº•‚yZH& +! O=3oaXƒqg•uj¥r²Œ忲¥rF j]赐j];tNAË¥˜Àš¯‰|²Œ±‹~ª„w©ƒv¨‚u¦€s¤~q¢|o zmŸyl˜re–pc”na‹eX‰cV|VIb653&')“˜›ïùûíûþÕâêòÿÿàñùm~…*3<=DLQX`NU]LS[QX`KRZKRZOV^PW_QX`RYaQX`PW_MT\LS[DHQDHQBIQBIQAJQAJQ@KQ@KQBOU %*’¤¨èûÿìÿÿíÿÿ¨·º  ###!!!###  ###$$$888JJJ777!!!""" &&&,,,1111543=<1@=6AC9DH>EMCGRGIVJIWUQ_ZT`b[cmdi{oq†{y‘ƒ€–‰ƒ›Ž›Žž ’‘¢””£••¢–˜¢˜™ª¤¨pprKORš¦¦îþþàöôÃÝÚ´ÒÒ«ÍשÍÛ£ÃкÚåÄàìi„ + +"18$/3$+1%*-()-)*,-+,,-/:DEJY\Zksbuƒx €˜°—³UnŒ4R6.F%:MATb_pxž¡Œ—™]aj@CL8;D'*3*-6DGP[^g@CL03<+.7%(1!$- #,!*'%#"('&,.,797DGESTQd`]rfbyok‚wt‰|vta`hIHP88@LKYJL[KM\OQ`WXjfgywx„…š••­„„œyy“™††¢……¡„ƒ¢‡†¥™˜¸¹¸×ÂÂÞ¹¹Ñ‡ˆœKM\+ ),/825<58A')513@`bq‚–ˆ‰’“¥†‡™xy‹}~¢œ¯­®ÀÂÃ՞Ÿ±cdv*67Iš›­ÇÈڛ²jqŽclŒ•¶©²Ó”¾Ž—¸™ºw€¡1:[pyšÒÛüÏØù¤­Î£¬Í¬µÖyŸ.3PIMh‘•°Þâýº¾Ù7;VNRmÇË樬Ç\`{jn‰ßãþõùÿòöÿÑÕðÂÆߊ¥TYm‘–ªÖÛ﫰ąŠžlq…*/C$)=OThsxŒbg{CH\’—«ìñÿÃÈÛ^cvciyyŽ”¤˜ž®ª°À–¦AGW"2msƒˆŽž’˜¨£©¹ek{17GY_ov{mr†?DX.GL`”™­ž£·’¦ÎÓçùþÿùþÿÓØ슏£!&:-]bvuz‹¦› ¶·¼ÒËÐäÔÙíËÐ㞤´_eu:@NBHT_eq„‹•pwHOY05;./3,,,)))%%%$$$$$$&&&(((%%%###!!!###&&&((((((&&&...///222444444444333222111111111111111111111111777999444))) $$$333222(((&&&)))(((***########################&&&&&&&&&&&&&&&&&&&&&&&&&"#&"#&"#&"#&"#&"#&"#&"#$ !$ !$ !$ !$ !$ !$ !" !#!"######$$$%%%&&&&&&'''((())))))***+++,,,,,,---/.30/4.-2=E@=10.%&(•˜ìöøóÿÿÞëóðÿÿãôü‹œ£.7@>EMU\dQX`MT\T[cNU]NU]QX`QX`RYaSZbRYaPW_MT\LS[BFOBFO@GO@GO?HO?HO>IO>IOBOU  #(Ÿ£çúþìÿÿîÿÿ­¼¿  ###!!!$$$ !!!!!!$$$&&&999KKK999!!!""" &&&,,,1111543=<1@=6AC9DH>EMCGRGIVJIWRN\WQ]_X`jafxln„yw‘ƒ€—Š„œ‘œ‘ ’‘¡“’£••¤––£—™£™š´®²||~NRU—££ñÿÿäúøÀÚ×°ÎΦÈÒ¤È֟¿Ì¶ÖáÂÞêj…Ž #.!$3:&15&-3',/*+/+,./-../1@JKKZ][ltn•ª½£»Ó˜°Ì_x–0N0,D&;NATb[ltŽ ’Ÿ^bk@CL8;D(+4),5DGP\_hADM25>-09'*3#&/!$-"+(%#!,%%/-+876DFCTSRd`]rfdyok‚vt‰|€vt‚``lIGR88DKM\KN_OPdRUh]^rlnƒ€•‹¤™™±„†Ÿyy“šˆˆ¤…†¢ƒ‚¡†…¤™˜·¼¼ØÇÇώՈ‰KL^,)02>58A=@I(*6)+8UWfst†‚ƒ•“”¨|’lmwz¤—š­«¬ÀÊÍ०º_bu(45IŸ¢µÔÕ顦¼ry•lu”‹”³ ©È™¸Ž—¶™¸zƒ¢5>]js’ËÔóÒÛú³¼Û¡ªÉ˜¡Àu|™.3PNRmšž»àäÿ¬°Í+/JPTqÆÊ夨Åae€x|™ìðÿôøÿôøÿÒÖó¾ÂÝx}“QVj“˜¬×Üð¯´È‹¤sxŒ49M"6JOcw|hm?DXˆ¡ãèü¹¾Ñej}pv†‚“‘—§ ±¨®¾–™ªIO_#&7jp€}€‘‰Ÿ¥¨¹_eu'*;UZm‡x€•DJb1MSk£«Àµ»Ó¨°ÅÍÓëëóÿïõÿìôÿ˜ž¶4 )dj‚uy’‘ª˜œµ·¼ÒÈÍãÌÑåÌÑå ¥¸RXh5;IJP^ekw|‚Ž]dn>DP26?()-&&&### !!!"""'''+++---+++(((...///111333444444333222////////////////////////777999557***!!#$$&222224'''&&((((((*)))$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&#!"#!"%!"#!"%!"#!"%!"#!"$ !" !$ !" !$ !" !$ !" !"""######$$$%%%&&&&&&'''((())))))***+++,,,,,,--//.30/5.-3=?UA@_JIlWTgc’yt¤‰‚­ˆÉ«£Ï®¥Ó±§Ô°¤Î¨›ÆŸÀ™Š¿•‡µ‰~®‚w¢wnumž|s²“Ž•|x1B43üôòÿþÿîïóêòõöÿÿØãé" ±…öÒÆß»¯É¥—ÀœŒ¹”„²Ž~¦…t¬Œ}rVJ&! N;4n_X€mftišzo¤„yÛ»°¡vB"ƒcXѱ¦|\Q;aV¢—§…|Ÿ~u¦„{ž|r˜vl—ui—ri’pd‘lcŒj^Œg^‰g[ˆcZƒaU„_VvTHrMDmK?`;2X:0Q83L93K95D50D63J@>F>IO>HQ>IOCPX!!(Šœ çøÿíÿÿïÿÿ±¿Â  #$&!"$#$& "! "!!#"$&%%'&8:9KML8:9!!!!#" &&&,,,1111543=<1@=6AC:CH>EMCGRGIVJIWMKXQNYYT[d^brij€vt‹‚}’‡š›Žž ’‘¡“’£•”¢––¢˜—¹³µ„„„QUX•¡¡óÿÿåúû½×Ø®ËϤÆÒ£ÄӜ¼Ë´ÔáÁÝéj…&1 %28'05'/2).1+/0./1,22BPQI\`ZnuvŒ—«ÂÒ¿Øî©ÃÜe˜-H**@&=M@VaWkr‹ž¢–¤§^ek@CJ8;B(+2(+2DGN]`gBEL36=.18(+2#&-!$+")&##"2"$3'&6,.=:9KFGYUTf[\nki~ij|ts…€’~}cetHGW56HFH]CH^LNgX\uce~bfrt‰¦—™²‚†¡xy•ƒ‡¢•–²‹ª‚ž‚ƒŸ¢¢¼¸¸ÒÈÈ༼ԍŽ£MNb&'9"$3>@O>@M=?L%'3%'4GIVcer|~•—¬osŒVXqvz“‡‰¢‹¨ž ¹ÒÖﯱÊPTm +#!#8=Qmr†otˆQVj‰Ž¢ÇÌ௴Çruˆ|Ž¡‘”¥Š‹ž¡²š›­RUf9:Lps„uvˆ„•½¾Ðqt…(#(<;@224&%* "!(',22465://1$#( ""!&""$!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""   " !!!!" !!!!" !!!!" !!!!&&&&&&&&&&&&&&&&&&&&&&&&))))))+++---///00022233596=?EABN?:XD=eNHu\U…le•zs …|§Š‚®ˆ¶•Ž±†«†~¬‡¬†}¦€w¦€w£zt²‰ƒ«„Ÿ|v¯‹¸œ™{x ?33ìææÿþÿîòõÒ×ÛòüþêõùCGJ\D@ÞÆÂíÕѸ œ²›•¦ˆ•~xvp…micNI9&".H64jXV{ieˆunŒxo•x³Ÿ–ŒxoH4+cLF“|v\D@\D@nVRƒkg‡ml…mk‡ml…if‚d\‚bW€^U|\Q{YPyYNzXOzZO]TxXMwULyYNvTKiI>b@7]?7T;7Q<;N98F23E55K??D:;,('!"uvxôùüõýÿõÿÿðþÿìûþ¾ÍÒ1>F2:CIEDJF#"!#")-,(*)! $$$***...-105?>5A?8BD:CH>EM@GQDHTFHUJLXNNXRQWZX[gcbtql|uˆ„{›‘ž“‘¡“¢”‘¢”‘¡“ž“›’§¢Ÿ‡‡…NRSŠ•—ñÿÿßóú²ËÒ³ÏÛ¥ÄÖ¡Â՘·Ë¡ÀÒ¯ÊÛl†•2>2=:LV;LT5BH/:>0:<.68+35.::9NO4NO^z~ˆ£ª¼ÖãÓîÿÃÞña|3' $5"@YDHcUYthl‡ei„VZuei„‰¨šž¹ŠŽ©}œ†Š¥“—²‘¬‚†¡ƒ‡ ·¶¶ÎÈÈ྾֏¥NOd'(<$%756H79H:>;F?DCAWF?cMBs[Q†ndžƒz±–Á¤œÉ¬¤äƾèÊÂå¼۸²Û¶°Ø³­Ñ¬¦Ïª¤¹’Â—¾˜•³’½ŸÅ¬¨£Ž3##5+*ÜÖÖûûýðôõÓØÜñûýòûÿ\`c4""¯ßÍͶ¤¤¢”‚‚’€€†tt}kk_MM9''/I77iWWvgdƒtm…wn‹|u¥–„unH92^LH…soXFDXFDiUV{gh}ij}ij~jl~ff~a[^U|[RzYPxWNxWNyXOzYP|[R{ZQ|[R^U|[RtSJlKBfGBU;:S:=N8:G34F35K==D:;0** !stvôøûõýÿöÿÿðþÿíûüÂÑÔ3@H.;DS`iS`iUbkXenS`iN[dN[dMZcLYbKXaIV_GT]FS\FS\?LU?LU?LU?LU?LU?LU?LU?LUDQZ )%.~‹”ê÷ÿðýÿóÿÿÂÌÖ'!(0$,# &!%(#%%$!   )$2;6@IDDMH"&%!%$*.-&*)! $$$***...-106?>5A?8BD:CH>EM@GQDHTEIUHJVILUONTVVXa`^oni{{s„x—‹šŒžž‘‹Šš‰—Ž‡¡œ˜„…€LPQ†‘“íüÿÞòû¯ÇÓ¬ÈÖ¤Ã× À՗¶Ê ¿Ñ®ÉÜk‡•1?3>9MX:MT4CJ,;>/:>,79*45,:;9QQ3QQbƒŽ«±ÀÜçÖòþÅàñ`{Œ-# +&4#?J9V\Wuw­¯µµYceDHK8KPc]csio}HN\>;F>;FGDOKIT)``jô÷ÿó÷ÿñõþìóûéðøåîõåîõäïõäïóèòôçðïìðñýûüøï𥕖Šqt¼ ŸÆ¤£Ë¥¤Ì¤¢Ë¢œÈŸ™Æž–Æž”ÇŸ—¹‘²ŠŠ¦~~™qqgfƒ`^~\Z{\YtURmQMmQMlSNlUOR>7L81{lg‰‡ˆvz}|€ƒy}€y}€‚†‰ptw_cfPTW@DG&*-$(+%),"% $'"# 111DDD---### ***222...$$$ !!!&&&---24378<8BEAEHBFIMQTgkn€„‡hlodhk\`cX\_QUX@DG9=@FECiXQt^S‚j`”|r¨„ºŸ–È«£Ï²ªÚ¼´ßÁ¹Ýº´Õ²¬Ø³­Ö±«Ñ¬¦Ð«¥ÆŸšÇ¢œÇ¡ž¾˜À¢ Ç®ª¯›šD44/%$ÉÃÃ÷÷ùó÷øÓØÜéóõõþÿ}„ +‰yyͽ½¬œœ”„„†vv„tt|lltddYII8((0 H88cSSo`]yjezme{nf€xwhcK<7XFBp^ZXFDYGEfRQs_^v`bv`bwacw_]x[SzZOyYNwWLwWLxXMzZO{[P}]RaV„dY†f[„dY~^SpPEbD=R95A?8BD:CH>EM@GQDHTEIUFHTFIRLKQRRT^][kjexxp‚v•‹‰—ŒŠšŒ‰œŽ‹œ‰š‡—Œ†•Œ…™”‚}IMN}ˆŠåôûÚî÷¬ÄÐ¥ÁÏ£ÂÖ À՗¶Êž½Ï­ÈÛk‡•2@3>9MX:MT4CJ,;>/:>,79*45,:;:RR4PQi…‰™´»ÈãîÞøÿÌæ÷`z‹," '6'BM>Y`Zvy‘­°ž³´YceDHK8B]|€›Ÿ£¾ž¢½“—²‹ª‘¬‹ª…‰¤†Š£””®®®ÆÂÂÚ¸¸ÐŒ¢QRg23G56H01C/1@13@-/<*,8=?Klnz›ž­£¥¼sw’RVqcg‚~‚•™´³·Ò×Ûöµ¹ÔSWr +)-2TXsÍÑìíóÿ¶½×Xb{Q[t†©—¡º«µÎ¨²Ëhr‹:D]}‡ ™²r|•§ÀÅÏ茖¯Y`z5:XADc¢¥ÄÆÉ蚝¼‚¡hkŠ\_~œŸ¾ÛÞýøûÿëîÿÊÍìÕØ÷óöÿ¹½Ú_dzhmŸ¤¸±¶Êƒˆœin‚{€”€…™|•]bvbg{z“y~’~ƒ——œ°¥ª½Ž£„…—{|Ž{|ŽŽ¡¼½Ïª«½FGY12Dfgymn€uvˆ¬­¿‹ŒžBCU0Zf~àðÿïÿÿñÿÿÛëÿ[k…+;USc}FVpP`záñÿéùÿcs #0@Zfq}‚Ÿ‰ª‰¨Ÿ£¾ÇËäáåþßäú†‹¡#(<#(;INa]csio}HN\>DR04?+,0'''"""!!!###&&&(((((('''(((+++...111444666888+++(((&&&'''((()))'''$$$%%%%%%%%%%%%%%%%%%%%%%%%549<;@<;@327(',#"' $"(',21665:/.3$#( $"!&""$ " ########################''''''''''''''''''''''''++++++++++++++++++++++++333333333333333333333333777777888999:::;;;<<<<<>74==:E=:EFCNJHS(``jóöÿó÷ÿñõþìóûéðøæïöåîõäïõåðôèòôèðòèìíùùûóêí¢””{eg¦‰‹£‚§€«ƒ®…°‡²Š‚µ…µ†®†„© xx•on‹hf†ca‚`^€a^uXTpSOmQMiPKmTOQ:4E.(zkfŸžƒ‡Š‰ˆŒ“—š¥©¬}„IMPDHK>BE(,/$(+%),"% $'#$ !!!000BBB+++""" ***222...$$$ !!!&&&---24378<8BEBFIDHKMQTbfiw{~eilbfi[_bX\_RVYAEH;?BHGEp_XzdY‡oe–~t©Ž…¸”Ũ Ë®¦Ñ³«×¹±×´®Ñ®¨Ö±«Ö±«Ò­§Ò­§ÆŸšÁœ–Äž›¿ž™ºœšÁ¨¤´ ŸSCC1'&¸²²÷÷ùöúûÐÕÙÜæèñúÿ™ž¡ †vv¿±°›‹‹Š|{€pprdcrbbi[ZRBB7)(4$$G98]MMdVUob\pc[na[xkel]XPA=598+/. %%%***...-106?>5A?8BD:CH>EM@GQDHTEIUFHTFIRKJPPPR\[Yjidxxpƒ€w—‹™ŽŒŒžž‘‹Š™Žˆ—Ž‡–‘‚}DHIoz|×æíÖêó­ÅÑ¢¾Ì¡ÀÔ ÀՖµÉ›ºÌªÅØk‡•4B3>9MX:MT4CJ,;>/:>,79*45,:;5MM0LMnŠŽ¤¿ÆÑì÷æÿÿÓíþ`z‹*")8*EPA\c\x{¬¯›°±YceDHK86:=<@C+/2$(+$(+"% $'#$!!!"""///AAA***""" ***222...$$$ !!!&&&---24378<7;>=ADCGJFJMMQT]admqtcgj`dgZ^aW[^RVYCGJ<@CJIGjYRu_T„lb—u­’‰¿¤›Î±©Ö¹±Ö¸°Ü¾¶Ú·±Ó°ª×²¬Ö±«Ñ¬¦Ð«¥É¢Áœ–Æ Ä£ž½ŸÂ©¥À¬«n^^3)(¨¢¢÷÷ùöúûËÐÔÎØÚìõú²·ºŠ||¶ªª‹}}~rrykkk__dVVZNNI;;4((5''C77TFFVKIbWScXRaVReZVaSPRDASDAVDBYGC`MIgROlWTs[Ys[YqYYpWSuWMxVJyWK{YM~\PƒaU‡eY‰g[Žl`‘oc•sgž|p©‡{¤‚vˆfZfH>cIHP7:K57L89D13E77H>?<66bceòöùöþÿõÿÿïýþïýþÝìï?LT'4=KXaVclUbkTajS`iQ^gKXaKXaIV_HU^FS\ER[DQZCPYDQZDQZDQZDQZDQZDQZDQZDQZHU^.;D&^ktèõþóÿÿïüÿàêô*3< *1929A-4:07=*25(03,46.76/87.74-613<7BKFOXS487-10)-,*.-+/.(,+'+*)-,376154.210438<;>BA8<;-10'''%%%!!!!!!&&&***...,0/6?>5A?8BD:CH>EM@GQDHTEIUHJVGJSKJPPPR\[Ykjeyyq„x“‘Ÿ”’£•’¤–“¤—‘£–Ÿ”Ž”—’Ž…†BFGalnÈ×ÞÓçð°ÈÔ¢¾Ì ¿ÓŸ¿Ô•´È˜·É¨ÃÖlˆ–5C4?9MX:MT4CJ,;>/:>,79*45,:;/DE*DEr‹°ÉÐÚòþíÿÿÚñÿ`w‰("*:/GSE^e]vzŽ§«–ª«YceDHK8I+,0(((###!!!$$$''')))))),,,---///222666999;;;<<<,,,***''''''''''''$$$"""%%%%%%%%%%%%%%%%%%%%%%%%438;:?=A-14$(+$(+"%#&#$!!!!!!000AAA***""" ***222...$$$ !!!&&&---24389=7;><@CDHKHLOMQTX\_cgjaeh^beY]`W[^SWZDHK>BELKIn]VycX‡oe—uª†» —È«£Ï²ªÖ¸°Ü¾¶Ú·±Ó°ªÖ±«Õ°ªÐ«¥Ïª¤Ê£žÃž˜Æ Å¤Ÿ¿¡ŸÁ¨¤Æ²±„tt6,+š””ööøòö÷ÄÉÍÃÍÏæïôÄÉÍznn£™˜|ppndcl``j`_UIILBA>221'&4((@65I==I?>LB@NE@NE@PEALA=I;8I:7H96[HDfSOlWTqYWx`^y_^tZYsWSzZO|ZN€\P_S‰eYŒj^”pd•sg |p{o |p¦„x°Œ€§…yl`uTKlPON58G13L89E24F88I?@=77\]_ñõøöþÿôþÿïýþïýþæõøCPX$1:HU^WdmUbkS`iS`iR_hLYbLYbKXaIV_GT]FS\ER[DQZER[ER[ER[ER[ER[ER[ER[ER[IV_7DM$R_hçôýôÿÿîûÿêôþ5A?8BD:CH>EM@GQDHTEIUIKWGJSJIONNPZYWjidyyq…‚yŸ•“¢—•¥—”¦˜•¦™“¥˜’¢—‘Ÿ–˜“‰Š…BFGXce¿ÎÕÔèñµÍÙ£¿Íž½ÑŸ¿Ô”³Ç•´Æ¥ÀÓlˆ– 7E4?9MX:MT4CJ,;>/:>,79*45,:;)>?$>?t’·Ð×ÝõÿíÿÿÚñÿYp‚&"+;1IUE^eZsw‡ ¤¡¢YceDHK8Ytx“‰¨¦ªÅª®É’–±†Š¥‡‹¦…‰¤…ž““­¢¢º­­Å¦¦¾ˆ‰ž]^sGH\LM_JK]HJYDFSBDQ%'3!#/y{‡×ÚéØÚñƒž>B]8I*+/'''""" ###&&&'''(((---///111444777:::===>>>...+++)))(((((((((%%%"""%%%%%%%%%%%%%%%%%%%%%%%%438;:?=<@CDHKJNQMQTTX[\`c_cf]adX\_W[^SWZEIL@DGNMKsb[}g\‰qg—u¨„·œ“Â¥È«£Ô¶®Ù»³Ö³­Íª¤Ïª¤Ì§¡Æ¡›Å šÆŸšÂ—Àš—¾˜ºœš·žš¾ª©‹{{?54–ùùûïóô»ÀÄ·ÁÃÜåêÇÌÐ($% ]ST}tue[\bYZ\RSYPQJ@AA895+,.%&4*+=45A78>6491/=52B:7A75?42@21A2/D52\IEkXTr]Xw_[€gc‚fcz^[xYT€^Tƒ_Q‡aT‹gY’l_˜tfŸyl¢~p¬†yª†x®ˆ{³µ‚®Š|§tž|ssWVL36C-/K78F35G99KAB=77XY[ðô÷÷ÿÿôþÿïýþðþÿíüÿFS["/8FS\XenVclR_hTajR_hN[dMZcLYbKXaIV_GT]FS\FS\GT]GT]GT]GT]GT]GT]GT]GT]JW`?LU "IV_çôýõÿÿíúÿòüÿW`i*1;V]ekrzmtzu|‚rz}muxu}v~v~qzwgpkeniu~yˆ‘Œz~}swvnrqptsptsnrqlponrqhlkfjiaedaedgkjjnmcgfW[Z<<<999333---((($$$!!!!!!###'''***---,0/6?>5A?8BD:CH>EM@GQDHTEIUFHTEHQGFLKKMWVTgfavvnƒ€w“‘Ÿ”’¢”‘¤–“¤—‘¢•Ÿ”Ž”—’ŽŽ‰EIJU`b¼ËÒ×ëô¸ÐÜ£¿Í¼ÐŸ¿Ô“²Æ“²Ä£¾Ñlˆ–!8F5@9MX:MT4CJ,;>/:>,79*45,:;(<=":>>???000---***))))))(((%%%"""%%%%%%%%%%%%%%%%%%%%%%%%438;:?=047$(+$(+#&#& $% 111DDD---### ***222...$$$ !!!&&&---24389=6:=<@CEILKORMQTRVYX\__cf\`cW[^VZ]SWZEIL@DGONLjYRv`U†nd™w°•ŒÃ¨ŸÒµ­Ú½µëÍÅïÑÉèÅ¿Û¸²Ø³­Ñ¬¦È£Å šÄ˜Â—½—”¹˜“·™—°—“·£¢Œ||J@?™““þþÿîò󶻿®¸ºÑÚßÀÈË+),F@BXRRMGI[UUOIK@::A;=933.(**$$0*,933:466005//:52B=:B:7@64A64E74L=:\IEoZWx`\|c_‡khˆkg~a]}\U…aUˆbU‹eXj]—qdŸyl¦€sª„w¯‰|±‹~¹“†ÂœÃÂœÌ¦™Ö´ªw[XK25@*,K78G46I;;LBC=77VWYðô÷÷ÿÿôþÿîüýðþÿñÿÿHU]!.7ER[XenVclR_hTajS`iO\eN[dMZcLYbJW`IV_GT]GT]GT]GT]GT]GT]GT]GT]GT]GT]KXaBOX + DQZçôýõÿÿìùÿ÷ÿÿoxAHRov~‰˜Ž•›™ ¦˜ £’š~†ˆ|…„zƒ‚r{xfojdmhu~y‹”\`_UYXPTSRVUSWVPTSOSRPTSRVUOSRKONJNMOSRRVUJNM?CB;;;888222+++%%%!!! ###'''+++---,0/6?>5A?8BD:CH>EM@GQDHTEIUDFRBENDCIHHJSRPdc^ttl€}t™›Žž ’ “ž‘‹›Š™‰•Œ‹HLMVac½ÌÓÚî÷ºÒÞ¡½Ëœ»Ïž¾Ó’±Å’±Ã¢½Ðlˆ–!8F5@9MX:MT4CJ,;>/:>,79*45,:;)=>":PGHZQRdXYk_`rop‚pqƒlmkl~_`r_`rsv‰‘“¬›ŸºŒ«vz•Y]xEId[_zz~™”¯®²Í¸¼×ž¢½†Š¥„ˆ£‹ªŒ©’’¬§––®²²Ê­®Ãz{LMa./A=>PPRa]_lY[h9;G+Z\hÉÌÛáãú’–±rv‘nrvz•˜œ·¯³Î¹½Ø{šei„[_z;?Z9HLg¤¨ÃÛáû—ž¸[e~Q[t„Ž§š¤½‰“¬†©—°€Š£fp‰€Š£’œµt~—oy’‰“¬—ž¸y~œMPoNQpvy˜€ƒ¢TWvWZy±´ÓêíÿÅÈ穬˧ªÉœŸ¾š¼Ž‘°TXuaf|•š®ØÝñ®³Çns‡†‹Ÿ ¥¹› ´z“05I(-Apu‰˜±†‹Ÿ|•‰Ž¡†‡›€’yzŒvw‰ˆ‰›§¨º™š¬dew9:Lvw‰³´Æ¹ºÌ|}89K<=Oor…¡§½}…œS[r?G^?G^=E\/7N'>4qy½Å܂Š¡1 7hp‡‡Ž¨•š·•™¶šž¹¶ºÕÞâûëïÿÙÞô†‹¡0 %MReÃÉÙæìúŸ¥³&,:#'(,'''%%%$$$%%%'''***,,,...---444:::666555===DDD///...,,,***))))))***+++************************76;;:?=63>CAL"",]]gô÷ÿôøÿðôýãêòÙàèÕÞåÒÛâÈÓÙ¿ÌÒ¹È͵ÄǹÄÈÆËÏ»¹¾…‹{hnŒu{“vz“sv“qr‘mmŽki‹hdˆea†e`tURrUQrSPsVRwZV~a]†gd‹li™zw–wtŸ€}©Š‡½ž›’spjHF®–”ÿúüó÷úíñôêîñ÷ûþúþÿîòõOSV158MQT"%"&)'+.#&'+. $% " 000HHH444!!!!!!!!!###)))&&& """###'''---13267;8BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUSaPImWLzbX‡oe‘vm“xo‘tlphcE=dF>hE?jGAnICoJDqLFqLF•ni›vpžxušytš|z•|x|hg_OO* gaaÞÞàÖÚÛ¥ª®§±³±º¿§¯²GGI+'(-(,1-./*./+,-(,,(),'+,()0+/623;6:?;<>:;A=;I?>F;9G96RC@p]Y{fc~fbƒje…hd‡hcqlkb•od˜qb›teŸxi£|m§€qªƒt«„u¶€»”…¿˜‰Â›ŒÅžÉ¢“๪þÙФˆ…7!&K78H57G99NDEF@@DEGòöùõýÿòüþîüýðþÿïþÿTai#09KXaZgpTajS`iP]fP]fS`iR_hQ^gP]fN[dMZcKXaKXaHU^IV_JW`KXaLYbN[dO\eO\eKXaJW`&:GPëøÿíúÿðýÿñûÿajs!#@GO>EK7>D:BE8@C5=?/87/87+41!*%.72KTO]fa376"!(,+043+/.-10*.-)-, $##"#""&%$('=A@OSR154$$$***...-105>=4@>6@B9BGQX8GN1@C5@D2=?,67(67:NORgjdxn‚‹†™§–©¸vˆœCUi$ 1"5F3FTBV_Rgldy~t†ˆOWZHLO<@C)-0$(+CGJ_cf\`c7;>,03"&)#& #""#5&'9-.@56H=>PGHZQRdXYk`asop‚pqƒkl~ghzZ[mZ[mnq„‡‰¢’–±…‰¤nrPTo?C^Z^y|€›’–±­±Ì³·Ò›Ÿº‡‹¦ƒ‡¢†Š¥ˆŒ¥‹‹¥§šš²µµÍ°±Æ€•LMa'(:34FQSbikxdfs:U-5L#+B 7RZq‚Š¡_g~ (?4 %&*&&&%%%&&&&&&((()))***555222777:::666777===>>>000000///............///------------------------76;;:?=85@ECN!!+[[eõøÿõùÿîòûÞåíÓÚâÍÖÝÈÑØ¿ÊжÃÉ­¼Á§¶»©´º·¼Â¯¬³‡}…udl‹tzpuns‹knŠhiˆdd„b`‚`^~_ZpSOnRNoRNrUQwZV~a]†gd‹li~{¡‚±’ÀžœÚ¸¶·•“][¦Œ‹ÿüþõùüîòõíñôøüÿüÿÿðô÷Z^a7;>X\_ #'+.#& $' !!!#!!!""""""#########$$$&&&!!!<<<]]]DDD!!!%%%%%%!!!!!!  ###***(((!!! !!!"""$$$'''---02167;8BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUSiXQs]Rg]Žvl¡†}°•Œ¼Ÿ—Â¥Ë­¥Ê¬¤Ì©£Ê§¡Ê¥ŸÈ£Ç¢œÆ¡›¿˜“—Àš—¸—’µ—•°—“™…„oo(_YYÔÔÖÎÒӞ£§ ª¬ª³¸¢ª­LMQ +))+)'*++-(&)'')'%(&&(&$'&&(+),002758::<97:<:;<:;?;:E<=A76B75N?BAPTS376$$$***...-105>=4@>6@B9BGIDXcGZa>MT2AD5@D4?A/9:*577IKI^aYls_s|qƒ‘|žctˆ:L` .%6"3E.AO;MWG\aUhnbqtIQTCGJ8,03"&)#& #"#$6();/0B67I=>PFGYPQcWXjbcuop‚pqƒij|abtSTfTUghk~€‚›‹ª}œbf@D_26QSWrw{–”˜³«¯Ê¬°Ë—›¶‰¨‚†¡€„Ÿ„ˆ¡‰‰£‘‘©››³²²Ê®¯Ä‚ƒ˜OPd$%7./A\^mŽwy†@BN (*6ƒ†•ÝßöÃÇâ ¤¿šž¹Ÿ£¾˜œ·¢¦Á¹½Ø™¸ˆŒ§y}˜PTo!<9=X’–±ÅË妭lj¢{…ž˜¢»£­Æ’œµŠ”­•Ÿ¸§Àš¤½†©~ˆ¡s}–v€™—¡º¦­Çuz˜ADcDGf{~sv•TWv‘”³ñôÿ¾ÁࢥĤ§Æ­°Ï¦©ÈœŸ¾‰Œ«uy–ns‰”¨·¼Ð—œ°joƒ–›¯º¿Ó”™­rw‹:?S.3G`eyƒˆœ}‚–y~’…Š‚ƒ—€“vw‰~‘¢£µ±²ÄŽ¡`asrs…‰Šœª«½´µÇ‰Šœ@AS, 3+0D,2H.4J-3I+1G)/E(.D(.D!'=6DZ28NPVltzz€˜—›¶›Ÿ¼©­È¶ºÕÎÒëïóÿåêÿrw 4.FK^¨®¾æìú³¹Ç/5C%&*'''((()))************777333666777666;;;<<<33300011122233333333322222211111111111111111111111176;;:?=BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUSve^k`wm…{®“Š¼¡˜Çª¢Ì¯§Ë­¥Ê¬¤Ë¨¢É¦ É¤žÇ¢œÅ šÅ šÅž™Å š¿™–µ”±“‘«’Ž™…„ƒss%RLLÄÄÆÄÈɕšž”ž  ©®™£¥QUX  $()-&%*&'+"!&!"&"!& !%! %"#'(',-.254989=87<;;=;9;ƒpl‘yu’vr•xr•wo•tkœzq™uišsdsc vf¤zj¨~n¬‚r¯…u±‡w¼’‚Á—‡ÄšŠÈžŽË¡‘Ï¥•æ¼¬ÿÞÒ­‘Ž;"%&J67H57F88NDEICCABDîòõôüþóýÿîüýïýþïþÿ]jr+8AR_h`mvXenVclR_hQ^gKXaJW`IV_GT]FS\DQZCPYBOXCPYDQZER[GT]IV_KXaLYbMZcO\eN[d )=4@>6@B9BGDCAQPK__Wjg^€vt„yw‰{x‰{xˆ{uˆ{uˆ}wŠzŠ†‚ƒ~IMNALNµÄËäøÿ¥½É™µÃ’±ÅŒ¬Áƒ¢¶ ²„Ÿ²nŠ˜Jao1GRMalRelFU\3BE4?C7BD1;<)462AD,03"&)#& #"%&8+,>23E89K<=ODEWOPbWXjdewnonofgy\]oPQcSTfdgz~€™‡‹¦w{–VZu.2M"&AJNinr‘•°ª®É§«Æ’–±ŠŽ©… z~™‚†ŸŒŒ¦””¬™™±©©Á¦§¼‚ƒ˜RSg$%7();egv’”¡‡‰–GIU(jm|ØÚñÜàû´¸Ó¤¨Ã®²Í¤¨Ã¤¨Ã®²Í¨¬Ç™¸…‰¤W[v#>:>Y¡¼ÖÜö®µÏ|†Ÿs}–˜¢»´¾×£­Æ—°˜¢»¬¶Ï¿É⎘±isŒkuŽ}‡  ªÃ¨¯É~ƒ¡ILk8;Zil‹ps’adƒ¡¤Ãñôÿ¨«Ê•˜·¢¥Ä¬¯Î¨«Ê˜›º€ƒ¢ƒ y~”ˆ¡Ÿ¤¸˜±~ƒ—£¨¼ÁÆډŽ¢fkDI]>CWafz}‚–|•y~’€…˜€”}~kl~ƒ„–¾¿Ñ¹ºÌ€’_`r€’…†˜˜™«£¤¶‚ƒ•EFX !3!4$8#)?&,B#)?$:"8!'='-C&,B/5K39O28N=CYY_ux~”Š¨”˜³œ ½³·Ò»¿ÚÉÍæó÷ÿéîÿbg}0!4LQdž¤´ßåó²¸Æ4:H)*.,,,///111222111///...666777777999BBBMMMFFF33300011122233344433333322244444444444444444444444476;;:?=BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUS~mfŠti˜€v¥ƒ±–¸”À£›Ã¦žÇ©¡Æ¨ Ç¤žÅ¢œÅ šÃž˜Â—Áœ–»”¹”Ž´Ž‹«Š…¨Šˆ£Š†“~ƒss&F@@µµ·½Á•™‹•—— ¥“œ¡TY]  !%%),$%)"&) !%!$ $!$ !% $'()--1467;:;?=>B@AE@?DB@CFBCC:;D88PA>‹xt›„~šx›}už}t›yo {ržxmŸug¡wg£yi§}m«q¯…u²ˆx´Šz¿•…ÄšŠÇË¡‘Τ”Ò¨˜é¿¯ÿàÕ·™—>%(%I56G46F88NDEKEE>?Aëïòóûýôþÿîüýïýþðÿÿ^ks-:CS`i`mvXenUbkP]fO\eGT]GT]ER[DQZBOXANW@MV?LUBOXBOXDQZFS\HU^JW`LYbMZcS`iQ^g#,>KTîûÿîûÿðýÿïùÿPYb -4<)06")/$,/"*-"*,'&('!*'!*%,50IRMeni487"!"!!   !%$%)(@DCSWV6:9$$$***...-105>=4@>6@B9BGCB@ONI]]Uhe\usƒxvˆzw‰{xˆ{u‰|vŠyŒƒ|“ŽŠ‰Š…OSTCNP³ÂÉâöÿ¢ºÆ•±¿‘°Äˆ¨½€Ÿ³~¯š­m‰—Pgu9OZRfqYlsKZa2AD2=A8CE3=>)46+:=/AE4EM5FP6FU6FV/>S'6K&;%8':.=&7A+E0>A5=@.25)-0!%(#'*CGJbfidhk7;>,03"&)#& #"'(:./A67I:;M<=OCDVMN`WXjdewij|jk}efx\]oSTfXYkfi|}˜‚†¡osŽJNi $?9GKfkoŠŒ«®²Í©­È“®ˆŒ§}œuy”‚†Ÿ‰‰£’’ª——¯¥¥½£¤¹‚ƒ˜QRf !30hjy ¢¯—™¦TVb QTcÀÂÙåéÿÈÌ祩ĩ­Èª®É©­È¨¬Ç¯³Î£§ÂŠŽ©Y]x:6:U¥©Ääêÿ®µÏr|•hr‹– ¹½ÇরɅ¨™£¼ÃÍæÞèÿš³HRkT^w‰¢§±Ê¬³Íuz˜ADc ?ILktw–}€Ÿª­ÌÞáÿ«®Í£¦Å¯²Ñ±´Ó®±Ðš¼~ „ˆ¥„šy~’{€”’—«“˜¬¯´ÈÆË߃ˆœX]qQVjUZnin‚{€”}‚–z“{€“}~’qr„^_qŽ¡ÚÛí»¼Îop‚bcu€’…†˜š›­¥¦¸€’@AS/-$)=$)="';#73 4 %9%*>%*>/4H/4H05I@EY\au~ƒ—¢¸‘•°šž»¸¼×ÂÆáÊÎçõùÿéîÿW\r)#6X]pž¤´ÔÚ襫¹6>>===;;;::::::CCC>>>>>>WWWhhhWWW@@@///00000000000000000000033333333333333333333333376;;:?=BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUS{jc‡qf•}s¡‰®“Š» —È«£Ñ´¬Ð²ªÏ±©Î«¥Ê§¡È£ÄŸ™Áœ–¿š”¸‘Œ¶‘‹²Œ‰¬‹†§‰‡ ‡ƒ’~}„tt+! >88¬¬®½Á’—›‰“•“œ¡™žTY]  %#(,!$)!&*"'$(!&"& #("'+),10599AFDGLIJNGHLIIKMIJJABK??WHEŽ{w ‰ƒ‚{w¢€wŸzq¡|s zm¢xh¥zi¨}l¬p°…t´‰x¶‹z¸|؇ȝŒÌ¡Ï¤“Ò§–Ö«ší±ÿãÖÀ¢ B),%H45G46E77OEFNHH<=?èìïòúüõÿÿîüýîüýðÿÿ]jr+8AQ^g^ktVclS`iO\eN[dGT]GT]ER[DQZBOXANW@MV?LUBOXCPYER[HU^JW`MZcO\eP]fWdmUbk&/@MVïüÿîûÿïüÿïùÿQZc -4<)06!(.#+. (+#+-('&%(% )$(1,DMHclg598! #"!  !%$%)(@DCSWV6:9$$$***...-105>=4@>6@B9BG)8?&5<$25+36$(+!%("%"&)BFIbfieil7;>,03"&)#& #")*<12D9:L<=O<=OABTLM_VWicdvcdvdewcdv`as]^pcdvmpƒ|~—}œgk†AE`79MQlosŽŠŽ©¸¼×³·ÒŽ’­ƒ‡¢w{–nrƒœ‚‚œŒŒ¤””¬§§¿¦§¼‚—KL`*%&8y{Š¹»È±³Àmo{+;>M›´×ÛöÕÙô¥©Ä˜œ·¤¨Ã¬°Ë©­È¯³Î©­È”¯]a|7,0K ¤¿àæÿ£ªÄlvhr‹•Ÿ¸¸Âۙ£¼u˜˜¢»Ýçÿïùÿ‹•®(2K8B[wš¥¯È³ºÔƒˆ¦FIh:=@_vy˜‡Š©•˜·ª­Ì¯²Ñ´·Ö¯²Ñ¤§Æ £Â‰Œ«jmŒimŠ€…›otˆY^r‡Œ ¥ª¾»ÀÔËÐä~ƒ—INb]bvlq…rw‹y~’|•z“y~‘z{XYkVWi§¨ºéêü°±Ãfgyij|‚ƒ•‰Šœ ¡³¤¥·st†45G/!"4(+>#(<$8"6"6$8"';$)="';*/C',@',@?DXbg{…Šž ¥»‘•°™º¸¼×ÅÉäÍÑêôøÿçìÿV[q $ 3ch{£©¹ÊÐޔš¨8>L&FGKHHHIIIJJJKKKKKKKKKKKKFFFVVVCCC;;;ddd{{{bbbKKK333111...,,,++++++,,,---////////////////////////76;;:?=BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUSud]„nc”|r¡‰®“Š¸”ħŸÌ¯§É«£Ç©¡Ç¤žÃ šÁœ–¼—‘¹”Ž¸“´ˆ°‹…«…‚¤ƒ~}”{wˆts~nn3)(;55ªª¬ÅÉʛ ¤Œ–˜•ž£’› RZ]  $"'+$(!&*$( %)#'#' %)$)-,1549==BFBGKJMRLOTMNSNMRRMQOFGOCC[LIŽ{w¢‹…‚{u¥ƒy¡}q¢|q¤|p¦{k¨}l«€o¯„s³ˆw·Œ{º~»ƛŠË Ï¤“Ò§–Õª™Ú¯žðÅ´ÿæÙȪ¨F-0$H45F35D66OEFPJJ9:<äèëòúüöÿÿîüýîüýðÿÿ[hp*7@P]f^ktVclTajP]fO\eKXaJW`IV_GT]FS\DQZCPYBOXER[FS\HU^KXaN[dQ^gS`iUbk[hqXen)2BOXðýÿïüÿïüÿîøÿQZc ,3;(/5&,!),&)%-/ )(&%(%"+&&/*@IDbkf376"!"!"&%"!  ! !%$$('?CBRVU598$$$***...-105>=4@>6@B9BGLKFZZRdaX~tr‚wu‰{x‹}z€z‚|‘†€”‹„™”™š•cghKVX®½ÄØìõœ´À“¯½Š©½~ž³z™­z™«v‘¤h„’Sjx=S^L`kRelHW^6EH:EI@KM,03"&)#& #"+,>34F;P<=O@ASKL^VWibcu]^p]^pbcufgyij|pqƒvyŒ‚„~‚dhƒ<@[4 ;QUppt‹ªÇËæÂÆᐔ¯}œnrfj…z~—›‡‡ŸŽŽ¦¤¤¼¥¦»}~“GH\(BCU–˜§ÒÔáÆÈՀ‚Ž*,8 ),;{}”¹½ØÒÖñ¤¨ÃŒ«¡¥À«¯Ê¥©Ä§«Æ«¯Ê™¸jn‰#>)-H˜œ·ÔÚô”›µisŒjt™²¯¹Òš³kuŽ•Ÿ¸îøÿí÷ÿ„Ž§$=+5Nmw˜¢»³ºÔ’°BEd#&EMPo„£”—¶’±’•´ÈËê×Úù½Àߣ¦Åž¡À…ˆ§eh‡W[x…Š uzŽOTh†‹Ÿº¿ÓËÐäÎÓçpu‰=BVfk|•uzŽsxŒx}‘y~’x}vw‹9:LWXjÈÉÛèéûœ¯fgyqr„…†˜‹ŒžŸ ²›œ®cdv,-?%&89:L36I.1D'*=!$7"5!$7$':&)<&)<*-@#&9!$7>ATkn‹Ž¡˜š¯•™´˜œ¹´¸ÓÃÇâÎÒëñõÿäéÿ]bx $-inª°ÀÃÉ׆Œš9?M $/WX\WWWWWWWWWXXXYYY[[[\\\bbbuuuPPP:::pppŠŠŠkkkYYY999555///)))'''(((+++...))))))))))))))))))))))))76;;:?=6:=48;'+,--/...000222555777999:::555@@@{{{333 )))111111000///...---,,,,,,------******///555333,,,'''%%%###"""$$$(((---000IIIGGGCCC:::111+++))))+*67;8BEBFIFJMJNQPTWTX[X\_Z^aW[^UY\TX[LPSIMPVUSq`Y‚la“{q ˆ~«‡´™¾¡™Æ©¡Æ¨ Ä¦žÄ¡›À—½˜’¹”ŽµŠ´‰°‰„©„~¢|yšyt”vtŽuq‡sr‚rr<21=77¬¬®ÐÔÕ¦«¯“Ÿ™¢§–Ÿ¤T\_ "% (+$'&)$'%(#&$'&)#+.*254BAPTS376$$$***...-105>=4@>6@B9BGBE]addhk7;>,03"&)#& #".-=46E>=M>@O>=M?@RML^VWicbtZ[m\[mbcwljqr†{yŽ}~’‹¤ƒˆžhjƒ;?X08RTmlp‰’«ÒÖñÏÐ쒖±z{—hl‡ab~wx”……Ÿ†† ˆˆ¢žž¶ŸŸ·xyŽFG\-Z[m¨ª¹ÜÞíÈÊ׀‚)+7-moˆ ¤¿ÆÊ碦ÁŠŽ«¤¨Ã©­Ê¡¼ ¤Á¬°Ë¡¥Âw{–*.K-1L—›¸ÎÔ«ho‰jq‹Š‘«­´Î•œ¶mtŽ“š´ôûÿçîÿˆ¢$>.5OipŠŒ“­®µÏ¡¦ÃIMj:=\gkˆ‹Ž­–š·Š¬…‰¦×ÚùíñÿÄÇæ ¤Áš¼…¢`c‚HLi‹¨ƒˆžV[q”ªÍÒèÚßõÎÓé`e{6;Qkp†„‰Ÿtylq‡tyx}“y~’tu‰$%7[\nàáóãäö‹Œžij|wyˆ…‡–‹œ ¢±™›ª^`o)+:*,;BDSFIX>AP14C#&5--!$3&)8+.=.1@%(7"1O$(4_bg`ac^_a]^`^_a`accdfefh‚„•–˜bceBCE~™šœwxzjkm>>>888000)))&&&'''+++///&&&&&&&&&&&&&&&&&&&&&&&(76;;:@=?DGDIMDKQHMSGJQIJOLJOGCDI?>UGDŽ{w¥ŽˆŸ„{Ÿwªˆ~§ƒw§t«„uªn­€m°ƒp´‡t¸‹x¼|¿’Á”ÌŸŒÑ¤‘Ô§”Ø«˜Û®›ß²ŸöɶÿêÛÓ´¯J22&H32F44C54PFESMM679ßååñùûöÿÿîüýìüüðÿÿ_hm/6=4@@5AA9CE;DI?FN@GQCGRDHQ@CJ;>>JKFWXRb_Zqifvlj|qmtp‚ws…zvŠ{„”Œž›kopMWY£²·ËÞ哪²ªµ…¢´{—¬z—©|—ªrŒd~Oft6LWFXdIZbFU\DQWLW[MX\JTVJUWP]cN[aLYaN[dO[iFRb-8J 22=O8CU?K[CO]@MV5BJ)6<"-1#& !%<@A^_ccgh9:>,01$%)#$# A?M?>L>B[z~—…‰¢rvvz“rvy}–¡¦¼|}’89M†‡›üýÿÖ×éjk}QSb{}Šƒ€‚ƒ…‘„†’admADMOR[_binqxehoILS,/6#&-#&-&)0,/6,/6.18#&-#&-FIPory‡Š‘“•¡Ÿ ²™›°¯°Å×ÙîéêÿÐÒç³´Égj} "$':lmœŸ²•–ªˆ‹œstˆGJYFKQUZ]hmpty|v{~rwzotwnsv‚‡Š› £V[^.36ty|”—z‚’–™hik######(((((((((,,,#######################%+*021998@:9A32:,+3*)1*)1('/-,4219108)(0#"*! ("!'&&(&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((************************************************((((((((((((((((((((((((---------------------.,/3-74.:80=-'3F@LPMXWT_¤¢­ËËÕ³¶¿­°¹³·À²¶¿°·¿¶½Å¸¿É¹ÁÌÄÌÙÍÓßäæòæåíª£«~sy…‘{~’xyrpnklf‘ld”mf•pg¤„y§‰~±“ˆ¾ •Ê¬¢Õ·­Ü¿·àûëÎÈîÑËùÜØþâÞÿñîãÇÄdHEˆuqþøøöø÷ôôöòôóööø÷ùøøøúöø÷ùùû­¯®""$//1/10--/'''($%($%($%($%($%&$%&$%%%%!!! +798°´³¤¨§'+* "!&"#&"#$ !$ !# %!""$ !0,-D@A3/0&"# """######!!! ###)))...;:?;<@@?DDEIIHMMNRRQVRSWZY^YZ^[Z_YZ^YX]UVZSRWUOQkYUs\V|c^„kfŽrn”yr™|vš}urjŒndˆf]€^T{VMuPGrMDpKBrPFjI@jLBlOGgNGjWPn_Xg^W'"'(#ÏÔÐíöóË×՝­¬ °¯ž¬¬oxw)-. &*+ $%#'("&'!"!"!""#"&'*./59:@DEFKNHOUIRYJQYKPVIJNDBED;BA []\‘OQP"$# "!&('"$#9;:WYX9;: "!  #%$&*)-/.-314@>3AA5CC9EEA59<679;<>BDCHGE]XUbZWh^\pfdxnlus…{zˆ~}Š„†„‚ƒijnBJLŽ™¸Ê̎£¦€—€—¥x¡qˆšo†–nƒ”dzˆViwL^jHXeKYdM[dP]eT^gVagXciXciYbiYbi\elajs^gpKS^-5@(>FQGOZRZeW`iQZcBKR/8?#*0 '')<>=UUWdfe@@B576((*  CANA?L=;H97D;9GDBPSPa]ZkYVkTQfXTkfbyqm†tp‰yuŽ€~”—–¨‹œbds57F% 212GCDY„„œÉÉáØØò©©Ã‡‡£ttih‡poŽxw–zy˜……¡šš¶““­rrŒ==U99Q–—¬ÏÐäÓÔ裤¶_ap. + ,34Psv•£¦Å¤§Æ £Â¬¯Î³¶Õ¯²Ñ±´Ó±´Ó¯²Ñ‹Ž­DGf]`ÍÐïó÷ÿ‡‹¨AE`pt•™´£§Âšž¹nršž¹ìðÿñõÿvz•8JJAKLBLMDLN?GI9>A49<48;8EMFMUPW_U\dPW_AHP/6>&+1'''<<K97D53@75CB@NQN_[XiURgNK`PLc_[rjfok„wsŒ}“‘¢‹œbds24C"1./D:;Pxx¸¸ÐÐÐ갰ʍ©vv’ml‹sr‘ut“yx—ƒƒŸ¤¤À¦¦ÀppŠ66NSSk­®ÃÕÖêÄÅٌŸOQ`* !478Til‹ ¿«®Í¥¨Ç«®Íµ¸×³¶Õ³¶Õ°³Òª­Ì…ˆ§HKjtw–åèÿùýÿ~‚ŸFJe{ššž¹œ »šž¹€„Ÿ§«Æöúÿ÷ûÿ}œLPkƒžtx“TXs’–±²¶Ñsw’FJey}˜‹ª”˜³£§Â”¯ÆÊåèìÿåéÿ¾Âݘœ·”¯“®uy”EId€„Ÿ‚†¡•™´ÛßúÎÒíosŽ/3Nae€†Š¥x|—`dptx|—ˆŒ§¸¼Õž³67Kgh|ÒÓçÌÍ߃…”^`o{}Švx„}‹|ˆtw€UX_=@GGJONQVHLOCGJ-14#&(,/269.25/36*.1/36NRUqux…‰ŒŒ–‘ ‘¥¡¢¶©ª¾œ±›œ°¨©½jk'34H`aurs‡pq…{|}~’dgv'2:=QY\cknbjm[cfYadZbeqy|t|DLO08;`hkv~qy|‡ŒZ[]---!!!---,,,'''%%%##########################%+*220;97B:8C31<,*5*(3*(3(&1-+620;1/:)'2#!,!*"!)&&(&&&&&&&&&&&&&&&&&&&&&(((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))((((((((((((((((((((((((,,,,,,,,,,,,,,,,,,,,,-+.2,63+84,9.&3JDPNHTKHSš˜£ÐÎÙÁÁ˽ÀÉÇÊÓÌÐÙÐÔÝÖÚãÚÞé×ÝéÓÙå×Ùæññûíê󥞥ujp€ƒ”~€”zy”ws”sl—rjštk ul¡yo¹“ˆ¾šŽÇ¥™Ó±¥Ü¼±áÁ¶âĺâÆ»úÝ×éÎÇäËÆåÌÇÿìèúâÞ}ea†tpþøø÷÷÷ôôôóóóöööøøøøøø÷÷÷ùùù®®®"""///000---(&'($%)#%)#%)#%($%($%&$%%%%$$$ 043²¶µ¨®¬$*( !%$$ !)#%& ")#%.(*("$#("$& "$ %!!1+-F@B<68)%& """######!!! ###)))...;:?<;@@?DEDIIHMNMRRQVSRWZY^ZY^[Z_ZY^YX]VUZSRWUOQtb`|d`„kgŒso•yuš~zŸ‚|¡„| ‚zž€vŸ}sœzpœxlœxlœxlšxlŸ}s˜zo˜zp–{p‘zr”‚x˜‰‚•Œ…$!'("ÓØÔöÿúÙå㨸µŸ²°–¥¢u{{CED!#"#%$(*)!#"! ! ! "!$&%,.-798BDCGKLGNVFOXGNVHMSGHMDBEB9:@53ƒqm´—¦‹‚©‹±…¯‹¨‚uªƒt²ˆx³ˆwµŠy¶‹z¸|º~»¼‘€Ð¥”Ì¡Í¢‘Õª™Ù®Ü± í±ÿÚËѱ¦iNE0=&K61G6/I>:PHE"$!­¶µïûùíýýéýüðÿÿëùù¤ ŸeWVƒtq™…„›ƒ¢†… šxwŸ|zœyu˜wr”vn•wm—|q‚wž†z½£–ɯ¢Ô¼°á˾çÓÊàÏÅÙÌÄÜÓÌ©¢œkhc¦¦¤öû÷ùÿÿòûúóýþöÿÿŽ˜¢1>G)6>'4<$17 -3"03!/2"01%34"00 ..=LImywCIG#'&\`_§«ªbfe +"&%"!"&%"&%7;:SWV8<;#"!  !%$&*)+/.+414@@2BA5CC7EEJJAKLBLMCKM>FH:?B49<48;8Rop„ÂÃ׺»Í…‡–cetz|‰|~Š†ˆ”€ƒŒps|SV]>AHCFKDGL48;37:&*-  #"&)'+.-14-14-14-147;>SWZswz„ˆ‹ˆ‹’…‡–}~’ˆ‰‹Œ „…™™š®º»Ï€•)78L_`tmn‚kl€rs‡kl€RUdDHQNVY\dgbjm`hk\dg]eh`hk_gjiqt[cfV^ajrunvyltw†‰deg<<<$$$------###$$$!!!#######################%+*220;97B:8C31<,*5*(3*(3(&1-+620;1/:)'2#!,!*"!)&&(&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+++++++++++++++++++++,*-1+51)62*7/'4LFRJDPDAL˜–¡äâíØØâÒÕÞ×ÚãÚÞçÛßèÜàéÜàëãéõÚàìÛÝêõõÿîëô–h]c€qt‹uwŒrqploh”og™sj¡vm¢zpÉ£˜Ó¯£âÀ´öÔÈÿåÛÿòçÿöíÿ÷íÿ÷ñÿðêÿôðÿðëÿøôøàÜ~fb~zþøø÷÷÷ôôôóóóöööøøøøøø÷÷÷ùùù®®®"""///000---(&'($%)#%)#%)#%($%($%&$%%%%&&&-10±µ´¬²°$*(#'&" !.(*%!#("$& "("$("$%!%!%!"0*,HBDC=?,() """######!!! ###)))...;:?<;@@?DEDIIHMNMRRQVSRWZY^ZY^[Z_ZY^YX]VUZSRWUOQygeieˆokws™}yž‚~¢…£†~ž€xuŸ}sž|r¡}q£s¥u¦‚v¥ƒy£ƒx¡ƒyŸ„y†~ Ž„¦—¨—,'!)*$Ò×Óùÿýáíë°¿¼¢²±“¢Ÿ|‚‚TVU$&%#%$)+* "!! ! ! "!$&%,.-798BDCGKLGNTFMUGLRGJOHGLE@DA89?10‚ok¶Ÿ™®“Š³•Š»—‹´Žªƒtª€p´‰x´‰x´‰x´‰x´‰x´‰x³ˆw³ˆw·Œ{®ƒr±†uº~¼‘€¾“‚¿”ƒ¶€°…jOF>#B+#K61G6/G<8QIF#" "ž§¦ïûùíýýäø÷íÿÿíûûÉÅĈzy£”‘¹¥¤¼¤¢Â¦¥½žœ¶”“®‹‰ª‡ƒ¥„ ‚z¡ƒy¤‰~«…­•‰¼¢•Ê°£Ö¾²ãÍÀêÖÍäÓÉÞÑÉäÛÔ ™“`]X¬¬ª÷üøòøøñúùóýþ÷ÿÿ™£­ +/$17,2!/2 .1!/0$23!//--=LIlxvAGE"&% X\[±µ´lpo#'&"!!%$#'&7;:RVU9=< $#"! !%$&*)+/.+414@@2BA5CC7EEJJAKLBLMBJL>FH:?B5:=48;7;>=>BAACNJGRMI[SPc[Xmcbukj{qr~uv„{€}x|dei9>Au€‚£³³„˜—}’•u‹˜t‰šq†—l’k~fyˆ^p~TfrO]jN\gO\eN[dOYbNXaNXaMW`LS[LS[NU]PW_KRZ:AI")107?5/,‡tn½¤³–Ž³“ˆ±‹€žvjŒbT‡\LqF5rG6sH7tI8uJ9vK:wL;wL;eT‰^M˜m\«€o´‰xÀ•„µŠyfW†f[iNEQ6/K4,M83F5.F;7UMJ*)% Ž—–ïûùíýýÝñðêþÿîüüÿ¾srœŠ°œ›²š˜·›š±’©‡†ª‡…§„€¡€{wž€v¡†{¨‚ª’†´š¾¤—ëŸÈ²¥È´«¿®¤»®¦Ãº³ztB?:¡¡Ÿùþúõûûôýüðúûóþÿ¤®¸.;D*7?(5=#06,2-0,/-."01--**:IFjvt?HE$*(W][»Á¿w}{#)'" %##)'7=;PVT9?=!%$#"  !%$&*)+/.+414@@2BA5CC7EEJJAKLBLMBJL>FH:?B5:=48;6:=;<@>>@KGDPKGXPMaYVka`tji{qr}tuƒz~y}himLW>KT=JS>HQF.5=&.#%,4)08-4-4<%,4#+#%%%999TTThhh@@@666(((>B]nr¡¼¦ªÅ¯³Î…‰¤HLgei„{šlp‹Y]x]a|tx“„ˆ£”¯¡¥¾‚—abv€”£¤¸–—©…‡–}Žvx…‹™„uxehoTW^UX]WZ_Z^aUY\>BE'+."&)#'*'+.,03.25,0348;FJMZ^anruw{~sv}Z\iDFUIJ\cet~‘©«ºÜÝï·¹ÈGHZ.0?=>Pfhwz{€“x|ˆqvzltvltvrz|yƒyƒs{}ksu]eg\df]egaikbjlaikgoqrxxrtsCCC---+++%%%&&&((($$$#######################%+*220;97B:8C31<,*5*(3*(3(&1-+620;1/:)'2#!,!*"!)&&(&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(((((((((((((((((((((((()))))))))))))))))))))*(+-'10(53+82*7LFRA;G>;F¤¢­øöÿõõÿìïøìïøðôýíñúäèñâæñàæòàæòÝßìççñÝÚ㔍”YNT`QT{eg~dcƒfb‹jc–qi zq¬x¯‡}²Œ¹•‰Æ¢–Õ±¥â½´éǽîÌÃïÎÅëÌÇéÌÆñÔÐó×Óÿãà϶²L3/p]Yþøø÷÷÷ôôôóóóöööøøøøøø÷÷÷ùùù®®®"""///000---(&'($%)#%)#%)#%($%($%&$%%%%%%% + ,0/­±°®´²)/-!%$!.*+LHI=9: ($%$ !$ !&"## # /+,JFGQMN/-."""######!!! ###)))...;:?<;@@?DEDIIHMNMRRQVSRWZY^ZY^[Z_ZY^YX]VUZSRWUOQo][w_[~ea„kgŒpl‘uq”wq•xp–xp–xn›yoŸ}s¦‚v¬ˆ|±´„±…·•‹¶•Œ³—Œ·ž—½© È·°ÑÆÀ[TN21,ÅÇÄ÷ýùëõô·ÃÁ£±±˜¤¢”˜™lll(&'$"#%%%! ! " !%%%.,-888DBCJJLHKREHODDLFEKIDHG>AB44=+)…mi½¢›¹˜¾™À˜Œµ‹}©~n§|l®ƒr¯„s²‡v¶‹zº~¾“‚Á–…—†Ô©˜Ì¡Ú¯žç¼«í±ÿÕÄ转žwhfF;jOF`E>P91M83F5.D95VNK0/+ˆ‡ïûùíýý×ëêçûüðþþ¾º¹~po™Š‡«—–©‘¬§ˆ† ~}–sq”qm‘pkŽph‘si•zo›€u…y¶œ¾¤—Á©Å¯¢Ç³ªÅ´ªÊ½µØÏȇ€z:72••“öû÷ôúúóüûòüýñüþ­·Á-:C)6>&3;#06!.4,/+.,-!/0,,))9HEius9B?"(&RXV¼ÂÀ|‚€ $*(" $"$*(7=;NTR9?=!%$ $#!  !%$&*)+/.+414@@2BA5CC7EEJJAKLBLMAIK>FH:?B6;>48;59<9:>;;=GC@LGCUMJ^VSi_^rhgxno{rs€w|}x|mnrAFIp{}›««ƒ—–}’•wšxžt‰šnƒ”nh{ŠUgu?Q],:G,:E,9B+8A,6?+5>*4=*4=-4<*19(/7'.6'.6#*2#+&#+%-!(0")1 '/"*$%%%888TTThhh@@@666(((B@M75B*(5'%231?HFT]ZkjgxZWlURgYUlie|soˆuqŠxt~|’|{y{Š]_n:@O35D*,;&)<()E(+J…ˆ§×Úùº½Ü—š¹«®Í¼¿ÞËÎí£¦Åž¡À‹Ž­JMly|›ìïÿðôÿ|€:>YBFa~‚¡¥Àœ »”˜³¯³Îïóÿçëÿei„9=XŠŽ©›Ÿº`dae€ž¢½—›¶ƒž_c~_c~”¯ž¢½«¯Ê²¶Ñ°´Ïßãþöúÿ­±Ìx|—†Š¥„ˆ£,0KMQl ¤¿¾Âݨ¬ÇptBFalp‹ˆŒ§fj…VZubftx“…‰¤’–±•™²~”rs‡‰Šž©ª¾—˜ªƒ…”…‡–y{ˆƒŠŒ˜€ƒŒy|…nqx]`g]`eadinrugknNRU48;-14.251587;>59<047:>ALPSZ^agknkorcfkHJV9;HEGVhjwƒ…”£¥²ÚÜëÌÎÛhjy(*7,.=ln{‰‹šˆŠ—‰‹š…‰”•šž–•†ŽƒŒ‹ƒŒ‹Š‰|…„x€nwvpyxv~{„ƒzƒ‚zƒ‚€‰ˆŠ_a`...+++...(((000,,,$$$#######################%+*220;97B:8C31<,*5*(3*(3(&1-+620;1/:)'2#!,!*"!)&&(&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(((((((((((((((((((((((()))))))))))))))))))))*(+,&01)64,93+8KEQ=7C??B22<)%†mh¼Ÿ—¶”Š»•ŠÀ–Š»‚¸Š{»}´‰xµŠy¸|¼‘€À•„Ä™ˆÇœ‹ÈŒÒ§–ȝŒÔ©˜Ù®àµ¤ÿØÇê¿®ŒeVW7,nSJgLEN7/L72G6/B73SKH43/s|{ïûùîþþÓçæåùúñÿÿ¾½„vu¡’±œ¬”’­‘©Šˆ¤‚­Šˆ­Š†®ˆ¯‘‰µ—ºŸ”À¥šÂªžÝöâÈ»áɽßɼÞÊÁÛÊÀâÕÍòé⫤žIFAò÷óñ÷÷ðùøøÿÿóþÿ³½Ç +".;D'4<$19"/5$17 .1-0-.#12--++;JGkwu4?;'$MVS¸Á¾}†ƒ #,)# $!#,)5>;LUR:@>"&% $#!  !%$&*)+/.+414@@2BA5CC7EEJJAKLBLM@HJ=EG:?B6;>48;48;78<99;B>;GB>PHEYQNdZYmcbuklwno{rw{vzoptDILny{—§§€”“z’vŒ™wŒsˆ™o„•r…”m€Ses6HT-:-8,5,5 *3 *3)2)2!(0 '/&.&.&.$,'$&'!)!) (%!$$$777TTTiii@@@666(((FDQ:8E+)6(&331?HFT]ZkifwZWlTQfWSjeaxqm†uqŠ|x‘„‚˜~z|‹^`o>@O/ 2&'<23HEE]yy‘ººÔººÔŠŠ¦„„ Œ«xw–ih‡ut“‹‹§šš¶uuEE_;;Syy‘ÍÎ㾿Ó|}‘JK]?AP35D,.=),?./K ?ux—ÕØ÷ÄÇ栣ª­Ì±´ÓËÎ힡Àš¼Œ®EHgknßâÿçëÿ…¢59T15Pvz•¦ªÅœ »“®ª®Éîòÿðôÿtx“AE`Œ«¥©Äjn‰^b}’–±ž¢½‚†¡cg‚`dŠŽ©Ÿ£¾¡¥À¯³Î±µÐâæÿöúÿ«¯Ê{šŠŽ©€„Ÿ"&A&*E¡¼×Ûö¦ªÅosŽOSnhl‡…‰¤\`{SWrhl‡y}˜Œ«šž¹“—°wxz{•–ª¸¹ÍŸ ²~€‡‰˜|~‹†ˆ”›€ƒŒ{~‡ru|^ah]`ecfkosvkorVZ]@DG;?B;?B<@CAEH;?B48;>BEOSVY]`aehbfiWZ_@BN9;HMO\su‚ˆŠ—›ªÕ×äÚÜéz|‰$&3')6xz‡—™¦‰‹˜€‚y}†}‚…{„zƒ‚y‚w€t}zqzyoxupyxy‚Š‰ˆ…x€zƒ€‹”“ž¤¢KML)))222,,,999///##########################%+*220;97B:8C31<,*5*(3*(3(&1-+620;1/:)'2#!,!*"!)&&(&&&&&&&&&&&&&&&&&&&&&((((((((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%((((((((((((((((((((((((((((((((((((((((((((()'*+%/1)65-:3+8KEQ;5AA>I·µÀõóþøøÿðóüïòûøüÿõùÿêî÷çëöÕÛçáçóÖØåÌÌÖÇÄ͛”›j_eeVY†pr‹qp”wsŸ~w¯Š‚½—ŽÌ¡˜Ó¨ŸÙ±§Û³©ß·­â¼±æÀ·ç¹éļèƽîËÇ÷ÖÑìÍÊæÉÅÿîìéËÉQ31cNKÿ÷ø÷÷÷ôôôóóóöööøøøøøø÷÷÷ùùù®®®"""///000---(&'($%)#%)#%)#%($%($%&$%%%%""".21§«ª¬²°.42! ><=¾¾¾š˜™ $$$! %%% !!!,*+IIIXVW111"""######!!! ###)))...;:?<;@@?DEDIIHMNMRRQVSRWZY^ZY^[Z_ZY^YX]VUZSRWUOQbPNiQMpWSv]Y}a]ea„ga…h`qi’tjšxn£w°Œ€»—‹Ä ”É¥™Û¶­ã¾µß½´Ü»²àýåÌÅîÙÔüíè‡~y<94¶¶´íòîëôó·ÁÀ¥±±¡«ª©©«uqr)%&%!""$ !$ !# # $ !($%0,-;78FBCMHLKJPFEKCAFGAELAEK&$ˆlh½œ•³Ž…µ»‚¼Ž¾ǘˆÃ•…Á–…—†Ä™ˆÆ›ŠÇœ‹ÈŒÉžÛ°ŸÎ£’Ô©˜Ó¨—ܱ ÿßÎôɸŒeVU5*rWNhMFJ3+K61I81A62PHE762mvuïûùîþþÐäãäøùñÿÿËÇƎ€¬š»§¦³›™³—–°‘­‹Š®‹‰±ŽŠ´“Ž¹›“Á£™Ç¬¡Î³¨Ð¸¬ÞÄ·äʽâʾàʽÞÊÁÛÊÀãÖÎôëäÁº´URM÷üø÷ýýñúùøÿÿîùû¶ÀÊ $ .;D&3;"/7!.4%28"03!/2"01%34!//--=LImyw8C?$-*" QZW¼Å…Ž‹$-*# $!#,)5>;KTQ8A>!'% $#"! !%$&*)+/.+414@@2BA5CC7EEJJAKLBLM@HJ=EG;@C6;>48;48;67;88:>:7B=9LDAUMJ`VUj`_qghtklwnsxswoptEJMmxz”¤¤}‘wŒtŠ—uŠ›q†—o„•v‰˜pƒ’Tft2DP'4'2'0'0%.%.%.%."*#+#+$,$,!)$ %%&&%#!$$$777TTTjjj@@@666(((A?L86C1/<0.;42@:8FFCTRO`VShZWl_[rfbyok„}y’‹‡ ”’¨~}oq€[]l?AP%&8"#5()>'(=99Qjj‚¨¨Â°°ÊŒŒ¨‰ˆ§‚ sr‘gf…tt––²€€šSSmHH`yy‘°±Æ¬­ÁstˆPQc8:I:?7D?7DD`E>O80M83J92C84H@=MLH]feîúøïÿÿÄØ×ÑåæíûûÈÄ¥–“¯›š®–”¬°‘¯Œ¹–”½š–¡œÈª¢Ï±§Ò·¬Õº¯Ô¼°çÍÀå˾äÌÀæÐÃâÎÅÝÌÂãÖÎìãÜž¸a^Y||zöû÷÷ýýôýüöÿÿíøúËÕß!- +42?G+8@,9?'4:&47.IE0;7" Q\X»Æ”Ÿ›!,(%!!,(*&!,(*&0;7HSO;DA&,*"&%!  "!#'&(,+-10-636BB4DC6DD9GG=II@LLBLMCMNGOQCKM>CF7()>==Uhh€¡¡»­­Ç«ƒƒŸŠ‰¨†…¤vu”hg†yy•˜˜´„„ž\\vIIayy‘²³È­®Âtu‰PQc79H:=(((111666222888333,,,***********************,10853>97B86A42=/-8,*5+)4)'2,*5/-8.,7+)4(&1(&1('/,,.,,,,,,,,,,,,,,,,,,,,,))))))))))))))))))))))))((((((((((((((((((((((((************************************************++++++---...000111222425;5?@8E?7DDÌÊÕüúÿúúÿ÷úÿöùÿôøÿïóüèìõâæñÓÙåÄÊÖº¼É°°º¹¶¿ ™ lagteh™ƒ…¤Š‰²•‘ÀŸ˜Ì§ŸÖ°§á¶­æ»²á¶­ã¸¯è½´ê¸íŽïÇ¿ïÈÁîÉÁðÊÇòÏËóÐÎöÔÒÿòñÿäâcDBaIGÿ÷øøøøõõõóóóóóóõõõøøøúúúøøø²²²###555444////-..*+/)+/)+.(*,()+'()'(''''''*.-£§¦©¯­9?=#)'&*)ÀÂÁÎÐÏ<>=#%$ "!!#"%'& "!LNMwyx576 %%%+++///;:?<;@@?DEDIIHMNMRRQVSRWYX][Z_]\a\[`XW\QPUIHMHBDYGE\D@^EA`GCgKGoSOvYS{^VvXPz\R„bX‹i_”pdym¨„x°ŠÀ˜¾–Žº“Œ¶”‹´•¶›”·Ÿ›·¥¡cUR,$!˜”“öøõçíí²»º©³´ÆÏΑ’;57("$("$'!#+%'6022,.%!("$& "4.0=79@:`E>O80M83J92C84H@=MLHcë÷õðÿÿÄØ×ÍáâêøøÈÄ띜 ‘Ž­™˜­•“¬°‘°Ž¶“‘»˜”¡œÉ«£Ò´ªØ½²Ý·ÝŹãɼäʽåÍÁåÏÂáÍÄàÏÅæÙÑíäÝÏÈÂjgb‚‚€ùþúöüüòûúöÿÿðûýßéó&2> "/88EM4AI5BH1>D*8;4BE:HI=KL:"Va]ÀËǙ¤ #.*(3/,73)40*51&1-4?;ITPCF7>>,,,$$$97D0.;)'4(&3+)720>>;LJGXQNcURg\Xoc_vjfuqŠ€|•‡…›~}pr]_n@BQ&'9"#5)*?)*?@@Xee}˜˜²ªªÄ••±‡‡£‹Š©Œ«{z™hg†›˜˜´ˆˆ¢hh‚JJbyy‘µ¶Ë°±ÅwxŒQRd57F9;J46ENQdef‚BEd3TWvÏÒñÍÐï«®ÍÛÞýñôÿŽ‘°DGfbe„„‡¦“²¯²Ñ¸¼Ù®²Ïuy”@D_lp‹~‚€„Ÿƒž–šµÏÓîÞâý¡¼`d[_z|€›€„Ÿ}œ‚†¡‚†¡‰¨Ž’­“—² ¤¿ª®É¨¬Çº¾Ù¸¼×ÒÖñÑÕ𠤿”¯”˜³z~™)-HIMh«¯Ê¶ºÕuy”lp‹vz•lp‹ptququ… „ˆ£“—²ÀÄ߉¦BCXgh|¬­ÁÊËߓ”¦Y[jY[jfhuœžª‚‹uxknu`cjZ]bZ]bUY\X\_X\_UY\UY\X\_W[^RVYBFIAEHAEHAEHCGJFJMIMPKNSILSNQZknw€ƒŒ…ˆ‘’•žÂÅÎÉÌÕehq$8;Dš¦»¾ÇsvGJSUZ^Y_]WaYWaYV`XU_WU_WT^VT^VPZRQ[SR\TS]UT^VS]US]UTZV@BA///444666111555333///.......................043;75@:8C97B31<-+6*(3(&1)'2,*5/-8.,7+)4(&1(&1('///1/////////////////////,,,,,,,,,,,,,,,,,,,,,,,,------------------------...................................................///000111333444666758<6@A9F@8EE=JKEQ!':7BÒÐÛûùÿùùÿõøÿô÷ÿñõþëïøãçðÜàëËÑݹ¿Ë²´Á³³½¿¼Å–i^d{lo¬–˜µ›šÁ¤ Ì«¤Ô¯§Ú´«ã¸¯ç¼³óǾôÈ¿öÊÁöËÂ÷ÌÅôÌÄôËÅòËÄõÏÌõÒÎðÍËñÏÍÿèçÿéè]\fNLÿ÷øøøøõõõóóóóóóõõõøøøúúúøøø²²²###555444////-.0,-1+-0*,0*,.*+-)**())))))),0/¥©¨ª°®;A? +%+)+/.¹½¼ÕÙØFJI #"#"! $('! LPOx|{798 ###(((---111;:?<;@@?DEDIIHMNMRRQVSRWYX][Z_]\a\[`XW\QPUIHMHBDUCAYA=[B>_FBgKGpTPx[U}`X˜zrŸw­‹¹—Ç£—Õ±¥â¾²ìƻะ߷¯Ý¶¯Ü·¯ÛºµÚ¿¸ÛÿÙÇÃugd( }|÷÷õèìí¬µ´·ÁÂÉÏÏnim$2),'!+"%F=@_VY8/2#'!("%/&)5,/8/2:16:166+1H<>†vw—ƒ‚^EA4”qkÇ¡˜¼…»‹}ÀŒ~}Č{ƑĕƒÁ–…—†Ä™ˆÆ›ŠÇœ‹ÈŒÉžÎ£’Ѧ•Í¢‘Ð¥”Ò§–ðÅ´ñƵ›teR2'bG>`E>O80M83J92C84H@=MLHW`_æòðòÿÿÃ×ÖÆÚÛäòòÇ䖕•†ƒ¥‘ª’ªŽ¯Ž±ŽÆ£¡É¦¢Í¬§Ñ³«×¹¯Ù¾³ÛÀµÚ¶æÌ¿ëÑÄêÒÆåÏÂàÌÃâÑÇçÚÒéàÙÔÍÇnkf„„‚úÿûõûûïø÷öÿÿôÿÿí÷ÿ5AM(5>ANV@MUANT;HN.:0<80<8+736B>FRN;FB(.,%)( $#! "!!   $#&*)+/.+416BB4DC6DD9GG=II@LLBLMCMNGOQCKM>CF7J ("-%.!*&'&$          !!""" +++NNNqqq[[[AAA---$$$42?,*7$"/$"/'%3.,::7HEBSROdWTi^Zqeaxlhtp‰}y’‚€–}|Žqs‚_apBDS&'9!"4)*?+,A@@X``x©§§Á¹©Œ‹ª”“²€žhg†›””°‰‰£qq‹LLdww¹ºÏµ¶Ê|}‘STf24C46E57FWZm‹Œ¨_b258WÄÇæáäÿ­°Ï¿Âáîñÿ‘”³7:YFIh‡Š©±´Ó¾Á௳Ю²Ï†Š¥PTovz•†Š¥‚†¡|€›‘¬ÖÚõÜàûœ »mqŒcg‚vz•ƒž}œ… †Š¥ˆŒ§‘¬šž¹¦ªÅ°´Ï¸¼×¹½Ø²¶ÑÆÊåÌÐ똜·y}˜‰¨‰¨QUpPTo”˜³¨¬Ç{šlp‹lp‹koŠkoŠsw’{š‰¨‘¬Ÿ£¾ÃÇ≍¦>?Tlm½¾ÒÒÓ畖¨^`oVXg_anƒ…‘¢¤°„‡vy‚ils_biZ]bY\aVZ]Y]`Y]`W[^W[^X\_TX[MQT9=@9=@:>A>BECGJKORRVYVY^SV]SV_jmvz}†€ƒŒ™·ºÃ·ºÃRU^ KNW°³¼¿ÂËor{ILU[`dV\ZT^VT^VT^VT^VS]US]US]UR\TS]UU_WWaYWaYU_WR\TRYREGD77744455500011133311100000000000000000000000254<86A;9D97B31<,*5(&1'%0)'2,*5/-8.,7+)4(&1(&1('/002000000000000000000000........................000000000000000000000000000000000000000000000000111111111111111111111111000111222444555777888:8;<6@A9FA9FD $*(,0/¶º¹ÜàßNRQ! !%$ $#"!$(' NRQ}€7;:  !!!$$$(((...333666;:?<;@@?DEDIIHMNMRRQVSRWYX][Z_]\a\[`XW\QPUIHMHBDR@>V>:Y@<^EAgKGpTPz]WbZ›}u¢„z¯ƒº˜ŽÇ£—Ó¯£ß»¯çÁ¶ä¼´æ»´ä»µâ½µà¿ºÞÁ»ÝÄÀÚÇÍ~{)pjjùù÷éí¯ÀÈʵ»»QLP%3*-) #-$'[RUŒƒ†>58%& '!#*!$-$'/&)4+03(,'I:=«—™ÂªªpTQ6›vnʟ–¾…¾ËzŌyō|“À•„Á–…—†Ä™ˆÆ›ŠÇœ‹Çœ‹Ì¡Î£’Ë Í¢‘Ì¡ê¿®îòvgR2'bG>`E>O80M83J92C84H@=LKG!QZYÞêèóÿÿÃ×Ö¾ÒÓßííÉÅАŒ}z¡Œ«“‘¬³”’·•”Æ£¡Ê§£Î­¨Óµ­Øº°Ú¿´Ý·ÜĸðÖÉ÷ÝÐõÝÑêÔÇãÏÆåÔÊèÛÓçÞ×Êýda\}}{÷üøôúúíöõõÿÿöÿÿçñû4@L #09>KSANV?LR7DJ-;>9GJ?MN?MN>LL;II?NKKZWO[W:FB#_kgÄÐÌ«·³@LH6B>.:6/;71=9-956B>BNJ:EA*0.'+*"&% $#!%$!%$ $#"!"!"&%'+*,0/+416BB4DC6DD9GG=II@LLBLMCMNGOQCKM>CF7SKH^TSg]\ndeqhimdipko`ae9>AU`b€ˆœ›z’s‰–nƒ”k€‘l’’¡£¶Åvˆ–/AM*#.&/#, )!* )'%%%%%%%% !"#$%&$!(((OOOuuudddEEE---$$$20=)'4" -!,$"0+)774EC@QVSh\Ync_vjf}ok„uqŠ{w~|’}|ŽrtƒacrCET&'9!"4*+@-.C>>V__wˆˆ¢¢¢¼¢¢¾’’®®œ»†…¤kj‰{{—‹‹§……ŸvvQQiuu¹ºÏ¸¹Í‚–WXj/1@-/>02AX[nª«Çvy˜9"%D­°Ïêíÿ»¾Ý©¬ËÚÝü›ž½?Ba69Xˆ‹ªÌÏîÊÍ즪ǥ©ÆŽ’­W[vz~™“®Ž’­ˆŒ§“—²ÙÝøÕÙôž¢½z~™dhƒgk†sw’y}˜… Ž’­…‰¤„ˆ£œ »©­È¸¼×ØÜ÷ÀÄ߯³Î»¿ÚÊÎ铗²ae€ƒžŸ£¾vz•\`{ƒ‡¢™¸ƒ‡¢uy”jn‰koŠkoŠtx“{š“®¡¥À«¯Ê¾Âݍ‘ª=>SstˆÈÉÝÖ×됑£Y[jTVe_an†ˆ”§©µ‰Œ•wzƒhkr^ahZ]bY\aY]`\`c\`c[_b\`c\`cTX[JNQ.2504748;<@CGKNTX[`dggjoZ]dUX_dgnoryvy€ƒ†§ª± £ªBEL 'ilsËÎÕÌÏÖtw~PSZglobhd`jaakbakbakbakbakbblc]g^_i`akbblcblc`ja^h_^e^LNK>>>222111///...22200000000000000000000000000254<86A;9D97B31<,*5(&1'%0)'2,*5/-8.,7+)4(&1(&1('/002000000000000000000000........................000000000000000000000000000000000000000000000000222222222222222222222222000111222444555777888:8;;5?A9F?7DB:GGAM &@=HÝÛæúøÿööÿñôýíðùçëôßãìÕÙâÎÒÝ»ÁÍ«±½§©¶³³½ÍÊÓ¬¥¬zou™Š»¥§Å«ªÒµ±ß¾·êŽóÍÄýÒÉÿ×ÎÿçÞÿåÝÿãÛÿâÙÿßÙÿßØÿÞØÿÝ×ÿéçÿÛØñËÊóÐÎÿÛÛÿÛۈfev\[ÿ÷øøøøõõõóóóóóóõõõøøøúúúøøø²²²###555444////-.-)*.(*-'),&(*&'*&''%&&&&&&&)-,¡¥¤§­«7=;!'%(., + µ»¹áçåQWU + &$!'%%#%#$*( PVT‚ˆ†9=< !!!$$$(((...444:::===;:?<;@@?DEDIIHMNMRRQVSRWYX][Z_]\a\[`XW\QPUIHMHBDP>' ' )"$)"*#-"&5*.3'+$L<=Àª¬ÜÂÁ}`\8 yrʞ•¾Ž‚ÂŽ€Å~ċzƋyČ{Á’€¾“‚¿”ƒÁ–…؇ęˆÅš‰Æ›ŠÊŸŽË ÈŒÉžÆ›Šâ·¦ê¿®ŸxiR2'bG>`E>O80M83J92C84H@=LKG "IRQÔàÞóÿÿÃ×Ö¹ÍÎÝëëÊÆŗ‰ˆroš†…ª’­‘´•“»™˜ÂŸÄ¡Ç¦¡Ê¬¤Í¯¥Í²§Î³¨Ì´¨Õ»®ÛÁ´×¿³Ê´§À¬£Á°¦Âµ­À·°·°ªROJppnò÷óóùùíöõôþÿõÿÿìöÿ=IU -6LLBQNL[XO^Y0?: % s‚}ØçâÈ×Òeto6E@(72-<73B=1@;9HC@OJ>JF286/32+/.*.-*.-+/.*.-)-,'+*&*)&*)&*)(,++/..21-636BB4DC6DD9GG=II@LLBLMCMNGOQCKM>CF7AP[]xˆˆ„˜—wŒp†“m‚“k€‘l’’¡§ºÉzŒš2DP+%0(1%."+$-$-"+"*"*"*"*"*"*"*"*&'' ("*#+#+$*"#%###$$$ '''QQQ{{{mmmIII...%%%20=)'4" -!,$"0+)774EC@QYVk_\qhd{ok‚soˆvr‹zv{y}|Žsu„cetEGV&'9!"4+,A./D??Waay‚‚œ˜˜²žžº””°–•´ª©È®rqttƒƒŸ›xx’ZZrxx²³Èµ¶Ê„…™\]o/1@&(7*,;VYl³´Ð…ˆ§ #B8”—¶ëîÿÓÖõ§ªÉ¿Âá«®Í\_~7:Y„£ËÎíÅÈ硥ž¢¿Ž’­SWr{š™¸™¸•™´¤¨Ã×ÛöÏÓł†¡UYtLPk^b}z~™“—²¡¼†Š¥{š—›¶¦ªÅº¾ÙèìÿÔØó²¶Ñ¬°ËÃÇⓗ²Y]x{š¬°Ë…‰¤pt‰¨“®‚†¡€„Ÿsw’rv‘rv‘w{–uy”•™´½ÁÜ´¸Ó¯³Î‘•®FG\}~’ÅÆÚÍÎ⃄–LN]UWfdfs‡‰•«­¹Œ˜wzƒgjq_bi\_d[^c\`c_cf_cf_cf`dg^beSWZGKN*.1-14269<@CJNQZ^aimpqux`chVY`]`gdgnlovy|ƒ˜›¢‰Œ“14;),3„‡ŽÝàçÒÕÜsv}NQXinqflhdneeofeoffpggqhgqhgqhcmddneeoffpggqhgqhfpggngRTQCCC---,,,---+++000,,,.......................043;75@:8C97B31<-+6*(3(&1)'2,*5/-8.,7+)4(&1(&1('/,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------------------------........................000000000000000000000000...///00011133344466675882J$A>Iáßêù÷ÿõõÿïòûêíöãçðÚÞçÏÓÜÇËÖ·½É±·Ã¯±¾¸¸ÂÐÍÖ¨¡¨bW]pad¦’ª­Œ¬‹„§‚z¢|s¡vm¡ul•f^“d\‘bZ`XŒ_YŒ_Y‹`ZŠa[ˆ_]‡_]Šdcšts²ŽŽ¹••K)(Y?>ÿ÷øøøøõõõóóóóóóõõõøøøúúúøøø²²²###555444////-.,()-'),&(+%')%&)%&&$%%%%%%%(,+ ¤£¦¬ª6<: &$%+) µ»¹æìêU[Y +$*("(& &$ &$$*(RXV‡‹;?> """$$$(((---333888===???;:?<;@@?DEDIIHMNMRRQVSRWYX][Z_]\a\[`XW\QPUIHMHBDO=;T<8W>:\C?fJFoSOy\V~aY™{s¡ƒy±…¾œ’̨œ×³§á½±è·ߴ­àµ®á¶°ß¸±Ú·³Ó´¯Ì³¯Æ±® ‘Ž?42ICCÆÅÃáâä·»¼ÎÓÖª®¯5/3 +0%)1&*3(,*#NCG‘†ŠI>B)"' ,!%(!+ $,!%/$(;/3;,1*Q>@ů±ãÉȂea;žuo׎¹‡|ŋ}Ƌ{ʍ{ǎ}¿~½’¾“‚¿”ƒÁ–…؇ęˆÄ™ˆÈŒÉžÅš‰Æ›ŠÁ–…Û°Ÿæ»ª yjR2'bG>`E>O80M83J92C84H@=KJF "?HGÈÔÒòÿÿÃ×ÖµÉÊßííÄÀ¿‰{zo`]yx¢Šˆ¦Š‰¯Ž¸–•ÂŸÃ œÄ£žÄ¦žÄ¦œÂ§œÀ¥š½¥™­“†³™Œ·Ÿ“¶ “·£š¾­£Çº²Ë»¯¨¢GD?eecíòîôúúïø÷ôþÿôÿÿïùÿGS_ " -6:GOBOWERXANT@NQKY\KYZESTDRRDRRGVSN]ZWfa5D?$4C>”£žïþùçöñ‘ ›M\W9HC?NIGVQDSNJYTL[VMYUDJHBFE>BA=A@>BA?CB>BA=A@;?>9=<6:94872652652650966BB4DC6DD9GG=II@LLBLMCMNGOQCKM>CF7+)6#!.#!.&$2-+996GDARZWla^sjf}qm„tp‰uqŠwsŒwu‹}|Žtv…dfuFHW&'9 !3+,A01FCC[ff~~~˜‹‹¥””°““¯ž¼º¹Ø›š¹}|›oo‹}}™™yy“ff~}}•¦§¼®¯Ã„…™_`r/1@"$3%'6TWj¦§Ã’±*-L7ˆ‹ªêíÿåèÿª­Ì±´ÓÁÄã~ =@_kn­°Ï±´Ó¦ªÇšž»‡‹¦MQl„ˆ£«¯Ê ¤¿™¸°´ÏÚÞùÈÌ端ʀ„ŸBFa26QIMhz~™®²Í§«Æ†Š¥x|—”¯¤¨Ã¾ÂÝèìÿêîÿ´¸Ó•™´¯³Î“—²_c~|€›¦ªÅˆŒ§{š‘¬‰¨ƒž‚†¡w{–z~™ƒž}œmqŒ™¸ÙÝø¹½Øšž¹“—°fg|‰Šž²³Ç»¼Ð~‘NP_`bqhjwˆŠ–¬®ºŽ‘šwzƒfip`cj_bg^af]ad_cf`dg`dgbfi_cfRVYCGJ-14.2537:;?BIMPY]`gknptwfinX[`Y\a]`eehmruz•y|'*/997B86A42=/-8,*5+)4)'2,*5/-8.,7+)4(&1(&1('/))+)))))))))))))))))))))))))))))))))))))))))))))((((((((((((((((((((((((************************........................++++++---...00011122242560:=5B;3@<4AA;G"A>Iäâíù÷ÿôôþíðùèëôàäíÕÙâÊÎ×ÂÆѸ¾Ê¼Âν¿ÌÃÃÍáÞç¾·¾odjo`c‡qs‘wv ƒ®†»–ŽÅŸ–Ð¥œ×«¢Ü­¥Ý¬¥Ý®¦à±©âµ¯çº´ëÀºìý⹷ìÄÂôÎÍøÒÑÿççòÎÎQ--Q76ÿ÷øøøøõõõóóóóóóõõõøøøúúúøøø²²²###555444////-..*+.(*.(*-')+'(*&'(&''''&&&)-,¢¦¥¨®¬8><"(&'-+ + ³¹·ìòð\b` #)'#)'!'%"(&%+)TZXŠŽ=A@ )))+++...222666999<<<===;:?<;@@?DEDIIHMNMRRQVSRWYX][Z_]\a\[`XW\QPUIHMHBDP>:\C?eIEnRNwZT|_W”vnœ~tªˆ~µ“‰ÀœÈ¤˜Ï«ŸÕ¯¤×¬¥Ù®§Ü±«Ú³¬Ö³¯Ï°«É­ªÁ¬©¡’VKI2)*Œˆ‡ÕÕ×ÃÇÈÔÙÜÊËÍG>C 6*.4(,1%)&F:>|ptL@D*")!0$(."&1%)2&*5)-E6;E6;5%(WCE©¬ßÄeb?“kc·ˆ~±}p½ˆzÉ{Ƌ{Αʑ~¾}»½’¾“‚À•„Á–…—†Ã˜‡Æ›ŠÇœ‹Ã˜‡Ä™ˆ½’Ö«šä¹¨¡zkR2'bG>`E>O80M83J92C84H@=KJF "7@?½ÉÇðÿÿÄØ×´ÈÉâððÉÅĈzyk\Yyx¦ŽŒ«Žµ–”¿œÄ¡ŸÇ¤ Ëª¥Î°¨Óµ«Ô¹®Ö»°Õ½±ÞķߟÞƺÜƹ×úÕĺÚÍÅà×й²¬JGBccaëðìõûûñúùõÿÿôÿÿìöÿP\h+45BKP]eXemXekTagQ_b]kn_mnXfgWeeWeeUdaXgdl}wYjdIZTizt¬½·êûõëüö­¾¸wˆ‚]nhctnhysctnduo_pjbnj\b`Z^]VZYUYXW[ZX\[X\[VZYOSRLPOGKJAED<@?9=<7;:3<96BB4DC6DD9GG=II@LLBLMCMNGOQCKM>CF7SIH[QPaWXcZ[aX]ZUYVW[++5$"-##/'%2-,::8FDCSYVi`^sjg|pn„so†sq‡tp‰trˆ{|tu‰efxFGY&'9 !3+,@01EHI^jk€{{“›ŒŒ¦’’®¤£ÂÅÄ㣢Á„ƒ¢mm‰zz–™zz”nn†‚‚šœ²¨©½ƒ„˜abt02A!#2$&5SVi•–²•˜·47V<ˆ‹ªêíÿéìÿ©¬Ë±´ÓÑÔ󔗶>A`UXwŽ‘°¡¤Ã±µÒ–š·… JNi‘•°¼ÀÛ£§Â–šµ±µÐáåÿÄÈ㨬Çz~™6:U&*E=A\w{–º¾Ù£§Â…¢w{–‘®¨¬ÇÈÌééíÿ÷ûÿ³·Ò…¢›Ÿº‘•²fj…|€˜œ·ŠŽ©y}˜‡‹¦…‰¤ƒž~‚sw’ƒžŠŽ©… hl‡›Ÿºéíÿº¾Ù‹ª’–¯†ˆ‘”§Ÿ µ«®Á‚–Z]nmo~gkw‡‰–¬°»‘vzƒfir`ekadk_dh[`c]cc^cf_eeafi]ccOTW?EE05817738;:@@EJMTZZafiinqhmpX]`X\_Y^abfinsv‡‹Žpux)-0HMP¯³¶ôùüÝáäqvyDHKdjjgpkfqigrjhskitljumkvnkvnjumjumitlitlkvnnyqr}uuwY[XGGG$$$"""+++)))---%%%(((((((((((((((((((((((*0/543;87?87?43;0/7-,4,+3)(0,+3/.6.-5+*2('/('/('-&&(&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''%%%%%%%%%%%%%%%%%%%%%%%%((((((((((((((((((((((((,,,,,,,,,,,,,,,,,,,,,,,,((()))***,,,---///0002034/6:4>91<93=?9C!A>IäâíøøÿòõþìïøåéòÞâëÑØâÅÌÖ½ÄιÀÊÀÇÑ¿ÂËÆÆÎõòùëåé­¢¦²¤¤Ð»ºØ¾½áÄÀèÇÀìÇ¿îÈ¿ôÉÂöËÂøÉÃöÇÁñľîÁ»ì¿ºëÀºìÀ½ìÿéÁ¿ñÉÇñËÊîËÉÿññÿáàN,+L21ÿøöøøøõõõóóóóóóõõõøøøúúúøøø²²²###555444///....,-.,--+,,*++)****)))(*)(*),0/£©§ª°®:@> +$*()/- + +°¶´ñ÷õbhf +!'%$*(!'%"(&%+)U[YŒ’=CA !    .0//101324656877988:98:9:;?;<@@?DDEIIHMMNRRQVRSWYX]Z[_]\a[\`XW\PQUIHMGCDO??S>;W?=[CAbIEkRNuYVz^Z„gaŽojž}v¬‹„¸•Ã¡˜Ì©£Ô¯©Ù­ªÜ°­áµ²á¹·ß¹¸Ù·µÓ´²Í±°´œœyef-gX[ÐÄÆÍÄÇ×ÎÑà×ÚbSV ?,0:'+1!)M8=xchS>C1!/7$(6#'9&*8(+?,0O8>S8?F).aBGŸ£ß¸»Š`aH]Z±zu­pk¿vƃz̈Տ…Ó‘…Ë~ÁŽ€Ä‚Ã’ƒÅ”…Å–†Æ—‡Ç™‰ÈšŠÂ—†Ã˜‡»Ò©—Ḧ¡|lP2'bG>^E>O80L93H92C84H@=KJF!4::¸ÂÁðþÿÅ××´ÈÉæòòÛ×֕Šˆxhhšˆ†´Ÿžº ŸÄ¨§Ð±¯×¸¶Üº¸à¿ºãŽçÉÁéÌÄêÍÅéÎÃæËÀáɽâÊÀãÍÂÜÊÀ×ƾÜÏÇäÛÔÆ¿¹ROJgfbîðí÷ûúôúø÷ÿÿõÿÿ÷ÿÿo|‚KY\iwz‡•˜Œš›ˆ–—zˆˆˆ––Œ›˜†•’†•’ƒ’~ˆ|‡”Ž€•Œ€“–«¢µÈÂÒçÞÛîè³È¿™¬¦z†’Œ–yŒ†uŠm€zo€zkvrhqnfljdmjhnlgpmiomfol[a_U^[PVTGPMBHF:C@9?=4>=4BB4DD6DE9GH=HJ@KMALNCMOFPRBLN64F>/6<+/2/10013')(')(WXZˆŠ‰~QSR./1%'& 44<.18))1"%.%%/,.:<@O35D79HJM`Š‹§‡Š©JMl"44<ËÎÕùüÿ÷ûÿÝáìËÒÜÈÏÙÂÊÕÁÉÔ¹ÂËÂÉÏÃËÎÇÊÏÓÔØÞÜßìææĺ¹ŽÎ¹¶Ò¹µ×º¶Ü»´â½µå¿¶ê¿¸ëÀ¹íÁ¾íÁÀíÁÀêÁ¿êÁ¿éÁ¿éÁ¿è¿èÅÃéÆÄèÆÄëÌÉÿéæÿçähIFH0.ÿøöøøøõõõóóóóóóõõõøøøúúúööö½½½---444777111021)-,'+*%)($('%)(%+)$*(#)'&,*‰’²»¸GPM$-*&/, »ÄÁåîëoxu%"!*'%"-631:7NWTš£ PYV! &$$"$"$*(+1//534:84:83973974:86<:9?=:@>8A@AEBFIIJNLPSQRVQUXXY]UY\VW[W[^Z[_SWZJKOCADH::L89N:;P<=U?AZDF`GJdJKdf„gi‹mo“uw}€¥…†­ŠŽ±¼’–½“»Ž‘·‘µ‹²‰°‡‹®‡Œ†_d]9=8B%jGMzZ_{[`‚chV9=3/? %8. \7> x€sKS9=F&+C$)P37Q7:W8=j@Jl=Gh6ALUªr}¦mv~AId#+„=E‡8:>:;=;>_dg‹‘‘’•V\\+03%%47<038*-4$'.$'0,/89;GCEQ`bodfsghzij|ij~kl€op„rsˆww“zz–nnŠQQi34I'(:+-<35BJLY`bqxy‹pq†kkƒ‚‚œ Ÿ¾¾½Ü™˜·…„£ttrrŽvvttŽss‹ttŒ‹Œ¡¤¥¹€•_`rACR79H;=LMPcyz–tw–;>]1HKj®±Ðçêÿµ¸×¢¥Äº½Ü½Àßgj‰:=\~ ¬¯Î¥©Æ”±MQl@D_ž¢½Þâý¨¬Ç†Š¥¹½Øó÷ÿÂÆጐ«\`{#'B48Sae€}œÂÅ䓖µux—…ˆ§…ˆ§•˜·èëÿïòÿåèÿÑÔóz}œ\_~¯‡Š©loŽƒ‡¤‚†£tx“„ˆ£‰¨|€›`dRVqx|—»¿ÚŸ£¾RVqŒ«ñõÿÏÓîRVqMQjšž·°µË—œ²ˆ£uzŽrw‹|”…•‘—§¡§µŠœkq}Y`jU\f_fp^gl\hhZidZidZidWfaTc^P_ZN]XP_ZQ`[Sb]Ud_Xgb[je]lg`lhbmi^gd_hebkhgpmt}zy‚qzw,52hqn¬µ²ÃÌɧ°­ˆ…lurmxtt€|q€{q€{pzo~yo~yn}xn}xm|wm|wl{vjythwrjytpzxƒlpo>>>"""******)))(((&&&&&&&&&&&&&&&&&&&&&&&&'&+.-265:87<549/.3*).'&+&%*)(-,+0.-2-,1(',"!& " """"""""""""""""""""""""########################(((((((((((((((((((((((()))))))))))))))))))))))),,,,,,,,,,,,,,,,,,,,,,,,1/2/-031620598>"44<ÆÉÐøüÿöúÿØßéÉÐÚÆÎÙÂÊÕÂÌؼÆÏÆÍÓËÓÕÖÚÛçéèóñòþùöÎÄ昕ÙÄÁÝÄ¿àÿåĽéľëĽïĽðÅ¿óÊÈòÈÉòÈÉðÆÇîÆÆíÅÅëÅÄéÆÄçÄÂäÂÀåÆÃìÍÊÿëçÿðìtWSK63ÿøöøøøõõõóóóóóóõõõøøøúúúûûûÀÀÀ000999>>>9998:9)/-,52096096,52(1.(1.)2/1:7'$'$‹”‘°¹¶LUR *307@= £¬©òûø{„ + *30!*',52/85V_\œ¥¢IRO"!*'&/,#,)!*'%.++41-633<92;81:71:72;84=:6?<7@=9=@;?B>BECGJHLOLPSPTWRVYZ^aW[^VZ]W[^X\_RVYFJMA?BG;=L9;M:T@BXDF]GJbIMv[`w\ay\az]b|]c}^d^e^dvMU|OVT[‡Za`g“fm˜kr›nuŽahf9@EL&f9@oBIl?FkBHT1583C#<1 a4;«|„yJR: :I &H$(R25U79_;?l:Er8Fo3?}?Lš[f˜Vb~6Bo%2Š:G’@L™AO¡GS»_jÚ}ˆâ‚ŽÒw~Ãrq؋…ېŠÑˆÐŠ‚΋‚ÈŠŋ΀º‰z»Œ|º~µŒz·’˦“š{i[A4YC8UA8O=3J92E80C:5B=9JIE#%"378¤­¬ðúüÓáâÉ×Úí÷ùùõöÀ¶·•‰‰º®®¿¯¯È¸¸Ì¸·Ð»ºÛÃÁÝÃÂâÄÂäÆÄèÆÄéÇÅêÇÃéÈÃðÕÎìÕÍêÓÍåÑÊâÏÉÞÍÆÚËÆÕÊÄÐÇÂohbhc_éæáûúöþÿúûûùûÿûçôê·É»¬¾²Å×ÉÎàÔÌÞÐÌÞÒÉÛÍÁÓǺ̾¶È¼·É»µÇ»°Â´¬¾²¨¾±£¿±¢À´£Áµ£Áµ¡¿³ž¼°›¹­™·«­¡«ŸŠ¨œ…£—€ž’y—‹t’†sƒr‡~t…}s„~rƒ{rƒ}rƒ{rƒ}rƒ{_pj]nfYjdSd\J[UARJ8IC3C@;IL;HP:GO;HP>KSBOWFS[IV^BOW?LT:GO5BJ0=E,9A*7?-4:314713824:46;78<89<:;;;;DDDCED<@?:>=AGERXVbhfbppc|h‰s‘™y—ŸŽ«³©ÆΜ·ÀqŒ•`x‚bz„e{†g}ˆj~‰i}ˆhz†hyƒjy€jw}jw}iv|hu{gtzgtzfsykx~fsyant\ioP]c@MS4AG2=A/9;2:<-57(02)135=?\df‰‘“‰‘“S[](02%' 8;@47<-07'*1%(1,/88:FACO_anbdqefxghzgh|hi}lmop…yy•yy•mm‰PPh45J();,.=24ADFSRTcij|ijhh€ww‘Œ‹ª¦¥ÄŒ«ƒ‚¡{{—zz–}}—||–wwss‹ˆ‰žš›¯yzŽZ[mFHW?APACRSVitu‘nq8;Z +)/2Q‹Ž­ÒÕôµ¸×—š¹Ÿ¢Á¨«Êeh‡9<[{~ª­Ì¡¥Âƒ <@[)-H‡‹¦ÞâýÂÆᙝ¸³·Òó÷ÿÊÎ鎒­W[v(,GAE`mqŒ†Š¥¿Âᔗ¶ps’Œ®‹Ž­ƒ†¥Üßþô÷ÿñôÿåèÿŽ‘°WZy‰Œ« ¿€ƒ¢Ž’¯‰ª{š‘¬‘•°|€›Z^yQUp‚†¡ÉÍ蟣¾IMh…‰¤öúÿàäÿZ^y<@Y“—°ÌÑ稭Á†œtyy~’„—‚ˆ˜•¥™Ÿ­‰›sy…hoyfmwjq{fotfrrdsnetoetodsncrmapk_nibqlbqlbqlbqlcrmcrmcrmfrnitpenkenkfoliroqzws|yhqn3<9hqn˜¡žŸ¨¥‹”‘{„t}zozvu}r|q€{q€{o~yo~yn}xm|wm|wm|wl{vjytixskzuo~yw‚~fji<<< $$$+++***)))(((&&&&&&&&&&&&&&&&&&&&&&&&'&+.-265:87<549/.3*).'&+&%*)(-,+0.-2-,1(',"!& " """"""""""""""""""""""""########################'''''''''''''''''''''''')))))))))))))))))))))))),,,,,,,,,,,,,,,,,,,,,,,,0.1/-03161/4:9?!"'66>½ÀÇùýÿó÷ÿÓÚäÅÌÖÄÌ×ÂÊÕÅÏÛÁËÔÀÇÍÈÐÒÙÝÞìîíù÷øþùöĺ¹œŽ‹Ó¾»×¾¹ÝÀ¼äüëÆÀðÉÂöËÄ÷ÌÆõÌÊôÊËôÊËóÉÊñÉÉðÈÈïÉÈìÉÇëÈÆäÂÀèÉÆìÍÊÿãßÿòî€c_P;8ÿøöøøøõõõóóóóóóõõõøøøúúúûûûÁÁÁ222 @@@EEE???=?>6<::C@=FC9B?1:7.743<9:C@8A>%.+"+(–“¶¿¼Zc`&#@IF8A> ™¢Ÿ÷ÿý™– + )&.74'0-3<93<9Xa^ž§¤JSP$!$-**30'0-%.+(1.,52-63096/85.74.74.740962;84=:9=@;?B?CFCGJHLOMQTPTWRVY^beZ^aX\_X\_W[^QUXEIL?=@H<>K;S?AWCE[EH^HKsZ^w\abg†inpv—x~~„£€†°‡°…Œ®ƒŠ«€‡§|ƒ¥z¢w~¡v}bie:AJ&N#*W,3X-4S(/L%*H(+;8A!;0 b5<³„Œ€QY9 4 E#F"&O/2Q35\9=c4>n6Cj0|>Iz;Fr,7r*6r$1€0;…/<„,8š@J¼`kÃfq³X_»jiߒŒá–Ð‡€Ó…ҏ†Æˆ}ǍÄ»Š{º‹{¸|´‹y²zÆ¡Ž™zh[A4YC8UA8O=3J92E80C:5B=9KJF$ź£¬«ñûýÙçèÏÝàïùûóï𿵶„„¶ªª¿¯¯Ç··Ì¸·Ó¾½àÈÆáÇÆäÆÄåÇÅêÈÆìÊÈïÌÈðÏÊçÌÅäÍÅãÌÆßËÄÜÉÃÚÉÂØÉÄ×ÊÄÞÓπysnieäáÜ÷öòúûöööôüÿýäôê»ÏñźÄØÌÊÞÓÇÛÏÆÚÏÃ×˼ÐŶʾ²Æ»´È¼³Ç¼®Â¶ª¾³©¿³¡¼³ ¾´ ¾´Ÿ½³»±š¸®˜¶¬–´ªŠ¨žˆ¦œ„¢˜“{™x–Œv”Šw’‰x†yŒ†yŒˆx‹…wŠ†v‰ƒt‡ƒs†€i|xfys`soXkeNa]EXR=PL;KJFTWGRXGRXFQWFQWGRXHSYHSYDOUALR@8@B5=?19;08:;CEaikŽ–˜…PXZ&.0#%!.0?24A?ANEGVZ[mdeziirrŒ{z™®†…¤†…¤††¢‡‡£ŠŠ¤‰‰£ƒƒ›{{“‡ˆ¤rs‡UVhMO^HJYGIXWZmxy•}€ŸMPo0!@wz™ÒÕôÆÉ蚝¼˜›ºž¡Àdg†>A`vy˜©¬Ë´¸Õƒ‡¤?C^9gk†ÏÓîÒÖñ¨¬Ç§«ÆòöÿÓ×ò”¯OSn+/JMQlsw’‡‹¦¾Áà—š¹sv•–™¸Š¬or‘ÎÑðñôÿõøÿô÷ÿŸ¢ÁNQp{~¨«Ê“–µšž»„ˆ¥}œ”¯‘¬tx“VZuQUp… ËÏꘜ·GKf†Š¥õùÿèìÿfj…:>W’–¯âçý±¶Ìz•x}‘‚‡›ƒˆ›†Œœ•¥‘—¥‡™y‹sz„ryƒqx‚ktyiuuhwrhwrixsjytjytjytjytl{vl{vkzuixsgvqfupetofrnlwsirojspjspironwtjsp]fc6?>>DDD>>><>=BHFBKHCLI?HE8A>6?<;DA@IFA<@C@DGDHKIMPNRUQUXSWZaeh]adY]`Y]`X\_RVYGKNAACI=?L<=N;=N;=Q=?UACYCF[EHnUYrY]z_d†in‘rx›|‚¢ƒ‰§‡Œ¬„Œ¬ƒ‰¬ˆ©€†¨}„¥|‚¥z£z€bid;AN#*O&,O$+L#)M")E#@ #> "<@!<2 f9@¼•Š[c<2C!C#H(+H*,T15[-7d0K;=LNOa_`ull„ttŽts’€Ÿ€Ÿ†…¤ŒŒ¨¬’’¬‘‘«‹‹£……‰ŠŸ‡ˆœlmOPbSUdOQ`KM\WZmz{—“–µps’#&E!@x{šæéÿæéÿš¼“–µŽ‘°UXw58Wbe„˜›ºÀÄᔘµKOj7TXs¸¼×ÆÊ娬Ǯ²Íó÷ÿÜàû‹ª=A\$(CQUpuy”‡‹¦´·Ö™œ»z}œ˜›º…ˆ§cf…ÃÆåñôÿñôÿô÷ÿŸ¢Á;>]Z]|š¼”—¶’–³‚†£…‰¤™¸Œ«rv‘_c~`dŒ«ÒÖñ“®GKf”¯òöÿçëÿosŽ:>W–š³éîÿ®³Éx}“~ƒ—†‹Ÿˆ ‹‘¡”šªŒ’ „Š–y‹sz„sz„ov€jsxhttfupgvqhwrixskzum|wm|wpzo~ym|wjythwretocrmdpljuqhqnjspktqhqnirobkhR[X096?HENWTR[XPYVT]Z_hehsojvrgvqfupdsnbqlapk_ni_niapk`oj_ni_niapkcrmdsnhsoTXW777$$$))),,,+++)))&&&&&&&&&&&&&&&&&&&&&&&&&&&'&+.-265:87<549/.3*).'&+&%*)(-,+0.-2-,1(',"!& " """"""""""""""""""""""""########################&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,/-0-+.205.,1<;A./499A¥¨¯öúÿéíöÇÎؾÅÏÃËÖÄÌ×ËÕáÌÖßÓÚàÔÜÞâæçíïîûùúü÷ôº°¯ŒÜÇÄàÇÂåÈÄìËÄòÍÇöÏÈûÐÉýÒÌôËÉôÊËôÊËóÉÊñÉÉñÉÉïÉÈíÊÈöÓÑïÍË÷ØÕîÏÌïÒÎÿíé˜{wva^ÿøöøøøõõõóóóóóóõõõøøøúúúýýýÅÅÅ666AAAHHHHHHKMLKQOHQNFOLCLIBKHAJG@IF?HEHQN@IF$-*‚‹ˆ¼ÅÂT]Z +;DA096"=FCÖßÜ÷ÿýáêçOXU096'0-;DADMJ'$T]Z£¬©cli'$)2/1:7/85*30)2/(1.'0-'0-&/,$-*#,)#,)$-*%.+&/,;?B=AD@DGEILJNQNRURVYTX[eilaeh\`c[_bZ^aUY\KOREEGK?AM=>L<=L<=O<>R?AUACXBErY]t[_y^c~ch†in‹nsrw“sx˜szšsxšqw˜qv˜ou–ot—nt•ns’ioiBGR)/O(-M$*J#(N%+J&*< @"$?"A">:oBIÁ”›Š]d:1?? C#&B$&L,/T)2W(2U"+S(W(Z(Y$^&e)l#,|/9Œ;D“@HšDM¬U^¾inÇwvЃ}َˆÙ‰ÔŽ†Ó‡Ð’‡Ë‘…Ç’„À€»Œ|·Œ{²‰w«†s½˜…›|j[A4YC8UA8O=3J92E80C:5B=9IHD%'$045œ¥¤òüþçõöÜêíôþÿ÷óôÍÃ³§§Ä´´Ä´´Ê¶µÕÀ¿ÝÅÃÝÃÂßÁ¿ßÁ¿äÂÀçÅÃìÉÅíÌÇ׺´Ô»´ÓºµÎ·±Ç²­Å²¬Çµ±Çº´Á¶²kb]_WTÜÙÔýùöþýùóòð÷üøêùöÃØӭ½´ÉÄÀÕÐÂ×Ò¼ÑÌ´ÉÄ°ÅÀª¿º¨½¸«À»¬Á¼©¾¹¦»¶¦¼¹¤¾» ½¹ž»·›¸´˜µ±–³¯•²®”±­ª¦Š§£†£Ÿ‚Ÿ›œ˜~›—~›—›˜¦¤’¦¥”¨§•©¨’¦¥Œ Ÿ†š™‚–•€”““’~’‘~’‘€”“„˜—ˆœ›Žžž‘œ ˜‹’˜Šv}ƒirw_flXafFMSBKP>EK8AF4;A/8=.5;/484257138248248458457566669998:9487487=CAQWUbhfcqqm†‹p‘˜‚ ¨Ž¬´š·¿¨ÅͦÁʔ¯¸§±¥¯Œ¢­Š «Šž©ˆœ§ˆš¦‰š¤ˆ—ž‰–œˆ•›‡”š†“™†“™…’˜…’˜…’˜€“{ˆŽw„Šo|‚dqw]jp^im^hjckmckmaik_gickm|„† ¨ªqy{DLN!)+"$ " @CH=@E8;B25GDCLIQZW`kgeqmbql`oj^mh\kfZidXgbWfaWfaUd_Tc^Ve`XgbZidZid[fbLPO444&&&+++---+++)))&&&&&&&&&&&&&&&&&&&&&&&&&&&'&+.-265:87<549/.3*).'&+&%*)(-,+0.-2-,1(',"!& " """"""""""""""""""""""""########################%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,.,/-+.205,*/=;¤­ª÷ÿýöÿüóüù½ÆÃJSP9B?'$-63GPM(1.R[X¦£gpm )&+41-63,52,52,52*30+41*30(1.&/,%.+&/,'0-(1.<@C>BEAEHFJMKOROSVSWZUY\nruhlobfi_cf]adW[^LPSGGIKABN>?L<=L<=N;=P=?R>@T@BaKNeLPjQUrW\y^c‚ej‡jo‹lqlr‘mq“lq’nr•ns”pt—pu•qu›tyrNRV/4N*.M&+H$(L%*M*.> ">!#> "@ #@ D"yNU—žT[8 1 +><A#%@#%H*,O'/M"+J$J#P$R%R T^%f (|3<DK‰:@ƒ29§T\ىŒ¿qoÀsmÉ~xшÒŒ„Õ’‰Ö˜Î”ˆË–ˆÄ“„½Ž~¸|³Šx¨ƒp»–ƒ~l[A4YC8UA8O=3J92E80C:5B=9GFB$&#-12— ŸñûýëùúáïòôþÿþúûØÎϐ„„°¤¤Á±±»««¾ª©Êµ´Ë³±Ê°¯É«©Ä¦¤Â ž¾œš½š–»š•¼Ÿ™½¢›¾¢ž¸Ÿš´œ˜³ž™·¥¡»¬§Å·´cXTVNKÝØÔÿú÷ÿûøòîíòôóÞìì¿ÓÑ«½½­Á¿ºÌ̼ÐηÉÉ®ÂÀÀÒÒ¹Í˹ËË»Ï;ÐлÏͺÌ̺ÎÍÃÛÛÀÚÙ¼Ö׸ÒѵÏгÍ̲ÌͲÌË­ÇÈ«ÅħÁ¢¼»ž¸¹›µ´™³´™±±¢¶·¥¹º©»½©½¾¦¸º±²–¨ª£¤¡£Ž¢£¢¤”¨©œ®°¥¹º°ÂĸÇʺÃȺ¿Å²·½¦«±•š ƒˆŽsx~jouHMSEJP@EK;@F6;A27=05;038425713824824734734534444777798376487>DBRXVdjhfttqŠu–†¤¬®¶›¸À©ÆΨÃ̖±º“«µ‘©³¦±£®¡¬Œ «Ÿ«ŽŸ©Œ›¢š š Œ™Ÿ‹˜žŠ—Š—‰–œƒ–Œ’|‰|‰w„Šp}ƒlyp{oy{rz|rz|rz|qy{owy}…‡—Ÿ¡bjl=EG!)+"$! ?BG=@E925>69B>@LDFRRTaWYf]^pcdvhi}noƒtu‰yzqqllˆ\\xHH`;<=OSTioo‡›xw–ts’yx—{z™……¡¬’’¬§§––®”•ª€•fg{GHZ[]lWYhJL[QTguv’ª­Ì«®Í]`/2QknßâÿóöÿÆÉ衤֙¸nqILk^a€‘”³ÆÊç¾Âßsw’-1LIMh›Ÿº­±Ìšž¹¢¦ÁÝáü×Ûöx|—82SWrqu}œŠ¬µ¸×’±{~…ˆ§fiˆ£¦Åøûÿùüÿíðÿ‰Œ«'*I9<[Š¬§ªÉˆŒ©pt‘|€›’–±y}˜TXsMQlqu¼ÀÛØÜ÷x|—VZu·»ÖäèÿÊÎéx|—MQjœ ¹Ò×힣¹Š¥‚‡›sxŒŒ‘¤¦¬¼£©¹ˆŽœ}ƒlr~\cmY`jU\fYbgWccTc^Sb]Sb]Ud_WfaZid\kf]lg\kf\kf[jeZidYhcXgbZfbZea[dabkhenkcli`ifU^[BKH# &#%.+/856?<>GDLURXc_\hdYhcWfaUd_Ra\P_ZN]XM\WM\WKZUJYTL[VO^YQ`[O^YP[WEIH222(((------+++***%%%&&&&&&&&&&&&&&&&&&&&&&&&'&+.-265:87<549/.3*).'&+&%*)(-,+0.-2-,1(',"!& " """"""""""""""""""""""""########################$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,-+.,*-1/4+).=>>DFESYWIRO;DA/85+411:7=FCFOLKTQT]ZBEBFIFJMKORPTWSWZUY\z~swzjnqdhk^beVZ]KOREEGKBCN@@L>>J<Q=?\HJ`JMfMQlSWsZ^y^c~ch‚eiˆhmŠgkŠfjˆeiˆdh‡dh‡cg†cg›w{xUYU15K(,N*.G$(D $I),C&(: !=!B"%C#P).„[aÁ˜žzOV96=7> ";!"A$&I&,H (E"F"J!N#P!Q ^#)`"'u29ŠCI49r',—JPЄ†¾pn³f`¤YS«b[˅}䡘ࢗї‹Î™‹È—ˆ¿€¹Ž}µŒz¨ƒpº•‚ o[A4YC8UA8O=3J92E80C:5B=9DC?"$!*./“œ›ðúüîüýäòõóýÿëçèǽ¾wkk’††¡‘‘•……•€¡Œ‹¬”’±—–»›Ã¥£Î¬ªÕ³±Û¸´Ü»¶Ó´¯Õº³×»·Ô»¶Òº¶Ô¿ºÝÊÆäÒÎÝÏÌh]YVLJáÙÖü÷ôû÷ôñíìïñðë÷÷ÜîîÕäçÖèèàïòáóóßîñÚììÝìïÕççÖåèØêêÝìïÙëëÚéìÙëí×ìïÒêìÎæêÉáãÆÞâÄÜÞÃÛßÃÛÝÄÜàÂÚÜ¿×ÛºÒÔ´ÌЮÆÈ©ÁŨ½À­¿Ã°ÂƶÅʵÇ˲ÁƧ¹½Ÿ®³–¨¬”£¨’¤¨–¥ªš¬°¦µº²ÄÈÀÏÔÉ×ÚÈÍÓÅÈͽÀů²·œŸ¤‡Šsv{hkpILQFINADIM;=J.0=)+:78JNOdnn†„„žzy˜rq{z™zy˜ƒƒŸ‘‘­’’¬ŒŒ¦‘‘©žž¶˜™®€”efzEFX]_nXZiIKZNQdcd€ ¿¬¯Îkn69Xcf…×ÚùóöÿÚÝü¥¨Çž¡À‚…¤WZygj‰–™¸¿Ã೷Ԑ”¯TXsNRm„ˆ£Ÿ£¾•™´—›¶ÊÎéÎÒítx“67W[vlp‹qu„£ÇÊ陜»mp‡Š©hkŠ‘”³÷úÿùüÿâåÿy|›"%D7:Y’±¶¹ØŒ­nrz~™’–±x|—KOjBFavz•×ÛöËÏêmqŒae€ÈÌçÜàû¹½Ø|€›cg€›Ÿ¸ÆË᚟µ“˜®†šhm‹£±·Ç¨®¾ˆŽœ{flxRYcNU_KR\R[`KWWHWRGVQFUPHWRJYTM\WO^YP_ZP_ZO^YO^YO^YO^YO^YQ]YT_[V_\^gdcliajg^gdR[X?HE# $-*,525>;@IFLURT_[S_[P_ZN]XL[VIXSFUPDSNCRMGVQDSNCRMFUPJYTKZUIXSITPAED111)))------,,,***%%%&&&&&&&&&&&&&&&&&&&&&&&&'&+.-265:87<549/.3*).'&+&%*)(-,+0.-2-,1(',"!& " """"""""""""""""""""""""########################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%,,,,,,,,,,,,,,,,,,,,,,,,-+.,*-1/4+).>=C<=B==EŒ–ëïøÜàé½ÄξÅÏÊÒÝÊÒÝÎØäÐÚãÛâèÝåçòö÷ùûúÿýþíè千‚oa^›†ƒ¢‰„¬‹¸—Å šÏ¨¡Ù®§Ý²¬íÄÂîÄÅñÇÈõËÌøÐÐüÔÔþØ×ýÚØóÐÎñÏÍÿâßÿìéÿöòÿíémPL?*'ÿøöøøøõõõóóóóóóõõõøøøúúúóóóÓÓÓ___???eeeXXXLLLLNMntrpyvpyvjspajg]fcbkhhqn€‰††Œmvs¢«¨ËÔџ¨¥gpmenk˜•äíêùÿÿðùöèñîôýúôýúåî랧¤r{x†Œ³¼¹ˆ‘Ž–ŸœåîëÎ×Ԛ£ £¬©¥®«š£ ‰’zƒ€mvsdmj?HE>GD;DA9B?8A>8A>9B?9B?=AD?CFBFIGKNLPSPTWTX[VZ]ƒ‡Šz~osvgkn_cfUY\HLOBBDKBCL@@L>>J<Q=?S?AXBE_FJdKOjQUnSXsVZwX]yY\zZ]{[^}]`~^a_b_b•uxuUXP03F&)M-0E%(= E')E+,8 ; C%'D!%U15‹diÀ—yPV=:? 3956E&+B"'B#A!CG!N #R$Y"'Vd&+x7;r-0c |48©_`Ãxu¯b\€5/‚92Åwö³ªê¬¡Ò˜ŒÐ›Ê™ŠÀ‘º~¶{§‚o¹”¢ƒq[A4YC8UA8O=3J92E80C:5B=9CB> "(,-™˜îøúðþÿåóöóýÿþúûàÖד‡‡·««ÐÀÀʺºÐ¼»áÌËêÒÐìÒÑñÓÑòÔÒõÓÑòÐÎñÎÊîÍÈæÇÂéÌÆëÎÊçËÇâÉÅäÌÈì×ÔóáÝïàÝl^[TIGá×Õüôòýøõøòò÷÷÷ìöøëùüìúýïýÿòÿÿðþÿîüÿïýÿíûþèöùçõøìúýîüÿíûþìúýìûþÞïöÚíóÕèîÐãéÍàæËÞäËÞäËÞäÒåëÑäêÏâèÊÝãÂÕÛºÍÓ³ÆÌ°ÁÈ°¿Ä´ÂŹÆ̺È˵ÂÈ«¹¼ ­³™§ª‡”šˆ–™š –¤§¤±·¶ÄÇÆÓÙÓÜáÀÃÈ¿ÀŸ·½©ª¯–•›~„kjp^_dLKQHINDCI>?D:9?56;439327726824713713623512312222777798487598@FDV\Zhnljxxw•}ž¥Š¨°Ž¬´™¶¾¬ÉѪÅΑ¬µ†ž¨…§ƒ™¤€–¡• ‚–¡…—£‡˜¢z‰z‡z‡y†Œx…‹x…‹w„Šw„Š~‹‘y†Œvƒ‰vƒ‰r…lyjw}oz~oy{owymuwpxzpxzfnpbjlnvxMUW3;=!)+#% :=B58=.18*-4-0969BACOIKWTVc[]jdewkl~op„qr†tu‰vwŒttvv’hh„RRjSTidewbdsQS`/1>#%4-.@XYn‚‚šŸŸ¹€ŸlkŠpoŽ‚ €€œ‰‰¥££½––°~~–‰‰¡¢£¸…†škl€_`regvKM\MO^dgzjk‡or‘{~sv•adƒbe„°³Òíðÿòõÿ´·Ö}€Ÿ„£Œ®‹Ž­œŸ¾©­Ê‘•²›Ÿºº¾Ù|€›_c~“®Ž’­’–±¡¼³·Òpt'+F.2MNRmX\wRVqˆ‹ªâåÿ­°Ïz}œ­°Ï–™¸hkŠíðÿùüÿéìÿRUt -GJiËÎíßâÿ§«Èdh…dhƒ‹ªvz•,0K7;V”˜³âæÿ¦ªÅMQlgk†æêÿðôÿ³·ÒˆŒ§koˆ€„‘–¬‘–¬ˆ£…Šž~ƒ—|”ˆŽž¡§·˜ž¬u{‡U[g8?I=DN>EO@IN>JJMH>MH?NI?NI@OJAPKBQLDPLHSOKTQOXUS\YV_\S\YLURENK!&#&/,096;DACLIHQNJUQJVRGVQFUPDSNBQL@OJ?NI>MH=LG?NIAPKCRMDSNFUPHWRMXT6:9555222111222333333111))))))((('''&&&%%%$$$$$$)(-.-243865:327.-2*).(',&%*(',*).,+0+*/(',$#(!!# " $$$$$$$$$$$$$$$$$$$$$$$$########################""""""""""""""""""""""""$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''''''''''''&$'/-01/4427?>DJKPGGO}€‡ÌÐÙÂÆÏ»ÂÌÁÈÒÈÐÛÎÖáÔÞêÜæïÝäêåíïðôõùûúüúûôï욐†xuÝÈÅáÈÃæÉÅêÉÂîÉÃîÇÀðžïľëÂÀëÁÂêÀÁêÀÁèÀÀç¿¿æÀ¿äÁ¿ß¼ºß½»Þ¿¼èÉÆÿâÞÿïërn2çßÝûûûõõõîîîóóóôôôùùùùùùÂÂÂÊÊÊØØØÖÖÖíííøøøúúúôöõõûùòûøñú÷ðùöî÷ôìõòëôñêóðòûøïøõêóðâëèÚãàÓÜÙÍÖÓÊÓÐÈÑÎÉÒÏÈÑÎÃÌɾÇļÅ¿ÈÅÃÌɶ¿¼µ¾»´½º³¼¹³¼¹³¼¹³¼¹´½º§°­¤­ªž§¤”šˆ‘Ž|…‚qzwktqW`]V_\S\YOXUKTQGPMENKCLI@DGGKN?CF=ADUY\TX[LPSlps«¯² ¤§y}€vz}cgjW[^OSV==?D>>G=Q=?R>@U?BWADYCF\CG^DGdGKeGIfHJiKMlNPqSUuWYxZ\œ~€gIKE')B$&=!=!D&(D')C++6E+,L/1B"%Q-1oHM}V[Q*/F$941..16?"&@"$88AJ "L"R!$[')^&)b&(d$%]e#%‚<<Ç|y˜KEm"G@Åwۘã¥š×‘Ì—‰Ã’ƒÂ“ƒ»¯†t­ˆu´|®}tZMQ;0ZF=O=3I81E80A83B=9JIE)+(#$ˆ‡ìöøðþÿëùüòüþóïðìâ㫟Ÿ¸¬¬ÛËËßÏÏäÐÏäÏÎåÍËèÎÍëÍËëÍËïÍËñÏÍóÐÌñÐËçÈÃçÊÄéÌÈèÌÈáÈÄàÈÄëÖÓûèäèÖÔSEBWLJðæäÿù÷øóðõïïôòóéîòèñöëôùíöûíöûìõúêóøèñöôýÿñúÿïøýðùþñúÿïøýêóøäïóïüÿê÷ÿãðøÚçïÒßçËØàÇÔÜÅÒÚÇÔÜÂÏ׺ÇÏ°½Å¦³»Ÿ¬´š§¯—¤ªšžšœ™žšœ–›‰“•„’‚ŒŽox}s}x†{…‡}†‹€ŠŒ…Ž“Š’•€…zy~sqvhgl^\aPOTDBG:9>649549649549649549649649504602602602512512312222222576154598175PVTlrpx††~—œ §Š¨°®¶˜µ½º×ß¿Úマ§d|†i‹p†‘rˆ“r†‘p„p‚Žq‚Œjy€kx~jw}iv|hu{hu{gtzgtzcpvant\ioXekUbhTagUbhWbfR\^T\^U]_U]_U]_S[]PXZOWY.68%-/#% ;>C69>.18*-4,/858AACOIKWVXe\^kefxlmpq…rs‡uvŠwxyy•yy•jj†VVnXYnhi{dfuQS`-/<"$3/0B^_tŽŽ¦©©Ã„ƒ¢gf…ts’‚ «¦¦À‘‘«yy‘‡‡Ÿ¦§¼‹Œ stˆghzgixHJYPRaqt‡yz–knsv•{~loŽ_b¨«Êïòÿõøÿº½Ü‚¡wz™‚…¤”—¶­°Ï¯³Ð{œ“—²ÑÕ𜠻ei„ŠŽ©’–±“®”˜³¨¬Çrv‘9=X?C^NRmLPkCGbŠ¬éìÿª­Ìkn­°Ïž¡À]`ÆÉèùüÿòõÿdg† .7:Y¿ÂáÝàÿ¤¨ÅQUrOSnz~™pt,0KAE`¨¬Çéíÿ”˜³JNi‚†¡êîÿó÷ÿª®Éptkoˆvz“†‹¡‘–¬™ž´šŸ³„‰y~‘†Œœ£³•›©u{‡V\h:AK>EO>EO>GL=II;JE;JE;JE;JE;JE;JE;JE;JE;JEMH>MH?NIAMIDOKGPMJSPOXUQZWNWTHQNBKH(%#,)*303<9;DABKHFOLGRNLXTJYTIXSHWRFUPETODSNDSNBQLCRMETOGVQHWRJYTKZUOZV6:9666222111222444333222++++++***)))(((''''''&&&*)./.354976;438/.3+*/)(-&%*(',*).,+0+*/(',$#(!!#""$"""""""""""""""""""""################################################$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%(((((((((((((((((((((((()'*/-00.3427@?EKLQFFNz}„ÂÆϽÁÊ»ÂÌÃÊÔËÓÞÐØã×áíÞèñÞåëåíïïóô÷ùøûùúõð힔“‹}zØÃÀÝÄ¿ãÆÂéÈÁîÉÃðÉÂòÇÀòÇÁòÉÇòÈÉðÆÇïÅÆìÄÄëÃÃéÃÂæÃÁåÂÀäÂÀãÄÁéÊÇüßÛÿëçso6!äÜÚúúúöööîîîóóóôôôøøøùùù®®®¯¯¯ÊÊÊËËËØØØÙÙÙÓÓÓÏÑÐÏÕÓÍÖÓÎ×ÔÎ×ÔÏØÕÏØÕÐÙÖÐÙÖÏØÕÏØÕÎ×ÔÌÕÒÊÓÐÉÒÏÈÑÎÇÐÍÑÚ×ÒÛØÓÜÙÑÚ×ÏØÕÍÖÓÍÖÓÍÖӼŻÄÁ¹Â¿¶¿¼´½º²»¸±º·°¹¶«´±¨±®¢«¨™¢Ÿ–“Š‡w€}qzwZc`Yb_W`]T]ZQZWMVSKTQJSP>BE;?BAEH>BEPTWNRU>BElpsÅÉ̸¼¿†Š{‚kor[_bIMP224D>>G=S=@U?BV@CY@C\BE]CDaDFbHIiLNmSTtWYu[\su_EFD')B()C&(C)*D')9 @+*J54H00B%'D$'M*.W37\5:O(-C#841,+.8"$=')=%%55=D EL !V&&R U_%$YZs20˜NK¤WQª_YÇ~wݗä¡˜é« ß¥™Î™‹Ä“„“ƒ»±ˆv¯Šw´|®}tZMR<1[G>O=3J92E80A83B=9IHD*,)#${„ƒìöøðþÿìúýòüþÿþÿüò󺮮ĸ¸åÕÕç××éÕÔèÓÒìÔÒîÔÓðÒÐîÐÎðÎÌðÎÌðÍÉïÌÈíÌÇìÍÈîÏÌíÐÌçËÈåÌÈðØÖþéæëÙ×RC@QCBëàÞÿüûÿøöúñòû÷øõöúóøüõøÿôùýõøÿóøüóöýñöúøûÿôùýñôûîó÷íð÷èíñâåìÛàæÌÓÛÈÏ×ÁÈÒºÁɳºÄ®µ½«²¼©°¸™ ª–¥—¡Š‘™…Œ–‚‰‘€‡‘†Žty}uz}vz}uz}tx{otwmqtjor\`c_dgeilhmplpsotwuy||}…ƒˆ|€wrxlgk`[aSNRE@F<7;839837839837839837839837602602602602512512312222222576154598175PVTlrpx††~—œ€¡¨‹©±®¶˜µ½¼ÙáÀÛ䃞§Xpz]udz…f|‡fz…dxƒdv‚ev€crydqwcpvbouantant`ms`ms\ioZgmVciS`fP]cO\bO\bQ\`OY[QY[RZ\RZ\QY[OWYMUWLTV-57$,."$ =@E7:?.18),3+.758A@BNHJVXZg_anhi{noqr†stˆvw‹xyŽ~~š{{—kk‡ZZr_`umn€dfuNP]*,9!#212Dgh}µ¸¸Òˆ‡¦`_~ut“€Ÿ„„ ••±§§Á§ttŒƒƒ›£¤¹Š‹ŸyzŽpqƒikzFHWWYh‰ŒŸ¬il‹kn†‰¨y|›WZy ¿ô÷ÿòõÿµ¸×{~nqz}œ¢¥ÄËÎíÊÎëgkˆ}œØÜ÷½ÁÜlp‹‚†¡”˜³‚†¡ŠŽ©šž¹vz•TXsVZuOSn@D_6:U—š¹õøÿ´·Ömp¹¼Û¶¹Ødg†¥¨Çòõÿòõÿtw– /'*I³¶Õßâÿ§«ÈCGdAE`ptqu/3NOSn¼ÀÛèìÿ„ˆ£EId ¤¿ïóÿôøÿœ »UYtgk„pt|—“˜®´¹Ï·¼Ð”¨w|‡–œ¬‘—¥sy…W]iJF@KGBKHENKIROKTQIROCLI=FC)2/,522;87@=vz}ÖÚÝËÏҐ”—…ˆx|hloMQT335D>>F>R<>T;>U==Y?@]EEeKLkSSsYZv^^•{|gOOE+,76>&&F,-=%%T?>s^]H00(A#%N+/M)-J&*K'+A!83/,+-=++9''7#"6! 66<C! CR)'Q##LUV Vd'$e™LFˀzí¤î¨ ßœ“Üž“ם‘ÑœŽÆ•†Á’‚»´‹y²z´|­Ž|v\OS=2\H?P>4J92E80A83B=9IHD,.+#$u~}ìöøðþÿìúýòüþþúûûñò¹­­ÁµµåÕÕç××èÔÓçÒÑï×ÕïÕÔñÓÑðÒÐòÐÎðÎÌðÍÉðÍÉôÓÎóÔÏõÖÓóÖÒîÐÎíÑÎõÝÛÿêçíÙØXFDL>=ÝÒÐÿûúþöôõìíöðòìêïèçìäáèÝÜáØÕÜÓÒ×ÑÎÕÎÍÒ¨¥¬£¢§Ÿœ£—–›’–ˆ‡Œ€}„yx~rqynnviiscck^^h[[cYYcYYaeeoddlbblaaiaakaaiccmedlkjokkmmknllnkilhhjgeheegljmpprwux{{}€~„„†‹‰ŒŽ‘‰ˆ‚„|vzpjlb\`TNPF@D<68937935937935937935937935602602602602512512312222222576154598175PVTlrpx††˜‚£ªŒª²­µ™¶¾¿ÜäÃÞ炝¦G_iLdnRhsTjuUitRfqRdpTeoXgnXekXekWdjVciUbhUbhTagQ^dP]cMZ`JW]GTZFSYFSYHSWISUKSULTVLTVKSUJRTGOQFNP,46#+-!# ?BG8;@.18(+2*-647@@BNHJVZ\iacpij|op‚rs‡tu‰vw‹xyŽ›zz–jj†]]ucdymn€`bqHJW')6!012Dlm‚¦¦¾ÁÁۋŠ©[Zyonƒ‚¡ŠŠ¦––²££½©xx€€˜•–«€•wxŒst†hjyACR]_nž¡´£¤Ànqor‘“–µ€ƒ¢MPo’•´ùüÿòõÿ¯²Ñz}œsv•y|› £ÂÙÜûæêÿlpae€ÀÄßËÏêvz•w{–Ž’­w{–„ˆ£”¯{škoŠei„OSn?C^;?Z˜›ºæéÿ¹¼Û{~»¾ÝÀÃâux—”—¶éìÿÞáÿnq /#&E°³Òéìÿµ¹Ö)-J*.Ifj…tx“:>Yjn‰Ýáüôøÿ}œEId¯³Îôøÿêîÿ†Š¥KOjae~tx‘z•–›±ÄÉßÊÏ㖛¯v{ŽˆŽž–¦Œ’ rx„Y_k?FPBIS?FP=FKJF?JF@IFBKHFOLHQNGPMAJG;7@=:C@=FC?HE@IF@IF?JFLXTJYTKZUKZUKZUKZUL[VL[VM\WKZUKZUL[VN]XO^YN]XP[W598444000///111222222000////////////............-,121687<:9>76;216.-2,+0&%*(',*).,+0+*/(',$#(!!#&&(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''++++++++++++++++++++++++)))))))))))))))))))))))),,,,,,,,,,,,,,,,,,,,,,,,0.12030.3427CBHLMRBBJory¬°¹µ¹ÂÀÇÑËÒÜÒÚå×ßêÞèôäî÷ãêðåíïêîïòôóûùúûö󨞝˜Š‡ßÊÇäËÆèËÇìËÄïÊÄïÈÁðžïľöÍËõËÌóÉÊðÆÇëÃÃèÀÀ忾⿽æÃÁæÄÂéÊÇêËÈóÖÒÿé塄€R=:×ÏÍ÷÷÷ùùùïïïðððñññ÷÷÷öööÁÁÁžžžÆÆÆÑÑÑÙÙÙÝÝÝÕÕÕàâáÑ×ÕÏØÕÏØÕÐÙÖÐÙÖÐÙÖÑÚ×ÑÚ×ÐÙÖÐÙÖÏØÕÏØÕÏØÕÏØÕÏØÕÎ×ÔÑÚ×Î×ÔÌÕÒËÔÑÌÕÒÊÓÐÄÍÊ¿ÈŽÆýÆþÇĽÆüźÃÀ¸Á¾·À½«´±§°­ž§¤“œ™†Œzƒ€qzwktq`if`if_he^gd]fc\eb[da[daRVYDHKJNQLPSLPS6:=047rvyæêíâæ颦©‰~‚…jnqHLO+,.C?>F>>ZEDdLLkVUt\\va`“{{fQP7 +M87pXXzed͹¸ÝÉÈt_^,F(*N.1F#'B"H$(? 861,-1;-,1#".5#!:'#=%#@'#H*(:P*'b97^1.Q!S"[(%_%!j#@:¾smù³«ç¤›ÝŸ”Þ¤˜ÒÉ˜‰Â“ƒ»·Ž|´|µ}°‘x^QU?4]I@Q?5K:3E80A83A<8HGC/1.#$lutìöøðþÿìúýñûýúö÷ûñò·««½±±ãÓÓç××æÒÑæÑÐæÎÌåËÊéËÉìÎÌñÏÍïÍËñÎÊôÑÍùØÓûÚÕüÚØøÙÖôÕÓó×ÔùßÞÿéççÒÑeSQL<<±£¢Ë¿¿»±°¨žŸ —˜Š††€„ƒz}w{|sxysw|sxztx’‰ŽŠŽ‘ˆŽˆŒ†‹‰ƒ‡ˆ„ƒ|ƒ‰‘Ž‡Šƒ‹†‡ƒ|„z‚z‚z‚unvtmutmutmuvowyrz|u}}v}ztvztt|stztt{rsxrrypqwqq‚yz…Ž…†’ŒŒ™‘——¦ž«¢£™“‡Š„y}tknf[_VMPI>B?69<15;25<15;25<15;25<15;25602602602602512512312222222576154598175PVTlrpx††€™ž…¦­Ž¬´Ž¬´™¶¾ÃàèÆáꁜ¥8PZ=U_CYdF\gFZeDXcDVbEV`L[bLY_LY_KX^JW]JW]IV\IV\FSYERXCPVANT?LR>KQ=JP>IMCMODLNEMOFNPEMOCKMAIK?GI*24!)+ " ADI9MH>MH>MH>MH>MH>MH>MH=LG=LG>MH?NI@OJ@OJAPKCOKDOKENKFOLIROKTQJSPFOLBKHBKHDMJENKGPMGPMFOLENKCNJMYUKZUKZUKZUKZUL[VL[VL[VKZUHWRETOFUPHWRIXSGVQGRN376222...---///000///...............////////////-,121687<:9>76;216.-2,+0&%*(',*).,+0+*/(',$#(!!#'')'''''''''''''''''''''************************++++++++++++++++++++++++........................,,,,,,,,,,,,,,,,,,,,,,,,////////////////////////203536205649DCIKLQ>>Fknu³·À½ÁÊÇÎØÏÖàÔÜçÛãîàêöãíöãêðäìîèìíðòñúøùü÷ôª Ÿ™‹ˆÞÉÆâÉÄæÉÅêÉÂíÈÂíÆ¿îüí¼éÀ¾é¿Àé¿Àé¿ÀèÀÀèÀÀçÁÀåÂÀ⿽âÀ¾éÊÇìÍÊô×Óÿð찓fQNÐÈÆõõõûûûðððïïïðððõõõõõõÀÀÀ›››ÃÃÃÑÑÑÜÜÜÞÞÞÍÍÍÏÑÐ×ÝÛÕÞÛÖßÜÖßÜ×àÝØáÞÙâßÙâßÙâßÙâßØáÞØáÞ×àÝ×àÝÖßÜÖßÜÊÓÐÆÏÌÂËÈÁÊÇÄÍÊÅÎËÄÍÊÁÊDZº·±º·°¹¶¯¸µ«´±§°­¢«¨Ÿ¨¥¢«¨¦£“œ™†Œy‚nwtenk`ifNWTPYVR[XV_\Zc`^gdajgbkh?CF=AD<@CNRUMQT+/2158bfiäèëèì﮲µ‘•˜‚†‰osvMQT./1C?>D?R];OZ;MYC/29'*1(+425>?AMHJV[]jacpij|op‚qr†qr†stˆtuŠww“ssii…aaycdydewRTc;=J02?*,;78Jgh}µ¾¾Ø‘¯fe„dc‚ˆ‡¦••±¬••¯““­„„œ~~–‚—rs‡noƒhi{VXg,.=KM\“¦«¬ÈŽ‘°–™¸§ªÉƒ†¥LOnˆ‹ªÜßþàãÿ»¾Ý¤§ÆœŸ¾z}œwz™º½Üñõÿ”˜µNRm“®Þâý ¤¿ei„z~™‘¬‰¨•™´‹ªuy”TXsAE`VZumqŒŽ‘°±´ÓÐÓò²µÔ¯²Ñ´·Ö©¬Ë¬¯ÎÒÕôœŸ¾UXw=-0O§ªÉùüÿâæÿ#'D2SWr`dAE`“—²ëïÿßãþ„ˆ£VZu¬°Ëòöÿ¼ÀÛW[vX\wvz“€„„šˆ£¤©¿­²Æ‹¤sx‹€†–‹‘¡‰qwƒ[amDKUIPZGNXFOTEQQCRMCRMCRMCRMCRMCRMCRMFUPGVQGVQHWRIXSIXSJYTLXTOZVOXUOXUR[XT]ZS\YPYVLURQZWR[XT]ZU^[T]ZS\YQZWOZVS_[Q`[Q`[P_ZP_ZP_ZO^YO^YUd_P_ZL[VM\WP_ZP_ZL[VKVR/32...+++***+++,,,,,,******++++++,,,,,,---......,+010576;98=65:0/4-,1+*/&%*(',*).,+0+*/(',$#(!!#'')'''''''''''''''''''''************************------------------------////////////////////////........................11111111111111111111111131475864986;CBHHIN;;ChkrÆÊÓÍÑÚÐ×áÒÙãÕÝèÝåðàêöáëôãêðãëíæêëïñðúøùü÷ô¨ž–ˆ…ÙÄÁÞÅÀäÇÃêÉÂïÊÄñÊÃôÉÂôÉÃ÷ÎÌöÌÍôÊËñÇÈíÅÅëÃÃçÁÀäÁ¿ãÀ¾á¿½éÊÇíÎËô×Óÿò–lWTÈÀ¾óóóüüüñññíííîîîôôôóó󪪪ŒŒŒ¥¥¥¨¨¨³³³´´´¦¦¦£¥¤–”–“–“Œ•’‹”‘Š“Š“‰’€‰†Š‡‚‹ˆ„Š†Œˆ‘Ž‰’Š“‘š—˜•–“–“‘š—•ž›— ˜¡ž¶¿¼¹Â¿¾ÇÄÂËÈÅÎËÅÎËÄÍÊÃÌÉÇÐÍÁÊǸÁ¾¬µ²¡ª§— ™––“Š‡ƒŒ‰†ŒŠ“Ž—”“œ™–Ÿœ˜¡ž“—š–š‰”˜›ƒ‡ŠNRUEILY]`Üàãåéìµ¹¼œ £Œ“~‚…^be89;C?>D?=UA@ZFEaMLhTSnZYr^]zfe]IH%+mldz²æÒÑÿðîÿöô½«©@,+3< >!C $B#>!> "@#%>&&:&%>,*B416,*80-$ L?9ˆytjeF.*84sPL¢}wvMGJS("g2,~942,€5/ŠA:ªd\Ӑ‡â¤™ç­¡Ê•‡Ê™ŠÅ–†½’»’€·’º•‚½žŒ{aTXB7`LCSA7L;4F91A83A<8GFB685"#Zcbìöøñÿÿíûþñûýþúûÿùú·««µ©©ßÏÏèØØéÕÔì×ÖÙÁ¿Ò¸·Óµ³Ö¸¶Õ³±Ìª¨Ë¨¤Ï¬¨Ì©¥Ð­©Ð­«É§¥Ä¥£Å§¥È¬«Æ®¬Æ±°¡Œ˜††°  ½¯¯¾²²»¯±³§©½­®¾¬¬½ª¬½««½ª¬½««¿¬®¿­­Ä±³Å³³Ã°²¾¬¬¶£¥®œœ©–˜§”–¨•›¦“™¢•Šš‡˜…‹—„Š—„Š‘~„}ƒŽ{z€Ž{|‚‘~„“€„}}Ž|x‹yu‰wsˆvrˆvrˆvr‰ws“}˜†‚Ÿ‰¦”«™•±Ÿ›¸¦¢»¬©¨ššœ’Œ€‚{oqk_a\PROCEG;==13=13=13=13=13=13=13<238/2602602602512512312222222576154598175PVTlrpx††šŸ‹¬³“±¹«³š·¿ÌéñÍèñš£,DN1IS8NY:P[:NY8LW8JV9JT>MT>KQ>KQ=JP?Qcdy““«¹¹Ó—–µut“jiˆŠ‰¨——³‘‘­’’¬§‚‚š—yzlmhi}abtPRa')8BDS„—¤¥Á ¿«®Í­°Ï‰Œ«\_~‡Š©»¾ÝÂÅäÌÏîÈËê«®Ítw–jmŒ«®Íãçÿ›Ÿ¼RVq…‰¤èìÿÁÅàlp‹nrŽ’­“®ž¢½“—²mqŒ=A\37R^b}€„Ÿ“–µ°³ÒãæÿÄÇ橬˪­Ì´·Ö¶¹ØÆÉ萓²`c‚*-L(+J’•´ô÷ÿðôÿ26S +AE`HLgDHc¯³ÎôøÿÚÞù”˜³^b}—›¶ßãþ³·Òae€X\w~‚›„ˆ¡‡Œ¢„‰Ÿ’¨˜±Š£{€“‚ˆ˜“£Šžrx„[amELVLS]LS]LUZKWWIXSIXSIXSIXSIXSIXSIXSP_ZQ`[Q`[Ra\Sb]Tc^Tc^Vb^[fbZc`Zc`\eb^gd^gd[daXa^`ifajgclidmjdmjdmjbkh`kg`lh]lg\kf[jeZidYhcXgbWfaapk\kfWfaWfaZidZidUd_S^Z,0/+++'''&&&((()))((('''&&&''''''((()))***++++++*)./.354976;438/.3+*/)(-&%*(',*).,+0+*/(',$#(!!#%%'%%%%%%%%%%%%%%%%%%%%%''''''''''''''''''''''''++++++++++++++++++++++++////////////////////////000000000000000000000000333333333333333333333333314:8;:8=;9>BAGDEJ88@gjqÞâëßãìÙàêÔÛåÖÞéÝåðàêöÝçðâéïâêìåéêïñðúøùûö󥛚‘ƒ€×¿ÜþäÇÃëÊÃòÍÇõÎÇùÎÇùÎÈîÅÃìÂÃ漽ߵ¶×¯¯Ð¨¨Ê¤£Å¢ Ç¤¢Â žÈ©¦Ê«¨Í°¬æÉŋnj=(%û¹ñññþþþñññìììíííôôôòòò˜˜˜‘‘‘¤¤¤¢¢¢³³³ÀÀÀÅÅÅÈÊÉáçåàéæâëèäíêçðíéòïëôñìõòìõòíöóî÷ôðùöòûøóüùõþûõþûìõòíöóî÷ôïøõïøõðùöòûøôýúéòïêóðêóðéòïåîëßèåÙâßÕÞÛÄÍÊÀÉƸÁ¾¯¸µ§°­¡ª§¦£›¤¡ ©¦¢«¨¦¯¬¬µ²±º··À½»ÄÁ½ÆÃËÏÒÒÖÙÕÙÜäèëæêíËÏÒÂÆÉÐÔ×éíðîòõÁÅÈ«¯²™ ‘”imp457A@>C?TB@WEC\JHbPNgUSjXVq_]cQO,4" “ʸ¶ÚÈÆÿîìóáßxfd '?%&A#%B"%C $B#@ #B$&E+,E--C/.H64N@=@85=84*%"I>8ylfp]WA,';8cB=†c]pIBS*$T+%a/(o*%s& t)#j!v0(›XO²tiĊ~ďÊ™ŠÇ˜ˆ¾“‚¼“¸“€½˜…Ƨ•}cVYC8aMDTB8L;4F91A83A<8GFB8:7"#S\[ìöøñÿÿíûþñûýôðñôê뚎Ž‡{{¤””¤””‰ˆž‰ˆ´œš±—–¸š˜Ä¦¤Í«©Ë©§Ñ®ªÚ·³àº·â¿»á¾¼Ú¸¶Õ¶´×¹·Ø¼»Ôº¹Ö¾¾Ë·¶È¶¶Ç··Ì¾¾ÌÀÀË¿ÁȺºÆ²³É´³Ì¶¸Ïº¹Ò¼¾Ó¾½Ô¾ÀÔ¿¾Â¬®Ä¯®Å¯±Á¬«º¤¦´Ÿž²œž±›²™¯–œª‘—¥Œ’ ‡œƒ‰š‡š‡‘x~w}w}w}’y•|‚—~„™€ƒ•€}“~yzuŒwrŠup‰toŠupŠup˜ƒ~ˆƒ£Ž‰©”®™”³ž™º¥ ¾«§«›œ ‘”„pso`c`QTTEHL=@?03?03?03?03?03?03?03=138/2602602602512512312222222576154598175PVTlrpx††‚› Ž¯¶”²ºŒª²›¸ÀÏìôÐëô~™¢+CM0HR7MX9OZ9MX7KV7IU8IS3;=%-/%'FIP>@LHJWZ\i`bqghzlmnoƒnoƒop…pq†ssttppŠiief{_`tMN`9;JDFU>?QCDXbcx¥µµÏœœ¸qpŠ‰¨––²””°‘‘«‡‡¡~~–€€˜qr‡fg{cdx\]oNP_(*9ACR|’žŸ»¦©È·ºÛ°³ÒŽ‘²jmŒˆ‹¬¢¥Ä³¶×áäÿçêÿ²µÔknadƒ ÁÍÐ»TXs}žëïÿØÜùvz•dh…ƒ‡¢‘•²¥©Ä™ºgk†-1N(,G`d‰ª”™¶³¸ÕëðÿÆË衦ġ¦Ã²·Õ´¹Ö½Âà”±ot’49V$B„¡ìñÿõúÿNRo4<@]<@[GKh¾ÂÝòöÿÏÓÆ`dƒ‡¤ÌÐ붺×uy”UYv~‚‰¦Ž“©ˆŠ¡ƒˆž’”©”¨ˆ‹ž‡“¤‹‘Ÿtx„[amGKVNU_QU`QX`NZZNZXNZXNZXNZXNZXNZXNZXYecYecZfdZfd[ge\hf]ig]igblkbkjajiclkenmenmclk`ihirqjsrmvuoxwpyxoxwnwvlvujvriuqhtpfrndplbnjami`lhdpl^jfYeaYea\hd\hdVb^Q\X*.-)))%%'$$$&&('''&&(%%%$$&$$$%%'&&&'')((())+))+)(--.343956;328-.3*)/'(-&%+'(-*)/+,1+*0'(-$#)! %%%'%%%%%'%%%%%'%%%%%'%%%$$&$$$$$&$$$$$&$$$$$&$$$((((((((((((((((((((((((////////////////////////111111111111111111111111444444444444444444444444203;9<=;@=:AA@FCBJ66@firïñýëíùàäï×ÛæÖÝçßæðáèòÝäìáéìáéëåéêïðòûùúúôô¢˜—~²š³š–²•‘°ŽŒ«…‚¤}x¡urqn’fe“gf–jišnmtr¡xv¤{y¥}{ª„¦€}±ŽŠ»˜”Å¢žäþlh@'#À·¸ððòþþÿññóììîííïóóõññóççéòòôÿÿÿòòôùùûúúüýýÿûüþðööí÷öïø÷îø÷ðùøïùøðùøðúùëôóéóòéòñçñðæïîäîíäíìãìëãéççíëêðîéïíäêèàæäßåãàæäÖÜÚØÞÜÛáßÜâàÛáßÖÜÚÑ×ÕÎÔÒÅÎÍÁÊÉ»ÃÅ´½¼¯·¹¬µ´ª²´ª³²·¿Á»ÄÃÃËÍÍÖÕÙáããìëëóõñöùõøýö÷üüýÿþÿÿþÿÿûüÿêëðøùþíîóîïôÄÅʵ¶»¨©®¢£¨|}‚;:?D>>F>SA?SDAVGD[KK_OObRRdTTeUU2""6((“……Á³³ÓÅÅÿûûÞÎÏC342F-1B%)A"'>#?$A!&E&+K.0K12K33Q<;XFDNDB>951,(4-'B94OA>I:5@-)8#E,(Q51T73V72\;6Y83V*'l1-l)#s/,k("f#u2,ŠIC®ohȀΕŠË—ŠÃ’„¿‘‚¼‘Á—‡Îªœ€bX]B;eLEW@:M:4G83A62B:7IED:::"#QVYìöøóþÿîûÿñûýúøùÿøù¬¢¡£——ξ¾ÝËËÞÊÉçÏÏáÇÆÜÀ¿ÞÀ¾éÊÈëÌÉçÅÃéÈÃòÑÌîËÇòÏËðÏÊéÇÅäÅÂçÊÆçËÈâÉÅÞÆÄßÊÇÞÉÆÖÂÁØÆÄÕÃÁÒÂÂÒÀÀÔ¼¼Ö¼»×½¼Ø¾½×½¼Ôº¹Ñ·¶Ïµ´Ë±°Î´³Ïµ´Ì²±Äª©¾¤£¼¢¡½£¤¯–™«’•¥ŒŸ†‰™€„”{~’y}‘x{ŽuyŽuxvz‘x{•|€™€ƒ„ˆ ‡Š—‚”z{vŒwr‰toˆsnˆsn‰toˆƒ¡Œ‡¨“Ž­˜“±œ—·¢½¨£Á®ª®›¢’•‘„€psqadbSVVGJO@C?03?03?03=13=13=13=13<238/2602602602512512312222222576154598175PVTlrpz††‚› ‘¯¹•³½Œª´›·ÂÑîöÑìõ~™¢)DM0HR5MW7PW7NV4KS5IR6IPM;;M;;M;;M;;K;;K;;K;;K=RHIUJN8-1B9>vmr¢™žÌÆÊëâçyls  >*3=(1=#,6$:$B$,D%+F'-J*/L,1O/4Q16N47VHHKCAB:8>42<20:/-8*)4&%<,,=--A/-C1/F42I54J65Q54W-.^,+b+.d)+d&)j(,r-0y26v02žZYdž„Ò•’ȏˆÆˆÛ© óǾidN+)iGEfHFR87Q<;M:BFIPôûÿøÿÿñûÿæíóøøúûõõÀ¸¶¥™™ÙÉÉàÌÍÞÆÆãÆÈâÄÄäÄÅåÆÄæÇÅçÈÅçÊÆèËÅèËÅèËÃéÌÄêÍÅêÍÇéÌÆæËÄãÈÁâÇÀ×¾·Û»Û»ֽ¸Õ¾¸Ù¼Ù¼ռ·Öº·Ö¸¶Ö¸¶Õ·µÔ¶´Óµ³Óµ³Óµ³Ð²°Î°®Ë­«Ç©§Ã¥£¿¡Ÿ½Ÿºž›§’‘£ŽžŠ‹™…„”€‘}|{|ŽzyŠvw‹wvŒxyŽzy|}’~}“€”€•€’{Ž{w‹xt‰vr‹xtzv|x“€|–ƒœ‰…¡ŽŠ¤‘¥’Ž£Œ¢Žœ‰‹”ƒˆuw|ikq^`dTUYKKRDDD88B66@44=32;10;10;31;23824824824824734734534444444465154/325;9JPNiom|‡‰~•†¢®Žª¶”°¼š¶ÂÅáìÓïú…¢ª6S[%@G1LS8TX1MQ3OS4PT:RV6HH9GG9GG9GG9GG9GG9GG9GG9GG9GG9GG9GG9GG9GG9GG9GG9EC7CA6B@6B@6B@4@>0<:,86!   HJVBDP79E.0<+-:02?;=LCETZ[o_`tef{ijjj‚jj‚mm…oo‡lm‚ijef{ef{ef{`avUVkMNcSTiNOdFG\MNcno„‘¦–—¬‰‰¡‰‰¥’‘°••±¬ŠŠ¤……Ÿ~~–wwuv‹yzŽhi}QRdBDS79HJL[sv‰†‡¦¹¼ßÑÔ÷›žÁ]`ƒX[~‘”· Ã¦©Ìßâÿô÷ÿÅÈë{~¡cf‰œŸÂÝàÿËÎï`c‚X[zÆÉèÞáÿ‚…¤UXwru”~  £Â¹¼Ûqt“<7adƒ†£Ž•±ÀÊãîøÿËÕÁ­·ÐÈÒëÕßøÇÑꉢ`jƒfp‰7AZCMf­·ÐÞåÿ”²14S / ?z}œßâÿöùÿÕØ÷’•´ru”‘”³ÐÓò­°Ï_bZ]|tx•ƒƒ……‡‡Ÿ‘‘©š›°’“¨Œ¡•–¨¤¥·€‚‘\^kOQ^NP\NP\QS_W[dZ_eX`cYadZbe[cf]eh]eh^fiempdlocknail_gj^fi\dg\dg`hk`hkailail`hk_gj^fi]eh\dg]eh`hkailail`hk]eh\df]fe\eb[daZc`Yb_Xa^W`]V_\Xa^Yb_W`]T]ZT]ZT]ZOXUIOO237'&+$#(%$)"!&"!&%$)$#(#"'#"'#"'#"'#"'#"'#"'"#(##+&)2,/814=14=,/8&)2!$-"%."%.$'0'*3*-6(+4#&/")#"(#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%%'%%'%%%%%%%%%%%%%%%%%%%%%((((((((((((((((((((((((,,,,,,,,,,,,,,,,,,,,,,,,,,,------...///00000011155599;43843;;9D64B+(9jgz÷ôÿòïÿìêøéçòêéñëêïììîêìëåëëáêéæêëïðòýûü÷ññ¯¥¦’„„ů±Î´·Õ·¹Ù¶ºß¸»ä»¿æ¹¼ãµ·Þ®ªß®©ß®©ß®©ß®©ß®©ß®©ß®©æµ°Ú©¤Þ­¨è·²ÿÐËÿãÞɘ“>€qvÿýÿÿüÿéæïåâëâßèìéòüùÿñî÷ñî÷ñî÷òïøòïøòïøòïøððøåìòåîóåîóæïôæïôæïôæïôåîóäíòäíòãìñãìñãìñãìñãìñãëîàáãáßàßÝÞÞÜÝÛÙÚÚØÙØÖ××ÕÖÜÚÛÙ×ØÖÔÕÔÒÓÒÐÑÍËÌÆÄÅÀÀ½ÀǼÀɽÁʾÂËÀÄÍÁÅÎÂÆÏÂÆÏëïøìðùîòûñõþôøÿ÷ûÿùýÿûþÿ÷óÿûóÿüôÿüôÿûóÿùñÿ÷ïþöîýÁ¹È®¦µš’¡’Š™‘‰˜‰um|eYeR?CS=?S=?R<>P<=O;G=>PGLQHM4-4?8?nip•—¾»ÂáÜãymw  ;)5;'2:$05(9(@%.A&-F'-I*0L,1Q.4S06P37UBDL@@F::@44<008,,4((1%%7++8,,:..<00>22A55B66H66Q12Y12]03`-2b)/f'/o)1u,3t+2‡?CWY®jk»{yӖ“ôº¶ÿÖҘlkU/.mFGiGFW9;S9EDGNõùÿøÿÿòúÿçîöö÷ùû÷öÄ¿¼ª ŸÞÎÎæÒÓäÊËèÊÌãÃÄæÄÅèÆÅèÉÇêËÈëÎÊìÑÊíÒËèÍÄéÎÅëÐÇìÑÈìÑÈêÏÆéÎÅçÌÃàżâǾáƽÞúÞúßÄ»ÞúÜÁ¸Ùº·Ùº·Ø¹¶Ø¹¶×¸µÖ·´Õ¶³Õ¶³Ê«¨Éª§Æ§¤Â£ ¾Ÿœº›˜·˜•³—”¢Š‹‰˜†„“}{ŒzxŠxvŠxv‡us‡us‰wuŠxvŒzxŽ|z}{~|}{{y‰wu…sq…sq†trˆvtŠxv’€~–„‚›‰‡ ŽŒ£‘£‘¢Ž ŽŒš†ˆ“ˆtv|hjq^`dTUZJKRDDE99D88@65=32;31:20941:52824824824824734734534444444465154/324:8HNLfljxƒ…yš€œª‡£±Žª¸•±½ÀÜèÐì÷‡¤¬7T\%BH1NR8UY1OQ2PR3QS9ST9LJ@MHJVKMYKMYNR[SX^RY_T[aW^dZag]dj_fl`gm[bhZagX_eU\bSZ`PW]NU[MTZRY_SZ`U\bV]cU\bSZ`PW]MTZQX^T[aX_e[bh[bhX_eT[aQY\S[]S\[S\[R[ZR[ZQZYQZYPYXMVUOXWNWVLUTLUTOXWKTSGMM237'&+$#(%$)"!&"!&%$)$#(#"'#"'#"'#"'#"'#"'#"'"#(##+&)2,/814=14=,/8&)2!$-"%."%.$'0'*3*-6(+4#&/")#"(#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%%'%%'%%%%%%%%%%%%%%%%%%%%%((((((((((((((((((((((((,,,,,,,,,,,,,,,,,,,,,,,,***++++++,,,---.........44488:43843;:8C42@*'8jgzøõÿóðÿìêøêèóêéñìëðììîëíìåëëáêéçëìñòôÿþÿúôô³©ª–ˆˆÎ¸ºÕ»¾Ù»½Ú·»Þ·ºãº¾æ¹¼ãµ·Û«§Ü«¦Ü«¦Ü«¦Ü«¦Ü«¦Ü«¦Ü«¦é¸³å´¯æµ°å´¯ûÊÅÿâÝȗ’9gWZòíôùôûßÚá×ÒÙÔÏÖèãêêåìóîõóîõôïöôïöõð÷öñøöñøôñøìïôíòöñöúóøüôùýóøüñöúðõùôùýóøüóøüò÷ûñöúðõùïôøðô÷÷õöùõôøôó÷óòõñðôðïóïîóïî×ÓÒÓÏÎÌÈÇÆÂÁÀ¼»¸´³¯«ª©¥¦–“š’‘™Ž–‰ˆ„ƒ‹~†{z‚yx€WV^VU]UT\TS[RQYQPXPOWQNWNDOPDPPDPOCOMAMJ>JG;GE9EPDPJ>JG;GPDP_S_h\hfZfbR\ZFH\DDYDCVA@S?>P<;N<:M;9M>;L>;K=:H=9G<8G<8E<7F;7J<;K;;J<;J<;H<G=>OFKMDI3,3=6=fah†ˆ«¨¯ÔÏÖzpy)& 8(36&06%/3(7")>'/?(.D).F+0J-1L/3O05M36O<>L>>J<43C33R65Y55^67b47c/3f+1j)/m(-o(.o(,r,.€<=ž][ˋ‰ù¾ºÿß۞rq^87oHIjHGY;=Q7:I57H8;I>DF?F@CJó÷ÿøÿÿòúÿèï÷õöøüø÷ÌÇÄ®¤£ÝÍÍèÔÕæÌÍêÌÎèÈÉëÉÊìÊÉëÌÊíÎËíÐÌíÒËíÒËíÒÉîÓÊîÓÊîÓÊíÒÉêÏÆçÌÃæËÂÛÀ·Ø½´Ø½´Ù¾µÙ¾µÖ»²Õº±×¼³Ò³°Ò³°Ñ²¯Ñ²¯Ð±®Ï°­Î¯¬Î¯¬Â£ À¡ž½ž›º›˜µ–“²“¯«Œ›†ƒ—…ƒ’€~Ž|zŠxvˆvt‡us†tr†tr‡usˆvt‰wu‹ywŒzx{yŽ|zŒzx‰wu…sqƒqo‚pn„rp†trˆvt•ƒ˜†„‹‰¡£‘£‘¡ ŽŒ—ƒ…‘}‡su}iks`bgWX\LMTFFG;;E99A76?54<42;31:52:528248248248247347345344444444652650434:8FLJager}s‡’x’¡|–¥…Ÿ®©¶ºÔáÎéô‹¦¯7R[%@G1MQ8TX0LO1MP2NQ8PR9KKMGIXefzfg{ijlm‚nn†ppˆrrŠss‹tuŠij\]rUVkWXm[\q^_t^_tdez_`uNOdABWSTi|}’›œ±¤¤¼œœ¸›š¹œœ¸––²‰‰£‚‚œ~~–xx}~“…†šstˆIJ\,.=24CSUdqt‡}~¦©ÌÃÆ隝Àor•kn‘”—º£¦É–™¼º½àáäÿµ¸Ûkn‘hkŽ¦©Ìïòÿõøÿ•˜·ORqƒ†¥µ¸×¦©ÈŠ¬\_~^a€œŸ¾ÊÍì~ 66Z]|†£—žºÎØñäîÿ½ÇࢬŸÂÛÙãüìöÿïùÿ‚Œ¥:D]Waz\fGQj„Ž§ÝäþÅÊè)&7jgzøõÿóðÿíëùêèóëêòíìñííïìîíêððåîíêîïôõ÷ÿþÿûõõ²¨©•‡‡Ò¼¾×½ÀÚ¼¾Ù¶ºÜµ¸á¸¼å¸»ãµ·Ý­©Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨ã²­ê¹´ï¾¹ê¹´úÉÄÿÝØ‘Œ7 jVXòçíÿûÿúïõñæìóèîýòø÷ìòûðöûðöüñ÷ýòøýòøþóùÿôúüöúøöû÷öûø÷ý÷öûöõûôóøòñ÷ðïôÄÃÉÁÀź¹¿²±¶©¨® Ÿ¤š™Ÿ—•˜rilqgfmcdh^]cYZ^TSZPQXNMQGHNDCLBCLBAMCDLBAI?@F<=QHMRHPVLT[QY`V^dZbh^fj`h‚x€ƒy…{ƒˆ~†‹‰Ž„Œ†Ž’‡–†–‡Ž—†•†”ƒˆ|†Š{‚‰x‚ry{jtwhoxgqufmn]gjW]fPRfNNbJJ\GFXCBR>=O;:L:8P>;M>;K=:J<9G<8G<8G<8J<;K;;J<;J<;H<G=>NEJH?D3,3;4;^Y`vqx“—À»Â{t|5+4&$4(22%.1$-0!(3"(=*0>+/@,.C-0E/1I03J14I35J68L9;M:./7'(2$$2$$3''4((4*)5-+6.,61.72/<1/S;9Y;9`<DHAH>H<A` 8;Z³¶ÕèëÿÈË꣦œ–µ•˜·¡¤Ã­°Ï’•´sv•vy˜w{˜‚‚œ‰‰¡‡‡Ÿ¨›œ±Š‹ Œ¡µ¶Èª«½tv…IKXFHUQS_NP\KMYOS^IMVGNVHOWIPXJQYLS[LS[MT\GNVGNVFMUELTDKSCJRBIQBIQFMUIPXMT\QX`RYaOV^LS[IPXJQYMT\SZbW^fW^fSZbMT\JQWMUXLTVLTWJRTIQTHPRGORFNPBJMEMODLO?GI>FI@HJ@HK@EH237'&+$#(%$)"!&"!&%$)$#(#"'#"'#"'#"'#"'#"'#"'"#(##+&)2,/814=14=,/8&)2!$-"%."%.$'0'*3*-6(+4#&/")#"(#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%%'%%'%%%%%%%%%%%%%%%%%%%%%((((((((((((((((((((((((************************((((((((()))***++++++,,,00077954932:75@0.<(%6jgzùöÿôñÿîìúëéôìëóîíòîîðìîíêððæïîëïðôõ÷ÿþÿüöö³©ª–ˆˆÒ¼¾Ø¾ÁÚ¼¾Ù¶ºÜµ¸á¸¼ä·ºãµ·Ý­©Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Ü«¦å´¯í¼·ê¹´õÄ¿ÿÒÍҍP'#\CF½­°ëÛÞÁ±´²¢¥µ¥¨¬œŸ¬œŸ†vy„twqt}mpyiluehrbepaf_TZZTXWPWTNRQJQPJNPIPPJNHAHJDHNGNSMQXQX]W[aZae\_yjm{kk|lm}mmop€ppqr‚rr‚rsoo|lm{kk|lm{kkyijvfgyfjyfjyfjyfjxeixeiwdhwdhtaeubfvcgxeizgk|im}jn~ko£Ž“¥‘“¨‘—¨”–ª“™¨”–¨‘—¦’”†Œ—ƒ…’{‹wyˆqwmo{djwadu]]rZXmUSePM^IFWD@R?;N<8P>:N?:N?:L?9K>8H=7H=7G<8J<;K;;J<;J<;H<G=>KBGE:V>:]?=b@?f>>f8:f/2f*,l+/l*,l()m)*y54“ON´poƊ‰•ggmGFxQRjHG[=?N47G35E58I>DKDK7:AîòýøÿÿñùÿêñùþÿÿÿþýØÓФš™Ã³³ÙÅÆÞÄÅåÇÉáÁÂâÀÁâÀ¿ßÀ¾ßÀ½ÝÀ¼ÜÁºÜÁºØ½´Ö»²Ô¹°Ï´«É®¥Â§ž» —¸”®“Šª†¬‘ˆ³˜¶›’´™¶›’¼¡˜Æ§¤Å¦£Å¦£Ä¥¢Ã¤¡Â£ Â£ Á¢Ÿ½ž›»œ™¸™–µ–“°‘Ž­Ž‹ª‹ˆ¦Š‡˜ƒ€”‚€‘}Ž|zŒzx‹yw‹ywŒzx•ƒ–„‚–„‚—…ƒ—…ƒ˜†„˜†„™‡…’€~}{ŒzxŠxvŠxv{y~|“‹‰ ŽŒ£‘¦”’¦”’¤’¡Ÿ‹˜„†”€‚Žz|ˆtv€mouefk[\bTTMAAJ>>F<;B87>64=53;63;63824824824824734734534444444576487154175=CASYW`kmcw‚hi€t‹›˜¦¦½Ë½Õኢ¬1IS8?+DI0IN(AE(AE(AE,DF,>@/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>/=>.<=.<=/=>1?@0>?,:;)78+,*+)*'(&'$%#$"#CEQEGSACO68D,.;13@EGVWYhqr†op„no„op…ss‹vvŽxxwwst‰cdyQRgHI^MNc[\qhi~pq†jk€hi~`avUVkVWlmnƒ•–«´´Ì³³Ï£¢Áœœ¸““¯~~˜xx’}}•zz’€•…†šyzŽIJ\ /,.=[]ltwŠ€Ÿƒ†©©¬Ï·ºÝ±´×“–¹’µ £Æ Ãª­Ð²µØ‘”·gjps–®±Ôïòÿñôÿ©¬Ëux—z}œ‰Œ«®±Ð¿ÂላªKNmŒ®ÌÏ´7 *?Ba|ž¡¨ÄÕßøáëÿ¶Àٗ¡º²¼Õàêÿëõÿßéÿ†©?Ib=G`CMfGQj‰“¬æíÿÕÚø=@_'BEd¯²ÑÙÜûÂÅ䪭̷ºÙ¦©ÈœŸ¾¥¨Ç“–µx{šx{šy}šƒƒŒŒ¤ŠŠ¢§—˜­‹Œ¡ˆ‰Ÿ ²ž°y{Š\^k\^k`bn[]iXZf[_jW[dT[cSZbRYaPW_OV^NU]MT\FMUELTELTELTDKSDKSCJRCJR>EM@GOCJRDKSELTCJR@GO?FN@GOCJRGNVJQYJQYGNVCJR@GOGNTGORFMSFNQFMSFNQELREMPIPVMUXLSYGORDKQGORIPVJOS237'&+$#(%$)"!&"!&%$)$#(#"'#"'#"'#"'#"'#"'#"'"#(##+&)2,/814=14=,/8&)2!$-"%."%.$'0'*3*-6(+4#&/")#"(#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%%'%%'%%%%%%%%%%%%%%%%%%%%%(((((((((((((((((((((((())))))))))))))))))))))))(((((()))******+++,,,,,,///77954932:64?/-;'$5jgzú÷ÿõòÿïíûìêõíìôîíòïïñíïîçííãìëéíîóôöÿþÿý÷÷µ«¬™‹‹Ò¼¾Ù¿ÂܾÀÛ¸¼Ý¶¹à·»âµ¸ß±³Ý­©Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨Þ­¨é¸³é¸³ì»¶ëºµí¼·ñÀ»È—’SPD&&q[]™€ƒmWYiPSpZ\lSVyce¢‰Œ ŠŒ£Š£¦¥‘¨’¦’”–…‹”…Š”…Œ•†‹—ˆœ’ ‘˜£”™~…~ƒŒ}„Š{€‰z‡x}†w~‡wz„pr„on…lo‚mlƒjm€kjhk~ih‹ru‡rq‡nq‡rqtwzy‘x{‘x{‘wz“y|—}€ƒ†¢ˆ‹¨Ž‘¬’•®”—ж¹Ò¸»Ö¼¿ÜÂÅãÉÌéÏÒíÓÖïÕÖñ×ØïÕÔíÐÒåËÊßÂÄÕ»ºÐ³µÊ°¯­’¨Ž¥ˆŠŸ…„Ÿ‚„™~–y{‘wv‡mlƒih}cbt\ZkSQ`KHZEBUB>R?;Q?;P>:N?:M>9K>8J=7J=7K<9K;;J<;J<;H<G=>I@ED;@6/6707SNUd_fjgnŠ‡ŽqpvDCI-*1/,31,2.)/-'++%'8/2901:20;10=31=31>42C33I04K05L16I04D.1@,.>+-<,-@22=11;1072/50-3/,0/+2-)H;5N;5T<8[?N47I57E58H=CMFM25<ëïúøÿÿñùÿëòúôõ÷û÷öÑÌɔŠ‰«››Ç³´Î´µÖ¸ºØ¸¹Ù·¸×µ´Ó´²Ð±®Ì¯«É®§È­¦¿¤›Â§žÇ¬£Ë°§Ï´«Ò·®Ó¸¯Ó¸¯Ó¸¯Ñ¶­Ðµ¬Ñ¶­Ðµ¬Í²©Ì±¨Î³ªÐ±®Ð±®Ï°­Î¯¬Í®«Í®«Ì­ªÌ­ª¿ ½ž›»œ™·˜•³”‘¯¬Š¨Œ‰™„•ƒ“‘}}{}{~|‘}›‰‡œŠˆœŠˆœŠˆœŠˆœŠˆœŠˆœŠˆ“‘}Ž|z{y{y~|”‚€–„‚‹‰Ÿ‹¢Ž¤’¤’¡‹‰›‰‡˜„†•ƒ‘}Œxz…rt{klqabhZZOCCMAAH>=D:9@86>64;63;63824824824824734734534444444687598265064:@>LRPXbdZlx^u…^u…k‚’wŽœ–­»ªÂÎ~– 4LV";B-FK2KP)BF)BF)BF.CF/>A0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?0>?/=>.<=0>?2@A2@A/=>+9:(67'56&45%34#12"01 ./ ./BDPDFRACO46B*,913@JL[acrvw‹rs‡pq†qr‡uuyy‘zz’yy‘no„abwQRgKLaQRg\]rfg|kljk€ijijcdy[\qcdy‡ˆ¬¬Ä··Ó¢¡À——³‹‹§ssnnˆwwxx~”‚–yzŽLM_.+-<]_nvyŒwx—gj’•¸¿ÂåÊÍðšÀ‚¥’µ¦©Ì­°Ó £Æˆ‹®sv™{~¡²µØçêÿíðÿ®±Ð”—¶‡Š©or‘•˜·¹¼Û‘”³RUt‹Ž­ÐÓò¢¥Ä #B *9<[†££ªÆÚäýçñÿµ¿Ø„Ž§ ªÃàêÿïùÿÎØñ€Š£HRk?Ib;E^HRkŠ”­ÛâüÑÖô?Ba8TWvª­ÌÊÍì¾Á௲ÑÐÓòª­ÌŠ¬‘”³’±‚¡}€Ÿy}š›ˆˆ ††ž……Ž¤‘¦Ž¢‘’¤—˜ªmo|np}qslnzhjvjnygkvelvelvelvfmwfmwfmwfmw\cm[blZakY`jX_iV]gU\fU\fIPZIPZHOYGNXELVBIS@GQ?FP=DN>EOAHRBISBISAHR>EO=DLCJRCJPELTGNTIPXKRXMT\MTZU\dZagZaiU\bT[cX_e\ck_dj238'&+$#(%$)"!&"!&%$)$#(#"'#"'#"'#"'#"'#"'#"'"#(##+&)2,/814=14=,/8&)2!$-"%."%.$'0'*3*-6(+4#&/")#"(#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%%'%%'%%%%%%%%%%%%%%%%%%%%%(((((((((((((((((((((((())))))))))))))))))))))))))))))***++++++,,,---------66854932:53>-+9kh{ûøÿõòÿïíûìêõíìôïîóïïñîðïèîîäíìéíîóôöÿþÿúôô²¨©•‡‡Ò¼¾Ù¿ÂÝ¿Áܹ½Üµ¸Ü³·Û®±Ö¨ªÑ¡Ò¡œÒ¡œÒ¡œÒ¡œÒ¡œÒ¡œÒ¡œÜ«¦ÐŸšÑ ›Õ¤ŸÐŸšÉ˜“·†—lf‹ih•yx¬ŽŽ•yx›}}š~}ž€€¯“’’tt‘utrrqp‹mmˆlkˆjj†ik‰ptˆqwŠs{v|y”}ƒ–‡˜‡ŸˆŸˆŽŸˆž‡ž‡†Œ†ŽŸ†Š¡„ˆ¡…„£…‡£‡†¦ˆŠ¦Š‰¨ŠŒ§‹Š¯‘“©Œ¥‡‰¢†…¤†ˆ£‡†£…‡¡ƒƒ¯Ž²ŽŽ¶’’º––¿››Ä  È¤¤É¥¥Ò®®Ó¯¯Ô°°Ö²²Ø´´Ú¶¶Û··Û¹¸à¾¼Þ¿ºà¾¼Ý¾¹Üº¸Ö·²Õ³±Ð±¬ÁŸ»œ—·•“±’°ŽŒª‹†¦„‚Ÿ€}š~{”{wtp‚jfw_[lWRdOJ_LFS@:RA:Q@9N?8M>7L?7K>6K>8K<9K;;J<;J<;H<G=>F=BD;@929707RMTc^e]ZarqwdejDEJ-,2/.4216105002---423542540841850961961?42J15L-3K,2I,1I.3I04F24E24H::D88A76;6372/3/,/.*0-(=4-A4,F5.N94X<8^<:_75`30h22f,+g*)s12=<‰CC‡?@|<T_,CK6MS;RX2JN2JN1IM6KN9HK:HK:HK:HK:HK:HK:HK:HK:HK:HK:HK:HK:HK:HK:HK:HK6DG5CF5CF7EH:HK:HK6DG3AD6DG5CF4BE3AD1?B0>A.7L=6L=8K<9K;;J<;J<;H<G=>E?K==E;:@8694140-1-*/,'6/'7.%LOAORAOR>LO;IL@NQ?MP>LO=KN;IL:HK8FI8FI>@L9;G13?!#/(*7DFSdfuŠŒ›Ž£~“pq†no„ss‹uuss‹rrŠcdy\]rVWlUVkTUjTUjZ[pabwgh}z{Š‹ xyŽPQfKLaƒ„™ÂÂÚ¾¾Ú›š¹„„ yy•jj„ff€ss‹}}•™š¯‘¥op„VWi+-<-/>LN]X[ncdƒad‡ƒ†©ÁÄçÓÖù £Ænq”gj¡¤ÇÅÈ뚝ÀŠ°Ž‘´‚¥£¦ÉÊÍîÃÆ痚¹Š¬hkŠ8;ZhkŠ¢¥Ä‡Š©wz™‘”³ÐÓòµ¸×$"0%"3hexùöÿöóÿòðþñïúòñùôóøóóõñóòñ÷÷éòñòö÷ñòôúøùúôô廓……Štvœ‚…£…‡­ŠŽ´»’–Ρ¤Ð¢¤Õ¥¡Ô£žÐŸšÏž™ÐŸšÕ¤ŸÚ©¤Ý¬§å´¯â±¬ß®©Ú©¤Õ¤ŸÐŸšÌ›–Çš•¿–”¾˜—Á›šÅŸžÉ£¢Í§¦Ðª©Ñ«ªÙ³²Ø²±×±°Ù³²Ûµ´Ú´³×±°Ñ­­Íª®Ì©¯É¦¬Æ£©Ã ¦À£½š ¼™Ÿ°“¯Œ’®‹‘¬‰ª‡¨…‹§„Š¦ƒ‡¬ˆˆ®ˆ‡®ˆ‡¯‰ˆ¯‰ˆ°Š‰°Š‰°Š‰µŽµŽ¶¸’‘º”“»•”¼–•¾–”ɝšËž›ÌŸœÎ¡žÑ¤¡Ô§¤Ö©¦Ø«¨ä·´å¸µæ¹¶è»¸ê½ºì¿¼íÀ½í¼缵⺰ฮฮṯṯ߷­Ü´ªÓ«¡Òª Ï§Ì¤šÉ¡—Æž”Û‘À›’±’«ŽŠ¢…™}y’vrˆojfaxa[iUNeRKaNGZIATC;N=5I80E6/J;8J::I;:H:9E99D88C9:B89@7CFBFGEIHAED@EA>D88=3280.5-+2-)'#.'7.%B5-K:2P93S81U4-X1,X+&e0,q54t42|87€89s33g77vPOƒ\]qON[=?U;>N:<@03I>DJCJ$'.ËÏÚöÿÿîöÿîõýüýÿüø÷êå⣙˜¬œœÔÀÁÚÀÁäÆÈäÄÅçÅÆéÇÆéÊÈêËÈèËÇæËÄåÊÃåÊÁäÉÀäÉÀâǾáƽàżßÄ»ßÄ»ÜÁ¸ÛÀ·Ú¿¶Ù¾µØ½´Ö»²Õº±Õº±Î¯¬Í®«Ì­ªË¬©Éª§Ç¨¥Æ§¤Æ§¤¼š»œ™¹š—¶—”²“¯­Ž‹ªŽ‹–~”‚€”‚€”‚€”‚€”‚€”‚€”‚€›‰‡šˆ†—…ƒ“}{‹ywˆvt‡us~lj~ljmk€nlƒqo‡us‹yw{yŽ|z{y‹ywŠxv‰wuŠxv‹yw{y‰uw‹wyŒxzŒxzˆuw€pqzjktff`TTYMMOEDH>=C;9B:8>96<74935935935935845845645555222243043043/532869?=;EGCS`CVgGZkM`qSfuXkz\o}_s~PdoOclMahL`gLafMbgOdiQdjVejWdjWdjWdjWdjWdjWdjWdjTagTagUbhVciWdjWdjXekXekS`fS`fS`fS`fS`fS`fS`fS`fUbhTagS`fR_eQ^dP]cO\bO\b?AM9;G02>!#/*,9IKXjl{‘“¢Œ¡|}‘no„lm‚ppˆqq‰oo‡oo‡cdy_`u\]r\]rYZoWXm[\qbcxijuv‹€–rsˆPQfNOdˆ‰žÌÌäÀÀܙ˜·›yy•ppŠkk…ttŒ}}•“”©Ž¢pq…[\n35D24CJL[UXk`a€_b…‚¥µ¸ÛÂÅ蕘»mp“lo’©¬ÏÍÐó¤§ÊŽ‘´Œ²z} ˜›¾¹¼Ý²µÖ™œ»„£SVu58WjmŒ›ž½†‰¨ƒ†¥˜›ºÎÑð²µÔADc *8;Zƒˆ¥¼Ãßëõÿñûÿ¯¹Ò_i‚…¨êôÿðúÿ½Çà{…žcm†ak„R\uS]vq{”š¡»œ¡¿hkŠEHgƒ†¥ÃÆåÊÍ쩬˯²ÑœŸ¾…ˆ§„‡¦Œ®‚…¤x{šwz™rv“}}—™€€˜ƒƒ›Ž£•–«™š®¡¢´ŒŸprEGT?ANOQ]SUaZ\h\`kVZfTZfU[iW]iZ`n]co`ftagsdjxdjvdjxekwhn|kq}ouƒqwƒpv„nt€kqgmybhv^dp[aoY_kU[iU[gV\jV\hV\jV\hV\jV\j_es_es`fv`ftagwaguagwaguagwaguagw`ft`fv_es_eu`dp==E&%*%$)(',*).-,1'&+(','&+'&+'&+'&+'&+'&+'&+&',%%-'*3+.7/2;/2;+.7'*3#&/#&/"%."%.$'0&)2&)2#&/")! &! %"!&"!&#"'$#(%$)%$)$#($#($#($#($#($#($#($$&$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++--/76;43;53>$"0%"3gdwùöÿöóÿòðþñïúòñùôóøóóõñóòíóóåîíïóôðñóüúûÿúúÐÆǟ‘‘×ÁÃçÍÐêÌÎîËÏíÆÉëÂÆõÈËòÄÆ꺶뺵뺵깴鸳鸳跲跲崯䳮ⱬ߮©Ü«¦Ù¨£×¦¡Õ¥¡ÈŸÈ  Ê¢¢Í¥¥Ð¨¨ÒªªÔ¬¬Ö®®Ø°°×¯¯Ö®®Ø°°Ù±±Ø°°Ô¬¬Ñ©ªÌ¥¨É¥§È¡¦Âž ÁšŸ»—™º“˜·“•±Š®ŠŒ°‰Ž­‰‹¯ˆ¬ˆŠ®‡Œ­†‡¯‡‡°‰„²ŠˆµŽ‰·º“Ž¼”’½–‘¹‘º“Ž»“‘½–‘¾–”À™”Á™—Ú–Ï¢Ñ¤ŸÖ¦¢Ø«¦Þ®ªß²­ã³¯âµ°ï¿»ì¿ºî¾ºë¾¹í½¹ê½¸ì¼¸é¼¶é½´æ¼°äº®äº®æ¼°ç½±å»¯â¸¬Ü²¦Ú°¤×­¡ÔªžÐ¦šÌ¢–ÉŸ“ÅŸ”°ˆ¨‹… ƒ˜{u’uqŠoh‚fbzaZnWQiULeQJ^LBWD=P?5L;3I81K<9K;;I;:H:9E99E99C9:C9:@7N>?M=>H::@44:..5+)+$/(7.%?5,F8/I80L5-N3*[:3`92c4.g2.p51v64z65x;:rBBjDCxQR}[ZhJLN47F24I9MGIXQTg\]|^a„x{ž¡¤Ç©¬Ï„‡ªlo’ux›²µØ×Úý±´×“–¹‰Œ¯twšŠ°¤§È¯²Ó¦©È‚¡DGf58WhkŠŽ‘°ƒ†¥Œ®¢¥ÄÐÓò´·ÖJMl /=@_”™¶ÖÝùóýÿæðÿž¨Á^hŠ”­çñÿõÿÿ²¼Õ…¨mwak„Waz_i‚r|•”®–›¹vy˜X[z‰Œ«ÌÏî×Úù°³Ò¨«ÊŒ®sv•‰Œ«£¦Å‰Œ«ps’qt“nr{{•™‚‚š‡‡Ÿ’“¨•–«—˜¬Ÿ ²Š‹fhw68E13@@BNDFRMO[PT`WZiW]kY_o\bp_eu`ftagwagu_eu_es_eu`ftbhxekyiokqjp€io}fl|ciw_eu\bpZ`pX^lY_o[ao^dtciwhn~mspv†rxˆmsƒnt„ot‡qw‡sx‹tzŠv{Žv|Œw|v|ŒtyŒrxˆot‡msƒkpƒmp<?D>?C>BE?EEAGE?HE=FA8B:/:2)5+$1'&2(.1*=//D.1G14I36I36G14D.1B,/D.1I57Q=?WCEUACM:5bA8]7.[.(j5/p62t74EC|NNtNM}VWzXWaCEK14G35H8;H=CJCJ!$+¿ÃÎõþÿîöÿð÷ÿþÿÿÿüûíè壙˜«››ÖÂÃÜÂÃåÇÉß¿ÀâÀÁãÁÀáÂÀá¿ÞÁ½Ú¿¸Ù¾·Ý¹Ý¹ÜÁ¸Ú¿¶Ù¾µØ½´×¼³Ö»²Ó¸¯Ò·®Ï´«Í²©Ê¯¦Ç¬£Åª¡Ã¨ŸÁ¢ŸÀ¡ž¿ ½ž›¼šº›˜¹š—¸™–¯®Œ«Œ‰¨‰†¥†ƒ¢ƒ€ ~œ€}zwŽ|z}{~|‘}’€~’€~““‘}Ž|z‹yw†trƒqo€nl~lj|jh|jh}kimkƒqo‡us‹yw{y‘}~|}{Ž|zŽ|z}{‘}’€~–‚„š†ˆŸ‹¡ŠŒ’‚ƒˆxyssk__dXXXNMOEDH@>D<:=85:52935935935935845845645555222243043043/532869?=;EG=KX;L^?NaBSeHXhK\lO_nPbnTdqQcmQbjObiPahPciRcjTelWfmXemXemXemXemXemXemXemS`hTaiTaiUbjVckWdlWdlXemWdlWdlWdlWdlWdlWdlWdlWdlVckVckUbjUbjTaiS`hS`hS`hIKW=?K.0< "./1>RTatv…šœ«Ž¢~“pq†kljj‚hh€ggggcdyef{jk€kldez\]r]^sdezcdy\]rYZoVWlKLaMNc‚—ÆÆÞÙÙõ­¬Ë„„ uu‘oo‰jj„nn†yy‘„…š†‡›vw‹kl~QSbFHWBDSLObZ[z_b…sv™’µ“–¹y|Ÿnq”~¤³¶Ù×Úý¶¹Ü–™¼…ˆ«ps–ƒ†©›ž¿ÃÆ絸ׇŠ©LOn9<[]`‚¡„£Š¬©¬ËÙÜû½ÀßWZy:MPo¶»ØæíÿõÿÿÓÝöz„T^wš¤½ëõÿóýÿ²¼Õš³s}–Yc|Xb{kuŽwš…Œ¦‹®‚¡il‹Š¬ÏÒñßâÿµ¸×ž¡Àor‘]`Œ®µ¸×“²qt“vy˜os||–™„„œ‹‹£–—¬–—¬•–ªž°˜™«oq€ACPBDQOQ]MO[QS_QUa_bq`fvciyfl|hn~hn~hn~gm}ek{djzagw_eu^dt^dt_eu`fv^dt]cs[aqY_oW]mU[kSYiRXhbhxek{jp€pv†w}}ƒ“‚ˆ˜…Š–›®—œ¯˜±šŸ²¢¶Ÿ¤· ¥¹¡¦¹™ž²˜°–›¯”™¬‘–ª”§’¦Ž‘ 99A$#($#('&+&%*(',$#('&+&%*&%*&%*&%*&%*&%*&%*%&+%%-'*3+.7/2;/2;+.7'*3#&/#&/"%."%.$'0&)2&)2#&/")"!'"!&#"'$#(%$)%$)&%*&%*"!&"!&"!&"!&"!&"!&"!&""$&&(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++,,,--/54932:64?&$2%"3fcvùöÿöóÿòðþñïúòñùôóøóóõñóòóùùìõôðôõòóõüúûÿýýäÚÛ¬žžÎ¸ºßÅÈãÅÇèÅÉèÁÄæ½ÁïÂÅì¾Àë»·ì»¶ì»¶ì»¶í¼·í¼·í¼·í¼·ôþòÁ¼î½¸é¸³ä³®ß®©Ûª¥Ø¨¤Ó§¨Ñ§«Ò¨¬Ò¨¬Ó©­Ôª®Ôª®Õ«¯Ôª®Ò¨¬Ñ§«Ñ§«Ò¨¬Ð¦ªË¡¥ÇŸÄœÂšš¿—˜»““¶Ž²ŠŠ¯‡ˆ­……ª‚ƒª‚‚ª‚ƒ«ƒƒ«ƒ„¬„„­…†­…ƒ¯†‚°ˆ€²‰ƒµ…·Žˆº’Š¼“½•Óª¤Ô¬¤Õ¬¦×¯§Ø¯©Ú²ªÛ²¬Ü³­Þµ¯á¸²å¼¸è¿¹éÀ¼ç¾¸ãº¶à·±Ö­©Õ¬¦Ò©¥Ï¦ Ë¢žÈŸ™Åœ˜Æ›”Å›Ä˜‹Ã—ŠÅ™ŒÈœÊž‘ɝÈœ¯ƒv®‚u­t«r©}p¨|o§{n£{o³‘ˆ«…¥‡Ÿy›}u•xprj‰ne{cYxbWr\QjVKcOD[I=VD8SA7N<8L<A8=>7>CD<;A:9>89=7;<7=;7=;4=81;3,7/(5+'4*(5+.3,7-,A.0F35J79K79G35C-0?),>(+G.2R9=ZAE]BGW7t=8xC?k?>Žhg©‚ƒˆfeU79K14P<>F69F;AJCJ!(´¸Ãõþÿíõÿòùÿþÿÿÿûúéäᛑ¡‘‘͹ºÓ¹ºÚ¼¾àÀÁãÁÂæÄÃæÇÅçÈÅåÈÄãÈÁãÈÁÕº±Õº±Õº±Õº±Õº±Õº±Ö»²Ö»²È­¤Ç¬£Åª¡Â§ž¾£š» —¸”·œ“¾Ÿœ½ž›¼šº›˜¹š—·˜•¶—”µ–“¯­Ž‹«Œ‰¨‰†¥†ƒ¢ƒ€Ÿ€}œ€}”|’€~“”‚€–„‚—…ƒ˜†„˜†„”‚€’€~}{Œzx‡us„rpommk}ki}ki~ljom…sqŠxvŽ|z‘}“’€~‘}~|‘}“•ƒ–„‚‰‹¢Ž¨”–¬˜š§”–œŒ‘‚ˆzzrffk___UTVLKMECG?=>96:52935935935935845845645555222243043043/532869?=@L-/;!-02?SUbsu„–˜§‘¥‚ƒ—st‰mnƒjj‚ff~dd|ee}bcxfg|lm‚klabwXYn[\qef{_`uSTiHI^HI^FG\FG\no„©©ÁââþÄÃ☘´ssaa{__yiivvŽ‚ƒ˜†‡›yzŽqr„^`oNP_>@OJM`[\{cf‰sv™…ˆ«ˆ‹®y|Ÿvyœ†‰¬¬¯ÒÌÏò²µØ“–¹ƒ†©ru˜‡Š­¤§È×Úû´·Ö‹Ž­^a€;>]GJimp‚…¤„‡¦¬¯ÎàãÿÇÊédg†),KfiˆÚßüïöÿõÿÿ¿ÉâYc|Waz¹ÃÜôþÿìöÿ¹Ãܙ£¼u˜S]vU_xr|•}‡ ‚‰£…Š¨ˆ‹ªz}œŒ®ÐÓòçêÿÁÄ㚝¼PSrHKj‹Ž­¿Âᘛº|ž‚…¤uy–}}—™……ŽŽ¦˜™®–—¬”•©œ¯§¨ºuw†GIVLN[XZfRT`TVbQUaehyej}hm€kpƒlq„lq„kpƒjo‚]bu[`sW\oSXkQViOTgOTgOTgLQdLQdKPcJObINaINaHM`HM`PUhQViSXkV[nY^q[`s]bu_dwQVjQVjPUkPUiOTjOThNSiNSgFKaFK_EJ`DI]CH^BG[AF\BEV77?#"'$#(&%*$#(%$)"!&&%*#"'#"'#"'#"'#"'#"'#"'"#(%%-'*3+.7/2;/2;+.7'*3#&/#&/"%."%.$'0&)2&)2#&/")#"(#"'$#($#(%$)&%*'&+'&+#"'#"'#"'#"'#"'#"'#"'##%&&(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++-----/43821975@'%3%"3ebuùöÿöóÿòðþñïúòñùôóøóóõñóòóùùî÷öðôõòóõúøùÿýýêà᭟ŸÛÅÇéÏÒêÌÎëÈÌèÁÄå¼ÀðÃÆí¿ÁóÿñÀ»í¼·ê¹´ê¹´í¼·òÁ¼õÄ¿ð¿ºï¾¹í¼·ê¹´ç¶±å´¯â±¬à°®Ó©«Ò©¯Ò©¯Ñ¨®Ñ¨®Ð§­Ð§­Ð§­É ¦Çž¤Æ£Æ£Çž¤Åœ¢À—¼“—º‘¹Ž¶Œ²‰‡®„…ª§}~¥|z¦|}¦}{¦|}¦}{§}~§~|§}~§~z¨z©ƒx«…|®ˆ}°Š³‚µ†¶…£}t¤~s¥v§v¨‚yª„y«…|¬†}º“Ž½–‘š˜Åž™Å›Ãœ—¿—•½–‘¨€~«„®†„³Œ‡¹‘¾—’š˜Ä–Ø­¤Ö¬ Õ«Ÿ×­¡Û±¥Ý³§Ü²¦Ú°¤à¶ªÞ´¨Ü²¦Ù¯£Ö¬ Ó©Ñ§›Î¦œ¼š·–±‡ªŒ‚¦ˆ~ „yš~s•zoƒk_i\zdWq^PiVHbOA\I;YG=O=9M==K=>7>B;BLGNVQXSPWKHOC>EAS49D/,A0)=.';.&8.$8.$8.":. O?2TA3sYL‰i^†`U…YP‚QJo>9T('‹edÀ™š¦„ƒdFHK14Q=?LK^?L_AN_CPaDQaES`7ER5CN4BK3AJ3BI4CJ5DK7FM=JS=JS=JS=JS=JS=JS=JS=JSCPYDQZDQZER[FS\GT]GT]HU^KXaKXaKXaKXaKXaKXaKXaKXaP]fP]fP]fQ^gQ^gQ^gQ^gQ^gKMY;=I*,8+02?TVcpr’¡’“§„…™vwŒmnƒhh€bbzaaycc{abwef{ijdezWXmOPeXYnfg|ef{VWlBCX?@UBCXABW[\qŠŠ¢ÚÚöØ×ö³³Ïvv’RRlVVpiiyy‘…†›ˆ‰|}‘tu‡fhwTVe9;JHK^abjmwz…ˆ«‹Ž±„‡ª„§Œ²¡¤Ç¹¼ß¦©ÌŽ‘´€ƒ¦vyœ“–¹»¾ß×Úû¦©È‡Š©jmŒ8;Z*-LWZy„‡¦Ž‘°­°ÏÜßþÄÇæloŽ?Ba‚¡ëðÿóúÿí÷ÿª´ÍQ[ts}–ÜæÿôþÿÞèÿ¼Æߛ¥¾|†ŸZd}S]vpz“‰¢‚‰£‰Ž¬“²‹Ž­“–µÓÖõòõÿÔ×ö¡¤Ã?Ba:=\†‰¨ÄÇ棦Ņˆ§‰Œ«|€›‚‚š……¨™š¯•–«“”¨ž°«¬¾np:CV=BU=BU>CV>CV;@S;@S! %#"'%$)"!&#"' $&%*! %! %! %! %! %! %! % !&%%-'*3+.7/2;/2;+.7'*3#&/#&/"%."%.$'0&)2&)2#&/")$#)$#(%$)%$)&%*'&+'&+(',%$)%$)%$)%$)%$)%$)%$)%%''')'''''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++...,,.32721986A(&4%"3datùöÿöóÿòðþñïúòñùôóøóóõñóòîôôëôóíñòòóõøö÷ÿýýîä嫝Õ¿ÁãÉÌãÅÇåÂÆ㼿㺾ïÂÅîÀÂï¿»í¼·ëºµé¸³ì»¶ñÀ»øÇÂüËÆþÍÈüËÆùÈÃõÄ¿ñÀ»í¼·ê¹´è¸¶é¿Ãå¼Äßµ¿Ø¯·Ñ§±Ê¡©Äš¤Â™¡Ç§Ä›£Á—¡À—Ÿ¾”ž»’šµ‹•°‡®„…¬ƒª§~|¤{y¡xvŸvtžus—nl–mk”ki’igfddb‹b`‰b]¢|s¤~s¦€uª„y®ˆ}±‹€´Žƒµ„º”‰»•Š¼–‹¾˜¿™ŽÁ›Âœ‘”Ú·±Ýº¶á¾ºæÿéÆÂêÇÃéÆÂéÆÂú×ÓùÖÒõÒÎñÎÊíÊÆéÆÂæÿæÁ»æ¾´æ¼°å»¯æ¼°é¿³êÀ´é¿³ç½±ôʾòȼîĸ鿳亮ߵ©Û±¥×¯¥Ç¥›Â¡˜¼›’·–±“‰¬Ž„¥‰~ „yŒqf‡oci]ycVq[NgTFbOA^LBP>:M==L>=K=7>@9@IDKQLSLIPE@G?8@=6>:3;5071,2,*/((*&('$('#)%%,%(2*.:02?55B87A8762:52>43?33A33B23C02E/2F+0K.3P/6V3:Y4<]5>_5?\7>L21E2,A0);,%9,#7-#80#92"MA3YI:Žxjº “ÁŸ“Äž“¿“ŠŸrlmDBqKJ”mnž|{sUWM36I57K;>D9?JCJ"ž¢­óüÿíõÿöýÿõöø÷óòÞÙ։~Œ||¹¥¦¿¥¦Â¤¦Ä¤¥È¦§Ë©¨Ì­«Í®«Í°¬Ë°©Ë°©Î³ªÎ³ªÐµ¬Ò·®Ô¹°Ö»²Ø½´Ù¾µÅª¡Åª¡Ä© Ä© Ä© Ä© Ä© Ã¨ŸÃ¤¡Â£ Á¢Ÿ¿ ¾Ÿœ¼š»œ™º›˜·˜•¶—”´•’±’­Ž‹ª‹ˆ¨‰†¥‰†¤Œ¢Ž¢Ž¢Ž¢Ž¢Ž¡¡™‡…—…ƒ”‚€‘}Œzx‰wu†tr„rp}ki~ljmkƒqo‡us{y’€~•ƒ“’€~’€~’€~“–„‚™‡…šˆ†¤’¨”–­™›¯›«˜š ‘—‡ˆ|ppvjjka`bXWXPNPHFE@=>96935935935935845845645555222243043043/532869?=K\>K\?L\?MZ(6C'5@%3<$2;$3:%4;'6=(7>.;D.;D.;D.;D.;D.;D.;D.;D5BK5BK6CL7DM7DM8EN9FO9FO=JS=JS=JS=JS=JS=JS=JS=JSDQZDQZER[ER[FS\GT]GT]GT]DFR46B$&2(13@UWdoq€ŒŽ‘’¦ƒ„˜uv‹kldd|]]u\\t^^vabwcdycdyZ[pKLaEF[STifg|vwŒcdyFG\;A`ƒ†¥©¬Ë°³ÒÊÍì´·Öps’VYx‘”³æëÿð÷ÿÒÜõ’œµ]g€ž¨ÁòüÿáëÿÈÒ봾י£¼Š”­lvU_xisŒ}‡ ƒŠ¤”²”—¶•˜·˜›ºÒÕôøûÿåèÿ¨«Ê@Cb47V€ƒ¢ÊÍ쮱ЇŠ©†‰¨ƒ „„žƒƒ›……§˜™®”•ª“”¨Ÿ ²ª«½dfu+-:13@:J<@L:=N8=P7Q;@S:N>>L>=L>=I==H<CD;@>7>>7>E@GLGNEBI>9@:09:098.74-52+2.)/*(+((((*)%*&&-&)3+/;14@64A75?6:<798494180.:..?11E24J47J/4M.4P-4T,5W-7[0:`2=^5=R44K3/C0*>-&9,#7/$93%;5%<5%L@0n^´žÑ´¦âÀ´â¼±Ì¤œ¤|z€ZYZ[ˆfekMON47G35B25D9?JCJ •™¤óüÿíõÿ÷þÿûüþþúùåàݐ†…”„„Ä°±Ë±²Î°²Ò²³Ö´µØ¶µÙº¸Û¼¹Ú½¹Ù¾·Ø½¶Ö»²Ö»²×¼³×¼³Ø½´Ù¾µÙ¾µÚ¿¶Ñ¶­Ðµ¬Î³ªÌ±¨É®¥Æ«¢Åª¡Ã¨ŸÅ¦£Å¦£Ã¤¡Â£ À¡ž¿ ¾Ÿœ½ž›·˜•¶—”´•’±’­Ž‹ª‹ˆ¨‰†¥‰†¦‘Ž¤’£‘¢Ž ŽŒŸ‹žŒŠ‹‰•ƒ“~|{yˆvt…sq‚pn€nlygezhf|jhmk„rpŠxv}{’€~’€~‘}‘}‘}“–„‚™‡…›‰‡£‘¦’”©•—ª–˜¥’”œŒ•…†Ž€€ssymmoedf\[]USTLJHC@B=:935935935935845845645555222243043043/532869?="0; .7-6.5 /6"18#29&3<&2>&2>&2>&2>&2>&2>&2>'3?'3?(4@(4@)5A*6B+7C+7C/;G/;G/;G/;G/;G/;G/;G/;G5AM5AM6BN7CO8DP9EQ9EQ:FR=?K.0<!-'13@VXeoq€‹œ¤‚ƒ—st‰ijaayYYqWWoZZr`avabv_`uSThCDY?@TQRgfg{„…špq…LMb:;O?@U?@TKLaii¬¬ÈåäÿÙÙõ›DD^RRlttŽ††žŽŽ¦Ž¤~”stˆkl€XYk45IIK`lmŒux™€ƒ¦’³ž¡Äž¡Â”—º“´“–¹ Á“¶ƒ†§}€£{~Ÿ¦©ÌâåÿÅÈ矢Á„‡¦loŽ14S$-0O„£ÁÄã²µÔº½Ü¥¨Çps’eh‡™œ»Úßýëòÿ¼Ã݂‰¥mtŽ¾Åá÷þÿÎÕñ·¾Ø¬³Ï—ž¸˜Ÿ»† [b~dk…{‚ž‚‰¥‘–³“—´™œ»™ºÏÒñùýÿíðÿ¬°ÍGJi37T|žÎÒﶹ؅‰¦‚¡€„Ÿ††ž„…š…†›¥˜™®“”¨“”¨¡¢´©ª¼acr(*902?8:G13@79F79F69J39I36G/5E25F28H7:K6>N>?L>>K==H<G=>I>BED94:4-44-44-43.42-3/-0.,/,,,-/.).*).*-4-1;34>62=50:2;B:9<534./.)2-);0.E55M9:K14O/4Q,3T+3X*4\-7`.9`19X46O30F.*?,&9,#71%75(89)IH6WQAym]¨–ˆÔ¹®ðÐÅùÒËòÉٗ²Šˆ«…„ll^>?L23N8:?/2D8?,/>-/>,/>-/>,/>-/>,/>,.=+.=,.=+.=,.=+.=,.=+.=*,9)-9*,9)-9*,9)-9*,9)-9')6&*6')6&*6')6&*6')6')5$%*%$)%$)%$)%$)%$)%$)%$)#"'#"'#"'#"'#"'#"'#"'#"'"!'%&++*0./4/.4*+0&%+!"'%$*#$)$#)%&+)(.'(-%$*"!'$#($#($#($#($#($#($#($#('&+'&+'&+'&+'&+'&+'&+'&+*).**,*).**,*).**,*).**,/.3//1.-2--/,+0++-*).**,)(-))+)(-))+)(-))+)(-))++*/++-+*/++-+*/++-+*/++-021/3401514;66@,.;.STfø÷ÿöøÿöõÿóöÿóóûðô÷ðñóîòñîôôêóòïóôïðòúøùÿúúîä妘˜—ƒ»¡¤Ä¦¨Ê§«Ô­°Ò©­Ö©¬Öª«×®¨Ø°¨Ù±©Û³«Þ¶®à¸°âº²ã»³øÐÈôÌÄïÇ¿ëû翷⺲ݵ­Ù²«Ö°¯Ï««Ç£¥¾šš·“•³±±¶’”µ‘‘µ‘“µ‘‘´’³³‘µŽ¯†„±…‚²†ƒ²†ƒ³‡„´ˆ…´ˆ…µ‰†Â–“Å™–ɝšÎ¢ŸÒ¦£Ó§¤Ó§¤Ó¨¢Ú¯¨Ù®¥Ø­¦×¬£Õª£Ó¨ŸÒ§ Ò§žÔ©¢Ó¨ŸÒ§ Ò§žÓ¨¡Õª¡×¬¥Ö®¦à¹´ßº´àº·â½·å¿¼èýêÄÁìÇÁìÆÃêÅ¿è¿æÁ»æÀ½ç¼è¿éľìƽìÆ»ìļëźëûè·èÀ¸çÁ¶ä¼´á»°à¸°àº¯âº²â¼±á¹±Ý·®Î§ Ô­¨Ð©¤Ãœ—½˜’À›•º—‘°‡|u—yqrj†ia|_WrWNkPGeLGT@AS@BQ>BN>ALG;=E;8:>8:>:;?;<><=::<99;557/02+,.-/.243798-10-10-10,1-+1-+1-*0,(2*-9-0<.1<.'-!&(EA8g\Vr`\dLJdFFkGIlBFa28a.5h3;f3:\/2V/0N0.K61H>5FD8?E79D3FO>MQBsocŸ’‰º¡œÐ¯ªæ¼½é½¼ä¸µÿãàÿä⪄?4O75H66D88ICC+++`hkïùûñÿÿòüþ÷øúýùúéã塗˜˜ŒŽÇ·¸È¶¶Ïº¹Õ»¼ØººÚº»Üº¹Þººß¼ºß¼ºà½¹à½·Þ»µÜ¹³Û¸²Û¸²Ü¹³Þ»µà½·Ö³­Øµ¯Øµ¯Ô±«Íª¤É¦ É¦ Ê©¤·š–¶š—¶˜–µ™–µ—•³—”´–”²–“°’¯“¯‘­‘Ž­«Œ«‹ªŽ‹¦ŽŽ¢ŒŽ ŠŒœ†ˆ˜‚„”~€‘{}y{y{wyŠtv†prkm}gizdfwcdsccsedxhh{ml€ppƒut‡wwˆzyŠzz‹}|’„ƒ˜ˆˆ›ŒŸ¡‘‘ªšš©™™©™™¨˜˜¦––¤–•£•”£•”‘ƒ‚~…wvxmkmb`cXV[PNTLJB>?==?98=668438335327235126013/04/0201504556:49=:EK8EN7DM7DM7DM6CK6CK6CK-:B-:B,9A+8>*7=)6<(5;(5=/Y~‚ÑÕðÌÐ뉍¨Z^yuy’‘’¦†‡™lm‹Œž³´Æœ¯‘£¯°Â¶·É_`r!"4*+=23E./A67I24C/1@/1>/1>/1>/1>/1>/1>/1>02?02?02?02?02?02?02?02?-/<-/<-/<-/<-/<-/<-/<-/<+-:+-:+-:+-:+-:+-:+-:+-9*,8*-6*-6*-6*-6*-6*-6*-6&)2&)2&)2&)2&)2&)2&)2&)0%$*%$)%$)%$)%$)%$)%$)%$)#"'#"'#"'#"'#"'#"'#"'#"'#"''&+,+00/40/4,+0'&+#"'&%*%$)$#('&+)(-)(-%$)"!&#"'#"'#"'#"'#"'#"'#"'#"''&+'&+'&+'&+'&+'&+'&+'&+*).*).*).*).*).*).*).*)./.3.-2.-2-,1,+0+*/*).*).*).*).*).*).*).*).*).*).+*/+*/+*/+*/+*/+*/+*/*+-124/34/3625<58A,.;.RSeö÷ÿöøÿôöÿóöÿñôûðô÷îòóíóñîôôêóòïóôïðòúøùÿúúîä妘˜¿©«áÇÊçÉËéÆÊðÉÌëÂÆíÀÃëÁÂ迹çÁ¸è¹è¹éúêÄ»ëżëżëżéú忶侵㽴⼳޸¯Û¶®Ðª§Ê§¥ÂŸ¹–”²®‹‰­Šˆ¬‰‡­Šˆ­Šˆ­Šˆ®‹‰®‹‰®‹‰¯ŒŠ±‹ˆµ‰ˆ¶‰†·Š‡¸‹ˆ¹Œ‰»Ž‹»Ž‹¼ŒÉœ™Ëž›Ï¢ŸÓ¦£Ö©¦×ª§×ª§×ª¥á´¯à³­ß²¬Ý°ªÜ¯©Ú­§Ù¬¦Ø«¥Ø«¥Ø«¥×ª¤Ø«¥Ú­§Ü¯©ß²¬àµ®å¼¸å¾¹çÀ»é½êþëÄ¿ìÅÀìÅÀçÀ»èÁ¼êþëÄ¿ìÅÀíÆÁîÇÂîÇÀòËÄóÍÄóÍÄóÍÄðÊÁëżæÀ·â¼³íǾëżéúëżîÈ¿ïÉÀîÈ¿ìƽٰ¬ß¶²Û²®Ð§£Ê£žÍ¦¡É¤ž¾›•›xr—voŽph„f^y\TpSKiLDdHDT>@R?CQ>BO<@K;>J:=H9L;ITDhh\„zqŸ‡ƒÇ¨¦ç½¿å·¹çº·ÿæàÿç㮆„B5P86J86C77HBB,,,^fhîúúñÿÿóýþõõ÷û÷øêä梙œ–ŒÅ¶¹È¸¹Ð¼½Ò¹¼Ôº»×¹¹Ù¹ºÝ¹¹à¹ºàº¹á»ºÝ·´Ü¹³à»µà½·â½·Þ»µÞ¹³Û¸²Í¨¢Ì©£Î©£È¥ŸÃž˜½š”¿š”½œ—±“‘°”‘¯“®’­‘Ž­‘Ž¬¬¬¬«Œ«Œ«ŒªŽ‹ªŽ‹¨Ž©‘‘¨’¥Œ¡ˆ‹„‡™€ƒ–}€•|‘x{vyŒsvˆor„kn€gj}dgxdewggxji{mlqpƒut‡yxŠ|{Œ~}Œ~}Ž€‘ƒ‚•‡†™‹ŠŽ ’‘¢”“«œªœ›ªœ›©›š¨š™§™˜¦˜—¦˜—šŒ‹–ˆ‡Ž€„vuykjn`_gYX_UTFDGBCG>?C:;?78<67;67;67;45934823723734856:89=6;?9DH7DJ7DJ6CI6CI6CI6CI6CI6CI6CI5BH5BH4AG4AG4AG3@F9FO8EN8EN7DM6CL5BK5BK5BK)6?)6?)6?)6?)6?)6?)6?)6?"/8"/8"/8"/8"/8"/8"/8"/8$1:$1:$1:$1:$1:$1:$1:$1:)+7&(4$&2)+779FKMZ^`ojl{‰Šž†‡›z{cdyNNfHH`SSkabwij~wxŠ|}vw‰bcuBCU?@R[\nxy‹z{ij|MN`;?[MNmKNm\_~|ž˜›º©¬Ë«®Í£¦Å±´Ó°³Òš¼‚…¤z}œx{š“²¹¼ÛÃÆå°³Ò«®Í £ÂY\{747Vy|›ÂÅ䥨Ç}€Ÿ_bmp¦©ÈÌÏîÇÊ镘·mpZ]|²µÔíðÿ¹¼ÛNQpTWv¯ž¡ÀËÎíª­Ìvy˜dg†TWvkoŒ‘®›Ÿº¤¨Ã¼ÀÛßãþéíÿÎÒí¤¨Ãvz•LPk|€›ÆÊåàäÿž¢½HLg`d}Ž£{|Žabt‹Œž½¾Ð¤¥·’“¥­®À¹ºÌghz$%7'(:12D./A56H24C/1@/1>/1>/1>/1>/1>/1>/1>.0=.0=.0=.0=.0=.0=.0=.0=+-:+-:+-:+-:+-:+-:+-:+-:*,9*,9*,9*,9*,9*,9*,9*,8(*6(+4(+4(+4(+4(+4(+4(+4&)2&)2&)2&)2&)2&)2&)2&)0$#)$#($#($#($#($#($#($#(#"'#"'#"'#"'#"'#"'#"'#"'&%*)(-.-2105105.-2)(-&%*&%*%$)%$)'&+)(-)(-&%*#"'#"'#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%$)(',(',(',(',(',(',(',(',-,1-,1-,1,+0+*/+*/*).*).+*/+*/+*/+*/+*/+*/+*/+*/-,1-,1-,1-,1-,1-,1-,1,-/12404504736=69B-/<-QRdö÷ÿöøÿôöÿóöÿñôûðô÷îòóíóñîôôêóòïóôïðòúøùÿúúîä妘˜Â¬®ãÉÌçÉËéÆÊðÉÌìÃÇñÄÇïÅÆ羸æÀ·æÀ·å¿¶ä¾µä¾µã½´ã½´éúæÀ·â¼³á»²â¼³â¼³Þ¸¯Úµ­Ï©¦È¥£À›¸•“±ŽŒ®‹‰¬‰‡¬‰‡¬‰‡¬‰‡­Šˆ®‹‰¯ŒŠ°‹±ŽŒ³Š·‹Š¹Œ‰ºŠ¼Œ¿’Á”‘•’Ö“Ô§¤Õ¨¥Ø«¨Û®«Ý°­Ý°­Þ±®Ý°«ß²­Þ±«Ý°ªÛ®¨Ú­§Ø«¥×ª¤Ö©£Û®¨Ú­§Ø«¥×ª¤×ª¤Ø«¥Ù¬¦Ù®§ä»·å¾¹èÁ¼êþëÄ¿é½çÀ»æ¿ºã¼·å¾¹çÀ»é½é½çÀ»å¾¹ã¼µêüêÄ»êÄ»êÄ»è¹æÀ·ä¾µã½´Ù³ªÕ¯¦Ñ«¢Ï© Î¨ŸÌ¦Ç¡˜Äž•¬ƒ±ˆ„®…¥|x yt¢{vŸzt–sm™vp•tmŒnf‚d\wZRnQIgJBbFBT?>R>@P=?O<>K;43<42=53?:7E@=LGDPLK>@?;?>7;:154*.-'+*(,++/.+/.-10/32154154/32-10)2-.I;;I:@N?OZLik`zqj”|ȪªìÃÇ湼輻ÿçäÿê豋ˆD" 5P86K97C77F@@...Zbdîùûñÿÿóýÿóò÷ûöúíç颙œ†‡¼­°À°±Ê¶·Ëµ·Î´µÒ´´Ó³´Ö´³Ø´´Ø´´Ù¶´Ñ®ªÑ°«Ô±­Õ´¯Ö³¯Ó²­Ò¯«Ð¯ªÄ¡Ã¢Ã œ¿ž™º—“¶•¶“³”«Œ©Ž¨Ž§Œ¦Œ‹¦Œ‹¥‹Š¥‹Š¨Ž¨Ž©Ž©Žªªªª®––«•—¨’”¤Ž ŠŒœ†ˆ™ƒ…˜‚„y{Žxz‹uw‡qsƒmo€jl}gizfg~nn}rptrƒxv‡|z‹€~Žƒ„‚„‚…ƒ“ˆ†—ŒŠ›Žž“‘¡–”£˜–ªŸªŸªŸ©žœ¨›¨›§œš§œš •“œ‘”‰‡‹€~€uswljpecjb`MMOHLODHK?CF;?B9=@8B;FJ9FL9FL9FL9FL9FL9FL:GM@MS@MS@MS@MSANTANTBOUBOUDQZCPYCPYBOXANW@MV@MV@MV5BK5BK5BK5BK5BK5BK5BK5BK0=F0=F0=F0=F0=F0=F0=F0=F1>G1>G1>G1>G1>G1>G1>G1>G.0<*,8(*6,.:9;HKMZZ\kcetyzŽz{tuŠcdyQQiMMeYYqhi~kl€{|Ž‚”{|ŽfgyDEW?@RYZltu‡~‘pqƒSTf<=O23E@AS]^r{{•¶¶ÒÎÎꓓ¯``|ggƒww“‹‹§ˆˆ¤„„ xx”aa}GGc::V9:VEFeADcSVux{š˜›º§ªÉ§ªÉ£¦Å²µÔ²µÔ—š¹~ |ž}€Ÿ‹Ž­¬¯ÎÕØ÷ÉÌ밳җš¹[^}(+JDGfor‘¯²Ñ—š¹tw–cf…€ƒ¢·ºÙÓÖõÍÐ¿}€Ÿbe„Ÿ¢ÁÄÇ攗¶EHgil‹•˜·£¦ÅÏÒñ«®Íz}œhkŠJMlSWt…‰¦‹ªª®ÉÙÝøòöÿ×Ûö­±Ì¤¨Ã|€›QUpnr¬°Ëãçÿ¯³Î<@[AE^„…™noWXj‹ŒžÃÄÖ§¨ºŽ £¤¶¸¹Ëno();&'945G12D45G13B.0?.0=.0=.0=.0=.0=.0=.0=-/<-/<-/<-/<-/<-/<-/<-/<*,9*,9*,9*,9*,9*,9*,9*,9(*7(*7(*7(*7(*7(*7(*7(*6')5'*3'*3'*3'*3'*3'*3'*3%(1%(1%(1%(1%(1%(1%(1%(/#"(#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'(',+*/.-2105105.-2+*/(','&+&%*&%*(',*).*).'&+#"'"!&"!&"!&"!&"!&"!&"!&"!&$#($#($#($#($#($#($#($#('&+'&+'&+'&+'&+'&+'&+'&++*/+*/+*/+*/+*/+*/*).*).,+0,+0,+0,+0,+0,+0,+0,+0.-2.-2.-2.-2.-2.-2.-2-.023515626969@7:C-/<-PQcö÷ÿöøÿôöÿóöÿñôûðô÷îòóíóñîôôêóòïóôïðòúøùÿúúîä妘˜Ä®°åËÎêÌÎìÉÍôÍÐòÉÍ÷ÊÍöÌÍë¼éúéúè¹çÁ¸æÀ·å¿¶å¿¶çÁ¸â¼³Þ¸¯Þ¸¯á»²á»²Ý·®×²ªÄž›¾›™¶“‘®‹‰¨…ƒ¥‚€¤¤¨…ƒ©†„©†„ª‡…«ˆ†«ˆ†¬‰‡®ˆ…¹Œ»Ž‹½Á”‘Ä—”Çš—ʝšËž›Ú­ªÚ­ªÛ®«Ü¯¬Ý°­Ý°­Ý°­Ý°«ê½¸é¼¶è»µæ¹³å¸²ã¶°âµ¯á´®Ö©£×ª¤Ú­§Ý°ªã¶°é¼¶îÁ»ñÆ¿íÄÀïÈÃôÍÈøÑÌùÒÍ÷ÐËôÍÈñÊÅݶ±Üµ°Ú³®Ø±¬Ó¬§Ï¨£Ê£žÈ¡š¸‘Š³„«…|£}twn›ulœvmwn²Œƒ°Š­‡~­‡~¯‰€¯‰€­‡~ª„{¸‹»’Ž¸‹²‰…­†¯ˆƒ¬‡¤{œys—voŽph…g_z]UqTLjMEeIEVA@T@BR?AP=?O<>K;22:0/80.<42A<9IDAMIF@B?=A@:>=376,0/&*)%)(&*)*.-,0//32154265154.21,2.-;.0A17E6O"'W*/X.2T02Q54M:6HA9DF;?J<>L=AO@NYKprgˆ€©–’β±èÄÆ彾强ÿçãÿê豎ŠB# 1J54H88B87D>@002U]`îùûóþÿóýÿûúÿÿýÿøòô«¢¥…‰¶ª¬½­°Å²´Ä®°Æ­°Ê­¯Ë­­Í­®Î¯­Ñ¯®Ñ¯®Ð®¬Ì­¨Ìª¨Éª¥Ë©§Ê«¦Î¬ªÎ¯ªÉ§¥Ç¨£Ç¥£Â£žÀžœº›–º˜–·š–¬’‘ª’ª’©‘¨Ž§§¦ŽŒª’«“‘¬”’­•“®–”¯—•¯—•°˜˜°šœ­™šª–—¦’“¢ŽžŠ‹œˆ‰š†‡{|yz‹wx‡st„pqmn~jk|jjƒut‚xv…zx‡}{ŒŽ„‚’‡…’ˆ†’‡…’ˆ†–‹‰˜ŽŒœ‘Ÿ•“¢—•£™—ªŸ©Ÿ©žœ¨žœ©žœ¨žœ©žœ§›¢—•ž”’™ŽŒ…ƒˆ}{~trynltljYY[SWZNRUIMPEILBFI@DG@DG?CF>BE<@C;?B;?B=AD?CF?DHCNRBOUBOUCPVCPVDQWDQWDQWJW]JW]KX^LY_MZ`N[aO\bO\bN[dMZcMZcLYbKXaKXaJW`JW`ER[ER[ER[ER[ER[ER[ER[ER[DQZDQZDQZDQZDQZDQZDQZDQZGT]GT]GT]GT]GT]GT]GT]GT]13?-/;*,8/1=<>KKMZWYh^`ofg{jkij_`uTTlTTlaayno„noƒ|}€’vw‰`as?@R<=OXYkrs…‚”uvˆVWi?@R12D=>P^_szz”®®ÊÉÉ喖²ccff‚tt€€œ‰‰¥ˆˆ¤††¢}}™ii…QQmAA];[nr…‰¤½ÁÜìðÿùýÿÊÎ钖±šž¹x|—]a|y}˜¦ªÅßãþ¾ÂÝMQlDHaxyfgyUVh‹ŒžÁÂÔ¡¢´ƒ„–—˜ª·¸Êtu‡,-?%&878J56H34F02A-/>-/<-/<-/<-/<-/<-/<-/<+-:+-:+-:+-:+-:+-:+-:+-:(*7(*7(*7(*7(*7(*7(*7(*7')6')6')6')6')6')6')6')5%'3%(1%(1%(1%(1%(1%(1%(1$'0$'0$'0$'0$'0$'0$'0$'.#"(#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"')(-+*/.-20/40/4.-2+*/)(-(','&+'&+)(-+*/+*/(',$#(! %! %! %! %! %! %! %! %"!&"!&"!&"!&"!&"!&"!&"!&%$)%$)%$)%$)%$)%$)%$)%$)*).*).*).*).*).*).+*/+*/,+0,+0,+0,+0,+0,+0,+0,+00/40/40/40/40/40/40/4/0234637848;8;B9>L>=C86@53:0.6.+6.+;30A96B>;=?<<@?;?>598.21'+*$('#'&)-,*.--10/32043043/32-3/1>41A44B5:D9FNC^_W|u”©š—»§¦¬’“sUW? 4 D"T-2S,1R/3N45K97G@:BE?M@>L?DNCtwn±ª¤Ê¸¶Ñ·¸Ü¹½à¹¼âººÿåâÿë鰎Œ@" * E0/E55B87B<>335 PX[îùýóþÿóüÿñðõúõùñë樂Ÿ†{­¡£´¥¨¹©ªÀ®®Á­®Ä¬¬Æ¬«É­¬Ë­­Ì¬­Í®¬Ø¹·Ö¹µÕ¶´Òµ±Ó´²Ô·³×¸¶×º¶Ó´²Ð³¯Î¯­Ê­©Éª¨Å¨¤Ã¤¢¿£ ²š˜¯š™¯š™®™˜­˜—¬—–¬—–«–•®™˜®™˜¯š™°›š±œ›²œ³ž²ž®œœ¬™›©–˜¥’”¡ŽŠŒ›ˆŠ™†ˆŽ{}z|‹xzˆuw…rt‚oq€mo}mn„xxƒ{y†|{ˆ€~Œ‚Ž†„‘‡†‘‰‡†…ˆ†”Š‰–ŽŒš›“‘Ÿ•”Ÿ—•¤š™£›™¤š™¤œš¥›š¤œš¥›š¤œš¢˜—Ÿ—•›‘”ŒŠŽ„ƒ‡}„zy~xxjkmdil_dgZ_bV[^SX[QVYQVYOTWNSVLQTKPSKPSLQTMRULTWR]aP]cQ^dR_eS`fTagUbhUbhYflYflZgm[hn\io]jp^kq^kq[hq[hqZgpYfoYfoXenWdmWdmUbkUbkUbkUbkUbkUbkUbkUbkXenXenXenXenXenXenXenXen\ir\ir\ir\ir\ir\ir\ir\ir24@.0<,.:24@?ANMO\VXgZ\kYZn]^r`av]^sYYq\\tggrsˆqr†{|Žz{mn€WXj89K78JVWimn€‚”wxŠZ[mFGY56H>?Q_`tww‘¤¤ÀÃÃߘ˜´eedd€rrŽ›‡‡£ˆˆ¤‡‡£€€œqq^^zMMiBC_PQpLOnSVuor‘–™¸«®Í¬¯Î«®Í¼¿Þ¸»ÚŒ®loŽ{~‰Œ«“²¥¨ÇÜßþñôÿÔ×ö“²[^}SVuhkŠux—Ž‘°“²€ƒ¢y|›—š¹»¾ÝËÎíÐÓòÈËꤧÆeh‡x{šš¼„‡¦NQp‚¡¨«Ê¬¯ÎÄÇ汴ӆ‰¨_b25T#'DLPmˆŒ§ØÜ÷ôøÿôøÿÆÊ傆¡‡‹¦\`{UYt‚†¡¤¨ÃÁÅમÉ[_zQUnrs‡ij|[\n‰Šœ¶·É”•§z{‘£¼½Ï€’01C!"467I56H12D/1@,.=,.;,.;,.;,.;,.;,.;,.;*,9*,9*,9*,9*,9*,9*,9*,9')6')6')6')6')6')6')6')6%'4%'4%'4%'4%'4%'4%'4%'3$&2$'0$'0$'0$'0$'0$'0$'0#&/#&/#&/#&/#&/#&/#&/#&-"!'"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"')(-*).,+0.-2.-2,+0*).)(-(','&+'&+)(-,+0,+0(',%$) $ $ $ $ $ $ $ $! %! %! %! %! %! %! %! %$#($#($#($#($#($#($#($#((',(',(',)(-*).*).+*/+*/+*/+*/+*/+*/+*/+*/+*/+*/10510510510510510510501345748959<:=D;>G.0=+MN`ö÷ÿöøÿôöÿóöÿñôûðô÷îòóíóñîôôêóòïóôïðòúøùÿúúîä妘˜½§©àÆÉèÊÌìÉÍóÌÏîÅÉðÃÆíÃÄ潷侵侵㽴⼳Ỳັັè¹ັز©Ö°§Ø²©Ö°§Î¨ŸÅ ˜°Š‡ª‡…£€~œyw—tr”qo”qo”qošwušwu›xvzxž{yŸ|z }{£}z¦zy©|y®~³†ƒºŠ¿’Ã–“Æ™–¹Œ‰·Š‡´‡„²…‚°ƒ€¯‚¯‚¯‚}©|w©|v¨{u¦ys¤wq£vp¢uo¡tn¾‘‹¾‘‹¾‘‹¿’ŒÂ•Æ™“Éœ–ÊŸ˜æ½¹èÁ¼ìÅÀñÊÅôÍÈôÍÈôÍÈóÌÇøÑÌ÷ÐËöÏÊõÎÉ÷ÐËúÓÎþ×ÒÿÙÒ÷ÐÉöÐÇôÎÅñËÂìƽçÁ¸ã½´á»²ã½´á»²Þ¸¯Þ¸¯ß¹°ß¹°Ü¶­Ú´«Ì£ŸÌ£ŸÉ œÅœ˜À™”½–‘º•¶“©†€¥„}›}u’tl‡jb~aYwZRrWPbJH^JK]IJ\HIZFGWEEVDDTDDM?>G<:A64;1/9/-91.;30;639979=<:>=7;:043*.-&*)%)((,+)-,)-,*.-,0/.21/32/518E;6F98D8>H=MUJbe\‚‚z¥ šÂ·³´¥¢ˆtsT<<83<F&)L)-L.0L44H96B=7?B9>H=?M@?M@CMB|vÄ¿¹ÞÏÌ׿¿Øº¼ß½¾Þ»¹ÿåáÿë鯑?# & A-.C55B89@:<549 KRXî÷üóþÿóüÿø÷üÿûÿüöú²¬°–’¿´¸È¼À̽ÀÕÅÆ×ÅÅÙÅÆÚÅÄÞÄÅßÅÄâÆÅâÆÅÚ¾½Û¿¼ÝÁÀßÃÀßÃÂÝÁ¾Û¿¾Ú¾»Ø¼»Õ¹¶Ñµ´Ï³°Í±°Ë¯¬Ç«ªÂ¨§±œ°žœ¯›¯›®œš­›™¬š˜¬š˜®œš®œš®œš¯›¯›°žœ°žœ®žž¨˜™¦˜˜£••Ÿ‘‘›—‰‰”††“……Œ~~‹}}‰{{†xx„vvssqq|ppyw€{x‚}z„|‡‚Š…‚‹†ƒŒ‡„‰„Š…‚Œ‡„Š‡‘Œ‰”Œ–‘Ž—’š•’š•’š•’›–“œ—”œ—”˜•˜•ž™–˜•š•’–‘Ž“Ž‹Š‡Œ‡„Š†…{€x}€ty|otwkpsinqhmpgloejmdilafi`eh_dg`ehafi`hkalp`msantboudqwerxfsygtzjw}jw}kx~kx~kx~lylylyivivhu~hu~gt}fs|fs|er{anwanwanwanwanwanwanwanwcpycpycpycpycpycpycpycpyfs|fs|fs|fs|fs|fs|fs|fs|24@.0<,.:35ABDQOQ^VXgXZiVWkYZn\]r]^s__wdd|ll„st‰rs‡z{vw‰hi{QRd34F45GSTfefx~‘yzŒabtPQc=>P@AS_`tppŠ™™µ»»×˜˜´ggƒdd€ss††¢‡‡£††¢‚‚žww“hh„XXtLMiWXwTWvSVufiˆŽ‘°¨«Ê¬¯Î«®ÍÇÊé¾Áà‰Œ«dg†x{š‹Ž­’•´¥¨ÇÎÑðèëÿÙÜû•˜·il‹il‹nqtw–‡Š©‘”³…ˆ§}€Ÿ–™¸¯²Ñ·ºÙ¾Áà×Úù¢¥Ä^a€{~ £Â~ FIh„‡¦¯²Ñ§ªÉ¶¹Ø¿Âᖙ¸RUt!$C326SˆŒ§ìðÿùýÿðôÿ¿ÃÞsw’{šQUpRVqŽ’­³·Ò¯³Îšž¹sw’koˆuvŠtu‡fgy‡ˆš¨©»†‡™uvˆ’“¥ÉÊ܌Ÿ45G./0B12D-.@.0?,.=,.;,.;,.;,.;,.;,.;,.;(*7(*7(*7(*7(*7(*7(*7(*7%'4%'4%'4%'4%'4%'4%'4%'4$&3$&3$&3$&3$&3$&3$&3$&2"$0"%."%."%."%."%."%."%.#&/#&/#&/#&/#&/#&/#&/#&-! &! %! %! %! %! %! %! %#"'#"'#"'#"'#"'#"'#"'#"'(',)(-*).+*/+*/*).)(-(',)(-(',(',*).,+0,+0)(-&%* $ $ $ $ $ $ $ $########"!&"!&"!&"!&"!&"!&"!&"!&&%*'&+'&+(',)(-*).+*/+*/*).*).*).*).*).*).*).*).32732732732732732732723556859:7;>;>E+LM_ö÷ÿöøÿôöÿóöÿñôûðô÷îòóíóñîôôêóòïóôïðòúøùÿúúîä妘˜¸¢¤ÜÂÅçÉËíÊÎõÎÑîÅÉîÁÄé¿ÀÞµ¯Ü¶­Ûµ¬Ø²©Ö°§Ó­¤Ñ«¢Ðª¡Ï© Æ —¾˜½—ŽÀš‘¿™·‘ˆ­ˆ€œvs–sqmk‰fd„a_‚_]‚_]‚_]‰fd‹hfŽki‘nl•rp™vt›xvŸyv’fe–if›nk¡tq¨{x¯‚´‡„·Š‡Ý°­Û®«×ª§Ó¦£Ð£ Î¡žÎ¡žÎ¡œÚ­¨Ú­§Ù¬¦×ª¤Õ¨¢Ô§¡Ó¦ Ò¥ŸÌŸ™ÌŸ™ÌŸ™Î¡›Ð£Ô§¡×ª¤Ø­¦Û²®Û´¯Ý¶±à¹´â»¶ã¼·ã¼·ä½¸æ¿ºæ¿ºæ¿ºæ¿ºæ¿ºçÀ»çÀ»èÁºâ»´ä¾µæÀ·çÁ¸æÀ·ã½´àº±Ý·®Ú´«Ø²©×±¨Ù³ªÜ¶­Þ¸¯Ý·®Ûµ¬Õ¬¨Óª¦Ð§£Ì£ŸÇ ›Â›–½˜’º—‘®‹…©ˆ ‚z—yqŒogƒf^|_Ww\UhPNePOdONbNM`LK^LJ\JHZKHWHESEBLA=F;7B73?61?61<733314878<;7;:376-10)-,(,+(,+'+*%)(%)('+*+/./320628E<7G<;G=FPGX_Wgle†‡¬©¤Á¹¶§œšo__<**.257 E(,G-0G34C86?<7=@9KAANDISJ}€yº·²ÒÇÅÖÂÃÛÁÄÞÀÂܽ»ÿèåÿïí²–“?%$%@..B66@7:>9=76; + JOUî÷þóýÿôûÿ÷øýûùþúõû´®²˜’–ƽÀÏÄÈÏÃÅÐÁÄÑÁÂÔÂÂÔÂÂ×ÁÃØÃÂÙÄÃÙÄÃ׿¿ØÀ¾ÚÂÂÛÃÁÛÃÃÚÂÀØÀÀ׿½×¿¿Ô¼ºÏ··Íµ³ÍµµË³±Ç¯¯Á¬«©š—¨š™§™˜§™˜¦˜—¥—–¤–•¤–•§™˜§™˜§™˜¦˜—¦˜—¥—–¥—–£˜– ””ž”•›‘’—Ž“‰Š…†Œ‚ƒ‹‚‰€ˆ~†|}„z{‚xy€vw~tu|st|vv|xw~zy€|{‚~}„€†‚‡ƒ‚ƒ~„€†‚ˆ„ƒŠ†…Œˆ‡ŽŠ‰‹Š‘Œ‘Œ’Ž“Ž“Ž”•‘•‘—“’–’‘•‘”“Ž‘Œ‘Œ†Š‹‰‹}…‡yƒv~€u}t|~t|~qy{owymuwksujrtjrtksukuwmx|lymz€o|‚p}ƒr…s€†t‡u‚ˆu‚ˆu‚ˆt‡t‡s€†s€†s€†q~‡q~‡p}†o|…o|…n{„mzƒmzƒfs|fs|fs|fs|fs|fs|fs|fs|cpycpycpycpycpycpycpycpycpycpycpycpycpycpycpycpy13?-/;,.:46BCERPR_WYhWYhWXlYZn[\q_`udd|jj‚oo‡rsˆqr†z{uvˆghzOPb12D23EQRd_`r{|Žz{fgyXYkCDVABT]^rjj„‘‘­µµÑ——³hh„dd€ttƒƒŸ……¡††¢††¢‚‚ž{{—oo‹__{RSoZ[zX[zQTs^a€†‰¨¥¨Çª­Ì¨«ÊÏÒñÄÇ扌«_bux—Œ®“–µ¤§ÆÂÅäØÛúÑÔ󖙸x{šz}œmpkn…ˆ§’•´…ˆ§|ž“–µ¥¨Ç§ªÉ­°ÏÓÖõ›ž½adƒ“²±´Óx{š:=\ƒ†¥´·Ö¡¤Ã¬¯ÎËÎí£¦ÅHKj7 *(,I„ˆ£òöÿùýÿòöÿ¶ºÕfj…y}˜MQlHLgŠŽ©·»Ö£§ÂŽ’­}œswz{~‘no…†˜ž°}~st†–—©ÔÕ疗©78J))*<-.@+,>.0?+-<+-:+-:+-:+-:+-:+-:+-:(*7(*7(*7(*7(*7(*7(*7(*7%'4%'4%'4%'4%'4%'4%'4%'4#%2#%2#%2#%2#%2#%2#%2#%1"$0"%."%."%."%."%."%."%."%."%."%."%."%."%."%."%,! &! %! %! %! %! %! %! %#"'#"'#"'#"'#"'#"'#"'#"''&+(',)(-*).*).)(-(','&+)(-(',(',*).-,1,+0)(-&%*################"!&"!&"!&"!&"!&"!&"!&"!&&%*&%*'&+(',)(-*).+*/+*/)(-)(-)(-)(-)(-)(-)(-)(-32732732732732732732723556859:8+LM_ö÷ÿöøÿôöÿóöÿñôûðô÷îòóíóñîôôêóòïóôïðòúøùÿúúîä妘˜ ŠŒÅ«®Ï±³Ò¯³×°³Ì£§È›žÀ–—ª{¨‚y¥v¡{rwn™sj–pg•ofžxo—qh“md˜ri¢|s¨‚y£}tœwo¡{x›xv”qoŽki‰fd‡db‡dbˆec’om•rp™vtŸ|z¥‚€ª‡…®‹‰³ŠÆš™ÊšÏ¢ŸÖ©¦Þ±®å¸µê½ºíÀ½ðÃÀíÀ½è»¸ã¶³à³°Þ±®Þ±®Þ±¬Ù¬§Ø«¥×ª¤Õ¨¢Ô§¡Ò¥ŸÑ¤žÐ£Ô§¡Ó¦ Ò¥ŸÒ¥ŸÓ¦ Ö©£Ø«¥Ù®§á¸´à¹´à¹´à¹´áºµâ»¶ã¼·ä½¸ß¸³áºµå¾¹èÁ¼êþëÄ¿êþêüêüéúè¹çÁ¸å¿¶ã½´â¼³á»²çÁ¸ä¾µàº±ß¹°ß¹°Ý·®Ú´«×±¨×®ªÔ«§Ð§£Ì£ŸÆŸšÀ™”»–¹–°‡«Šƒ¢„|™{sŽqi„g_}`Xy^WmSRkSSjRRgRQePObNMaML`NL`NL[LIVHEOD@K@JVL]g^krjˆ‹„­®¨±®©œ—“f\Z0%#$,-.=')A-.C33A75;:59>7:F<>KA=J@IUKtyrŸž™·­«Ë»»ØÄÅ×½¾ÜÀ½ÿëçÿó𳙘?*)%?/0D8:@7<=8>87= + HLUïöþôýÿôûÿ÷÷ÿú÷þøóú²­³——¼ÀËÂÇɾÂÑÅÉÑÅÇÔÆÆÔÆÅÖÆÆÙÇÇÚÈÈÚÈÆÙÅÆ×ÃÄÕÁÂÔÀÁÔÀÁÕÁÂ×ÃÄÙÅÆÖÂÃÒ¾¿Í¹ºÌ¸¹Ì¸¹Ê¶·Å±²À®® •“ž”’ž”’“‘œ’œ’›‘›‘Ÿ•“Ÿ•“ž”’“‘œ’›‘šŽš›’“—‘‘•‘‘‹‹‡‰‰ƒƒ†€‚„~~†€‚…„~€‚||€z|~xx|vxzvuwuvwwuywxzzx}{|~~|€~|}}}{€~„‚ƒ……ƒˆ†‡‡‡…‰‡ˆ‰‰‡‹‰Š‹‹‰‹Œ‹ŽŽŽŒ‹ŒŒŒŠ‹ŒŒŒŠ‹ŒŒŒŠŽŒŒŽ†ŒŒ‚ŠŒ‡‰|„†yƒyƒyƒyƒu}s{}qy{nvxmuwmuwnvxnxzs~‚r…s€†u‚ˆw„Šy†Œz‡{ˆŽx…‹x…‹w„Švƒ‰u‚ˆt‡s€†s€†rˆq~‡q~‡p}†o|…o|…n{„n{„gt}gt}gt}gt}gt}gt}gt}gt}`mv`mv`mv`mv`mv`mv`mv`mv\ir\ir\ir\ir\ir\ir\ir\ir.0<+-9-/;:./AHI[cdv€“€’jk}_`rNOaCDVKL`cc}ppŒ{{—{{—xx”{{—€€œƒƒŸŠŠ¦„„ ……¡„„ rrŽllˆUUqQRnbc‚il‹cf…TWvz}œ¤§Æ¶¹Ø¦©ÈÌÏîÂÅ䣦Ågj‰?Bakn›ž½ÅÈçÍÐ蠟Ơ£Â—š¹˜›ºˆ‹ªSVuUXwƒ†¥‚…¤dg†knŸ¢Áµ¸×•˜· £ÂÓÖõ—š¹^a€„‡¦¥¨Çvy˜ILktw–ÉÌë±´Ó¤§ÆÍÐïÎÑðhkŠ0&*G¡¼ñõÿó÷ÿ÷ûÿ®²ÍRVq‚†¡nrFJeƒ‡¢¨¬Ç‘•°ƒ‡¢quz~—…†š‰Šœ‚”˜™«•–¨nokl~´µÇÚÛ탄–&'9(&'9)*<)*< "1')8')6')6')6')6')6')6')6%'4%'4%'4%'4%'4%'4%'4%'4#%2#%2#%2#%2#%2#%2#%2#%2"$1"$1"$1"$1"$1"$1"$1"$0 ". #, #, #, #, #, #, #,"+"+"+"+"+"+"+")"!'"!&"!&"!&"!&"!&"!&"!& $ $ $ $ $ $ $ $$#($#($#($#($#($#($#($#($#(%$)'&+(','&+$#("!& $ $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"''&+'&+'&+'&+'&+'&+'&+'&+(',)(-*).,+0-,1/.30/401356848937:69@;>G46C-GHZö÷ÿøúÿöøÿñôýîñøïóöíñòèîìçííëôóìðñíîðôòóÿýýìâ㝏–€‚¿¥¨Ê¬®Íª®Õ®±Ñ¨¬Ï¢¥ÇžÍ¤žË¥œÉ£šÈ¢™Æ —Äž•Ã”Âœ“¾˜¼–¹“Š´Ž…¯‰€©ƒz¥v¡|tžxu›xv™vt—tr—tr˜us™vtšwuŸ|z }{£€~§„‚¬‰‡°‹³Ž·‘ŽÈœ›ÌŸœÏ¢ŸÒ¥¢Ô§¤Ô§¤Ó¦£Ò¥¢ß²¯ß²¯ß²¯ß²¯ß²¯ß²¯ß²¯ß²­Õ¨£Ó¦ Ð£Ð£Ñ¤žÑ¤žÏ¢œÌŸ™Ó¦ Ô§¡Ö©£Ø«¥Ù¬¦Ø«¥×ª¤Õª£Ø¯«×°«Ø±¬Ø±¬Ù²­Ù²­Ú³®Ú³®à¹´áºµã¼·å¾¹å¾¹ä½¸ã¼·â»´å¾·ä¾µã½´â¼³á»²àº±ß¹°ß¹°ã½´ã½´â¼³àº±ß¹°Þ¸¯Ý·®Ü¶­Ø¯«Õ¬¨Ñ¨¤Î¥¡Ê£žÅž™½˜’¶“²‰¬‹„¢„|™{srjˆkcƒf^€e^rYUqYWs[Yv^\x`^wb_ta]r`\uc_k\WbSNTGAD71j_YshbLE?11/8<;7;:-10'+*(,+(,+&*)#"'+*-10.21043376376.400;33@79F=CNFS]Uovo”¢§¡£¤Ÿ Ÿ›pli.)&( 0(&2('>./?/0=11;639:57>75@84A84A8NYQipi€{¢šÍÁÁáÑÒàÌÍÙ¿¾ôÛ×ÿçåµ C/. 7))A78<6:B@E@?E HLUëòüòúÿð÷ÿüüÿÿüÿíêñ³°·ž™ ¹²¹Å¿ÃÌÃÆÊÁÄËÁÂËÁÂÊÀ¿Ë¿¿ËÀ¾ËÀ¾Í¿¾Ã³´Åµ¶Ç·¸Êº»Êº»Êº»È¸¹Ç·¸É¹ºÇ·¸Åµ¶À°±ºª«´¤¥®žŸ©›› –•›“‘–ŽŒ‘‰‡ˆ†‘‰‡”ŒŠ—›“‘˜Ž•‹•‹—˜Ž•‹Š‡–’““‘’‘’Ž‹ŽŠˆ‰‰‡Šˆ†‡‰‡Š†„…ƒ„„‚ƒ†„‡‡…†„‚…€€€‚€€€‚€€€‚€€€‚€ƒ€‚€€‚€}~}}|~}}}|~}}}|~}}}|~}}}|~}ƒƒ…‚„ƒƒƒ…‚„ƒƒƒ…‚„ƒƒƒ…€„…t|~s}~s}~s}~s}~s}~s}~s}~hrshrshrshrshrshrshrshrtny}lylylylylylylyjw}jw}jw}jw}jw}jw}jw}jw}er{er{er{er{er{er{er{er{_lu^kt^kt]js[hqZgpZgpYfoMZcLYbLYbKXaJW`IV_IV_HU^JW`JW`JW`JW`JW`IV_IV_IV_.0<-/;02><>JOQ^_anfhwgixefzefzfg|gh}jj‚ppˆvvŽ{|‘‚ƒ—~‘noYZlABT,-?/0BGHZ^_q{|Ž}~ij|`asSTfGHZIJ^WWqff‚uu‘xx”yy•~~š„„ ˆˆ¤ŠŠ¦‡‡£……¡„„ ttllˆRRnRSojkŠwz™knNQp{~©¬Ë±´Ó¤§ÆÅÈ縻ڙœ»fiˆDGfqt“¤§ÆÑÔóÅÈ穬ˣ¦Å¢¥Ä®±Ð‡Š©BEdWZy“²ƒ†¥be„il‹Ÿ¢ÁÇÊ駪ɜŸ¾ÀÃ╘·WZyƒ†¥¾Áàˆ‹ªG35B,FGYõöÿøúÿöøÿðóüîñøïóöíñòèîìæììêóòëïðìíïóñòÿýýëá✎Ž®˜šÖ¼¿áÃÅãÀÄëÄÇç¾Â帻ݳ´Ò©£Ðª¡Î¨ŸÌ¦É£šÇ¡˜ÅŸ–Äž•¹“Š¸’‰´Ž…¯‰€ª„{¥v¡{ržyqwtšwu˜us—tr—tr˜usšwu›xv£€~¥‚€¨…ƒ­Šˆ²·”’»˜–¿™–Èœ›ÌŸœÑ¤¡Õ¨¥Ù¬©Û®«Û®«Û®«Ú­ªÚ­ªÚ­ªÚ­ªÚ­ªÚ­ªÚ­ªÚ­¨Õ¨£Ò¥ŸÐ£Ð£Ñ¤žÑ¤žÏ¢œÌŸ™Ê—ÌŸ™Ð£Ó¦ Õ¨¢Ö©£Ö©£Õª£Ú±­Ù²­Ù²­Ù²­Ù²­Ù²­Ù²­Ù²­ß¸³áºµã¼·å¾¹æ¿ºæ¿ºæ¿ºå¾·â»´â¼³â¼³â¼³â¼³â¼³â¼³â¼³ìƽìƽìƽìƽìƽëżëżëżܳ¯Û²®Ú±­Ù°¬Ö¯ªÐ©¤Æ¡›½š”­Š„¨‡€ž€x•woŒog…h`€c[~a[y]Zx^]z`_|db~fdge|gdzgc{hdvd`hVRM>9H94”‡¨›•le_11/6:96:9.21(,+(,+&*)$('! (,+487;?>@DC@DC8<;-31,711>5;HAERIS^Xgqi}†Ž•Ž“™•”Žfhe./*'(#33140->45=11:1262/3523:34?95B95B;BMEOUQac^‹‡†Âº¸çÛÝòâââÍÊ÷ßÛùäá´ ŸM;;'6*,;045.5<9@@?G + =ALØßé÷ýÿ÷ûÿ÷õÿýúÿðíö¿¼Ã¬§®¾¹ÀþÄýÁ¼À¼¾Á»½ÀººÁ¸¹À¸¶¿·µ¿·µ»¯±º®°º®²¹­¯¹­±¹­¯¹­±º®°¾²¶¾²´½±µº®°·«¯²¦¨®¢¦ª ¡›••™•’˜”“—“•‘“Œ’Ž‘Š‹Š‰†Œˆ‡‰†‘Œ“Œ’ŽŽ‹‹‹Š‹ˆ‰‹†‡‰„…‡ƒ„†‚„‚„‡ˆŠ„…‡‚ƒ…€ƒ€‚}~€z{}xy{~|€|€|€|€|€|€|€x|}x|}w{|vz{vz{uyztxytxyuyzuyzuyzuyzuyzuyzuyzuyzuyzuyzuyzuyzuyzuyzuyztzzksujtujtujtujtujtujtujtu_ij_ij_ij_ij_ij_ij_ij^ikcqtcpvcpvcpvcpvcpvcpvcpv`ms`ms`ms`ms`ms`ms`ms`ms[hq[hq[hq[hq[hq[hq[hq[hqTajTajS`iR_hQ^gQ^gP]fP]fGT]FS\FS\ER[DQZCPYCPYBOXGT]GT]GT]GT]GT]GT]GT]GT]/1=/1=46B@BNOQ^\^kcetegvgh|efzdezfg|kkƒrrŠxx{|‘€”z{kl~VWi?@R-.@12DFGYXYkuvˆ{|Žkl~dew]^pPQcIJ^FF`YYullˆuu‘zz–‚‚ž‰‰¥©ŠŠ¦‹‹§††¢ƒƒŸww“jj†MMiTUqmnƒ†¥nq@Cby|›¯²Ñ«®Í¤§Æ³¶Õ«®Í”—¶mpSVu}€Ÿ«®ÍÑÔó²µÔ¦©ÈŸ¢Á¨«ÊÀÃℇ¦7:Ybe„“²y|›TWv\_~Ÿ¢ÁâåÿÄÇ柢Á´·Ö¡¤ÃRUtvy˜ÖÙø¢¥Ä36UKNm³¶Õ«®Í˜›ºÃÆåØÛúps’8!>?C`—›¶ëïÿòöÿ÷ûÿµ¹ÔMQljn‰tx“\`{sw’¡¼®²Í–šµnrjn‡Š‹Ÿ‰Šœ‘£º»Í§¨º\]oZ[mÁÂÔÛÜîyzŒ.',-?,-?*+=%'6&(7&(5&(5&(5&(5&(5&(5&(5$&3$&3$&3$&3$&3$&3$&3$&3#%2#%2#%2#%2#%2#%2#%2#%2"$1"$1"$1"$1"$1"$1"$1"$0 ". #, #, #, #, #, #, #,"+"+"+"+"+"+"+")"!'"!&"!&"!&"!&"!&"!&"!& $ $ $ $ $ $ $ $#"'#"'#"'#"'#"'#"'#"'#"'%$)&%*&%*&%*&%*$#("!&! % $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'&%*&%*&%*&%*&%*&%*&%*&%*(',(',)(-+*/-,1.-2/.3/0245737826958?:=F35B,FGYõöÿ÷ùÿõ÷ÿðóüíð÷îòõíñòçíëåëëèñðéíîêëíñïðÿýýéßàšŒŒ«•—Ó¹¼Ý¿Áß¼Àæ¿Â⹽ᴷٯ°Õ¬¦Ó­¤Ðª¡Ì¦È¢™ÅŸ–Âœ“Àš‘³„±‹‚­‡~©ƒz¤~u zqwnšumwt™vt˜us—tr—tr˜usšwu›xv¥‚€§„‚©†„­Šˆ°‹´‘¶“‘º”‘ÊžÍ Ð£ Ó¦£Õ¨¥Ö©¦Ö©¦Ö©¦Ø«¨Ø«¨Ø«¨Ø«¨Ø«¨Ø«¨Ø«¨Ø«¦Õ¨£Ò¥ŸÐ£Ñ¤žÒ¥ŸÓ¦ Ñ¤žÎ¡›Í šÎ¡›Ð£Ò¥ŸÓ¦ Ó¦ Ò¥ŸÐ¥žÑ¨¤Ð©¤Ñª¥Ñª¥Ñª¥Ñª¥Ñª¥Ñª¥Ò«¦Ô­¨×°«Ú³®Üµ°Ý¶±Ý¶±Üµ®Ú³¬Ù³ªØ²©Ö°§Ô®¥Ó­¤Ñ«¢Ñ«¢Ü¶­Ú´«Õ¯¦Ï© È¢™Á›’¼–º”‹Â™•Â™•Ä›—Åœ˜Ãœ—¼•±Œ†¨…ª‡¥„}œ~v“umŠme„g_€c[~a[ƒgc†jg‰mj‰pl‹rnŠrnŠrnˆsn‰vp‹zszibJ;4B3,©š“Á²«f]X331376487043+/.(,+%)( $#(,+8<;EIHNRQKON<@?+1/'2./<5;GCERKO[W[f`itpty{†‚vzYb_/51!,2.;A?8:7B>?>88623..,+/..724?;8E>5A=:E?=FCJOKooo œ›¾¸ºÈ¼¼¸¦¤Ã°¬Ã±¯’ƒ€K=<2&&>37?6;<7=EBIHFQ!#/:>I·½ÉèîüíñýÞÜéàÝèÎËÖ¡ž§‹ˆ‘–“š™–™”š¢¡¢žŸ£Ÿ ¥¡ ¦¢¡§£¢¨¤£©¥¤²©¬±¨«°§¬°§ª²©®¶­°º±¶¼³¶À·¼À·ºÀ·¼¾µ¸¼³¸¸¯²´«°°ª¬ žŸŸŸŸŸŸžžœœœœšš˜˜˜˜——•ŽŽŽŒŒŠ‹‹‹‹‘‘‘‘‘Ž„ˆ‰„ˆ‹ƒ‡Š…ˆ€„‡ƒ†~‚…}„ƒ†ƒ†~‚…{‚w{~uy|tx{sx{ty|ty|ty|ty|ty|ty|ty|ty|qvyqvypuxotwnsvnsvmrumruinqinqinqinqinqinqinqinqfknfknfknfknfknfknfkndln_ij^jj^jj^jj^jj^jj^jj^jjT``T``T``T``T``T``T``T_aXfiXekXekXekXekXekXekXekUbhUbhUbhUbhUbhUbhUbhUbhTajTajTajTajTajTajTajTajP]fO\eO\eN[dN[dMZcMZcLYbIV_HU^HU^GT]FS\ER[ER[DQZGT]GT]GT]GT]GT]GT]GT]GT]/1=24@:P/0B56HEFXTUgpqƒ}~st†lmij|\]oMNb==WQQmggƒtt{{—ƒƒŸ‹‹§«ŠŠ¦ŽŽª‡‡£ƒƒŸzz–ii…JJfWXtwx—Ž‘°jmŒ.1Pnq¨«Ê ¿™œ» ¿¦©È™œ»}€Ÿgj‰‹Ž­«®Íº½ÜŸ¢ÁŸ¢ÁŸ¢Áª­Ì¹¼Ûvy˜/2Q^a€”—¶€ƒ¢ORqNQpž¡ÀìïÿÇÊ镘·¾ÁàÁÄãX[z_bÚÝü½Àß;>]9=(.,%0,+735A==IECOKMYUYeaapkcrm\kfNZV1=9+'.=8AMI;DAHHHA?@555,.-)/-.748C?>JF4@<6A=8A>EKIbdc€€€‹Œ‘ˆ‰‘ƒ‚˜‰„›Œ‰…wveYY_UVjadibilgnpowljwVXd`boª®ºÐÖäÝáíÌÊ×ÐÍØÈÅг°»®«¶¿¼ÅÌÉÐÎÍÓÔÒ×ÔÔÖÕÕ××××ØØØÚÚØÛÛÙÝÛÜÀ»¿¾¹½¼µ¼·²¶¶¯¶³®²´­´³®²ª£ª©¤¨©¢©¦¡¥¤¤Ÿšžœ•œ—•˜Œ‡‹Š„ˆ‡€„ƒƒ‚ƒ‚€„ƒ…„€„ƒƒ‚~‚}€}€|€{~z~z‚x€‚wv~€u}t|~s{}rz|goqjrtltvjrtfnpdlnfnpiqsgoqfpqgoqfpqgoqfpqgoqfpqemodnodlnblmckmaklaik`jk]eg\fg]eg\fg]eg\fg]eg\fg]eg\fg]eg\fg]eg\fg]eg\fgYeeYeeYeeYeeYeeYeeYeeYeeT``T``T``T``T``T``T``T_aVdgVciVciVciVciVciVciVciVciVciVciVciVciVciVciVciZgpZgpZgpZgpZgpZgpZgpZgpYfoYfoXenXenXenXenXenWdmXenWdmWdmVclUbkTajTajTajQ^gQ^gP]fP]fO\eN[dN[dMZc-/;35A>@LIKWRTaY[h_apbdsefzabv`avgh}ss‹||”}}•{|‘yzŽrs…fgySTf=>P34F;>XRRnhh„ttzz–ƒƒŸŠŠ¦ŽŽªŠŠ¦ŽŽªˆˆ¤……¡{{—ii…KKg[\x‡ˆ§”—¶`c‚"A^a€•˜·¯‰Œ«•˜·«®Í¢¥Ä‰Œ«tw–”—¶¦©ÈŸ¢ÁŽ‘°—š¹«®Í³¶Õ¤§Æ_b%(GCFe‚…¤€ƒ¢NQpILk¥¨ÇöùÿÎÑð¤§ÆÍÐïãæÿmpPSrÎÑðÔ×öQTs25T}€ŸœŸ¾˜›ºÂÅäÚÝükn*-LmqŽÈÌé·»Ö¤¨Ã¢¦Áâæÿêîÿ€„ŸFJeptosŽjn‰“®ÇË槫Æ^b}RVoƒ„˜…†˜žŸ±ÛÜî¿ÀÒYZlKL^¸¹ËÙÚìst†'%-.@-.@*+=')8$&5$&3$&3$&3$&3$&3$&3$&3#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2#%2"$1"$1"$1"$1"$1"$1"$1"$0 ". #, #, #, #, #, #, #,"+"+"+"+"+"+"+")"!'"!&"!&"!&"!&"!&"!&"!& $ $ $ $ $ $ $ $! %! %! %! %! %! %! %! %'&+&%*%$)$#($#(#"'#"'#"' $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'$#($#($#($#($#($#($#($#(&%*'&+(',)(-+*/,+0.-2-.034626704736=9BA376$*($.-'31,860<:3B?>MJM\YXheRb_L\YBUQ/B>"51/D??RN=CII[_`rsu}}€|{ƒxv†xu‡yx€usymmyop~ux}v}’””“›…ƒƒˆŠ™Ÿ¢±­°ÁÀÂÑÖÕãØÖãÍËØ¿½Èµ³¾±°¸¯®´©ª¯¢¡¦ ¡£Ÿ ¢Ÿž›œšœ›™›˜˜š™‹‰Ž‹‰ŽŒ‡Ž‰‡ŒˆƒŠƒ†‚}„~|yt{xv{zu|xv{xszsqvrmtmlqhlmfllcii`ff_ee^dd_ee_eeouuouuouunttlrrkqqkqqirqdnocmobln`jl_ik]gi\fh[eg^hjakmcmoakm]gi[eg]gi_ikeoqdoqeoqdoqeoqdoqeoqdoq^hj]hj^hj\gi\fhZeg[egYdf]gi\gi]gi\gi]gi\gi]gi\gi_ik^ik_ik^ik_ik^ik_ik^ik^jj\jj\jj\jj\jj\jj\jj\jj\jj\jj\jj\jj\jj\jj\jj\jk^lo^kq^kq^kq^kq^kq^kq^kqantantantantantantantantivivivivivivivivgt}gt}gt}gt}hu~hu~hu~hu~ivhu~hu~gt}fs|er{er{er{_lu^kt]js[hqYfoWdmUbkTaj)+735ABDPMO[TVcY[h_apcet_`t\]q]^sijyy‘ƒƒ›™{|‘xypqƒfgySTf=>P78JABTHI[RSeghz†‡™Ž €’wxŠno\]qFF`XXtllˆuu‘zz–‚‚žŠŠ¦ŽŽª‰‰¥‰‰¥‡‡£‰‰¥{{—ii…OOk_`|‡ˆ§ƒ†¥FIh7TWv¯›ž½•˜·œŸ¾±´Ó¤§Æ¯y|›“–µ¡¤Ã“–µtw–‰Œ«¶¹ØÁÄ㗚¹QTs%(G47V‚…¤Ž‘°dg†Z]|§ªÉèëÿÀÃ⥨ÇÏÒñîñÿ„£PSr½Àßâåÿnq,/Nru”›ž½ ¿ÆÉèÖÙøcf….1P„ˆ¥ïóÿÍÑ유»‘•°ÇËæÙÝø“—²VZuhl‡ptmqŒŠŽ©ÆÊ姫ÆQUpIMf€•…†˜œ¯Ö×éÀÁÓabtLM_«¬¾ÕÖètu‡*$*+=+,>*+=%'6#%4#%2#%2#%2#%2#%2#%2#%2"$1"$1"$1"$1"$1"$1"$1"$1#%2#%2#%2#%2#%2#%2#%2#%2"$1"$1"$1"$1"$1"$1"$1"$0 ". #, #, #, #, #, #, #,"+"+"+"+"+"+"+")"!'"!&"!&"!&"!&"!&"!&"!& $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $(','&+%$)#"'#"'#"'#"'$#( $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'%$)&%*'&+(',*).,+0-,1,-/235156/3625<8;D02?)CDVòóÿõ÷ÿóõÿíðùëîõìðóêîïåëéÞääáêéâæçãäæêèéý÷÷âØٓ…… ŠŒÆ¬¯Ì®°Ë¨¬Ñª­Î¥©Î¡¤ÈžŸÃš”Àš‘¼–¸’‰²Œƒ­‡~ª„{¨‚y£}t zqœvm˜ri–pg–pg—qh˜sk™sp—tr–sq–sq˜usšwuzxŸ|z­Šˆ­Šˆ¯ŒŠ±ŽŒ²´‘¶“‘¸’À”“Á”‘Á”‘Á”‘Ö“Ř•Çš—Éœ™Â•’•’•’•’•’•’•’•¡to smžqk sm£vp¤wq£vp¡tnÁ”ŽÂ•Ä—‘ؒؒ֐•¿”Ü³¯Û´¯Ú³®Ú³®Ú³®Ú³®Ú³®Ú³®ïÈÃðÉÄòËÆòËÆòËÆðÉÄîÇÂíƿ濸è¹êÄ»íǾñËÂôÎÅ÷ÑÈøÒÉñËÂñËÂðÊÁïÉÀíǾìƽëżëżḴ޵±Û²®Ù°¬×°«Ô­¨Í¨¢Ç¤ž³Š¯Ž‡§‰¡ƒ{›~v—zr•xp”wo¦‰ƒ¬‹³–’µ˜”³—“³—“µœ—¸¡›º£¼¨¡³ ™xe^B1)œ‹ƒßÑÈ·¬¦LKG154/327;:154*.-(,+"&%$(')-,,0//32376487,0/!'% *)#/-'31)53*964C@BROL_[I\XDYT=RM.E?&=7,E?6OI;NJGPOCGH:>?2881:97A@@LJGSQ@LJ:FD:DCFONV\\aefeijkijwmkxmiujhukjxnoulorlpvqw{x}{†oo{xw…}Ž~y|ŒŽ€Ž€~‹vtwu‚vtrr|wwuv{notlpskopimnhlkfljfkgeihhglkjppmtrqwurytsytqxrqwmjqnmsqnurqwurysrxtqxqrwz‚y‚{„ƒ|…„{„ƒw€r{zoxwŠ‰ƒŒ‹…Ž…Ž„Œ„Œ†Ž‡‘‹–˜ˆ–—‰”–„’“ƒŽŽŠŒ|Š‹{†ˆy‡ˆz…‡uƒ„s~€o}~p{}p{}ny{ny{ny{ny{ny{ny{ny{ny{juwjuwitvhsuhsugrtfqsfqshsuhsuhsuhsuhsuhsuhsuhsuitvitvitvitvitvitvitvguvguuguuguuguuguuguuguuguuiwwiwwiwwiwwiwwiwwiwwiwxjx{jw}jw}jw}jw}jw}jw}jw}n{n{n{n{n{n{n{n{u‚‹u‚‹u‚‹u‚‹u‚‹u‚‹u‚‹u‚‹p}†q~‡q~‡rˆrˆs€‰s€‰tŠq~‡q~‡p}†p}†o|…n{„mzƒmzƒgt}fs|cpy_lu[hqWdmUbkS`i%'324@DFRPR^UWdY[h`bqegvYZnVWk[\qkl€€˜‰‰¡„„œ{|‘wxŒop‚fgyTUg>?Q<=OFGYJK]PQcbcu‡ˆš—˜ª„…—uvˆno_`tNNh__{ppŒww“{{—ƒƒŸŒŒ¨‘‘­ˆˆ¤ƒƒŸ‡‡£©yy•ii…UUqbc|}œhkŠ(+J4TWv’•´½Àß·ºÙ¤§Æ¯²Ñž¡À’•´€ƒ¢“² ¿’•´dg†‚¡¼¿ÞÌÏ´ILk,/N;6FC'B;)D=.IB7NH@JI?EE9??4=<5>=:DC@LJEQONZXGSQGQPPYXU^]U[[TZZZZZ\TRaVT`TTdZYkabf]`b\`lgmgdmigreeqmlzkm|tu‡ps†yzŒ|{‹usgeromzss}ppz||„|„y|y~yz€€|‚€{„}ƒ~„„‚‡‰‚‰‚‚Š‚‰‰€ˆ€€ˆŠ‰‘‹‹“Ž–‘‘™•”œ””œ•”œ’•š¥§ž¨§¡«ª¢¬«¡«ªœ¦¥—¡ ”žŸ©¨¢¬«¤®­¤®­¢¬«¢¬«¤®­§±°§µ¶¤´´£±²ž®®›©ª—§§•£¤’¢¢‘Ÿ ŽžžŒš›‰™™‰—˜†––„’“‚‘x†‡x†‡x†‡x†‡x†‡x†‡x†‡x†‡y‡ˆx†‡x†‡w…†v„…uƒ„uƒ„uƒ„r€r€r€r€r€r€r€r€s‚s‚s‚s‚s‚s‚s‚s‚r€€q€q€q€q€q€q€q€r‚r‚r‚r‚r‚r‚r‚r‚‚r€ƒr…r…r…r…r…r…r…t‡t‡t‡t‡t‡t‡t‡t‡w„w„w„w„w„w„w„w„u‚‹vƒŒvƒŒw„x…Žy†z‡z‡s€‰s€‰rˆrˆq~‡p}†p}†o|…fs|dqz`mvZgpTajO\eKXaHU^#%224@EGTQS`VXeZ\k`bqghzTUiSTiZ[pmm…ƒƒ›§†† {{“xyop‚fg{UVh?@T>?QIJ^LM_NOc^_q‡ˆœ›œ®…†šrs…lm`avSSmccrrŽxx”{{—„„ ŽŽª””°ˆˆ¤€€œ‡‡£«xx”ii…YYudeyz˜[_|;5WZy–š·Ô×öÍÑȩ­Ê˜›º™º‰Œ«Ž’¯™œ»•˜·hkŠ…ˆ§ÁÄãÑÔ󏒱@Cb+.MFIhnqƒ†¥‚¡|ž˜›ºÁÄã²µÔ©¬Ë¿ÂáÔ×öˆ‹ªTWv—š¹Þáÿ—š¹7:YhkŠ’±—š¹ÇÊéÖÙøeh‡;>]œ ½ìðÿÞâý³·Ò«¯Ê¤¨Ã”¯Ž’­}œX\wimˆy}˜†Š¥¼ÀÛ ¤¿=A\AE^ƒ„™‰Šž‘’¦¹ºÎ²³ÇpqƒWXj›œ®ÐÑãz{ 2!#%4(*9)+:"$3"$1"$0$#1"$0$#1"$0$#1"$0#"0!#/#"0!#/#"0!#/#"0!#/%$2#%1%$2#%1%$2#%1%$2#%1$#1"$0$#1"$0$#1"$0$#1"$0"", #,"", #,"", #,"", #,!!+"+!!+"+!!+"+!!+!!)"!'"!&"!&"!&"!&"!&"!&"!& $ $ $ $ $ $ $ $########)(-'&+%$)"!&! %"!&$#(%$) $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'"!&"!&"!&"!&"!&"!&"!&"!&$#(%$)&%*(',)(-+*/,+0-,112404712714;99C/1='BDSôóÿôöÿôôÿíðùììôëîóëìðåéêÙâáÞçæßäçÞâãççéùõöÞÕ֐‚‚Žz|²™œ¸›Ÿ´”—º–š¸‘”¸Ž’´ŠŒ¬…€©„|¦y¢}užyqšum—rj–qi–qi“nfjb‹f^Še]Œg_jb‘lf–so–sq•rp–sq˜us›xvž{y }{ }{£€~©†„°‹¸•“¿œšÅ¢ Ê¤£á·¸áµ´à²´Þ²±ß±³à´³ãµ·ä¸·Ù«­Ø¬«Ù«­Ø¬«Ù«­Ø¬«Ù«­Ø¬«ß³°Û²®Ü°­Ü³¯áµ²á¸´ã·´ß¶²Öª§Õ¬¨Ø¬©×®ªÙ­ªÕ¬¨Õ©¦Ò©¥Ó­ªÑ®ªÐ­«Ð­©Ï¬ªÏ¬¨Î«©Î«§Ó°®Õ²®×´²Ù¶²Û¸¶Ú·³Ú·µØ·²âÁ¼á½åÄ¿æÇÂëÊÅìÍÈðÏÊïÐËìËÆéÊÅêÉÄçÈÃèÇÂäÅÀåÄ¿ãÄ¿Ò³°Ò³°Ò³°Ò³°Î±­Æ©¥ºžš²–’¥Œ‡¢‰„œ…—€z‘}vŽzsŒxqŒxq¡‰…¨Œ¯š•±œ—¯š•®›•³ š¸¥Ÿµ¤¿®§¼­¦‚um6)!aTL—Š‚†}v[[Y598.219=<376,0/-10*.-154<@?EIHFJIAED8<;+/.$")(+541=;1=;-<9/>;0@=H[WJ]Y;PK-B=,C=(A;+B<8KG:DC;AA6?>5>=6@?;ED@JICOMXbaOYXLVUR\[W`_Xa`_eekmlc]]kcamectkl{uwuoqsnr„|{~}…„„Ž††’||ˆ’”¡˜š§–˜¥¢¢®›¦’› Ÿ§¤¤¬››£¡¢§ž¡¦œ £œ £œ ¡œ ¡›¡Ÿœ¢ œ¢ œ¢¢•Ž”•Œ’••’’š“”™¥žŸ¤  ¨¢£¨££«£¤©¢¢ªŸ¢§¡¦©Ÿ¨§ž§¦¦¥›¤£™¢¡˜¡ — Ÿ¡ª©¤­¬¦¯®£¬«Ÿ¨§¦¥Ÿ¨§¡«¬Ÿª¬›©ªš¥§”¢£‘œž‹™š‰”–†”•‹–˜†”•…’ƒ‘’ˆ“•†”•†‘“€Ž~Œ~Œ~Œ~Œ~Œ~Œ~Œ~Œ|Š‹|Š‹{‰Šzˆ‰zˆ‰y‡ˆx†‡z…‡y„†z„†z„†z„†z„†z„†z„†z„†}‡‰}‡‰}‡‰}‡‰}‡‰}‡‰}‡‰|‡‰{†ˆy‡ˆ{†ˆy‡ˆ{†ˆy‡ˆ{†ˆy‡ˆy„†w…†y„†w…†y„†w…†y„†y„†xƒ‡xƒ‡xƒ‡xƒ‡xƒ‡xƒ‡xƒ‡xƒ‡v…v…v…v…v…v…v…v‡v€‰v€Šv€Šv€Šv€Šv€Šv€Šv€Šz„Ž{…{…|†~ˆ’‰“‰“€Š”v€Šv€Šu‰t~ˆs}‡s}‡r|†r|†cmwaku\fpU_iNXbHR\CMW@JT)+:02?<>MHJYSUdZ[m^_s_`u\]rXXp``xxx’ŽŽ¨’’®‡‡£||–op…mn‚hi~cdx^_t\]q\]r]^rZ[pabvmnƒwxŒyzpq…abwUVk]]w__{ss›ŠŠ¦ŒŒ¨——³‹‹§……¡‚‚ž……¡‚‚žxx”ssrsŒ©`d#@(,G\`}œ »×ÛøÐÔ寧ǚž¹ž¢¿‘¬„ˆ¥“—²“—´“°sv•’•´ÕØ÷ÌÏîx{š:=\MPo\_~_bps’mp‘”³¯²Ñ¡¤Ã¦©È³¶ÕÃÆ尳ҏ’±SVuˆ‹ªÚÝüš¼LOnx{šˆ‹ªš¼»¾Ý¼¿Þwz™]`˜œ¹ÄÈ庾٬°Ë»¿Ú©­ÈkoŠw{–€„Ÿ^b}jn‰ƒ‡¢ˆŒ§ ¤¿£§Âfj…FJcppˆ†‡œ“”©µ¶Ë§¨½qr†\]q‰Šœ»¼ÎŒŽ;=L +')613@)+8&(4##/##-$"/##-$"/##-$"/##-#!."",#!."",#!."",#!."",!, *!, *!, *!, *" -!!+" -!!+" -!!+" -!!+((((((((" +!!+" +!!+" +!!+" +"!) % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&! % $ $#"" $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&%$)%$)%$)%$)%$)%$)%$)%$)$#($#($#($#($#($#($#($#('&+'&+(',)(-)(-*).+*/+*/0/5**232:22<64?44>#==IûùÿùùÿóñüèèòäâíããëáàèÙÜáÓÝßÓßßÙãå×ÜßàáåøöùÖÐԃx|rbeŒxz ‡‹ª‘±‘–¯Œªƒˆ¨„¤¤}£€|¢{¡~z }yŸ|xž{w™vr™vr™vr™vr™vr™vr™vr™vr¨†„¨†„¨†„¨†„¨†„¨†„¨†„¨†„±²Ž´’·•“º˜–¼š˜¾œšÀœœÓª®Ó©­Õ¨¯Ò¨¬Ó¦­Ð¦ªÒ¥¬Ï¥©Ò¥¬Ð¦ªÓ¦­Ñ§«Ô§®Ò¨¬Õ¨¯Ó©­Ú³¶Ø´¶Ú³¶Ø´¶Ú³¶Ø´¶Ú³¶Ø´¶Ó¬¯Ñ­¯Ô­°Ò®°Ô­°Ò®°Ô­°Ñ¯°Ç©©Äª©Äª«Äª©Å«¬Å«ªÅ«¬Å«ªÈ®¯É¯®Ë±²Í³²Ð¶·Ó¹¸Õ»¼Õ½½×ÃÄ×ÅÅÙÅÆÙÇÇÚÆÇØÆÆØÄÅÖÄÄÚÆÇØÆÆØÄÅÔÂÂÓ¿Àо¾Ï»¼Ë»»Å¹¹Â¸·¿µ´º°¯µ«ª±§¦®¤£¬¢¡‡……ƒŠ‚€…}{€xv|trxpnvnl‹ƒ…ƒˆ†”ŒŠ™‘›–“Ÿš— ›˜ª¥¢©¤¡¢šŽŠ‡vrod`]\XUZYUJLK?CB8<;<@?FJIIMLBFE9=<.213768<;;?>7;:043(,+"(&'$'0-6?<>IE;FB0;7*51+629EA:FB9EA5A=1=9.=84@<8D@:C@5>;2;83<93<94=::C@ALHU^[Xa^\ebbkhhqnnwtr{xx|{ƒƒƒ…„‚‡†„Šˆ‰‹ŒŽ’‘““•ŸŸ¡ŸŸ¡Ÿž£Ÿž£Ÿž£žŸ£žŸ£žŸ£ž¢ž¢ž¢žž žž žž žž ž ›œžš›™›š˜š™–˜—•—–”–•“”–“–”—’•š•™œ—šŸšž¡œŸ¤¡¤°³¸«¯²¥¨­¢¦©¡¤©¡¥¨Ÿ¢§¡¤”˜›“˜›“˜›“˜›“˜›“˜›“˜›“˜›™ž¡™ž¡˜ —œŸ–›ž”™œ”™œ“˜›‰Ž’†Ž‘‡Œ„Œ„‰€ˆ‹†Š‡Š‚‡‹€ˆ‹†Š‡Š€…‰~†‰„ˆ}…ˆz††wƒƒt€€uwƒƒwƒƒt€€p||wƒƒwƒƒwƒƒwƒƒwƒƒwƒƒwƒƒx‚ƒx}y|y|y|y|y|y|y|y|{~ƒ~†‚‡}€…|„~†€ƒˆ‚†~…~‚‹}„Œ…Ž€‡…Ž|ƒ‹|€‰y€ˆz~‡w~†y}†y€ˆ|€‰|ƒ‰‡Š~ˆŠ}‡‰}‡‰|†ˆ{…‡z„†z„†yƒ…yƒ…z„†z„†x‚„v€‚t~€r{€v†vˆvˆvˆw€‰w€‰w€‰w€‰|…Ž~‡‚‹”…Ž—ˆ‘š‰’›‰’›Š‘›‚‰“ƒ‡’ƒŽ{Šw{†sw‚ptnr}imxdhs[_jQU`GKV>BM9=H6:E)+:/1@:42=86A86A$@>IúøÿûùÿöôÿíëöèæñæäïâàëÚÝä×àåØãåÞèê×ßâÞâåùøýáÜàš‘”’ƒˆ©–š¹£¦À¥ªÅ¦«Á¡¦º—¹–š¬Š‰ª‹ˆ«‰‡§ˆ…¨†„¤…‚¥ƒ£„¤‚€¢ƒ€¤‚€¢ƒ€¤‚€¢ƒ€¤‚€¢ƒ€­‹‰«Œ‰­‹‰«Œ‰­‹‰«Œ‰­‹‰«Œ‰³‘²“·•“¸™–½›™¾ŸœÂ žÃ¡ Î§¬Î¥­Î¥­Í¤¬Ì£«Ë¢ªË¢ªË¢ªÍ¤¬Î¥­Ï¦®Ð§¯Ñ¨°Ò©±Óª²Òª²Ú·½Ø¸½Ø¸½Ø¸½Ø¸½Ø¸½Ø¸½Ø¸½Ï¯´Ï¯´Î®³Î®³Í­²Ì¬±Ë«°Ê«°Ãª­Á«­Àª¬¾¨ª½§©»¥§º¤¦º¤¦¼¦¨½§©¿©«Â¬®Ä®°Ç±³È²´Ç´¶ÑÂÅÐÄÈÑÅÉÓÇËÓÇËÑÅÉÐÄÈÏÃÇÑÅÉÐÄÈÎÂÆÌÀÄɽÁÇ»¿Å¹½Â¹¼¹·¸···³³³¯¯¯«««§§§¤¤¤¢¢¢”””“““ŒŒŒˆˆˆ„„„‚‚‚€€€†††‡‡‡ˆˆˆ‹‹‹‘‘‘‘‘‘””””””………vvvkkkgggegfQSRJNMGKJLPOSWVTXWLPODHG'+*+/.043154.21*.-'+*%+)!'%&/,2;89B?6?<.74+41.74;DA;DA;DA8A>4=:3<96?<:C@5>;5>;6?<7@=4=:2;8:C@DMJ`ifbkhfolktqqzwv|zƒ€~„‚…‡†‡‡‡‰‰‰‹‹‹ŽŽŽ‘‘‘“““”””™™™™™™™™™™™™™™™™™™™™™™™™˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜——————–––•••”””“““’’’‘“’‘•“–‘•˜“—š•™œ—›ž˜œŸ™ ¦ª­¢¦©œ £™ ™ ˜œŸ—›ž•™œ‹’‹’‹’‹’‹’‹’‹’‹’‘”Œ“Œ“‹’ŠŽ‘‰ˆŒˆŒ‚…Š„‰€ƒˆ~†}€…{~ƒz}‚y|vy~vy~ux}ux}tw|sv{sv{qvzq{|myyjvvjvvmyyo{{nzzmyyq}}q}}q}}q}}q}}q}}q}}s{}uv{vu{vu{vu{vu{vu{vu{vu{vu{xw}{z€zyxw}wv|yx~zz‚~~ˆz|ˆxz†y{‡|~Š}‹{}‰y{‡}‹|~Š{}‰{}‰|~Š~€Œƒ…Ž†‹„ŒŽ„ŒŽ„ŒŽ„ŒŽ………„ŒŽ„ŒŽ…„ŒŽƒ‹€ˆŠ~†ˆ|„‡~…~…~…~…}„Ž}„Ž}„Ž}„ŽƒŠ”…Œ–ˆ™Œ“Ž•Ÿ– – – ˆŠ–†ˆ”ƒ…‘z|ˆvx„rt€qsbdp^`lUWcKMYBDP:B]$(C=A\bf€„Ÿ˜œ·Œ«¡¥À«¯Ê¤¨Ãœ »•™´Ž’­Ž’­‘¬^a€‡Š©ÕØ÷ÊÍìps’69XQTs`c‚dg†RUtZ]|“²·ºÙ¶¹Ø°³Ò­°Ïª­Ì¦©È–™¸`c‚•˜·êíÿ¨«ÊPSror‘’•´š¼Ÿ¢Á±´Ó¤§Æ—š¹°´Ñ²¶Óª®Éž¢½§«Æ‡‹¦GKfptœ »… jn‰w{–… “®¡¼}œZ^w›‰‰¡™™±ÀÀؐ‘¦abwop„yzŒ£¤¶…‡–KMZ(&(4*,8(*6%'3%#.%#.%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" + ) ) ) ) ) ) ) )" +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&! % $ $#"" $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)'&+'&+(',)(-)(-*).+*/+*043;0.964?53>97B;9D&@>Iøöÿúøÿöôÿîì÷èæñåãîáßêÙÜãÖßä×âäÚäæÑÙÜÕÙÜðïôßÚÞ¤›žšŽ’®ž¡º¦¨¼£§½ ¤¹™ž°•¯’¬ŒªŒŠª‹‰¨Šˆ§ˆ†¤†„¤…ƒ¢„‚¦‡…¥‡…¦‡…¥‡…¦‡…¥‡…¦‡…¥‡…°‘¯‘°‘¯‘°‘¯‘°‘¯‘±’±“‘µ–”·™—»œš½ŸÁ¢ Â¢£É¦ªÉ¤«É¤«È£ªÇ¢©Æ¡¨Æ¡¨Æ¡¨ÄŸ¦Å §Æ¡¨È£ªÊ¥¬Ì§®Î©°Î«±Ö¶»Õ¶»Õ¶»Õ¶»Õ¶»Õ¶»Õ¶»Õ¶»Ë¬±Ê«°Éª¯Æ§¬Ä¥ªÂ£¨À¡¦¾¡¥¹£¥¶¢£´ ¡±ž®š›«—˜©•–¨”•²žŸ³Ÿ µ¡¢·£¤¹¥¦»§¨½©ª½ª¬Ì½ÀÊ¿ÃËÀÄÌÁÅÌÁÅËÀÄÊ¿ÃɾÂȽÁǼÀź¾Ã¸¼Àµ¹¾³·¼±µº±´°®¯®®®«««¨¨¨¤¤¤¡¡¡žžž–––•••“““‘‘‘ŽŽŽŒŒŒŠŠŠ‰‰‰ˆˆˆˆˆˆˆˆˆˆˆˆ‡‡‡‡‡‡††††††………„„„|||vvvqqqnnnlnmRTSFJI@DCHLKW[ZZ^]LPO=A@#'&%)(&*)%)("&%"&%%)('-+#)'$-*,521:7.74(1.+411:7:C@:C@:C@8A>5>;5>;7@=9B?/855>;GD6?<1:79B?FOLhqnjspmvsqzwu~{y‚|…‚…ƒƒ‚ƒƒƒ„„„†††ˆˆˆŠŠŠŒŒŒŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ”Ž’•“–”—‘•˜’–™“—š“—š–š’–™‘”‹’Œ“Œ“ŠŽ‘ˆŒ€„‡€„‡€„‡€„‡€„‡€„‡€„‡€„‡…ˆ…ˆ€„‡€„‡ƒ†~‚…~‚…~‚…{~ƒz}‚y|wzvy~tw|sv{ruzmpulotlotknsjmrilqhkpglpiqsfpqcmnblmdnogqrgqrgqrhrshrshrshrshrshrshrsiqsklqlkqlkqlkqlkqlkqlkqlkqpourqwsrxrqwontnmspourrzyyƒtw€svtw€vy‚wzƒuxsv{~‡{~‡{~‡|ˆ~Š„…ˆ‘†‹‘”˜Ž–˜—™˜š‘™›’šœ“›“›˜š‘™›‘™›‘™›—™Œ”–‰‘“‡’„‹‘ƒŠ’‚‰‘ˆ€‡†Ž~…}„Œ€‡‚‰‘†•‰˜Œ“›”œ”œ”œ„‡‚…Ž~Šy|…tw€or{knwiluWZcRU^JMVADM9.1:+.7')8-/>79HBDSMN`UVh[\q^_t\\tbbzssŠŠ¤••±¬ƒ‚¡zz–vvŽop…gh}bcxcdygh}lm‚op…gh}ijlm‚qr‡tuŠrsˆlm‚gg??Y;;WppŒ¸¸ÔÐÐ잞ºˆˆ¤““¯ŠŠ¦„„ ~~š||˜zz–ttkk‡deSTp37R%)DAE`fj…~‚„ˆ£vz•™¸µ¹Ôª®Éœ »•™´‘¬“®ˆŒ§mp’•´ÛÞýÊÍìor‘31<86A<:E&>7@=7@=8A>8A>+415>;AJGCLI9B?2;8:C@HQNgpmhqnirolurnwtqzws|yv|zuwvwwwwwwyyyzzz{{{||||||~~~~~~~~~~~~~~~~~~~~~~~~„„„„„„„„„„„„„„„„„„„„„„„„‡‡‡ˆˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰ˆŠ‰”‘”‘”Ž’•Ž’•“–“–”—ŠŽ‘‡‹Ž„ˆ‹ƒ‡Š„ˆ‹„ˆ‹‚†‰€„‡~‚…~‚…~‚…~‚…~‚…~‚…~‚…~‚…ƒ†ƒ†ƒ†ƒ†ƒ†~‚…~‚…~‚…z}‚z}‚x{€wzux}tw|sv{ruznqvnqvmpuknsjmrhkpgjofkodlnblmakl`jk`jk`jk_ij_ij^hi^hi^hi^hi^hi^hi^hi_giabgbagbagbagbagbagbagbagjiokjpkjpihnfekfekhgmjkpyyuxtw€tw€wzƒx{„vy‚tw€wzƒx{„x{„z}†~Š‚…Ž†‰’‡Œ’•šž”œž”œž•Ÿ•Ÿ–ž –ž —Ÿ¡“›“›“›’šœ˜š•—Š’”ˆ“~…‹}„Œ|ƒ‹z‰x‡v}…u|„t{ƒsz‚u|„x‡|ƒ‹~…†Ž†Ž†Žx{„vy‚ru~loxfir`cl\_hY\eJMVFIR?BK7:C03<*-6'*3%(1)+:.0?68GACRLM_UVh[\q_`u__wggyy“‹‹¥‘‘­ŠŠ¦€Ÿ||˜wwlm‚^_tWXmZ[pcdylm‚qr‡hi~jk€no„st‰wxuv‹op…jj‚HHb77Shh„»»×ááý¯¯Ë«¬©‡‡£€€œ||˜zz–uu‘kk‡`a}EFb'+F*.IOSny}˜Œ«y}˜`d‡‹¦±µÐ­±Ì—›¶Ž’­Ž’­“—²†Š¥‚¡š¼ÙÜûÄÇæloŽBEd_b`c‚ILk[^}˜›ºÃÆ嫮ͫ®ÍÚÝüçêÿ¦©Èz}œdg†SVuž¡ÀìïÿœŸ¾=@_il‹›ž½¤§Æ”—¶¢¥Ä®±Ð«®Í°´ÑÐÔñÁÅপŖšµ^b}9W[v›Ÿº“®uy”ei„qu“®”˜³|€›sw€€š„„œ““«ÏÏç ¡¶RShabvƒ„––—©wyˆNP]')6')5&(4)+7$&2&$/&$/&$/&$/&$/&$/&$/&$/#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&! % $ $#"" $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&%$)%$)%$)%$)%$)%$)%$)%$)&%*&%*&%*&%*&%*&%*&%*&%*'&+'&+(',)(-)(-*).+*/+*0108.,720;/-864?<:E%97BúøÿüúÿöôÿêèóâàëáßêâàëßâéÓÚàÐÛÝÑÛÝÓØÜÝáäêéîÊÈːŠŒ’‡‹¥–™¯œž¯™œ±˜›°–™­”¯’–¢ˆ‰¡‡†¡‡ˆ †… †‡Ÿ…„Ÿ…†Ÿ…„ †‡ †… †‡ †… †‡ †… †‡ †…¡‡ˆ¡‡†¡‡ˆ¡‡†¡‡ˆ¡‡†¡‡ˆ¡‡†ž„…ž„ƒ †‡¢ˆ‡¤Š‹§Œ¨Ž©£‰Œ¢‰¢‡Œ¡ˆŒ¡†‹Ÿ†Š …Šž…‰£ˆ£ŠŽ¦‹§Ž’«•¬“—¯”™¯–šÀª­¿«­¿«­¿«­¿«­¿«­¿«­¿«­»§©º¦¨¸¤¦µ¡£³Ÿ¡°œž®šœ­™›©–˜§—˜¨•—¥•–¦“•£“”¤‘“¢’“­šœ«›œ®›®žŸ±ž ° ¡³ ¢±££±§¨±¨«³ª­´«®´«®³ª­±¨«°§ª«¢¥ª¡¤¨Ÿ¢¦ £š¡˜›Ÿ–™œ–˜•“””””’’’ŽŽŽŒŒŒ‹‹‹ŠŠŠ‹‹‹ŠŠŠ‰‰‰‡‡‡………ƒƒƒ‚‚‚|||uuummmhhheee```XXXPRQEGF/32#")-,AEDMQPAED/32598/32'+* $#  "!%#$*("+(&/,)2/'0-%.+,526?<7@=7@=7@=8A>9B?9B?8A>8A>+415>;AJGENK=FC6?<=FCIROfolfolgpmgpmhqniroirolrpmonnnnnnnooooooooopppppprrrrrrrrrrrrrrrrrrrrrrrr{{{{{{{{{{{{{{{{{{{{{{{{€€€‚‚‚ƒƒƒ„„„…………‡†”‘”‘”Ž’•Ž’•“–“–”—Œ“ŠŽ‘‰‰‹’Œ“‰‡‹Ž†Š†Š†Š†Š†Š†Š†Š†Š†Š†Š†Š†Š†Š†Š‡‹Ž‡‹Ž€„‡ƒ†~‚…}„{‚z~x|x|tx{swzquxptwnrulpskorinq_gi`hjaik`hj]egZbdX`bW_aT\^T\^T\^T\^T\^T\^T\^V[^VW[WV[WV[WV[WV[WV[WV[WV[]\a]\a]\a[Z_XW\YX]]\a_`e}}…y|ƒwzx{‚{~…{~…z}„x{‚qt{ru|sv}uxy|ƒ}€‡‚…ŒƒˆŽ› ¤™¡£˜ ¢˜ ¢—Ÿ¡—Ÿ¡–ž –ž ‡‘‡‘†Ž…‚ŠŒ‡‰{ƒ…y„ov|ov|mtzlsyjqwhougntfmsfmshoukrxov|qx~rysz€rypszmpwhkrbel[^eTW^ORYLOV@CJ376)-,%)(%)(%)("&%#!#)'#,)(1.-63+41)2//857@=6?<6?<6?<8A>;DA;DA9B?7@=0965>;=FCCLI@IF13B8:IBDSMN`WXj_`ucdyjj‚ppˆ{{•ƒƒ€€œ{{—~}œ……¡uuabwGH]89N<=RLMb^_thi~qr‡op…no„qr‡uv‹xyŽxyŽvvŽ__y>>ZQQmŽŽª¼¼Ø¥¥Á••±––²˜˜´’’®‰‰¥€€œ}}™qq`a}$%A!A`’•´êíÿîñÿ‚…¤|žíðÿöùÿ§ªÉ\_~8;Z69X–™¸òõÿ§ªÉDGfjmŒ·ºÙÅÈ瑔³‚¡•˜·¥¨Ç©­Ê¸¼Ù¯³Îšž¹‘•°fj…-1Lbf–šµ~‚fj…^b}|€›“—²‡‹¦rv‘koˆssppˆ§ÍÍ墣¸Z[pdeyž°©ª¼gix79F$&3,.:*,8.0<$&2(&1(&1(&1(&1(&1(&1(&1(&1#!,#!,#!,#!,#!,#!,#!,#!,%#.%#.%#.%#.%#.%#.%#.%#." +" +" +" +" +" +" +" +#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&! % $ $#"" $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&%$)%$)%$)%$)%$)%$)%$)%$)(',(',(',(',(',(',(',(','&+'&+(',)(-)(-*).+*/+*02190.931<-+664?@>I(75@ðîùøöÿúøÿñïúæäïàÞéÝÛæÚÚâÝäêÙãå×ßâØÝááåèèçìÊÈ˞š›ˆ‚˜Žž™‰Š”‚‚‹wxkmik…qs†rt‡su‰uwŒxzŽz||~‘}|~|~|~|~|~|~|~|~”€‚”€‚”€‚”€‚”€‚”€‚”€‚”€‚•ƒ•ƒ”€‚”€‚“’~€’~€}Ž‚Œ€‚Ž‚‹Œ}€‰}‹|ˆ|~…vy„xz‡x{†z|‰z}ˆ|~‹|Š~€†z|…{|…{|…{|…{|…{|…{|…{|ƒyzƒyz„z{…{|†|}‡}~‡}~‰}Š~€‹~Œ€‚€ƒŽ‚„„ƒ…˜‰Œ–ŠŒ™Š—‹š‹Ž™›Œ™‘ˆ‹ŠŒ‘‹““‘‹ŠŒ‰‹Š„†‰ƒ…‡ƒ…‚|~€z|~xz|xy{yzyyyyyyxxxxxxwwwwwwwwwtttttttttttttttssssssssssssqqqooollliiifffdddcccUUUSSSQQQPPPOOONNNKKKHJI687598487043*.-)-,-101547;:.21&*)(,+043265*.- &$!'%$-*-634=:3<9.741:78A>5>;5>;5>;8A>;8A>?HECLICLIDMJGPMx~w€}v|t}zr{xpyvnwtoustvuuuutttsssrrrqqqppppppnnnnnnnnnnnnnnnnnnnnnnnnqqqqqqqqqqqqqqqqqqqqqqqquuuvvvxxx{{{}}}€€€‚‚‚‚„ƒ‘•“–‘•˜“—š•™œ—›ž˜œŸ™ ¡¤¡¤ž¢¥¡¥¨¤¨«¥©¬¢¦©Ÿ£¦šž¡šž¡šž¡šž¡šž¡šž¡šž¡šž¡ž¢¥ž¢¥Ÿ£¦ ¤§¡¥¨¢¦©¢¦©£§ª¤¨©£§¨¢¦§¡¥¦Ÿ£¤ž¢£œ ¡œ ¡–š›•™š“—˜‘•–Ž’“Œ‘ŠŽ‰Žƒˆ‹}‚…qvy`ehNSVCHK>CF>CF=BE=BE=BE=BE=BE=BE=BE>BE=>@>>@>>@>>@>>@>>@>>@>>@==?>>@==?<<><<>@@BFFHKLPstynqvmpunqvpsxqtyorwmpucfkcfkcfkehmhkplotpsxqvznsvltvltvltvltvksuksuksut|~s{}s{}qy{muwiqsemobjl\dg\dg\dg[cf[cf[cfZbeZbegorjrumuxpx{s{~t|t|t|wztw|nqvfin^afVY^PSXLOT8;@58=149,/4(+0&).%(-%(-/1@24C9;JCETNOaXYk`avef{mm…ss‹{{•™zz–ww“~}œ‰‰¥uu]^s?@U./D23HEF[XYndezvwŒrsˆmnƒmnƒrsˆwx{|‘||”ee>>ZAA]llˆ——³«‘‘­œœ¸››·––²ŒŒ¨ƒƒŸ‚‚ž€€œssab~+,H'+FW[v~‚ª®ÉÆÊ圠»|€›:>YX\w‘•°Ÿ£¾“—²—›¶—›¶›ŸºŠ¬¨«ÊæéÿÂÅäZ]|36USVuJMl:=\œŸ¾õøÿñôÿvy˜ru”òõÿóöÿ­°Ïbe„9<[03R’±óöÿ¬¯ÎFIh`c‚¿ÂáÖÙø—š¹z}œ“–µ£¦Å ¤Á±µÒ¬°Ë™¸“—²lp‹37R_c~‡‹¦y}˜[_z_c~„ˆ£‘•°‚†¡sw’cg€qq‹ii‘‘©ÉÉᙚ¯_`umn‚£¤¶±²Äcet.0=!#0.0<,.:/1=$&2(&1(&1(&1(&1(&1(&1(&1(&1#!,#!,#!,#!,#!,#!,#!,#!,%#.%#.%#.%#.%#.%#.%#.%#." +" +" +" +" +" +" +" +$"-$"-$"-$"-$"-$"-$"-$"-" +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $ $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&"!&! % $ $#"" $ $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&%$)%$)%$)%$)%$)%$)%$)%$)(',(',(',(',(',(',(',(','&+'&+(',)(-)(-*).+*/+*043;20;53>/-886ACAL!*97BäâíïíøõóþïíøäâíÛÙäÔÒÝÎÎÖ¸¿Å´¾À­µ¸§¬°©­°¬­±––˜sqrtnp‡~’††“……”„„~~‰uvˆuw‚os‚ru„sy‡wz‹z€Ž~…‘„‘€†‘„‘€†‘„‘€†‘„‘€†‘„‘€†‘„‘€†‘„‘€†‘„‘€†‘„•„Š•…ˆ“‚ˆ’‚……Ž~|‚Œ}€ˆ}†}~†}€…|}„{~ƒz{ƒz}‚yz~ux~uvvyvw€wz€wxx{xy{uw{uu{uw{uu{uw{uu{uw{uuwqsxrrztv|vvy{{{ƒ}†}~†{‡}~‡|€‡}~ˆ}ˆ~ˆ}‰€ŠƒŠ€‹€„‹‚Œ…Œ‚ƒŒ…‚††€‚‡ƒ‰ƒ…Š„†Š„†‰ƒ…‡ƒ†€‚{}€z|y{|vxztvxrtvprtpqtrsssssssrrrrrrrrrrrrrrrllllllkkkkkkjjjjjjjjjiiigggeeebbb___ZZZWWWTTTRRRIIIIIIIIIIIIIIIIIIIIIHJI?A@?CB>BA9=<154,0/+/.-10043'+*"&%)-,7;:;?>154$*( &$%.+0969B?8A>2;82;87@=5>;4=:5>;9B?=FC>GD:C@6?<;4=:>>EEGKLNjkofindglehmgjohkpfindgl_bg^af_bg`chbejfinilqkptuz}s{}t|~u}v~€wwx€‚yƒx€‚wu}rz|muwiqsfnp\dg\dg\dg]eh]eh]eh]eh]ehksvmuxpx{t|v~w‚x€ƒw‚{~ƒwzqtyilq`chX[`QTYNQV7:?58=149-05*-2(+0'*/'*/57F?APKM\OQ`PQcVWidezpq†oo‡ppˆqq‹ttŽyy•›…„£ˆˆ¤}}•hi~JK`56K12G>?TQRg^_tfg|pq†st‰vwŒ€•„…š‹Œ¡––®nnˆTTp''C..J[[w……¡««Ç¶¶Ò°°Ìœœ¸““¯ˆˆ¤‡‡£ŠŠ¦xx”hi…,-I.2M\`{‰¨²¶ÑÄÈ㹽؈Œ§04O*.Iw{–¼ÀÛ³·Òž¢½¡¼¢¦ÁœŸ¾¯²ÑÚÝü²µÔ:=\&)HSVu7:YSVuÈËêõøÿéìÿknru”åèÿ÷úÿ¡¤Ãvy˜EHg69X‡Š©ÕØ÷©¬Ëil‹^a€˜›º¿ÂᣦŒ•´ £Â¡¤Ã¥©Æ§«È¥©Äž¢½‘•°w{–[_zae€~‚hl‡IMhW[v}œ¦ªÅ}œ]a|lp‰ssuuŒŒ¤ÂÂڋŒ¡kl‚ƒ—‘’¤©ª¼vx‡/1>#(*6.0<$&2')5)'2)'2)'2)'2)'2)'2)'2)'2&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'"!&"!&"!&"!&"!&"!&"!&"!&$#($#($#($#($#($#($#($#("!&! % $! %$#((',+*/,+0(',$#(*).-,1'&+)(-+*/%$)&%*'&+)(--,10/40/4,+0(',*).*).+*/+*/-,1/.30/4106,+342=1/:.,7FDOhfqnlw][f ž©¥£®©§²¨¦±¢ «›™¤˜–¡––ž˜£• —œ –›Ÿ–š—˜œ˜˜š˜–—™“•›’“œ’‘‘‘œ‘žŸž›Œ‘šŽ’œ–ž’– “š¢–š¤—ž¥™ “š ”˜Ÿ’™ž’–—‘•œ–œ”œ–œ”š”™‘—Š‘–ŠŽ•ˆ”ˆŒ•ˆ”ˆŒ“†„ˆŽˆ‹ƒŠ}„ˆ}…ƒƒ€ƒ~‚‚~|€€|}€{{|zuyyuvxswwstupttpqsnrrno€{€|}€{€|}|€}~|€}~‚}‚~‚}‚~‚}‚~‚}‚~ƒ}…|†}‚‡~ˆ„ˆ‚‰€…‰€ƒ„‰„‡ŒƒˆŠ„‰€…‡~†}‚„~€„~€‚~}~€|}{|~z{}yz}yzwstvrsuqrsopqmnnjkmijlhikijjjjjjjjjjjjjjjjjjjjjjffffffeeeddddddcccbbbbbb___\\\XXXTTTQQQPPPPPPQQQIIIIIIHHHHHHHHHHHHGGGFHGJLKGKJDHG=A@376+/.%)("&%#"!%$(,+7;:KONPTS6:9%#&/,+411:78A>1:7-637@=+415>;GD>GD;DA1:7%.+1:7-631:7<;@<;A;:BMKVXVa\Zerp{“‘œžœ§”’¨¦±­«¶²°»³±¼°®¹¬ªµª¨³©©±¢¨›£¦œ¡¥› ¤œ £›Ÿ¢Ÿžœ£Ÿ ¤žž¦žœ§Ÿ¨žœ¨žœªŸªžž©ž¤¨ž¦¨ž¦§¥§¥§¥¦œ¤¦œ¤£™¡£™¡¢˜ ¡—Ÿ –ž –žŸ•Ÿ•ž”œ“›œ’š›‘™™——•–Œ”–Œ””Š’“‰‘’ˆ…ƒ‹‹‰‰‡††‚€ƒ€€‚‚}€}}~|||~ƒ„„„†‡…ˆ‰‰‹ŽŒ’“‘”•“– ž¡žœŸ›™œ—•˜“‘”ŒŠŠˆ‹‚€ƒ‚€ƒ‚€ƒ‚€ƒ‚€ƒ‚€ƒ‚€ƒ‚€ƒ…€„…€„†€„†…ˆ‚†ˆƒ‡‰ƒ‡‰„ˆ‰ƒ‡‡‚†ˆ‚††…†€„ƒ~‚„~‚‚}†‚ƒ„‚ƒ…‚‚€ƒ€€~‚~}~|xyzxy{wxxvwxtuustvrssqrvvvvvvvvvvvvvvvvvvvvvvvvssssssrrrqqqppppppoooooohhheeeaaa]]]ZZZXXXXXXXXXOOOOOONNNLLLKKKIIIHHHFHGLNMKONJNMFJI>BA598,0/'+*#'&#'&%)(043AEDFJI376!" #,)(1.-634=:/85)2/.74+414=:;DABE-.2-14126)-0*+/(,/*+/(,/*+/(,/*+/*+-)))))'))'))'))'))'))'))',,*++)--+886JJHZZXeechjgmnpjnojnqimnhlogklgkngkldhkfjkimpmqrrvyvz{y}€z‚‡Œ†Ž‰‘“‹“•Œ”–‹“•Š’”Š’”†Ž„ŒŽ‰‹}…‡yƒu}qy{pxzemoclkaik^gf\df\ed\df]fejrtjsrksulutmuwnwvnvxoxwlpsjnoeil^bcTX[JNOBFI=AB6:=59:269045/36/3404715657FBDSOQ`SUdPQcSTf_`uklttŒuuww‘{{•€€œ……¡Š‰¨©zz’ijRSh@AV;CFEJJINKJOLKQnmu„‚“‘œ’›š˜£¬ªµ³±¼®¬·®¬·²°»¶´¿¸¶Á·µÀ´²½³±¼²²º¥¨¯£¨¬£¨¬¢§«¢¦©¡¥¨¤¤¦£££©§¨¬¨§­©¦¯ª§²ª§³«¨µ«©µ¬­²«²°«²¯ª±®©°¬§®«¦­ª¥¬©¤«¦¡¨¦¡¨¥ §¤Ÿ¦¤Ÿ¦£ž¥¢¤¢¤ ›¢ ›¢Ÿš¡˜Ÿ›–š•œ™”›˜“š“Ž•’”‹’Ž‰Œ‡Ž‰„‹ˆƒŠ…‚‰€…€„€„~ƒ~}‚|}}|{|€Š‰ŽŠ‹Œ‹Ž“‘•’“—•”™–•šŸ¢› ›™ž˜–›•“˜’•Ž“’‚€…‚€…‚€…‚€…‚€…‚€…‚€…‚€…ƒ†ƒ††‡…ƒˆˆƒ‰†„‰‰„Š‡…Š‡‚ˆ…ƒˆ‡‚ˆ„‚‡†‡ƒ†…€†ƒ„ˆ†‡‡‡‡‡…†††††„…„„„…ƒ„„„„ƒ‚‚‚‚ƒ‚‚‚‚ƒ‚‚€‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††………………„„„ƒƒƒƒƒƒyyywwwtttooollljjjiiihhh[[[ZZZWWWTTTQQQNNNKKKIKJJLKIMLJNMIMLCGF9=;/85-633<94=:3<9>GDQZW_hecli]fc`ifclienkfolhqnktqpvty{zzzzzzzyyyyyyyyyyyyyyy~~~}}}~~~„„„‡‡‡‰‰‰ŒŒŒŽŽŽ“““–––“““”””œœœ¡¡¡¢¢¢¥¥¥¬¬¬³³³¸¸¸ººº¹»ºÂÃÇÁÅÈÂÆÉÂÆÉ¿Ãƺ¾Áµ¹¼±µ¸¦ª­¥©¬¢¦©¡¥¨¡¥¨£§ª¦ª­¨¬¯³·º°´·¯³¶³·º»¿ÂÄÈËÊÎÑÍÑÔÐÔ×ÏÓÖÍÑÔÊÎÑÆÊÍÂÆɽÁÄ»¿À¹¾º¼Á»½Â¼º¿¹²·±ª¯©¦«¥¤©£‘–’Œ’Œ‰Žˆ~ƒ}|{|{w|xijl`aeNMR67;+*/*+/-,1+,0*).)*.*).)*.*).)*.*).**,))')*%)*%)*%)*%)*%)*%)*%+,''(#+,'>?:Z[Vpqlxytvxuwyxuyxtxyswvswxrvuquvqutkopmqpostswvw{|z~}}‚}ƒƒ†‹Ž†Žˆ’‰‘“Š’”Š’”ˆ’‡‘‡‰~†ˆ{ƒ…wt|~pxznvxltvbkjajg^gf[daYbaYb_ZcbZc`enmfolfongpmgpohqnhqpirogkldhg_cdX\[OSTGKJ?CD;?>9=>8<;6:;4874894876:;7;:9;JHJYVXgZ\kUVhUVh_`ujk€uuwwzz”~~˜ƒƒŸˆˆ¤Œ‹ªŽŽªxxjk€VWlGH]BCXEF[JK`NOdVWlcdylm‚st‰}~“†‡œ“”©¢¢º««Å||˜33O+00Lvv’¸¸ÔÝÝù¼¼Øœœ¸““¯‘‘­‘‘­¬rrŽSTp01MDHcquŒ«¶ºÕÚÞùÊÎ逄Ÿ/3N5=A\ˆŒ§±µÐ§«Æ“—²¡¼£¦Åƒ†¥ru”wz™cf…PSr[^}Z]|]`»¾Ýëîÿ­°Ïgj‰£¦ÅÎÑð¾Áà™œ»ƒ†¥[^}GJi‚¡§ªÉŽ‘°’±Ÿ¢Á„‡¦‡Š©—š¹—š¹—š¹¢¥Äª®Ë¨¬Éª®É£§Â—›¶‹ªy}˜nrptw{–quuy”‘•°¬°Ëx|—KOjnr‹ppŠyy‘ˆˆ µµÍŽ£ef{hi}Ž¡¶·Éz|‹57D,*,8,.:%'3&(4)'2)'2)'2)'2)'2)'2)'2)'2&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'$#($#($#($#($#($#($#($#(#"'#"'#"'#"'#"'#"'#"'#"'! %! %! %#""! %$#('&+'&+*).,+0,+0,+0,+0*).32754998=?>CCBGCBG?>C;:?\[`dchqpu€„Œ‹•”™š™žœ›¡ª©±º¸ÃÂÀË»¹Ä¶´¿º¸Ã»¹Äµ³¾´²½¶´¿¸¶Á¹·Â¸¶Áµ³¾³±¼±±¹©¬³¨­±§¬°¦«¯¦ª­¦ª­§¨ª¨¨¨¤¢£¥¤¢¨¤¡ª¦£¬©¤¯ª¦°«§°¬«±®µ¯®¶¯­¸®­µ­«¶¬«³¬ªµ¬«³§¥°§¦®¦¤¯¥¤¬¥£®¤£«£¡¬£¢ª¢ «¡ ¨ ž©ž¥›¦›š¢š˜£™˜ ‘š—˜Œ‹“Šˆ“‡†Ž†„…„Œ€†€„€„~ƒ}~‚|}|}{|€€…€…€„~ƒ|}{|€{|€{z€~ƒ€~ƒƒ~„‚€……€†„‚‡†‡…ƒˆz€}{€z€}{€z€}{€z€}{€}‚~}‚€~ƒ~ƒ„€…‚€…‚†…ƒˆ„ƒˆ…ƒˆ…„‰†„‰…„‰‡…Š†…Š‰‰‹‰‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆŒŒŒŽŽŽ‘‘‘••••••••••••••••••••••••———––––––•••”””““““““’’’‹‹‹ŠŠŠ‡‡‡„„„€€€~~~|||{{{jjjhhheee```\\\XXXTTTQSRMONKONKONHLKAED7;:.21(,+(,+#'& $#"&%&*)+/.043286-31)2/$-*#,)*30/85-63(1.-631:75>;7@=7@=7@=8A>8A>:C@096&/,*30=FCOXUcliv|w€}w€}w€}w€}v|v|v|y}€‚€€€}}}zzzxxxwwwwwwwww}}}~~~€€€‚‚‚†††‰‰‰ŒŒŒ”””˜˜˜¡¡¡§§§¥¥¥ŸŸŸ   ¦¦¦´´´µµµ···ººº»»»ººº¸¸¸µ·¶¸¹½·»¾¸¼¿¸¼¿·»¾´¸»±µ¸¯³¶Ÿ£¦¡¤šž¡˜œŸ™ ¡¤¢¦©¥©¬­±´«¯²«¯²¯³¶¸¼¿ÁÅÈÆÊÍÉÍÐÁÅȾÂź¾Á³·º¬°³¥©¬Ÿ£¦œ ¡ž£Ÿœ¡›—œ–‘–‰Žˆ€…w|vrwq|{x}wy~xw|vrwqqvpkpj`b_KKMDCH:9>105+*/)(-*).-,1)(-)(-)(-)(-)(-)(-)(-))+((&()$()$()$()$()$()$()$*+&%&!+,'EFAhid‚}‡ˆƒƒ~}|z~}z~}y}|x|{w{zw{zvzyosrptsrvutxww{zz~}|€|‚€‡‡‰‹‚ŠŒ„ŒŽ„ŒŽƒ‹‚ŠŒ‰‹v~€u}s{}pxzmuwksuhprgpobkh`if]fc[daYb_Xa^Yb_Yb_clicliclicliclidmjdmjdmjcgf`dc[_^TXWLPODHG>BA;?><@?;?>:>=9=<9=<;?>=A@>BA?APPRa`bqcet\]oYZlabwklttŒvvŽzz”™„„ ˆˆ¤‹Š©©uujk€Z[pMNcHI^HI^JK`KLaRShabwlm‚tuŠ~”ˆ‰ž–—¬¨¨ÀººÔ††¢::V+))EnnŠ¯¯ËÛÛ÷ÇÇ㢢¾––²””°——³™™µrrŽCD`-.JFJevz•Ž’­±µÐÑÕðÂÆá|€›"&A037Rrv‘ ¤¿¥©Äšž¹¥©Äª­Ì|žWZydg†mpadƒdg†il‹`c‚ž¡ÀÝàÿ§ªÉjmŒ¬¯ÎËÎí¯²Ñ—š¹Ž‘°nqORqux—–™¸„‡¦“²½Àߓ–µy|›‡Š©—š¹˜›º¡¤Ã­±Î­±Î²¶Ñ¬°Ë¡¼Œ«{švz•ƒž}œ}œ{š”¯£§Âx|—KOjosŒqq‹yy‘‰‰¡µµÍ¥gh}efz‘’¤¸¹Ëxz‰46C!.*,8+-9%'3&(4)'2)'2)'2)'2)'2)'2)'2)'2&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)%$)#"'%$)&%*$#(! %! %%$))(-*).,+0-,1/.31050/4.-2.-276;@?DPOTedixw|ƒ‚‡†…Š†…Š©¨­­¬±´³¸º¹¾¾½Â¾½Â½¼Á¼»Á°¯·¶´¿¹·Âµ³¾´²½¹·Â¹·Â¶´¿º¸Ãº¸Ãº¸Ã»¹Ä»¹Äº¸Ã¸¶Áµµ½­°·­°µ¬¯´¬¯´«¯²ª®±¬­¯«­¬£££££¡¦¥¡§¦¢©¨£­ª¥®«¦­¬ª´³¹³³½²²¾±±»¯¯»®®¸­­¹­­·¨¨´¨¨²§§³¦¦°¥¥±¥¥¯¤¤°¤¤®¡¡­¡¡«  ¬žž¨œœ¨››¥šš¦™™£œ™ŽŽš‹‹•‰‰•††……‘„„Ž€†€…€…~„~}ƒ}|‚}|‚|{utztsytsysrxsrxrqwrqwqpvvqxvqxxqywryyrzyt{{t|zu|zs{yt{zs{yt{zs{yt{zs{yt{wv|wx}xw}xy~zyz{€{z€z{€~}ƒ~„€…€†‚‡‚ƒˆ„ƒ‰„…‰ˆ‰‹ˆŠ‰‰‹Š‰‹Š‰‹Š‰‹Š‰‹Š‰‹Š”–••—–•—–—™˜˜š™™›ššœ››œ™™™™™™™™™˜˜˜———––––––•••“““’’’‘‘‘ŠŠŠˆˆˆ‡‡‡yyywwwtttoookkkfffccc`baXZYVZYSWVJNM>BA376,0/)-,'+*#'&"&%"&%!%$$('598GMKDJH3<9$-*!*'(1.2;84=:096-63/852;83<93<96?<IROmvsš£ ¦£œ¥¢š£ ™¢Ÿ˜¡ž— •ž›–œšŒŽŠŠŠ„„„zzzwwwvvvvvvzzz{{{‚‚‚†††‰‰‰ŒŒŒ‘‘‘™™™¥¥¥®®®¬¬¬¥¥¥¢¢¢¦¦¦±±±´´´···ºººººº¹¹¹¸¸¸·¹¸·¸¼´¸»³·º±µ¸­±´©­°¥©¬£§ª”—‘”ˆŒ…‰Œƒ‡Š…‰ŒˆŒ‹’„ˆ‹ƒ†z~w{~w{~x|vz}uy|korjnqhlogkneildhkcgjcghtysuzsw|u|z†„‰‚„‰‚ƒˆ„‰‚}‚{{€y|z}‚{}‚{mrkVXS88:4270.3/-2-+0+).,*//-2*(-*(-*(-*(-*(-*(-*(-*(+'(#'("'("'("'("'("'("'("()#&'!/0*KLFopj‡ˆ‚Š‹…‚„{}zy~zx}yw|xw|xv{wuzvuzvmrnnsootpqvrsxtuzvv{wv|zz€€yƒz‚„{ƒ…{ƒ…yƒx€‚v~€ltvltvjrthprfnpdlnckmbkjbkhaje^gb[d_Zc^Yb]Zc^Zc^ajeajeajeajeaje`id`id`id`ea]b^W\XQVRJOKCHD?D@=B>@EA?D@>C?>C?@EABGCDIEFKGCETVXghjyjl{`as[\nabwklqq‰ss‹xx’~~˜ƒƒŸ††¢‰ˆ§ŠŠ¦ss‹ij[\qQRgLMbKLaLMbLMbNOd^_tklrsˆ|}’†‡œ•–«¨¨ÀÄÄފŠ¦AA]/''Ccc  ¼ÒÒîÒÒĖ–²’’®¹««Ç‚‚žDEa()EBFax|—”¯©­È¼ÀÛ±µÐx|—'+F415Pgk†”¯Ÿ£¾Ÿ£¾¬°Ë­°Ïy|›GJiSVuloŽhkŠjmŒps’dg†•˜·ÏÒñ£¦Å|ž¦©È¯²Ñ¥¨Ç•˜·‘”³{~[^}or‘‡Š©}€Ÿ“²Ýàÿ¯²Ñor‘or‘™œ»£¦Å¢¥Ä¬°Í©­Ê®²Í¨¬Ç™¸…‰¤qurv‘„ˆ£‚†¡ƒ‡¢|€›‰¨“—²x|—RVqosŒuuwwŒŒ¤¹¹Ñ’“¨klhi}—˜ª·¸Êsu„24A "/)+7*,8&(4')5)'2)'2)'2)'2)'2)'2)'2)'2&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'&%*&%*&%*&%*&%*&%*&%*&%*(',(',(',(',(',(',(',(',&%**).,+0*).'&+'&+-,1216549;:??>CEDIONSSRWSRWXW\yx}€„Ž’ž¢¬«°³²·³²·°¯´©¨­¬«°±°µ¶µº¸·¼¹¸½¹¸½¸·½º¹Áº¸Ã¸¶Á·µÀº¸Ã½»Æ¿½È¾¼Ç»¹Äº¸Ã¹·Âº¸Ã½»Æ¾¼Ç¼ºÅººÂ¸¸À¶¹¾µ¸½µ¸½´¸»³·º´µ·´¶µ·····µ¹¸´º¹µ»ºµ½¼·½¼·½½»½½Å¹»Ç·¹Åµ·Ã²´À¯±½­¯»¬®º¨ª¶§©µ§©µ¦¨´¥§³¤¦²¤¦²¤¦²Ÿ«œžª›©™›§˜š¦–˜¤•—£”–¢›ŒŽšŠŒ˜ˆŠ–†ˆ”ƒ…‘‚„„€ˆ€…€…~„~}ƒ}|‚}|‚|{tsytsysrxsrxrqwrqwqpvrovunvunvvowwpxyrzzs{{t|{t|zs{zs{zs{zs{zs{zs{zs{yt{utztuzuv{vw|wx}wx}xy~xy~vw|wx}yz{|}~ƒ€…€†‚†Š‹ŠŒ‹‹Œ‹ŒŒŽŽŽŽšœ››œœžŸžž ŸŸ¡ Ÿ¡  ¢¡ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ——————–––•••””””””““““““‘‘‘’’’““““““’’’†††„„„‚‚‚{{{xxxvvvtvufhgfjiaedRVU=A@-10'+*'+*)-,%)($('#'&! "&%@DCbhfU[Y6?C?=B>CHDCHDBGCCHDEJFHMILQMNSODFUXZikm|mo~bcuZ[m_`uijmm…ppˆuu{{•€€œƒƒŸ…„£††¢qq‰hi~\]rRShOPeNOdNOdNOdHI^Z[pgh}no„wx‚—‘’§¥¥½ÂÂ܈ˆ¤HHd <@[w{–’–±Ÿ£¾¥©Äž¢½tx“:>Y9.2Mae€ƒ‡¢’–±˜œ·§«Æ±´Ó}€ŸDGfJMlhkŠmpqt“tw–dg††‰¨¿Â᧪ɍ¯ ¿ ¿¥¨Ç–™¸‹Ž­€ƒ¢hkŠor‘|žx{š”—¶ðóÿÏÒñru”\_~–™¸¨«Ê¢¥Ä®²Ï¨¬É¨¬Ç¢¦Á˜œ·…‰¤nrnrƒ‡¢”˜³“—²…‰¤‡‹¦‡‹¦z~™Y]xmqŠxx’uu§¾¾Ö•–«pq†op„œ¯´µÇnp.0=!.')5)+7&(4')5)'2)'2)'2)'2)'2)'2)'2)'2&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!) % $ $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'#"'&%*&%*&%*&%*&%*&%*&%*&%**).*).*).*).*).*).*).*).%$)+*/10532743887?9STNfgaqrlqrlmpioqnmrnlqmlqmkpljokjokinjfkgfkgglhglhhmihmiinjhnlouumuwnvxowynvxltviqshpr\df\df\df[ce[ceZbdZbdZcb_he]faZc^Xa\V_ZV_ZV_ZW`[Zc^Zc^Yb]Xa\W`[V_ZV_ZU^YV[WSXTMRNGLHAFB=B>;@<;@=CHGMONTTSY]\bkjputz®­³µ´º³²¸³²¸º¹¿¸·½³²¸¸·½¶µ»³²¸°¯µ±°¶³²¸µ´ºµ´º³²¸·¶¼·¶¼¸·½¹¸¾¼»Á¾½ÃÀ¿ÅÂÁÇÃÁÌÅÃÐÉÇÔËÉÖÉÇÔÇÅÒËÉÖÒÐÝÙ×äÕÓàÐÎÛÎÌÙÎÌÙÍËØÊÈÕÆÄÏÏÏ×ÍÐÕÏÐÕÌÏÔÍÎÒÌÍÑÌÍÏËÌÎÂÄÃÂÄÃÃÃÁÃÃÁÂþÂþÂþ··¿µ¸Áµ¸Áµ¸Áµ¸Áµ¸Áµ¸Áµ¸Á­°¹­°¹¬¯¸¬¯¸«®·ª­¶©¬µ©¬µ•—£•—£”–¢’” ’ž‘Žœ›ŠŒ˜‰‹—ˆŠ–…‡“ƒ…‘€‚Ž€€Š€†„~…€~ƒ|ƒ~|~{‚}{€xu|xv{xu|xv{wt{wuzwt{ytzyrzzsz{t||u|~wx€yz†‡†††‡†††‡†††‡…€†~}ƒ}~‚~„~ƒ€…€…‚‡‚†z{€{|€}~ƒ€…ƒ„‰†‡‹ˆ‰ŽŠ‹’’’“““•“”•••—•–———™—˜˜˜˜¡Ÿ    ¡Ÿ ¡¡¡¢ ¡¡¡¡¢ ¡¢ ¡¡Ÿ ¡Ÿ ¡Ÿ ¡Ÿ ¡Ÿ ¡Ÿ ¡Ÿ ¡Ÿ ¤¢££¡¢£¡¢¢ ¡¡Ÿ  žŸ žŸ žŸ•”’˜—•›š˜ž› Ÿ ŸŸžœž›•”’•”’”“‘”“‘”“‘“’“’“’˜š—Ÿ¤ ¢¤£Š‹gihHMI@BA?D@465*/+(*)!&"#($Z\[’–•[a_.42$"&,*)/-,20-3/173.40-3/.40/514:6EKGW]YÄÊÆÄÊÆw}{$ 286Œ’Ž»Á¿¹¿»­³±¨®ª£©§ ¦¢Ÿ¥££Ÿ—›“˜”~€zzxrrrjjhdddaa_aaabb`aaaddbhhhlljooooomooonnlWVT[ZVba_gfbfecdc_hgeqplnmkrqmutrvuqwvt{zvƒ‚€ˆˆ†‰‹Š†Š‰‡‰ˆ…‰ˆ‡‰ˆ…‰ˆˆŠ‰†Š‰Ÿ¡ ¡ Ÿ¡ ¡ ž Ÿ›Ÿžœž™œ‘“†Š‹~z~†‡‰–š›ª«­²¶·¼½¿·»¼µ¶¸°´µ°±³­±²°±³¯³²­²®­²¬«°ª¦«¥Ÿ¤ž› ššŸ™œ¡›Ž“’Œ’Œ†‹…}‚|rwqV[U463..01130/4**,(',))+(',##%'&+'')'&+'')'&+'')'&+'')%%#$&!%&!$&!%&!$&!%&!$&!()$13.CD?SUPab]fhcghcdfajokjokinjhmihmiglhfkgfkgejfejfejffkgfkgfkgfkgfjinsvltvotwmuwnsvjrtinqfnp[`cYac[`cX`bZ_bX`bZ_bX`b^ddZc`Z`^U^[U[YS\YU[YT]ZY_]V_\W][T]ZU[YR[XSYWSYWRVUNRQIMLBFE=A@:>=8<;8<;GKJGKJGKJIMLLPOPTSTXWVZYCDXRSg^_s^_sZ[o\]r`avcdydezhi~pq†||”……ˆˆ „„œ—ww‘kk…]]wTTnSSmTTnTTnSSmBB\HHbXXrhh‚nnˆrrŒ‡‡¡  ¼³²Ñ€ŸZYy@?^KJjRQpqp¢¡ÀÛÚú¿¾Ý•”´kj‰„ƒ£²±ÐÃÂ⁂ +,KCGd~  ¤Á’•´ŠŽ«Œ®~‚Ÿbe„04Q:`d‹Ž­ˆŒ©„‡¦“°¡¼tx‘OSnCGbY]xnrrv“€„¡be„z}œ±‘”·”—º˜›¾šÀœ Ã‡¯ƒ‰©sy›ms“‡¯yŸek¢¨Èìòÿ÷ýÿ£ÅNTtx~ ¤ªÊ ¦È©¯Ï¾Å⯶ҫ²Ï´»×Ž•²V]yel‰“š¶±¸Õ™ ¼’™¶‚‰¥‡Ž«’™µu|™cj†jn‹vz•™š¶šž·’”­ˆ£€‚™Ž“§†ˆej}=@Q,$'6%+7-0?+/;')6')5)(6')5*)7(*6*)7(*6*)7(*6)(6&(4'&4%'3&%3$&2$#1"$0$#1"$0$#1"$0$#1"$0#"0!#/#"0!#/#"0!#/#"0##/$"0$"/$"0$"/$"0$"/$"0$"/" ." -" ." -" ." -" ." -" +"!)"!)"!)"!)"!)"!)"!)"!)"!)"!)"!)"!)"!)"!)"!)%$,%$,%$,%$,%$,%$,%$,%$,$#+&%-'&.&%-%$,&%-)(0,+3('-(',*).,+0.-20/410521654954965::9>@?DIHMQPUUTZihpmltsrz{z‚€ˆ…„Œ‡†Ž‡†Ž›š¢œ›£Ÿž¦¡ ¨¤£«§¦®©¨°ª©±¬«³­¬´¯®¶±°¸³²ºµ´¼¶µ½·¶¾¸·¿º¹Á½¼ÄÀ¿ÇÁÀÈÁÀÈ¿¾Æ¾¼ÇÂÀÎÂÀÎÃÁÏÄÂÐÅÃÑÆÄÒÇÅÓÇÅÓÈÆÔÈÆÔÉÇÕÊÈÖÊÈÖËÉ×ËÉ×ËÉÖÈÇÏÆÇËÇÆËÅÆÊÅÄÉÄÃÈÄÃÈÃÂǾ¾ÀÁÁÃÀÀ¹¹»··¹ºº¼¸¸º³³µ³±¶²°µ°®³­«°«©®¨¦«¦¤©¥£¨—•š“‘–“‘–—•š—•š“‘–“‘–—•šœ™ ›˜¡š— ˜•ž—”•’›”‘š“™‹ˆ‘Œ‰’Œ‰’Š“Ž‹”Œ•Œ•”Šˆ‰‡Š†„‰ƒ„€~ƒ}{~{y~ywzyw|xvyxv{wuxvtyusvusxtru~y~y}~y}x|}x~}x|}x~}x|…€†ƒ~‚|‚z~€{ƒ~‚‡‚ˆ‡…ˆ„€€‚‚†ƒƒ…„ƒˆ††ˆ‡†‹‡‡‰‚†„ƒˆˆˆŠ‡†‹‹‹”‹Ž•‘•™‘™““”•œ–– —˜ž˜˜¦ž¤žž¦ž£¥œ£¥œ¥œ«¢£¬£¤¬£¤­¤¥®¥¦¯¦§°§¨°§¨¯¦§¯¦§²©ª¶­®¸¯°´«¬¯¦§¬£¤«£¡­¥¢±©¦³«¨´¬©²ª§¯§¤¬¤¡¤œ™¤œ™£›˜¡™–œ”‘˜–Ž‹’‰™˜”¡£ž££¡“•‚‚€oqlVVT=?:00..0+..,+-(,,*13.;;9AC@798()+%&('(*%'&-/.241')$,.)')$/2+.1*,/&-0'7:1_bYÃÅÀÄÆÁ—™–VXSOQNƒ~ž “•€‚}zxzwrtolnkfhcac`^`[MMKKLGHHFGHCJJHPQLWWU\]XZZX]^Ybb`fgbjjhqrmzzx‚}Šƒ‰†}‡„}‹ˆ‘Ž‡”‘ˆ’ˆŽ‹‚š“š—Žš—š‘£ ™¦£š¥¢›£ ™™š’˜›’™š’˜›’™š’˜›’™š’˜›’¡¢š £š¢£›¢¥œ¤¥£¦¥¦ž¤§ £¤Ÿ¡£ž”•‚„ˆ‰„¡£ž¶·²º¼·µ¶±¶¸³¸¹´´¶±°±¬¬®©¯°«°²­¨­©¦«§£¨¤ž£ŸšŸ›•š–’—“•‘”Ž“‰ŽŠ„€nsoZ_[GLH<@?,.-,.-,-/+-,*+-(*)'(*&('%&(%'&%&(%'&%&(%'&%&(%'&$&%"'#$&#"'#$&#"'##%"!&"+-*162AC@NSO]_\chdikhhmigkjgkjhlkhlkhlkhlkimlimleiheiheiheiheiheiheiheihosvmrvmpujosilqfkofindimX[`V[_VY^RW[QTYMRVLOTJOSMQTKPSJNQGLOFJMCHKBFI@EHBFIAFIBFIAFIBFIAFIBFIBFI@DE@DE?CD<@A9=>8<=:>?=ABJNOLPQOSTRVWW[\Z^_]ab_cd@AVNOd[\q\]rZ[p\]rbcxef{dezhi~pq†{|‘…†›‰ŠŸ†‡œƒƒ›vvkk‡]]yTTpSSoUUqTTpRRnFFbLLhZZvii…oo‹tt‰‰¥¡¡½´³Ó†…¥^]}<;[EDdRQqvu•¤£ÃÛÚúÏÎ¼cb‚hg‡™˜¸¯®Î|}œ45TILk‚¡ £Â•˜·Ž‘°Ž‘°‚¡cf…47V"Acf…Š¬†‰¨ƒ†¥”±˜œµw|’TXq@D]RVqlp‹tx•…¢sv•„‡¦•˜»šÀœžÄ£¥Ë¥§Í¡Æ“µ~‡¨s|ox™‡±„®js”…Ž¯ËÔõÝæÿ— ÁXa‚Š«¥®Ï¦Ç¡ªÉ¯¸× ©Æ¨±ÎÀÉ敞»OXu_h…›¤Á´½Ú˜µ{„¡ox•‰’¯ ©Æ{„¡\c€Y^{y}ššž¹”¯‡‹¤Œ©€…›z•}‚–afy;@S 0#)7$*8(.<$*8&(5&(5&(5&(5&(5')6')6')6#%2#%2"$1!#0!#0 "/!.!.#%2#%2#%2#%2#%2#%2#%2#%2!#0!#0!#0!#0!#0!#0!#0!#0$"0$"0$"0$"0$"0$"0$"0$"0#!/#!/#!/#!/#!/#!/#!/#!." -" +" +" +" +" +" +" +#!,#!,#!,#!,#!,#!,#!,#!,%#.%#.%#.%#.%#.%#.%#.%#.%#.&$/&$/(&1*(3,*5.,7/.643965:98==3=?4EG:gi^‡ˆ‚ˆ‰„qrmPQLOPKklgz{vsto‚}€{z{vtupmnighccd_`a\OPKMNIJKFJKFMNISTOZ[V_`[ghcklgopkstoxyt~z‡ˆƒŽˆ¡ž•Ÿ›œ˜ œ‘¦¢—©¥š§£˜¤ •¢ž“ œ‘Ÿ›¡’¥¡–¨¤™§£˜¤¢–žž’Ÿ’Ÿ’Ÿ’Ÿ’Ÿ’Ÿ’Ÿ’£¥˜£¥˜¤¦™¥§š¦¨›¦¨›§©œ§©ž¨©¡¨©£ ¡›–—‘š›•«¬¦¸¹³»¼¶»¼¶¼½·»¼¶µ¶°®¯©©ª¤§¨¢§©¤¡£ ž¢¡šž–š™’–•Ž’‘‹Ž‰Œ†Š‰…‰ˆ€„ƒuyxdhgPTS>BA265*.-*.-)-,(,+'+*&*)%)(%)($('$('$('$('$('$('$('$('$('$('$('#'&"&%"&%!%$!%$(,+043=A@KONW[Z^baaedbfeeiheiheiheiheiheiheiheihcgfcgfcgfcgfcgfcgfcgfcghhlogjofindglbejadi_bg_bgSV[RUZPSXMPUJMRHKPEHMDGL@CH?BG>AF9C;>C;>C=AD>BE=AD;?B7;>7;>9=@<@CIMPKORNRURVYVZ]Z^a]ad^be>?TLMbXYnZ[pYZo]^scdygh}cdygh}op…z{„…š‰ŠŸ‰ŠŸˆˆ vvkk‡]]yUUqTTpUUqTTpQQmKKgQQm__{llˆrrŽxx”ŒŒ¨¡¡½´³ÓŒ¬dcƒ65U;:ZTSs~ž¦¥Ååäÿáàÿ¤£Ãfe…NMmsr’Œ‹«}~PQp[^}„£™œ»“²Ž‘°’±‚…¤dg†58W$'FfiˆŒ®‰Œ«„£‘®“¬y~”Y]v;?XHLggk†tx•€„¡…ˆ§Ž‘° £Æ§ªÍ¦¨Î­¯Õ¬®ÔšžÃƒ‰«pyšu~Ÿ{„¥’›¼¦Çqz›S\}–ŸÀ¶¿à“œ½mv—Ž—¸¦¯Ðš£Äš£Â¡ªÉ–Ÿ¼¢«È¿È噢¿W`}hqŽ¢«È³¼ÙƒŒ©bkˆ\e‚˜µµ¾Û„ªSZwUZw‹¬ž¢½w{–mqŠ”­•«rwx}‘afy?DW$4%+9&,:(.<$*8)+8(*7(*7(*7(*7(*7(*7(*7!#0!#0 "/!. - -,,#%2#%2#%2#%2#%2#%2#%2#%2"$1"$1"$1"$1"$1"$1"$1"$1%#1%#1%#1%#1%#1%#1%#1%#1#!/#!/#!/#!/#!/#!/#!/#!.$"/$"-$"-$"-$"-$"-$"-$"-#!,#!,#!,#!,#!,#!,#!,#!,%#.%#.%#.%#.%#.%#.%#.%#.&$/%#.%#.(&1.,753><:E@?G10687989412-+,')*%*+&,-(--++++%%'((*--/+++,,*775AB=FGA@A;BC;DE=GI>EGGKJQUTVZYX\[X\[^ba^ba^ba^ba]a`]a`]a`]a`\`_\`_\`_\`_\`_\`_\`_\`a[_bZ]bY\aX[`VY^UX]TW\SV[KNSILQGJOCFK@CHA;?B:>A7;>48;48;7;>:>AGKNIMPLPSPTWTX[X\_[_b\`cBCXNOdXYnYZoZ[p_`udezgh}bcxfg|no„xyŽ‚—ˆ‰ž‹Œ¡ŒŒ¤uujj†]]yVVrUUqUUqSSoPPlKKgTTpccrrŽxx”}}™‹‹§œœ¸²±Ñ’‘±hg‡0/O32RYXx‰ˆ¨§¦Æóòÿëêÿ­¬Ìyx˜KJjVUuonŽ„…¤vw–sv•„‡¦Ž‘°†‰¨‰Œ«’±‡Š©cf…14S"%Dfiˆ”—¶–™¸ƒ†¥‡‹¨‡‹¤y~”Z^w7;T?C^bfrv“~‚Ÿ‹Ž­“–µ­°Ó¹¼ß¯±×®°Ö©«Ñ’–»~„¦js”x¢€‰ª¦Ç½Æ燐±;De^gˆ‹”µ™ºƒŒ­— Á ©Ê•ž¿–Ÿ¾ž§Æ”º–Ÿ¼§°Í˜µgp}†£©²Ï¦¯Ìw€U^{U^{–Ÿ¼ÂË艒¯MTqin‹«¯Ì ¤¿RVqGKd“¬¬±Ç‚‡x}‘ej}DI\!'7&,:(.<-3A)/=-/<-/<,.;,.;+-:+-:*,9*,9#%2#%2#%2"$1!#0 "/ "/!.$&3$&3$&3$&3$&3$&3$&3$&3#%2#%2#%2#%2#%2#%2#%2#%2&$2&$2&$2&$2&$2&$2&$2&$2$"0$"0$"0$"0$"0$"0$"0$"/%#0%#.%#.%#.%#.%#.%#.%#.$"-$"-$"-$"-$"-$"-$"-$"-%#.%#.%#.%#.%#.%#.%#.%#.&$/&$/%#.%#.*(3:8CPNY`_glkqsrw€„”£¢§´³¸ÁÀÅÈÇÌÊÉÎÇÆËÂÁƾ½Â¾½ÂÀ¿ÄÄÃÈÇÆÌÇÆÎÅÃÎÂÀËÀ¾É¿½ÈÀ¾ÉÁ¿ÊÃÁ̯­¸®¬·«©´¨¦±¤¢­¡Ÿªžœ§›¦›™¤›™¤š˜£™—¢™—¢˜–¡—• —• ›™¤™—¢—• •“ž–”Ÿ˜–¡š˜£œš¥¤¢¯¤¢°¤¢°¥£±¥£±¥£±¦¤²¦¤²¦¤²§¥³¨¦´ª¨¶«©·¬ª¸­«¹­«¸²±·±°µ±°µ°¯´¯®³®­²­¬±­¬±¯®³¯®³®­²¬«°«ª¯«ª¯ª©®©©«¯ª®¯«¬®ª«­©ª¬¨©«§¨«§¨ª¦§­©ª¬¨©¬¨©­©ª­©ª¬¨©¬¨©­¨¬­¨®­¨¯¬§®ª¥¬¨£ª§¢©¦¡¨¥ §˜Ÿž™ ž™ Ÿš¡ ›¢¡œ£¡œ£¡œ¢˜œœ—›™”˜–‘•“Ž’‹Ž‰Œ‡‹‚}|€|€€{z~z~~y}~y}{vz|w{}x|z~|€ƒ~‚„ƒ…€„‡‚†‡‚†‡‚†ˆƒ‡‰„ˆŠ…‰‹†Š‹†ŠŠŽŠŽŠŽŽ‰Ž‰Ž‰ˆŒˆŒŒ‡‹Ž‰”“‹ƒ~‚|€Š…‰ŽˆŠ•Œ—Œ™Žœ’‘Ÿ•”¡—–£™˜¤š™§œ¦œ›¥›š£™˜¡—– –•ž”“ž”“—Œ—Œ—Œ˜Ž˜Ž™Ž™Ž™Žž”“œ’‘˜Ž–Œ‹šž”“›‘–ŒŠ›’ —’© ›°§¢´«¦²©¤¯¦¡¬£ž’‰„Ž…€Š|‹‚}Ž…€‹‚}‚ytxqkfealmhpqllmhfgb_`[STOGHC<=878301,+,')*%*+&*+&**()))'')))+--/(((%%#::8YZU`a[]^XZ[SVWOPRGEGAF;>C8;@47<149.16,/4(+0(+0(+0'*/'*/&).&).&).'*/'*/(+0*-2+.3,/4-05.1659<6:=6:=37:15815848;7;>DHKFJMIMPLPSQUXTX[W[^Y]`IJ_STiZ[pZ[pZ[p_`udezef{abwfg|mnƒuv‹}~“„…šŠ‹ ¥ssjj†^^zWWsVVrVVrSSoOOkIIeUUqff‚uu‘{{—›‰‰¥““¯¯®Î“’²kjŠ.-M21Qa`€’‘±§¦Æìëÿðïÿ¾½Ý‹ŠªQPpQPpji‰†‡¦Š‹ª„£…ˆ§‰Œ«„‡¦Š¬“–µ’±cf…),KJA9=<7;:6:96:98<;:>=<@?3763763763763763763763765985985984874874873763767;:;?>BFEGKJJNMHLKEIHCGFCGFCGFBFEAED@DC?CB>BA>BA?CB?CB?CB?CB?CB?CB?CB?CD;?B:>A:>A9=@9=@8.0=-/<,.;*,9)+8(*7')6&(5%'4%'4$&3#%2"$1"$1"$1&(5&(5&(5&(5&(5&(5&(5&(5$&3$&3$&3$&3$&3$&3$&3$&3'%3'%3'%3'%3'%3'%3'%3'%3&$2&$2&$2&$2&$2&$2&$2&$1(&3(&1(&1(&1(&1(&1(&1(&1&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.#!,&$/&$/((31?::;656167245001,+,')*%,-(//-111446002,,.886„…€ÉÊÄÈÉôµ­£¤œ‘†wynwylv…†€‚ƒ~‚ƒ~†‡‚†‡‚‚}|}xyzuvwrstoopkijebc^\]XWXSUVQQRMPQLNOJOPKTUP\]Xde`ijexyt}~yƒ„ˆ‰„‹Œ‡ŽŠ’“Ž•–‘™˜“—”•’‹™–Ÿœ•¢Ÿ˜ –œ™’˜•Ž™–š—˜•Ž•’‹“‰”‘Š““‹‘’Š‘’Š‘’Š‘’Š‘’Š‘’Š‘’Š‘’Š‘’Š‘’Š’“‹’“‹“”Œ”••–Ž•–“”‘’•–‘œ˜žŸš˜™”—˜“š›–¢£žŸ ›ž™œ˜œ˜œ˜™š•–˜•”–•‘•””““’Ž’‘‘ŒŒ€„ƒƒ‚~‚z~}swvjnmaed\`_UYXSWVQUTOSRPTSSWVVZYX\[NRQNRQNRQNRQNRQNRQNRQNRQSWVRVUPTSNRQLPOIMLHLKGKJEIHHLKKONMQPKONFJI?CB;?>7;:7;:6:9487376154043043043043043043043043043043-12-14-14-14,03,03,03,03+/2*.1(,/&*-$(+"&) $'#&#& $'!%("&)#'*$(+%),&*-.25.25.25-14-14-14-14-14+/2,03,03+/2)-0*.1.251589=@;?B>BEBFIFJMJNQMQTNRUGH]MNcRShRShUVk\]rabwabwbcxef{jk€no„rsˆyz‚ƒ˜‰‰¡rrŒii…__{YYuXXtVVrRRnNNjKKgUUqaa}jj†qqzz–ƒƒŸŠŠ¦¤£Ã‰ˆ¨hg‡32R=<\ut” Ÿ¿£¢Âž½ÏÎî×Öö’‘±POoPOo~ž‚ƒ¢†‡¦‚…¤…ˆ§‰Œ«‹Ž­”—¶ž¡À £Âmp'*I3PSr‘”³©¬Ë‰Œ«…¢šž·tyTXqKOh]a|mqŒpt‘ƒ‡¤”—¶œŸ¾¼¿âÜßÿÎÐö ¢È‚„ª}¦„Š¬™¢ÃŠ«W`— Áàéÿ®·Ølu–ENoW`€‰ªž§ÈŸ¨É¦ÇŸ¨É›¤Ã£¬Ë‹”±Š§˜µzƒ ^g„˜µÖßüœ¥Âpy–V_|js¸ÁÞÒÛø~‡¤=Da–›¸ßãÿ§«Æ;?Z"&?{˜Ò×íµºÐv{ot‡UZm+1A+1?06D:@N8>L57D46C35B13@/1>.0=,.;,.;*,9*,9)+8(*7(*7')6&(5&(5&(5&(5&(5&(5&(5&(5&(5&(5%'4%'4%'4%'4%'4%'4%'4%'4(&4(&4(&4(&4(&4(&4(&4(&4&$2&$2&$2&$2&$2&$2&$2&$1*(5*(3*(3*(3*(3*(3*(3*(3&$/&$/&$/&$/&$/&$/&$/&$/%#.%#.%#.%#.%#.%#.%#.%#.$"-&$/%#." +" +,*5@>IPOW]\b`_dedilkpsrwzy~~ƒ‚†Œ‹ˆ‡Œƒ‚‡~}‚}|~ƒƒ‚‡†…‹‚‰ƒŒ„‚„‚…ƒŽ„‚ƒŒ‚€‹Šˆ“‹‰”‹–˜‘š“‘œ•“ž–”Ÿ˜–¡˜–¡˜–¡—• —• –”Ÿ–”Ÿ–”Ÿ–”Ÿ–”Ÿ–”Ÿ–”Ÿ•“ž”’’›‘š˜ŽŒ—‹–‹‰”Šˆ“ˆ†‘‡…†„}ˆ~|‡|z…|z…~|‡ƒŒ‰‡’Œ‹“”“™•”™—–›™˜œ› Ÿž£¡ ¥¢¡¦¨§¬¥¤©¦¥ª¬«°®­²¬«°­¬±²²´¹´¸¸´µ¶²³µ±²³¯°±­®°¬­¯«¬°¬­³¯°³¯°°¬­°¬­³¯°³¯°°¬­°«¯¯ª®®©­­¨¬«¦ªª¥©¨£§¨£§§¢¦§¢¦¨£§©¤¨ª¥©ª¥©«¦ª«¦ª±««²ª¨°§¨¬¤¢© ¡¦žœ¤›œ£›™¡˜™¡™— —˜ ˜–Ÿ–—ž–””••“˜˜Ž™‘™‘™‘š’š‘’š’ž•–š’”‹Œˆ†‘ˆ‰–ŽŒ”•¢š˜”•›“‘™‘—”‹Œ’Šˆ‡ˆ‡…Ÿ–—§Ÿ¯¦§ ˜–~uvnfdulm}usˆ~|ˆz†}x…|wƒzuxs€wrvq{rmzqlxojvmhsjepgbne`md_D;6D;6C:5C:5B94A83A83@72YPK\SN[RMZQLcZUmd_g^YXOJxojxojxojypkypkypkxojxojˆz‰€{‹‚}Œƒ~Š|„{v{rmunhdc_`a\\]XVWRNOJFGB@A<=>9:;6>?:=>9561*+&$% &'"++)333::<668002 331ŒˆäåßÝÞØÀÁ¹²³«§©ž”–‹“•ˆ“•Š‘’Œ‹Œ‡‡ˆƒˆ‰„†‡‚€{yzuxytpqlmnihidbc^\]XVWRQRMNOJNOJLMHKLGLMHQRMYZUbc^ghcqrmwxs~zƒ„…†‡ˆƒ‹Œ‡Ž‰‡†ƒ‚}€{„ƒ~Š‰„ŽˆŒ‹†ˆ‡‚‰ˆƒ‹Š…Œ‡‹Š…ˆ‡‚‡†ˆ‡‚Š‰„‘’Œ‘’Œ‘’Œ‘’Œ‘’Œ‘’Œ‘’Œ‘’Œ“”Ž”•”••––—‘—˜’—˜’˜™“’“Ž””’™™—ŸŸ¡¡Ÿžžœœœšœœš££¡ŸŸœœš››™››™››™——•“•’˜š™–š™–š™•™˜•™˜”˜—”˜—”˜—ˆŒ‹‰ŒŠŽ‰Œ†Š‰…„|€y}|uyxswvptsosrptsswvw{zz~}swvswvswvswvswvswvswvswvz~}x|{txwnrqhlkbfe^ba\`_TXWUYXVZYTXWNRQEIH<@?6:9043043.21-10+/.)-,(,+'+*&*)&*)&*)&*)&*)&*)&*)&*)#'(#'(#'(#'($()$()$()$()$()$()#'("&'!%& $%#$#$%)*%)*'+,(,-*./,01.23.23489378267156045.23-12-12'+.(,/)-0(,/'+.(,/,03/3648;6:=9=@=ADAEHDHKGKNIMPABWGH]LMbMNcRShZ[p`avabwbcxef{ijlm‚op…vwŒ€•‡‡Ÿqq‹ii…__{YYuXXtWWsRRnMMiNNjUUq]]yccjj†vv’‚‚žŠŠ¦¡ À…„¤fe…54TBAazy™¢¡Á¡ À„ƒ£¶µÕÓÒò“’²POoCBb~}‰Š©Œ¬†‰¨†‰¨†‰¨‡Š©‘”³Ÿ¢Á¥¨Çru”+.M4JMl‡Š©¢¥Ä‡Š©†Š§¤¨ÁuzUYrUYrjn‰tx“sw”‡‹¨—š¹—š¹°³ÖÓÖùÎÐöšœÂuwtx˜žÀ·ÀᏘ¹R[|— Áâëÿ´½Þ…Ž¯Xa‚Ybƒ{„¥¦Ç£¬Í¥®Ï§°Ñ¦Åœ¥Ä–³‚‹¨Œ•²~‡¤mv““œ¹ÃÌ騱Îr{˜PYvirÀÉæÙâÿ}†£6=ZŸ¤Áæêÿ®²ÍHLg,0I|€™ÖÛñÀÅÛz“w|`ex8>N7=K:@NBHV>DR=?L<>K:/1>.0=-/<,.;,.;')6')6')6')6')6')6')6')6%'4%'4%'4%'4%'4%'4%'4%'4(&4(&4(&4(&4(&4(&4(&4(&4'%3'%3'%3'%3'%3'%3'%3'%2*(5*(3*(3*(3*(3*(3*(3*(3'%0'%0'%0'%0'%0'%0'%0'%0%#.%#.%#.%#.%#.%#.%#.%#.%#.%#.%#.%#.&$/(&1+)4.-5DCIHGLNMRVUZ_^cgfkmlqpotvuzvuzvuzutyutyutytsxtsysrzus~yw‚|z…~|‡~|‡}{†|z…€~‰Š‚€‹ƒŒ„‚…ƒŽ†„‡…‡…‡…‡…‡…‡…‡…‡…‡…‹‰”ŒŠ•‹–ŽŒ—‹–Šˆ“‡……ƒŽ}ˆ}ˆ~|‡|z…{y„yw‚xvwu€wu€yw‚{y„~|‡ŠƒŒ…ƒŽ…„Œ‹ŠŒ‘‘••”™™˜ž¢¡ ¥£¢§©¨­¥¤©¥¤©ª©®ª©®¦¥ª¦¥ª««­°«¯°¬­°¬­¯«¬®ª«®ª«­©ª­©ª©¥¦­©ª­©ª©¥¦©¥¦­©ª­©ª©¥¦®ª«­©ª¬§«ª¦§©¤¨§£¤¦¡¥¥¡¢­¨¬®ª«®©­¯«¬°«¯±­®±¬°³­¯¼´²º²°¸°®µ­«²ª¨¯§¥¬¤¢«£¡£›™£›™¢š˜¡™—¡™— ˜–Ÿ—•Ÿ—•————–ŽŒ–ŽŒ–ŽŒ–ŽŒŸ—•š’“‹‰Ž†„‡…•‹•“£›™Ÿ—••“›“‘˜Ž•‹’Šˆˆ†‡…š’¦žœ±©§¢š˜~vth`^kcaqifd[VbYT_VQ[RMVMHRIDNE@MD?ULGULGVMHWNIYPKZQL[RM\SNd[Ve\Wh_Zja\md_pgbridsje…|wŠ|‹‚}Ž…€›’¨Ÿš¢™”’‰„–ˆ”‹†‘ˆƒŽ…€Œƒ~Š|Š|Š|‚yt†}xŠ|Š|†}x~upwnirkecb^^_ZYZUSTOLMHDE@?@;>?:AB=EFAEFA:;6)*% !"''%333==?;;=557!!!//-ŽŠäåßØÙÓ´µ­«¬¤«­¢Ÿ¡–Ÿ’–˜Œ‡„…€‚}…†‚ƒ~wxsopknojlmhijeefa^_ZXYTRSNMNIKLGKLGJKFIJEJKFOPKXYT`a\fgbjkfpqlwxs|}x€{€|ƒ„…†ˆ‰ƒ„…ƒ‚}…†€Œ‡ŠŽˆ‰Š„‰ˆƒ‹Œ†Ž‰Œ‡Š‰„ˆ‰ƒ‹Š…Žˆ“”Ž“”Ž“”Ž“”Ž“”Ž“”Ž“”Ž“”Ž˜™“˜™“˜™“™š”š›•›œ–›œ–œ˜‘‘––”œœœ¡¡Ÿ¤¤¤££¡   ›§§§££¡     ž¢¢¢¢¢ žžžšœ››œ™œ™œ™œ˜œ›˜œ›˜œ›˜œ›’–•“—––š™—›š–š™”˜—‘•”“’ŒŠŽ‡‹Š…‰ˆ†Š‰ŠŽ“’’–•‘‘‘‘‘‘‘‘—›š”˜—‘…‰ˆ|€swvmqpjnm]a`]a`\`_X\[PTSEIH;?>487.21-10,0/*.-(,+&*)%)($('"&%"&%"&%"&%"&%"&%"&%"&%"!"!#$#"#$#" $% $#!%& $# $% $# $% $##$#",01-10/341543785987;<8<;7;<7;:59:376156/32-12,01%),&*-'+.&*-%),&*-*.1.2515837:6:=9=@>BEAEHDHKFJM)*?45JDEZRSh[\q_`ubcxdezdezhi~hi~bcx]^sdezwxˆˆ zz”nnŠeebb~^^zVVrPPlPPlRRnWWs``|jj†uu‘}}™ƒƒŸ††¢Œ‹«€Ÿ`_?>^]\|Ÿž¾ÄÃ㗖¶NMm„ƒ£»ºÚ£¢ÂYXxONn€ŸžŸ¾¢£Â™œ»’±ˆ‹ª‰Œ«’±–™¸›ž½‡Š©[^}&)H/2Qeh‡sv•loŽ|€ª®Ç‹¦JNg_c|†Š¥ptY]z‚†£¨«Ê¢¥ÄŸ¢Å¾Á䩫ю¶|~¤{¤—¿ÒÛü¦ÇLUv”¾Ýæÿ±ºÛŒ•¶ˆ©dmŽcl‘š»£¬Íž§È¯¸Ù°¹Ø–µ}†£‰’¯‰’¯ox•Š§³¼ÙÇÐ펗´en‹GPm]fƒ²»ØÚãÿ–³>Eb¢§Äðôÿ¡¥ÀSWr6:S~‚›éîÿÐÕërw‹}‚•y~‘jp€ekydjxagu`ftacp`bo_an]_l[]jY[hWYfVXeKMZLN[NP]OQ^NP]LN[JLYHJWDFSDFSCERBDQACP@BO@BO?AN24A24A24A24A24A13@13@13@53A53A31?20>1/=/-;.,:.,:)'5*(6*(6+)7+)7,*8-+9-+820=20;20;31<31<31<31<31@A<@ABA6:9265 $# $# $# $# $# $# $# $##"#"#"#"#"#"#"#"#"$ #"$ #"$ #"$ "!#! # $#$)%'+*).*1543847;:;@<=A@?D@?CB?D@CGF@EA<@?:?;:>=8=9487154$()$(+$(+$(+%),%),%),%),.25.25/3604715826937:48;./D89NHI^UVk]^sabwdezef{ef{gh}ef{\]rWXm_`ust‰††ž}}—ssii…cc[[wRRnMMiNNjXXt[[waa}ii…tt›‡‡£ŒŒ¨Œ‹«wv–SRr>=]kjŠ¯®ÎÉÈ葐°IHhyx˜­¬Ì›šº\[{UTt‚¡ž½œ¼”—¶¯ˆ‹ª‰Œ«’±–™¸›ž½’•´or‘7:Y36U_bfiˆZ]|jn‹Ÿ£¼’—­W[t[_xx|—nrcg„ˆŒ©¦©ÈŸ¢ÁŸ¢Åº½à¡£É‰‹±…‡­‹´¥«ÍÖßÿ˜¡ÂIRsŽ—¸ÐÙú¦¯Ð‡±‡±pyšcl’›¼ª³Ô¡ªË²»Ü²»Ú„¬w€†¬Š“°vœˆ‘®´½ÚÄÍ꒛¸w€]fƒ]fƒ™¢¿ÂË芓°ELi·¼Ùöúÿ¦ªÅae€FJcƒ‡ Üá÷ÀÅÛns‡{€“z’nt„kqlr€kqlr€mo|ln{kmzhjwfhudfsbdqacp]_l^`m_an_an^`m\^kY[hWYfUWdUWdUWdTVcTVcTVcSUbSUbDFSDFSCERCERBDQBDQACPACPDBPDBPDBPCAOCAOB@NB@NB@N@>L?=K>PFDZPNZPNZPNZPNZPNZPNZPNYOM`VTaWUdZXg][i_]i_]i_]i`[of_pg`pg`pg`pg`ule~un…|u‡€Šz‡~w‰€y‰€y†}v‡~wŠz…|u…|u†}vˆx‰€yŠz‹‚{Œƒ|‡€‘ˆ”‹„–†˜ˆ˜ˆ˜ˆ—Ž‡‡‚†Ž…€‹‚}‰€{†}x„{vƒzuxsxsvq}toypktkfofakd^]\XVWRNOJFGB@AMNI]^Y\]XBC>*+&%&!()$''%(((**,**,002'''997ŽŠ³´®¨©£š›“‘’Š„ŠŒ…‡z€‚w}~x{|wxyttuppqllmhhidghcZ[VYZUVWRRSNOPKKLGIJEGHCJKFIJEHIDJKFNOJTUP[\W_`[vwrwxsz{v~z‚ƒ~†‡‚‰Š…‹Œ‡†ˆƒ‡‰„‰‹ˆŠŒ‡ŒŽ‹’‘“Ž–˜•—™”—™–•—’“•’“•–˜•šœ—¡¡Ÿ¡¢££¡¥¦¡¥¥£¥¦¡££¡¡¢¦¦¤¥¦¡¥¥£¥¦¡¤¤¢¤¥ ¤¤¢¤¤¢  ¢¡¡£££¥¥¥§§§©©©«««­««­©©«©©«©©«©©«©©«©©«ªª¬©ª¬Ÿ¡ ž¢¡¡¥¤¤¨§¥©¨¦ª©¥©¨¥©¨§«ª¨¬«¬°¯¯³²¬°¯¤¨§Ÿ£¢Ÿ£¢¡ ¡ ¡ ž¢¡Ÿ£¢¢¦¥¤¨§¥©¨«¯®«¯®«¯®«¯®©­¬¦ª©£§¦¡¥¤Ž’‘ˆŒ‹€„ƒx|{ptshlk`dcZ^]TXWRVUNRQGKJ?CB6:9/32*.- $# $# $# $# $# $# $# $##"#"#"#"#"#"#"#"$ $ $ $ $ $ $ $ $ $ $ %!"'#&+').*+0,5:68=9;@SLMbXYn`avcdyef{fg|fg|ef{_`uTUjMNcWXmno„‚‚š€€šxx”mm‰ccWWsMMiKKgMMi__{``|bb~ii…uu‘ƒƒŸ¬˜˜´Œ¬rq‘MLlA@`xw—¸·×ÇÆ拊ªGFflk‹™˜¸’‘±ed„cb‚Š‰©Ÿ ¿•–µ“²Œ®ˆ‹ª‰Œ«Ž‘°”—¶™œ»œŸ¾‰Œ«ORq7:YTWvSVuADcPTq“¬Ÿ¤ºnr‹Y]vdhƒkoŠnr‹¬¡¤Ã›ž½£¦É¹¼ß—™¿€‚¨Ž¶œ Å¼ÂäÛäÿ˜¹BKlƒŒ­ºÃ䔝¾ˆ©…Ž¯v [d…˜¹µ¾ß§°Ñµ¾ß±ºÙ|…¤s|™„ªŽ—´€‰¦˜µ°¹Ö¶¿Ü”ºˆ‘®t}šaj‡|…¢£¬É‰’¯U\yÅÊçùýÿ°´ÏquVZs†Š£ÍÒ说Êns‡}‚•}‚•sy‰qw…sy‡sy‡u{‰xz‡wy†uw„su‚prnp}ln{kmzjlyjlyjlyikxgivdfsacp_an^`m^`m^`m_an_an`bo`bo`boUWdVXeXZgZ\i\^k^`m`boacp^\j^\j^\j^\j^\j^\j_]k_]k`^l_]k\ZhWUcSQ_OM[KIWJHUGERFDOFDODBMCALB@KA?J@>IA?JA?J@>I@>I?=H>1/:31<42=*)1-,2.-2.-2.-20/4549=:D95F;7LA=QFBK@MB>MB>LA=TIEYNJWLHVKG]RNeZVi^Zk`\la]nc_qfbtievkgxmizok|qm}rn€uq‚ws„yu„yu„yuƒxt|sl}tk}tk}tk}tkvm„{rˆv•Œƒ„{ˆv‹‚yŽ…|„{‹‚yŒƒzŽ…|Ž…|Ž…|Ž…|Ž…|Ž…|Ž…|†}Ž…|‡~“Š–„˜†˜†˜†—Ž‡‰€{ˆz†}x„{v‚yt€wr~up}toypkypkwniulgqhclc^g^Yc\VSRNNOJGHCAB=>?:?@;AB=DE@UVQde`ab]DE@,-(&'"'(###!###&&('')002---;;9…†™š”‘’Œ‡ˆ€ƒ„|‚„yƒx}rxzoz{uyzuvwrstoopkklgijeghc[\WZ[VXYTUVQRSNPQLNOJMNINOJMNIMNINOJRSNXYT]^Yab]rsntupwxs{|w€{‚ƒ~…†‡ˆƒƒ…‚‚‡ƒ„ˆ‡‡Œˆ‰ŒŒ‘Ž’‘”•™˜—œ˜˜œ›˜™—›š™žš¡ £¥¢©©©ªª¨¬¬¬­­«¬¬¬««©ªªª©©§©©©©©§¨¨¨§§¥¦¦¦¥¥£¤¤¤¤¤¤©©«©¨­«ª¯¬«°®­²¯®³°¯´°¯´¬«°¬«°¬«°¬«°«ª¯«ª¯«ª¯©ª¬¨ª©§«ªª®­­±°¯³²¯³²¯³²®²±±µ´µ¹¸·»ºµ¹¸¯³²¦ª©—›šŒ‰ŒŠŽŒ“’”“‘•”‘•”‘•”“’“’Ž’‘‘ŠŽ†Š‰ƒ‡†€„ƒnrqimlbfe]a`Y]\SWVMQPHLKLPOJNMFJI?CB7;:.21&*)"&% $# $# $# $# $# $# $# $##"#"#"#"#"#"#"#"$ $$$$$$$!& !& !& #("%*$).(,1+/4.C=BGAEJDGLFHMGHMGHMGEJDBGA?D>>C=>C=86;7!%&!%(!%(!%(!%( $' $' $'$(+$(+%),%),&*-'+.'+.'+.56K?@UNOdYZo`avcdydezef{hi~ef{[\qLMbEF[OPehi~~~–™yy•oo‹aa}SSoLLhLLhPPlccccdd€kk‡xx”‰‰¥››·¥¥Á¯ut”QPpHGg}|œ²±Ñ½¼Üˆ‡§LKkdcƒ‰ˆ¨Œ¬ut”xw—–•µ¥¦Å“”³“²¯‰Œ«ˆ‹ªŠ¬’±”—¶œŸ¾—š¹_b:=\KNmEHg14S>B_€„®³É‹¨]azSWrei„tx•ˆŒ©—š¹™œ»®±Ô¾Á䔖¼wyŸŽ¶¢¦ËÒØúÝæÿŠ«8Abw€¡£¬Í‚‹¬w€¡‚‹¬w€¡S\}˜¹ÂË쭶׮·ØŸ¨Çy‚¡s|™†¬‘š·ˆ‘®“œ¹¨±Î¥®Ë–³…Ž«zƒ irqz—™¶Œ•²ls»ÀÝôøÿ·»Övz•[_xŽ’«ÇÌ⣨¾otˆ€…˜‚‡šw}tzˆtzˆtzˆv|Š|~‹{}Šxz‡uw„rtprmo|ln{fhuegtceracp_an\^kY[hXZgRTaSUbTVcVXeXZgZ\i[]j\^k]_l`boegtln{tvƒ{}Šƒ„†“zx†zx†yw…yw…xv„wuƒwuƒvt‚€~Œ~|Šzx†uspn|kiwgesecpVTaUS^TR]RP[PNYNLWMKVLJURP[RP[RP[RP[RP[QOZQOZQOZPNYQOZRP[TR]VT_XVaYWbZXc_]h^\g\Ze\ZeUS^WU`VT_<;C)(.+*/,+0,+0+*/,+00/4438?>CHGLXW\ihmwv{~ƒƒ‚‡„ƒ‰~}…Š„‚ƒŒ}ˆ|z…|z…}{†yw‚wu€us~tr}sq|pnykithfqdbmfdofdodbma_j^\gWU`PNYGEPGEPGEPGEPGEPGEPGEPGFNDCIDCIDCIDCIDCIDCIDCIDCIDCIDCIDCIDCIDCIDCIDCIDCICBGA@EA@ECBGJINSRW\[`baf…„‰±°µ¬«°lkp,+0HGLŸŸ¡ÞÙݲ®¯rnojfg¤ ¡ÊÆǾº»«§¨¤ ¡¤ ¡£Ÿ ¢žŸ¡ž œ œŸ›š}z€|y~zw|xuzvsxtqwspvrohdaea^a]Z[WTUQNOKHJFCID@B94E:6H=9J?;K@@E??D>:#'("&)"&)!%(!%( $' $' $'!%(!%(!%(!%(!%(!%("&)"&)45J>?TMNcYZo_`ubcxcdydezklfg|Z[pIJ_?@UJK`dezzz’||–ww“llˆ]]yQQmNNjRRnVVrbb~bb~eellˆ{{—ŽŽª  ¼««Ç”“³wv–RQqKJj~ž«ªÊ´³Ó†…¥XWwdcƒ€ŸŽ­†…¥Œ‹«¡ À«¬Ë–—¶“–µ“²Š¬…ˆ§…ˆ§‹Ž­“²”—¶–™¸eh‡>A`ILkDGf14S;?\x|•¸½Ó£§Àgk„HLg^b}tx•ƒ‡¤’±œŸ¾¼¿âÆÉ엙¿mo•†ˆ®Ÿ£ÈßåÿÛäÿqz›-6Wkt•˜¹u~Ÿs|€‰ªs|NWx•ž¿ÕÞÿ»Ä娱҉’±r{šqz—…Ž«’›¸–³— ½¤­Êœ¥Â†¬vœlu’nw”xžŠ“°’›¸„‹¨°µÒçëÿ­±Ìhl‡]az¤¨ÁÍÒ薛±kp„~ƒ–‚‡šyu{‰u{‰v|Šx~Œ{}Šz|‰wy†tvƒqs€mo|kmzjly]_l\^kY[hWYfTVcRTaPR_OQ^GIVHJWJLYMO\PR_SUbUWdVXedfshjwoq~wy†ƒ‰‹˜’Ÿ”–£ŽŒš‹™ŒŠ˜‰‡•‡…“„‚ƒ‚€Žxv„wuƒtr€pn|ljxigufdrdbo_]j^\g][f[YdYWbXVaVT_VT_`^i`^i`^ia_ja_ja_ja_ja_jfdogepjhsnlwrp{vtyw‚{y„}{†~|‡xvzxƒxvŠ~|‡TS[! &%$))(-+*/+*/+*/,+0.-210587=B=GD?HE@IFAJGBKHCLGCRGCWJD\OIbUOgZTj]Wl_Ym`Zrl|oiylfylf|oiƒvp‹~xƒ} “ž‘‹›Žˆ—Š„’…Ž{‹~x‰|v‚|‚|‹~xˆ{uŠ}w‚|‚|‹~xrl€smƒvp†ys‰|v€z‚|ƒ}‹~xŒyŽ{ƒ}ƒ}ƒ}‚|Œ{Šx‰vˆ€u‡tˆ€u‰vŠ‚wŠ‚w~vkvnctla|ti†~s‹ƒx‹ƒxŒ„yŒ„yŒ„y‹ƒxŠ‚wˆ€u‡t†~s†~s}ujwlyn‚zoƒ{p‚zoyn€wnof_ne`md_lc^kb]i`[h_Zh_Zf]Xf]Xe\WbYT^UPYPKTKFQJD@?;=>9:;6:;6=>9CD?KLGOPKZ[VnojklgGHC)*%#$$% !!!))+,,.88:???220DDByzu©ª¤žŸ™‘‰‰Š‚ˆŠ‰‹€‰‹~‡‰~€z€{}~y{|wyzuwxsvwruvqqrmpqlnojlmhjkfhidfgbefahidhidghcghcghchidjkfklgpqlpqlrsntupvwrxytyzuy{xz~}yz€€|‚‚}ƒƒ……€††€††…‹‹‰““‘——”ššš  ¢¨¨©­®©ª¬®®°³³µ´´¶³³µ²²´³³µ¶¶¸¯¯±¯¯±¯¯±®®°®®°®®°­­¯­­¯¨§¬¬«±´³¹º¹¿¼»Á»ºÀ¸·½µ´º©¨®¨§­¦¥«¤£©¡ ¦Ÿž¤œ¢›œ •–˜“—–”˜—“—–‘•”Ž’‘‹Ž‰Œ}€€„ƒƒ‚y}|vzyrvueihW[Zcgfeihimllponrqnrqmqplpovzyw{zw{zx|{w{zuyxrvuquthlkeihaed_cb_cb]a`Y]\VZYOSRMQPIMLBFE:>=154*.-%)( $# $# $# $# $# $# $# $##"#"#"#"#"#"#"$ $$$$$$$$#(!$)"$)"',%*/(/4-3815:3EJCGLEINGLQJMRKNSLMRKLQJFKDCHA@E>@E>AF?@E>>C<;@:(,-'+.'+.&*-%),$(+#'*#'*"&)"&)!%(!%(!%(!%(!%(!%(34I>?TMNcYZo`avcdyef{gh}op…ij[\qIJ_>?THI^abwww{{•uu‘hh„XXtPPlRRnWWsZZv]]y__{ccllˆzz–ŠŠ¦™™µ¢¢¾”“³ut”POoNMmƒ‚¢§¦Æ«ªÊ‚¡dcƒed„yx˜Œ¬’‘±˜—·¥¤Äª«Ê™š¹–™¸’•´Š¬ƒ†¥ƒ†¥‰Œ«“²“²“²gj‰FIhORqMPo>A`@Daw{”½ÂØ°´ÍptCGbW[vsw”‚†£Œ®¤§ÆÆÉìÈËÁdfŒ}¥ž¢ÇáçÿÔÝþaj‹!*Kaj‹ƒŒ­ox™r{œu~Ÿ`iŠENo˜¡ÂéòÿÖßÿ±ºÛ„¬ir‘mv“Š§˜µ˜µ›¤Á¥®Ëœ¥Âˆ‘®mv“Ybjs~‡¤Š“°— ½˜Ÿ¼¸½Úßãÿ›ŸºTXsbfÂÆß×Üò‡Œ¢di}z’†™z€w}‹x~Œy~„’z|‰xz‡uw„rtnp}jlygivfhuZ\iXZgUWdRTaPR_OQ^OQ^OQ^HJWJLYMO\QS`VXeZ\i]_l_anprrtvx…|~‹‚„‘‡‰–ŒŽ›Ž”’ ’žŽœ‹™‰‡•†„’„‚‚€Žxv„wuƒvt‚tr€rp~om{nlzmkxgerfdoecndbmcalb`ka_j`^ikitkitljuljumkvmkvnlwnlwzxƒ}{†‚€‹ˆ†‘˜–”Ÿ›™¤›¦±¯º°®¹¦¤¯©§²®¬·¼ºÅ¶´¿zy"&%*+*/,+0,+0,+0-,143865::9>@?DGFKPOTWV[[Z`Œ”­«¶ÂÀ˺¸Ã«©´«©´±¯º³±¼´²½°®¹¬ªµ©§²§¥°¡Ÿª—• ˜˜–¡›¦žœ§™—¢“‘œ‡…ljuRP[97B97B97B97B97B97B97B98@43943843843843843843843876;76;76;76;76;76;76;76;98=98=<;@DCHQPUa`epotyx}€…—–›†…ŠXW\549(',?>CkkmuptjfgGCD1-.>:;JFGC?@;78FBCFBCHDEIEFKGHMIJNJKNJIGC@IFAKHCMJENKFNKFMJEMJEb_Zda\jgbqniyvq€}x…‚}‰„~“ˆ‚˜‹…›Žˆž‘‹¡”Ž¢•¢•¡”Ž•ˆ‚“†€’…‘„~’…•ˆ‚—Š„™Œ†š‡š‡™Œ†™Œ†˜‹…—Š„—Š„—Š„”‡“†€€zˆ{uˆ{u‹~x‰|v„wq{nh}pjtn†ys‹~x‚|“†€•ˆ‚‘„~’…”‡•ˆ‚–‰ƒ•ˆ‚“†€’…}Ž„z‹ƒxˆ€u‰vŒ„yˆ}’Š“‹€wlxpevnc|tiƒ{p…}r†~sˆ€uƒ{pƒ{p‚zoyn€xmwl~vk~vkph]qi^rj_sk`rj_ph]nf[lcZe\Ue\Wd[VcZUbYTaXS`WR`WR_VQ_VQ]TO[RMWNIRIDMD?IB<:95894783:;6@AC<CCBGGFKIHM>=BIHMEDI98=98=>=BFEJRRTSNRQMNKGHHDEKGHMIJKGHIEFLHINJKQMNUQRZVW^Z[a]^c_^fb_ifalidpmhrojspkrojroj|yt}zu~{v€}x‚z„|†ƒ~‡‚|‘†€–‡€š‹„žˆ ‘Š¢“Œ¢“Œ¢“ŒŸ‰žˆŽ‡œ†œ†Ž‡Ÿ‰ ‘Š ‘Š ‘Š ‘ŠŸ‰Ÿ‰žˆžˆžˆ—ˆ–‡€‘‚{Š{tˆyr‹|u‰zs„un‡xqˆyrŠ{tŒ}v€y‘‚{“„}”…~–‡€˜‰‚™Šƒš‹„š‹„™Šƒ—ˆ•ˆ€†|rwjyqdwobzre~vi€xk€xkiaTd\Oc[Ng_RiaTiaTkcVogZ{sfzrezrezreyqdyqdxpcxpcmeXnfYmeXldWjbUg_Rc[NaYN`WP`WR`WR_VQ^UP^UP]TO]TOZQLZQLYPKVMHRIDMD?H?:E>8762672783;<7DE@OPKZ[Vab]klg‡ˆƒ†‡‚WXS)*% """//1335::>C<>C<@E>@E>>C<;@:9=>859<37:269047047/36.25.25-14,03+/2*.1*.156K@AVPQf^_tgh}klno„pq†tuŠop…abwNOdBCXIJ_`avuu€€šww“dd€SSoOOkVVrZZvWWsTTpXXt__{hh„ppŒww“||˜~~š‰ˆ¨}~kjŠde„~ž†‡¦Œ‹«vw–mlŒbc‚lk‹„…¤”“³–—¶™˜¸œ¼˜›º–™¸‘”³ˆ‹ª„£„‡¦“²›ž½›ž½‹Ž­mp[^}`c‚cf…X[zMQnƒž¹½Ö¯³Îuy”@D_NRovz—’–³•˜·³¶ÕÈË췺ݒ•¸X[~x{ž®²ÕÙßÿÉÏïMSu9Z`‚}ƒ£rxšw}u{GMm8>`“™¹ñ÷ÿíóÿ°¶Øqw—mt‘t{—†ª”°‹’¯—žº¡¨Å›¢¾¤«È€‡£LSpT[wu|™ƒŠ¦™ ½¨¯Ëßäÿìðÿšž¹NRmim†ÔØñÙÝö‚‡lq‡‚‡›Š£€…˜z’w}w|{‘oq€mo|jl{fhuacr]_lZ\kXZgNP_LN[JL[HJWGIXHJWJL[KMZUWfWYf[]lacpgixln{qs‚su‚|~|~‹|~|~‹|~|~‹|~|~‹…‚“„‚ƒ€‘€}Ž~|Š}z‹|zˆzwˆzx†yv‡wuƒvs„ustq‚tr€€~‹€~‹€~‹€~‹ŒŒŒŒ„‚„‚…ƒ†„‘‡…’ˆ†“‰‡”‰‡””’Ÿ˜–£Ÿªª¨µµ³À¿½ÊÆÄÑËÉÖÉÇÔÄÂÏ°®»µ³ÀÁ¿ÌÕÓàÉÇÔvt ! %))+,+0++-)(-))+*)...0327668438,,.#"'!ont©¨®ÍÊѸ·½š¡œ¢¥¢©¢¡§¡ž¥œ¢ž›¢¡ ¦¦£ª¤£©œ™ “’˜¦£ª¬«±­ª±¦¥« ¤Œ’ifmDCI5294395294395294395294390.1//10.1//10.1//10.1//11/20021/20021/20021/2002869;;=B@CFFHIGJEEGB@C>>@758;;=>E=:@;7651561775=>9FFDSTO^^\fgbttr“”’’^_Z**(!!!00233588:???555BB@lmh£¤Ÿœ˜”•“”Ž–—™š’—˜”•š›•™š•™š•™š•™š•™š•™š•™š•’“Ž‘’ŽŠ‰Š……†‚}~z|}x„…€†‡‚‰‰‡ŒˆŽ’“Ž””’•–‘’’‘’Œˆ‰‰‡‡ˆƒ……ƒ‚„w{ztxyptukopfjk`de\`aZ^_aeffjkmqruyz}‚ˆŒ’–—šžŸ£¥¤©©©¬¬¬¨¨¨ŸŸŸ™™™™™™œœœ‡‡‡………€€€{{{uuuoookkkiii|||yyyvvxsssrrtsssuuwwwwyy{{{{~~€‚‚‚††ˆŠŠŠ”–“•—”–˜•—™–—™–•—”“•’‘“vxuz|y„†ƒ‘Ž’‹ŠŒŽ‹’”‘˜œ›—›š•™˜•™˜—›ššžž¢¡ ¤£•™˜•™˜•™˜”˜—‘•”‘ŠŽˆŒ‹txwptslpohlkfjicgf^baZ^]UYXSWVNRQHLK@DC7;:/32+/. $# $# $# $# $# $# $# $##"#"#"#"#"#"#"#"#"$ #"$ #"$ #"$ $# &"#'&$*&*.-.404876<8?CB?EABFECIEDHGCIECGFAGCAED>D@=A@?CB>D@=A@:@>>BE=BFB8;@5:>58=38<47<27;25:059038.37.16-26%&;56K^_t}~“”•ªš›°‡ˆ~”yzqr‡dezRSh<=R45JJK`ff~ƒƒww“eeVVrUUq[[w\\xWWs66RZZvoo‹yy•qqjj†vv’vv’|}œwz™uv•qt“tu”ux—|}œ}€Ÿwx—Y\{UVu€ƒ¢ž½œŸ¾¨©È £Â’•´’±Ž‘°’±Œ®Š¬Ž‘°•˜·¤§Æ’±~ gj‰hkŠfiˆORq]`|€¨¬É™ºmqŽCGd:=\mp–™¸¬¯Î•˜·š¼š¾‰Œ­jmŽjmŽª­ÎêïÿÏÔòhm%*H=Bbrw•zŸ…Š¨†¦ejˆGLl™ž¼ñöÿäéÿ¢Â|Ÿ}‚Ÿw}—†‹¨’˜²’—´†Œ¦„¡“™³­²Ï‡¡_d^d~w|™…‹¥Š¬¦¬Æó÷ÿâæÿœ »^b}koŠ«¯Êº¾Ù‚†Ÿvz“…‰¢…‰¢quŽbfdiim†gl€_`t]_n[\nWYhTUgPRaNOaLN]EFXEGVFGYHJYKL^OQ`STfUWfZ[m\^m_`rdfujk}oq€rs…tv…vw‰vx‡wxŠxz‰xy‹y{Šz{z|‹||||||||}z}z‹{x‹{x‰{x‹|yŠ~{Ž|‡„•Œ‰š“¡˜•¦™–§—”¥•’£”‘¢•’£”‘¢–“¤˜•¦“¡†ƒ”}z‹{x‰Š‡š‡„—ˆ…˜ŠŒ‰œˆ…˜ˆ…˜Œ‰œ~‘~‘~‘…‚•‘Ž¡™–©‰†™mky#"""&&((((((*((())++++..0.....0.....0.....0...b`a˜–—ÿÀ¸¶·¥¡¢§¥¦¯«¬¥£¤•‘’˜–—¤ ¡ª¨©«§¨žœ‰Š}{|plmqopqmnhfgb^_VTUEAB0./2./0./2./0./2./0./2./0./401201401201401201401201-)*.,-1-./-.0,-201:67=;8=9384162$ $ $ $ $ $ $ $ ###"""! !!#&%( & )!'#'0&, $-$*!%.!(.&*3&-37;D5-1:,3904=07=48A4;A8F:>G8?I:>I8?I:>I8?I:>I8?I:>I8?I:>I8?I:>I8?I:>I8?I#$934I\]r~”˜™®žŸ´Š‹ ~”yzqr‡dezRSh;;B>;A=:952.*'2.+2.+2.+2.+2.+2.+2.+2.+4014014014014014014014010,-0,-1-.1-.1-.3/0<89FBA_[Zokhyur|xuƒ|‡ƒ€wsp_[X($!"B>;tpm¡šœ˜•’Ž‹‹†‚Œ„†‡‚‘ˆƒ‘ˆƒ‡‚†„‰€{ˆz†}x„{v‚ytvq~up}tovqvqvqvqvqvqvqvqxsxs‚yt„{v†}x‡~yˆz‰€{‰€{‹‚}†’‰„•Œ‡–ˆ–ˆ–ˆ‹‚}„†‘ˆƒ”‹†—Ž‰™‹š‘Œš™Ž˜Ž–Œ‹•‹Š“‰ˆ’ˆ‡’ˆ‡‘‡††…Ž„ƒŒ‚‰~‡}|…{zƒ{y„|‚~{ƒ|ˆ„‹ˆ”•‘Ž”™•’š–“œ˜•™–™–œ˜•š–“™–‘¥¢š“†ƒ|roholepmfliblibkhalibmjcoleqngrohtqjtqjzvsyurwspuqnrnkplinjgmifiebhdaea^b^[_[X\XUZVSVUQXVWXXXYYYZZZYYYWWWUUUTTTOOOLLLHHHBBB>>>;;;999888333777AAAOOO[[[fffrrr|||ŸŸŸ”””VVV&&&###***---222888<<<@@@AAABBBNNNHHHiiiŒŒŒ‡‡‡ŠŠŠ‰‰‡’’“”“””••–‘•–‘–—’–—’–—’‘Œ‡ˆƒ~zvwrqrmopknoj}}}}}}ˆˆˆŽŽŽŽŽŽŽŽŽ‡‡‡ssstttuuutttqqqlllfffbbbZZZWWWRRTMMMJJLJJJJJLLLLRRTVVV]]_dddhhjjjjjjljjj|}x|}w}~x€z‚|ƒ„~„……†€‹Œ†‘‹‘’ŒŒ‡Žˆ•–œ—Ÿ ˜²´§°²¤®°¢¬® ¬® ­¯¡¯±£°²¤¢¤–¢¤–£¥—¤¦˜¤¦˜¥§™¦¨š¦¨›ªª¢§§Ÿ¤¤œ££›¤¤œ££›  ˜žž–˜˜˜˜——––Ž––Ž••••“”Ž’‘“””•’–—”˜™–š›—›œ˜œ“—˜‘•–“”Œ‘ˆŒ…‰Š‚†‡…†uyxsxtotpinjchd]b^Y^ZV[WLQMJOKFKG@EA:?;5:6162.3/$ $ $ $ $ $ $ $ !!!!!!!!!&)*++ ,!-!-!'3 &2%1$0%1!'3$*6&,817C17C06B/5A/5A.4@-3?-3?)/;*0<+1=-3?/5A17C28D39E4:F4:F4:F4:F4:F4:F4:F4:F8>J8>J8>J8>J8>J8>J8>J8>J !6/0EXYn~”œ²¤¥ºŽ£€•yzqr‡dezQRg9:O01FCDY^^v›{{—nnŠccaa}ccaa}ZZv44PZZvzz–ŠŠ¦„„ yy•~~š~›…†¥‚…¤‚…¤‚¡|žx{štw–qt“fiˆDGfADc~ ´·Ö½Àß°³Ò›ž½–™¸”—¶“–µ”—¶‘”³¯“²–™¸Ÿ¢Á‡Š©|žps’or‘_bFIh\_~‰Œ«£¦Å¯mpMPo@Cbmp˜›º¦©ÈŒ®‚…¤™œ»´·Öƒ†¥TWv‹Ž­ßâÿÝàÿ€ƒ¢-0O58WloŽx{š„£°³ÒŠ¬kn¤§ÆØÛúÍÐÀŽ’¯‡‹¨x|—†Š¥—›¶“—²ƒ‡¢ƒž–šµ®²Í…‰¤nrimˆtx“‡‹¦‘•° ¤¿ðôÿÚÞùž¢½qu{š§«Æ¯³Î… €„ŸŒ«‰¨pt\`{\`{_c~]azTUiSTfPQcMN`JK]GHZEFXDEWHI[HI[IJ\JK]NOaRSeVWiXYkbcudewhi{lmqr„uvˆyzŒ{|Ž}~}~}~~‘€’€“€“‚”†ƒ–†ƒ–†ƒ–†ƒ–†ƒ–†ƒ–†ƒ–†ƒ–‰†™ŒŸ—”§Ÿœ¯¤¡´¥¢µ£ ³¢Ÿ²§¤·¢Ÿ²š­œ™¬ž›® °ž›®œ™¬•’¥š­¥¢µ¡ž±Ž‹žxuˆolro‚wt‰{x~{~{}z~{~“‚”‰†›…‚—…‚—~“‰†›¤¡¶™–«fdr! &%%%)))+++***)))***,,,.......................,+'&952JFCGC@952;74C?;FB?IEBIEBJFCKGDLHE]YVRNKA=:3/,1-*51.40-0,)2.+2.+2.+2.+2.+2.+2.+2.+4014014014014014014014014012./4016233/03/0>:;MIH_[Znjgzvs|xu~zw}yviebQMJ" B>;uqn¡šœ˜•“ŒŒ‡ƒˆ…’‰„“Š…•Œ‡•Œ‡“Š…’‰„‘ˆƒˆz‡~y…|wƒzu€wr~up|sn{rmwniwniwniwniwniwniwniwniypkzql{rm}to~up€wrxs‚yt‡~y‰€{Œƒ~‡‚’‰„“Š…”‹†“Š…vq€wrƒzu†}xŠ|„‡‚’‰„¤š™¤š™£™˜¢˜— –•ž”““’œ’‘™Ž˜Ž–Œ‹”Š‰‘‡†…„ƒ‚‹ƒˆ…Œˆ…‰†’Ž‹˜”‘œ˜•žš—žš—Ÿ›˜ œ™¢ž›£Ÿœ£Ÿœ¢ž› œ™Ÿœ—¢Ÿšž›”Š‡€urkolemjcliboleoleolepmfrohspiurkvslvsl{wtzvsxtqvrosolqmjokhnjgiebgc`ea^b^[_[X\XUYURVUQYWXYYYZZZZZZYYYWWWUUUSSSLLLIIIDDD@@@<<<:::999999<<<===HHHXXXcccjjjuuu™™™uuu===((('''!!!***,,,111555888;;;;;;<<<111+++OOOzzzzzzsss}}}ƒƒƒƒƒ„„…€…†…††‡‚‡ˆƒ‡ˆƒ‚}|}xuvqmnifgbcd_bc^bc^fffeeejjjlllfffaaa]]]VVVCCCDDDFFFGGGEEEAAA<<<999KKKIIGEEEBB@BBBDDBGGGJJH```eecnnnxxv††„‰‰‰‰‰‡ž™žŸ™Ÿ š ¡›¢££¤ž¤¥Ÿ¥¦  ¡›£¤ž£¤žŸ šŸ š¥¦ ª«¥¬­¥±³¨°²¥®°£¬®¡«­ ª¬Ÿ«­ «­ ¦¨›¦¨›¦¨›§©œ¨ª¨ª©«ž©«ž§§Ÿ¤£ž¡ › Ÿš¡ › Ÿšž˜›š•›š•›š•š™”™˜“˜—’—–‘–••–‘’‘”Ž’•“–‘•˜’–™“—š“—šŒ“‹’‰†Šƒ‡Š€„‡~‚…}‚rvupuqkpldie]b^W\XRWSOTPFKGDIE@EA;@<5:6051,1-*/+$ $ $ $ $ $ $ $       !!! ) , ,!-".#/#/$0"(4"(4!'3!'3!'3#)5$*6&,8+1=+1=*0<)/;)/;(.:'-9'-9&,8'-9(.:)/;*0<,2>,2>-3?-3?-3?-3?-3?-3?-3?-3?-3?5;G5;G5;G5;G5;G5;G5;G5;G4,-BSTiz{›œ±¥¦»Ž¤€•xyŽqr‡dezQRg9:O./D@AVZZr{{•yy•rrŽjj†ggƒff‚aa}YYu//KRRnxx”©ŠŠ¦‚ž‰Š©ˆ‹ªˆ‹ª†‰¨„£z}œsv•or‘`c‚?BaADc„£¾ÁàÇÊ鯲ј›º‘”³“²‘”³”—¶’•´Ž‘°‘”³—š¹Ÿ¢Á„‡¦z}œqt“mpY\{BEd`c‚’•´¢¥Ä†‰¨knORq?BahkŠ’•´¦©Èˆ‹ªvy˜–™¸ÃÆ勎­JMl€ƒ¢ÙÜûßâÿŠ¬7:Y58Wdg†sv•„‡¦ÈËꥨDžˆ§£¦Å¿Âá½Àߢ¥Äž¢¿ŠŽ«tx“ƒžŽ’­ŠŽ©ƒžƒ‡¢ž¢½²¶ÑŠŽ©tx“hl‡hl‡ƒž“—²¢¦ÁëïÿÓ×ò¡¼z~™…  ¤¿¦ªÅ~‚~‚ŠŽ©‡‹¦osŽ]a|]a|`d^b{WXlVWiUVhRSeOPbMN`KL^JK]LM_LM_LM_MN`PQcSTfWXjYZlefxghzjk}nors…vw‰yzŒ{|Ž}~~‘~‘€’€“‚”‚”‚”Œ‰œŒ‰œŒ‰œŒ‰œŒ‰œŒ‰œŒ‰œŒ‰œ•’¥š­«¨»¹¶ÉÁ¾ÑÄÁÔ¿ҿ¼Ï«¨»¡ž±•’¥‘Ž¡“£•’¥“£ŒŸ˜•¨¢Ÿ²«¨»¥¢µŽ‹žzwŠxuˆ€}Œ‰žˆ…š‰†›‘Ž£“¥Œ‰ž†ƒ˜…‚—–“¨ˆ…šƒ€•„–š—¬ÆÃؼ¹Îzx†#"''''+++,,,+++***+++,,,.......................,.*)730QMJ_[XVROSOLZVSYURa]Zea^hdakgdmiftpm~zw…~‰…‚rnkRNK:631-*3/,51.51.2.+2.+2.+2.+2.+2.+2.+2.+401401401401401401401401512623<89?;<956401>:;NJIgcbtpm|xu|xu{wtvrod`]OKH%!%!IEBzvs£Ÿœ›—”’Ž‹ˆ„Ž†ƒ‡‚’‰„“Š…“Š…’‰„‡‚††}x…|w‚yt€wr|snzqlwnivmhqhcqhcqhcqhcqhcqhcqhcqhcvmhwnixojzql{rm}to~upvq‡~y‰€{„‡‚’‰„”‹†”‹†”‹†–ˆ—Ž‰›’Ÿ–‘£š•§ž™ª¡œ¬£ž¯¥¤¯¥¤¯¥¤¯¥¤­£¢«¡ ¨ž§œŸ•”ž”“œ’‘š—Œ•‹Š“‰ˆ‘‰‡Œ‡„Œˆ…ŽŠ‡’Ž‹—“›—”™–žš—¤ ¥¡ž§£ ¨¤¡¨¤¡§£ ¥¡ž¤¡œž›–ž›”Šƒxunolemjcmjcrohtqjtqjurkvslwtmxunyvoyvo|xu{wtzvswspuqnsolqmjpliiebhdaea^b^[_[X\XUZVSVUQZXYZZZZZZZZZYYYVVVTTTRRRHHHEEEAAA===::::::;;;===BBBEEERRRaaaiiimmmzzzŠŠŠƒƒƒOOO'''!!!%%%)))+++///222444666666666,,,(((EEEffffffaaaggghhfjjhjkfklglmhlmhmninojnojab]_`[Z[VWXSVWRWXSYZU[\WRRRSSSWWWYYYWWWTTTPPPLLLYYY[[[]]]]]][[[VVVRRROOOJJHGHCEFADE@FGBLMHRSNVWRtupz{v„…€‹™š• ¡œ£¤Ÿ¥¦¡§¨£§¨¢¨©£©ª¤ª«¥«¬¦¬­§¬­§£¤ž£¤ž¢£ ¡›¡¢œ£¤ž§¨¢¨©£«­¢«­ ª¬¡©«ž¨ªŸ¨ª¨ªŸ¨ª¦¨¦¨›¦¨¦¨›¦¨§©œ§©ž§©ž¥¤Ÿ¢¡œŸžšž˜ŸžšŸž™œ›—™˜“›š–›š•š™•˜—’—–’–••”““‘Ž‘Œ“Œ“‘”‘”Ž’•Ž’•Ž’•ƒ‡Š‚†‰€„‡~‚…{‚y}€w{~vz{mqpjokejf^c_V[WOTPINJFKG@EA>C?:?;5:6051+0,',(%*&$ $ $ $ $ $ $ $   !!""""!%.%1 &2!'3!'3"(4#)5#)5&,8&,8&,8&,8&,8&,8'-9'-9'-9'-9&,8&,8%+7$*6#)5#)5%+7%+7%+7&,8&,8'-9'-9'-9&,8&,8&,8&,8&,8&,8&,8&,8.4@.4@.4@.4@.4@.4@.4@.4@ !6*+@NOdrsˆ’“¨žŸ´‹Œ¡~”wxpq†ef{RSh:;P/0E@AVYYqttŽvv’uu‘ppŒllˆhh„__{UUq++GGGcppŒ‰‰¥©‰‰¥……¡‡ˆ¤Ž®Œ®Š¬‡Š©‚…¤|žux—qt“`c‚ADcGJi…ˆ§ÁÄãÈËꩬ˔—¶Š¬Š¬Ž‘°’•´‘”³Ž‘°‘”³—š¹ £Âƒ†¥x{šnqhkŠRUtADceh‡—š¹ £Â€ƒ¢hkŠORq?Bafiˆ’±§ªÉ…ˆ§qt“’•´ÁÄ㈋ªHKj‚¡ÓÖõÛÞý’±BEd9<[\_~or‘¯ËÎí³¶Õ—š¹ž¡À§ªÉ§ªÉ™œ»¤¨ÅŒ­quw{–… }œ|€›Œ«ª®É«¯Ê‹ª|€›lp‹dhƒuy”Œ« ¤¿éíÿÎÒ휠»~‚‚†¡™¸ž¢½}œsw’ƒ‡¢„ˆ£ptae€cg‚gk†ei‚cdxbcuabt_`r]^pZ[mYZlXYkRSeQRdPQcPQcQRdTUgVWiXYkcdvdewghzkl~op‚rs…uvˆwxŠyzŒz{z{{|Ž|}|}}~}~ˆ…˜ˆ…˜ˆ…˜ˆ…˜ˆ…˜ˆ…˜ˆ…˜ˆ…˜†ƒ–‹ˆ›’¢—”§–“¦ ‡„—~‘ˆ…˜|tq„qntq„xuˆvs†spƒŠ—”§£ ³¢Ÿ²•’¥Š–“¦¦£¶¡ž±’¢’¢¥¢µ­ª½Ÿœ¯ Ž‹ž£ ³’¢Š‡š‡„—™–©Â¿Òº·Ê|zˆ&%****---...,,,++++++---.......................,$ 40-c_\…~}yvqmjuqnvro{wt|xu~zw~zw€|y‡ƒ€’Ž‹š–“‹ˆrnkMIF40--)&0,)40-7302.+2.+2.+2.+2.+2.+2.+2.+401401401401401401401401734>:;HDEJFG@<=623;78HDCWSR_[Xb^[_[X\XUYURMIF?;8*&#+'$NJG{wtžš—“ŒŒˆ…‰„€‰~‹‚}„Ž…€Ž…€„‹‚}Š|ƒzu‚ytvq|snxojulgridqhcmd_md_md_md_md_md_md_md_xojxojzql{rm}to~upvq€wr‰€{‹‚}Ž…€‘ˆƒ”‹†•Œ‡•Œ‡•Œ‡›’œ“ŽŸ–‘£š•¨Ÿš¬£ž¯¦¡±¨£®¤£¯¥¤°¦¥°¦¥®¤£«¡ ¨ž¦œ› –•Ÿ•”ž”“›‘™Ž—Œ•‹Š“‹‰‹ˆ‘Š”˜”‘›—”Ÿ›˜¢ž›¤ ¤ ¥¡ž§£ ¨¤¡¨¤¡§£ ¥¡ž¤¡œš—’›˜‘Ž‹„zwpqngolepmfwtmyvoyvozwpzwp{xq{xq|yr|yr~zw}yv{wtyurwsptpmsolrnkkgdiebgc`d`]a]Z^ZW[WTXWS[YZ[[[[[[ZZZYYYVVVSSSQQQFFFCCC???;;;:::<<,2>(.:(.:'-9&,8&,8%+7$*6$*6%+7%+7%+7$*6$*6$*6#)5#)5!'3!'3!'3!'3!'3!'3!'3!'3%+7%+7%+7%+7%+7%+7%+7%+7$%:+,AIJ_fg|ƒ„™‘’§„…š|}’vwŒop…ef{TUj=>S12GBCX[[snnˆuu‘yy•ww“rrŽkk‡__{TTp--IAA]hh„„„ ’’®••±¬”•±–—¶‘”³‹Ž­…ˆ§~ y|›vy˜tw–fiˆGJiMPo…ˆ§ÁÄãÇÊ颥đ”³‰Œ«‰Œ«¯’•´‘”³Ž‘°’±”—¶ ¿„‡¦y|›loŽcf…ORq@Cbfiˆ“²š¼{~dg†QTsFIhps’˜›º¤§Æ‚…¤vy˜“–µ²µÔ}€ŸKNm„‡¦ÊÍìÖÙø’•´ILk?734956?;:C?>HDAHDAD@=A=:A=:<8540--)&-)&NJGvro•‘Ž‰…‚ƒ|ƒ~z‡|Š|‹‚}Œƒ~Œƒ~‹‚}Š|ˆzƒzuxs~up{rmwnisjepgbofane`ne`ne`ne`ne`ne`ne`ne`{rm|sn}tovq€wr‚ytƒzu„{v‰€{‹‚}Ž…€’‰„”‹†•Œ‡•Œ‡•Œ‡™‹›’”¡˜“¥œ—¨Ÿš«¢¬£ž¬¢¡­£¢¯¥¤°¦¥®¤£ª Ÿ¦œ›¤š™“’œ’‘›‘˜Ž–Œ‹”Š‰’ˆ‡ˆ†‹ˆ’Ž‹—“š–“œ˜•Ÿ›˜£Ÿœ§£ Ÿ›˜ œ™¢ž›£Ÿœ£Ÿœ¢ž› œ™Ÿœ—•’˜•Ž‹ˆzwptqjspiurk{xq~{t~{t~{t~{t~{t|u|u|u€|y{x}yv{wtxtqvrotpmsolmiflhejfcgc`c_\`\Y^ZW[ZV\Z[\\\\\\[[[XXXUUURRRPPPEEEBBB>>>;;;;;;>>>CCCFFFYYY^^^dddjjjvvvˆˆˆ«««fff333%%%&&&######&&&(((+++///111222222111***)))333AAAJJJSSSRRRCCANNLNOJOPKPQLQRMQRMRSNRSNTUPUVQXYT^_Zghcqrm{|w€|’’’•••‘‘‘ŒŒŒ‰‰‰‚‚‚zzzyyyxxxxxxwwwtttooohhh```\\ZOPJMNFLMEMNFSTL]^Vhiaoph†‡Š‹ƒ’“‹™š’Ÿ ˜£¤œ¤¥¤¥£¤Ÿ£¤Ÿ£¤Ÿ£¤Ÿ£¤Ÿ£¤Ÿ£¤Ÿ£¤Ÿ ¡œ›œ—š›–ž™ ¡œŸ ›žŸšŸ ›¡¢œ¢£¤¥Ÿ¦§¡¨©£¨©£§¨¢§¨¢©ª¤©ª¤¨©£¨©£§¨¢¦§¡¦§¡¦§¡žžœšœ™˜˜˜—™–˜˜˜—™–•••‘“‹ŠŠŠŠ‡‰††††ƒ…‚‚‚‚€‚uy|tw|sv{ruzqtypsxorwnqvmpulotknsilqgjofindgldgl]abZ^]UYZOSRHLMAED<@A:>=59:376045,0/(,-$('!%&#"#$#"#$#"#$#"#$#"!%&!%$"&'$('%)*'+*(,-',/37@17C28D39E4:F4:F5;G5;G5;G6+1=*0<*0<)/;(.:(.:'-9&,8$*6#)5"(4"(4%1%1%1%1%1%1%1%1$0$0$0$0$0$0$0$0()>-.CEF[[\qst‰‚ƒ˜|}’z{uv‹op…fg|VWl?@U45JEF[^^vmm‡vv’~~š~~šyy•ppŒbb~UUq77SAA]ff‚ƒƒŸšš¶¥¥Á  ¼¥¦Â¡¢Á˜›º¯„£x{štw–sv•tw–ps’KNmMPo„£ÁÄãÈËꞡÀ¯Ž‘°Ž‘°’•´•˜·“–µ¯¯‘”³—š¹ƒ†¥|žloŽbe„NQp?Babe„‚…¤‘”³vy˜cf…WZyUXw…ˆ§­°Ïž¡À~ „£™œ» £ÂnqPSrŠ¬¿ÂáÕØ÷•˜·JMl:;5127349542.-62/62/40-3/,40-3/,0,)1-*0,)OKHtpmŒ‰„€}}z…€|‹ƒ€„Ž…€‡‚‡‚Ž…€„Œƒ~†}x„{vxs}toypkulgridpgbpgbpgbpgbpgbpgbpgbpgbpgb~upvq€wrxsƒzu„{v†}x†}x†}x‰€{Œƒ~†’‰„“Š…“Š…“Š…’‰„“Š…•Œ‡˜Š›’ž• —’¡˜“¬¢¡®¤£°¦¥±§¦°¦¥¬¢¡§œ¤š™˜Ž—Œ•‹Š“‰ˆ‘‡†Ž„ƒŒ‚‹ƒˆƒ€Œˆ…Œ‰“Œ•‘Ž—“œ˜• œ™™•’š–“œ˜•™–™–œ˜•š–“™–‘’Š”‘Šˆ…~zwpxunyvoyvo~{t‚x‚x‚x~w~w~w~w~w}z€|y~zw|xuyurwspuqntpmpliokhmifiebfb_c_\a]Z^]Y][\\\\\\\[[[XXXUUUQQQOOOEEEBBB===;;;<<DP>DP=CO>DP@FR@FR?EQ=CO:@L9?K5;G4:F4:F39E28D17C17C06B,2>+1=*0<(.:&,8$*6#)5"(4%1%1%1%1%1%1%1%1 , , , , , , , ,+,A/0ECDYTUjhi~yzvwŒyztuŠno„fg|WXmABW78MGH]aaymm‡xx”‚‚ž„„ ~~šttdd€WWs@@\DD`ff‚……¡  ¼±±Í¬¬È²³Ï©ªÉ ¿Ž‘°~ sv•ps’qt“sv•x{šMPoJMl}€ŸÁÄãÌÏÀ‹Ž­•˜·”—¶—š¹™œ»”—¶¯‹Ž­Ž‘°‘”³‚…¤‚¡nqcf…ORq>A`^a€vy˜Š¬ru”be„\_~be„–™¸¿Âᙜ»|žŠ¬ž¡À”—¶eh‡SVu¯¶¹ØÕØ÷˜›ºHKj;>]dg†|ž—š¹£¦Å¥¨Ç¸»ÚÚÝüÅÈçvy˜DGfƒ –š·ƒž… {šrv‘†Š¥ ¤¿²¶Ñ‹ª†Š¥„ˆ£tx“_c~QUpdhƒœ »õùÿÚÞù¥©Ä‚†¡ƒž—›¶¤¨Ã‘¬W[vpt€„Ÿ{švz•{š}œy}–{|{|Žz{yzŒwxŠvw‰uvˆuvˆcdv`as\]oXYkTUgRSeQRdPQcOPbPQcRSeUVhXYk[\n]^p^_qabtabtbcucdvdewdewefxefxnk~nk~nk~nk~nk~nk~nk~nk~spƒqnolmj}li|kh{li|li|nk~ro‚xuˆ{x‹zwŠwt‡spƒqngdwebufcvifyifyebudatgdu\Zhdbpecq][iYWe][i[YgTR`PN\A?M53A20>20>42@20>-+6,+0///222222///------..........................,"/+(hda—“–’”žš—œ˜•ŽŠ‡ƒ|uqnokhtpm€|yŒˆ…“Œb^[KGD62/2.+73084162/51.2.+2.+2.+2.+2.+2.+2.+2.+401401401401401401401401KGHa]^iefSOP:67401734732-)(1-*40-3/,3/,51.62/40-51.40-RNKuqn‘Š…~…~Š…‡„‘ˆƒ“Š…”‹†”‹†“Š…‘ˆƒ‡‚‰€{‡~y„{v€wr{rmwnitkfridsjesjesjesjesjesjesjesjevq€wrxs‚yt„{v…|w‡~y‡~y„{v†}x‰€{„†‘ˆƒ‘ˆƒ‡‚„Ž…€‡‚’‰„”‹†–ˆ˜Š™‹©Ÿž«¡ ®¤£¯¥¤®¤£©Ÿž¤š™¡—–”Š‰“‰ˆ‘‡†…„ƒ‚Š€‰~‡}ƒ~{‡ƒ€Œˆ…ŽŠ‡‹ˆ’Ž‹—“œ˜•”•‘Ž—“˜”‘˜”‘—“•‘Ž”‘Œˆ‘Ž‡†ƒ|yvozwp|yr|yr|u„z„zƒ€yƒ€yƒ€y‚x‚x‚x}z€|y{x|xuzvsxtqvrouqnrnkqmjnjgkgdhdaea^c_\_^Z^\]]]]\\\[[[XXXTTTQQQNNNEEEBBB>>>;;;===CCCJJJNNNeeejjjnnnyyy›››†††eee000---"""!!!)))"""$$$$$$&&&***...111333444444%%%)))OOOoooyyytttkkieecfgbfgbghchidijeijeijeijeijeklgopkvwr~z‡ˆƒŒˆˆˆˆŽŽŽ‹‹‹ˆˆˆŠŠŠ„„„‰‰‰tttttttttqqqlllddd]]]YYWPQKNPELMEMODTUM`bWlmetvk‡ˆ€‹‚‘’Š–˜š›“›’š›“™š’žžœžžœžžž››œœœœœš˜˜˜‘‘‘‘‘˜˜–››™™™™››™£££¥¥£¦¦¦§§¥¦¦¦££¡   žžœ¡¡¡¡¡Ÿ   ŸŸžžž›œœœ›œ”•‘”ŠŽ‘ŠŽ‘ŠŽ‘ŠŽ‘‡‹Ž„ˆ‹z~y}€w{~tx{quxosvmqtlpsfipfipdgnbel`cj]`g\_f[^e^ah]`g\_f[^eZ]dY\cX[bWZaQTYOSVKORFJMAEH;?B7;>59<158047-14)-0&*-"&)#&"%#&#&#&#&#&#&#&#&)-0*.1+/2-14/3615826927;BFQ@FRAGSAGSBHTCIUCIUDJVBHTCIUEKWEKWDJVBHT>DPJ7=I6*0<(.:%+7$*6#)5%1%1%1%1%1%1%1%1 , , , , , , , ,<=R@AVGH]PQf[\qfg|no„st‰op…fg|XYnLMbFG\HI^NOdRRjjj„ww“††¢‰‰¥~~šppŒff‚bb~EEa33OXXt€€œ™™µ¸¸ÔÄÄàÂÃßÏÐºloŽ_btw–wz™|žx{šmpKNm?Baz}œÈËêèëÿº½Ü¤§Æ¥¨Ç©¬Ë £Â”—¶Ž‘°…ˆ§ƒ†¥Ž‘°ˆ‹ª„‡¦ux—ru”jmŒX[z@Cb\_~nqux—il‹RUtZ]|ˆ‹ª»¾Ý×Úù”—¶wz™…ˆ§’•´‰Œ«‚…¤|ž„£Ÿ¢Á§ªÉ‡Š©_b`c‚ru”„‡¦œŸ¾¡¤Ã¶¹ØÊÍìßâÿÑÔósv•?Ba€„¡ž¢¿~‚nrvz•|€›€„ŸˆŒ§Ž’­z~™‡‹¦“®fj…<@[7;Vrv‘£§ÂíñÿÊÎ隞¹’–±„ˆ£˜œ·ÆÊå ¤¿[_zhl‡y}˜}œsw’ptptim†op„op‚op‚op‚op‚op‚op‚op‚hi{hi{fgydewbcuabt_`r^_qUVhUVhTUgSTfRSeRSeQRdQRdabtbcucdvefxfgyhi{ij|jk}olqnspƒur…vs†tq„ro‚qntq„ur…vs†wt‡xuˆyv‰yv‰yv‰ƒ€“~‘~{Žyv‰tq„olli|jgzYViXUhWTgUReSPcRObQNaPM^ECQCANA?L>:7952/+(/+(952;743/,1-*1-.7347345125122./401?;=9:95662340/1-,1-*1-*1-*1-*1-*1-*1-*.*'3/,[WTƒ|‡ƒ€„€}…~€{wŽ†ƒ‡‚“Š…•Œ‡–ˆ–ˆ•Œ‡”‹††}x„{vxs|snxojsjepgbne`ofaofapgbpgbqhcridridsjeypk{rm~upxs‚ytƒzu‚yt‚yt…|w…|w…|w…|w…|w…|w…|w…|wˆz‹‚}„Œƒ~†}xvq{rmypkš›‘œ’‘“’œ’‘š˜Ž–Œ‹Œ‚‹€Š€‡}|…{z‚xwwvwu|wt|xu~zw}z…~ˆ„Š†ƒ‹‡„‘Š’Ž‹“Œ•‘Ž•‘Ž“Œ’Ž‹‘Ž‰Œ‰„Š‡€‡„}„z~w~w~w~w„z„z„z„z„z„z„z„zƒ|‚~{€|y~zw{wtxtqvrouqnqmjpliokhokhnjgmiflheihdgefddd___YYYSSSMMMHHHFFFBBBAAA@@@AAAFFFNNNVVV[[[mmmzzz}}}‡‡‡]]]222''''''%%%$$$"""!!!%%%''')))+++...111333444...###DDDkkk„„„vvtnnlmnimnilmhklgjkfjkfijeijeklgopktupz{v€{ƒ„…†ŽŽŽŠŠŠˆˆˆ………‚‚‚€€€{{{vvvooojjjeee___YYYTTRFGAFG?HICMNFXYSef^rsmz{sŽ‰‘‰“”Ž•–Ž–—‘•–Ž“”Ž’“ššš™™™™™›˜˜˜——™–––––˜–––‰‰‹‰‰‰‰‰‹‰‰‰‰‰‹‰‰‰‰‰‹‰‰‰‹‹‹‹‹ŒŒŽŒŒŒŽŽŽŽŽŽŽŽ……‡„„„„„†ƒƒƒ‚‚„ƒ€ƒ~†|…{€„zƒy~‚x}w|€w|€josjosjosjosjosjosjosjouhkrgjsfirdgpcfoadm`cl_bkcfoadm^ajZ]fVYbRU^OR[NQXHKPFINDGLADI>AF;>C8;@7:?/27.16,/4*-2(+0&).$',#&+ #(!$)#&+%(-(+0*-2,/4-0547<69>9(.:'-9'-9&,8$*6#)5#)5"(4$*6$*6$*6$*6$*6$*6$*6$*6=>SABWGH]PQfZ[pcdyjk€no„klcdyVWlKLaGH]JK`QRgVVniiƒuu‘‚‚ž‡‡£€€œssggƒaa}==Y**FMMi||˜¹½½ÙÄÄ໼عºÙ’±knZ]|qt“€ƒ¢‰Œ«„£nqKNmADcy|›ÃÆåìïÿÇÊ魰Ϩ«Ê«®Í¡¤Ã•˜·¯ƒ†¥‚¡†‰¨‚…¤…ˆ§„£‚…¤sv•WZyO64B53@42?1/:7;7462/841=9695262/<85B>?MIJQMNNJKIEF?;<:67@<=C?@B>??;<<899566234013/.1-,1-*1-*1-*1-*1-*1-*1-*1-*730^ZWƒ|ˆ„…~†‚|xŽ†ƒ‡‚’‰„“Š…”‹†“Š…’‰„‘ˆƒ„{v‚ytvq{rmwnisjeofane`ne`ofaofapgbqhcridridsjeypk{rm~upxs‚ytƒzu‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‡~yŠ|„‹‚}…|wvq{rmypk–Œ‹—Œ˜Ž˜Ž—Œ–Œ‹“‰ˆ’ˆ‡Š€‰~ˆ~}…{zƒyxwvut}uszurzvs}yv€|yƒ|†‚ˆ„Š†ƒŒˆ…‰†‹ˆŒ‰Œ‰‹ˆ‰†Œ‰„‰†ˆ…~…‚{ƒ€y~w~w‚x‚x„z„z„z„z„z„z„z„z‚~{}z{x|xuzvswspuqntpmqmjpliokhnjgmifkgdjfchgcb`a^^^ZZZTTTNNNIIIDDDBBB>>>???AAAEEELLLTTT\\\aaawww~~~{{{yyy{{{kkkFFF)))''''''%%%$$$"""!!!%%%&&&))),,,///222444555---###BBBjjj‹‹‹ƒƒƒvvtmmkmnilmhklgklgjkfijeijejkflmhpqluvqz{v€{ƒ„…†ŽŽŽŒŒŒ‰‰‰………ƒƒƒ€€€xxxsssmmmhhhccc^^^WWWSSQEFAEFAGHCMNIWXSefaqrmxytŒˆŽŠ‘Œ’“Ž“”“”‘’ŽŽŽŽŽŽŒŒŽ‹‹ŠŠŒŠŠŒ{z|{€}|~ƒ€…ƒ‚‡„ƒˆ…„‰~ƒ~}‚~}‚}||{€{z{zyz~y|ƒx}ƒw{„v{uy‚uz€txtyimvintimvintimvintimvimviluhktgjsehqdgpbenadm`cladm`cl]`iY\eUXaQT]NQZMPYFIPEHMCFK?BG8;@;>C?BGCFKGJOJMRKPVUYdSYeRXdRXdQWcPVbOUaOUaKQ]KQ]KQ]KQ]KQ]KQ]KQ]KQ]JP\JP\IO[IO[HNZGMYFLXFLXSABWGH]PQfXYn`avfg|ijgh}_`uSTiJK`GH]LMbSTiYYqhh‚qq~~š……¡ƒƒŸww“ii…__{::V%%ADD`||˜©©ÅÉÉåÈÈ䵶ҡ¢ÁŠ¬mpQTshkŠ†‰¨˜›º‹Ž­qt“LOnDGfwz™»¾ÝòõÿÛÞý¼¿Þ¯²Ñ¯²Ñ¤§Æ—š¹Ž‘°ƒ†¥z}œy|›vy˜„£“²ž¡À…ˆ§RUt14SZ]|y|›eh‡FIhKNm„‡¦¸»ÚÄÇæ¾Áà‰Œ«x{š…ˆ§“²‰Œ«‚…¤z}œwz™|žtw–eh‡kn}€Ÿux—sv•’±³¶ÕÈËêÕØ÷ÝàÿÊÍìnq69Xnr‘•²~‚tx“y}˜„ˆ£’–±“—²‰¨gk†ŠŽ©¥©Ävz•6:U'+Fnr°´ÏÊÎ鹽؛Ÿº™¸”¯Ÿ£¾ÄÈã­±Ìgk†nrvz•qucg‚`dcg‚_c|efzefxefxefxefxefxefxefxcdvbcuabt`as^_q]^p\]o[\nTUgTUgSTfSTfRSeQRdPQcPQcZ[m[\n]^p`ascdvefxghzhi{jgzkh{li|mj}mj}li|kh{jgzpm€vs†|‡„—Š‡š‰†™„”~‘wt‡ur…qnkh{ebu`]p[XkYViOL_LI\HEXB?R;8K52E0-@.+<(&3'%0'%0&$/%#.$"-#!,#!,#!,#!,#!,#!,#!,#!,#!,#"*//1/////////////////////000000111222222333444442jfc¨¤¡žš—”˜”‘™•’•‘Ž‹ˆŠ†ƒˆ„†‚|xukgd]YV<85>:7>:7<85>:7A=:B>;@<9FB?GC@IEBMIFHDA73051.FB?VRSjfguqrmij\XYEAB845:67:679568456235123/02./1-,1-,1-*1-*1-*1-*1-*1-*1-*62/=96`\Y}z‡ƒ€…~†‚‚}yŒ„Ž…€‡‚‡‚‡‚Ž…€Œƒ~‹‚}xsvq}toypkulgridofane`ofaofaofapgbqhcridridsjeypk{rm~upxs‚ytƒzu‚yt‚yt€wr€wr€wr€wr€wr€wr€wr€wr†}x‰€{Œƒ~Š|…|wvq{rmzql†…‘‡†’ˆ‡“‰ˆ’ˆ‡†…Ž„ƒŒ‚‡}|†|{„zy‚xwut}sr{qpyqowrowspzvs}yv€|yƒ|…~‡ƒ€†‚‡ƒ€ˆ„‰…‚‰…‚ˆ„‡ƒ€†ƒ~„|ƒ€y~w€}v€}v~w‚xƒ€y‚x‚x‚x‚x‚x‚x‚x‚x{x~zw|xuzvsxtquqntpmsolpliplinjglhejfciebgc`dc_ZXYWWWSSSNNNIIIDDD@@@>>>888;;;BBBKKKTTT]]]dddhhh}}}†††ƒƒƒuuuaaaEEE...(((''''''%%%$$$"""!!!%%%&&&))),,,000333555777+++!!!@@@gggˆˆˆvvtmmkmnimnilmhklgjkfjkfijeopkqrmtupxyt}~y‚}„…€†‡‚ŒŒŒ‹‹‹ˆˆˆ………‚‚‚~~~|||{{{sssnnnhhhccc___ZZZTTTOOOCCADDBFFDLLJUUSaa_lljssq……ƒ††„ˆˆ†ŠŠˆŠŠˆŠŠˆ‰‰‡‰‰‰~ƒ~}‚}||{€|{€{z{zsrwsrwsrwsrwsrwsrwsrwsrwkjplkqnmsqpvtsyvu{xw}zywv|vu{vu{utztsytsysrxrrzqu~ov~ov€nu}mt~mt|ls}ls{fmwfmufmwfmufmwfmufmwhlwjlxikwhjvfhtegsceqbdpaco_am^`l[]iWYeSUaOQ]LNZJMVCFMBEL@CJ=@G936=*-4*-4),3(+2&)0%(/$'.$'.'*1'*1),3,/6.1803:25<36=:=DDP?TFG\OPeYZo`avfg|hi~ef{]^sRShIJ_GH]KLaSTiYYqggnnŠzz–ƒƒŸ……¡zz–ii…\\x--I411Mmm‰££¿ÂÂÞ½½Ù¤¥Á–—¶Œ®or‘FIhX[z‚…¤ £Â–™¸tw–MPoGJiux—³¶ÕõøÿëîÿÈËê·ºÙ´·Ö©¬Ë›ž½“²„‡¦ux—knY\{jmŒ‘”³º½ÜŸ¢ÁVYx+.M[^}z}œ]`:=\SVu¦©ÈÔ×öÂÅ䦩ȅˆ§~ ‡Š©’±‰Œ«ƒ†¥{~ru”ux—hkŠWZydg†}€Ÿy|›x{š”—¶»¾ÝÕØ÷ÞáÿÜßþÄÇæjmŒ36Ugkˆ…‰¦{švz•|€›‘¬¡¥Àž¢½‰¨Y]x„ˆ£©­Èƒž=A\'+Fgk†¦ªÅ¾ÂݶºÕ¡¼šž¹”˜³ž¢½½ÁܱµÐrv‘uy”w{–mqŒ[_zX\w\`{Z^w]^r]^p]^p]^p]^p]^p]^p]^p^_q]^p]^p\]o[\nZ[mYZlXYkQRdPQcPQcOPbNOaMN`MN`LM_RSeSTfUVhXYk[\n^_q`asabtdatebuebufcvfcvfcvebuebuspƒzwŠ„”‹ˆ›Œ‰œ†ƒ–}zvs†hexebua^q[XkUReOL_KH[HEX>;N<9L85H30C.+>)&9%"5# 1#!.#!,#!,#!,#!,#!,#!,#!," +" +" +" +" +" +" +"!)//1/////////////////////000000111222222333444442$  qmj¸´±¬¨¥œ˜•Ÿ›˜ œ™œ˜•—“‘Š‹ˆ‹‡„~zwjfcZVS952EA>LHEKGDJFCPLIUQNUQN[WT`\Yiebnjg\XU952.*'A=:tpq“¤ ¡”‘qmnMIJ;78=9:4014013/03/03/03/03/03/.1-,1-*1-*1-*1-*1-*1-*1-*:63B>;^ZWyur€|y€|y‚~{|x‰~‹‚}Œƒ~Œƒ~‹‚}‰€{†}x…|w}to|snzqlwniulgridpgbofapgbpgbqhcqhcridsjetkftkfypk{rm~upxs‚ytƒzu‚yt‚yt€wr€wr€wr€wr€wr€wr€wr€wr„{v‡~yŠ|‰€{„{vvq{rmzqlŒ‚ƒ‚Ž„ƒŽ„ƒƒ‚‹€‰~ˆ~}‚xwwv€vu}sr{qpxnmwmlumksnktpmvroyur|xu{x‚~{ƒ|}zƒ|„€}…~…~„€}ƒ|~y~{v}zs|yr|yr}zs|u~wƒ€y€}v€}v€}v€}v€}v€}v€}v€}vzvszvsxtqwspuqnsolrnkqmjokhnjglheiebgc`d`]b^[_^ZTRSQQQNNNJJJEEEAAA===<<<777<<>>bbb„„„~~~ttroomopknojmnimnilmhklgklgvwrxytz{v~z‚ƒ~…†ˆ‰„‰Š…ŠŠŠ‰‰‰†††ƒƒƒ€€€}}}{{{zzzlllhhhbbb]]]YYYUUUOOOJJJAACBBDDDFIIKQQS[[]ddfjjlvvxvvxwwyyy{yy{zz|zz|zz|srwsrwrqvqpuqpupotonsonslkplkplkplkplkplkplkplkqhgoihpkitmltomxqpxsq|ts{rp{qpxqozpowomxnmunlwllvjnyhoyhnzhoyhnzgnxgmygnxekwelvekwelvekwelvekwelvimxikwhjvgiuegsdfrbdpbdp\^jZ\hXZfTVbPR^LNZIKWGIU?BK>AHDP=COJ:@L:@L:@L:@L:@L:@L:@L:@L56K;]eh‡ÅÈççêÿ¸»Ú’±‡Š©‰Œ«¯’±Š¬…ˆ§~ nqmpil‹WZy\_~y|›‚…¤‡Š© ¿ÁÄãÝàÿâåÿØÛú¿Âákn36Ubfƒ{œw{–x|—… —›¶¯³Î§«Æ‰¨W[vƒž£§Â~‚BFa,0Kdhƒšž¹¼ÀÛº¾Ù¡¥À™¸–šµšž¹¯³Î®²Í|€›|€›z~™koŠVZuSWrX\wVZsWXlWXjWXjWXjWXjWXjWXjWXjXYkXYkXYkWXjWXjVWiVWiUVhMN`LM_LM_KL^JK]IJ\IJ\HI[IJ\JK]LM_NOaQRdSTfUVhVWi]Zm]Zm]Zm^[n_\o`]pa^qb_rur…{x‹~‘…‚•~‘vs†jgzb_rTQdQNaMJ]HEXB?R=:M96I63F+(;+(;)&9(%8$!4# 3"0" +#"*#"*#"*$#+$#+%$,%$,! (! (! (! (! (! (! (! &//1/////////////////////000000111222222333444442($#uqnÄÀ½¶²¯Ÿ›˜ œ™¢ž›™–˜”‘“Œ’Ž‹‹ˆ„€}qmjb^[MIFZVS`\YYURTPM]YVkgdtpmvro}yv‰…‚Œ‰uqnA=:'# 1-*yuvžš›°¬­—“”ief@<=/+,3/01-.1-.2./3/03/04014015101-,1-*1-*1-*1-*1-*1-*1-*;74B>;VROjfcqmjuqnzvs|ws„|y†}x‡~y‡~y†}x„{vxs€wr{rmzqlypkwniulgsjeridqhcridsjesjetkfulgulgvmhvmhypk{rm~upxs‚ytƒzu‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt†}x‰€{ˆz„{v~up{rmzqlˆ~}‰~Š€‹€Š€ˆ~}†|{„zy}sr|rq{qpxnmvlksihrhgphfojgokhrnkuqnxtq{wt}yv{x€|y}z‚~{„€}„€}‚~{}z€}xxupwtmwtmwtmxun{xq}zs|u{xq{xq{xq{xq{xq{xq{xq{xqvrouqntpmsolrnkpliokhokhlhekgdhdaea^a]Z^ZW[WTXWSNLMLLLIIIFFFBBB???<<<;;;===DDDOOO[[[gggooouuuwww‹‹‹•••QQQ...###%%%+++''''''%%%$$$"""!!!$$$&&&)))---222666999:::,,,"""<<<^^^~~~yyyppnppnpqlopknojmnimnilmhlmh{|w|}x~z€|ƒ„†‡‚ˆ‰„‰Š…†††………ƒƒƒ}}}{{{zzzgggccc]]]YYYVVVQQQLLLGGIBAFBAGCBHGFLMLRTSY[Z`_^ddcidcidciedjfekgflhgmhgmkjpkjpjiojioihnhgmgflgfljiojiojiojiojiojiojiojionlwnlwomzpnyqo|qozrp}sq|pn{omxomznlwmkxmkvljwkkwciubjubjwbjuckxckvckxckvdlydlwdlydlwdlydlwdlyekwhlxikxgivfhudfscerbdqacpY[hWYfTVcPR_LN[HJWFHUDFR;>G:=F8;D58A14=.1:,/8+.7&)2'*3'*3'*3(+4(+4(+4),525>36?47@7:C9G=@I>AJFIRGJSJMVLOXPS\RU^UXaUYbZ^iX^jW]iV\hV\hU[gTZfTZfW]iW]iW]iW]iW]iW]iW]iW]iV\hU[gU[gTZfSYeRXdRXdRXdKQ]JP\IO[HNZGMYEKWDJVDJVBHTBHTCIUCIUCIUCIUCIUDJVEKWEKWEKWEKWEKWEKWEKWEKW45J;Q?+(;)&9 0!1!1"2"2# 3$!4$!2!*! (! ("!)"!)"!)"!)"!) ' ' ' ' ' ' ' %//1/////////////////////000000111222222333444442($#tpmËÇÄ»·´œ˜•›—”žš——““ŒŒ‰’Ž‹”ŽŠ‡{xrnkmifvroxtqkgd^ZWd`]yur‰†ˆ„‹ˆœ˜•¤ Œˆ…QMJ($!$ vrs—“”£Ÿ ‡ƒ„^Z[=9:1-.6230,-1-.1-.2./3/04015125101-,1-*1-*1-*1-*1-*1-*1-*841>:7JFCVRO^ZWfb_okhupl~vs€wrxs‚yt‚yt€wr~up}tozqlzqlypkxojwniulgulgtkfvmhvmhwniwnixojypkypkzqlypk{rm~upxs‚ytƒzu‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt‚yt€wr„{vˆz‡~yƒzu~up{rm{rm„zy…{z†|{†|{…{zƒyxwv€vuyonxnmvlktjiqgfoedmcbkcakfclhenjgqmjtpmwspzvs{wt~zw{x}z‚~{‚~{}z{x~{vspkrohqngqngrohurkwtmxunvslvslvslvslvslvslvslvslrnkqmjqmjpliokhnjgmifmifiebgc`d`]`\Y[WTWSPSOLPOKGEFEEECCCAAA>>>;;;999888DDDIIIRRR\\\fffmmmrrrttt‡‡‡```111 &&&'''$$$''''''%%%$$$"""!!!$$$&&&)))...333777:::<<<...%%%:::YYYwwwssskkimmkmnilmhklgjkfjkfijeijewxswxsyzu{|w}~y€{€|‚}vvvuuuuuutttssssssrrrrrrgggccc]]]ZZZWWWSSSNNNIIKHGOHFQHFQIGRLJUPNYTR]WU`WU`WU`VT_VT_WU`YWbZXc\[cdcidcicbhbaga`fa`f`_e`_ecbhcbhcbhcbhcbhcbhcbhcbjmkvmkxmkxnlynlyomzomzomzomzomznlymkxmkxljwkivjiw`ft`hu`huaivaivbjwbjwckxemzemzemzemzemzemzemzflzfixgivegtdfsbdqacp`bo_anVXeTVcQS`MO\IKXEGTBDQACP79E69B47@14=-09*-6(+4'*3&)2'*3(+4),5*-6+.7,/8-097:C8;D:=FAJADMCFOCFOLOXMPYOR[QT]TW`VYbX[dX\g\`lY_kY_kX^jW]iV\hV\hU[gY_kY_kY_kY_kY_kY_kY_kY_kX^jW]iW]iV\hU[gTZfTZfSYePVbPVbOUaNT`MS_LR^KQ]KQ]KQ]KQ]KQ]LR^LR^MS_NT`NT`OUaOUaOUaOUaOUaOUaOUaOUa89N>?TIJ_TUj_`ufg|ijkl_`uXYnMNcFG\EF[KLaUVk[[seeoo‹||˜……¡„„ vv’bb~TTp77S**F''CJJfkk‡}}™«Š‹§‰Š©‚…¤z}œ`c‚Z]|_b€ƒ¢—š¹z}œX[zQTsx{š®±ÐæéÿÜßþÃÆ庽ܯ²Ñ¤§Æ—š¹‹Ž­€ƒ¢cf…=@_!$C=@_tw–º½ÜÇÊ鎑°BEdCFeY\{X[zRUt‰Œ«åèÿêíÿ©¬Ëˆ‹ª—š¹¥¨Ç›ž½‘”³¯Š¬…ˆ§nqWZyil‹_bVYxqt““²¦©È½ÀßÑÔóÜßþÍÐïÃÆåÇÊ鉌«CFeRVs}žz~™ƒž”¯ª®Éº¾Ù¥©Ä~‚gk†€„Ÿ™¸y}˜KOj;?ZkoŠ”˜³»¿ÚÀÄß©­Èž¢½¡¥À—›¶”˜³›Ÿº€„Ÿ~‚y}˜fj…OSnIMhMQlKOhOPdOPbOPbOPbOPbOPbOPbOPbPQcPQcPQcPQcPQcPQcPQcQRdMN`MN`MN`LM_KL^JK]JK]IJ\DEWDEWDEWDEWDEWEFXEFXEFXLI\LI\MJ]PM`TQdYVi]Zm`]p`]p`]p_\o[XkUReNK^GDWB?R41D2/B0-@-*=)&9# 3"2!1!1!1!1"2"2"2# 1!*! &! & % % % % % % % % % % % % $//1/////////////////////000000111222222333444442+'&wspÓÏÌÀ¼¹œ˜•˜”‘›—”‹ˆ‹‡„Š†ƒŒ‰—“—“ŽŠ‡…~…~ŽŠ‡’Ž‹…~okhgc`wsp‰†‰†‘Šœ˜•©¥¢™•’d`]3/,#[WXplmrno[WXD@A512.*+/+,/+,0,-0,-1-.1-.2./2./3/.1-,1-*1-*1-*1-*1-*1-*1-*51.952=96B>;KGDWSPc_\niexpm{rm}to~upvq~up}to|snzqlzqlzqlypkypkxojxojwniypkypkzql{rm|sn|sn}to}toypk{rm~upxs‚ytƒzu‚yt‚yt€wr€wr€wr€wr€wr€wr€wr€wrvqƒzu‡~y‡~yƒzu~up{rm{rm~tsut€vu€vu€vu~ts{qpzpoukjtjirhgpfendcka`j`_h`^hc`iebkgdnjgqmjtpmwspxtq{wt|xu~zw{x{x~zw|xu{xsolgnkdmjclibmjcoleqngrohrohrohrohrohrohrohrohrohokhnjgnjgmifmiflhekgdkgdea^c_\`\Y[WTUQNQMJMIFIHD@>?>>>===;;;888666555444???CCCIIIPPPWWW\\\```bbbrrrgggFFF)))'''...,,,(((''''''%%%$$$"""!!!$$$&&&)))...333888<<<>>>111'''999UUUrrrmmmffdggeghcfgbefade`de`cd_cd_klglmhmninojopkpqlqrmrsnhhhhhhhhhiiijjjkkkkkkkkkkkkgggbbb___\\\YYYTTTPOTQOZPN[OMZOMZOMZQO\RP]TR_SQ^RP]QO\PN[QO\SQ^VTaWU`[Zb[Z`ZY_YX^YX^XW]WV\WV\WV\WV\WV\WV\WV\WV\WV\WV^`^ka_mb`ncaodbpfdrgesgesnlzmkymkyljxkiwkiwjhvihv`ft^gv_hw`ixajybkzbkzcl{en}en}en}en}en}en}en}fn{dgvdfucetbds`bq_ap]_n]_nSUdRTcOQ`KM\GIXCET@BQ?AN57C35A13?.0<+-9')5%'3$&2')5')5)+7+-9-/;.0<02>02>;=I<>J>@L@BNCEQEGSGIUHJVPR^QS_SUaUWcWYeY[g[]i[_j_co]co\bn[amZ`lZ`lY_kY_kY_kY_kY_kY_kY_kY_kY_kY_kX^jX^jW]iW]iV\hU[gTZfTZfTZfTZfSYeRXdRXdQWcQWcPVbQWcQWcRXdSYeTZfU[gU[gV\hV\hV\hV\hV\hV\hV\hV\hV\h=;QABWNLbWXmb`vef{jh~hi~][qTUjMKaEF[HF\MNcYWm__weeppŒ~~š‡‡£ƒƒŸtt``|SSo88T--I%%A@@\XXthh„ƒ„¢Š‹ª‚…¤‚…¦sv•eh‰UXwlo…ˆ§{~ŸZ]|RUvz}œ¯²ÓáäÿÒÕö¾Á⵸٪­ÎŸ¢Ã“–·‡Š«|ž]`47V78;Zknª®ËÆÊ祩ÆY]zFJgPSrX[zY\}‘”³çêÿæéÿ¨«Ì’± Á®±Ð £Ä’•´±Œ®ˆ‹¬or‘TWxhkŠ]`PSrkn’±¯²ÓÏÒñØÛüÙÜûÁÄ廾ÝÍÐñ—š¹ILmLOn‚†£}œƒ‡¤•™´­±Î¹½Ø¡¥Âx|—gkˆ… ¡¾€„ŸTXuBFamqŽ’–±¸¼×¿ÃÞª®É¡¥À§«Æ˜œ·‘¬”˜±~‚›|€™vz“cg€LPiEJ`IMfGLbMNbMN`MN`MN`MN`MN`MN`MN`NOaNOaNOaNOaOPbOPbOPbOPbPQcPRaOPbNP_NOaMO^LM_LN]EFXEGVDEWDFUCDVCETBCUBDSFEWGFVIFYKJZQNaVUe]Zm`_oTQdQP`PM`KJZHEXBAQ@=P=+*:+(;'&6%"5"!1!1.%"5$#3$!4"!1"2 / 0 ,#!,#"("!)! &! ( %&$&$&$&$&$//1/////1/////1/////1///0020001132222243334464440,+{wvÚÖÓÆÂÁžš—™•”œ˜•‰…„†‚†‚ŽŠ‡™•”™–™•”’Ž‹Ž‰†›–“¦¡ž˜•|ykfcpkh‚}z‹†ƒˆ…—’¦¡ž ›˜rmj>96'# JFGTRSPLM<:;8455343/0/-..*+,*+.*+-+,/+,.,-0,-.,-1-,/.*1-,/.*1-,/.*1-,/.*2.-32.51043/?;:KJF\XWhdaumjvnkyqn{sp|tq|tq{spzroyqnyqnyqnyqnyqnyqnyqnxpmzsmzsm{tn|uo}vp}vp~wq~wqxqkzsm}vp€yszt‚{uztzt|tq|tq|tq|tq|tq|tq|tq|tq}uryv…}z…}zyv}ur{spzroyqozrp{sq{sqzrpxpnvnlumkrjhqigphfmeckcah`^g_]d_\fb_ed`iebjiepliqpluqntsoxtqwvr{wtzyu|xuyxtyurvuqmifjidkgdhgbjfcihcmiflkfokhmlgokhmlgokhmlgokhmlhmihkijlhijhikghighkghhfgc_`_]^]YZVTURNOKIJIEFECD::<89;88:56844623511301366878:<<>?@BEEGIJLNNPPPRNNPLLL>>@444668555113333'')'''%%'$$$""$!!!!!$$&%&(**,-.044689;<<>=>@335()+ "78:SSUmnpjjlbcebbd`baaaa_a`___]_^^^^]_^aaa`babbbbdcddddfefffefhghjghlijnjkolmqmnroptoptoptklpfgkcdh`ae]^bXY]TUZWWcVUcUTbSR`RQ_RQ_RQ_RQ_SR`QP^PO]ON\PO]RQ_UTbWWcSS]SS[RRZRRZQQYPPXOOWOOWLLTLLTLLTLLTLLTLLTLLTLLVRR^SR`TSaWVdYXf\[i^]k_^lkjxkjxjiwjiwihvhgugftegt`ft_iu`gw`jvcjzcmydk{dnzgn~fp|gn~fp|gn~fp|gn~go|cfucetbds`bq_ap]_n\^m[]lRTcQSbNP_JL[FHWBDS?AP=?L35A24@/1=,.:)+7&(4$&2"$0')5(*6*,8,.:.0<02>24@35A=?L=AM@BOAEQEGTFJVIKXIMYSUbRVbUWdVZfY[hZ^j]_l\`l`fr`fr_es^dp^dr]co\bp\bnY_mY_kY_mY_kY_mY_kY_mY_kW_lW_jW_lV^iU]jT\gT\iS[fU]jU]hT\iT\gS[hS[fS[hRZgS[hT\iT\iU]jW_lX`mX`mYanZboZboZboZboZboZboZboZboEAXQOe]Yp^\rc_vecya]tUSiQMdOMcOKbOMcTPgZXnb^uec{oo‰rrŽww“||˜||˜uu‘ii…``|FFb@@\66R55QEEaaa}yy•‚ƒ¡ƒƒ¥—š»Œ²}€¡dgŠCFgQTwor“}€£vyšsv™‘”µÇÊíßâÿÐÓö¾Áä®±Ô £Æ Ã’•¸Ž‘´z}ž_b69X<04QOSpy}˜¦ªÅ±µÐ|€™9=X/2QNQr‚…¨³¶×ÊÍðÃÆ粵اªË¡¤Ç”—¸‹Ž±Š®Ž‘´±‚…¨tw˜WZ}eh‰beˆRUv]`ƒ™œ½ÜßÿóöÿéìÿÌÏðµ¸Û¾ÁâÅÈë £ÄgjFIj|žƒ‡¤‚¡‹¬°³Ò»¿ÜœŸ¾{œfiˆ™º¶¹ØŽ’¯_bPTqcf…Ž’¯¹½ÚÔØõ¨¬ÇŸ£¾™¶ŠŽ§osŒ~ƒ™†œ{€”ns‡]buMReEK[EJ]HN^FGYGHZHI[JK]KL^MN`NOaOPbRSeRSeRSeRSeRSeRSeRSeRSeSUdSUbSUdSUbSUdSUbSUdSUbSUdSUbQSbOQ^MO^KMZIKZIKXJL[IKXJIYGIVHGWEGTFEUDFS<;K;=J=K?>N>@M@?O>@M:9I35B.-=%'4$#3!#0%$4%'4$#3"$1#"2 "/"!1!. / - ) ' ) ' ) ' ) '(&(&(&(&$#(%%'&%*((*)(-++-,+0--/105113105224216335327335'#$rnoÒÎÍÙÕ֗“’„€‰ˆŒˆ‰{z‹‡ˆ–’‘‘Ž›—–¤ ¡–£›™¡™—§Ÿ«£¡™‘yqof^\f^\€xv‡}Š‚€ ˜–§Ÿ…ƒg_]830312222312222312222312222/-..../-..../-..../-..../-...,/-...,/-...,/-...,20100.0.///-423::8B@AFEClhglffhbbe__lffzttyy{uuysszttztt{uu}ww~xx~xxzw|ws}xtzv€{w€{wzv}xt|ws{vr{vr{vr{vr{vr{vr{vr{vr{vs{uu|vv}ww}ww~xx~xx~xx{uu|vv}ww~xx}ww{uuysswsrwspvupwvqwvqvuptsnqpkpojjidjidhgbgfaed_dc^cb]ba]_^Z__]cb`eecjiglljpomppnqpnppnpomnnlnmklljlkijjhecddddecfdddecfdddecfdddfdgeeeecfccccadaaaa_b``ba^ecbhhelkjpmjqjiogdkdciZW^XW]URYKJPDAH?>DA>ECBH119/29008,/6,,4),3**2'*1008.18119/2922:03:33;349;:?;;=;:?::<:9>99;98=99;65:446105--/)(-%%'"!& $"#(#&-))1,/644<7:A==E>AH<ECCKFIPIIQFIPNNXLOXNNXLOXNNXLOXNNXLOXNNXMPYRR\SV_XXbY\e]]g\_hlpylpylpykoxjnwimvimvhlu^bk^bk]aj\`i[_hZ^gY]fY]hX\hX\hX\hX\hX\hX\hX\hX\hVZfX\hY]iZ^jZ^jY]iX\hVZfTXcTXcUYdUYdRVaOS^KOZIMXEITEITEITEITEITEITEITEITEIUEIUEIUEIUEIUEIUEIUEIU[_k[_k[_k[_k[_k[_k[_k[_k[amZbm[aoZbm[aoZbm[aoZbm[aoZbmZ`nYalY_mX`kY_mX^jQUaQS`OQ^MO\JLYHJWFHUEGT;=J:K<>K=?L=?L>@M?AN@BO@BOACP=?L57D-/<(*7&(5&(5&(5"$1"$1!#0 "/ "/!. - , + ) ) ) ) ) ) )(((((((&$#)%$)&%*'&+)(-*).,+0,+00/4105105216216327327446*%)njkÏËÌÙÕ֚–—‰…†’Ž‹Œ„€ˆ„…’Ž”‘™•–Ÿ›œ——”•¡—–©Ÿž­£¢¡—–†|{ndcbXWukj†|{ƒ‚ –•«¡ ›‘ukjB:8312222222222222222222222................................................111000//////333999???CCChde`\]VRSSOP]YZokl{wx€|}|xy|xy|xy}yz}yz~z{~z{~zy}yv|w€}x~y~y€}x|w}zu}zu}zu}zu}zu}zu}zu}zu}yv|xw|xy|xy|xy}yz}yz}yz}yz{wx{wx|xy{wxzvwwsttpqpompokpqkrsmrsmrsmpqknoimnhde_de_cd^ab\_`Z^_Y]^X\]W\\Z^^\``^ccaggejjhlljnnloomoomnnlmmklljkkikkijjj``b`_d`_d`_d`_d`_d`_d`_d\[`\[`[Z_[Z_ZY^ZY^ZY^YX^_^fa_jecnigrjhshfqecncal[YdYWbVT_PNYKITIGRIGRJJT99C69B58A36?25>037:C;>G>AJ?BK=@IAJCFOEHQEHQCFOEGTEGTEGTEGTEGTEGTEGTEGTKMZMO\OQ^RTaVXeY[h[]j\`lhlxflxekwdjvciuciubhtbhtU[gU[gTZfTZfSYeRXdQWcQWcV\hV\hV\hV\hV\hV\hV\hV\hTZfU[gW]iX^jX^jW]iU[gTZfPVbPVbQWcQWcPVbMS_JP\HNZDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVDJVNT`NT`NT`NT`NT`NT`NT`NT`RXdRXdRXdRXdRXdRXdRXdRXdRXdQWcQWcPVbPVbOUaNT`NT`KMZJLYIKXFHUDFSBDQ@BO?AN68E57D46C35B13@02?.0=.0<+-9+.7*-6*-6*-6*-6*-6*-6.1:/2;03<36?58A7:C9AP=CS@FVCIYFL\JP`LRbMScRXhRXhRXhRXhRXhRXhRXhRXhTZjTZjTZjTZjTZjTZjTZjTZjNTdNTdNTdNTdNTdNTdNTdMTdOXgMYgMYgMYgMYgMYgMYgMYgLXfLXfLXfLXfLXfLXfLXfLXfU`rVasXcuZew]hz_j|al~bm^i{]hz[fxYdvVasT_qR]oQ\nHD[VRi^Zq\XoYUl[WnXTkQMdKG^KG^MI`QMdXTk`\sgczkiurvv’{{—€€œ{{—qqii…VVrKKg;;W22N>>Z\\xyy•ˆ‰§ŠŠ¬‡Š­„§twšbeˆILoFIlfiŒ‚¥‡Š­³¡¤ÇÆÉìÜßÿÍÐóµ¸Û¬®ÔŸ¡ÇŸÅ–˜¾–™¼„¥dgˆ@Cb8G:=F25>14=037:C;>G>AJFIREHQEHQHKTKNWMPYMPYKNWHJWHJWHJWHJWHJWHJWHJWHJWOQ^PR_RTaTVcWYfZ\i\^k\`laeq_eq^dp^dp]co\bn[am[amRXdRXdQWcQWcPVbPVbOUaOUaW]iW]iW]iW]iW]iW]iW]iW]iU[gV\hX^jY_kY_kX^jV\hU[gNT`OUaPVbQWcQWcPVbNT`MS_HNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZHNZIO[IO[IO[IO[IO[IO[IO[IO[HNZGMYGMYFLXEKWDJVCIUCIUDFSCERACP?AN<>K:-/<,.;*,9)+8(*6*,8*-6+.7+.7+.7+.7+.7+.703<14=36?58A8;D:=F]adƒ—š¹ÆÊçêîÿ¼Àۘœ·ŠŽ§€„`e{v{‘…Šž|”ns†]csPVdIO]GM[HN\JK]JK]KL^MN`OPbPQcQRdRSeTUgTUgTUgTUgTUgTUgTUgTVeVXgVXeVXeVXeVXeVXeVXeVXeY[hZ\i\^k^`m`bobdqcerdfs]_l[]jWYfRTaLN[GIVDFSACPGIVGIVHJWHJWIKXJLYKMZKMZVXeRTaJLYACP8:G02?*,9')6"$1"$1!#0 "/ "/!. - , + ) ) ) ) ) ) )(((((((&! &"!&#"'$#(&%*(',)(-)(-.-2/.30/41053274385496682-1]YZ¾¿ÜØÙ«§¨žš›¥¡¢¥¡¢¢žŸ‡ƒ„}yz–’“¡žŸ›œ¬¦¦© ¡µ«ª¼²±»±°¾´³¹¯®œ’‘{qp^TStjiŽ„ƒ¨ž¼²±¶¬«‹€XPN312222222222222222222222................................................000/////////111555888;;;C?@>:;;78>:;B>?NJKhde€|}ˆ„…‡ƒ„‡ƒ„†‚ƒ„€ƒ€ƒ€‚~}ˆ„‰†‹ˆƒŒ‰„Œ‰„‹ˆƒ‰†ˆ…€†ƒ~†ƒ~†ƒ~†ƒ~†ƒ~†ƒ~†ƒ~†‚‚~}‚~}~€|}{|}yz}yz|xyzvwzvwxtuuqrplmkghfbca`^ed`fgahicjkeklfklfjkeijdab\`a[_`Z^_Y\]WZ[UYZTYZUXXVYYW[[Y^^\``^ccaeecffd``^``^__]__]__]__]__]^^^SSUSRWSRWSRWSRWSRWSRWSRWNMRNMRONSPOTQPURQVSRWSRX[Zb][f_]ha_jb`kb`k`^i_]ha_j_]h^\ga_jecngepdbm``jQQ[NQZMPYLOXJMVILUGJSGJS:=F903<.1:-071061050/4/.3-,1,+0+*/*)./.3.-2-,1+*/(',&%*%$)#$)""*#&/'*3,/825>7:C;>G>AJOR[QT]TW`X[d\_h^aj_bk_bkY[hY[hY[hY[hY[hY[hY[hY[hY[hZ\iZ\i[]j\^k]_l]_l\`l]amZ`lZ`lY_kX^jW]iW]iW]iV\hV\hV\hU[gU[gU[gU[gU[g]co]co]co]co]co]co]co]coZ`l[am]co^dp^dp]co[amZ`lRXdRXdSYeTZfU[gV\hV\hV\hQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcQWcOUaOUaOUaOUaOUaOUaOUaOUaHNZHNZHNZHNZHNZHNZHNZHNZFLXEKWDJVCIUAGS@FR?EQ>DP@BO?AN=?L;=J8:G68E46C35B.0=.0=-/<+-:)+8(*7')6&(4*,8*-6+.7+.7,/8,/8-09-0936?47@69B8;D;>G=@I?BK?CNDGVCIYEK[GM]JP`MScOUePVfLRbLRbLRbLRbLRbLRbLRbLRbIO_IO_IO_IO_IO_IO_IO_IO_JP`JP`JP`JP`JP`JP`JP`IP`FO^DP^DP^DP^DP^DP^DP^DP^KWeKWeKWeKWeKWeKWeKWeKWeU`rVasWbtYdv[fx]hz^i{_j|XcuWbtVasT_qS^pQ\nOZlOZlNJa[Wnb^u^ZqZVmYUlTPgKG^D@WGCZLH_SOf\Xofbymi€pn†yv‘yy•}}™ƒƒŸ††¢ƒƒŸ||˜uu‘ii…\\xFFb44P88TQQmnnŠ~yy›ps–x{žsv™gj[^UX{qt—‡Š­’•¸›žÁ¡¤Ç³¶ÙÆÉìÁÄ笯Ҥ¦ÌšœÂšœÂ˜šÀ¡¤Çˆ‹¬ilLOnTXuY]zY]xY]xdhptin„X\u47XvyœÀÃæÕØû¸»ÞŸ¢Å²µØÔ×úŽ‘´ADg>Ad‰Œ¯µ¸Û¯²Õ‘”·ps–,/R CADgor•²µØòõÿõøÿô÷ÿÇÊ틎±`c†{~¡¯²Õ¶¹Ü–™¼‚£hkŒ_bkn‹Ž­ª­Ìº½Ü¨«Ê…ˆ§jmŒƒ†¥Ÿ¢ÁŒ®[^};>]RUt“–µÓ×ôêîÿ¸¼×™¸“¬€„V[qqvŒ‡Œ }‚•mr…]csRXfKQ_HN\HN\KL^LM_MN`NOaPQcRSeSTfSTfUVhUVhUVhUVhUVhUVhUVhUWfVXgVXeVXeVXeVXeVXeVXeVXe\^k\^k^`m`bobdqdfsfhufhu[]jY[hUWdPR_KMZFHUBDQ@BOEGTFHUFHUGIVHJWHJWIKXIKXUWdSUbMO\FHU=?L46C-/<)+8"$1"$1!#0 "/ "/!. - , + ) ) ) ) ) ) )(((((((& % $! %#"'%$)&%*'&+(',-,1.-2/.310532754965:7794/3TPQ¼¸¹àÜÝ·³´©¥¦®ª«µ±²´°±‘Ž|xy”‘§£¤¨¤¥¯©©·®¯À¶µÁ·¶¿µ´Äº¹Å»º°¦¥”Š‰oedlba|rq¡—–Ƽ»Â¸·‰~PHF312222222222222222222222................................................000/////////000222444666734845;78;78:67EABd`a‚~‰ŠŒˆ‰Œˆ‰‹‡ˆ‰…†ˆ„…ˆ„…‡ƒ‚‹ˆŒ‰’Ž‹“Œ“Œ’Ž‹Œ‰‹ˆŒˆ…Œˆ…Œˆ…Œˆ…Œˆ…Œˆ…Œˆ…Œˆ…†‚…‚„€‚~€|}~z{|xy|xyxtuwsttpqplmkghd`a_[\YXVba]bc^efaghchidhidghcfgb]^Y\]X[\WYZUXYTVWRUVQTUPPPNPPPRRRTTTVVVYYYZZZ[[[VVVVVVVVVVVVVVVWWWWWWWWWRRTRQVRQVRQVRQVRQVRQVRQVSRWSRWTSXUTYVUZWV[XW\XW]ZYa[Yd][f_]h`^i_]h_]h^\gcalb`kdbmhfqmkvomxkitffp[[eX[dWZcVYbTW`RU^QT]QT]EHQDGPBEN?BK7:C;>G>AJ\_h_bkdgphktknwloxmpynqzjlyjlyjlyjlyjlyjlyjlyjlyfhufhuegtcerbdqacp`bo^bn]amZ`lZ`lY_kX^jW]iW]iW]iZ`l[am[am[am[am[am\bn\bndjvdjvdjvdjvdjvdjvdjvdjv`fragsciudjvdjvciuags`frX^jX^jY_kZ`l[am\bn^dp_eq[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[am[amPVbPVbPVbPVbPVbPVbPVbPVbLR^KQ]JP\HNZGMYEKWCIUCIU@BO?AN>@M;=J9;H68E57D46C02?/1>.0=-/<+-:)+8(*7(*6*,8*-6+.7,/8-09.1:/2;/2;69B7:C9G>AJ@CLBENBFQHKZFL\HN^JP`LRbNTdPVfQWgLRbLRbLRbLRbLRbLRbLRbLRbHN^HN^HN^HN^HN^HN^HN^HN^IO_IO_IO_IO_IO_IO_IO_HO_EN]CO]CO]CO]CO]CO]CO]CO]MYgMYgMYgMYgMYgMYgMYgMYgU`rVasWbtXcuZew[fx\gy]hzVasVasU`rS^pR]oQ\nP[mOZlSOf^Zqeaxc_vb^ua]tWSjIE\C?VGCZMI`UQh^Zqgcznjqo‡yv‘yy•}}™ƒƒŸ††¢……¡›zz–nnŠbb~MMi99U77SJJfccpqmmlo’twšnq”ad‡Z]€dgŠ}€£Œ²’•¸šÀ¡¤Ç­°Ó½À㺽৪͟¡Ç–˜¾–˜¾˜šÀ¤§ÊŠ®jmŽQTs_c€dh…ei„bffjƒkoˆaf|QUnGJk†‰¬ÊÍðÚÝÿ¹¼ß›žÁ¨«ÎÆÉ싎±;>a69\‹Ž±ÄÇ긻ގ‘´jm"E?FIl„‡ªÅÈëô÷ÿô÷ÿðóÿ¼¿ây|ŸLOrps–­°Óµ¸Û”—º‚£jmŽ]`loŽ¯©¬Ë½Àß°³Ò‰Œ«WZyvy˜œŸ¾—š¹loŽ@M@BO@BO@BOACPBDQCERCERDFSOQ^NP]LN[HJWACP:7:C;>G>AJbenfirloxor{nqzmpympympyprprprprprprprprmo|mo|kmzikxgivegtdfsbfraeq_eq^dp^dp]co\bn[am[am\bn]co]co^dp^dp_eq_eq`frjp|jp|jp|jp|jp|jp|jp|jp|ekwflxhnzio{io{hnzflxekw^dp^dp]co]co^dp`frbhtdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvdjvbhtbhtbhtbhtbhtbhtbhtbht[am[am[am[am[am[am[am[amV\hU[gSYeQWcOUaLR^KQ]JP\CERBDQ@BO>@M<>K9;H79F79F24A24A13@/1>-/<,.;+-:*,8)+7*-6+.7,/8.1:/2;03<14=9AJADMCFOEHQEITKN]JP`KQaMScNTdPVfQWgRXhNTdNTdNTdNTdNTdNTdNTdNTdJP`JP`JP`JP`JP`JP`JP`JP`JP`JP`JP`JP`JP`JP`JP`IP`FO^DP^DP^DP^DP^DP^DP^DP^NZhNZhNZhNZhNZhNZhNZhNZhVasVasWbtXcuYdvZewZew[fxVasU`rT_qT_qR]oR]oQ\nP[mVRi`\sgczhd{kg~jf}[WnHD[D@WHD[NJaWSj`\shd{njpn†xuxx”||˜‚‚ž††¢††¢||˜oo‹ff‚SSo>>Z88TEEaWWsbcee‡nq”or•dgŠRUxQTwps–ˆ‹®Ž‘´’µšÀ¦©Ì°³Öº½à¶¹Ü£¦ÉšœÂ“•»“•»—™¿¦©Ì‹Ž¯jmŽSVuhl‰lpkoŠgk†hl…jn‡`e{RVo`c„“–¹ÉÌïÓÖù³¶Ù˜›¾£¦É¾Á䋎±A`DGf„£ÒÖóîòÿÁÅàšž¹‘•®…žLQgjo…Š£~ƒ–mr…^dtTZhNTbJP^GM[NOaOPbPQcQRdSTfTUgVWiVWiVWiVWiVWiVWiVWiVWiVWiVXgTVeTVcTVcTVcTVcTVcTVcTVcUWdTVcTVcSUbRTaQS`PR_PR_IKXHJWFHUDFSACP?AN=?L<>K?AN?AN?AN@BOACPBDQBDQCERHJWIKXJLYJLYFHU@BO:C<;@:9>87<76;105/.3-,1)(-%$)"!&##""*#&/'*3,/825>7:C;>G>AJY\e^ajehqhktgjsehqdgpehqln{ln{ln{ln{ln{ln{ln{ln{ln{ln{kmzjlyjlyikxhjwgkwhlxflxekwdjvciuciubhtbht`fr`fragsagsbhtciudjvdjvlr~lr~lr~lr~lr~lr~lr~lr~flxgmyio{jp|jp|io{gmyflxbhtags_eq^dp_eqagsciudjvhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzhnzflxflxflxflxflxflxflxflxbhtbhtbhtbhtbhtbhtbhtbht\bn[amY_kV\hTZfQWcPVbOUaEGTDFSBDQ@BO>@M;=J:25>A`GJi{~ÊÎëòöÿËÏꛟº‘ª…žLQgin„‹¤~ƒ–mr…^dtU[iOUcJP^GM[NOaOPbPQcRSeSTfUVhVWiWXjWXjWXjWXjWXjWXjWXjWXjWYhSUdSUbSUbSUbSUbSUbSUbSUbPR_OQ^NP]LN[IKXGIVFHUEGTACPACP@BO?AN>@M=?L<>K<>KBDQBDQCERDFSDFSEGTFHUFHUCERFHUJLYKMZJLYFHU@BO<>K"$1"$1!#0 "/ "/!. - , + ) ) ) ) ) ) )(((((((&!!" $! %#"'$#(%$)+*/,+0.-210532765:87<99;4/3 D@A¶²³îêëÐÌÍ¿»¼º¶·ÅÁ¿»¼ÑÍÎÎÊË£Ÿ Œ©¥¦¾¸¸Æ½¾¿µ´¿µ´Äº¹¾´³²¨§µ«ªÃ¹¸¢˜—Š€zpoqgf‰~›‘oedB:8312222222222222222222222................................................////////////...---,,,+++2./512:67C?@ZVWtpq‚~‚~‘Ž’Ž’Ž“•‘’–’“–’“—“”œ˜™™˜Ÿ›œ œ› œŸ›š™šœ˜—˜”•˜”“˜”•˜”“˜”•˜”“˜”•˜”•ŽŠ‹‰ŠŠ†‡†‚ƒ‚~{||xyzvwmijlhijfgfbca]^[WXUQRPNOTRSTTRUUUUUSTTTRRPPPPNNLTTTTTRSSSQQOOOONNLMMMLLLRQVRQVSRWTSXVUZWV[XW\XW\]\a]\a^]b_^c`_da`ebafbaf`_d`_d`_d`_d`_d`_d`_d`_d^]b^]b]\a\[`[Z_ZY^YX]YX^]\d][f][f][f^\g_]h`^ia_j`^igepomxqozmkvgepcal``jccmadm_bk^aj\_h[^gZ]fY\eVYbUXaTW`RU^QT]OR[NQZMPWJIOHGLGFKDCHA@E>=B=7:C;>G>AJJMVQT]Z]f^aj^aj]`i^aj`clgivgivgivgivgivgivgivgivhjwhjwikxikxjlykmzkmzjnzlp|jp|jp|io{hnzgmygmyflxdjvdjvekwflxgmyhnzio{io{kq}kq}kq}kq}kq}kq}kq}kq}flxgmyhnzjp|jp|hnzgmyflxciuags_eq]co]co_eqagsciuio{io{io{io{io{io{io{io{io{io{io{io{io{io{io{io{hnzhnzhnzhnzhnzhnzhnzhnzekwekwekwekwekwekwekwekw^dp]co[amX^jU[gSYeQWcPVbFHUEGTCERACP>@M<>K:36?=@I>AJ@CLBENEHQGJSILUIMXORaMScNTdPVfQWgRXhSYiTZjTZjTZjTZjTZjTZjTZjTZjTZjPVfPVfPVfPVfPVfPVfPVfPVfKQaKQaKQaKQaKQaKQaKQaJQaIRaGSaGSaGSaGSaGSaGSaGSaJVdJVdJVdJVdJVdJVdJVdJVdVasVasWbtWbtXcuXcuXcuYdvVasVasVasU`rU`rT_qT_qT_qa]tkg~mi€rn…}yuqˆZVmIE\<8OEAXSOf]Yp_[ra]tkg~vtŒurttvv’||˜‚‚ž……¡……¡ƒƒŸttmm‰aa}SSoIIeHHdMMiQRp__`c†fiŒZ]€BEhILotwš—š½ £Æ ÃŸ¢Å¨«Î½ÀãÏÒõÂÅ衤Ǚ›Á”–¼Ž¶Ž¶Ž‘´‡Š«x{œknfj‡gkˆ`d^b}ei‚bfY^tY]vˆ‹¬¶¹Ü¶¹Ü¦©Ì™œ¿šÀ¯²Õ¬¯Òˆ‹®PSv69\sv™ÈËîÌÏòŒ²Y\#&I/2Ucf‰¢¥ÈßâÿõøÿÍÐó¬¯Ò¢¥È“¶iljmz} †‰¬™œ¿‘”µvyš_bnq¢¥ÄÛÞýÆÉ蟢Á“–µNQpVYx‚…¤§ªÉ‹Ž­UXwMPoeh‡Ÿ£Àãçÿ¿Ãޏ“®Ž’«ƒœUZpqvŒšŸ³‡ŒŸrwŠdjzV\jJP^GM[JP^OPbOPbOPbOPbOPbOPbOPbOPbUVhUVhUVhUVhUVhUVhUVhUWfTVeSUbRTaOQ^MO\KMZIKXHJWGIVFHUDFSBDQ?AN=?L;=J:K>@M@BOACPACPDFSEGTFHUGIVIKXKMZLN[LN[PR_QS`RTaSUbUWdVXeXZgXZg?AN9;H/1>&(5 "/ - "/!#/&$1&$/&$/&$/&$/&$/&$/&$/ )" +%#.'%0&$/#!, )%"!'"!&"!&"!&"!&"!&"!&"!&"##"'*).1055495494463.2 +2./¥¡¢ëçèÚÖ׿»¼Â¾¿¾º»Ã¿ÀÖÒÓËÇÈ¢žŸ—“”ª¦§±««³ª«¸®­»±°»±°¹¯®·­¬·­¬¸®­´ª©«¡ ›‘Š€xnmf\[VLKKCA=;<:::777777777555111...111111000//////...------------,,,++++++,,,------///---,,,++++++,,,---///-)*401C?@XTUokl{|†‚ƒˆ„…‹‡ˆ”‘“’Ž™š¡ž¢žŸ§£¤ œ¢žŸ£ž¢¡žŸšžŸ›œ£ž¢¨¤¥˜“—‹‡ˆ‘Œ–’“‹†Š‰…†Œ‡‹‚~zvwxtuuqrqmnmijieffbcd`a\XY\XY\XY[WX[WX[WX[WXXVWWUVVVVVVXVVVWWYWWWWWYWWW^^`\\\[[]\\\__aaaa__a]]_fejbag]\ba`fhgmdcibagkjpdcifekhgmjiojioihngfledjcbgcbgbafa`e`_d`_d_^c_^c_^c_^c_^c^]b^]b^]b]\a]\b^]e][f\Ze\Ze\Ze\Ze][f^\gmkvljukitigrhfqfdoecnccm``j]`i]`i]`i\_h\_h[^g[^gUXaTW`RU^QT]RU^SV_UXaVY`[Z`XW\RQVKJODCH=K8:G57D46C-/<-/<-/<-/<-/<-/<-/<-/;.036?58A69B7:C?BK@CLBENDGPGJSILUKNWKOZSVeQWgRXhSYiSYiTZjU[kU[kV\lV\lU[kTZjSYiSYiRXhRXhSYiSYiSYiSYiSYiSYiSYiSYiNTdNTdMScLRbKQaKQaJP`IP`JSbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nWbtWbtWbtWbtWbtWbtWbtWbtie|ok‚ok‚rn…|xvr‰^ZqMI`51H>:QOKb^Zqc_veaxlhus‹vsŽttww“}}™ƒƒŸ‡‡£††¢„„ xx”rrŽggƒZZvPPlNNjQQmUVt__beˆlo’hkŽWZ}^a„€ƒ¦ Ã¥¨ËŸ¢Å Ã§ªÍ½ÀãÒÕøÆÉ쥨˛Ã–˜¾‘“¹’”º‘”·‰Œ­y|loŽcg„gkˆcg‚bfhl…ei‚^cy_c|’•¶¾Á䷺ݠ£Æ—š½ Ãª­Ð—š½jmSVyHKnqt—¹¼ßÓÖù¡¤Çbeˆ),O?Beux›©¬ÏÖÙüåèÿÆÉì­°Ó¤§Ê’•¸nq”ru˜€ƒ¦†‰¬–™¼±z}žjmŒx{š¢¥ÄÒÕô¿ÂឡÀŽ‘°SVu_b‡Š©¤§Æ‹Ž­`c‚SVu^a€”˜µÙÝú»¿Ú‘¬‘ª€„Z_uty–›¯ˆ v{ŽdjzTZhJP^HN\KQ_OPbOPbOPbOPbOPbOPbOPbOPbSTfSTfSTfSTfSTfSTfSTfSUdTVeSUbQS`OQ^LN[JLYHJWGIVDFSCERBDQ?AN=?L;=J9;H8:G9;H9;H:K>@M?AN@BOACPEGTFHUGIVHJWJLYLN[MO\MO\TVcUWdVXeWYfY[hZ\i\^k\^kGIV@BO68E,.;%'4"$1#%2$&2&$1&$/&$/&$/&$/&$/&$/&$/#!,$"-%#.%#.$"-" +($$#)$#($#($#($#($#($#($#( $ $#"''&+-,11054385573.2 +0,-¢žŸëçèÛ×Ø¿»¼Â¾¿ÆÂÃÅÁÂÍÉÊÇÃÄ°¬­ª¦§²®¯³­­³ª«¸®­»±°»±°¹¯®·­¬·­¬¸®­±§¦©Ÿž“’ƒ‚zpoe[ZQGFC;9<:;888444333444444111///000000///......---,,,,,,111000000000000000000111...---+++******+++---...623A=>UQRlhi}yz†‚ƒ‡ƒ„…‚…‚ŽŠ‹•‘’Ÿ›œ¦¢£žš›”‘—“”‹’‘”“•””“—’–œ—›¡œ ‡‚†„ƒ†…†…|€~y}€{‚}vrsuqrrnookllhiiefgcdfbc_[\_[\_[\_[\_[\^Z[^Z[\Z[_]`^^`^^`__a__a``b``b``bffhddfcceddfggiiikggifejlkqqpvnmslkqpoupoukjplkqfekgflihnkjpkjpjioihnhgmdchcbgcbgbafa`e`_d`_d_^c`_d`_d`_d`_d_^c_^c_^c_^d]\d][f][f][f][f][f][f][fkitkitigrhfqfdoecndbmbbl^^h\_h[^gZ]fZ]fY\eY\eX[dRU^QT]OR[NQZNQZPS\QT]SV]XW]UTYPOTJINCBG<;@76;549/.3/.3.-2+*/'&+#"'#!##+#&/&)2+.703<58A8;D:=FEHQGJSKNWNQZQT]RU^SV_RU^_an_an`boacpcerdfsegtegtjlykmzkmzln{mo|np}np}nr~lp|jp|jp|io{io{io{io{io{io{io{io{io{io{io{io{io{ekwekwdjvciubhtbhtagsags_eq_eq_eq_eq_eq_eq_eq_eq^dp^dp_eqagsbhtciudjvekwjp|jp|io{io{io{hnzhnzhnzjp|jp|jp|jp|jp|jp|jp|jp|ekwekwekwekwekwekwekwekwflxflxflxflxflxflxflxflx[amZ`lX^jTZfQWcMS_JP\IO[HJWGIVDFS@BO<>K8:G57D46C-/<-/<-/<-/<-/<-/<-/<-/;02>03<25>36?58A69B7:C8;D>AJ?BKADMCFOFIRHKTJMVJNYSVeQWgRXhSYiSYiTZjU[kU[kV\lV\lU[kU[kTZjSYiRXhRXhRXhRXhRXhRXhRXhRXhRXhRXhOUeNTdNTdMScLRbKQaKQaIP`JSbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbOZlOZlOZlOZlOZlOZlOZlOZlWbtWbtWbtWbtWbtWbtWbtWbtvr‰wsŠrn…rn…zvvr‰b^uQMd,(?73JKG^`\sjf}lhplƒtrŠvsŽuu‘xx”~~š„„ ˆˆ¤ˆˆ¤††¢~~šyy•ppŒee[[wWWsYYu[\zaaƒfiŒux›{~¡vyœ|¢“–¹§ªÍ­°Ó¢¥È›žÁ¢¥Èº½àÔ×úËÎñ«®Ñž Æ™›Á–˜¾–˜¾–™¼±{~Ÿmpae‚gkˆhl‡gk†im†hl…fkjn‡™œ½ÄÇ궹ܚÀ–™¼¢¥È¦©Ì‚…¨CFiTWz`c†ru˜¦©ÌÕØû¹¼ßux›7:]VY|Š°±´×ËÎñÓÖù¾Áä®±Ô¤§Ê’•¸qt—{~¡ˆ‹®‡Š­’•¸‰Œ­}€¡z}œˆ‹ª¢¥ÄÃÆå·ºÙ¡¤Ã‰Œ«VYxhkŠ¯£¦Å‘”³nqX[zNQpŠŽ«ÏÓð»¿ÚŽ’­‹¨ƒœ_dzsxŽ”¨Š¢{€“djzQWeIO]JP^LR`OPbOPbOPbOPbOPbOPbOPbOPbQRdQRdQRdQRdQRdQRdQRdQSbSUdRTaPR_NP]KMZIKXGIVFHUACP@BO>@M<>K:K=?L?AN@BOACPGIVGIVIKXJLYLN[MO\NP]OQ^XZgY[hZ\i\^k]_l_an`boacpQS`KMZACP79F02?,.;+-:+-9.,9.,7.,7.,7.,7.,7.,7.,7,*5-+6-+6,*5*(3'%0$"-"!)$#)$#($#($#($#($#($#($#(! %"!&"!&#"'%$)*).0/44463.2 +,()™šéåæÜØÙ¿»¼Â¾¿ËÇÈÊÆÇÈÄž¿¹µ¶³¯°±­®²¬¬´«¬¹¯®¼²±¼²±º°¯¸®­¸®­¹¯®¯¥¤«¡ £™˜–Œ‹ƒyxi_^OED>64@>?;;;555222222333333222111000000///......------...........................,,,+++******+++,,,...?;AJADMDGPGJSILUJMVJMVJMVVXeWYfXZgZ\i\^k^`m_an`bogivgivhjwhjwikxjlykmzjnzhlxflxflxgmygmygmyhnzhnzgmygmygmygmygmygmygmygmyciuciubhtbhtags`fr_eq_eq\bn\bn\bn\bn\bn\bn\bn\bn[am[am]co_eq`frbhtdjvdjvjp|jp|io{hnzflxekwdjvdjvflxflxflxflxflxflxflxflxbhtbhtbhtbhtbhtbhtbhtbhtciuciuciuciuciuciuciuciuX^jW]iTZfRXdOUaLR^KQ]JP\HJWGIVDFS@BO<>K8:G57D46C.0=.0=.0=.0=.0=.0=.0=.0<24@36?47@58A7:C8;D:=F:=F>AJ?BKADMCFOEHQHKTJMVIMXSVeQWgRXhSYiSYiTZjU[kU[kW]mW]mV\lU[kTZjTZjSYiSYiQWgQWgQWgQWgQWgQWgQWgQWgPVfOUeOUeNTdMScLRbLRbKRbJSbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbMXjMXjMXjMXjMXjMXjMXjMXjVasVasVasVasVasVasVasVas}”}yuqˆso†yuŒwsŠeaxRNe($;2.EHD[b^urn…vr‰vr‰vtŒurttww“~~š……¡‰‰¥‰‰¥ˆˆ¤„„ yy•nnŠdd€``|``|bcgg‰mp“}€£Š°Ž‘´•˜»¥¨Ë´·Ú³¶Ù¥¨Ë˜›¾›žÁ²µØÏÒõÍÐó²µØ ¢ÈœžÄ™›ÁšœÂ™œ¿Ž‘²| mpcg„hl‰jn‰hl‡gk„hl…ns‰vz“˜›¼ÁÄ糶ٙœ¿—š½¢¥È¢¥È|¢(+NNQtor•|¢›žÁÉÌïÂÅ苎±JMpil•˜»¶¹ÜÇÊíÉÌﺽଯҢ¥È‹Ž±mp“€ƒ¦’µ‡Š­Ž‘´‡Š«~¢‡Š©”—¶Ÿ¢Áµ¸×³¶Õ©¬Ë‰Œ«PSrfiˆ’±©¬ËœŸ¾y|›UXw;>]†Š§ÉÍêÀÄߑ•°ŠŽ§}šej€rw‰Ž¢‹£„—ek{OUcIO]KQ_MSaOPbOPbOPbOPbOPbOPbOPbOPbQRdQRdQRdQRdQRdQRdQRdQSbQSbPR_NP]LN[JLYGIVFHUEGT?AN>@M<>K:K>@M?AN@BOACPIKXJLYKMZLN[NP]PR_QS`QS`Z\i[]j\^k]_l_anacpbdqbdqXZgSUbKMZCER=?L::9>98=65:0/4)(-#"'$##+#&/&)2+.703<58A8;D:=F;>GK8:G57D46C/1>/1>/1>/1>/1>/1>/1>/1=46B58A69B7:C92.EFBYb^uwsŠ}y{wŽxvŽsp‹rrŽvv’}}™„„ ‰‰¥‰‰¥ˆˆ¤‰‰¥††¢~~šssii…eeeefg…mmtwš‚…¨“¶™œ¿ £Æ®±Ô¿Â巺ݨ«Î™œ¿”—º¥¨ËÄÇêÊÍð¸»Þ¢¤ÊŸÅ™›Á™›Á—š½±| mphl‰jn‹koŠgk†ae~ei‚rw|€™—š»¾Á䳶ٟ¢ÅšÀœŸÂœŸÂ|¢"%HGJmsv™‰Œ¯™œ¿³¶Ù´·Ú˜›¾_b…y|ŸœŸÂ¼¿âÉÌïÃÆ鶹ܪ­Ð¡¤Ç‚…¨cf‰‚¥“–¹ˆ‹®Œ²†‰ª‚£¯˜›º›ž½ª­Ì³¶Õ¶¹ØŒ®EHg_bŽ‘°¯²Ñ¥¨Ç~ PSr.1P…¢ÁÅâÃÇⓗ²‰¦ƒœrwy~”†‹Ÿ‰Ž¡€…˜gm}PVdIO]KQ_NTbOPbOPbOPbOPbOPbOPbOPbOPbRSeRSeRSeRSeRSeRSeRSeRTcOQ`NP]MO\JLYHJWFHUDFSCER?AN>@M<>K:K>@M?ANACPBDQCERLN[LN[MO\OQ^QS`RTaSUbTVcY[hZ\i[]j]_l^`m`boacpbdq[]jXZgSUbNP]KMZKMZLN[MO[VTaVT_VT_VT_VT_VT_VT_VT_QOZUS^ZXc][fZXcRP[JHSDCK87=87<87<87<87<87<87<87<0/4.-2,+0)(-(',(',*).++-2-1 +# ‹ŒåáâßÛÜÀ¼½Á½¾Á½¾Â¾¿´°±§£¤§£¤ œ™•–¢œœµ¬­¹¯®¼²±½³²º°¯¸®­¸®­¹¯®´ª©´ª©²¨§¬¢¡ž”“‡}|oed]USZXYQQQFFF>>>999666333000------,,,+++******))))))&&&''')))++++++)))'''&&&,,,+++)))(((((()))+++,,,734:67=9:=9:<89>:;C?@HDEA=>:67FBC`\]kghiefplm~y}ƒ~„€{‚}xzu|xszxszwrywrytovkfm†ˆœ—ž†ˆsnupkrfagfaefbceabd`ab^_a]^`\]_[\]YZ^Z[^Z[_[\`\]a]^b^_`^apnsontpoupouqpvrqwsrxsrxtsyrqwrqwutzyx~|{{z€zy|{ƒ}ˆ~|‡|z…zxƒvt{y„‹‰”}ˆ}{†{y„wu€tr}rp{pnyonvhgmhglgfkfejediedidchdchfejfejgfkhglihmjinjinkjpmltnlwpnyrp{rp{pnynlwmkvqozqozomxnlwljukitigrhhrbbl`cl^aj]`i[^gY\eX[dWZcPS\NQZLOXJMVILUILUJMVKNULKQKJOHGLEDIBAF?>C<;@;:?@?D@?D?>C<;@65:-,1%$) %##+#&/&)2+.703<58A8;D:=F=@I>AJADMCFOEHQEHQDGPDGPGIVGIVIKXJLYLN[MO\OQ^OQ^Z\iZ\i[]j[]j\^k]_l^`m]ambfr`frbhtdjvflxhnzio{jp|kq}kq}kq}kq}kq}kq}kq}kq}bhtbhtags`fr`fr_eq^dp^dpZ`lZ`lZ`lZ`lZ`lZ`lZ`lZ`lW]iW]iX^jZ`l\bn]co^dp_eqciuciuags_eq^dp\bnZ`lZ`l[am[am[am[am[am[am[am[amX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jX^jOUaMS_KQ]IO[IO[KQ]LR^NT`HJWGIVDFS@BO<>K8:G57D46C/1>/1>/1>/1>/1>/1>/1>/1=57C58A7:C8;D:=F;>GU]Ypuqˆ~z‘|xwupmˆoo‹ss{{—ƒƒŸˆˆ¤ˆˆ¤‡‡£ŒŒ¨ˆˆ¤~~šssii…eeggƒijˆoo‘z} †‰¬“¶—š½œŸÂ¬¯ÒÁÄ纽௲՟¢Å‘”·˜›¾¶¹ÜÈËîÁÄ礦̝ŸÅ–˜¾”–¼’•¸‰Œ­z}žloŽlpjn‹jn‰fj…^b{bfotŠvz“–™º¾Á䶹ܣ¦É›žÁ›žÁšÀ{~¡*-PILosv™“¶™œ¿ Ã›žÁ“–¹ru˜‹Ž±«®ÑÊÍðÉÌﳶ٪­Ð¨«Î§ªÍ~¤Y\{~¡•˜»‰Œ¯Œ²‡Š«‚…¦“²—š¹–™¸£¦Å¶¹ØÃÆ叒±;>][^}¯¬¯Î¢¥Ä‚¡SVu/2Qx|™µ¹ÖÁÅà’–±†Š£…ž†œ„‰Ÿ†‹Ÿ‡ŒŸ~ƒ–hn~SYgIO]KQ_OUcOPbOPbOPbOPbOPbOPbOPbOPbRSeRSeRSeRSeRSeRSeRSeRTcNP_MO\KMZIKXFHUDFSBDQACPACP@BO>@M<>K:@M?AN@BOBDQCEREGTEGTNP]OQ^PR_QS`SUbTVcVXeVXeY[hZ\i[]j\^k^`m_anacpacp\^k[]jY[hWYfWYfY[h[]j\^ja_la_ja_ja_ja_ja_ja_ja_jb`kfdokitnlwljuecn][fXW_SRXSRWSRWSRWSRWSRWSRWSRWFEJCBG@?D?>C>=B98=216,,.2-1 +ˆ„…ãßààÜÝÀ¼½À¼½¿»¼¸´µ¤ ¡™•–Ÿ›œŸ›œš–—Ÿ™™¯¦§³©¨·­¬·­¬µ«ª³©¨³©¨´ª©­£¢¬¢¡©Ÿž¦œ›ž”“‘‡†‚xwvnlighaaaVVVLLLEEE???999555++++++***)))((((((''''''!!!###&&&((((((&&&###!!!+++***)))'''''')))***+++.*+0,-1-.0,-/+,.*+/+,0,-@<=956?;CEDIFEJEDIBAF;:?105(',!"'##+#&/&)2+.703<58A8;D:=FDGPFIRHKTJMVKNWKNWJMVILUGIVHJWHJWIKXIKXJLYJLYJLYRTaRTaSUbSUbTVcUWdUWdUYe\`l[am]co`frciuflxhnzio{lr~lr~lr~lr~lr~lr~lr~lr~ciuciubhtbhtags`fr_eq_eq\bn\bn\bn\bn\bn\bn\bn\bnW]iW]iX^jX^jY_kY_kZ`lZ`l\bn[am[amY_kX^jW]iV\hV\hU[gU[gU[gU[gU[gU[gU[gU[gSYeSYeSYeSYeSYeSYeSYeSYePVbPVbPVbPVbPVbPVbPVbPVbJP\IO[FLXEKWGMYJP\MS_PVbHJWGIVDFS@BO<>K8:G57D46C02?02?02?02?02?02?02?02>46B58A69B8;D9G]sw”­±Î¿Ãލ‘¬€„~‚›ˆ£ˆ£ˆ¡ƒˆ›z’jp€W]kJP^IO]OUcOPbOPbOPbOPbOPbOPbOPbOPbPQcPQcPQcPQcPQcPQcPQcPRaMO^LN[JLYHJWEGTCERACP@BODFSCERBDQ?AN=?L;=J9;H8:G@BO@BOACPCEREGTFHUGIVHJWPR_PR_QS`SUbUWdVXeWYfXZgZ\i[]j\^k]_l_anacpbdqbdq_an^`m^`m^`m_anacpdfsegsgergepgepgepgepgepgepgepkitmkvomxomxnlwkithfqedljiojinjinjinjinjinjinjina`e]\a[Z_\[`[Z_RQVA@E3352-1 +ƒ€âÞßâÞßÀ¼½À¼½ÄÀÁº¶·¨¤¥›—˜™•–›—˜ œ§¡¡¦ž«¡ ®¤£®¤£¬¢¡ª Ÿª Ÿ«¡ ž”“š–Œ‹”Š‰“‰ˆ†…Œ‚‡}}{|uuulllccc\\\TTTLLLFFF222222111000000///......(((+++...111111...+++(((+++***(((''''''(((***+++/+,.*+.*+.*+.*+,()*&''#$?;C438*)."#(##+#&/&)2+.703<58A8;D:=FNQZOR[QT]SV_TW`SV_RU^QT]MO\MO\MO\LN[LN[KMZKMZJLYKMZKMZLN[LN[MO\NP]OQ^NR^UYeTZfW]iZ`l^dpagsdjvekwjp|jp|jp|jp|jp|jp|jp|jp|ekwekwdjvciubhtbhtagsags_eq_eq_eq_eq_eq_eq_eq_eqX^jX^jX^jW]iV\hV\hU[gU[gU[gTZfTZfTZfSYeSYeSYeSYeQWcQWcQWcQWcQWcQWcQWcQWcPVbPVbPVbPVbPVbPVbPVbPVbJP\JP\JP\JP\JP\JP\JP\JP\GMYEKWCIUBHTEKWIO[NT`QWcHJWGIVDFS@BO<>K8:G57D46C13@13@13@13@13@13@13@13?35A47@58A7:C8;D:=F;>Ga^a„y|Ÿ‡Š­’•¸Š°vyœmp“…ˆ«°³ÖÛÞÿíðÿ¾Á䀃¦‰Œ¯¨«ÎÁÄ焇ªSVyx{ž™œ¿³Œ²‰Œ­Ž‘²”—¶‘”³‘”³Ÿ¢Áº½ÜÎÑðŽ‘°7:Ygj‰‘”³’•´…ˆ§„£loŽGJitx•¬°ÍÁÂފŽ©|~—x|•ˆŠ¡„‰ŸŒŽ£†™y|kq\_nJP^JM\RUdOQ`OQ`QP`OQ`QP`OQ`QP`OQ`PO_NP_PO_NP_PO_NP_PO_NP_NM[KMYKJXGIUGFTBDPCBP@BNIHVFHTFESBDPA@N=?K=0.3 ~|áÜààÞáÀ»¿¾¼¿ÊÅÉÂÀø³·¢ £“Ž’‘’¢¡°«¯—™£š¦ ¦ ¤›ž¢™œ¢™œ£š†‰Š„…|ƒz}†}€‹‚…Ž…ˆ‡‰‹Œ†††wwwpprhhh__aYYY<<><<<;;=;;;::<99988:88899;<<999+),))))'*&&&'%((((*(++)*425/-.-(,*()-(,,*+,'+'%&,'+1/09482014/3FDERMQCADLGMGDKGBIGDKOJQQNUUPWROV]X_[X_fahebi\W^ZW^`[bYW\ojnkijhde`^_\XYSQRQMNLJKZVWYWX\XY\Z[`\]`^_c_`b`cTSXSRWQPUONSMLQKJOIHMIHMTSXSRWTSXWV[\[``_d`_d_^dcbjus~wu€jhsb`kb`khfqrp{fdofdofdogepjhsnlwrp{ut|kjpkjojinjinihmhglgfkgfkjinkjolkpnmrpotrqvsrwtsywv~zy~}…€ˆ€ˆ~}…zywv~rqyqpxpownmumltkjrjiqihpbbl_bk__iZ]fYYcUXaUU_RU^LLVILUHHRCFOCCM@CLBBLBBJHINHINHGMGHMGFLEFKFEKEFKLKQLMRMLRHINA@F56;*)/"#(!$+"&/&)2*.703<48A8;D9=FTW`TXaWZcX\eZ]fX\eX[dVZcSUbRVbRTaOS_OQ^MQ]MO\KO[GIVFJVHJWGKWIKXIMYKMZJNZPT`OUaTXdU[g[_k]cobfragsjnzhnzjnzhnzjnzhnzjnzhnzhlxfmwgkwdkufjvcjtdhtbiscgsahrcgsahrcgsahrcgsags[_kY_kZ^jV\hW[gTZfUYeRXdRVbPVbRVbPVbSWcQWcSWcQWcQUaOUaQUaOUaQUaOUaQUaOUaPT`NT`PT`NT`PT`NT`PT`NT`FLXFLXFLXFLXFLXFLXFLXFLXEKWCIUAGSAGSCIUIO[NT`RXdHJWGIVDFS@BO<>K8:G57D46C13@13@13@13@13@13@13@13?24@36?47@69B7:C9GAJADMCFOEHQGJSGKVSVeQWeRXhSYgSYiTZhU[kU[iZ`pZ`nY_oY_mX^nW]kV\lV\lW]mW]mW]mW]mW]mW]mW]mW]mV\lV\lU[kU[kTZjSYiRXhQXhJSbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbHTbMXjMXjMXjMXjMXjMXjMXjMXjS^pS^pS^pS^pS^pS^pS^pS^pCAW?@UZXn{|‘Šˆž‚—qo…[\qGE[>?TB@VNOd^\rfg|rp†yy‘mm‡kk‡jj†mm‰vv’›††¢‰‰¥©††¢||˜rrŽhh„^^z]]ydeƒtt˜ƒ©“•¼‡‰¯vxŸ^`†wy œžÄØÚÿÝßÿÊÌóª¬ÒŠŒ³œžÄ¶¸ßÉËò¤£ËœÄ•’½Žµ‰‡¯¥tr™jjŽmlŽoplk‹jk‰ml‹cd€VVrOPn„¥ Ã©¬Ïž¡Ä¨«ÎÇÊí±´×sv™+.QORu{~¡{~¡‘”·ˆ‹®vyœlo’’•¸ÅÈëëîÿîñÿ»¾ábeˆsv™•˜»¡¤Ç‚…¨illo’}€£‡Š­ˆ‹®ˆ‹¬‘”µ¡¤Ã¯{~’±±´Ó±´ÓŠ¬QTsfiˆŽ‘°–™¸„£€ƒ¢qt“GJiŽ­ÂÃáÈÈ䀁__yy{”‰‰¡ˆŠ¡‚ƒ˜†‰œˆ‰twˆY[jORaSUdPR_VUcWWcXVcVVbVTaTT`TR_RR^SQ^QQ]QO\NNZMKXJJVIGTGGSFDQEEOGERFFPHFSHHRJHUIISRP]QQ[SQ^RR\RP]OOYNLYKKUFDQEEOFDQGGQKIVOOYTR_VV`ZXeYYc[YfZZd\Zg\\f^\i]]gb`mddngerffpgeriisljwllvigthhrigtiisjhujjtkivkivjhujhujhvkivmkypn{squs€iguqo|wuƒtrmkykivsq|z‡}{†€ˆ†…Š‰‘‰ˆ…„Œ~†zyyx€ˆ‡~†ƒ‚Š…„Œts{hgoUT\32: &cbj¢Ÿ¨¬«³š£’‘™Œ‰’Ž–’˜Œ‹“„Š~}…~‡…‚‹„ˆ‚†~…€}„‚†„ˆ‡„‹‰†ƒ€‡ƒ€‡ƒ€‡ƒ€‡„ˆ„ˆ„ˆ„ˆ~ƒƒƒ‚‡„„†‚†~~€xw|uuw\[`XXZXW\\\^[Z_UUWSRWWWYYW\ecf…€†Šˆ‹qlr\Z]VQWFDG6170.1.)/+),-(.*(+*%+%#&(&+'')(&+((**(-))++).**,/-2..0/-2..0/-2..0/-2.-220510520510520510520510597<87<97<87<97<87<97<87<;9<;;;><====<:;888645333;9:<<<@>?BBBDBCCCCCABAAA88:88:88:88:88:88:88:88:>>@>>@??A@@BBBDCCECCEDDFDCHLKQSRXSRXONTLKQONTSRXa`fdcifekfekedjdcigflihnrqvqpuonsjindch`_d`_dbafrqv\[`QPU^]bkjojinhglkjoedjmlrontfek^]c`_edciedjTSYUTZWV\YX^[Z`]\b^]c_^dUT\RR\PNYLLVIGRDDNB@K@@J64?55?75@66@86A88B:8C99C??G>AHAAIADKDDLDGNGGOFIPNNVKNUOOWNQXFFN36=&&.!(#,&.&*3*1937@7>F>BK>EMOS\T[c[_h[bjaencjrdhq]dl^bn\bn]amZ`l[_kX^jY]iV\hKO[IO[JNZHNZIMYFLXGKWGKWBETCFUEGVEHWGIXHKZJL[IL[TVeUXgZ\k\_n_ap^ap_ap]am^`l\`i\^j[_h]_k^bkacobfo`bn_cl`bn_cl`bn_cl`bn_cnZ\iY]iY[hW[gWYfUYeUWdTXdWYfVZfWYfVZfWYfVZfWYfVZfQS`OS_PR_NR^NP]LP\MO\LP\KMZJNZKMZJNZKMZJNZKMZJNZEKWEKWEKWEKWEKWEKWEKWEKW>DP?EQAGSBHTCIUBHT@FR?EQ?AN?AN=?L<>K:AJ?BK@CL@CL?CNEIUDJVDJXEKWFLZGMYGM[HNZMSaNT`OUcQWcRXfTZfU[iV\jY_oY_oY_oZ`pZ`p[aq[aq[aq[aq[aqZ`pX^nW]mV\lU[kSZjPYhNZhNZhNZhNZhNZhNZhNZhNZhNZhMYgLXfLXfKWeJVdJVdLWiLWiLWiLWiLWiLWiLWiLWiNYkNYkNYkNYkNYkNYkNYkNYkLMb@AVOPest‰†‡œ‚—op…]^sEF[ABWBCXKLaYZofg|qr‡yy‘nnˆkk‡jj†nnŠww“€€œ††¢ˆˆ¤ŽŽª‰‰¥||˜qqhh„XXtUUqab€mm“’¹§©Ð…‡®_aˆEGnjl“ž ÇÔÖýÞàÿÊÌóª¬Ó‹´šœÃ´¶ÝÏÑø©¦Ñ¡žÉ—”¿¸‰‡¯}¥rp—hf‹pn“sr”onŽmlŒnmŒdc‚VUtQRqƒƒ¥Ÿ¢Å­°Ó¡¤Ç¨«ÎÂÅè®±Ôvyœ47ZILox{ž‚…¨’µ³‚…¨nq”³ÎÑôñôÿîñÿ´·Ú^a„x{ž”—º—š½ƒ†©ru˜ru˜|¢ƒ†©†‰¬‰Œ­“–· ¿†‰¨ux—†‰¨¦©È¬¯ÎŒ®TWvil‹‡Š©œŸ¾¯„‡¦x{šADc…„£ÁÀßÏÏ댌¨bb|ss™††ž„…š‹Œ ¤~‘cetY[jZ\kXZg[Yf[Yd[YdZXcYWbYWbXVaWU`RP[QOZOMXMKVKITIGRGEPFDOIGRIGRJHSKITLJULJUMKVMKVUS^US^VT_WU`VT_TR]QOZPNYA?JCALECNIGRLJUOMXQOZRP[US^US^VT_WU`WU`XVaYWbYWb^\g`^ib`ka_j`^ia_jdbmecnb`kcalecngepigrkitmkvmkvususususwuƒzx†}{‰}‹vt‚zx†}{‰|zˆyw…xv„zx†~|‰yw„}ˆˆ†‘ŽŒ—Ž™ŒŠ•†„Š€~‰…ƒŽ‰‡’ŽŒ—›™¤˜–¡~|‡nlwECN75@;9D][fƒŒ’›‹–†„„‚‰‡’ŒŠ•‰‡’„‚Š…ƒŽ‰‡’}{†|z…{y„zxƒ{y„}{†€~‰‚€‹~|‡~|‡~|‡}{†}{†|z…|z…|{ƒ~„€…ƒ‚‡„ƒˆ‚†~}‚yx}vuzlkphglgfkkjokjohglihmmlqlgmpkq€{~yc^dUPVUPVMHN>9?94:3.4/*0/*0/*0.)/*(-&$)%$)%$)&%*'&+(',(',)(--,1-,1-,1-,1-,1-,1-,1-,10/40/40/40/40/40/40/40/4549549549549549549549557668777888999888555333111000222555777888888777666333333333333333333333333555555666777888999999:::76;=I=;F:8C97B31<31<42=42=53>64?75@66@@@J>AJ@CLADMCFODGPEHQFIRMPYLOXNQZOR[FIR47@&)2#,#,&.$+3*1918@7>FEMNU]T[cZai\ck_fncjrbiq^em_eq_eq^dp]co\bn[am[amZ`lNT`NT`MS_MS_LR^KQ]JP\JP\FHWFHWFHWFHWGIXGIXGIXGIXMO^OQ`RTcUWfWYhWYhVXgVXeZ\hY\eY\eY\eZ]f]`i_bkadmadmadmadmadmadmadmadmadm[]jZ\iZ\iY[hXZgWYfVXeVXeWYfWYfWYfWYfWYfWYfWYfWYfRTaQS`QS`PR_OQ^NP]NP]MO\JLYJLYJLYJLYJLYJLYJLYIMYFJVDJVDJVDJVDJVDJVDJVDJVBHTCIUDJVEKWDJVCIUAGS@FR?AN?AN=?L<>K:G44>AAK@CLADMBENDGPFIRGJSGJSOR[NQZPS\PS\GJS69B'*3 $-#,&.$+3*1918@7>FEMOV^U\d[bj]dl`godksdks_fnbhtbhtbhtags`fr`fr_eq_eqV\hV\hU[gTZfTZfSYeRXdRXdMO\LN[KMZIKXGIVFHUEGTDFSEGTGIVIKXKMZMO\MO\MO\MO\SUaSV_SV_SV_UXaX[d[^g]`icfocfocfocfocfocfocfocfo\^k\^k[]j[]jZ\iY[hY[hY[hXZgXZgXZgXZgXZgXZgXZgXZgSUbRTaRTaQS`PR_OQ^OQ^NP]JLYJLYJLYJLYJLYJLYJLYIMYFJVDJVDJVDJVDJVDJVDJVDJVGMYGMYHNZHNZGMYDJVBHT@FR?AN?AN=?L<>K:03<03<03<03<03<03<03<58A58A69B7:C8;D8;D9DP>DP?EQFLXGMYHNZJP\KQ]MS_NT`OUaQWgRXhRXhSYiTZjU[kV\lV\lU[kU[kU[kTZjTZjSYiSYiRYiR[jP\jP\jP\jP\jP\jP\jP\jNZhNZhMYgLXfLXfKWeJVdJVdLWiLWiLWiLWiLWiLWiLWiLWiNYkNYkNYkNYkNYkNYkNYkNYkYZo?@UABWhi~‰ŠŸ‚ƒ˜ef{OPeHI^JK`GH]EF[PQfdezst‰wwoo‰nnŠnnŠrrŽyy•……¡††¢©ŽŽª{{—mm‰ff‚IIe@@\]^|³³µÜº¼ãƒ…¬SU|13ZTV}‘¸ÑÓúØÚÿº¼ã ¢É’”»œžÅ¬®ÕÐÒù²¯Ú©¦ÑšÅ’º‰‡¯|z¢mk’a_„nl‘rq“poonŽpoŽih‡`_~^_~‰‰«¦©Ì³¶Ù£¦É Ã©¬Ï £Æƒ†©^a„WZ}wzŠ°Ž‘´”—º…ˆ«il‘”·çêÿöùÿêíÿ¦©Ìeh‹Š°Š°}€£…ˆ«‰Œ¯‚…¨z} y|Ÿ‚…¨Š®Š®Ž‘°…ˆ§„£†‰¨”—¶Ÿ¢ÁŽ‘°]`dg†‡Š©«®Í ¿¯}€ŸEHgONm¢¡ÀÚÚö±±Ízz”mm‡ttŒ‡‡ŸŒ¢‘’¦–—«‰Šœnpcetjl{oq~ecpdbmb`ka_j`^i`^ia_ja_jVT_US^RP[PNYLJUJHSGEPFDOMKVMKVMKVNLWOMXPNYPNYQOZVT_WU`YWbZXcYWbXVaVT_US^=;F?=HCALGEPJHSLJUMKVNLWSQ\TR]TR]US^VT_WU`WU`WU``^iecnmkvsq|rp{nlwomxtr}kitmkvpnytr}xv|z…}ˆ€~‰†„’…ƒ‘„‚ƒ„‚…ƒ‘‡…“‰‡•ƒ‚€Ž}‹zx†wuƒxv„|zˆŒ€~‹|z…xvwu€|z…‡…“‘œ›™¤’›‹–ŒŠ•Šˆ“™—¢žœ§†„{y„jhsfdoa_jmkv˜¡Ÿª‚€‹RP[ƒŒ†„ˆ†‘‡…„‚‚€‹„‚‡…zxƒzxƒyw‚yw‚zxƒzxƒ{y„{y„}{†}{†{y„zxƒxvvtus~ts{~„€„€…‚†€„~}‚{zyx}jinfejcbgbafbafediihmmlqgbhfagidjb]cPKQHCIJEKGBHJEKE@F@;A<7=:5;8393.4.,1-+0,+0,+0,+0,+0,+0,+0,+0*).*).*).*).*).*).*).*).-,1-,1-,1-,1-,1-,1-,1-,1/.3/.3/.3/.3/.3/.3/.3//1,,.------................../////////......------,,,,,,,,,,,,,,,,,,,,,,,,......//////////////////)(-,+0/.3.-2,+0*).,+0/.321654976;76;54954987<:9>MLQXW\dchgfk`_d[Z_`_dihmwv{}|yx}onsonsutylkpZY^RQVXW\`_dfejhgledi]\aWV[RQVQPUPOTNMRLKPJINHGLGFL;:B:8C86A64?42=20;1/:0.931<42=42=53>64?75@75@66@CCMADMBENDGPFIRGJSHKTILUPS\OR[QT]QT]HKT7:C(+4!%.#,&.$+3*1918@7>FEMOV^V]e[bj^emahpeltdks`gobhtbhtbhtbhtbhtagsagsags]co]co\bn\bn[amZ`lZ`lY_kUWdTVcRTaOQ^LN[JLYGIVFHUEGTFHUGIVHJWIKXJLYJLYJLXMPYMPYMPYNQZPS\SV_VYbX[dadmadmadmadmadmadmadmadm^`m^`m]_l]_l]_l]_l]_l\^kWYfWYfWYfWYfWYfWYfWYfWYfSUbSUbRTaQS`PR_PR_OQ^OQ^IKXIKXIKXIKXIKXIKXIKXHLXEIUCIUCIUCIUCIUCIUCIUCIUJP\JP\JP\JP\HNZEKWBHT@FR?AN?AN=?L<>K:36?36?47@37@6:F4:F5;G6J8>J@FRAGSBHTCIUEKWGMYHNZHNZKQaKQaLRbNTdOUePVfQWgRXhTZjTZjTZjU[kU[kU[kV\lU\lS\kQ]kQ]kQ]kQ]kQ]kQ]kQ]kNZhNZhMYgLXfLXfKWeJVdJVdLWiLWiLWiLWiLWiLWiLWiLWiNYkNYkNYkNYkNYkNYkNYkNYk^_tEF[?@U]^s|}’xyŽ^_tMNcIJ_LMbJK`FG\NOdabwqr‡vvŽppŠoo‹oo‹tt{{—„„ „„ ‰‰¥‰‰¥xx”nnŠeeEEa>>Zab€››Á±³Ú´¶Ý†ˆ¯WY€02YQSzŒŽµÖØÿÐÒù«­Ô˜šÁ•—¾ ¢É¨ªÑÅÇî³°Ûª§Òž›Æ“»‰‡¯}{£mk’b`…geŠmlŽmlŒnmqpml‹hg†ij‰ŽŽ°ª­Ðµ¸Û¤§Ê™œ¿ Ã—š½ˆ‹®twšmp“wz†‰¬‘”·’µru˜beˆ£¦Éïòÿòõÿèëÿ§ªÍru˜“¶„‡ªx{ž‡Š­³ƒ†©x{žy|Ÿƒ†©‰Œ­‹Ž¯’±‹Ž­‹Ž­‰Œ«”—¶¤§Æš¼or‘Y\{„££¦Åž¡À›ž½y|›ILk>=\•”³ÙÙõ¿¿Û‡‡¡ll†kkƒ™‘¦’“§“”¨ƒ„–fhw\^mhjysu‚fdqecnb`k`^i_]h`^ia_jb`k[YdZXcWU`TR]PNYMKVJHSIGRJHSKITKITLJUMKVMKVNLWNLWSQ\TR]VT_WU`WU`VT_US^TR]DBMDBMECNGEPJHSNLWRP[TR]ZXcZXc[Yd[Yd\Ze][f][f^\gcaljhswu€‚€‹‚€‹}{†}ˆ†„~|‡}ˆŠ„‚‡…‰‡’‹‰”ŒŠ•ƒ‚€Ž€~Œ~|Š~|Š}‹€~Œzx†{y‡xv„om{geshfttr€}Šxvƒrp{kitigrqozŠ“‘œŸ¨¯­¸¯­¸—• ‹‰”‡…~|‡yw‚pnyzxƒomxfdoomx‹‰”›™¤‡…gep„‚…ƒŽ‡…‡……ƒŽ…ƒŽ‡…ˆ†‘ŠŠ‚€‹‚€‹‚€‹Š€~‰€~‰‚€‹Š€~‰~|‡|z…{y„yw‚yx€~„~ƒ€„€„€„~}‚}||{€nmrlkphglcbgcbgfejihmkjoe`fe`fhcifag]X^YTZ[V\ZU[SNTRMSQLRQLROJPIDJ@;A75:2050/4/.3.-2-,1,+0+*/*).*).*).*).*).*).*).*).*).-,1-,1-,1-,1-,1-,1-,1-,1.-2.-2.-2.-2.-2.-2.-2..0++-+++,,,,,,...///111111000///...,,,+++*********------------------------000000000000////////////-,1.-2/.3.-2,+0+*/-,1.-2,+0/.31051050/4/.3216438<;@DCHPOTSRWGFKDCH_^cƒ‚‡“’—Ž’~ƒnmronswv{lkpXW\VUZYX]`_dfejgfk`_dWV[QPUPOTONSMLQKJOIHMGFKFEJEDJ=FEMNU]U\d[bj]dl`godkscjr_fn`fr`fr`fr`fr`fragsagsagsbhtagsags`fr_eq^dp^dp]co]_k\^jY[gWYeTVbQS_OQ]NP\KMYKMYKMYKMYLNZMO[NP\NP\ILUILUHKTILUJMVMPYPS\RU^\_h\_h\_h\_h\_h\_h\_h\_h]_l]_l]_l^`m^`m^`m^`m^`mVXeVXeVXeVXeVXeVXeVXeVXeRTaRTaQS`PR_PR_OQ^NP]NP]HJWHJWHJWHJWHJWHJWHJWGKWDHTBHTBHTBHTBHTBHTBHTBHTIO[IO[JP\IO[GMYDJVAGS?EQ?AN?AN=?L<>K:.0=-/;*,8*-6*-6*-6*-6*-6*-6*-6,/8,/8-09.1:.1:/2;03I@>I@>I?=HA?JA?JB@KB@KCALDBMECNDDNFFPDGPEHQGJSILUJMVKNWLOXOR[NQZPS\PS\GJS69B'*3 $-#,&.$+3*1918@7>FEMLS[SZbY`h[bj^embiqahp]dl]co^dp^dp_eq_eq`fr`fragsbhtbhtags`fr_eq_eq^dp^dp_am^`l]_k\^jZ\hXZfWYeVXdRT`QS_PR^OQ]OQ]PR^RT`SUaILUHKTFIRFIRFIRHKTJMVLOXTW`TW`TW`TW`TW`TW`TW`TW`XZgXZgY[hY[hZ\i[]j[]j[]jSUbSUbSUbSUbSUbSUbSUbSUbPR_PR_OQ^OQ^NP]MO\LN[LN[GIVGIVGIVGIVGIVGIVGIVFJVCGSAGSAGSAGSAGSAGSAGSAGSDJVEKWFLXFLXDJVBHT?EQ>DP?AN?AN=?L<>K:-/<,.;,.:)+7),5),5),5),5),5),5),5),5*-6*-6+.7,/8,/8-09,09,0<*0<+1=,2>,2>-3?.4@.4@39E4:F5;G7=I8>J:@L;AMDT@FVBHXDJZGM]HN^IO_SYiTZjU[kW]mY_o[aq]cs\csV_nT`nT`nT`nT`nT`nT`nT`nNZhNZhMYgLXfLXfKWeJVdJVdLWiLWiLWiLWiLWiLWiLWiLWiNYkNYkNYkNYkNYkNYkNYkNYkcdyYZoHI^DEZRShVWlRShRShKLaKLaLMbPQfTUj[\qhi~ss‹rrŒqqssww“~~š‚‚žƒƒŸ‚‚ž||˜ttrrŽuu‘eeFFbLLhtu“‡‡­¤¦Í»½äŠŒ³BDk&(Oik’¯±ØÜÞÿÀÂ霞Ŕ–½¶–˜¿Ÿ¡È³µÜ¬©Ô¥¢Í›˜Ã“»ŒŠ²‚€¨usškiŽ_]‚gfˆji‰ji‰nmŒml‹lkŠqr‘––¸´·ÚÅÈ뼿⮱ԟ¢Å’µ‰Œ¯…ˆ«|¢qt—‚¥Š°„‡ª]`ƒ_b…ÇÊíô÷ÿòõÿîñÿ­°Ó„‡ª“¶Š°ƒ†©Š°…ˆ«ux›twš‚…¨Š°…ˆ©’³–™¸™œ»–™¸‹Ž­š¼º½Ü·ºÙ‰Œ«RUtil‹¯Ž‘°“–µ}€ŸVYxMLkŒ«ÇÇ㺺֊Š¤hh‚bbz{{“’“¨¤Ž¢z{XZiHJYUWfegt`^k][fYWbVT_US^WU`ZXc\Ze_]h][fZXcVT_RP[NLWKITIGRHFQIGRIGRJHSKITKITLJULJUOMXPNYSQ\US^VT_US^US^TR]PNYQOZSQ\VT_YWb\Ze_]ha_j^\g^\g^\g_]h`^ia_ja_jb`khfqigrpnyxvxvwu€…ƒŽ˜–¡‰‡’Šˆ“‹‰”‹–ŽŒ—Ž™‘š’›„‚‚€Ž}‹|zˆzx†yw…zx†zx†wuƒyw…yw…tr€om{pn|yw…‚€~|‰}{†{y„yw‚xvxvxvxv‡…˜‡…~|‡~|‡}ˆƒŒˆ†‘~|‡}ˆŠŠ}ˆ}{†€~‰…ƒŽ‡…‡…ˆ†‘‰‡’‹‰”ŒŠ•‹–‹–‰‡’Šˆ“ŒŠ•ŒŠ•‹‰”‰‡’†„…ƒŽ€~‰}ˆ}ˆ}ˆ~|‡~|‡~|‡~}…~}ƒ~}‚~}‚~}‚~}‚~ƒ~ƒ~ƒwv{zy~yx}utyutyyx}yx}vuzupvsntpkqpkqrmstouupvwrxsnttouwrxytzytzsntidj`^cECHBAF?>C:9>5490/4-,1+*/-,1-,1-,1-,1-,1-,1-,1-,10/40/40/40/40/40/40/40/4216216216216216216216224113111111222555999===???DDDBBB>>>:::777666666666111111111111111111111111444333333222111000//////4382160/4-,1-,1-,1.-2/.321643865:65:54954976;98=76;:9>=CEDI?>C?>C@?DA@EBAFCBGCBGDCICBJCALCALCALDBMDBMDBMDBMECNFDOFDOGEPHFQIGRIGRHHRGGQFIRGJSHKTJMVKNWMPYMPYMPYLOXNQZOR[FIR47@&)2#,#,&.$+3*1918@7>FEMJQYQX`V]eY`h\ck`go_fn[bj]co]co^dp_eq`fragsbhtbht`fr`fr_eq^dp]co]co\bn\bn\^j\_h\_h\_h]`i]`i]`i]`iTW`SV_QT]OR[OR[PS\RU^SV_JMVHKTFIREHQDGPEHQFIRGJSLOXLOXLOXLOXLOXLOXLOXLOXPR_PR_QS`QS`RTaSUbTVcTVcPR_PR_PR_PR_PR_PR_PR_PR_NP]NP]MO\LN[LN[KMZJLYJLYGIVGIVGIVGIVGIVGIVGIVFJVCGSAGSAGSAGSAGSAGSAGSAGS>DP?EQ@FRAGSAGS?EQ>DPK:/5A/5A17C28D4:F5;G6DT@FVCIYEK[FL\OUePVfRXhU[kX^nZ`p\br\csXapVbpVbpVbpVbpVbpVbpVbpNZhNZhMYgLXfLXfKWeJVdJVdLWiLWiLWiLWiLWiLWiLWiLWiNYkNYkNYkNYkNYkNYkNYkNYk\]r\]rOPeDEZJK`NOdKLaNOdKLaIJ_LMbSTiWXmZ[pef{ss‹rrŒrrŽssxx”~~š‚‚žƒƒŸ‚‚žxx”mm‰ppŒww“eeGGcSSoz{™ƒƒ©¥§ÎÁÃꊌ³<>e,.U|~¥ÀÂéÚÜÿ¼¾åœžÅ•—¾‡‰°Ž·œžÅ°²Ù©¦Ñ¢ŸÊ™–Á“»‹³„‚ªxvom’`^ƒhg‰ji‰ihˆlkŠjiˆjiˆpq——¹¸»ÞÍÐóÈËᤧʏ’µ‡Š­„‡ªvyœmp“‚¥…ˆ«‚…¨_b…ad‡ÏÒõô÷ÿöùÿòõÿ®±Ô…ˆ«³“¶‰Œ¯‹Ž±€ƒ¦or•ru˜†‰¬³ƒ†§ˆ‹¬•˜·Ÿ¢Á ¿“²Ÿ¢Á½Àß·ºÙƒ†¥X[zil‹¯‚…¤‚¡„£cf…SRqˆ‡¦»»×°°Ìˆˆ¢jj„ggƒƒ›‘’§¤Ž£|}WYhDFUNP_]_l][hZXcUS^RP[QOZSQ\VT_YWb^\g\ZeYWbUS^PNYLJUIGRGEPIGRJHSJHSKITLJULJUMKVMKVOMXQOZSQ\VT_WU`WU`VT_US^RP[US^YWb^\ga_jb`kcalcal[Yd[Yd\Ze][f^\g^\g_]h_]hnlwjhsljupnyomxpny„‚œš¥ƒŒ„‚†„ˆ†‘Šˆ“ŒŠ•ŽŒ—˜ˆ†”†„’ƒ€~Œ}{‰|zˆ|zˆ}{‰~|Š~|Š~|Š~|Š~|Š€~Œ‚€Ž„‚zx…{y„|z…~|‡}ˆ}ˆ}ˆ}ˆyw‚}{†‡…}ˆ†„Ž™‡…Ž™˜†„}{†}{†…ƒŽŠˆ“‰‡’†„ŽŒ—‹–ŒŠ•‹‰”ŒŠ•‹‰”Šˆ“‰‡’ˆ†‘‰‡’‹‰”‹‰”Šˆ“ˆ†‘…ƒŽ‚€‹{y„{y„{y„{y„|z…|z…|z…|{ƒ~}ƒ~}‚~}‚~}‚~}‚~ƒ€„€„yx}~}‚€„|{€}|‚†‚†~}‚€{|‚z€z€‚}ƒ|‚}x~|w}{v|{v||w}}x~~yzu{rmsjhmQOTNMRJINDCH>=B87<438105.-2.-2.-2.-2.-2.-2.-2.-2105105105105105105105105438438438438438438438446446444444555888===AAADDDDDDAAA===99955544444455511111111111111111111111188888877766655533333322298=65:2160/40/410510521643876;98=98=76;76;:9><;@;:?FEJQPU\[`onsyx}ediFEJ\[`QPUQPU]\a^]bQPUIHMLKPBAFA@ECBGBAF:9>32765:@?D87<98=:9><;@>=B@?DBAFCBHBAIB@KCALCALDBMECNECNECNGEPGEPHFQIGRIGRJHSKITJJTGGQFIRGJSILUJMVLOXMPYNQZLOXKNWMPYNQZDGP36?$'0!*#,&.$+3*1918@7>FEMIPXOV^U\dW^fZai^em^emY`h^dp^dp_eq`fragsciuciudjv^dp^dp]co\bn\bn[amZ`lZakY\eY\eZ]f\_h]`i^aj_bk`clTW`RU^PS\NQZMPYOR[QT]RU^KNWILUGJSDGPCFOCFOCFODGPGJSGJSGJSGJSGJSGJSGJSGJSIKXIKXJLYKMZLN[MO\NP]OQ^NP]NP]NP]NP]NP]NP]NP]NP]MO\LN[LN[KMZJLYIKXIKXHJWFHUFHUFHUFHUFHUFHUFHUEIUBFR@FR@FR@FR@FR@FR@FR@FR:@L;AM=CO>DP?EQ>DPK:-/<,.;*,9)+7)+7),5),5),5),5),5),5),5'*3(+4(+4),5*-6+.7+.7+/8(,8'-9'-9(.:)/;*0<*0<*0<,2>-3?.4@06B17C39E4:F5;G6DTAGWCIYDJZLRbNTdPVfSYiV\lY_o[aq[brXapVbpVbpVbpVbpVbpVbpVbpNZhNZhMYgLXfLXfKWeJVdJVdLWiLWiLWiLWiLWiLWiLWiLWiNYkNYkNYkNYkNYkNYkNYkNYklm‚jk€fg|[\qLMbCDYEF[LMbDEZDEZKLaWXmdezklop…rrŠzz”zz–yy•ww“xx”›‰‰¥¬ppŒff‚bb~dd€__{YYuccuv”ŽŽ´ÃÅ춸߁ƒªCEl.0Woq˜©«ÒÝßÿÇÉð ¢É‹´{}¤‡‰°‘¸šœÃš—˜•À”‘¼’ºŽŒ´‡…­}{¢vt™mklkihˆkjŠhg†XWv^]||}œžžÀ³¶ÙÄÇêÍÐóÓÖùº½à€ƒ¦NQtX[~kn‘ux›x{ž„§~¤ru˜mp“ÍÐóóöÿùüÿîñÿÉÌµ„§–™¼Œ²›žÁz} HKnad‡³Œ²‰Œ­™œ½›ž½¥¨Ç—š¹wz™„£°³ÒÎÑð…ˆ§X[zadƒ…ˆ§€ƒ¢ru”qt“il‹gf……„£®®Ê¹zz”vvww||”Ž£ˆ‰Ž¢{|Ž[]l>@OKM\PR_KIVLJUNLWQOZTR]WU`YWbZXcOMXNLWMKVLJUKITKITKITKITMKVMKVNLWNLWOMXPNYPNYQOZZXcWU`US^VT_YWbZXcXVaUS^b`kdbmfdogepecna_j\ZeYWbTR]a_ja_j[Yd_]hdbmgepljuomxnlwmkvigrcala_jkitxvsq|rp{pnynlwpnyxv„‚‹–~|Š{y‡xv„ustr€vt‚yw…{y‡yw…zx†{y‡}{‰}‹€~Œ‚€Œ}ˆ~|‡€~‰ƒŒ…ƒŽ„‚‚€‹Štr}qoz}{†…ƒŽ‚€‹Š…ƒŽ˜‹‰”‡…ƒŒƒŒ†„‹‰”ŽŒ—‡…ƒŒ}ˆ{y„zxƒ|z…€~‰ƒŒ‰‡’…ƒŽƒŒ‡…ŒŠ•ŒŠ•‰‡’ˆ†‘~|‡~|‡yw‚sq|tr}vtwu€yx€zy|{€}|~}‚~}‚~ƒ€„‚†€„~ƒ~ƒ‚†„ƒˆ„ƒˆ„ƒˆ…„‰}x~|‚†‡ˆƒ‰‡‚ˆˆƒ‰‹†ŒŽ‰’“‰„Š~yytzzu{~y|‚€~ƒsqvrqvZY^JINRQVLKP@?DIHMDCH=98==:9>=>>>>>===?>CCBGEDI?>C87<87<:9>87C>=B;:?:9>;:?>=B@?D;:?98=76;65:76;;:??>CBAG;:B:8C@>IDBMB@KCALECN@>I@>I?=H?=H>@M<>K:/1=/2;/2;/2;/2;/2;/2;/2;/2;/2;/2;/2;/2;/2;/2;.2;.2>,2>,2>,2>,2>,2>,2>,2>/5A/5A/5A/5A/5A/5A/5A/5A28H28H39I39I4:J4:J5;K5;K9?O:@P>DTCIYHN^LRbPVfQXhV_nT`nT`nT`nT`nT`nT`nT`nLXfLXfLXfLXfLXfLXfLXfLXfQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nP[mP[mP[mP[mP[mP[mP[mP[mjk€mnƒmnƒbcxNOd@AVBCXLMbBCXDEZLMbYZoef{klpq†uuzz”zz–yy•xx”yy•›ˆˆ¤«qqggƒ]]yXXtSSoTTpccuv”µ¼¾å¯±Ø¨EGn,.UfhŸ¡ÈáãÿËÍô¤¦ÍŽ·}¦‡‰°‘¸šœÃš——”¿“»‘Ž¹µˆ†®~|£vt™kiŽihŠji‰lk‹dc‚XWvdc‚€Ÿ¡¡Ã­°Óµ¸Û¾ÁäËÎñ¹¼ß‚¥JMpRUxdgŠps–vyœ€ƒ¦€ƒ¦x{žvyœ½ÀãçêÿöùÿëîÿÅÈ뗚½Ž‘´šÀ“–¹šÀux›CFiZ]€ˆ‹®³’³›ž¿¡¤Ã£¦Å˜›º†‰¨}€Ÿ—š¹¾Áà„‡¦Z]|]`}€Ÿ~ ux—ru”hkŠih‡ˆ‡¦««Ç••±ppŠppŠ||”‹‹£•–«Š‹ŸŒ¡wxŠWYh;=LFHWKMZMKXNLWOMXQOZTR]VT_WU`XVaPNYOMXNLWNLWMKVLJULJULJUNLWNLWOMXOMXPNYQOZQOZRP[WU`TR]RP[TR]VT_WU`US^SQ\^\ga_jecnecncal_]h\ZeZXc][fgepgepb`kdbmhfqpnyzxƒmkvljukithfqa_j^\gecnpnypnypnyomxmkvljupnyxv~|‡}‹{y‡vt‚qo}nlzmkyom{pn|wuƒxv„zx†|zˆ~|Š€~Œ‚€}Š}{†{y„}{†€~‰Š€~‰~|‡zxƒrp{qozzxƒ€~‰}ˆ~|‡Š‡…„‚€~‰~|‡}ˆƒŒ‰‡’ŒŠ•ˆ†‘„‚}{†xvvtwu€{y„}{†xvxvzxƒ{y„{y„}{†}{†yw‚xvxvvtrp{ljukitrp{{z‚yx~zy~{z{z|{€}|~}‚~}‚}|€……„‰…„‰€„{zzy~|{€}x~€{…€†‰„ŠŠ…‹Š…‹‹†Œ‹†ŒŠ‰„Š|‚~y€{„…†‡…ƒˆ‘”Œ‘}|vuz}|vuzgfkdchdch]\aYX]YX]]\ahglihm\[`SRWTSXLKPFEJJINJINKJORQVIHMHGLEDI@?D:9>549327224557<<<>>>???EEEIIIEEEAAAGGGBBB@@@BBB@@@@@@CCCEEEKKK;;;777AAAKKKXXXbbbccceeeQQQCCCHHHRRRTTTQQQOOOPOTXW\]\aUTYLKPKJOONSQPUMLQZY^_^cvuz~}‚edi`_donslkpfejcbgmlqxw|rqva`eYX]UTY\[`a`e_^cWV[POTMLQNMRCBGA@E>=B<;@;:?=C=CCBGHGLKJP<;C:8CA?JIGRHFQHFQJHSGEPECNECNDBMCALCALB@KA?J@@J??I=@I=@I=@I=@I=@I=@I=@I7:C69B36?03<,/8),5&)2$(1'+4'.6*19.5=29A7>F:AI;BJLS[LS[NU]OV^QX`RYaT[cT[cY_kY_kZ`lZ`l[am\bn]co]co[am[am[am[am[am[am[am[blX[dVY`X[b^ahehofip`cjZ]dNQXMPWLOVKNUJMTKNULOVLOVMPYNQZNQZNQZNQZNQZNQZMPYHKTHKTGJSGJSFIREHQDGPDGP\^kY[hSUbNP]IKXFHUDFSCERCERCERCERCERDFSDFSDFSDFSCERCERCERCERCERCERCERCERGIVGIVFHUEGTDFSDFSCERBFRCGSAGSAGSAGSAGSAGSAGSAGS>DP>DP>DP>DP>DP>DP>DP>DPBDQACP@BO>@M=?L;=J:,2>,2>,2>,2>,2>,2>,2>.4@.4@.4@.4@.4@.4@.4@.4@06F17G28H39I4:J5;K6S>?TIJ_>?TABWKLa[\qef{jk€pq†xxzz”zz–zz–yy•yy•›‡‡£ŽŽªuu‘jj†XXtGGcAA]LLhccuv”——½´¶Ý¤¦Í~€§JLs-/V\^…”–½âäÿÎÐ÷¨ªÑ’”»¨ˆŠ±Ž·™›Âš—•’½¸¸Ž¶‹‰±€~¥vt™hf‹dc…ihˆkjŠ_^}[Zyon…†¥¢¢Ä¥¨Ë¤§Ê®±ÔÄÇ깼߂¥GJmDGjX[~jmwz„§„‡ª„§‚…¨¥¨ËÏÒõèëÿãæÿ½À㛞Á›žÁŸ¢Å›žÁ–™¼nq”@CfSVy„§³•˜¹ Á¨«Ê¡¤Ãš¼•˜·{~{~¦©È„‡¦\_~VYxps’z}œy|›sv•gj‰poŽŽ­¦¦Â……¡__yff€‡‡Ÿ¤¤¼œ²ˆ‰ˆ‰tu‡VXg<>MEGVIKXRP]RP[SQ\TR]US^VT_WU`WU`QOZQOZQOZQOZPNYOMXNLWMKVNLWNLWOMXOMXPNYQOZRP[RP[RP[QOZOMXPNYRP[SQ\QOZPNYXVa^\gcaldbm`^i\Ze[Yd\ZecaljhsjhsfdogepigrvtŠˆ“omxmkvljujhsdbm_]hb`kigrkitljukitigrgephfqljupnyyw…usom{jhvfdrecqecqfdrrp~squsxv„{y‡}{‰}‹€~‹{y†yw‚wu€wu€yw‚zxƒxvvtqozpnyrp{vtyw‚{y„{y„|z…ƒŒ€~‰}{†{y„}{†‚€‹‰‡’‹–ŒŠ•‡…€~‰yw‚us~us~wu€yw‚~|‡zxƒ{y„xvvtŠ‡…}{†yw‚qozmkvnlwjhsgepomxyx€wv|wv{wv{xw|yx}zy~zy~zy~„ƒˆŒ‹“’—”‡†‹€„~ƒ€…z€|‚†‡Œ‡‹‘‹‘ˆŽ‰„ŠŒ‡‰„Š‡‚ˆ‡‚ˆ‰„ŠŒ‡Œ‡ŠˆŒŠ†…Š‚††…ŠŒ‘Œ‘„ƒˆ|{€‚†xw|tsxuty|{€‰ˆŽ’†…Šqpuqpukjofejgfkfejediihm[Z_\[`[Z_TSXJINCBGA@EBBDEEGOOOPPPSSSbbbhhhbbbaaa]]]PPPRRRUUUPPPWWWkkkuuuYYYJJJIIIYYYkkk’’’———œœœvvvWWWWWWccceeecccbbbtsx~}‚~ƒtsxhgldchedihgl`_dfejhglƒ‚‡Ž’vuzpot{zutydch^]bcbgedifejbafXW\QPUVUZZY^XW\RQVMLQMLQNMRJINGFKCBGA@EA@EDCHHGLJINKJOJINIHMIHMLKPQPUVUZZY_A@H=;FFDOSQ\SQ\QOZSQ\SQ\MKVMKVMKVLJUKITJHSJHSHHR??I=@I=@I=@I=@I=@I=@I=@I;>G:=F8;D58A25>/2;-09+/804=/6>29A5@M<>K;=J:,2>,2>,2>,2>,2>,2>,2>-3?-3?-3?-3?-3?-3?-3?-3?.4D/5E17G28H5;K6N9?O5;K7=M:@P?EUDJZHN^LRbMTdS\kQ]kQ]kQ]kQ]kQ]kQ]kQ]kNZhNZhNZhNZhNZhNZhNZhNZhP[mP[mP[mP[mP[mP[mP[mP[mOZlOZlOZlOZlOZlOZlOZlOZlop…rsˆuv‹op…XYn@AV:;PABW78M:;PGH]YZodezhi~op…yy‘zz”{{—{{—zz–zz–~~š††¢ŒŒ¨{{—nnŠSSo66R00LDD`ccwx–¦¦Ì²´ÛŸÆ¨UW~68_Y[‚¶ÙÛÿÉËò§©Ð”–½ƒª‰‹²Ž·˜šÁš—“»ŠµŽ‹¶’¸ŽŒ´‚€§vt™ecˆ^]dcƒfe…\[zba€|{šŒ¬  ÂŸ¢ÅœŸÂ¨«ÎÃÆ鼿⁄§HKn14WILofiŒ|¢‡Š­‰Œ¯‰Œ¯Š°“–¹´·ÚÔ×úÚÝÿ´·Ú—š½¡¤Ç§ªÍŸ¢Å“¶kn‘DGjRUxz} ‹Ž±˜›¼Ÿ¢Ãª­Ì¡¤ÃœŸ¾›ž½‚¡sv•’±‚…¤_bMPo^a€ux—~ ux—eh‡yx—˜—¶žžºppŒJJd``z——¯ÂÂښ›°~“„…™vw‰^`oIKZNP_NP]ZXeZXcZXcZXcZXcZXcZXcZXcSQ\TR]US^US^TR]RP[PNYOMXLJULJUMKVMKVNLWOMXOMXPNYNLWNLWMKVNLWNLWOMXNLWNLWTR]ZXca_jcal`^i][f][f_]hdbmhfqgepdbmcaldbmvt‘šus~qozomxnlwigrcalcalfdogepgepfdodbmcalecnkitpnypn|mkyhftcao`^l`^la_mcaokiwljxnlzqo}tr€wuƒyw…zx…vttr}qozqozsq|rp{pnymkvkitpnysq|tr}vtyw‚zxƒyw‚…ƒŽ‚€‹~|‡|z…}{†‚€‹ˆ†‘ŒŠ•†„ƒŒ~|‡zxƒxvyw‚|z…~|‡}ˆ|z…}ˆ~|‡}ˆ‘š–”Ÿ„‚„‚nlwecnmkvpnypnysq|vu}wv|utytsxutywv{xw|wv{uty~ƒ†…ŠŠ‰Žˆ‡Œ…„‰…„‰†…Š†…Šƒ~„…€†Š…‹‘Œ’—’˜—’˜‘Œ’‹†Œ‹†ŒŒ‡ˆŽŠ‹‘ŠŽ‰Šˆ‹‰Žƒ‚‡„ƒˆ…„‰„ƒˆŒ‘—–›—–›Ÿž£”…„‰ƒ‚‡‡†‹“’—›šŸ—–›Ž’””Ž“Œ‘‡†‹‚†€„potpotonskjofeja`e^]b\\^\\^fffdddfffxxx~~~xxxxxxwwwooo}}}………vvv~~~¤¤¤¼¼¼•••rrrtttzzz………ŒŒŒ‘‘‘€€€tttyyy€€€|||rrrkkkihmpotonsihmihmihmhglihmnmrnmrdchonszy~onslkpnmrmlqa`eYX]ZY^`_ddchbaf^]bQPUTSXUTYRQVLKPHGLHGLIHMPOTMLQIHMHGLJINMLQPOTQPUSRWRQVRQVSRWVUZ\[`a`eedjHGOB@KLJUZXc[YdYWb\Ze^\gUS^US^US^TR]SQ\RP[RP[PPZCCMADMADMADMADMADMADMADMEHQDGPBENADM>AJG9=F9=F8?G:AI@M=?L<>K:,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>-3C.4D06F28H5;K7=M9?O:@P39I5;K8>N=CSBHXGM]JP`KRbPYhNZhNZhNZhNZhNZhNZhNZhNZhNZhNZhNZhNZhNZhNZhNZhOZlOZlOZlOZlOZlOZlOZlOZlNYkNYkNYkNYkNYkNYkNYkNYkuv‹qr‡qr‡op…^_tDEZ78M9:O12G23H@AVWXmdezgh}no„xxzz”||˜||˜{{—{{—~~š„„ ‰‰¥ƒƒŸssQQm--I&&B@@\eez{™³³Ù±³Ú™›Â‚„«ceŒEGnZ\ƒ‡‰°ÂÄë·¹àž Ç‘“ºƒª‰‹²Ž·—™À™–Á¸‰†±Œ‰´“‘¹’¸„‚©wušdb‡ZY{[Zz]\|\[zml‹ˆ‡¦’“²™™»›žÁ›žÁª­ÐÇÊíÀÃ慈«KNq!D:=`dgŠ„‡ªŽ‘´Ž‘´Ž‘´Ž‘´“¶¥¨ËÄÇêÓÖù¯²Õ’µ¢¥È³¶ÙœŸÂ‰Œ¯nq”PSvUX{ux›ˆ‹®˜›¼Ÿ¢Ã¦©È¤§Æ¡¤ÃœŸ¾Š¬~ ‚…¤„£cf…CFeJMlps’„‡¦vy˜cf…€Ÿ£¢Á——³\\x;;Uaa{««ÃÙÙñ‘’§op„~“{|Žkm|\^m\^mY[hb`mb`kb`ka_ja_j`^i`^i`^iVT_WU`XVaYWbXVaVT_SQ\RP[IGRJHSJHSKITLJUMKVMKVMKVMKVMKVNLWMKVMKVMKVMKVNLWSQ\YWb`^icalcala_jb`kcalgepigrfdob`ka_jdbmwu€“‘œxvrp{mkvmkvjhsecnb`kcalecndbmb`ka_jb`kigrtr}|z…nlzkiwfdra_m_]k^\j`^la_mecqfdrhftjhvmkyom{qo}rp}qo|nlwljuljumkvmkvjhshfqigrnlwsq|tr}vtxvxvwu€ƒŒ€~‰{y„xvxv{y„€~‰„‚|z…{y„yw‚xvwu€wu€wu€xv|z…Šˆ“žœ§©§²´²½ÎÌ×àÞéÜÚ則’rp{ljuus~wu€wu€{y„|{ƒyx~vuztsxutywv{xw|vuzsrwzy~|{€|{€|{€…„‰”“’—Ž“…€††‡‹†Œ“Ž”™”š˜“™’“Œ‡Š…‹ˆŽ‹‘’“‘Œ’Ž‰‹†Œ‡…Š‹‰Ž„ƒˆ‡†‹„ƒˆ}|“’—¹¸½ÌËк¹¾£¢§Ž“…„‰‚†ˆ‡ŒŽ’Œ‹Š‰Ž‹ŠŽ’Ž“Œ‘‹Šˆ‡Œ…„‰}|yx}wv{yx}~}‚~}‚xw|qqsssuyyytttqqq{{{||||||–––£££ŽŽŽŒŒŒ®®®ÊÊʬ¬¬“““‡‡‡ŠŠŠ†††………‘‘‘–––ƒƒƒyyypppgggutywv{mlqjinutyxw|onsjinsrwvuzedibaflkptsxxw|nmrpotnmr[Z_RQV_^ca`e[Z_`_dPOTPOTONSLKPHGLFEJGFKHGLPOTLKPJINKJOONSRQVRQVQPUSRWRQVQPURQVVUZ[Z_a`eedjLKSGEPNLWYWbYWbZXc_]h`^iZXcZXcZXcYWbXVaWU`WU`UU_IISGJSGJSGJSGJSGJSGJSGJSKNWJMVILUHKTGJSFIREHQDHQ@DM?FN@GOBIQDKSFMUGNVHOWLS[LS[NU]OV^QX`RYaT[cT[cW]iW]iW]iX^jY_kZ`lZ`l[am[am[am[am[am[am[am[am[bl_bg]adZ^aZ^a[_b\`c[_bZ^aRVYUY\X\_\`c^be^be^be]`eWZaUXaSV_RU^RU^SV_UXaWZcTW`SV_QT]NQZKNWILUGJSFIRMO\MO\MO\MO\LN[KMZJLYJLYGIVFHUFHUEGTDFSCERBDQACPACPACPACPACPACPACPACPACPEGTEGTEGTEGTFHUFHUFHUEIUJNZHNZHNZHNZHNZHNZHNZHNZGMYGMYGMYGMYGMYGMYGMYGMYFHUEGTDFSCERACP?AN>@M>@M;=J:,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>,2>-3C.4D06F28H5;K7=M9?O:@P28H4:J8>N@M@BO@BO@BO@BO@BO@BO@BO@BOBDQBDQCERCERDFSEGTEGTDHTKO[IO[IO[IO[IO[IO[IO[IO[JP\JP\JP\JP\JP\JP\JP\JP\HJWGIVFHUDFSCERACP@BO?AN<>K;=J:,2>,2>,2>,2>,2>,2>,2>-3?-3?-3?-3?-3?-3?-3?-3?.4D/5E17G28H5;K6N9?O39I4:J8>N=CSAGWFL\JP`JQaIRaGSaGSaGSaGSaGSaGSaGSaLXfLXfLXfLXfLXfLXfLXfLXfNYkNYkNYkNYkNYkNYkNYkNYkLWiLWiLWiLWiLWiLWiLWiLWituŠlm‚lm‚mnƒ\]r@AV34I89N34I,-B89NXYnno„rsˆst‰zz’{{•||˜~~š}}™||˜~~š‚‚ž††¢””°}}™VVr33O**FAA]hh„„…£««Ñ ¢É‘“ºˆŠ±~€§acŠSU|fh~€§ƒª}¦ƒ…¬~€§‰‹²¶—™À™–ÁŒ‰´„¬Š‡²–”¼˜–¾ˆ†­wušgeŠXWyCBbEDdgf…Š‰¨—–µ—˜·²Š°†‰¬ ÃÆÉìÅÈ넇ªBEh 3,/Rcf‰Œ²’•¸’µ’•¸“–¹œŸÂª­Ð¶¹Ü¸»Þ–™¼{~¡–™¼¶¹Ü—š½€ƒ¦y|Ÿjm]`ƒjm„‡ªž¡ÂœŸÀž¡Àª­Ì¶¹Ø²µÔ¡¤Ã‘”³‹Ž­‚¡hkŠ36U*-LhkŠŽ‘°y|›`c‚~}œ¯®Í““¯KKg<K;=J?AN?AN?AN?AN?AN?AN?AN?AN?AN?AN@BOACPBDQCERCERCGSJNZHNZHNZHNZHNZHNZHNZHNZMS_MS_MS_MS_MS_MS_MS_MS_IKXHJWGIVEGTDFSBDQACP@BO<>K<>K;=J9;H79F68E57D46B/1=/2;/2;/2;/2;/2;/2;/2;,/8,/8,/8,/8,/8,/8,/8+/8.2>,2>,2>,2>,2>,2>,2>,2>.4@.4@.4@.4@.4@.4@.4@.4@06F17G28H39I4:J5;K6DTCIYGM]KQaLScGP_EQ_EQ_EQ_EQ_EQ_EQ_EQ_IUcIUcIUcIUcIUcIUcIUcIUcMXjMXjMXjMXjMXjMXjMXjMXjLWiLWiLWiLWiLWiLWiLWiLWipq†klmnƒmnƒYZo;]kjŠ‘’±š™¹—˜·±‚…¨x{ž‘”·ÂÅèÅÈ낅¨:=` 3+.Qbeˆ‹Ž±“¶³“–¹–™¼šÀ­°Ó±³Ù§ªÍ†ˆ®qt—µ¬¯Ò—™¿‚¥|~¤ps–^`†gj„†¬¢¥È›ž¿ž¡Àª­Î¾ÁàÁÄ奨Ǐ’³’•´‚£jmŒ03T#&EfiŠ“²y|`c‚xy˜¯°Î”“²KLhBB^†ˆ¡ÏÏéÛÝô’’ªZ\qnoƒsv‡op‚lo€ij|ceteeqgepgephfqigrigrjhsjhsZXc][f`^ib`ka_j^\gYWbVT_PNYPNYQOZRP[SQ\SQ\TR]TR]QOZTR]VT_US^RP[PNYSQ\VT_^\g\Ze_]jhfqtryw‚us€nlwomzus~mkx`^idbopny|z‡‡…}Šqozecpdbmhfsigrhfshfqpn{qozpn{nlwljwmkvrp}wu‚us€sq~om{mkxljxnlyqo}sq~jhvigtiguigthftgergesgercalb`ka_jcalfdohfqgepecngep^\g_]homxwu€pnyjhskita_j^\g[YdYWb[Yd`^ifdojhskitomxtr}us~omxcalUS^LJU?=H^\gus~ŒŠ•¤¢­›™¤ˆ†‘ŒŠ•xvqozzxƒ}ˆvt|z…‚€‹wv~…„Š~ƒ{z|{€€„€…|{€wv{jinrqvrqvjinihmqpuqpujincafhfkojpnlqpkqnlqsnttrwwrx{y~ƒ~„ƒ†„…„„……ƒˆŠ‰ŽŒ‹†…ŠvuzjinqpuŒ‹¦¥ª–•š…„‰~ƒ…„‰†…Š…„‰„ƒˆ~ƒyx}srwwv{yx}utyyx}€„}|…„‰…„‰†…Š‡†‹‡†‹ƒ‚‡|{€wv{||~vvv€€‚€€€vvxŒŒŒ««­®®®€€‚€€€„„†ggiXXX‚‚„ÃÃ訪ŽŽŽ||~{{{{{}{{{uuwjjj€€‚ŠŠŠ••————‘‘“ŒŒŒ‘‘“˜˜šŸž££¢§•”™Ž“ž¢Ÿž£‘•Ž’‡†‹‹Š€„}|‚†‹Š‘•€…{zxw|utyonsjinjincbgTSXWV[QPUJINDCHBAFBAFCBGEDIMLQMLQQPUZY^bafa`eXW\NMRWV[UTYSRWRQVSRWWV[[Z_^]cpowpowlks^]eYX`hgorqyihpYX`XW_XW_WV^VU]UT\UT\TT\MMUKNUKNUKNUKNUKNUKNUKNUGJQGJQHKRHKRILSILSJMTJMTGLRGLRGLRGLRGLRGLRGLRHMSNSYNSYPU[QV\SX^TY_V[aVZcW[dU\fX\gV]gY]hX_i[_jY`j]al[bl]al[bl]al[bl]al]aj_cf\`aVZ[QUVMQRNRSRVWUYZdhidhieijgklkopptuuyzx|^ah[^eWZaUX_UX_WZa[^e^ahLOVLOVNQXQT[SV]UX_WZaX[dWZcWYeVXdTVbOQ]JLXDFRACOCEQCEQACO?AM=?K<>J:BM?AN>BM?AN>BM?AN>BM=?L=AL>@M>BMACPAEPBDQBFQHNZHOYHNZHOYHNZHOYHNZHOYNT`NU_NT`NU_NT`NU_NT`NU_IKXIKWHJWFHTDFSCEQBDQACO=?L<>J;=J9;G8:G68D57D46B/2;/2;/2;/2;/2;/2;/2;/2;+.7+.7+.7+.7+.7+.7+.7*.7.2>,2>,2>,2>,2>,2>,2>,2>/5A/5A/5A/5A/5A/5A/5A/5A18H18H29I29I3:J3:J4;K4;K3:J5SBCXXYnijkllm‚rrŠvsŽyv“~y—~{˜z˜€}š„…‚ŸŽ‰§zw”b]{C@]0+I>;Xfa|›””¶‰Œ¯’”º¡¤Ç›Ã‚…¨_a‡?BeVX~dgŠsu›z} {}£€ƒ¦ŒŽ´˜šÀ’¸§pp–wyŸ††¬‹Ž±ŒŒ°twšnn’DGj%%I>Ab{{“–·““µ”—¸¦©ÌŠ°or•„‡ªž¡Ä§ªÍ}€£VY|@-0SORuru˜‡Š­Ž‘´”—ºšÀœžÄ¢¤Ê¨ªÑ–˜¾mo–bdŠŠŒ³·¹ß§©Ðƒ…«bd‹ce‹tvz|¢…‡®šœÂ¬¯Ò¢¥Æµ¸ÛäçÿÜßÿ¤§ÈŠ°‰Œ­y|Ÿnq’SVyGJkwz±†‰¬ux™‚£«®Í”•´>B_NOmœ »×ØôÔØñ€‚›GLbxz‘†šnp…bgzhk~betccoecnfdofdofdoigrnlwsq|kitjhshfqfdofdohfqjhskit^\g\ZeYWbUS^SQ\RP[RP[RP[KITLJUNLWQOZTR]VT_XVaYWbWUb][hdbpigtkiwkivljxmkxpn|rp}tr€wu‚zx†|z‡}{‰}{ˆxv„|z‡usmkxqo}trrp~qo|`^lgertr€{y†vt‚mkxjhvnlyecpgepkivpnysq~sq|sq~sq|rp}}{†€~‹yw‚trwu€yw„us~YWb][fwu€Š…ƒŽ„‚us~yw‚mkvdbmecnhfqfdoljuqozkit_]hgephfqecnfdodbmgeprp{us~sq|nlwgep`^i^\g`^ib`k`^ifdomkvomxnlwljumkvnlwzxƒmkvjhspnyfdovt‘š{z‚kjpmlqqpusrwrqvonskjohgllkpjinihmjinlkplkpjingfkfej`_dcafgfkiglmlqqotjin`^cpot|zvuzvty{z~|xw|}|‰ˆ‹Š|{€onstsx€„ˆ‡Œ~ƒ„ƒˆ„ƒˆ€…„ƒˆŒ‘”Ž’€„…„‰~}‚zy~ƒ‚‡ƒ‚‡~}‚€…~}‚|{€‡†‹‰ˆ}|zy~~ƒ†…Š”nmrkkmuty~~€~}‚yy{vuz‚†nnpJIN>>@^]b‰‰‹€…vvx~ƒƒƒ‚‡gfkbbd„ƒˆ††ˆŠ‰Ž‘Ÿž£ŽŽtsx”œ› §¦«¥¤©¢¡¦©¨­£¢§”“˜Ž“ZY^]\aihm{z‚†{zrqvonssrwqpunmrjinedia`e^]b\[`VUZUTYSRWPOTMLQJINGFKFEJGFKLKPTSX[Z_]\a[Z_WV[TSXSRWSRWTSXWV[^]bhglrqvxw|±°¶›š }|‚fek`_ehgmutz}|‚]\bXW]QPVONTQPVUTZXW]XY^NOTJMRHKPFINEHMEHMFINGJOCFKCFKDGLEHMFINFINGJOGJOLMRLMRLMRLMRLMRLMRLMRLMRPQVRSXTUZWX]YZ_YZ_YZ_YZ_TW\RW[SV[TY]VY^V[_X[`W\`]`eUZ^ORWLQUQTYTY]TW\QTYHLOJNQLPSKORIMPHLOIMPLPSMQTOSVSWZW[^Y]`Y]`Y]`X\_]`e]`e\_d\_d\_d\_d]`e^afJMRJMRILQILQLOTORWSV[VY^VY^X[`Y\aWZ_QTYLOTILQILQEHMEHMDGLCFKBEJADI@CH@CJ=AJ=DL?CN:AI;?J9@H;?J8?G?CN;BJ;?J8?G:>I:AI?CN>EMGNXDKSELVIPXIPZELTDKUFMUMT^MT\MT^MT\MT^MT\MT^MT\LNZKNWKMYJMVIKWHKTHJVHKT@BN?BK>@L=@I<>J;>G:03<03AJ>AJ69B69B58A47@36?25>25>14=/2;/2;/2;/2;/2;/2;/2;.2;48D28D4:F5;G7=I9?K:@L;AMAGSBHTBHTCIUDJVDJVEKWDLWBKZ@LZ@LZ@LZ@LZ@LZ@LZ@LZI[?J\@K]AL^AL^BM_DOaDOaDOaDOaDOaDOaDOaDOaGRdGRdHSeITfITfJUgKVhKVhrsˆno„klfg|Z[pKLaEF[EF[QRgNOdLMbQRg`avno„qr‡kkƒnj…vq€{™†Ÿ†Ÿƒ~œz˜~y—ƒ~œsnŒ^YwGB`72PGB`jeƒ~¯³œŸÂª­Ð¤§Ê³nq”TWzEHkVY|kn‘x{ž~¤…ˆ«’•¸ž¡Ä›žÁ‰Œ¯or•mp“wz†‰¬³y|ŸX[~:=`/2URUx€ƒ¦’•¸˜›¾¢¥È›žÁ~¤beˆwz”—º¤§Ê„§^a„=@c47ZCFinq”“¶—š½–™¼›žÁœžÅ¦¨Ï¤¦Í’¹oq˜Z\ƒ~€§ÂÄë¿Á脆­OQxUW~{}¤ŒŽµ‰‹²‹³¢¤Êµ¸Û»¾áÅÈë½À㚝Àˆ‹®ˆ‹®‰Œ¯{~¡ux›lo’sv™ps–}€£…ˆ«Š®ª­Î¯MPorv“ÁÅâàäÿÃÇ₆Ÿ\`ysxŽ{€–lq…`eybgzfizjjvljukithfqgepjhspnyus~sq|rp{qozpnypnyqozrp{sq|fdocal^\gXVaTR]PNYNLWNLWNLWOMXPNYQOZRP[SQ\TR]TR]YWe^\jdbpfdrecqcaob`nb`npn|pn|pn|qo}qo}rp~sqsq}{‰usnlzsq{y‡sqiguljxecqgesmkytr€tr€mkyigujhukivljuljunlwpnysq|vtwu€€~‰‘š˜–¡ŒŠ•~|‡}{†ŠƒŒxvpnyvt”’¡Ÿª•“žŽŒ—‹–…ƒŽ~|‡|z…zxƒus~us~us~pnyzxƒ}ˆxvpnytr}xvus~tr}us~tr}pnykitecndbmgepjhsmkvkithfqgephfqjhsjhsigrb`kb`kfdohfq[Yd^\gmkvbaibagbafbafdchfejihmlkpnmrmlqonsutyzy~{zvuzlkpedidch_^ca`ea`e^]bcbglkpmlqihmgfkihmnmronsonsrqvxw|‚†‹Š‰ˆyx}nmrsrw}|‚†zy~{zxw|tsxsrwutyvuztsxrqvyx}xw|potsrwƒ‚‡~ƒjin€…¡ ¥Œ‹wv{wv{onspotrqvutyyx}zy~vuznmrkjomlqpotxw|potlkpkjofejbafjinyx}ˆ‡Œ‡†‹€…‚†}|vuz|{€€„Œ‹“’—Œ‘Ž’’‘–‹Šˆ‡Œ‰ˆ“’—‡†‹†…Š‚†zy~„ƒˆŒ‘ƒ‚‡tsxzy~‚†‡†‹Š‰Ž†…Š|{€qpurqvpotmlqjinfejbaf_^c^]bdchbaf]\aWV[QPUKJOFEJDCHJINIHMGFKFEJFEJHGLJINKJOSRWSRWRQVSRWVUZ[Z_`_dcbgcbglkp{zˆ‡Œ‹Š‚†rqvfejbaf\[`VUZRQVQPUQPUONSLMQJKOFJMCGJ@DG>BE=AD=AD>BE:>A:>A;?B;?B<@C=AD>BE>BECBGCBGCBGCBGCBGCBGCBGCBGGFKHGLJINLKPNMRNMRNMRMNRLMQMQTMQTKORJNQSWZeilswzQUXJNQBFIAEHEILHLOHLOEILIMPKORMQTLPSIMPHLOJNQLPSPTWQUXRVYRVYQUXOSVMQTLPSX\_Z^a[_b[_bY]`VZ]RVYPTWHLOGKNFJMEILEILFJMHLOIMPKORKORJNQHLOEILFJMJNQNRUIMPHLOHLOGKNGKNFJMFJMDIMLQWIPXFMUBIQ>EM?FNDKSKRZLS[KRZJQYIPXIPXIPXKRZKRZIPXIPXLS[QX`PW_IPXDKSCJRCJRCJRCJRCJRCJRCJRCJRCJRJMVJMVILUHKTGJSGJSFIRFIRGJSFIRFIREHQEHQDGPDGPCFO8;D8;D8;D7:C69B69B58A58A25>25>25>25>25>25>25>15>59E4:F5;G6J9?K:@L;AMBHTCIUCIUDJVEKWFLXGMYFNYKTcIUcIUcIUcIUcIUcIUcIUcBN\BN\AM[@LZ>JX=IWAdlo’‘”·–™¼‘”·”—ºŸ¡È­¯Ö¨ªÑ”–½tvSU|mo–µ·ÞÇÉð‡‰°MOvSU||~¥¶‰‹²ˆŠ°¸ºàÈËٟ¢Å Ã“–¹“¶‘”·’µƒ†©Œ²„§ilX[~ux›‹Ž±Œ°¤§ÈŠ¬[^}“°×ÛøÝáü­±ÌŠŽ§uy’w|’v{‘kp„_dx]bucfwnnzomxnlwkitigrkitpnyus~qozqozpnypnypnypnyqozqozigrecn`^iYWbTR]OMXMKVLJUPNYQOZQOZQOZRP[SQ\SQ\SQ\USaYWe_]kb`na_m_]k^\j^\jiguiguhfthftigukiwmkynlzvt‚sqmkyrp~~|Š~|Šsqom{mkyjhvkiwpn|qo}mkykiwljwpn{omxnlwnlwpnysq|wu€yw‚‚€‹Ž™”’Šˆ“€~‰‚€‹†„†„†„}{†qoz‰‡’™—¢“‘œ”’‹–€~‰‚€‹„‚Šzxƒxv{y„}{†…ƒŽŽŒ—‡…wu€rp{sq|tr}vtwu€vtsq|mkvigrhfqkitomxrp{ljugepecnigrmkvnlwnlwhfqdbmdbmhfqhfqkitmkvdcka`fa`ea`ebaffejjinnmrqpusrwsrwutyxw|zy~xw|rqvmlqmlqkjonmrmlqedigfknmrnmrbafbaffejnmrutyxw|wv{uty„ƒˆŽ’Ž’‚†yx}|{€€„~ƒ~}‚{zvuzonsihmfejdchbafmlqpotwv{utyrqvyx}onsRQVƒ‚‡±°µŽ’qpuutykjokjokjoqpuyx}}|utyihmedipot}|‚†srwhglhglhglfejkjoutyzy~€…{z~ƒwv{jinwv{zy~—–›—–›Œ‘”“˜”‡†‹”Œ‘„ƒˆ~ƒ~ƒ}|zy~€…„ƒˆ{zqpuxw||{€{z{zzy~onsbafnmrmlqjingfkdch`_d^]b]\abaf_^c[Z_UTYONSJINEDICBGJINIHMFEJDCHCBGDCHEDIGFKPOTPOTPOTQPUSRWVUZXW\YX]bafgfkpotvuzxw|tsxlkpfejcbg^]bYX]VUZTSXRQVNMRJKOJKOFJMBFI>BE;?B:>A9=@:>A8A;?B<@C<@C<@CBAFBAFBAFBAFBAFBAFBAFBAFLKPKJOJINJINJINKJOLKPKLPMNRKORKORKOROSVY]`hloswzNRUGKN@DG?CFBFIFJMEILCGJKORMQTOSVNRULPSKORLPSOSVQUXQUXPTWNRULPSIMPGKNFJMOSVRVYVZ]X\_Y]`VZ]RVYOSVGKNGKNFJMEILDHKCGJCGJCGJFJMHLOHLOFJMDHKDHKHLOKORLPSKORKORKORKORKORJNQINRZ_eQX`KRZIPXIPXIPXNU]SZbU\dU\dT[cSZbRYaRYaRYaRYaMT\MT\QX`V]eT[cKRZDKSCJRG;>G;>G;>G:=F:=F:=F:=F69B69B69B69B69B69B69B59B7;G5;G6J9?K:@L:@LBHTCIUDJVEKWGMYHNZIO[IQ\S\kQ]kQ]kQ]kQ]kQ]kQ]kQ]kHTbHTbFR`DP^CO]AM[?KY?KY:EW9DV9DV8CU7BT6AS6AS5@R7BT7BT7BT7BT7BT7BT8CU8CUAL^AL^AL^AL^AL^AL^AL^AL^FQcFQcGRdGRdHSeITfITfJUgno„klhi~ef{Z[pNOdHI^JK`STiGH]GH]Z[plm‚pq†mnƒmm…nj…wrƒ~œ‰„¢‡‚ €{™xs‘totohc[VtLGeB=[QLjni‡|›ŒŒ®‹Ž±“–¹¥¨Ë´·Ú¦©Ì|¢X[~69\ILobeˆtwš‚¥Œ²ž¡Ä¬¯Ò±´×Ÿ¢Åz} dgŠhkŽ‚¥’µ{~¡PSv-0S14W^a„|¢‰Œ¯›žÁ¬¯Ò‡Š­{~¡lo’vyœ~¤‡Š­wzkn‘X[~=@c?Bemp“‘”·‘”·Š°Œ²¢¤Ëµ·Þ±³ÚœžÅ{}¤NPw[]„ŸÆÄÆ퉋²RT{VXz|£ŠŒ³‰‹²µÁÃéÈËî £Æ~¤ƒ†©’µ˜›¾—š½Ž‘´Š°£¦É‘”·Y\ADgnq”‹Ž±Š®›ž¿‰Œ«ps’®²ÏåéÿÑÕ𑕰•™²•™²„šrwin‚^cwX]p]`qoo{qozqozomxljukitnlwqozkitkitkitljuljukitkitkitgepdbm^\gXVaSQ\OMXMKVLJURP[RP[SQ\SQ\TR]TR]US^US^PN\USa\Zh_]k_]k][i][i^\ja_m`^l`^l`^lcaofdrjhvljxrp~xv„sqom{}{‰†„’|zˆom{usom{nlzpn|qo}om{om{rp}rp}qozpnypnyqoztr}xvzxƒƒŒŠˆ“Šˆ“‚€‹‚€‹Šˆ“ŽŒ—‹‰”–”ŸŽ™{y„‚€‹˜•“žœš¥˜us~}ˆ…ƒŽ‚€‹zxƒvt{y„„‚œš¥œš¥ŒŠ•yw‚us~vtus~xv{y„zxƒwu€rp{mkvljupnysq|nlwhfqcalb`kgepmkvpnypnyrp{omxjhshfqnlwomxigrlksjiohglgfkfejhgllkppotsrw€„{zsrwonsonspotpotonslkpmlqtsxwv{potonssrwrqvlkponsonspot{z‡†‹„ƒˆwv{„ƒˆ”•”™Ž’ˆ‡Œ‡†‹‚†{z{zwv{rqvmlqhgldchbafbafonskjoqpuutyonsmlqcbgNMR|{€ª©®ˆ‡Œkjopotfejgfkfejqpuvuzvuzlkp`_dcbgvuzŠ‰Ž†…Šyx}onskjofej`_dedipotihmrqvonsvuzrqvhglwv{|{€…„‰zy~pot}|xw|jinvuzyx}wv{}|yx}uty{z|{€vuztsxnmrsrwtsxqpuonsnmrdchXW\hglgfkedibaf_^c\[`ZY^YX]XW\VUZSRWONSJINFEJCBGBAFHGLIHMIHMIHMIHMHGLGFKGFKLKPMLQONSQPUSRWSRWSRWSRWedidchbaf`_d_^c`_dcbgedia`e_^c\[`[Z_[Z_YX]UTYPQUNOSIMPEIL@DG=AD:>A9=@9=@;?B;?B<@C<@C=AD>BE?CF?CFDCHDCHDCHDCHDCHDCHDCHDCHKJOKJOJINJINKJONMRQPURSWSTXNRUNRUSWZ\`cdhkhlohloPTWIMPBFIAEHEILHLOGKNEILIMPKORMQTLPSIMPHLOJNQLPSPTWOSVMQTJNQHLOGKNEILEILLPSOSVSWZVZ]VZ]SWZOSVMQTIMPIMPIMPHLOFJMEILCGJCGJFJMJNQLPSLPSJNQHLOHLOIMPNRUOSVOSVOSVOSVOSVPTWOTXejpY`hRYaT[cW^fV]eW^fZai^em^em]dl]dl\ckZaiY`hY`hRYaRYaU\dZaiW^fMT\FMUDKS7>F7>F7>F7>F7>F7>F7>F7>FGJSFIRFIREHQDGPDGPCFOCFOHKTHKTHKTHKTHKTILUILUILU>AJ>AJ>AJ>AJ?BK?BK?BK?BK:=F:=F:=F:=F:=F:=F:=F9=F9=I7=I8>J8>J9?K9?K:@L:@LAGSBHTCIUEKWGMYIO[JP\JR]XapVbpVbpVbpVbpVbpVbpVbpMYgMYgKWeIUcHTbFR`DP^DP^=HZ=HZS?@UYZopq†st‰qr‡ss‹vr|w•ƒ~œ†Ÿ‚}›{v”upŽrm‹ojˆd_}[VtOJhGB`UPnni‡{x—‡‡©‡Š­Œ²Ÿ¢Åµ¸Ûª­Ð|¢TWz58[GJm_b…qt—~¤’µ¤§Ê´·Ú½À㬯҃†©eh‹dgŠ}€£Ž‘´y|ŸKNq#&I/2UfiŒ€ƒ¦†‰¬”—ºž¡Ä„‡ª„§vyœ{~¡vyœz} mp“hkŽSVy?BeGJmru˜’•¸’µˆ‹®‹Ž±¡£Ê¶¸ßµ·Þ¢¤Ë¨PRySU|ˆŠ±·¹à„†­WY€[]„z|£ˆŠ±¶™›Á·¹ß¹¼ß‘”·sv™z} Ž‘´šÀ•˜»‹Ž±‘”·¹¼ßœŸÂJMp25Xmp“‰Œ¯‡Š«”—¸¯‹Ž­ÍÑîíñÿÀÄßtx“¡º³·Ðˆ£mrˆgl€afzX]pY\mmmyqozsq|rp{omxkitkitkitb`kcaldbmecnecndbmcalb`ka_j^\gZXcUS^RP[PNYOMXOMXSQ\SQ\TR]US^WU`XVaYWbYWbRP^XVd^\jb`na_m`^l`^la_m^\j][i\Zh\Zh_]kdbpiguljxrp~}{‰wuƒmkywuƒ„‚|zˆnlzwuƒusvt‚yw…wuƒrp~rp~vtsq~sq|sq|sq|tr}vtwu€yw‚ƒŒ…ƒŽ€~‰yw‚~|‡‹–”’’›—• ”’†„‚€‹Šˆ“”’˜–¡‹–sq|~|‡„‚ƒŒŠ~|‡ŠŠˆ“·µÀ£¡¬„‚wu€}ˆ‚€‹}{†{y„yw‚xvtr}omxigrhfqkitnlwhfqecnb`ka_jecnjhsnlwpnymkvxv~|‡zxƒ}{†omx\Zefem{z€vuznmrhglgfkjinpottsx‰ˆ~ƒrqvhglediedigfkhglbafdchonswv{vuzxw||{€xw|{zyx}onsihmtsx…„‰‚†rqvutyƒ‚‡Ž“”‘•’‘–‹Š~ƒ}|xw|srwqpumlqgfkfejhgltsxpotpotonskjohgledi^]bqpu‘•|{€ihmjincbgfejhglqpupotkjoa`e[Z_dchxw|‰ˆ~ƒyx}vuzrqvfej[Z__^clkpmlqnmrlkpqpupotmlqvuz|{€~}‚onshgltsxqpudchkjovuzyx}€…xw|qpu{z{zsrwutypotqpupotonsmlqjinbafZY^`_d_^c]\a[Z_XW\VUZTSXSRWMLQLKPJINHGLEDIBAF@?D?>CEDIHGLLKPPOTQPUPOTNMRLKPMLQONSRQVTSXTSXRQVPOTNMRXW\YX]YX]XW\VUZWV[[Z_^]b]\a]\a_^cbafedidcha`e\]aUVZPTWKORFJMAEH>BE<@C<@C>BE>BE?CF@DG@DGAEHBFIBFIGFKGFKGFKGFKGFKGFKGFKGFKHGLKJOONSSRWWV[YX]ZY^Z[_XY]UY\W[^`dgkornruhlo`dgUY\NRUGKNEILIMPMQTLPSIMPEILGKNHLOGKNEILDHKFJMHLOLPSKORIMPHLOGKNGKNGKNHLOQUXSWZTX[TX[RVYOSVKORIMPMQTMQTNRUNRULPSKORHLOGKNKOROSVSWZTX[RVYPTWOSVOSVQUXRVYRVYSWZSWZTX[TX[TY]glr`goahpfmudks\ck\ckbiqgnvgnvhowgnvfmucjrahp_fnY`hX_gY`h\ckX_gNU]GNVFMU8?G8?G8?G8?G8?G8?G8?G8?GEHQEHQDGPDGPCFOBENADMADMCFODGPDGPEHQEHQFIRFIRGJSADMADMADMBENCFOCFODGPDGP>AJ>AJ>AJ>AJ>AJ>AJ>AJ=AJ;?K9?K9?K9?K9?K9?K:@L:@L?EQ@FRBHTDJVFLXHNZJP\JR]YbqWcqWcqWcqWcqWcqWcqWcqP\jP\jO[iNZhLXfKWeJVdJVdBM_BM_AL^AL^@K]?J\>I[>I[I[>I[>I[>I[>I[>I[>I[>I[@K]@K]AL^AL^BM_CN`DOaDOajk€gh}fg|dez[\qPQfLMbNOd@AV78M9:OPQflm‚yz{|‘zz’~z•|š„‚}›|w•vqrm‹qlŠmh†c^|[VtRMkKFdWRpmh†xu”¡ƒ†©‰Œ¯›žÁ±´×¦©ÌwzQTw7:]HKn^a„or•}€£“¶©¬Ï¼¿âÇÊí¸»ÞŒ²gjcf‰|¢³vyœMPs C*-Peh‹‚¥‚…¨Œ²‘”·‰Œ¯‡Š­}€£‚¥ux›sv™eh‹_b…FIl>AdQTw{~¡•˜»‘”·Œ²’•¸ŸÆ±³Ú´¶Ý¢¤Ë€‚©VXWY€¨¦¨Ï{}¤VX^`‡}¦ŒŽµ–˜¿¦¨Î³µÛ²µØ•˜»~¤}€£‹Ž±™œ¿‘”·‰Œ¯™œ¿ÌÏò£¦É>Ad+.Qqt—‡Š­…ˆ©‘”µ•˜·¦©Èçëÿñõÿ°´Ï_c~ ¤½ÉÍ掓©hmƒfkgl€\atZ]njjvpnyus~us~qozkitfdoecn\Ze][f_]h`^i`^i_]h][f\ZeYWbWU`US^RP[QOZQOZQOZRP[TR]TR]VT_XVaZXc\Ze][f^\g\Zha_mfdrigugesecqdbpdbpcaoa_m_]k^\j`^ldbpiguljxom{xv„rp~jhvsq|zˆyw…rp~usyw…‡…“‚€Žxv„tr€vtsq~tr}vtwu€xvwu€wu€wu€}{†}ˆyw‚omxrp{„‚‘š”’ˆ†‘ˆ†‘‹–ŒŠ•ŽŒ—‘š‰‡’†„~|‡…ƒŽ†„ŒŠ•™—¢œš¥™—¢›¦Á¿Ê ž©zxƒsq|Š†„‚€‹„‚|z…zxƒvtomxigrgepjhsmkvkitkitjhsigrhfqkitomxrp{us~…ƒŽ˜ŽŒ—”’}ˆ_]hlksŽ”ƒ‚‡srwedi`_ddchnmruty~ƒxw|mlqfejbafbafa`e`_d`_d_^cihmsrwwv{~}‚ƒ‚‡~ƒ}|rqvedicbgqpu}|xw|jinjinxw|„ƒˆ‰ˆŒ‘‘•Š‰Ž}|~}‚xw|utywv{utyqpuqpuvuz{z€…{znmrjinkjojinihmkjowv{vuzpotkjohglmlqrqvsrwnmrgfkbafcbglkpwv{€„xw|utysrwonsbafYX]a`erqvqpukjoonssrwwv{xw|rqvutysrwihmgfkjinkjogfkedisrw}|~}‚yx}tsxvuzxw|tsxpotnmrkjojinlkpkjofej_^c\[`YX]XW\VUZTSXRQVONSNMRMLQIHMHGLFEJDCHA@E?>C=AJ>AJ?BK@CLADMADMBENBENCFOCFODGPEHQFIRGJSGJSHKTADMADMADMADMADMADMADM@DM<@L:@L:@L:@L:@L:@L9?K9?K=CO>DP?EQBHTDJVGMYIO[IQ\XapVbpVbpVbpVbpVbpVbpVbpR^lQ]kQ]kQ]kP\jP\jP\jP\jHSeGRdGRdFQcEPbEPbDOaDOaBM_AL^AL^@K]?J\>I[=HZ=HZI[?J\@K]@K]@K]ijgh}fg|dez[\qQRgLMbNOd9:O56K67LGH]fg|~”„…š~~–„€›…€ž„z˜xs‘snŒqlŠqlŠlg…b]{[VtSNlMHfXSqlg…ur‘ww™„§Š°™œ¿­°Ó £Æsv™PSv9<_ILo^a„nq”}€£‘”·¬¯ÒÀÃæÍÐó¾Á䑔·jmcf‰|¢Œ²twšTWzB$'J_b…y|Ÿ~¤‰Œ¯³Ž‘´Š°‚¥€ƒ¦ux›ru˜`c†WZ};>a>AdX[~‚…¨˜›¾•˜»’•¸šÀ˜šÁ«­Ô°²Ù ¢É¨\^…^`‡¨›ÄsuœSU|_aˆ€‚©‘“ºŸÆ¯±×º¼â¸»Þ¡¤ÇŒ²„§ˆ‹®—š½“¶ˆ‹®Ÿ¢Å×Úý¦©Ì8;^*-Pux›†‰¬…ˆ©“´œŸ¾·ºÙ÷ûÿôøÿ§«ÆTXs ¤½ÔØñ‘–¬ej€fklq…`ex\_pggsomxus~wu€sq|kitdbm`^iYWbZXc][f^\g^\g][fZXcYWbTR]SQ\QOZPNYPNYQOZSQ\TR]TR]US^WU`YWb\Ze_]h`^ib`kecqigunlzom{ljxigugesfdrigugescaoa_mb`necqjhvmkyigunlzjhvhftqo}wuƒwuƒzx†qo}{y‡Šˆ–’ž‹‰—|zˆtr€trsq~tr}wu€yw‚zxƒyw‚wu€us~us~yw‚tr}fdoecnwu€Šˆ““‘œ~|‡~|‡”’š˜£™—¢“‘œŠ…ƒŽ‹‰”ŒŠ•Šˆ“—• ²°»»¹Äµ³¾³±¼¼ºÅ™—¢tr}omx|z…}ˆŠ‹–ˆ†‘†„Šzxƒsq|qozrp{us~rp{tr}us~rp{omxnlwrp{wu€˜•“ž“‘œŽŒ— ž©“‘œtr}„ƒ‹œ›¡Œ‹tsxa`eYX]_^clkpvuzpotlkphglfejedidch`_d]\agfkcbgihmrqvxw|€…†…Š‚†zy~jina`eihmyx}~}‚tsxjinpot{z‚†‚†„ƒˆ…„‰{zmlqtsxpotrqvyx}}|}|‚†‰ˆ~}‚‘•Š‰Žsrwnmrpotkjogfkkjojinwv{zy~qpupotwv{~ƒwv{qpujinjinonsutyxw|xw|wv{qpulkpgfk\[`XW\hgl}|fej_^cmlqwv{‚†…„‰srwrqvqpumlqonshglmlqqpuhglutyvuzqpuutyutymlqpotons`_dihmbafa`efejfej_^cZY^ZY^TSXSRWRQVPOTNMRLKPJINIHMHGLGFKEDIBAF@?D=BAFFEJKJOQPUVUZYX][Z_[Z_XW\ZY^\[`[Z_WV[POTIHMDCHMLQPOTSRWSRWQPURQVVUZZY^VUZYX]a`ekjotsxxw|wv{stxbcg\`cW[^PTWKORGKNDHKCGJ@DG@DG@DGAEHBFICGJCGJDHKIHMIHMIHMIHMIHMIHMIHMIHM_^cihmwv{€…€…vuzhgl]^bYZ^`dgkortx{w{~swzlpsgknY]`RVYKORJNQNRUQUXPTWNRULPSNRUOSVOSVLPSKORMQTOSVFJMEILEILEILGKNKORNRUQUXQUXPTWPTWOSVOSVPTWQUXQUXSWZUY\W[^X\_X\_W[^TX[SWZW[^Y]`Z^a[_b\`c`dgfjmkorUY\UY\VZ]W[^X\_Y]`Z^aY^bY^dipxˆ†•ov~X_g^emsz‚w~†w~†x‡x‡v}…sz‚ov~mt|cjr_fn\ck\ckW^fOV^KRZKRZDKSDKSDKSDKSDKSDKSDKSDKSCFOCFOCFOBENADM@CL@CL?BK:=F:=F;>GAJ?BK@CLDGPDGPEHQFIRGJSILUILUJMVBENBENBENBENBENBENBENAEN=AM;AM;AM:@L:@L:@L9?K9?K;AMDPAGSCIUFLXHNZHP[V_nT`nT`nT`nT`nT`nT`nT`nR^lR^lR^lR^lS_mS_mS_mS_mKVhKVhJUgJUgITfHSeGRdGRdFQcEPbEPbCN`BM_AL^@K]@K]I[>I[_`u`avcdyhi~gh}]^sKLa=>S./D/0E()>*+@MNc}~“¥……‹¦©¤ÂŠ¨|šojˆkf„snŒtomh†XSqLGeYTra\zVQoVQojg†ww™‚¥‡Š­‹Ž±’µŠ°nq”PSv@CfRUx`c†mp“…ˆ«Ÿ¢Å´·ÚÄÇêÃÆ鱴ט›¾‚…¨x{ž‚¥‚¥ps–JMp/2U7:]Z]€kn‘twš‚…¨‰Œ¯³“¶˜›¾•˜»‚¥ilWZ}HKn;>a58[VY|˜›¾¾Á䯲՗š½‘”·’”»¡£Ê«­ÔœžÅwy bd‹wy ™›Â¢¤Ëhj‘?Ah^`‡ˆŠ±–˜¿¨ªÑµ·ÝÑÓù¼¿â£¦É”—º”—º–™¼”—º’µ‹Ž±—š½¾Á䜟ÂUX{58[kn‘Š°•˜¹”—¸š¼½Àß÷ûÿêîÿ“—²]a|œ ¹ÇË䖛±lq‡uzŽns‡glbevkkwrp{zxƒyw‚lju^\g][fdbm\Ze^\ga_jdbmdbma_j][fZXcHFQOMXWU`ZXcYWbVT_US^US^TR]TR]US^WU`ZXc][f`^ib`khftljxsqvt‚qo}ljxrp~}{‰nlzom{nlzljxhftecqdbpdbp`^lcaofdrhftjhvnlzvt‚}{‰jhvnlztr€xv„zx†{y‡{y‡{y†€~‹vtrp{|z…‹–‘š„‚tr}omxkitecn\ZeVT_b`k„‚¦¤¯‡…nlw‹–°®¹˜–¡‚€‹‰‡’‰‡’„‚‚€‹˜¡Ÿª¦¤¯œš¥‘šŽ™‡…ƒŒ‰‡’‹‰”Š€~‰Šyw‚ˆ†‘ˆ†‘ŽŒ—”’‘š…ƒŽyw‚tr}qozvt‹‰”•“ž‰‡’…ƒŽ”’›¦ÈÆѲ°»Šˆ“tr}}{†‚€‹‚€‹ˆ‡Ž“…„‰utycbg\[`edinmronsmlqlkponsvuzxw|vuzutyxw|rqvpotuty}|zy~rqvsrw|{€ˆ‡Œ‡†‹~}‚…„‰–•š”~ƒ~}‚€…ˆ‡Œ„ƒˆ~}‚†…Š‰ˆuty_^cnmrutyyx}wv{vuz{z~ƒ€„|{€}|}|{zxw|tsxonslkpkjovuzƒ‚‡‡†‹„ƒˆ€„€„‚†€„„ƒˆvuzkjoxw|ƒ‚‡€„~ƒrqvsrwsrwkjo[Z_TSXbafwv{a`e]\abafsrw~ƒ|{€potihmedihgljinkjoihmgfkgfkgfkrqvutyxw|zy~zy~wv{rqvonsedi`_d\[`[Z_^]b`_d`_d^]bSRWRQVQPUONSLKPJINIHMHGL@?DCBGDCHA@E;:?65:65:76;BAFBAFCBGGFKKJONMRONSPOTUTYVUZVUZTSXQPUONSONSPOTWV[VUZUTYTSXSRWTSXWV[ZY^_^c^]bbaffejihmmlqkjobcgbcg`dg`dg^be\`cZ^aX\_VZ]EILCGJEILMQTPTWMQTJNQJNQSRWQPUNMRKJOHGLGFKGFKHGL_^c{z”ˆ‡Œons\[`TSXRSWPQUTX[^bejnqptwmqtbfiY]`W[^[_bVZ]KORJNQUY\]ad\`cZ^a`dgbfi`dgcgjimpimpdhkZ^aSWZIMPJNQOSVLPSOSV^beMQTRVY[_b^beW[^MQTLPSRVYcgjbfiaeh`dg`dgbfidhkeil[_bY]`Z^a^beeiljnqjnqimpcgjX\_UY\aehjnqhlofjmglpglrmt|€‡‹’šv}…W^fY`hpwry†•†•v}…sz‚rymt|ls{biqbiq_fnX_gPW_KRZLS[NU]U\dT[cU\dV]eX_gV]eQX`LS[GJSHKTJMVJMVILUGJSCFOADM58A58A69B7:C9GDP=CODP>DP?EQ@FRAGSBHTCIUBJUFO^EQ_FR`HTbKWeMYgNZhO[iJVdKWeLXfMYgO[iQ]kR^lR^lOZlOZlP[mQ\nR]oR]oS^pS^pOZlOZlOZlOZlOZlOZlOZlOZlKVhJUgITfGRdEPbCN`BM_AL^=HZ?T-.C-.C)*?+,ADEZij‚—……¦¢½»¶Ô˜“±‚}›ni‡kf„wr|w•lg…WRpKFdWRp_ZxTOmVQoliˆxxš€ƒ¦ˆ‹®Š°Œ²†‰¬ps–VY|MPsSVyWZ}gj†‰¬ £Æ®±Ô·ºÝ´·Ú¤§Ê’µ|¢wzƒ†©‡Š­|¢KNq25X:=`\_‚lo’ux›„§†‰¬Ž‘´‘”·˜›¾”—º‚¥ilVY|FIl/2U7:]ad‡ £Æ¿Â尳֚À”—º”–½ ¢É©«ÒŸÆy{¢bd‹tv–˜¿™›ÂacŠ9;bZ\ƒ‡‰°šœÃ­¯Öº¼âÏÑ÷º½à £Æ’•¸“–¹—š½–™¼’•¸’µ–™¼±´×“–¹Z]€;:?<;@@?DBAFEDIGFKIHMKJONMRONSVUZYX][Z_YX]VUZTSXVUZYX]VUZWV[XW\[Z__^cbafbafbaf`_dgfkihmfejgfkihmedi^_c_`dY]`UY\UY\X\_]adbfieilTX[MQTMQTY]`eilgkncgj`dgUTYSRWPOTMLQKJOKJOKJOKJOZY^gfkpotkjobaf[Z_VUZPQUQRVSWZ\`ceilkorhlo`dgY]`UY\^bedhkcgjdhkimpjnqgkn_cfaehdhkhlomqtnrufjm]adY]`VZ]NRUMQTVZ]Y]`W[^[_bOSVSWZY]`[_bVZ]OSVRVYY]`fjmeilcgjaehaehbficgjdhkY]`Y]`Z^a_cfgknmqtnrumqt\`cX\_VZ]]adlpsx|vz}lqudioahpls{w~†jqyRYaSZbfmuqx€ˆ€‡rymt|krzeltdks`go_fn\ckX_gT[cQX`RYaSZbY`hY`hZai\ck\ckX_gRYaLS[EHQKNWTW`Z]fY\eQT]GJS@CL58A69B69B7:C9G?BK@CLBENDGPFIRILUKNWLOXHKTHKTHKTHKTHKTHKTHKTGKTEIUCIUBHTAGS@FR?EQ>DP=CO?EQ@FR@FRAGSBHTCIUDJVCKVDM\CO]DP^FR`HTbIUcKWeLXfIUcJVdKWeLXfNZhO[iQ]kQ]kOZlOZlP[mP[mQ\nR]oS^pS^pQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nMXjLWiKVhJUgHSeFQcEPbDOa@K]?J\?J\>I[=HZG@CLEHQILUKNWLOXCFOCFOCFOCFOCFOCFOCFOBFODHTBHTBHTCIUCIUDJVDJVDJVDJVDJVDJVDJVEKWEKWEKWDLW?HW=IW>JX>JX?KY?KY?KY@LZCO]DP^EQ_GSaHTbJVdKWeLXfMXjNYkNYkOZlP[mQ\nQ\nQ\nU`rU`rU`rU`rU`rU`rU`rU`rS^pS^pR]oQ\nP[mOZlOZlNYkKVhJUgJUgITfHSeGRdGRdFQcbcxbcxdezgh}hi~abwSTiHI^45J12G45J89N23H01FIJ_jj‚ œ·Ä¿Ý¤Ÿ½‹†¤~y—zu“|w•~y—kf„WRpHCaKFdLGeB=[PKiqn‘‘³”—º–™¼“–¹’µ³Š°‡Š­nq”WZ}:=`Ad&)LDGjmp““¶¡¤Ç¦©Ì¥¨Ë£¦É£¥Ì¦¨Ï®°×­¯Ö”–½uwžpr™¨~€§TV}35\QSz„†­§©ÐÁÃêÉËñÃÅ뭰Ӓ•¸†‰¬‹Ž±—š½Ÿ¢Å¡¤Ç“–¹Ÿ¢Å’•¸y|Ÿad‡PSvX[~x{žŽ‘² £ÄÆÉèÉÌ멭ʉªrv‘pt¡ºÃÇ๾ԉŽ¤in‚fkhm€_bsddpdbmfdojhsjhsfdogepkitljutr}xvqozb`kVT_US^YWbVT_TR]SQ\WU`^\gcalecncal_]h^\g\Ze[Yd\Ze^\g`^ib`kgesom{zx†~|Šrp~b`nZXf\Zh\Zh][i_]kcaogesiguhftfdrrp~qo}pn|nlzmkykiwigugesmkyfdr`^lcaoom{{y‡‚€|z‡sq|igrecnhfqpnywu€{y„nlwecn][fa_jpny€~‰†„†„‚€‹}ˆ†„†„zxƒvtus~mkvUS^XVahfqkitvtˆ†‘‚€‹‚€‹ŒŠ•ˆ†‘wu€rp{€~‰‡…‡…˜‹‰”ˆ†‘‡…†„Š|z…~|‡„‚xvyw‚xvƒŒ‘š‹–‰‡’•“ž™—¢‚€‹US^LJUpny€~‰us~wv~wv|zy~lkp^]bfejmlqfej_^c[Z_\[`bafmlqsrwtsxwv{{zzy~tsxvuz~}‚~ƒyx}wv{|{€‡†‹‰ˆ~}‚vuz}|~ƒ‹Š¤£¨£¢§‹Šxw|€…”†…Štsxqpu{z€„…„‰‹Š“’—™˜–•šŽ“xw|xw|wv{wv{vuzvuzvuzwv{xw|tsxqputsx{z~ƒ|{€wv{’‘–›šŸ”“˜†…Š‚†~ƒwv{rqvxw|zy~xw|utyxw|~}‚}|vuzkjolkpnmrqpupotihm[Z_NMRBAFUTYlkputyonsbafZY^WV[`_dbafediihmlkpnmronsonssrwqpulkpdch[Z_SRWLKPIHMHGLHGLIHMJINLKPMLQNMRNMRTSXPOTKJOJINNMRPOTPOTONS^]bcbggfkfej`_d^]bcbghglwv{}|€„zy~nmrhglkjoqpusrwkjocbg`_dbafa`e\[`VUZmlqŠ‰Ž‰ˆvuzvuzsrwgfkefjghlcgjcgjgknmqtquxrvyquxnrufjmbficgjcgjaehaehdhkWV[VUZTSXTSXTSXVUZXW\YX]NMRIHMIHMSRW_^ccbg^]bVW[UVZSWZQUXPTWPTWQUXTX[VZ]gknfjmeilgknosvy}€|€ƒz~gknhlomqtnrueil[_b]adfjm`dggkn`dg]adrvy„ˆ‹w{~aehimpaeh[_b[_b\`c\`c_cfdhkfjmdhkaeh^be\`c[_b\`c\`c`dg`dg_cf]ad[_bY]`X\_X\_\`cVZ]QUX[_bswz†Š…ˆqvzmrxcjrU\dHOWFMULS[OV^NU]_fn^emahpdkscjrbiqfmujqycjr_fn]dl^emcjrgnvgnvfmu]dl^em`gobiq`goW^fKRZBIQGJSLOXSV_Y\eY\eTW`MPYHKT?BK?BK>AJG:=F9BKBFR@FRAGSBHTDJVEKWFLXFLXEKWEKWEKWEKWDJVDJVDJVCKV@IX>JX=IW=IW=IW?T<=R:;PFG\VVn™´Ä¿ÝŸš¸„yt’{v”z˜„mh†ZUsIDbHCaE@^;6TLGepmŒ™™»™œ¿™œ¿—š½•˜»”—º“–¹“–¹vyœ`c†=@c14WQTw…ˆ«°³ÖËÎñ¯²Õ¥¨Ë–™¼‚…¨vyœz} {~¡ps–dgŠTWzY\lo’~¤˜›¾©¬Ï¦©ÌšÀ—š½™œ¿”—º€ƒ¦hkŽPSv;>a69\NQtmp“ƒ†©’µ™œ¿¥¨Ë®±Ô°²Ù±³Ú´¶Ý¯±Ø™›Â€‚©xz¡~€§y{¢WY€:AJG:=F;>G>AJCFOGJSJMVJMVILUHKTBN=CO?EQAGSCIUEKWFLXGMYEKWEKWDJVDJVCIUBHTBHTAITCL[@LZ?KY>JX=IWJX?KY@LZBN\DP^EQ_EQ_LWiLWiMXjMXjNYkOZlP[mP[mVasVasVasVasVasVasVasVasVasVasVasVasVasVasVasVasS^pS^pR]oQ\nP[mP[mOZlOZlijhi~ijlm‚mnƒhi~\]rRShCDY@AV?@UCDYJK`MNcIJ_CC[‹¦¸³Ñ“Ž¬xs‘snŒyt’|š‰„¢pk‰]XvJEcFA_?:X4/MGB`nkŠžžÀšÀ™œ¿™œ¿™œ¿™œ¿˜›¾—š½‚…¨nq”DGj+.QGJm‚¥¬¯ÒÄÇ귺ݯ²Õ¡¤Ç‹Ž±z} y|Ÿux›gj\_‚RUx\_‚ru˜†‰¬¢¥È²µØª­ÐœŸÂ˜›¾™œ¿”—º€ƒ¦hkŽORu8;^CFiZ]€ux›„§‚…¨‹Ž±£¦É»¾á¿Áè¿Á蹻⬮ՙ›Â‰‹²ƒ…¬ƒ…¬tvZ\ƒACjY[‚‡‰°¯±ØÒÔûÝßÿÂÄꪭЍ³‚¥…ˆ«”—ºŸ¢Å£¦ÉœŸÂª­Ð’•¸ux›_b…fiŒeh‹qt—Œ°œŸÀÌÏîËÎ햚·x|™|€›Œ«–š³ª®Ç¶»Ñ˜³pu‰kp„sx‹ru†mmygepdbmhfqljuljukitmkvhfqjhsigrdbm^\g][fb`khfqtr}rp{nlwigrfdogepkitnlwqozljufdob`kdbmljuus~|z…xv„|zˆ€~Œ~|Šrp~ecqdbpjhvmkymkymkyom{rp~rp~pn|nlz}{‰zx†xv„vt‚usqo}kiwecqljxmkyqo}vt‚|zˆ}‹€~Œ€~‹yw„vtomxfdocalhfqtr}~|‡™—¢˜{y„jhsigrtr}}{†}ˆ}ˆ}ˆ~|‡}ˆƒŒƒŒ„‚‡…wu€igrigr^\ga_jmkvjhstr}wu€yw‚Šˆ†‘‡…„‚}ˆwu€Š}{†yw‚tr}nlwljuus~Šyw‚rp{|z…˜“‘œŒŠ•Šˆ“‹‰”“‘œzxƒcalecnxvŠtr}bai}|‚‡†‹wv{dchmlqxw|}|„ƒˆpotmlqlkppotsrwsrwwv{|{€€…xw|wv{~ƒ‚†|{€zy~~}‚˜—œ€…[Z_POThgl€…—–›±°µ£¢§±°µ—–›ƒ‚‡”“˜Œ‘xw|‚†€„‚†~ƒxw|utyyx}|{€{zvuzvuztsxtsxutyxw|zy~|{€€…€„€„€…ƒ‚‡…„‰„ƒˆ‚†wv{~ƒ€„~ƒ†…ŠŒ‘‡†‹}|~ƒmlq^]b^]bhglonsmlqjin`_dcbgbaf]\a\[`[Z_TSXKJONMRRQVVUZVUZRQVPOTPOTRQV]\a^]b_^ca`ecbgedigfkhglhgljinjinedi]\aVUZRQVQPUHGLIHMIHMIHMJINJINKJOKJOMLQMLQNMRQPUVUZ_^cihmpotrqvsrwsrwqpuonsnmrnmrnmrdchgfkihmgfkdchbafdchgfkhglhglihmkjoonsrqvtsxtsx€……„‰…„‰„ƒˆˆ‡Œ‡†‹yx}jko]^b`dgdhkfjmhlomqtvz}}„bfi_cf[_bUY\KORGKNMQTX\_ONSNMRNMRONSQPUTSXWV[XW\RQVRQVTSXXW\VUZPOTPOTTUYVW[TX[RVYNRUJNQJNQNRUSWZTX[SWZKORIMPaeh~‚…~‚…korX\_fjmrvyquximpeilgknimpmqtkorcgjeilptwuy|tx{y}€jnqcgjaehhlomqtjnqdhkaeheildhkbfiaeh`dgaehbficgjnruptwosvkorfjmbfibficgjgkndhkcgjfjmkorosvmqtinrv{t{ƒ\ckGNVdksž¥­³ºÂ¢©±qx€dkshowsz‚qx€pww~†|ƒ‹ryqx€nu}jqyeltcjrcjrelt]dl\ck\ck\ckZaiU\dMT\FMUJMVJMVKNWKNWLOXMPYNQZOR[JMVILUGJSDGPADM?BK=@IFQFO^DP^BN\AM[?KY=IW;GU;GU;GU;GU=IW>JX@LZAM[BN\CO]KVhKVhLWiMXjNYkNYkOZlOZlT_qT_qT_qT_qT_qT_qT_qT_qVasVasWbtWbtWbtWbtWbtWbtU`rU`rT_qS^pR]oR]oQ\nQ\nkkƒjj‚jj‚mm…oo‡jj‚__wUUmHH`EE]BBZFF^TTl[[sMMe88Ryv“¦£À†Ÿnkˆojˆwt‘|š‰†£rm‹]ZwKFdDA^<7U/,IE@^liˆŸŸÁ™œ¿™™½™œ¿Á›žÁ››¿˜›¾ŽŽ²x{žKKo*-PEEi|¢©©Í¹¼ßÀÃ渻ު­Ð’•¸}€£wznq”^a„SVyNQt]`ƒux›Œ²¨«Î´·Ú©¬Ïž¡Ä™œ¿™œ¿”—º€ƒ¦hkŽNQt7:]ILobeˆ}€£ƒ†©{~¡„§¢¥ÈÅÈëÊÌóÈÊñ¼¾å§©Ð–˜¿¶ŠŒ³ˆŠ±pr™Z\ƒEGn\^…‰‹²²´ÛÙÛÿæèÿÃÅ몭ЌŽ´~¤„†¬“–¹Ÿ¡Ç£¦É¡£É­°Ó‘“¹twš`bˆps–ln”mp“‡Š­ž¡ÂÉÌíÅÈ疙¸w{˜{œ•™´“—²¦ªÃ¿Ãܧ¬Âns‰Z_slq…€ƒ”sr€jhscanfdojhuljunlypnygerb`k][h\Ze_]jecnjhumkv{y†{y„zx…wu€vtyw‚Œˆ†‘}Šyw‚qo|ljuomzxv„‚‹˜„‚†„‘‡…“„‚xv„mkxnlzvtnlztrwuƒtrnlzpn{zx†…ƒ‘ˆ†”„’||yŠxu†ro€ifwa^onk|tq‚|yŠ‚‚|zwˆvt‚wu‚us~omxfdoa_jecnrp{}{†”’‘š†„xvrp{wu€{y„zxƒzxƒzxƒxvƒ{y„ƒŽ„‚†„‘‹–mkxzxƒYWdFDOa_ligrjhuƒŒ{y„{y„‡…ŽŒ—‡…„‚‚€‹xv~|‡{y„yw‚us~nlwkittr}€~‰€~‰qoz~|‡˜–¡”’…ƒŽ‚€‹†„‘š~|‡rp{qozus~zxƒxvlks|{…„Šxw}gflkjpqpv|{“’˜lkqlkqqpvyx~}|‚|{|{~„Œ‹‘€…{z€€†ƒ‚ˆ~}ƒ}|‚‚‡’‘—„ƒ‰gfl[Z`lkq€…š™Ÿ¹¸¾ÄÃÉÌËї–œmlr„ƒ‰‡†Œwv|„ƒ‰€……„Š…„Š}|‚vu{utzutzsrxvuzutytsxtsxutyxw|{z}|}|…„‰ˆ‡Œ~ƒqpuqpu‚†”“˜zyvu{{z€~„„ƒ‰–•›œ›¡Œ‹‘„ƒ‰mlr\[a_^dihnkjpgflcbh]\abafbaf^]b\[`\[`VUZLKP[Z_\[`^]b\[`YX]UTYSRWSRW]\a]\a^]b_^ca`ecbgedifejgfkjinkjofej]\aVUZRQVQPUIHNIHNIHNIHNIHNJIOJIOJIONMSONTPOURQWWV\cbhsrx~„tsyqrwqpvopuontmnslkqjkpfekfglfekdejbag_`e`_e`afjioklqontpqvpounotnmslmrsrxoputsy~„Š‰Ž”…„Šstyehmhkpilqehmcfkjmry|†‰Ždgl^afVY^ORWFIN@CHEHMMPULKQLKQLKQMLRONTRQWUTZWV\[Z`WV\UTZUTZQPVMLRQPVYZ_VW[UY\SWZOSVJNQIMPMQTRVYQUXTX[NRUMQTgknƒ‡Šz~\`c]`ehkporwknshkplotpsxpsxqtyknscfkfinmpulotqty€ƒˆfin`eiadijossv{otxgjoafjgjoejnehmchldgldimgjoglp|„|…|„ty}mpuejnehmejngjojoslotglphkpjoslothmshownu}]dnOV^}„ŽÇÎÖÚáë¼ÃËryƒdksipzx‡x‰y€ˆ‚‰“‰˜w~†w~†vzƒmt|gkt`gocgpcjr`dm]dl]aj[bj\`iV]eQU^LPYHLUJNWMO[NR[QS_OS\PR^NR[MO[JNWIKWEIRCEQ?CL>@L=@IILUKNWOR[QT]PS\LOXHKTEHQ9J;AM=COAGSCIUFLXGMYCIUCIUBHTAGS@FR?EQ>DP=EPIS_HR^GP_DNZBKZ@JV>GV=GS[%%A96Sml‹’‘³——» žÃ¥¥É§¥Ê¡¡Å›™¾––º¢ Å‚‚¦HFk&&JCAftt˜—•º¦¦Ê¾ÁäÃÆ鰳֏’µ|¢or•\_‚MPsKNqILo]`ƒwz–™¼ž¡Ä“–¹¡¤Ç¢¥È•˜»˜›¾”—º‚…¨`c†9<_.1Tbeˆƒ†©‘”·vyœad‡~¤¦©Ì³¶Ù³µÜµ·Þ®°×§©Ð£¥Ì•—¾ŠŒ³ŒŽµ}¦qsšMOv`b‰€‚©¢¤Ëãåÿùûÿ±³Úƒ©np—‡‰¯‘“º’¸˜šÁœžÄ©«Ò©«Ñ•—¾uwln•y{¡}¦rtš‚„ª•˜»º½àÎÑôª­Ðƒ†§il‹~‚Ÿ‘®¡¼ÕÙôµ¹Òx|•^cymrˆjm€poomzljxigthfthfsigujhuqo}ljwgesfdqjhvpn{vt‚zx…„‚…ƒ†„’…ƒŠˆ–—•¢ª¨¶¹·Ä¨¦´™—¤ŽœŒŠ—Žœ•“ “‘Ÿ”’ŸŒŠ—œš¥¤¢¯˜–¡‰‡”…ƒŽŠˆ•˜†„‘’›”’Ÿ{y„[Yf][fŽŒ™ÃÁÎìéúÔÑ䤡´€}yv‰ur…fcv]Zmwt‡|ŒŸŽ‹ž€}~{Ž~{Žro€hfsa_j`^igepkitljuus~Š‚€‹ƒŒƒŒƒŒ„‚…ƒŽ†„†„us€rp}us{y†yw…vt…ƒ‘™—¤}‹hfsyw…Œsqpn{jhvjhu}{††„‚€‹}ˆˆ†‘…ƒŽyw‚us~~|‡‚€‹…ƒŽƒŒ}{†xvvtwu€qozrp{wu€~|‡}{†tr}mkvljuzxƒ{y„}{†|z…us~kitnlw|z…~}…ihpihpsrzqpxsrzxwts{ts{qpxpowrqysrzvu}€ˆŒ‹“…„Œ‰ˆ}|„~†~†rqywv~‚‰‡†Ž˜—Ÿƒ‚Špowvu}yx€}|„~}…»ºÂ×Öސ—POWmltnmuXW_yx€€ˆŒ‹“ÊÉѺ¹Á€ˆzyqpxihprqwpothglihm|{€ƒ‚‡wv{jinyx}‡†‹ Ÿ¤ˆ‡Œons‡†‹½¼ÁÄÃɀ‡nmumltihp„ƒ‹›š¢±°¸¥¤¬rqyjiqa`h^]ea`hhgolksnmunms`_dYX]`_dgfka`eVUZONSVUZfejmlq_^cNMRKJOQPUVUZPOTPOTVUZ_^ca`eZY^VUZWV[_^c_^c_^c_^cZY^TSXPOTPOULKSLKSLKSLKSLKSLKSLKSLKSPOWPOWQPXVU]_^flksxw€‡‰tw~rrzsv}~~†Š”‰`cjmmunqxppxilshhpehobbjZ]d]]e`cjffnehoddl_bi__g\_fjjrhkrkksmpwss{qt{oowhkrru|uxwzehoRU\cfm‹Ž•¤§®oryZ]dGJQDGNGJQFIPEHOEHOKJRONVONVNMUONVTS[UT\SRZYX`ZYaYX`WV^]\dgfnlkskksefkbfiaeh`dg_cf_cf^be^beUY\MQTGKNLPSY]`bfi^beUX]bel`cj`cjdgnknupszqt{pszhkrjmtadkQT[QT[`cjeho_bi^ciY`f\agmtzz…`gmPU[[bhglrcjplqwv}ƒx}ƒmtzrw}}„Œ‚†„‹•†Š•}„Žrvhoykozmt~imxls}kozfmwjnyelvdhshoyfmwmt~nt€sz„‘—£¹ÀÊÃÉÕ¶½Çouqx‚tz†w~ˆy‹z‹z€Œz‹mqznr{or{mqzloxgktdgp`dmadm_cl^ajZ^gY\eUYbTW`RV_OS^PWaQUaLS]QUaU\fSWcHOYKO[HOYIMYFMWHLXFMWHLXIMX]`i_bkadm`clZ]fQT]HKTBEN?BK?BK=@I;>G9FQ?GT@HSAIVBJW?FX@GYAHZCJ\FM_HOaIPbJQcSZlSZlSZlSZlSZlSZlSZlSZmRYlSYoSYoTZpU[qU[qV\rV\r[awZ`vY_uX^tW]sV\rU[qU[qsr’wv–xw—ut”ts“vu•sr’onŽLKkA@`21Q43SMLled„baNMlhg†††¢ssQQmSSoppŒ‘‘­œœ¸~~škk‡]]y[[wJJf..J@@\rq±—•º žÃ§¥Ê¨¦Ë£¡Æš˜½”’·›À~|¡LJo.,QA?dom’“‘¶¢¢Æ¾¾â·ºÝ¤§ÊŒ²z} fiŒTWzORuMPsNQtcf‰{~¡•˜»œŸÂ“–¹¡¤Ç ÃŽ‘´’µ³}€£\_‚69\-0Sjm‰Œ¯•˜»{~¡il‚¥ Ã¦©Ì®°×´¶Ý®°×¦¨Ï ¢É‘¸„†­ŒŽµ‚„«~€§Z\ƒdf€‚©¥§Îæèÿöøÿ§©Ð{}¤oq˜ŠŒ³•—¾“•¼šœÃž Çª¬Ó¦¨Ï’”»wy oq˜xz¡{}¤tv‰‹±“•»±³ÙÊÌò²µØ’³jmŽqt“Œ­£§ÄÏÓËy}–dhmrˆkm‚on~om{nlzljxkiwjhvjhvkiwljxnlznlznlznlzsq|zˆ„‚†„’ˆ†”‰‡•Šˆ–‹™˜–¤©§µ¶´ÂÇÅÓ·µÃŸ«—•£š˜¦›™§•“¡ˆ†“˜–£¨¦±¦¤¯—• ŒŠ•}ˆzxƒ…ƒŽ‚€‹ŒŠ•ŽŒ—{y„_]h\Ze~|‡¥£°ÊÇÚ»¸Íš—¬ƒ€•„–ƒ€•wt‰ol‚”ŠŸš—¬‡„™ol‡„™œ™®†ƒ–rp}b`kYWba_jhfqkittr}Š{y„|z…~|‡‚€‹‡…ŒŠ•‘š”’}{‰ustr€|zˆƒŒŠ˜™—¥yw…rp~—•£©§µ›™§ŽŒšqo}SQ^kiv€~‰‡…Šˆ†‘˜‚€‹nlw}ˆƒŒ†„„‚}ˆyw‚wu€vtrp{rp{vt|z…|z…us~pnypnywu€zxƒ~|‡vtigrus~…ƒŽ…ƒŽwu€ecnjhsxvvtvtxvrp{qozyw‚sq|kitzxƒŽ™„‚dbm€~‰˜‰‡’†„€~‰tr}zxƒ‚€‹Šˆ“‘š{y„sq|{y„vtomxigrÂÀËÛÙ䒐›OMXkitrp{][fsq|{y„ˆ†‘´²½®¬·‰‡’yw‚gep]\dyx~vuzvuzŒ‹¯®³²±¶‹ŠedikjotsxsrwZY^vuz¶µºÞÝâÈÇ̓‚Šus~wu€sq|…ƒŽ•“ž¬ªµ©§²sq|mkvecna_jdbmhfqljumlthgm_^cXW\XW\ZY^WV[QPUMLQNMRUTY\[`ZY^QPUIHMLKPSRWQPUONSQPUXW\ZY^XW\XW\\[`^]b^]b\[`WV[SRWRQVPOTNMSNMUNLWNLWNLWNLWNLWNLWNLWPNYSQ\XVa^\gdbmigrljummwuuadmY\ejmv‹Ž— ©€ƒŒSV_gjsjmvilucfo`cl_bk\_hWZcWZc[^g^aj^aj[^gX[dWZcWZccfo_bk]`i`clfirilugjsdgpjmvmpynqz`clQT]`cl„”— gjsZ]fQT]SV_UXaQT]KNWHKTTR]WU`VT_SQ\TR]YWb[YdYWbXVa[Yd[Yd\Zea_jhfqigrddlcdibficgjdhkcgjaeh^be]ad[_bTX[NRUOSVW[^_cfaeh_bgjmtiluiluknwloxloxjmvhktiluhkt_bkUXaVYb_bk`clX\e\`i`go_fnbiqfmuW^fNU]Zaifmueltnu}{‚Š{‚Šqx€ov~v}…v|ˆx~Šx~Šrx„io{ciuciuekwio{qwƒqwƒkq}hnzbhtagshnzio{jp|djvciuw}‰–¢”š¦ˆŽšpv‚qwƒtz†u{‡v|ˆv|ˆu{‡t{…np|or{nqzmpyjmvfirben_bk]`i\_h[^gY\eWZcUXaSV_QU^OS_QWcTZfW]iZ`lY_kRXdIO[IO[IO[JP\JP\JP\JP\IO[IPZ[]i]`i`cl_bk[^gTW`KNWFIRBENADM?BK=@I;>G9J:@LDP>DP?EQ@FRAGSBHTCIUCIWBHXBGZCH[EJ]FK^HM`INaINaQViQViQViQViQViQViQViQViRWmRWmSXnTYoTYoUZpV[qV[qZ_uZ_uZ_uY^tY^tX]sX]sX]sxw—|{›}|œzy™yx˜zy™xw—ts“NMmA@`10P0/ODCc\[{ba[ZycbtteeNNjRRnvv’››·žžº~~šrrŽnnŠnnŠXXt;;WJJfwv•Œ®•“¸ žÃ¨¦Ë©§Ì¢ Å˜–»‘´”’·xv›RPu97\@>cgeŠŒŠ¯šš¾»»ßª­Ð—š½ˆ‹®wz\_‚LOrRUxORuUX{jm€ƒ¦”—ºšÀ—š½¢¥È“–¹„§‚…¨„§twšVY|47Z.1Tlo’Š°’•¸~¤vyœ„‡ª“–¹šÀ¬®Õ¹»âµ·Þ¨ªÑšœÃ€‚©suœ‚„«¶“•¼mo–gi|~¥¨ªÑêìÿñóÿœžÅsuœpr™¶—™À–˜¿›Ä¢¤Ë¬®Õ¡£Ê¶{}¤tvwy y{¢xz¡ŒŽ´“•»®°ÖÈÊð·ºÝ—š»jmŽeh‡‘®¬°ÍÆÊ埣¾|€™osŒpu‹mo„on~qo}qo}rp~qo}pn|om{nlzkiwrp~wuƒwuƒtr€vt‚€~ŒŠˆ–‡…“Šˆ–‹™‹™›—•£¤¢°¯­»ÊÈÖ¼ºÈ˜–¤‘›™§¡Ÿ­£¡¯ŒŠ—š˜¥¤¢­›™¤‘š‹–yw‚jhssq|{y„ŠƒŒzxƒigrcalsq|‡…’Ÿœ¯›˜­ŠŸ‡„™ŠŸŒ¡‡„™~“Ž‹ œ™®®«À¢c`u|‘¯¬Á¬©¼}ŠhfqZXcb`kigrigromx|z…|z…}{†€~‰„‚Šˆ“Ž™–”Ÿ™—¢‡…“{y‡vt‚‹™’ž–”¢œš¨xv„wuƒ ž¬´²À¡Ÿ­’žpn|?=JXVcgeptr}vtyw‚‚€‹{y„fdovt{y„Š„‚„‚‚€‹ŠŠus~sq|vt{y„{y„wu€us~wu€qozomxwu€rp{caltr}ŒŠ•Šˆ“nlw`^ijhs|z…{y„yw‚yw‚rp{omx€~‰vtecn‚€‹¨¦±†„<:Eqoz‹‰”˜ˆ†‘}ˆyw‚ŠŠ„‚~|‡fdojhsyw‚tr}rp{rp{ÄÂÍÔÒݐŽ™SQ\rp{ƒŒsq|€~‰‹–’›‹–€~‰vtkit^\gZYa~}ƒzy~wv{‹Šª©®¬«°‰ˆihmbafbafJIN76;„ƒˆàßäêéî­¬²†…}{†}ˆ}{†ƒŒ‰‡’›¦£¡¬pnykitecnb`kb`kdbmfdogfnlkqkjoedi\[`UTYSRWRQVQPUPOTNMRUTY_^c_^cWV[TSXXW\VUZTSXUTYYX][Z_\[`^]bbafbafdch_^cUTYRQVWV[VUZQPVONVOMXOMXOMXOMXOMXOMXOMXPNYTR]YWb_]hcalecnecnccmjjt^ajUXaehq‹Ž—š¦}€‰Z]fmpynqzknwdgp`cladm`cl\_hX[d[^g]`i\_hX[dVYbVYbWZc`clZ]fTW`TW`Z]f^aj^aj[^g_bkadmbenY\eQT]\_hqt}{~‡ben]`i[^g^aj^ajY\eSV_QT]\Ze_]h^\gZXc[Yd`^icala_jYWb][f_]ha_jecnigrecn\\dbchcgjfjmhlogkndhk_cf\`c]adW[^QUXPTWSWZX\_]ad_bgnqxor{qt}or{loxhktehqehqjmvbenZ]fX[d\_h^ajZ]fSW`gktt{ƒkrzV]ePW_MT\MT\V]eeltls{{‚Š‡Ž–ƒŠ’u|„ov~qx€lr~lr~kq}io{hnzflxekwekwousy…qwƒpv‚sy…lr~`fr]cohnzagsY_kX^jdjvqwƒrx„lr~qwƒrx„sy…tz†sy…rx„pv‚nunp|nqzloxjmvfirben^aj\_hWZcWZcVYbUXaTW`SV_RU^PT]QUaSYe\bngmyio{`frSYeLR^LR^MS_PVbQWcQWcOUaLR^JQ[Y[g[^g^aj_bk\_hWZcQT]MPYGJSFIRDGPBEN?BKG9=F:>J9?K:@L=CO@FRCIUEKWGMYGMYHNZKQ]LR^LR^JP\GMYEKW?EQ?EQ?EQ?EQ?EQ?EQ?EQ?EQ@FR@FRAGSAGSBHTCIUCIUCIWEK[EJ]EJ]EJ]FK^FK^FK^FK^LQdLQdLQdLQdLQdLQdLQdLQdPUkPUkQVlQVlRWmSXnSXnTYoX]sX]sX]sY^tY^tY^tZ_uZ_uyx˜}|œ~}{zš{zš|{›zy™ut”TSsFEe54T/.N:9YONn^]}dc‚fe„kk‡``|UUq[[w}}™¹””°qqoo‹vv’zz–ccFFbSSoxw–ˆ‡©‘´žœÁ§¥Ê¨¦Ë žÃ•“¸‹°Šˆ­rp•[Y~IGlDBg_]‚„‚§’’¶¶¶Ú¦©Ì’•¸„‡ªsv™X[~JMpPSvMPsZ]€qt—…ˆ«”—ºœŸÂŸ¢Å¦©ÌŠ°twšsv™vyœmp“TWz7:]58[hkŽ€ƒ¦ƒ†©{~¡ƒ†©‰Œ¯‹Ž±•˜»°²ÙÅÇîÀÂ髭Ԓ”»jl“Z\ƒsuœšœÃ©«Ò¨givxŸª¬Óíïÿëíÿ•—¾oq˜suœŽ·–˜¿•—¾šœÃ¦¨Ï­¯Ö›ÄˆŠ±~€§y{¢wy xz¡{}¤ŠŒ²—™¿´¶ÜÊÌòµ¸Û–™ºilbe„‘•²·»Ø¼Àۓ—²€„|€™v{‘rt‰rquswuƒyw…zx†xv„vt‚ustr€yw…|zˆ{y‡xv„xv„}{‰ƒ„‚ˆ†”‹‰—‹‰—‹‰—›™—¥¡Ÿ­ÈÆÔ¿½Ë”’ ŒŠ˜˜–¤¦¤²º¸Æ§¥²‹‰–ƒŒ|z…€~‰„‚zxƒmkvkitus~sq|tr}vtsq|pnysq|zx…€}‚”‚”†ƒ˜Œ‰žŒ¡ŠŸ‹ˆ¡ž³¡ž³®«Àš¯tq†yv‹£ µ·´Ç‚€omxgeppnyrp{igrkitwu€†„‡…‰‡’Šˆ“Šˆ“Šˆ“Šˆ“Šˆ“Šˆ–€~Œ|zˆ…ƒ‘Žœ–”¢š˜¦›©¡Ÿ­“‘Ÿª¨¶³±¿˜–¤›…ƒ‘dboXVcQOZ[Ydgepfdogepljuigrnlwrp{yw‚}ˆƒŒ„‚…ƒŽ…ƒŽzxƒwu€xv|z…}{†{y„|z…}ˆwu€omxtr}xvmkvnlw€~‰ŒŠ•jhs_]hjhs}{†|z…yw‚{y„us~pny€~‰vtecnƒŒ¨¦±ƒŒ75@b`k€~‰ˆ†‘…ƒŽ}ˆ€~‰‡…}ˆ€~‰xvfdomkvtr}igromx|z…»¹Ä½»Æ‚€‹XVawu€‰‡’}ˆ‹‰”¿½Èº¸ÃŠ_]higrjhsigrihpontrqvnmrnmrwv{{z{z~}‚jinWV[;:?327…„‰ÛÚßÚÙޑ–‰ˆ}ˆ|z…|z…|z…zxƒ„‚‹–fdodbma_j^\g][f][f\Ze\[cutz|{€yx}jin]\aYX]ZY^YX]XW\UTYZY^gfkonskjobaf]\a^]b_^ccbgfejhglfejdchcbgjinonsjin^]b]\acbga`eWV\MLTMKVMKVMKVMKVMKVMKVMKVQOZQOZRP[US^ZXca_jgepiisrr|lox_bkben|ˆ‡Š“wzƒiluwzƒx{„svknwhktjmvjmvgjs`clbencfoadm]`i[^g[^g\_h_bkX[dRU^QT]UXaX[dWZcTW`VYbWZcVYbQT]QT]Z]fbendgpdgpadm^aj\_hY\eWZcWZcY\eZXc_]ha_ja_jcalgephfqecn^\g`^ia_jb`kgepigrcalXX`dejdhkgknhlogkndhkaeh^beY]`SWZQUXUY\Y]`\`c]ad`chgjqiluknwjmvgjsgjsknwor{hktZ]fRU^VYb]`i]`iX[dUYbŠŽ—™ ¨†•^emSZbY`h\ckahpcjrx‡—Ÿ–¥ˆ—w~†sz‚x‡nt€kq}hnzhnzio{io{flxciurx„|‚Ž‡“…‘z€Œlr~^dp\bnoudjv[am_eqflxjp|kq}msqwƒrx„sy…tz†tz†rx„pv‚ov€mo{loxilufirben^aj[^gZ]fTW`SV_SV_RU^RU^QT]QT]PT]SWcV\hekwu{‡u{‡flxW]iPVbTZfV\hY_kZ`lX^jSYeNT`KR\VXdY\e\_h^aj^aj[^gWZcTW`MPYLOXJMVGJSDGPADM?BK=AJ=AM=]43S43SA@`WVvhg†zy˜uu‘ii…eeii…›ŽŽªvv’YYu``|uu‘€€œkk‡QQmZZvvu”„ƒ¥‹°š˜½£¡Æ¤¢Çœš¿‘´ˆ†«ƒ¦qo”ecˆXV{MKp[Y~{yž‹‹¯´´Ø«®Ñ—š½‚…¨ps–[^KNqILoLOr^a„ux›‰Œ¯–™¼¡¤Ç«®Ñ«®Ñƒ†©jmgjnq”kn‘WZ}@CfCFigjux›ru˜y|Ÿ‘”·‹Ž±}€£³°²ÙÏÑøËÍô¯±ØŒŽµWY€DFmhj‘¥§Îº¼ã‹´egŽpr™ª¬Óìîÿáãÿ’”»ln•vxŸ¶‘“º“•¼™›Â¬®Õ¬®Õ—™À„†­¨}¦xz¡xz¡}¦‹³›Ã·¹ßÇÉﰳ֔—¸jmŽadƒ•™¶¿ÃఴϊŽ©…ž…‰¢{€–y{ut„xv„|zˆ~|Š€~Œ}‹~|Š}{‰}‹}{‰zx†yw…wuƒwuƒvt‚}‹‚€Ž…ƒ‘„‚ƒŠˆ–‘¡Ÿ­Ÿ«|zˆxv„‡…“ ž¬ÇÅÓÃÁÎomzQOZMKV\Zedbmqozwu€kitsq|jhsecnkitsq|us~sq|qo|nk|ro‚zwŠ~‘„”‡„—Œ‰œ °­À¡ž±š—ªš—ª‘Ž¡ˆ…˜Œ‰œ–“¤trpnywu€„‚€~‰qozomxzxƒ‹–ŽŒ—ŽŒ—ŒŠ•ˆ†‘Šzxƒvt‚€Ž~|Š}{‰†„’‰‡•ŽŒš“‘Ÿ¤¢°‘š˜¦žœª}{‰qo}}{‰us€b`mTR]XVacal_]h^\gigromxmkvnlwqoztr}vtxvwu€wu€~|‡{y„zxƒ~|‡}ˆ}{†}ˆ„‚‡…†„}{†wu€us~omxxvŽ™nlwa_jkitzxƒwu€vt{y„xvsq|yw‚sq|kit}{†‘š}{†TR]fdo|z…ƒŒ„‚Š„‚‰‡’}{†gepnlwpny}{†{y„ljuyw‚ŒŠ•ª¨³›¦pny[Ydsq|{y„vt…ƒŽÐÎÙÎÌׁŠQOZa_jigrhfqbaibagjinlkpihmkjoons}|”utyNMR?>CDCHvuz¯®³¾½ÂŽ“…„Œzxƒomxqozpnymkvigrmkv^\g_]h_]h^\g\ZeYWbVT_UT\lkqwv{yx}nmra`e]\a^]b\[`\[`_^ccbgjinutyyx}mlq^]ba`ehglonssrwrqvlkpcbg\[`mlqrqvonsfejedijinediXW]JIQJHSJHSJHSJHSJHSJHSJHSQOZOMXNLWOMXTR]\Zeecniiszz„svben_bkqt}x{„qt}mpyy|…y|…uxmpyiluknwknwhktcfoehqgjsehqadm]`i\_h]`iVYbTW`SV_SV_VYbX[dX[dVYbUXaUXaPS\NQZSV_Z]fY\eVYbbenben^ajY\eTW`TW`VYbWZcSQ\ZXc`^icalfdojhsigrdbmcalcalb`kb`kfdoigrb`kWW_hinfjmeileildhkcgjbfibfiVZ]QUXRVY[_bcgjbfi`dg`ch]`g^aj_bk_bkadmhkttw€}€‰cfoSV_JMVQT]Z]f[^g[^g[_h‘š—ž¦~…U\dLS[V]e\ck`gofmuƒŠ’ž¥­Ÿ¦®Œ“›~…†Ž†•z€Œv|ˆqwƒpv‚qwƒpv‚lr~gmy…‘™Ÿ«¥«·“™¥u{‡^dp`frtz†}ƒougmyjp|lr~io{jp|pv‚pv‚rx„sy…u{‡u{‡u{‡sy…ryƒikwhktehqadm^aj[^gY\eY\eTW`SV_SV_RU^RU^QT]QT]PT]W[g\bnkq}z€Œz€Œjp|[amV\h_eqagsbhtags^dpX^jQWcMT^VXdX[d[^g^aj_bk^aj\_hZ]fTW`SV_PS\MPYJMVFIRDGPBFO@DP>DP>DP@FRDJVHNZMS_PVb\bn]co_eq^dp[amTZfNT`JP\AGSAGSAGSAGSAGSAGSAGSAGSEKWEKWEKWEKWEKWDJVDJVDJXIO_HN^GM]FL\EK[DJZCIYBHXGM]GM]GM]GM]GM]GM]GM]GL_INbJOcJOcKPdLQeMRfMRfMRfRWkSXlTYmUZnV[oW\pX]qX]qts“xw—yx˜vu•ut”vu•ts“onŽa`€VUuIHh=<\32R76VONnjiˆ•”³‰‰¥ww“ssuu‘{{—uu‘RRn??[MMinnŠ‚‚žss^^zdd€vu”€¢‰‡¬”’·œš¿›À–”¹ŒŠ¯…ƒ¨~|¡tr—nl‘fd‰ZX}][€sq–‡‡«µµÙ²µØŸ¢Åƒ†©ps–]`ƒILo?BeMPsbeˆx{ž³™œ¿¦©Ì´·Ú­°Ó€ƒ¦cf‰`c†kn‘nq”`c†NQtWZ}kn‘or•fiŒ~¤£¦É‰Œ¯il~¤¬®ÕÖØÿÔÖý³µÜ‰‹²HJq57^ceŒ§©ÐÁÃꐒ¹dfnp—ª¬ÓæèÿÑÓú‹´hj‘xz¡¶‘¸’”»˜šÁ°²Ùª¬Ó”–½‚„«€‚©¨z|£y{¢}¦‘“¹¡£É¸ºàÀÂ詬ϓ–·locf…—›¸¾Âߣ§Â… }š†Š£}‚˜}”vu…yw…{y‡~|Š€~Œ‚€Ž‚€Ž‡…“‚€Ž|zˆxv„xv„wuƒustr€zx†}{‰~|Šzx†usvt‚|zˆ‚€Ž…ƒ‘ˆ†”vt‚wuƒ‡…“£¡¯ÊÈÖÓÑÞomzJHSHFQUS^YWbwu€‘šƒŒxvhfq\Zea_jljupnyljuhfshevlizxuˆ|{x‹}z‹‰†™’ £ ³¡ž¯—”§‘ŽŸ”‘¤Š›|vs„ecpmkv~|‡ŒŠ•Šˆ“}{†{y„Šˆ†‘ˆ†‘ˆ†‘†„Šzxƒsq|omxxv„yw…zx†yw…wuƒwuƒ|zˆ›‡…“‘š˜¦|zˆgessqsq~b`ma_jb`kb`k^\gcaligrjhsmkvjhshfqigrljuomxpnyomx}ˆ{y„{y„~|‡~|‡|z…}{†Š‰‡’”’€~‰ecngepnlwyw‚ŽŒ—tr}fdomkvyw‚sq|qozxvwu€tr}rp{pnyqozvtzxƒxvsq|yw‚ŠƒŒ‰‡’„‚€~‰†„~|‡zxƒ„‚„‚ƒŒus~geptr}Š”’‚€‹igrfdous~vtwu€‡…ÏÍØÍË֋‰”][fhfqrp{rp{kjrsrxtsxqputsx}|~ƒ€…‰ˆqpuNMRUTYcbgrqvƒ‚‡–•š€…yx€rp{a_jdbmecnecnWU`US^XVa\Ze`^ia_j^\gYWbVT_TS[TSY[Z_`_d^]bXW\VUZVUZVUZ`_dfejkjoonsxw|~}‚utyedia`eihmqpurqvpotjin_^cUTYhgljingfkbafcbgedi]\aQPVHGOHFQHFQHFQHFQHFQHFQHFQQOZPNYPNYQOZSQ\WU`ZXc\\fhhrknwjmviluloxloxknwor{qt}svor{hktehqfirdgpadm\_h`clcfocfo^ajY\eUXaTW`SV_UXaY\eZ]f[^g]`iadmehq\_h[^gQT]MPYWZc]`iX[dSV_[^g_bk`cl\_hY\eWZcTW`PS\QOZXVa][f`^icalgepfdoa_jecndbmb`kcalhfqkitb`kUU]hineildhkbfiaehaehaehbfi[_bUY\UY\[_b]adX\_Y]`_bg_bi]`iZ]fY\e]`igjsux~Š[^gOR[HKTNQZWZcZ]f\_h^bk}Š‚‰‘mt|RYaNU]SZb[bjjqyt{ƒˆ——ž¦—ž¦—ŸŽ•Ž•Œ“›‚ˆ”€†’…‘‚ˆ”ˆŽš‹‘ŠœˆŽš¡§³±·Ã¯µÁ•›§v|ˆciukq}‚ˆ”~„rx„kq}mslr~gmyjp|sy…pv‚rx„tz†u{‡v|ˆu{‡tz†sz„egscfo`cl]`i[^gY\eY\eY\eWZcWZcVYbUXaTW`SV_RU^PT]\`lbhtnt€w}‰u{‡kq}ags]cohnzhnzhnzflxbht]coW]iT[eWYeY\e\_h^aj`cl`cl_bk^aj[^gY\eVYbSV_OR[KNWHKTFJSBFR?EQ>DP>DPAGSFLXKQ]NT``fr`fr`fr^dpZ`lU[gOUaLR^FLXFLXFLXFLXFLXFLXFLXFLXHNZHNZGMYGMYFLXEKWEKWEKWHN\HN\GM]FLZEK[DJXCIYCIWHN^HN\HN^HN\HN^HN\HN^HN^FK^GL`GL`HMaINbINbJOcJOcQVjQVjQVjRWkRWkRWkSXlSXlrq‘vu•wv–ts“sr’ut”sr’nma`€ZYyQPpFEe54T21QLKklkŠ¦¥Ä——³||˜xx”}}™xx”bb~;;W,,H??[hh„……¡}}™nnŠrrŽ{z™~ …ƒ¨²–”¹–”¹‘´‰‡¬ƒ¦|zŸywœus˜pn“hf‹a_„mk……©¸¸Üµ¸Û£¦Éˆ‹®ru˜Z]€BEh69\SVyhkŽ{~¡’µšÀ©¬Ï¸»Þª­Ð‚¥`c†\_‚kn‘sv™jm]`ƒilmp“jmad‡Š°¸»ÞŒ²Z]€ru˜®°×ÞàÿÞàÿ·¹à†ˆ¯<>e')P]_†¢¤Ë¿Á蒔»hj‘rt›«­ÔÝßÿ¾À瀂©`b‰y{¢’¹’”»•—¾™›Â´¶Ý¨ªÑ“•¼‚„«¨€‚©}¦{}¤}¦‘“¹¨ªÐÀÂè¾À杠ȋ¬lomp•™¶¸¼Ù–šµz~™vz“€„{€–~€•ut„vt‚wuƒyw…|zˆ}‹‚€Žƒƒ}{‰yw…vt‚xv„|zˆ€~Œyw…zx†yw…rp~ljxljxrp~xv„zx†{y‡vt‚wuƒ}{‰‰‡•š˜¦¡Ÿ¬…ƒqoztr}xvsq|‹‰”¦¤¯Ÿ¨}{†jhs[Yd_]hjhsnlwkitgernlzqo}|„‚xu†us‚‹™’ ™—¥˜•¦‹‰—ƒ€‘…ƒ‘~{Œom{ecppny~|‡‡…ˆ†‘„‚‚€‹Š~|‡}{†{y„yw‚vtus~sq|sq|zx†{y‡zx†usqo}om{qo}rp~vt‚}{‰„‚ŒŠ˜zx†gesmkyjhuecpfdodbmcalcalb`kecnnlwyw‚sq|ljujhsmkvqoztr}us~{y„xvxv|z…{y„wu€vtyw‚€~‰†„us~^\g^\gkit}{†Ž™xvkitqozzxƒrp{nlwsq|sq|sq|omxomxrp{sq|sq|wu€~|‡„‚Š‚€‹ŒŠ•€~‰tr}Š†„‡…‹–ƒŒ|z…us~tr}~|‡zxƒ‚€‹xvpnytr}xvxv}{†‰‡’©§²£¡¬}{†b`kecnjhsmkvonv~„}|zy~~ƒ†…Š€„wv{zy~ediWV[ihmtsxutynmrvuzmlrihpkit[Yd^\g^\gdbmRP[OMXPNYVT_^\g`^i][fXVaTR]RQYHGMFEJGFKJINKJOIHMIHMKJO\[``_dgfknmrutywv{rqvkjodchjinkjohglfejedi`_dYX]cbg_^cYX]WV[YX]YX]RQVKJPIHPIGRIGRIGRIGRIGRIGRIGRQOZQOZQOZRP[RP[SQ\SQ\RR\ZZd`clor{wzƒsvor{nqzloxor{qt}ps|jmvgjsfircfo^ajRU^X[d]`i^ajY\eRU^LOXHKTcfohktknwhktcfodgpnqzwzƒfirdgpVYbOR[Z]fadm[^gX[dWZc]`iadmadmadmadmZ]fRU^XVa[Yd\ZeZXc[Yd`^ib`k_]ha_jb`kcalgepmkvnlwb`kRRZdejbficgjcgjbfiaeh_cf^be\`cX\_X\_Z^aVZ]W[^jnq‚…Špszjmvadm\_h]`icfojmvnqzTW`OR[LOXPS\UXaX[dY\eY]f_clahpW^fKRZFMU?FNKRZkrz‰˜…Œ”~…‚‰‘–¥§®¶¤¬‡Ž–‚ˆ”„Š–ˆŽš•¡˜žªŸ¥±£©µ¥«·°¶Â­³¿œ¢®‰›…‘x~Šx~Š€†’{rx„msnt€msio{nt€x~Šqwƒrx„sy…sy…sy…qwƒoumt~`bn^aj\_hY\eX[dX[dZ]f[^g]`i\_h[^gY\eWZcUXaSV_QU^aeqgmynt€oulr~io{flxciukq}jp|io{hnzekwciu`fr_fpXZfZ]f\_h_bk`cladmadmadm`cl^aj[^gWZcSV_OR[LOXIMVCGS?EQ=CODPCIUHNZKQ][amZ`lY_kW]iU[gRXdPVbNT`KQ]KQ]KQ]KQ]KQ]KQ]KQ]KQ]JP\JP\IO[HNZGMYFLXEKWEKWGMYGMYFLZFLXEKYEKWDJXDJVJP^JP\JP^JP\JP^JP\JP^JP^DI\DI\EJ]FK^FK^GL_HM`HM`PUhOTgOTgOTgNSfNSfMReMRerq‘vu•wv–ts“sr’ut”rq‘nm_^~ZYyVUuKJj87W10PKJjnmŒª©È™™µzz–ww“€€œxx”\\x66R"">77Seeˆˆ¤„„ yy•||˜€ž~}Ÿƒ¦‹‰®‘´’µŽŒ±‡…ª‚€¥|zŸ}{ ywœvt™qo”db‡jh……©»»ßµ¸Û£¦ÉŒ²twšVY|;>a14WX[~mp“}€£“¶›žÁª­Ðº½à¦©Ì‚¥_b…[^lo’wzqt—gjux›kn‘eh‹^a„”—ºÈË·TWzmp“´¶Ýçéÿæèÿ»½ä„†­35\EVXŸÆ¼¾å’”»km”vxŸ¬®ÕÖØÿ±³ÚvxŸZ\ƒz|£“•¼•—¾˜šÁšœÃ¶¸ß¦¨Ï“•¼‚„«~€§€‚©¨|~¥|~¥‹³­¯ÕËÍóÀÂ葔·{~Ÿloy|›’–³²¶Ó‘¬uy”osŒz~—x}“|~“rqsqsqtr€wuƒ{y‡€~Œƒ}{‰}‹}‹zx†usxv„„‚ŽŒšzx†zx†vt‚om{hftgesnlztr€sqqo}vt‚zx†~|Š}‹{y‡}{ˆ€~‹ƒŒŒŠ•ˆ†‘{y„†„—• •“ž}ˆmkv^\gb`kmkvrp{pnymkvwu‚zx†ˆ†”Šˆ–wuƒom{{y‡…ƒ‘”’ ‹‰—Šˆ–…ƒ‘{y‡ƒƒnlyomxvt|z…}ˆƒŒ…ƒŽ‚€‹|z…yw‚vtrp{nlwnlwqozus~xvƒ}{‰wuƒsqrp~om{ljxmkyyw…vt‚vt‚om{fdrmkygerqo|hfqa_jigrmkv^\ga_j}{†Ž™†„{y„sq|sq|us~wu€wu€wu€us~vtyw‚xvsq|pnyrp{|z…sq|mkvjhsecnkit‚€‹™—¢zxƒmkvtr}}{†rp{ljupnynlwpnypnypnypnyrp{us~xv{y„‚€‹zxƒ~|‡ŒŠ•{y„hfq}{†ŽŒ—˜’›…ƒŽ}{†}{†Š}{†cal{y„xvyw‚yw‚sq|rp{wu€zxƒ„‚~|‡us~qozomxjhsigrqpxpouzy~„ƒˆŠ‰Ž‡†‹xw|onsvuz]\a_^clkpmlqsrwlkppotnms]\dgepZXc][f[YdecnTR]RP[HFQPNYYWb][fZXcTR]PNYNMULKQBAF=FELTry™ ¨€‡gnvpw›¢ªºÁɦ­µ~…ƒ‰•…‹—‰›•¡•›§›¡­Ÿ¥±¡§³Ÿ¥±œ¢®•¡„Š–ƒ‰•€†’}ƒ‡“€†’z€Œtz†rx„nt€kq}pv‚x~Šrx„rx„rx„rx„pv‚lr~io{gnx]_k[^gY\eWZcWZcX[dZ]f\_hadm`cl^aj[^gY\eVYbTW`RV_cgsjp|nt€hnzekwhnzio{flxkq}jp|io{hnzgmygmygmygnxZ\h[^g]`i_bkadmadmadmadmbenadm]`iY\eUXaQT]NQZKOXCGS?EQ^65UONn^]|xw–}}™||˜˜˜´œœ¸vv’SSo++G92LLhˆˆ¤  ¼›||˜‚ |{ŒŠ¯’µ²Ž³²‰‡¬‡…ª–”¹ƒ¦{yž}¢ywœvt™igŒƒƒ§¥¥É½À㸻ޗš½sv™LOr36Y69\\_‚ps–€ƒ¦“¶˜›¾¦©Ì·ºÝ®±Ô„§LOrRUx}€£’µŠ°€ƒ¦ƒ†©ps–NQt~¤·ºÝÊÍ𒕸QTwil³µÜèêÿíïÿÁÃꅇ®:=]54TLKk]\{poŽzz–›ŸŸ»¡¡½xx”TTp--I91EEa€€œœœ¸‚‚ž›„ƒ¢€¡‹°“‘¶”’·˜–»“‘¶‹‰®‰‡¬”’·‚€¥wuš|zŸxv›us˜jh‚‚¦££ÇÁÄ缿♜¿ux›ILo.1T7:]`c†qt—~¤Œ²•˜»¤§Ê·ºÝ¯²Õ€ƒ¦MPsSVy~¤“–¹’µ‚…¨‚…¨hkŽNQt‚…¨¼¿âÉÌµKNq`c†¬®ÕäæÿîðÿÆÈ²<>e"$KMOv’¹¼¾å ¢É¶‹´ ¢ÉÆÈÌjl“\^…ƒªŒŽµ•—¾™›Â›Ä¡£ÊœžÅ‘“ºŠŒ³‚„«z|£xz¡np—Z\ƒ‰‹±ÅÇíéëÿÅÇ퍐³ad…[^‚…¤¢¦Ã³·ÔŽ’­{šjn‡mqŠv{‘vxqp€nlzigugeskiwtr€~|Š…ƒ‘}‹}{‰yw…vt‚usvt‚yw…{y‡rp~qo}mkyges_]k[Yg[Yg\Zhfdrgeskiwmkyigub`nb`ngervtyw‚|z…|z…yw‚tr}pnymkvomxsq|sq|qozmkvb`ka_jmkvvt‚€‹‰–‡…’{y†tryw„‚€ˆ†“‘œ“‘žŠˆ•‚€‚€…ƒ…ƒ~|‡omxtr}‹‰”§¥°ÄÂÍÇÅб¯º}{†qozcal_]hecnomxvtyw‚ƒ•“¡¢ ®¢ ®ˆ†”yw……ƒ‘„‚om{ges€~Œ›~|Šsqtr€us€sq~nlwmkvljuwu€tr}XVaOMX—• ·µÀ•“žljua_jgep|z…vttr}wu€xvus~nlwhfqgephfqgepkitomxomxljuljupnytr}pnyigrmkvrp{nlwomxyw‚}{†us~{y„}ˆ…ƒŽŒŠ•ˆ†‘yw‚mkv}{†ŒŠ•˜…ƒŽlju^\gqoz|z…}ˆŠ|z…wu€xvvtxv‚€‹‹‰”˜…ƒŽpnykitsq|igrRP[fdoljunlwljuljumkvjhsedl]\bcbgkjoonsmlqhglbaf_^cZY^QPUTSX_^c_^c^]bbaf`_ebaia_ja_ja_ja_j`^i`^i`^iWU`VT_TR]RP[PNYNLWLJULKSMLRMLQNMRPOTQPUONSNMRNMRBAFLKPXW\[Z_UTYRQV\[`hglfejihmlkpjindcha`efejlkplkpfej`_d^]b^]b\[`WV[RQWSRZSQ\TR]SQ\QOZOMXLJUJHSKITKITLJUNLWPNYTR]WU`WWa__i^ajor{„{~‡firfirx{„¤§°¿Â˧ª³„wzƒ~ŠŒ˜‹Ž—}€‰ilu^ajOR[dgp…ˆ‘“œ²µ¾ØÛäÍÐÙ¥¨±‚‹X[dY\e]`ijmvnqzilufiriluor{qt}jmvadm[^g^ajadm`cl]`i[^g\_h^ajb`kecnhfqecn^\gZXc[Yd][f^\gZXc][fecnfdo^\gYWbYYaefkkoruy|z~w{~osvhlocgjnrunrumqtlpsrvyƒ‡Š›Ÿ¢­°µƒ†tw€hktilumpyknwfirben`cliluqt}ru~knwdgpadmaenW[d[bj]dlT[cIPXKRZ]dlnu}‚‰‘ipxKRZQX`{‚Š’™¡Œ“›†•Šœ{u{‡…‘‹‘‹‘‡™†Œ˜–¢‡™{sy…sy…z€Œ‡“…‹—‡™†Œ˜ƒ‰•}ƒw}‰tz†u{‡w}‰v|ˆtz†pv‚io{bht_eq`frcjtegs`clY\eSV_RU^VYb\_h`clhktiluknwloxknwilufirdhqgkwgmyhnzflxbht]co[am\bn_eq_eqY_kW]iekwx~Šy‹ls}bdpbenbenadmadmadm`cl`clY\eX[dVYbTW`QT]OR[MPYKOXGKWCIU@FR>DP?EQAGSEKWGMYFLXFLXFLXFLXEKWEKWEKWDJVJP\JP\JP\JP\LR^MS_OUaPVbRXdRXdRXdRXdRXdRXdRXdRXdLS]LS]MT^NU_OV`OV`PWaPWa[blZakY`jW^hU\fSZdRYcQXbJP\JP^KQ_LR`LR`MSaNTbNTbNTbMSaKQ_IO]FLZDJXBHVAGUmlŒqpts“ts“rq‘popoqpnmlk‹^]}ONn<;[43SHGgZYxfe„ww“††¢ªªÆ¨¨Äzz–UUq11M:1::VrrŽ””°‡‡£……¡‰ˆ§†…§‹°“‘¶›™¾¡ŸÄ™—¼ŒŠ¯‹‰®‘´~|¡pn“xv›wušus˜lj‚‚¦¢¢ÆÉÌïÅÈ뜟Âux›ADg%(K9<_fiŒtwš~¤Š°’•¸¢¥Èµ¸Û­°Ó€ƒ¦QTwVY|‚¥™œ¿˜›¾†‰¬€ƒ¦[^NQt‰Œ¯ÄÇêÆÉ숋®BEhQTw£¥ÌÝßÿîðÿËÍô¶=?f%'NOQx’”»¾À稪і˜¿“•¼¦¨ÏÇÉð¥§Îmo–\^…¨‹´•—¾›ÄšœÃŸÆ™›Â’¹ˆŠ±‚„«}¦y{¢np—]_†µÈÊðçéÿÁÃ銍°^a‚VYz€ƒ¢¨¬É¹½ÚŽ’­z~™quŽosŒpu‹pr‡on~mkyigugesjhvqo}yw…~|Š{y‡xv„tr€qo}pn|rp~uswuƒrp~qo}mkyges_]k[Yg[Yg\Zha_mdbpiguhft`^lWUcXVd_]jfdqecndbmecnfdohfqhfqhfqrp{sq|rp{qozfdoRP[RP[fdosq|yw‚|z…vtnlwkitrp{{y„~|‡ŒŠ•ŒŠ•{y„nlwrp{wu€wu€igr^\gb`kyw‚¡ŸªÎÌ×ÓÑܳ±¼‘š†„yw‚rp{tr}yw‚~|‡Š‹‰—£¡¯ÅÃÑÊÈ֔’ pn|„‚”’ €~Œtr€ŽŒšª¨¶›yw…€~Œyw„trrp{qozkitus~yw‚b`kTR]ecn¦¤¯¥£®}ˆjhsmkvtr}`^ia_jhfqomxqozmkvhfqfdoecnfdoljurp{qozmkvljurp{xvomxomxus~vtmkvmkvyw‚‚€‹wu€~|‡ƒŒ˜š˜£‹–zxƒwu€us~}{†‚€‹yw‚XVaQOZomxzxƒƒŒ€~‰zxƒzxƒ}{†zxƒ}ˆŽŒ—•“ž›¦˜‡…—• •“ž€~‰xvzxƒ{y„xvqozljuigrdbm_^f^]ccbghglihmfejdchdchfejZY^POTQPUWV[\[`a`e`_d]\b_^f`^i`^i`^i`^ia_ja_ja_j[YdZXcXVaVT_SQ\PNYOMXMLTVU[UTYZY^cbgcbg[Z_VUZXW\WV[TSXWV[`_dbafa`egfkqpuihmfejhglmlqpotsrw€…‘•‰ˆ„ƒˆ}|utyonslkpjinihn`_g_]h^\gZXcUS^PNYKITHFQFDOHFQLJUPNYSQ\VT_WU`WWa``jadmloxsvfirWZcehq„¿ÂËÐÓܲµ¾ƒ†nqzor{€ƒŒ‹Ž—®±º›ž§ben>AJru~š¦Ÿ¢«ÏÒÛÍÐÙ¢¥®svehqY\e[^g`clor{ru~ehqjmvsvloxilunqzor{^aj^aj^aj]`i[^g[^g]`i_bk][f][f\Ze[YdZXcZXc[Yd\Ze`^iXVaZXcb`kb`k][fcalppxjkpkornrunrumqtlpsmqtnruw{~x|y}€x|y}€…ˆ“–™œ¡€ƒŠwzƒor{knwfir`cl_bkadmehqjmvor{or{ilucfo`cl^bkW[dY`h[bjX_gU\dY`heltpww~†ipxW^fU\dfmuw~†€‡ƒŠ’ˆŽšy‹pv‚u{‡y‹v|ˆx~Š~„Šœ…‘rx„lr~mssy…y‹}ƒ‰›‰›‡™‡“{w}‰w}‰x~Šu{‡tz†qwƒkq}ciu^dp\bn]dnjlxehq_bkZ]fY\e]`ibengjshktknwor{ru~svps|loxhlufjvflxhnzflxags]co[am[am_eq]coV\hU[glr~†Œ˜„Š–qx‚ceqcfobenadm_bk^aj]`i]`iVYbUXaTW`RU^OR[MPYLOXJNWEIUBHT?EQ>DP?EQBHTFLXIO[FLXEKWEKWCIUBHTAGS@FR?EQEKWDJVCIUCIUEKWIO[MS_PVbTZfTZfTZfTZfTZfTZfTZfTZfPWaPW_QX`RYaRYaSZbT[cT[cZaiY`hX_gW^fV]eT[cT[cSZdLR^MS_MS_NT`OUaOUaPVbPVbPVbOUaMS_KQ]HNZFLXDJVCIUmlŒqpts“ts“rq‘popoqpqpnma`€POo;:Z32RDCcVUta`ww“©µµÑ¯¯Ë{{—VVr44P!!=2--Iaa}‰‰¥©ŒŒ¨Ž­‹Š¬²”’· žÃ§¥Ê›™¾‹‰®Šˆ­ŒŠ¯ywœfd‰sq–vt™us˜om’‚‚¦££ÇÓÖùÏÒõ¡¤Çsv™69\Be')PTV}‘“º½¿æ­¯ÖŸ¡ÈŸÆ­¯ÖÆÈ不Înp—\^…}¦‰‹²•—¾›Ä™›ÂšœÃ˜šÁ‘¸†ˆ¯ƒª¨y{¢mo–acŠ’”ºÊÌòæèÿÀÂ茏²\_€NQrwz™ª®Ë»¿ÜŒ«y}˜vz“ptin„jlgfvigukiwnlzpn|rp~sqsqwuƒtr€pn|mkymkynlzqo}sqrp~qo}mkyges_]k[Yg[Yg\Zh][icaojhvjhv_]kSQ_RP^XVcWUbSQ\QOZRP[WU`^\gdbmgepsq|tr}rp{nlwdbmRP[OMX^\gljuljumkvomxpnypnypnyomxnlwŠ„‚pnya_jecnkitigrqozigrnlw}{†—• º¸ÃÁ¿Ê©§² ž©—• ‹‰”‚€‹~|‡}ˆ‚€‹„‚†„’›™§¾¼Ê¿½Ë‚€Ž_]k~|Š‘›™§š˜¦žœª®¬ºš˜¦zx†€~Œ„‚|z‡nlwqoztr}tr}mkvcalnlwlju‹‰”‹‰”ƒŒ€~‰xvpny][fXVa[Ydcalljutr}us~nlwhfqjhsnlwrp{sq|rp{sq|vtzxƒomxqozrp{jhs`^i`^iomx}{†vt~|‡€~‰ˆ†‘”’Šˆ“{y„}{†rp{xvus~ljuTR]PNYkitwu€„‚‚€‹ƒŒ‹‰”Ž™‰‡’‹‰”›™¤ÂÀËÆÄ϶´¿®¬·¶´¿§¥°‹–‰‡’†„…ƒŽŠyw‚pnyhfq_]hZYaWV\]\acbgdcha`e_^c_^ca`eWV[SRWWV[VUZYX]a`e`_d`_e^]e^\g_]h_]h`^i`^i`^ia_j\Ze[YdYWbVT_SQ\PNYNLWMLTWV\SRWYX]ediediYX]TSXYX]edilkpsrwtsxnmrhglihmnmronsihmlkpwv{~}‚‚†‘•¤£¨’‘–‘•Œ‹€…wv{rqvutyyx~kjrjhsfdoa_jZXcRP[KITGEPIGRLJUPNYTR]VT_WU`VT_UU_``j_bkdgpdgpVYbOR[ben~Šª­¶º½Æ§ª³ƒ†ps|mpy|ˆ“–ŸÆÉÒ«®·benEHQ†‰’©¬µ¥¨±ÓÖ߸»Ä¥¨±’›†‰’Š–Ÿ¢«ª­¶§ª³{~‡ilumpyy|…svor{uxux^aj[^gY\eX[dY\e\_h^aj_bk\ZeYWbVT_WU`\Ze`^ib`kb`kdbmXVaSQ\[Ydgepqoz|z…„„Œlmrjnqhlodhkaehbfifjmjnquy|x|{‚{‚y}€z~~‚…„‰ru|or{knwdgpX[dOR[RU^Z]fehqgjshktgjscfo^aj[^gX\eUYbT[cW^fZai^emdksjqynu}pwjqycjr\ck[bjhowu|„x‡{oujp|nt€nt€jp|rx„‡“„Š–v|ˆio{djvgmykq}qwƒv|ˆ‚ˆ”ƒ‰•ƒ‰•…‘z€Œw}‰w}‰x~Šy‹x~Šsy…kq}ciu^dp]co^eonp|jmvehqadm`cldgpilumpyloxps|uxy|…y|…uxor{jnwdhtekwflxdjv_eq[amY_kY_k_eq[amRXdSYepv‚•¡Œ’žt{…dfrdgpbenadm_bk]`i\_h[^gTW`TW`RU^QT]OR[MPYLOXJNWCGS?EQ=CODP=CODPDPDJVIO[MS_U[gU[gU[gU[gU[gU[gU[gU\fSZbSZbT[cU\dU\dV]eW^fW^fX_gX_gX_gW^fW^fV]eV]eV]eOV`PVbPVbQWcRXdSYeSYeSYeRXdQWcOUaMS_KQ]HNZFLXFLXmlŒqpts“ts“rq‘popoqprq‘mlŒed„RQq<;[43S?>^SRq_^}xx”’’®¼¼ØµµÑ}}™XXt::V((D6"">QQm›””°””°•”³±’µ—•º¡ŸÄ¨¦Ëš˜½‰‡¬‡…ª„‚§qo”[Y~ljtr—vt™tr—„„¨¥¥ÉÙÜÿÙÜÿ¦©Ìmp“*-P=BEhqt—~¤†‰¬‘”·—š½¡¤Ç¬¯Ò Ã€ƒ¦^a„_b…}€£œŸÂ£¦ÉŠ°z} ILoY\™œ¿ÏÒõ²µØsv™36Y9<_—™ÀÏÑøéëÿÌÎõ‡‰°8:a(*QXZ¶¶¸ß­¯Ö¢¤Ë¤¦Í³µÜÄÆí¢¤Ëoq˜\^…}¦ˆŠ±”–½™›Â—™À˜šÁ˜šÁŽ·ƒ…¬~€§¨y{¢np—gi˜šÀÌÎôäæÿÂÄꔗº_bƒHKlmp¦ªÇ¶º×‡‹¦y}˜vz“nr‹didf{dcsigunlzrp~tr€tr€rp~qo}ussqom{ljxkiwljxom{qo}rp~qo}mkyges_]k[Yg[Yg\ZhZXfcaomkypn|ecqWUcTR`YWdPN[NLWMKVNLWSQ\[Yddbmigrzxƒ~|‡xvomxhfq\ZeSQ\TR]jiqkjrpow|{ƒ„ƒ‹~†mlt]\dcbjxw~}…mlt`_gdckhgodckhfqdbmomxyw‚xvƒŒ˜Šˆ“—• “‘œ‹‰”ƒŒ}{†|z…€~‰ƒŒ‹™ŽŒš—•£‘hft\Zhvt‚vt‚¥£±ÇÅÓ±¯½™—¥–”¢„‚‰‡”~|‰igromx{y„yw‚mkvfdoxvŠ€~‰}ˆ˜”’~|‡ljub`ka_jb`kgepomxwu€zxƒwu€sq|pnynlwnlwrp{xv{y„{y„yw‚rp{vtsq|gep^\g^\gigrus~pnyxvus~tr}}{†€~‰{y„|z…}{†…ƒŽvtkitcal[Ydfdoqoz}{†€~‰ˆ†‘–”Ÿœš¥’›˜›™¤¡Ÿª ž©›¦œš¥œš¥—• ˜‹‰”„‚ƒŒƒŒ€~‰xvmkvcal^]e]\b`_dcbgbaf^]bZY^ZY^ZY^[Z_XW\\[`UTY^]bmlqcbg`_e_^f_]h_]h_]h_]h_]h_]h_]hYWbXVaVT_TR]QOZOMXMKVLKSLKQGFKKJOXW\[Z_TSXSRW[Z_ˆ‡Œ¯®³ÊÉι¸½“’—{zvuzwv{nmrkjorqv~}‚€„yx}yx}‚†potvuzzy~srwgfkcbgjintsypownlwjhsdbm][fUS^NLWIGRRP[TR]VT_XVaWU`US^SQ\PPZ[[eZ]f[^gX[dOR[MPY\_hps|…ˆ‘—š£—š£„‡vy‚loxtw€’›ÂÅ̟¨cfo_bk”— Ÿ¢«‹Ž— £¬™œ¥©¬µ¯²»œŸ¨•˜¡¨«´µ¸Á¥¨±‚‹x{„x{„‚‹„‡‚…Žx{„nqzben]`iX[dWZcY\e\_h[^gY\eTR]QOZPNYVT__]hhfqljuljub`kZXcSQ\^\g{y„“‘œ”’‡‡klqimpfjmbfi^be^beaeheiljnqnrurvytx{rvyptwnrumpuehoehqcfo]`iPS\GJSLOXWZcloxjmvhktfirehqben_bk[_hTXaQX`SZbY`hbiqhowjqyjqyov~nu}jqyahp]dleltmt|krzbht_eqflxrx„qwƒms|‚Ž“™¥€†’pv‚ags_eqbhtflxjp|pv‚v|ˆy‹z€Œy‹v|ˆu{‡u{‡w}‰€†’|‚Žu{‡kq}ciu`frbhtelvpr~mpyhktfirfirilunqzqt}tw€wzƒ{~‡~Š|ˆwzƒqt}koxdhtdjvflxdjv_eqZ`lY_kY_k^dpY_kOUaSYeouŒ’ž‰›t{…egsehqcfoadm`cl^aj\_h\_hUXaTW`SV_RU^QT]OR[NQZMQZBFR>DP;AM:@L:@L=COAGSDJVGMYFLXEKWCIUAGS?EQ>DP=CO;AM:@L8>J8>J:@L@FREKWIO[U[gU[gU[gU[gU[gU[gU[gU\fT[cT[aU\bU\bV]cW^dX_eX_eW^dW^dW^dX_eX_eY`fY`fY`hSZdSZdSZdT[eU\fV]gV]gW^hT[eT[eRYcOV`MT^KR\IPZHOYmlŒqpts“ts“rq‘popoqppokjŠhg‡UTt?>^76V<;[ONm_^}ww“’’®¾¾Ú¸¸Ô__{DD`00L!!=5CC_ww“››·šš¶š™¸•”¶›™¾žœÁ¢ Å¥£È˜–»‰‡¬†„©{yžigŒPNsfd‰tr—wušzxˆˆ¬¢¢ÆØÛþÞáÿª­Ðeh‹"%HAORu{~¡†‰¬Œ²–™¼šÀ¡¤Ç§ªÍ–™¼„§gjeh‹z} ˜›¾¡¤Ç‰Œ¯x{žILocf‰Ÿ¢ÅÏÒõ¢¥ÈhkŽ03V7:]‘“ºÈÊñæèÿÌÎõƒ…¬24[&(OWY€†ˆ¯ª¬Ó¦¨Ï¡£Ê©«Ò¸ºáÀÂ雝Änp—\^…~€§‰‹²’”»–˜¿•—¾˜šÁ™›ÂŽ·¨z|£~€§xz¡oq˜np—œžÄËÍóÞàÿÀÂ蛞ÁfiŠHKljmŒ¡¾ª®Ë… x|—rvim†bg}`bwhgwkiwom{sqvt‚wuƒwuƒwuƒvt‚sqpn|mkyljxmkypn|rp~rp~qo}mkyges_]k[Yg[Yg\Zh\Zhcaomkyrp~kiw_]k\Zh`^kRP]TR]US^TR]TR]XVa_]hecn†„ŒŠ•†„{y„tr}gepXVaQOZts{qpxrqyxw~}…xwfemVU]ZYakjrrqygfn\[c^]ea`h^]ecalcalvtŠpnyjhsyw‚„‚†„‡…„‚}ˆzxƒ{y„€~‰†„·µÃ¢ ®‹‰—}‹nlzqo}zx†cao”’ ÓÑßÁ¿ÍŽŒšŽœ—•£Šˆ–„‚vtgeppny|z…}ˆ|z…nlwlju~|‡}ˆˆ†‘•“žŽŒ—sq|cala_jb`kecnhfqhfqhfqljutr}{y„pnykitigrnlwxv}{†{y„vtxv}{†xvomxljukitljupnyhfqjhsigrgepjhssq|wu€vtwu€ƒŒus~omxomxdbmecnljuqozxv€~‰‹‰”Ž™‡…Šˆ†‘‰‡’†„‡…ƒŒ~|‡‹‰””’‹–…ƒŽ„‚„‚„‚|z…omxdbm`_gYX^XW\WV[WV[XW\YX]YX]XW\fej^]b]\aWV[mlq‚†jin\[a`_g`^i_]h^\g][f\Ze\Ze[YdTR]SQ\RP[QOZOMXNLWMKVMLTIHNFEJKJOVUZ\[`]\abafihm–•š¼»ÀÏÎÓ·¶»‘•{zqpujindcha`edchjinihm`_d^]ba`eSRWa`elkpfejUTYLKPSRW^]cmltljuigrdbm^\gWU`QOZNLWZXcZXcYWbWU`TR]QOZNLWLLVTT^SV_TW`QT]LOXLOXUXa`clru~„Œ˜†‰’}€‰nqzor{“œÂÅΑ”nqz}€‰ £¬¤§°—š£˜›¤™œ¥­°¹¾ÁÊ£¦¯‰Œ•„†‰’svmpy”— ˜›¤†‰’†‰’‚…Žsvqt}jmvben[^g[^g^aj_bkZ]fTW`ECNDBMGEPOMXZXcdbmhfqigr^\g_]hb`kqoz‘š¨¦±›™¤‡efkcgjbfi^beZ^aX\_Z^a]ad`dgcgjgknjnqimpgkncgjadi_bi^aj^aj[^gSV_MPYTW`_bkor{knwfirdgpfirfircfo^bkVZcRYaRYaY`hbiqhowhowfmupwsz‚mt|biqahpfmufmubiqPVbX^jms‡“…‘w}‰‡™¤ª¶…‘kq}\bn\bnagsciugmymsousy…v|ˆw}‰u{‡tz†u{‡w}‰‡“}ƒu{‡kq}djvbhtekwipzoq}mpyjmvhktiluloxps|svy|…{~‡~Š‚‹}€‰x{„svnr{gkwgmyio{gmybht]co\bn\bn]coV\hNT`SYeio{…‘}ƒov€fhtehqdgpcfobenadm`cl_bkX[dWZcWZcVYbUXaTW`SV_RV_EIU@FR=CO:@L:@LDP=CO>DP@FRBHTJP\JP\IO[IO[IO[HNZHNZHNZBHTBHTBHTCIUDJVEKWGMYHNZRXdRXdRXdRXdRXdRXdRXdRYcPW]PX[PX[QY\RZ]S[^S[^T\_T\_U]`V^aX`cZbe\dg]eh^ekX_gX_iY`jZakZak[bl\cm\cmY`jX_iV]gT[eQXbOV`MT^LS]mlŒqpts“ts“rq‘popoqpihˆed„lk‹ZYyEDd<;[98XKJi]\{oo‹ˆˆ¤¹¹Õ»»×‹‹§ppŒ[[w>>Z++G-55QnnŠ¤¤À¢¢¾Ÿž½¡ Â¯­Ò°®Ó¦¤É¡ŸÄ™—¼ŽŒ±Šˆ­om’][€A?d^\sq–zx‚€¥ŽŽ²——»ÊÍðÜßÿ¬¯ÒZ]€"E/2Ukn‘‘”·–™¼”—º—š½˜›¾ž¡Ä¥¨Ë“–¹ƒ†©ru˜mp“twš³šÀ…ˆ«wzQTwsv™¦©ÌÊÍðŒ²Z]€14W;>a„†­¾ÀçæèÿÒÔû„†­,.UFLNuxz¡–˜¿—™ÀšœÃ¬®Õ½¿æ¹»â‘¸jl“]_†‚„«‹´‘¸‘“º’”»™›ÂŸÆ‘¸z|£suœz|£vxŸrt›xz¡ ¢ÈÅÇíÍÏõ¶¸Þ¢¥ÈvyšWZ{x{šŒ­“—´x|—w{–hl…`d}bg}]_tbaqkiwwuƒ…ƒ‘ƒ}{‰yw…zx†wuƒsqpn|om{qo}tr€vt‚rp~qo}mkyges_]k[Yg[Yg\Zhecqcaoecqigujhvigumkysq~~|‰†„‹‰”„‚vtljuljuqozŠˆ“‘š™—¢œš¥˜sq|gepqpx{z‚|{xw}nmsdcia`fhgmpoudcigflfek_^dYX^YX^\[a^]cgepgepyw‚„‚vtpnyus~us~sq|wu€wu€qozhfqecnjhspnyŽœ›„‚‚€Žzx†tr€zx†vt‚caoxv„¶´ÂÇÅÓ®¬º§¥³–”¢€~‹nlydbmvt}ˆyw‚vtrp{vt}{†rp{yw‚ƒŒ€~‰rp{jhspny†„us~^\gNLWKITQOZXVa][f`^ib`kecnhfqkitnlwqozsq|{y„xvhfq_]hljuvtsq|rp{^\gNLW_]htr}jhsecnmkvkitomxyw‚†„‹‰”vtfdojhs_]hmkvpnyhfq^\g][f\Ze\Zeb`kqoztr}calNLW_]h‰‡’™—¢ŽŒ—‚€‹}{†|z…~|‡{y„sq|omxrqy[Z`[Z_a`ekjosrwpotcbgVUZihmjinrqvfej|{€’‘–srwfekedlcala_j^\g[YdYWbVT_US^PNYPNYQOZQOZRP[RP[SQ\SRZRQWVUZZY^]\abaffejgfkfejjinjinhglcbg_^c\[`UTYMLQMLQONSPOTQPUTSXXW\YX]WV[HGLa`exw|tsx]\aKJOLKPVU[a`ha_ja_j`^i^\g[YdXVaVT_YWbWU`RP[MKVIGRHFQGEPGGQEEONQZSV_LOXBENCFOLOXUXaZ]f\_hloxwzƒ‚…Ž…ˆ‘•˜¡ÊÍÖ»¾Ç’›ux}€‰‡Š“”— ™œ¥ˆ‹”}€‰€ƒŒ—š£™„‡qt}_bk25>x{„ÆÉÒ¤§°\_hqt}‡Š“svvy‚ehq`cl^ajfirru~vy‚ps|gjsecngephfqigrhfqecnb`ka_jmkvvt„‚Ž™“‘œ˜‡…‚‚Š{|vz}ptwfjm[_bUY\TX[UY\`dg`dg`dgaehbfiaeh_cf]`e[^eWZcVYb[^g_bkbenhktps|ru~jmvbenbenhktloxjmveiraen[bjY`h[bjbiqfmufmudkspw|ƒ‹mt|Y`h^embiq^emcjrbhttz†•›§©¯»˜žªz€Œ|‚Ž”š¦€†’io{Y_k[ambhtbhtekwlr~x~Š{…‘€†’}ƒz€Œy‹z€Œu{‡u{‡rx„msgmyciuciuelvlnzjmviluhktiluloxor{ru~y|…z}†{~‡|ˆ|ˆ|ˆ{~‡y}†rv‚rx„tz†rx„msio{gmygmy\bnSYeOUaTZf]coagsciuelvegsehqfirfirfirfirgjsgjs^aj^aj]`i]`i\_h\_h\_hZ^gPT`KQ]FLXBHT@FR@FRBHTCIUKQ]KQ]KQ]KQ]LR^LR^LR^LR^GMYGMYHNZJP\JP\JP\JP\JP\QWcQWcQWcQWcQWcQWcQWcQXbNU[NVYNVYOWZPX[QY\QY\RZ]T\_U]`V^aX`c[cf]eh^fi_flY`hZakZak[bl\cm\cm]dn]dnY`jY`jW^hT[eRYcPWaNU_MT^ \ No newline at end of file diff --git a/Pictures/20051112_COS_Garden_of_the_Gods/temp2 b/Pictures/20051112_COS_Garden_of_the_Gods/temp2 new file mode 100644 index 0000000..c754e66 --- /dev/null +++ b/Pictures/20051112_COS_Garden_of_the_Gods/temp2 @@ -0,0 +1,11 @@ +P6 +256 192 +255 +"%&&# #$#&.?ALKMZGIXHJX<>K( !/35,/6$'0"%. #,"+58AEHTDJZFL\7=MAGWOUeX^nkp„Š£pu‰DI]afzafzV_qMXjKVhITfCN`HSeS^pbmWbtWbtEPb/:LAL^VasDOa2=O7BTJUg[fx`k}S^pOZlJUgDOaozŒ^i{4?QU`rQ\nITfS^pQ\nV_qgo\exVcvUfxXj|XmŠUn§‹¨âŽ¯ç•¼ò—ÂøœÊû£ÊöœÁì©Îù„©ÖžÃî¹ÞôNr£¨ÌõhŒ¾Œ°à¥Êõ”ºâ–¼â¥Ïä¯×è»âíÂèîËíîÒòñßñðåïîåïîæðïçñðçñðæñðáñðáñðáñðàðïÞîíÜíìÍîëÇîëÅìéÃêçÂéæÂéæÀèê½èï¿êñÁìóÂíôÂíôÃíôÏðöÏðõÏðõÍîóÌíòÌíòÆðö§×ãºéúˆµÑŸÊî¢Ìú–½ñs“ËiˆÁbºUt­RqªOn©Kp½GpÅFmÅEmÇElÊElËGk¿Ii¥?`8X}Rn‘Sl‘Tl”UqNk—GdGd4Q}:WƒB\‡JcŒLeŽJcŒIJLYNP_QSaBDP!+ + !48:-07$'0"%."%.+.7;>GAEQW€8QzF`‹C^=Y‹:V‡>Z‹>Z‹>Z‹>Zˆ9V‚3P|2O{6S6S3Ox1Kp2Lq7QvX}>X~=Y‡=Y‰=X‹=X9S1K‡*Iˆ*LŒ.P1S“3U•4V–5W–2T‘2T‘2T‘0R0R0R/S’.T–-T›,U¢*W¨)W­'W°"X²"X²"X² V° V°!V°#S¯$S¯$S¯"Q­"Q­"Q­"O¨"O¤"O¢ NžJ–J“!M”'N“'N“'N“$K#J!H#DŒ%Bˆ'C#>r4^-P.G+9$2$2 .,'5!%( ) ) $ #$%(0>@KGIVKM\PR`CER"%/ )-0+.5$'0"%.#&/9I[OZlYdvfp‚co‚ftŠs‚cu’\pl„¬‡§ß‡¨á‰«ãˆ®åŒ²é•½òœÂò›ÀíŸÄñ›Àí¨Íù”¹ßd‰ºb…ºŽ²ä›Àï¥Êö­Òú¯Öü«Øï°Üð¸âñÀèòÇîñÎóôÚôóÞòòßñòßòóàôôàôôàóóÞòðÝóðÝóðÜñïÛðíØîìÒðîÎðîÌîíÊëêÈëéÉêéÄêì¼çîºåì¹äë»æí»æí»æíÄêòÅéòÄêñÈîõÊî÷Êî÷Èô÷¼îð»ëõ´ãö™Æãs ÅtËl‹ÄZy²Kj£Ml¥Nm¦Oo¨Hp¯Do±Bm²Bl´Bk·Bk¹Jo¸Ss¯Iiš?_„OkŽPiŽQi‘RnšOl˜Kh”Fc%BnUržXsRk”MfMfHaŠF_ˆNh“Ie“?[Š7SƒB^B^B^C`ŒB_‹>[‡:Wƒ9V‚7T€3Ox1Kp/In2Lq6Pu^ƒGc†Kd‰H`‰EbHe‘Gd?\ˆ9V‚[x¤^x£Wp™HaŠF_ˆIb‹HaŠOj“GdA^‰A^‰B_ŠB_ŠA^‰EbŽDaGdDa;X„7T€9T~6Pu3Mr2Lq1Kp.Hm4OuB^‡?\‡@\Š5Q‚0K3N…4S0R’0R’1S“2T”2T”3U”7Y–5W”3U’0R0R0R/S’.T–-T›.X¥.[¬-[±*[´%[µ%[µ%[µ$Z´$Z´%Z´&V²'V²'V²&U±&U±&U±'T­'T©'T§%S£"P O˜!N•'N“'N“'N“#J#J#J!F#F&GŠ)H†(D~!;r+Q(6'5(6$2(6 ,:$!*!*('!#"%+(+358B<>K=?NFHVBDQ%(1 !$'*1.1:+.7ADMILU>AJ<@LNTdCIY+1AKQagm}jp€sxŒgl€NSgNSgX]qotˆu}t‘w‚”JUgBM_S^p_j|T_qR]oJUgAL^X}6Pu-Gl+Fk3Pv1Nv4Q|5R€5Q6R…3RŽ0R’0R’1S“1S“-O,N0R/QŽ/QŽ3U’3U’3U’0U”/U—.Uœ/Y¦/\­.\²+\µ&\¶&\¶&\¶%[µ%[µ&[µ'W³(W³(W³'V²'V²'V²'T­'T©'T§'T¤%SŸ#Rš#P—&M’&M’&M’#J#J#J"H‘#I‘'K‘*K*HŠ'C„ 5a&4-%3#1'5*8%!$- #,'&# #*-203;35@35B46E@BQACP'*4!#!%(+/636?03<g·;dµ=b­BbžEf–JjGb…G`„Ia‰FcŽJg“Jg“FcIf’Ro›Ql–Sl•Oh‘Ib‹>W€;T}>Y=[=[9W}>\‚A_…DbˆGdŽB_‹B_‹DaEbŽ;X„3Nx9Sx@ZE_„>X}5Ot-Hm#@e#@g)Fn2Oz9U„=YŠ8X’5W—5W—6X˜6X˜4V–2T“0R2T‘3U’7Y–7Y–7Y–3W–1W™0Wž0Z§/\­.\²+\µ&\¶&\¶&\¶%[µ%[µ&[µ'W³(W³(W³'V²'V²'V²'T­'T©'T§'T¤&T¡%Tœ$P—$K$K$K#J#J#J"J’$L”'L•)L“'GŽ)FŽ'=n ,:-,-#1&4&"%.%(1 #,%")&),458@7:C25?+-9:AJ7:C%(113?Z]kX\jBET]aofjxmphm|V[jDJZQVijo„{€•z‚•~‰›Wbtit†al~BM_al~}ˆšal~]hzDOa9DV^i{WdxQ^s\i~\i~_m‚jwŒ’Ÿ´’Ÿ´y†›O[pYf{q“m{q~“p~“p}‘jxp~’vƒ˜sƒ›Vj‰Wn—y“Æ|œÕ~£ÝƒªãŒ±ç´é£Ù¬ä“±èj‡¿t•Ë‰¬àŠ­áŠ­á¡Ä÷Dg›s—́§à†¬ä‹±è”»ï–¾ñ“»ì”¿æ˜Ãè¡Ëî¦Ïð§ÏíªÑï¯Üé²âç´äêµåí·æñ¸èóºèô»çò½éô¼èó¼èó½éô¾êôÆîóÊñöÊñõËòöÊñõÇïóÁëò¶èï²äì¯áè¬ÝåªÜä©Ûå¥Üõ£ÚõŸÖñ›ÒíœÔïšÒ틿酶냲ë}¬èoÞaÒX‚ÊOsÁNq¼Ru¹No¬Op§Tt©Rv³Jn²Gk´Gi¹Eg¼EfÀFiÁGn¹IoªLp›Bb‡D`†KdHh–Hh–EbGdIcNh‘Qg“OdMcŒLbŠ?U{7NsC[Fa‡C_„>Z€>ZC_…E`†GbŽFaF`HcŒFaŠ>X;UyE_NiŒIfŒ:Yƒ.My%Er"?i%@j&Al,Ft4N|A[Š@a¢<`¬6Z¥2W 6[£:_¥;`¦6\ 6\ 6\ 7] 6\Ÿ4Zž1[¥/[§-Z¨.[­/]±.]².]³+]³*\²)[±'Y°'Y°'Y°)Y­)Y­)Y­&Uª&Vª'W«)U£+S+Tœ+Tœ*Sš*S˜)Q•'KŒ$Gˆ(KŒ'J‹'J‹'J‹(I+K.L‘-K)GŒ*GŒ.F‚';d+I!3 ,!.'7 '!$-25>/2;!$-$'0"+"%.-09:=F7:C(+69;IIKW-0:%(.'*.*.069@;>G@CLADM58A"%.%(3SUbcerJLY^`megtgivekuW^i;ANV[mz”‡Œ¢szŽkvˆU`rfqƒju‡Xcudot‘al~]hzHSeX{!/!."): '!$-=@IEHQ14=&)2 #,'!*25>9;IIKW-0:+.5048268=@GCFOGJSFIR8;D"%.'*4;=JEGTRTaSUb[]j\_kOT_T[fFLYchz}‚—}‚˜ow‹fqƒS^p]hzbmdodo`k}YdvP[mQ\nBM_[fyn|‘gv`o†[j[j~¤Ÿ¶Œ›²u„›4CZZi€cr‰x‡žq€—n}”q€—_n…Š™°ix\of~¨†ŸÕ€Û„¨ç„®è†¯ä‰©ß›ºðy˜Îx—Íx—Í–µë§Éû“¶í‚¥Ý²êu˜ÐLo§ŸÄõ{£ÞvžÙwŸÚ§â…­è¨â‡«ÝŒ°à†ªÚ•¹ê¡Åö²Öþ¬Ûù¥Üò¤Úó¡ÖôžÓóžÒõÑõ˜Îô—Íó’ÈåŠÀæŒÂç—Ìé¥Øô¡Õñ£×ó§Ûö©Ýø¨Ýú¥Üù¡ÙöžÖó›Òð–Íë’Éê|·ðoªçk¦âi¤àm¨äi¤àb˜Üd–ßd•à_ÚW‰ÔQ‚ÍK{ÊItÍJrÉIp¿Di°Bf¥Dg¢Hj¥Mo®No²Mn¶Po¾TsÆOsÈFrÂIs·Lr§Ik–?]ƒNiJl›KlœHg•C_‹Jb‹OfK_‹DV‚AT~BV}EY|G[|DZ{F_„Hb‡Jd‰E_„@Z=W|G_ŒIa‘IaMfJd‰WtB\|4Pv1Ny4Tƒ5Vˆ9\“;_–9]”8[’2U%H(L…3Y”;a 9^£6Z¦<_°=c´4e°/`«+\§)Z¦)[¦+\¨2`«4_«2]©1]©2^©2]©1]©/[§-Y¥,W£*U¡*U¡+U /Q‘1P0Q,L‹)J‰(Iˆ'D|&Au&Au$?s ;n ;n ;l8c7b8c2]2]3]7e$@n.Ix7RJMV@CL(+4"+&#&)2I?ANNP\/2<*-4038157DHOFIREHQGJS>AJ),5$'1*,902?EGTOQ^Y[hZ\i>DN:ALY_mrw‰qvŠin„cj~Q\nP[mbm[fxal~cn€YdvOZlDOafqƒJUgR]pŽ›±q€—Zi€`o†dsŠw†s‚™z‰ o~•'6MSbydsŠ~¤o~•m|“u„›[j§m|“Xm‘‚Í‡¢Ý|šÚ¡à‚§á‚§ÝŸÔ¬âs’Èr‘Ç…¤Ú¯äš¼ôœ¿ö²êv™ÑX{³^·–»òx Ûn–Ñk“Îq™Ôi‘ÌfÈp”È{ŸÒƒ§Ú’¶é˜¼îœÀòžËöÑ÷šÎ÷”ÇóŽÀñŒ¾ò‰¾ò‡½ñ…»ïv¬àu«ßu«Þs©Ù}³â|²àƒ¹çÄò”Êø’Èø‹Âôˆ¿ñ‡½ðŠÀó†¼ï¶ëcšåY‘ÞWÜXÝ]•âZ‘ßU‰ÖYŠ×WˆÖT…ÒO€ÎIzÈEuÆCpËDqÈDmÀ?f³>c«?d§Bd¡Oq­Uv¶St¶St¹Tt½OtÀIvÁJs¸Lr«Hi˜A^„Kf‰Fg–Fh—Ba8T€C\…I`‰CWƒ@SAT~DW~I]H\~>TuC]‚Hb‡KeŠLf‹IcˆAZ€?X…@XˆBZ†Ib‹Ga‡8Rt4Mj3Hc0He2Kn:U~;X†;ZŠ;aš^ª?c´4e¯/bª*\¥#Už(Z£._¨7a¦8^£5\¡3ZŸ2Yž1W/V›-S™*P–&M’!H GŒ E‰#=t$U~CWƒI\‡L_‰K^…H\€EYz=TtC]‚D^ƒF`…Lf‹MgŒGa‡@X†E?BKADMV†?WƒF_‡A[1Km-D`1BX/@Z(<[!9]$=e$>j*Iz+I|,K}0O0O0O2R3T~(Ju@m&Gv4U„>`’;a˜9`—4Z‘0V0W,Qˆ"By:r5l/f-d.e.e.e/f1i3j/f,b4b5b5c#;i%=j%=j$>h$=f :c6_9b(Bk-Gt+I~)G|(F{'Ez'Ez'Ey.Eo0Dk':c-U*Q"6^/Go0Ly2Iy'8c"A(%#&( )!",13=;G9AJ58A.1:8;D=@I.1=78Jfgyst†UVh_`qYZlT^n:DZx€Ÿs{›lual~;F[>H``kƒeoˆXb{akƒju‹:EWLWis~v“0;Mkw‰w…›kz‘ix‹š±w†w†m{bn€cnnyŒkv‰Ÿ™ªIR[qy‡my“fvžcv«†›Ù—³ðs‘Òw”Ö`}ÀfƒÅg„Æf„Ä{œÙ†¨ä†¨ät–Ò‹­é•¶ò‘¯çƒŸÖa|³sÆUq¨tÆu“Ìh‹ÆMoªUx³d‡ÂZ}¸e‡ÃrÐw”ÖsÒpŒÎn‹Íl‰Ëi†Çg…Æf†Êb„Í^Ñ]ÔZ‚ÙVƒàT„àR…àQˆáRŒåTèOŠéM‰ëM‰ëLˆéK‡éK‡éI…éG‚èG‚èG‚èG‚èG‚èG‚çEãEãEãEãEãEãE}ÞF{ÚHzÙGxÔBqÉkÀ@mÂCoÄHm¿Hi¶Ee«=\™Eb”Nj•UpYq¦RižAXOf›E]PgšSkžSj;Sƒ1JwAZƒOhOj—Lh˜Ie•Fb‘@[‹;V†OoARqCUsDUtEWuHYwJYvJYvJYv@Ol:He-;X.?]2Jl:Sw@\†Ed“Cd˜Ad5i·5k»7m»6l¸3i´/e¯,Xœ'KŠ$D~(Dw)Al&:_#4X#3Y"5\0Z,X/\7g!IŽ$Qž*V£-Z§-Z§+X¥+V +T›,V.Wž.Wž,Uœ,T™3S4S‹4S‹4S‹4SŒ4SŒ5Rƒ6S}2N{0L|6Q…7Rˆ3O‹/O–0Q™1Rš1Q™1Q™1Q˜7V7UŠ5Sˆ.L‚ ?t *` J &@3K 4I#3 ."-(" + )#" +B@K__n=>P12D!"401CIJ\ghymo|ACP+-:VXe8:G/1>:=G@CL7:C-0936?9S4CX:LhAXG_‹Jf–LjŸJj¥Hjª>rÆPWXjefvcer>@M57DDFS68E68E=?JADM9JUVhxy‹st†YZl78Jxz‹=GWdn…¦Å¤­Ílvny‹\g|Zd}fp‰ak„]g€{…ž€‹¢GRd^i{‡’¤OZl1V†Tl]t§5L6N~Wƒ>OnARpDUsBSq=Nl8If6EW9IX=M\4DR.>M:JXBTnKbŒOf•QlŸSp©Qp­Op³BuÌ>tÎJBDO=@I25>>AJW‚?PoCTrGXvBSq;Lj4Eb3CU/?N6FU>N\8HV7GUCUmMdŒSj—Ws£Qo¥Rq«Pr±AuÆ=tÈ;qÊ8nÌ8lÏ8lÒ4m×3mØ6mÒ9kÈ7e¹8a±2Wž+H!?y+Lˆ>aŸ?d¥@g©>jµ;i·9gµ6d²5c±5c±5a­4^¦3]¥1[£/Y¡/Y¡0Y 9Y”:Y’:Y’6UŽ4SŒ2QŠ5Sƒ6S}2O|1M~5P„8SŠ9V6X—6X—6X—3U•3U•3U”3S‹3Rˆ3Rˆ3Rˆ/N„.Mƒ4Oƒ,Bq)Q +; 1 &#*((($'53>kkztu‡89KSTfkl~dewRTdGIV-/<\^kRTa35B>@LADN7:C'*3/2;@CL=@Iacp”•§nojk}hi{ABTABTdn~…¦‹”³‹”´u™EPbS^ru˜‹¤kuŽ\flvfp‡MXjcn€ju‡EPbGRd‹—©erˆtƒš˜§¾Wf}…”«yˆŸTavMXjXcuXcu@K]\gyR]pw‡ ’¢Ã[o›i½h„Íd‚ÔaÉg„ÆrÑu’Ôz—Ùz—Ùw•Öt•Óy›ØzœÙ„¦ãŸÁölŽÊ{˜Ðy”Ëd¶Kfa|³y”ËnËFk²Y~Æ^ƒË_„ÍeŠÓkØl’Öm“ÕhŽÑc‰Ìa‡Ê_…Èe„ÄmŠÊpÓlÖfˆØ_ƒÖX€×VƒàT„àR…àN…ßL†ßK‡ßJ†æJ†èJ†èJ†èJ†èJ†èI…èHƒéHƒéHƒéHƒéHƒéHƒèGƒåGƒåGƒåGƒåGƒåGƒåHáJßL~ÝJz×FtÍEqÉFpÇGtÉJwÌLyÎJwÌJwÌIvÊIpµHk¬Jk«Fd¢Mh£Pi£Ha”=V4Mv1JsKdb{¤Mf>U‰6MG_@X…B[ƒIbŠHcIe•Jf–C_@MBDO9PQ\qt~—– ¹wšQ[tT^wP[qP[onzŒmxŠ9DVS^p‹—©_mƒp–‘ ·n}”§o~•[i~R]oVas\gy_j|XcuS_rƒ’¯s…©o„´m†ÄfƒÏa€Ö^|ÇlŠÌqŽÑv“Õx•×}šÜmŒÌd†Ä\~»Š¬é—¹õhŠÈp‘ÎpŽÆJeKfžn‰Áv’ÉrÅDf¨An¿W„Õ`ÞbßbàcàeÛgÜ^…Ò]„Ò`‡Ôb‰ÖhŠÏj‰ÊhˆÍfˆÑa„Ô]ÕX€ØVƒàT„àR…àN…ßL†ßK‡ßJ†æJ†èJ†èJ†èJ†èJ†èI…èHƒéHƒéHƒéHƒéHƒéHƒèGƒåGƒåGƒåGƒåGƒåGƒåHáJßL~ÝL|ØJyÒIvÎJuÌJwÌGtÉFsÈGtÉHuÊIuÉGn³Ae¥Eg¦Ih¦Tp®Wp­Rk MfŽAZ‚/HpE^†^wŸHa‰*AtBZNf–B[ˆ>W€JdŒB^‹Jf–Ok›Ie•=Y‰>Y‰@Y„ARr;Lj9Jh:Kj9Ih:Ki?NkDSo>Li7Eb8Fc;Jg:Lf0Lb,Hb-Lj6W{:\…i±5\ D…#H‹5[ 9a¨8c¬8e°9h´>m»>l»Y€7Ps6Jj4Hh8Lk;Oo=Qq?RsAXvF^|CZzAXyCZ~CY€C]‡;\‰/P~/Q6Xˆ*M)M€ K…$OŒ/Z˜5` ;f¨m»=pÂc!4S: 11,"#5,-?#$6 !323Ece~koŠos‹ch}glV\j).<45Gghzij|EFX?@RDEWJLZLN[>@M(*7DFS†ˆ•Ÿ_eu_eutzŠ®´ÄAGWgm~˜°x‚›‹•®’œµ›¥¾+5NgqŠt~—yƒœu˜gqŠT^wT_w`n†Š™°cr‰_n…bqˆ£²ÉO^uw†Œ›²Ž¥¤³Êx‡ž'5JWbtkvˆAL^_j|Wbtdo„“·n‚­q†¸r‰Ã|”Øy”ÜYzÁm”ØfÑuœàhÓ`‡Ë‹°ízœÞ‰ªí‚¤æUv¶&HŠmŽÑ½÷Qr³Lo²c‰Îo—Ýošâc”äVèR‹äP‰âQŠãQŠãQŠãU‹åU‹åU‹åVŒæZêXŽèW‰âX‡ßX‡ßYˆàZ‰áZ‰áXˆâR„ãQ…ãO†ãM‡ãJˆãI‰ãK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èH„æH„æH„æK„áMƒÝKÛJ€ÚIÙIÙH}ÖEvËCsÉAqÆFwÌFwÌFwÌEtÊGtÉKuÆIr½Gn´Hm¯Eh¡Hh˜^|°C^“5P|=Ww>Wp 9ZMf‰Vo’Mf‰RsCXxAZyA\zA[{D^G`ˆC\…DaCf=`—?b™Hk¢>a˜Ad›%L‰A€%L‹7]œ=c¢=c¢Dk©@h¦=e£7_$LŠEƒ-V˜5c®;k¶7g²5e°9i´=m¹;pÃ:pÆ:pÆ6lÂ2h¾/e»3c³8_¥6[¡6Y›8Y˜:X–;X“7S…7Sƒ7Sƒ2N~2N~4P€5N{6Ox9R{=V@Y‚@Y‚>Y„;Y‹;Y‹;Y‹;Y‹;Y‹;YŠ8S|7Qv6Pu3Mr0Jo-Gl&?c6X3T/N%A64*"#59:L;?QCDUIKYMO\ACP9;Hcer‡‰–z}Œ]csTZj‘—§ÁÇ×+1ARXiš£»†©‹•®­·Ð‘›´U_xoy’mwq{”x‚›~ˆ¡=G`[fˆ–­z‰ N]tv…œ†•¬š©ÀRaxyˆŸŽ´~¤­¼Ó`o†:G\KVhU`rDOaal~bmœ¨»‘³Vj“p…µ|“Ë„Þz•ÜiŠÏz¡ãfÏcŠÍ;b¤Äó®Óû‚¤ãmÏDf¦b„Ã…§æ‹­í|ŸÝWzº^ƒÅ‰²ó{¦ëv¢êe˜çX‘êTæQŠãQŠãQŠãQŠãS‰ãS‰ãS‰ãYé]“í\’ìY‹ãX‡ßX‡ßX‡ßX‡ßX‡ßV‡àR„ãQ…ãO†ãM‡ãJˆãI‰ãK‡çK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éK‡éJ†èJ†èJ†èH„æH„æH„æM‚àOÛN}ÙL{×JzÖJzÖHxÔ@rÊ?rÉ?qÉ;mÅ@sËFxÐGxÏJxÎNzÌOzÆQ{ÂW~ÁY»^¶[{µUr­B^’0Kr@Yw):WBQnUdTdEUqScWl•Of™Ld•Me”JbŽBZ„:QyX{B[‚Ia‹H`ŒEa“@cœ@cœCfžGj£<_—?bœDk¬5]ŸG‰!HŠ2ZœCj­BjªW€B[„B[„?X=V>Y‰>Y‰>Y‰>X‰>X‰>YˆrÍ@uÏCwÒI~ÙKÚMÜNÛOÙQÕSÐWƒÍ[…Ê\„ÅZ~½Z{¿Yx»Ur¯Fc“;V|2>W@JbITlKVmOYqYb{WkRj—Rj˜Rj˜D\Š:R€>T€CXy?St7Kl?StBVw@Uv@Y{>X|C]ƒIa‹Me’G_ŽB_“Cf¢Eh¤Fh¥Hj§=_œ@c¢Ak±Bm´iª@k­@k­W€AZƒAZƒ@Y‚?W‚?W„?W„?W„BY‡@X…>Uƒ=V~;Uz8Rw)Ch9^3X2V2T2S$7U)9U+E#=+/#$6lmHI[MN`qtŒmqdhKPeAFXaguAFTBCUQRdMN`EFXABTCEVLN\Y[h]_lln{su‚np}\`nPVf“™©›¡±‰Ÿ#3%+<— ¸|†Ÿ‹•®°ºÓYc|]g€AKd‰¢‹¤wšz„9C\ny’®¼Ôjy6E\«ºÑ³ÂÙ'6Mo~•’¡¸~¤§¶ÍVe|p–_m‚ITf?J\HSedoŽ™«Œ˜«Vi†cx™wŽ¸‹£Õ›Ö†¢âˆ«éµñŸÇñ-U‘µÜõ¢ÊîKe?JcNYrITmMXqR]vOc…JcŒJbŒIa=U†?VˆJ`EY{?St>Rs>RsG[|CXy@X|E^†Ng‘Qi–Qi˜G^B^—Gi©Gi©Gi©Jl¬>` Ad¥;g²=k·Ao»Dq½&SŸD&P”*R1Y—6^œf¤=e¢>f£?h¥>f£Bj§Aj¨9l»5kÁ4jÀ5kÁ6lÂ4jÀ8iµ>f£;bž:^—7Y9Y:XŒoy’†©z„lv;E^‡’ªœªÁL[rJYp£²ÉµÄÛ/>Ujy“¢¹ƒ’©ÀÏåCRiyˆŸhuŠZewXcuhs…ƒŽ Œ—©£®Á?Rlk j¨tŒ»„Ÿ×Œ¨åŒ°ë™ÂötÍo˜ÄšÃä/X‡¯Ù©Ìû™¼ò’µë¢Ø`ƒ¹f‰¿‚«åˆ´òŠ¸÷…¶÷x¬îk¢åeœêcœõdöež÷b›ô\•îVèYéYéYéWçWçWçY‹ä[Šâ[Šâ\‹ã^å^å\æY‹êXŒêVêPŠæM‹æLŒæM‰êM‰ëM‰ëM‰ëM‰ëM‰ëM‰ëNŠìNŠìNŠìM‰ëM‰ëM‰ëLˆêLˆêLˆêJ†èJ†èJ†èJƒàH€ÚF~ØG€ÙL„ÝM…ÞM†àK†ãHƒáFßI„âI„âI„âJ‚áK‚ÞM‚ÚO‚ÔR‚ÏS‚ÊU€ÊU|ËQvÈNpÃNnºRq°MkžBTs4C`GWs]mŠUe‚M]zH^>X|>W?W…F^PgJ`“@Uw?StBVwAUvPd…I^=U|JcPh•Ph—Md—CZC^™Gh«Gh«Hi¬No²@a¤@b§m½Bm³Em«Em«Hp®Jr°Em«Cj§Ah ?fŸ>ež?fŸCj£Bj¤8j¸5kÁ6lÂ9oÅ9oÅ7mÃ:k¶>f¢;bœ:^•7YŽ9Y‹:XŠ>ZŠ>ZŠ>ZŠ@\ŒB^Ž?[‹9S6Ox6Ox9R{@Y‚@Y‚@W?Q|?Q|?Q|DV€@S}=Py5Nt/In$>c4Y4Y :_'@d4Km8Mn4Gf5Ea!.H6,+!"3IJ\abvmn‚eg~UYr]byY^sCH[JP`\`rjk€prƒXZi>?N>@QEFZ9;J*,9GIVln{mo|RTaADSdhy®²Ã„ˆ—]ao#'4&+9py‘‘›´lv ªÃ¡«Ä#<'@V`y”ž·~ˆ¡mwLVo’µÃÑè=LcSby“¢¸ÉØé#2It‚™ªÂŸ¬Ã³ÀÑBOg‘ž¶eq…`k{mxŠz†š}Š Ž›³ÆÔêIZvSe„s…ª€“¿˜¬Þ¦»ñ™¸í²×üOt§‹°Ù=b•†«Ó¶Ùü¢Ãùˆ©ßd‡ÀmËzžÜ‚§æ~«æ„´ïƒµò‚µôx¬îo¥èm£în¢÷m¢÷o£økŸôešï`”èb•áa•ä^•é\’êZŽè]Žè]Šá]‰Þ`áaâaâ`á`Žå\ìZë[íS‰æR‹çQŠçPˆëPˆìQ‰íQ‰íQ‰íQ‰íO‰ìN‹êN‹êN‹êMŠéN‹ëOŒëMŠìN‹îOŒîKˆëKˆêKˆêKˆâK‡ÜI…ÛK†ÞNŠâM‰áM‡âM‡âM†âL†âM…âL…áK„àK‚âNƒãM€ÞN€ÚO€×P€ÕRÏW~ÉX}ËW{ËVxÅNp·Hh¨B_ˆ-Hm9QtL`‚iz›JXx8Ii@Tv:PxJbTo¤Uq¬C]˜BZ…G^‡Md‹I^ƒTh‹J^€C]ˆQlšUožMe”D\Š?V„F`Lj¡Lk¤Jj©Ln°@cªAf°AqÆCuËFxÏEwÎCuÌDwÍJwÂLu¸KsµOvµOw´Kq­Kp©GkŸDhœAe™@d—Dh›EiŸ?j²>k¹?l»@m¼@m»=j¹?h«Ac•>`’>^?^‹>]‰@]‰B^‡C^‡B_‡EaŠEaŠB]‡?Xƒ=V:S|9Rz=V|>X{e)Bi1Jp?V|CX>Py9Jo"0O 7''&(6HI\]^tggacyRWkZ_s_dx6;OHMapt‰ooˆik{VYd),6ACTPPg8:J,)+8XZgfhuDFSBCSmn‚~€‘†ˆ–qt$'.%)0hqˆ™£¼u˜ ªÃ§±Ê)B&0IFPi›¥¾‹•®r|•`jƒ†’ªÄÓéVe|et‹|‹ Õäð)8Oz…§À±»Ó”žµLVo}‡ Waulu…Œž†“«€­„•·{Œ°KXwUbƒu‚¥{‡­ŽšÄ³¾ë©¿íÃâýMlšFe“’±ÖÃâþ§Åó’¯ág†¼Rr®‰¬ì‚¦ì{¢éxªåz®ç{¯ê{®í{®ï{­ñ|­öz¨öu£ñt¢ðr înœêl™åj–Óf—Øb—ã]“åZŠßa‹Ýe‹ÔfŒÏiŽÒgÑhŽÒiÓd‹Óaßbá`ß_Œß]ŠÜ\ŠÜXˆâY‰æZŠçYŠçZŠç[‹éYëSŽìSëRëRëRëRëQŒëUïV‘ïP‹êOŠéOŠéOŠàO‰ÛM‡ÜM†ÞN†âN†äN†åN†âN†áN†áPˆãN†âM„àO‚ÞR„áMÜO€ÝPÞPÞTÔ]ƒÈ]ƒÊX~ÈSyÆSxÈNsÂCm¥0V‡+Ju-Diq OXu7@\9FdARvYpZx¯Vx¶=` C`šOk¡Zr£LcŽNc‰Ma„MišPn¢Yu¦Pj–AY@UvLaSkŽQm—Lk Gk«>e¯Bm½@uÐAvÓCxÕDyÖDyÖDyÖIyÌJv¾Jt¹Nu¶Pu°PsªOp£Ff•Ee”Dd“<\‹Ff•Kk›LlªKl¯Kl¯Hi¬Ef©Cd§Ed›IcˆGa†F`…D^ƒ@ZA[Hc‚HcHcJeƒHcE`~A[ƒBZ‡@Yƒ:Sx6Po6Qn2Mj*Di(Bg)Ch.Hm)Ch#=b!:b";d,En5Nw3Lu6Ox'',.eªDm¸BuÌCvÏExÑFyÒFyÓFyÓJyÊJv¾Jt¹MtµNt®Qt«Qr¥Ii˜MmœMmœ;[ŠDd“MmLm©Km­Km­GiªDf§Bd¤Ec™IcˆGa†E_„B\>X}?Y}Hc‚HcHcId‚Gb€C^|@Y€C[…C\„>X|5Oq0Ki-Hg/Im5Ot8RwWV`y€Š£†©fp‰oy’u€™ƒ‘¨fuŒo~•IXo±À×IXooz“”ž·¼Æßoy’eoˆv€™¤®ÄmuŠfpˆŠ—´Š˜»{³m~§[i…]k†y†¤w„¥jv›Œ˜¾«¿ç…žÇ.Gpš³Ù”­Õr‹´Rj’¥Ç“ªÏPh’©Ù–³ç™¸ðˆ¶ò‚µó}°ðz­ðxªñv¨òv¥ñpžìh–äd’àc‘ßbÞe‘àdˆÛaˆÝ[ŒÝb”ßDs±=f—·Ûë©Ëη×صÖ׸ÙÚÄåæÍìíÔððÐëðÓïðÚõúÏëöÈåñ·Ûí­Ôç¤Êޖ¼×¶Ö…¬Ì…¬Ò|¥ÒužÍo˜Ëp™ÌfÁdŽÂ`‡Äd‹Éc‹È\ƒÁaˆÆaˆÇZ‰ÏSˆÓQ†ÓQ†ÕR‡ÛR†ÜR†ÝP†ÞP†ÞP†ÞQˆßP†ÞP†ÝNÔR€ÕN|ÑSÕW…ÙX†ÚZ„Ó[ÈTzÄNsÀW|Í[Ò[ÓU{ÉZ|Ã9WŽE\„BQjX{C\‚E_ƒA[7Qu0Jm0Jm8Rw>X}?Y~?Y~=W|:Ty:S{9R{7Py9R{;T}>W€A[‚A\CY†CW‡=O{&7Z ;$!-:X}A[€@ZC]‚Ga…C^}B]{@[yB]{@[yRfkw{zz’`br*,7-/9y{‹ººÑmn<>K)+8+-:EGT`bodfvhi}ˆŠ›rt‚lny`”<_–Ad›Kn¥Il£Fi Ed”A[€;UzYw?ZxRNSgafyswŒno†UWg(+69a—Fg™Ji˜Gg•NnœTt¢PoMmœEf™:[Ac—HjžHjžIkŸIg•B\9Sv8Ru@Z}C]€GaƒD_~C^|A\z=Wu:Tr6Pn3Mi2Mh4Nk8Rt;S|SyLa‡NcŠNcŠH`€FbzD`x7SkUm?Ur?Uu?Vw?Y~?Y~?Y~D^ƒF`…Gb‡B^‡?\†=Y‡BSou…17G>DTgm}bhxbgvbdrACP57DKMZUWd[]jefwghz<=O89Ktu‡Ž¡wwˆ”’ º¸Ætr€`^l42@TScÜäö‹¤q{”&0Ihr‹T^wnz”ƒ‘¬n|—?Mh›©Äx†¡gt¡«ÄWaz\f\f™²v€™‹•®£­Æbl…ˆ’«“¶”ž·\f€±º×kt‘r{˜_h…cl‰\e‚]h{\gyt‘ep‚bmhs…n|–yŠ¨u†¤hy—bs‘N_}>MgO\g>KT4AJ8ENHU^Zhsbz¦]}½j’Úe“âg’äk‘âiá_‰Þ_‰ÚfŒÙcˆÎh‹Ì[|¸Sj—Xs£_€¸aƒÀtËp…¿/>^¼ÇÒÏÛæÁÎ×ÇÔÙÉ×ÚÎÛÛ×áÞÜçãÞèäæðíèòïîùõóöõôôôôôôóóóòòòððððððñññòòòòòòîîîðððïððïóûîöûðùýÛèí´Åɋž¢j{‡ZjzRbrUeuXhxgw‡…–¤¤·½¥¶¾£±¹ ª³œ¤¯˜ž©ˆ’™Œ’€“u‚ˆw„Š|‰ivds€`o|^lyXgtYhuYhuGZfH\gFZeH\gMalNbmUlyVo~m†•{”¢}•¤Œ¥±›³¿œ´Ä¹ÓÞÅÞéÑêôØñü¾×êÕéòÍàêÔçíÉÜä¹Í٘¬¸£¯Š¢¬…¨vŽ™~–¡y‘œk„’j‹´fˆ´Xy¥St Rt Xz¦^~¥XvšOm‘FdˆFdˆNm‘Mi‹NeƒLb~J`}OfƒNe‚LcJ_K_J^€CWxG\}I]G^|C_u?[q8Tj;Wm?[qC^uDZwCXvAVt@Us;Po;Pn>Sj>Ug>Ti?Ul@Up@Ut>Uu;TyX}D^ƒF`…Gb‡C_ˆ@]ˆ>[ˆ@\>ZŽ;U3M{)B^#9S1J&7N0=T'=-&'9JK]pqƒmn€>?Q7;K\br4:JJP`iojp€kpkm{;=J,.;@BOMO\Y[hghyz{12DEFX‚”£¤¶ww‡USa¯­»mkyljxA?MLK[´¼Ôz„fp‰*4MV`yS]v›³·ÅÝr€›=Kfš¨Ãuƒž7D^‰¢mweoˆ[e~Œ–¯v€™‹•®¬¶ÏU_xŠ”­Œ–¯|†Ÿ°¹ÑÀÉâhqŽgpcl‰]fƒYcmx‹Ydvep‚bmcn€v“}Œ¥j{™hy—PaEVtRc.>WER]?LU:GP4AJER[Zhsj€ª^|¶gÑg“Ýj”áo“ßp”ßjÛ\Èi‹Îi‰Æc‚»Tr¦I`ŒXs£[|´i‹È{˜Ó€•Ï%4T‚šäï÷ÐÝæÈÕÛÄÑÕÂÎÏÇÎÌÂÉǹÀ½¯¶´¯¶´¶½»ÄÆÅÈÈÈÉÉÉÌÌÌÒÒÒÛÛÛåååêêêèèèëëëóóóóóóòóóðôúíôûòûþæó÷Æ×Û¨»¿‡˜¤m}XhxUeuXhxxˆ˜²ÂÐÛîóéüÿé÷üëöûíõüïõþì÷üéöüê÷ýØåêàíóÖãç¸ÈИ«¶”§³˜ª¶—©´†™¥~‘œoƒŽfz…`tZnyXlw]q|Yo{UlyPfsQgtUlyOerPftRfuViyWkzK^n\oUhweym‚‡o„‰t‰Ž‡œ¡‹Ÿ¥†œ¡…ž¢“­±˜²¶¡º¾®Ç˲ÍÓ¶×æÂãðÎïõÏñùÂåø±Óí¨Éã¦Æݖ¶Í‰©Àw—®{›²u“ª`uQf~F[tBWp?TmSm;QkUg>Ti?Ul@Up@Ut=St5Ot9SxKTHVaNb‡t‘Åo“ÐfÕm”Ûn×oÓs•Ög‡Ä]|³i…·iƒ±Ng“`w¡d€¯]~µmÌz–ÑzÉXg‡‹—¥ë÷þãðùáîõãñõçóóëðïêîíðôòóöõòöõðôóö÷öòòòêêêåååäääåååæææàààÓÓÓÌÌÌÏÏÏÐÐÐÎÏÐÇËÓºÂÊ®¸¾¤²·ž¯³›®²‹œ§v†–_oO_oUeuu…•­½ÊÔèëçúûéøûí÷ûî÷üîôûì÷üéöüèõûçôùéöüãðöÔåí¿ÕàÈÝèÓéôÏåïÊàëÅÛæÁÕà¾ÒݼÐÛµÉÔºÎÙ¶ÊÕÀÔÝÀÔÝ·ËÕµÈÑ©¾Æ™¬¶“¦®›ƒ’w‡‘gv]kvWfqUfyTf|RdzPbxOawUg|Ti}Pf{Qg|Rh|J`uJ`uRjRq…Ss†Ttˆ[|a€”h‡›nŽ t•¥v—§ °‰ª¹‘²Âš·É‰œ¯n€“Sfy8K^6I\4GZ6K`;Qg@VmG^sRh~_u‹az]yZvŒZvŒXtŠNj€NiJbyBXpDZqCYpKaxMczI_rE\nAWl?Um=Rm:Om;Qr7Qu:Ty>X}E_„E_„E`…@\…?\†?\ŠB^C^’A\”BZŽPdewxy‹ml}caowuƒb`npn|mky10?¹ÂÙq{”Œ–¯ak„Q[tjtáíøÄÒæftn|—dr›¶N\vÅÏèS]v4>W~ˆ¡¤®ÇWaz«µÊ©³ÅZd}…¨…¨Ÿ©Â¾Ç⢫Èzƒ ENkHQnDMjWa}`k}?J\`k}`k}al~U`r^l†q‚ K\zGXv`q=NlR‰7I{1Bi-=Z%3F*:45GABTefx_`rABTIJ\46F37EHKZRUdW[hX[iCFTNP]RTa46CrtikxNP]UWdTVeCDSBDSRTbZ\k<>Kabl`alZZgŠŠ™TSe<=O•¶Š”­Š”­‰¢+5N´¾Îäðú·_mˆž¹~Œ§ft{ˆ¢²¼ÕjtLVoš¤½§±ÊDNgÇÑ腏¨|†Ÿz„™£¼ÁË㧲Ëz‡ŸUa}ITsOZ{`kISy1G:N_Qkˆw“¾m‰ÀrÇvŽÅx»k} o‚¢q ctWgZiƒUcm~Ÿ~“¸p‡¯Uk”J^ˆ:IhŠž¬¶Äš¤©›¤§›¢¦ª¬°àØ×îæäèÞÜîááïààîßßäÖ×âÕ×áÔÖàÓÔßÒÓÚÍÎÙÌÌÒÇÃÌÁ½Ê¿¼ÌÀ½ÌÁ½Ä¹·µª¯¯¥ª© ¤±©­»µ¹ÆÁÄÊÈ˾½Áž¡|{_^bjim—™œ»ÄÃÛäãîõõñ÷÷òö÷ñõöñ÷÷ïö÷îööéðñâééÝååÏÞßÊåæÐìíÒíîÊåçÈãåËæè¹ÓÙµÏÖ´ÎÔ´ÍÓ®ÇΦ¿Æ¦½Â¨½Â§»Áœ±·’§­‘¦¬‘¤©˜©­ ±µ¤´¹ªº¿³ÃǺÊνÔÖ¶ÐйÒÓ¿ØÙÀÚÚÆßàÑìíÚöõÙõöÜ÷÷ÜööÛööÚõöÉåõÃÞðÃÞïÀÛíÆáóÐëû×ôýÝûÿßüÿÝúÿÐîùÄãï¦Á͂“Ÿ\lxDUa;KW:KW9JV:NZE]gYq{l†rŽ—{™¡¢®wž®wž®wž¯uœ¬^…•JpEbsJhxMj{Nl|Tq‚Tr‚Uo}QhxG^pAWl;Pi8Nh;Rq=V{C]‚Ga†D^ƒD^ƒD^ƒB^…B_‡C_ŠD`ŽC^A\@W‹HJWPR_TVcTVcEGT13@8:G24Aegt^`m>@MFHURTaKMZ68EHJWZ\iOQ\SV\\_gLNZ§¨·NObIJ^†§oy’•Ÿ¸Œ–¯.8QÀÊà˜¤¾}‹¦€Ž©„’­ªlz•”¡¼Ÿ©Â_i‚[e~ž¨Á}‡ V`yÎØ®‹¤ak„­·ÐÆÐ甠¸m|”We€O\|@Lpbn•YeQ[v#-F6@Y~ˆ¢ÈÒêNXqcqŽo‚¡h{—Rf~4I[7M[6HT5=E:AI8?G>EM;BJ:BJJ_l`y’tŠ²q†¸yÀh~«r„©uƒžft^l‡M[vQ_zXe€^g}luŒmy’[j„@RpZm3A_‚Œ íöýéòõêññêíñòðôÛÑÍëÞÚòãàìØ×ïØØñÙÙëÕ×éÓÖêÔ×í×ÚóÝàòÜßóÞÞöáÜõàÛ÷ãÞïÛÖèÔÎÝÈÃÒ¼¿Ò¼¿Ó½ÀÜÆÉéÓÖðÚÝØÈȽ²®¢—“tpeZVaVRukiŠ†‰£ £¶²¶À½ÀÄÀÄÀ½ÀÂÀ¾ÂÀ½ÂÀ½¿½º¾¼¹ÑÏËÆÌÊ¿ÐÐÃÓÓÇ××ÏààÊÛÛÆ××ÂØÜÄÚßÌâçÝó÷ÐçëÏåêÖíïÙîïÛðñÝóôàö÷â÷øâö÷ßô÷ÝòôÖëð×ìîÓèìÏäéÊãåÅÞáÇàã¿ÙܵÏÒªÄǪÄÉ«ÄË©ÃʬÅÍ­Æ͟¹À•¯·ƒ ­~›©€«‹¨¶Ÿ¼ÊµÑÞ»ÙßÇåèÑðóÔñõÊèì¼Ûߢ¾Äˆš§asEWe;M[;M[;M[=P\Mbmh~‰}˜ ˆ¦® ÁÈ®ÓݧÔá°Üéµáî²Þ덹ÆS~Œ[}¢³|®s”¥s”¥o¡d€ŽXp}H_oAXkBXnAWoAXu=W|E_„KeŠF`…F`…F`…B\A\A[ƒC\‡C[‹@XŠ?T‚;Jq5Eh4Dd->Y,C 2RSe`as]^pGHZ>?QJK]/1@')6@BOKMZRTaUWdHJW/1>#%2)+8_anfhu<>KBDQRTaIKX,.;@BOacpmoyDGMMPYWYf‹œJK^[\q‡¨?Ib“¶—°*4M™²my“µÃތšµ~Œ§w… }‹¦“ ºq{•s}–`jƒ¦°Édn‡akƒÅÏ眦¿q{”jt½ÇÞ¥¯ÈŽš³bpŠcqŒbpVcƒN[}R_mw!,A0;QitŠÀËà`kao†duhzHZm4GV;N\CS_8@H18@18@9@H7>F8@IIZt`s•l€©s†²x‹´oƒ¥xŠ§r€›lz•ZhƒSa|P^yVc}V`ugpˆ\h‚VeVh†EXxBPo†£ðùþèñôìóòëîòñï󹮫¯¢ŸÀ±®À¬«Å¯®È²²Î¸»Ô¾ÁÜÇÊÚÅÈàÊÍæÑÔéÔÔðÜÖôßÙñÚÔæÏÈÛýԼ·ÖÀÃÜÆÉâÌÏí×ÚôÞáòÜßìÛÛÜÎËÅ·´ ’ykh^OLfXWˆy}° ¤Î¾ÂåÕÙéÚÞçØÛØÉÉÑÂÁ;½Éº¹Ã´³«œ›˜Ž‰ˆŒ‡‡‹‡†‹‹‹‹ŠŠ‰ŽŠŽ“—œ¡­²¶ÀÅÉÇÌÐÉÍÓÏÙ×ÒßÚÔâÜÚçâÝëåàíèãðíêöøêöøèô÷çóöçóöèô÷âòôàòóäööÞððÞðñÝïïäõ÷æ÷ùçøûæ÷ûèøüßñöØëñ½ÚãµÓݲÐÙ¶ÔݽÛäÅâêµÔ×±ÏѵÓÕ¼ÚÜ´ÒÔ¥ÄƋ¦ªtƒRamAP\=LX=LXWx=Tw=Ty?V@W‚>T;Pz7Gj3Ce5Ed1B^ 1K 9OPbfgybcuIJ\=>P=>P&(7$&3=?LKMZUWdY[hPR_68E#%2$&3VXert=?L;=JPR_JLY/1>>@M_antv€?BHX[doq}rs‚VWjlm‚r|”$.Gˆ’«‚Œ¥PZst~—Š–°ÍÛ視Ðx†¡lz•…“®Ž›¶fp‰lvnx‘«µÎt~—S]vÉÓ똢»oy’®¸Ñ£­Æ’œµwƒœYg‚_m‡^l‡[i„JXsIWqZez.9L$/B`k¾ÉÜnyCQaEVc8HV;KYDUbO_lSalDLT3:B29ACJRGNVMU_Zh‰m~¦p¨x‰­o¡zŒªwˆ£y‡¢guesŽcqŒesŽESmgq†fo‡Wb|Yg‚^oŽ]p@Nl~ˆôüþéòõíõôîòööôøÖÌÈÔÇÃëÜÙèÔÓæÐÏåÍÍÝÇÉÝÇÊÞÈËÚÆÉÛÆÉÖÀÃѼ»Ì³ªÊ±¨º ˜«‘ˆ£Š¡ˆ§’­—š·¡¤Å¯²Ï»¾Ì¹¼Í¾½ÖÅÃμº¬›™ˆwtgVT\IHr]_›…ˆº¥§ÝÇÊáËÎâÌÎäÌÍãÊÊäËÊàÈÈÚÁÁз¶¿©«¯ž¤§—¡‘—™ˆŽ™ˆŽšŠ¡•š«Ÿ¥¹­²¼°µ´¨­²¦«µ²¯¶¹±¾Â¹ÀûÀÄ»ÀúÁľÄÆÆÆÈÈÅÆÇ»½½º»¼ÀÂÂÆËÊÅËÊÊÐÏËÒÐÕÛÚßæäèîîêðôîôøîôøìòöìòõèðôÒëïÌæëÌæëÓíòÖñõÚõøÚõöÜööÞøøÝ÷÷ÑìíÂÝÝ¡¸»vƒŒP[eEPZ@KU@KU@LUANZN^jgy…|‘œ‡ ª’®¶“´¿’¸È‘·Çˆ®½|¢²j‘ ]ƒ“u—§Š«¼‡¨¹‚£´„¥¶‡¨¹~š¨t‹™`w‡Tj~WmƒZp‡Qh…E_„Lf‹PjHb‡E_„D]‚Ty['EIJ\`as^_qCDV45G01C!/$&3<>KMO\UWdWYfTVc<>K(*7&(5DFSy{ˆFHU68EGIVMO\:EMRYaW^fYaj]iˆn{žo}œrœjz—~‹®n|y‡¢FTor€›FTo[i„HUpv€•fo‡Zfo~™zŒªk~žN\{|‡›îøýéòõìóóïó÷öôùÜÒÏÛÏËîßÜìØ×ðÚÙòÚÚôÝàóÝàòÜßòÜßòÜßòÜßøàÞôÙÍïÓÈéÍÂãȼäȽåÉ¿ðÙÛóÝàðÚÝìÖÙéÓÖèÒÕÜÇÈÒ½¼Á­¬®š™“~}s^]^IHcNO{ff•€€®˜˜µŸŸ½§¨Å¬ªÐ´²ÝÁ¿ßÃÁÔ¸¶Æª¨¾£¤¶› ®”™¦‹‘ƒˆƒˆ¡‡·¢£¾©«À¬­»§¨¼¨©Ã®¯Í¿¼ÑÇÂÜÑÍÛÑÌÚÐËÚÏËßÕÑåÚØâ×ÕäÚ×àÕÓÜÑÏÚÐÎÛÕÑØÒÏÔÎÊÉÄÀľ»Ã½¹¼¶µ³¬®³¬­²«­µ®°»´¶¼·¹½ÉË»ÈË»ÉÌÈÖÙÍÛÞÑßáØæèÜêìÜéìßíïØæè½Ë͔¡¤mw~NX_CLT?HP?HP?HPCNZQ_ln}Š”¦²§»Æ®ÄβÎÚ­Ðà­ÑᓶÆh‹œm¡Œ¯Àš»Ì®¿ƒ¤µ¢³‡¨¹…¦·|˜¦n…’Yp€PgzKawI_wKbA[€D^ƒD^ƒB\>X}8Rv5Le5Ja5Jc6Jf6Ii3Gh4Fe6Ha8Id:Kh>No;Km!1TKL^_`rZ[m;K13@13@13@hjwUWd:HaISlHRk\ft~—©Ã•£¾ƒ‘¬¢°ËftŒšµŠ—²mwfp‰…¨Œ–¯´¾ÕWazŽ˜±{…ž…¨§±Ê ªÃ™£¼kv‘WeƒR`{FUmETfDTcL\hR^k:FS-9FKWd•¡­wƒ6CECPLBNM5@C-8?-8A:DOAIQCJRDKSY`h]dlU\ebm†]iƒgtˆkxo{š€‰·~ˆ³XfIWr]k†Zhƒ]k†P]xirˆoxLWq…”®y‹©m€ Yg†|†šòúþéòõìóóïó÷öóøÐƽ°¬ÙÊÇÛÇÆçÒÒîÚÚöáäöáäöãæ÷ãæ÷âå÷ãæøßÜó×ÉëÎÁè˾åÈ»ëÎÁñÔÉ÷áãòÜßîØÛóÝàóÝàóÝàñÚÜôÝÜêÒÒÖ¾¾½¥¥……~igkZVqb]Ž~z±¡Åµ±×ÆÂÞÈÃßÆÁßÉÄÕ¾¹Æ­¨µ›–¨Œ¥ˆŒ ƒ‡—z~rv’uy—|©‘Žª’¥Š¥Š¬”’²›˜¾¨©È³·ÖÁÅ×ÂÆÝÈËÝÈÌâÎÏèÔÐåÒÍâÎÉÝÊÅáÎÉèÕÏç×ÑäÔÎáÑËÛËÅÖÇÀÓýϿ¼Ì¼¼Ì¼¼Í¼½ÒÂÃÕÅÆÙÊËÓÐÔÓÒÖÓÒÖÎÎÑÌÌÏËÊÎÌËÏÍÌÑÎÎÓÏÎÓÀ¿Ä¢¢¦}~‚^ekIPVL\]l\^lWYgWYgKMX149,/7ikvfhvRTe[\p{„œLVo;E^V`yfp‰r|•’ž·v„kx‘—¥¾8F_~‹¥x„žjtXb{‘›²¦°Ãˆ’«lv|…œfo…— ·£«ÂÂÊà‘š±\f`m‹Q^y?Md?N_;JXAQ\COZ2?I*6AFS^ÀÍׇ”ž&23=IDDOM=GJ/9@'1:7?J5>G;DMJS\\dn`hrW_iam€^k~iv‡Zg{v¢„½…»IWtFTqKWs{‡¢sšfp‹muˆV]rEPfdrŒaqt†¦Ucr|•ïùýêóõìóñïôôöô÷ÒÇÄÁ³°ÔÄÂ͸·ÌµµÍ´´Ç¯°Á©ª·Ÿ ´œž¸Ÿ¡º¢¤µš—®‘†¯‘‡³•‹¶˜ŽË­¢Ø¾´ÝÆÈßÇËàÈËåÍÑæÐÔèÕØéÓÓïØÕòÛ×ìÓÐÞÅÂ맠‰…{mfgYSug`–‰‚µ§ ÎÀ¹âÎÆïØÐðÙÑçÐÈßÈÀÔ½µÌ²®¿ £°‘”¨ŠŒ¦ˆŠª‹Ž±“•½§¡¸¤®š“ª–¶¢›¿«¥È°°Æ¬±Äª¯À¦«Á§¬º ¥¹Ÿ£¼¥Ÿ¾§¡¿¨£Áª¥º£Ç°«Ë¹³È·²É·²Çµ°¿®©µ£ž³ º§¦¿¬«Èµ´ÔÀ¿ÛÈÇæÓÒÞÒÖâÖÚáÖÚÛÑÕÖÌÐÐÆÉÉ¿Ãù¾À¶»¾³¹¯¥ªš•x}jlpY]`FIL7:=69<6:>59C?DPU]hpz„}‰’…“œŽ ªŽ¥²‹¡®l‚g}‹“©¶¥¼Ê–¯½‹£±Š¢°–®¼µÃŠ¢°m…“uŒ›k‚“Ul€H^u6Ke(?\4X4Y3X5[4[3Y0H.C-D,E+G)E)D-D.H"2P/?a1@e+TKM[QS`=?L(*7 "/+(,;PVfv|Œx~ŽX]m7=LDIXRTbVXe=?L*35BY[hWXi?ARUVhefxUWhYZlMOZ.25%(-EHOZ\gTVcJL\ktWaz0:SZd}eoˆ}‡ |‡œ_j|ŠœlxŠDOb€‹ž~‰žXb{gqŠ¶ÀÑ¡«Â»ÅÛZd}tz\cs–œ¬§­¾¿ÅÕ~„”28O~‡¥r|—KUmR]r?J\4@O,9B(5=)6>FS[®»Ãž«³%/7>7?F7>F5FBJS0;H5ANFR`Xcq_ky_jx^l}Zi|`o„Xfw…¢Œ­Ž±Uc†IVw^g…mt‘qw‘tx’OVbDL]ozp}˜hw•O\{isŽîøüêóòìôìïõîöôñÜÎËåÕÒñÝÛôÜÜ÷ÜÝùÛÝûÞÜ÷Û×ô×ÓîÑÍäÇÃÝÀ¼ÜÁ½×¾¹ÚÁ½Û¾áÉÄèÐËåÎÊåÉËãÇÊàÃÆßÆÉÚÂÅд·È­¨É®¤Ô¹¯ÜÁ·Ö»²Á¦œ¢ˆ€ˆrqmYWcNMwba–‚€¹¤¢×¼àÐÈÚÆ¿ØÁºÛļ˴­¿¤Ÿµ““­Š‹¯Œ·””»˜™¼šš¶ œ·¢²ž™¶¡œ½©¤Æ±­Ñº´ÚúÞǾàÉÀàÉÀÜŽÜÆ¿Ô½ÓÁ»ØÆÁàÎÉâÐÊç×ÑÙÍËÒÅÅÐÄÄĸ¸¶«ª«žž©››¯ŸŸ±¡¡»¬«Ã³³Æ¶¶È¹¹½®²À±¶ÃµºÏÀÅȺ¿¼­²°¤¨¢—›•ŠŽ‘†Š…‰Šƒx|}y{qnoXUV>:<745:68957?<>NJLkhi|~Œ‰‹˜–— ž ‘dbd„‚ƒµ³µº¸º¦¦¬››¡£¤ªµ¶¼º»Àxy~8FRPgxOez@Vmhqfo‹Q[tQ\q9DW(4D,9C(5>)6?CPYƒ™˜¥®*1929A.5=5a(9\0S%I BIKXKMZ35B!. -!#059GW]mu{‹‡\br8>NRWffhvikxPR_!./1>[]jqs„Z[mjk}op‚_`rhi{QS^59;!$)),3KMWZ\iXZiW`yJTmGQjZd}’œµnx‘gr†ozŒal~.9Kq|Žy„–lw‹AKd—¡º¤®Æ“¶°ºÒx‚›\cuek{|‚’µ»Ë…•€†–"(>S\yOYuEPh?J_=H[2>N,8E(4@)5ADP\„›¦³¾ +%,4-4<'.6,3;3:B:CL6BP?KYJVd`lz[guWcrR_tUd|Q_z^lŠy†¨r~¡lz›>MjWe€nw“v}•pv‹ux€…>FQU]mkv‹|Š¤…”²andn‰ïùýêôòìôìïõîöôñÔÆÃÁ°®ÜÈÇØÅÆÙÄÆÒ¹»Þ¿¾×µ³Ê¨¦±Ž£‚€£©‰†ª‡º—Ũ¡Ì¯©Ë®¨Ó¶±Ó½»Ö¾¼ÙÀ¾ÝÄÂêÐÎêÎËìÐÑìÐÒíÐÓîÒÕñÕØïÓÖÜÁü¦¥œ‡†€kjgRQ„on°›šÒ¾»ìÙÕïÛ×çÔÐâÏËÔÁ½Ç°¯¾£¦½¢¥Åª­Ê°³Ç«®Ã§ªÀ¡¥Á¢¦½ž¢º›Ÿ¾ž£Â£§¾¡£¿£¤Ã§¨Å©ªÄ¨©¿£¤¼¢£±žž´¢¢¿­­Ï½½Ë¹¹Íº¹È±­Ç¯ªÅ­§·Ÿ™´œ—½¥ŸÆ³°ÑÇÈ×ÌÎÛÑÒá×Ùâ×ÙâØÚèÙÞêÛàÝÎÓÑÂÇ;ÃÊ»À¾³·´©­£˜œ”‰Šƒ„y}†}€Œ‡ˆ‚~mijIEF<89623734956?;Rt?Sw>RwG_KUnHRkisŒ§ÀV`yr}’doMXj?J\kvˆ…¢hs†GQiš³hr‹ž¨Á•Ÿ¸v€™`gybhxƒ‰™©¯¿…•{‘$+AHQoFOkHSkJUjGRe4?P%1A/;K*6E9DT{‡–§³Ã!,")1%,4%,4&-53:B2:D:FSHTbYesJVdBN\O\jJWoBPlHUtTa„`m‘Vb‰Ub…2B\iwdn„~†š`fyeizhlv2:ET]lkv‹o}—tƒ¡NZy`j…ðùýêôòíõíïôîõóðÞÑÎÕÄÂïÛÚòÚÚóØÙôÖ×ñÍÍçÁÀÙ³²Ê¥¤È£¢Í§¦Ùµ±àÁ·æȾìÍÃòÓÊôÕÌõÙÏñÙÓíÔÎèÎÈÜýֺµÔ¸³Öº¹Ö¹¼Á¤§¹œŸ·š¹œž¸ž ²œ›ž‰ˆˆsrkVUkVUˆsr™ˆ‡Ä´²ÚÎËÖÇÅ̼ºÂ³°½««¬˜œÁ®°¿ª®Æ²µÁ­±Å¯³Ë¯µÇª±Ê¬²Ê¬²Ì¯¶Ð²¹Ì²¸Î·½Ó»ÁØÁÇÜÆËÜÆÌÛÆËÖÃÆÕÂÅØÅÈåÒÕê×ÛéÕØáÉÉÕ¼»Õ¼ºÐ¸¶Íµ³Ò¹¸ßÍÏÔÌÑÌÃÈżÂ¹¾ÊÂÇżÁ¸ª¯¸©®²£¨¬¢´¥ªµ¦«·«¯¶«¯©ž¢œ‘•‚†tx{ruƒ~€Š†‡zvw[WXD@A845845845845D@A]YZ{|—“”‘Ža]^€|}£Ÿ «§¨³°±¯®³±°µ¹¸½ÃÂǽ¼Á™˜[itƒš¬w£j€˜e{–[pPg†?]~GeˆFd‰HeJg”C_?Uz>RsAUv=Qr=Qr@Tu@UyBXDZ?U|9Ow7Mu'=d68E>@M.0=!. -#%237F>DTMScpv†djzTZjNSbWYf‡‰–`bo.0=bdqHJWLM^wxŠz{vw‰wxŠefxdfqeil(+0;>FWZd„†“œž­=F_JTmJTm¥¯Èjtr|•‹–ª^i{JUgbmXcuxƒ•AL_R\u‹•®pz“š³‹•®lvŽ^ewpv†•›«‡‘—§gm}'.D_h…[e€;E^7BW8CV9EU)4G&1D$/B/:Lz…˜¹ÄÖ'3&.'.6+2:/6>5:;SOPuqrˆ„…{wxb^_{|™š¦¢£­ª«¯­²¯®³µ´¹½¼Á¶µºœ› es~¤¶…›°xŽ¦mƒž]rLc‚A_Jh‹IgHeŽIf“@[Š?Uz@Tu?St;Op:No=Qr=SxAXCZƒ>U~9Qz8Py'?h35B>@M02?!. -#%2;?MPUe[`q|‚“kqQWf7:AJ>EM:BL?JXJUd\gvGR`CN\R^m_m‰bp’`n’mz¡q~©ny¨bo•hx[j~ZdvrzŠ5:;RNOsopƒ€idffbc‹†‡žš›¦¢£­ª«¬ª®ª©®®¬±ª©­ Ÿ£’•cp{•¬¾“©¾…œ³w§]r‘E\|@Lcescdy{{“qs‰\_n&(4cer¬®»givEGT›ª:UJRiŒ’§lrˆci~|‚˜v|‘TZons…„Šš¨®¾`fv†Œœ:@P3H:@K7>J:APDK[ZaqHO_PWgIQbAXƒUp¦g€¸j¼p†Âq„ÃP`oygq„5>P9BO+5?AITIReDMaEPcLWjHTfIUgFPjQ[tíùþæòóåòíäðîéïñÑÅż¥§Î®±Í§ªÌ¥¦È¥£Å šË¥žÎ«£Ù¸°à¸èÌÂÝÀ¶Ò²ªÎ®¥É© É© Ç§žÂ¢š¿º˜šÁž »˜š³‘“µ“•º˜“¹™Ž¶–‹¸˜¸˜¹™Ž·˜Ž¼ š«‰¡…“wq{_YfJDUB@¬œåÖÕîÞÞýô󷦥þö÷ÈÅÈèåèÖÓÖ¬ª­ù÷úìéììæèýÀÒÌÎúõ÷¡šÑËÍľįª²àÛâøóúôð÷²®µÙÔÛúòù¾µ¼áØߓŠ‘îåìóìóßÙÞúõùÚÔÙËÅÉÀº¾ôïóìèí«ª¯öõúçåëæäêàß䕔™±­²èã鸴¹ËÇËíéîðìñÃÀƒ‘™ÜÛãÕÕÜÐÐ؀€‡‡ˆ©«²¹»Âˆˆa]fSMWA:D948845845956FBC_[\lfhcZ]pgj˜’¨Ÿ¢±¨«¹±´½´¸½´¸½µ¹µ­±°§¬£›Ÿnr~˜¨¹ªÃԉ§¸s‘¥Vp‰DYtASmHZtFXrM_{K]yASp;PmDTDPUƒv“Ì~›Ôu‘ÊuÈ|•Îcv HQc-5H.7I;DUISbJSd@K__j=H[LWiVbrYeuOZrEOiìùÿâðñÞíêÜêëäìîÑÆÇ®•˜ÃŸ£Æœ ÈŸ È¢ŸÓ®¦Ü¸¯àÀµëÎÂôÙÌøáÓð×ËïÑÉìÎÆâļâļßÁ¹Ø¹³Ú¶¸Ø´·Ú¶¹Ü¸»ã¿ÂìÈÌöÓÏúÙÏöÔÊëÉ¿Ý»±ãÁ·Ý¼²Éª¢¿¡™¸š’¨Š‚’tlvYQU@=ˆvt‹‰’€~² ž‘}Ê¿¿³°²À½À’Ž‘‘Ž‘õòõ¾Áú½¨Ÿ¢¼³¶ðè뉃¥œŸ£™ ¦›¤™Ž—óìòÙÐ،‚‹ÕÍÔüøüáÜâõðö”•æáçëæëÅÀÃú÷øòîï´°±¶²³ñíî÷ô÷ž¢óòöðïôèçìçæ렟¤²±¶óòöÈÇÌâáæñðõïîóìí󖙢óöýòõýõøý™®²ºíñøåèïÔÔÜIFQICO?7D938845845845=9:HDEPIK\QUynr™Ž’¤™¬¡¥³¨¬·¬°·¬°·¬°³¨¬±¦ª¥šžvxƒ“¡²°Éه§·mŸTo…DXrDTkETk>MdHWnJYpIXo?Rn=RoAVsBWt;Pm:Ol;Sp7Rp7Rp7Rp7Rp7Rp,GeNQZ:=F"+"+"%.&)2+.7:DTS\r\k‰CRk;E[5=M/6A+0;-9L3@U4BV+8M3@U£°Ä´¼É>DPKQ]KQ]PVbRXdGMZ28HX^nRXhEK[ciyqw‰gy¤s‹½{•Ä{—Äz—Â{™Â>Ut)5E6ATLXmjuXc~>HdGSdNYjBM_\gzbm€r}‘fpŠ;E^ìùÿàîðÝìéÛééáéìÊ¿À“{~¬ˆ®„ˆ®…†­‡„ž–Ω Ð°¥áĸóÚÍñÚÌð×Ëõ×ÏôÖÎòÕÍèÊÂàºԵ¯Î««Ë§©Îª«Ð¬­Ø´µäÀÂóÐÊòÐÆéǽä¸ݻ±ãÁ·ã¸ÞÀ¸Ü¾¶×¹±Î°¨ºœ”™|tePMtb`§•“IJ°ëÛÙ¥“‘öë뺳³ìååÉÁ¯§¨ûôõ·¯±ÍÂÆ¿³·µª®÷ï󥙝³§«É½Ã¤˜ £˜ŸéÝå÷¿”‰®£«ìç윗¶±·—’˜ÐËÑåá朘šÜØÙëç菋Œ¢žŸÚÖ×òðòzy~ÐÏÓÔÓØÞÝâêéí Ÿ¤«ª¯ìëïÞÝáÈÇÌôó÷óòöæç–óöüïòûñôû²µ½§ª²îòø¡¥®ðð÷miuGAM@8E948845845956<89>:;C<>]RVˆ}¦›Ÿ®£§³¨¬¸­±½²¶½²¶½²¶¹®²´©­¦›Ÿuwƒž¯Ç×|œ¬jŠXsŠG[t>Me=LcAPgFUlGVmL\sH\wCXuG\yJ_|AVs>Sp=Ur7Rp7Rp7Rp7Rp7Rp,GeTW`H[BL_>GZ2XîúþâðñàïìàîîçïòÔÉʧ’Á¡ÄšžÃ™›Ãž›Ì¨ Ï«¢Í­¢Î³§Ì±¥À©›¼£˜¾ ˜»•¹œ”°’Š«…¡ƒ|¬ˆ‡«ˆ†ª†…¥€¨…„¶’‘ŤÀž”¿“ÁŸ•Ä¢˜Ï­£Öµ«Ú»³ßÁ¹×¹±àºҴ¬¯‘Š€kh^LJygežŒŠáÒА~|éÛÚµ§§ÏÁÁçÚÚ²¤£ýñðøììüñõÝÏÔ£•™ñåêûñöûîòèÜà® ¥ª¡óèìÛÏÓ°¢¦¶ª¯øôùÔÏÕãÞäÆÁÇÞÚßõðõÎÉÌüùúéæ缸¹Á½¾ÕÑÒõòõ~ƒØ×ÛÄÃÈàßãëê﨧¬¦¥ªÙØÝËÊÏÆÅÊáàåÒÑÖêëñ…ˆ‘ÒÕÝÏÒÚÊÍÔÒÕÝrvÜàæÉÍÖêë󖒝KDQC;H948845845845845845=68WLP„y}¨¡²§«·¬°º¯³Æ»¿Æ»¿È½ÁÊ¿ÃÆ»¿³¨¬ƒ…‘et„¢»Ëy™©s“¦b}”DXr?Nf2AX9H_CRi@OfHWnMa|H]zEZwEZw?Tq=Ro>Vs9Tr8Sq6Qo4Om3Nl)Db[^gG+1?ls‡¯¹Îž©ÀYb ©Æ”ºs|™„ª¨±ÎºÄÞ¤®ÇkuŽ~ˆ¡BLe]g€}†™Ÿ³DI]MRfafz`eyFK_‰¡†Œœmsƒ…‹›•¥/qz]lŠTc|GQg2:J8?J;@JDK[HOaGN_8?P+2CpwˆÔÛèbht4:FNEK[TZjW]mHN^EL\LVjIWoM_}BY~;f=\ŒSkšETzIX}WgˆWg†FWrDUmGT]HU^LXg?J_@Idpy—cl‹4>WïûÿãñóâñîâððéñôÞÓÔÁ©¬Õ±µÖ¬°Ô«¬Õ°­ßº²ìǾîÍÃñÔÈêÏÂèÒÄëÒÆïÒÊðÒÊïÒÊèÊÂãŽغ²Ó°«Ç¤ŸÃ œ¿œ—à›Å¢Ç¤œÂ –á—ɧØ¶¬çǽ߾´Õ·¯Ú¼´Ö¸°Ô¸°Î°¨­ˆƒnkcQO`NLr`^‡us‚pn˜†„”€ž‹Š²Ÿž«˜—¼©¨±žž´¢§­›¡ž’¶¤ªáÐÖÞÌÒÑÀÃȶ¸¹¨©ìÛÝãÓÕ¸§©À²µûöûõñö÷òøÐËÑçãèùôùôïòû÷øÛ×ØÍÉʾ¿×ÓÔøõø‰ˆÙØÜÌËÐÓÒ×ôó÷¨§¬¸·¼ìëðÖÕÚÎÍÒø÷ûèçì÷øü¦©²ÓÖÞÞáèßâêïòøos|ÖÚãéìõóóû”œYR^DVsG #,"+"%.$'058AY[hzz„„ž—oq7:E&(5MO\ŒŽ›‡‰–FHUDGSMQa€†–ƒ‰™‡w}rxˆgkv˜šŸ/3<7=Kt|ª³Ì›µ¡ªÇŒ•²‚‹¨~‡¤‘š·³¼Ù´¾Øwšyƒœv€™JTm…¨œ¤¼’˜¬MRfPUihm`eydi}z‘{‘W]m˜ž®djz%+;PXn\kˆl{”PZoFN^KR^HMW8>L06D-2A&,:(.J8>J;AN7=MV\lw}JP`>DT?EUGOWNYe=Ke1[Rj¤…¡çˆ åcr¬aq£WiI\yJ_r9N[P^aWdk_ky\f|JSpV^Zc„4>WïûÿäòôåôñåóóëôöàÕÖ¸ £Ì¨¬Ì¢¦Í¤¥Ð«¨Þ¹±ìÈ¿ïÐÆØ»°õÞÑïÙËìÕÉíÒÊïÔÌêÌÄغ²ìÎÆçÉÁ×µ¬Ó±¨Î¬£Ìª¡Æ¤›Ã¡˜Ä¢˜Ï­£Õ³©à¾´çÅ»ðÎÄòÑÇêÌÄîÐÈóÕÍóÕÍëÍÅ̯§¢Š}kiiWUr`^€nl”‚€¬—•É±¯ÜÄÁÜÄÂй¶Ã«¨½¥¤¶ ¦´Ÿ¦±œ£¸£ªË¶½¶¡¨­˜›©•–§“”±ž²žŸ¢Ž§—™ÆÀÆĿŽÃÊÅËËÆÌÒÍÓÏËÍÌÈÉÆÂÃÿÀ¸´µ¿»¼ÅÂŖ•š¹¸½·¶»¹¸½çæë³²·ÅÄÉîíòâáæ®­²ñðôõôùïðöª­¶ØÛäñôüñôüÞáèps|ÙÝäñõý÷øýš—¢ngsNFR948845845845845845<57SHL}rv£˜œ®£§²§«µª®µª®·¬°¹®²µª®ªŸ£•ŠŽrtR`q›³ÃŽ­½’²Å… ·0J!1H-D)@$3J2AXDSjJ^yF[xAVs=Ro8Mj8Mj:Ro8Sq9Tr9Tr1Lj*Ec'B`pr~?BM!#- #+!$+'*0GJSim|xz‘ˆ‰¤ŠŒ¤{~:=I&(4IKZln†‡™QSb?AMcgw“¥Œ’¤…—nt…kpƒy}Šƒ‡38BGM]w}“Œ’®™¡¿¡ªÆku‘~‡£|…¡}†¢¡«Ç©³ËQ[vt~™™´jtŽ•Ÿ¹ÌÔìv|UZnZ_sej~X]qqvŠ~‚”•˜ªHL\¢°dhv&*7@GZAKh_hƒMUk>DV=CP9>J/5D$+9/5F,2D'-@AFZŠ‘£¾ÅÔ6>L=ERU^iR[eRYeglfl~rxŠNSf7QaU_iT]iT^o`k‚Ye_kŒcnŒ1Uu?Vu?Vs5Lg-E^,D\wy‡IKW#&0 #*"'&*,OT\{€’rw‚†£‹©‚ˆ›CT7=L0S-7P'1Lalƒ¦±Å¡¬¾¬¸Ç©´š¢š¥° ¦»_dz‡Œ¢`e{38NUZp,4L%2M7Gg]r›p‰¹‰¦Û€Óp‹¼m…³PgI^€ATqHXs_cxU[pKRj_j„^k‡[j‡\i‚.9MðøÿìóüíóøïóõóôòÞÙÓ¸ª§ÜÆÅãÆÈÛÄÄÜÊÈåÓÔõâäçÔ֍z|þñóÞÍÏ¢ŽÍ¶·ÿñðêØÔqZSýìàìØʞj¸ž†Þ뻜„ѵžÍ±™›ƒk‹w_Ü˲ÒÀ¨‘~e¡ŽvÞɵ¤…œ‡€áÏÈɶ¯Ì¸±Èµ°qr¯¡Ÿ¡•‹wk]gZQm^^zlmʼ¹àÕÒæØÕéÝÚ¶¨¥¿±®Å·¶Æ·¶äÕÕôææãÖÕ̾½ÖÉËÖËÏòçëæÚÞÏÄÈßÔØçÞáàààÔÔÔâââæææÔÔÔåååççç×××åååäääÒÒÒÙÙÙÒÏÐËÅÇÍÇÉÏÉËÆÀÂÚÔÖ×ÑÓÖËÓÚÏ×áÖÞáÖÞÙÎÖÓÈÐËÆÏÓÑÜÈÆѳ±¼¦¤¯œš¥¦£®®¦³²ª·º²¿›“ wo|MER97:666777444222444634=79UOQ‚|~›•—£Ÿ¦ ¢³¯°µ±²³¯°§£¤›—˜‹‡ˆ{z|X]aÉÝ㐱»ˆ®Às—±B`=Qq9Lm7Kk*>_2S!5T,@P8LY:M]:La;Lf?PmDTtCSuAQq>Oj4F]0CU/BRvx‡LN[$&1 (!&!%'?DLu{Œx|•z~›Ž’¬”§@FR%'2^`r˜ƒƒœ\^p#%1PTf’—«hmŒ‘¥pu‰sxŒ±·Æahq!'5666888999777666766=9:OKLytu˜”•¥ ¡¥ ¡¬¨©§£¤¢žŸ—“”‰Š„€|{}LQV¹ÍӉª´ˆ®Àw›µA_~;Rt@WyH^€BXz0Fh 6W3F$7G.@R:LbOi@Qo=Nn9Jg5F`0BZ4F[4FYqs‚KMY"$.& $!$5:Bot†…‰¢rv“‘«–œ®@EQ%'2no˜ssŒrs†69EJN_šŸ³ns‡ÁÆÚw|bg{¸¾Ífmv '4QVj’—±nr‘·»ÜIRlr|•‹•®¥¯È6@Y‹¤¦¯Ëirpy–³¼Øcl‰ÓÜ󐘳gl€hmotˆ~ƒ—SXlin‚Ž¤“”§lm}pr~EHR58?9=IGKbfk€KPbNTcZ`l>FO0'9M;MbX‹¤“¶¸ÂÛ6@YkuŽ·ÁÜy‚Ÿˆ¥ox•‰’¬¿È㇏ªmr†ns‡fk”™­BG[ˆ¡‘¥Œ qs‚hjv9J?DXDI[FLZNU`CJS,4;#/4$18(5>-9F,8H9DVJUiªµÉÃÎàp|‹#. -6+6???8::9;;9;;„ƒÓÖÕÛÝÜáÞ߄€‹Œ‰ŠŽŠ‹š–—š™›W\aƒ˜…¦°‰®Á„¨ÂA`Fb‡Ea‡E`†>ZRn”JdŠ'OjCTp=NkfhwIKX&)3!)#!#%*2Y_p•™²gkˆ¡»™Ÿ²:?K'*5rs…••®bbzABUUXd\`r•š®MRf¸½Ð‡Œ ;@T’—§ƒŠ“–£7HAFX>DRJP]BIR07<#+/$13)79,2,5-9F5APam¬·ËÆÑâlx‡,8C-:C6AJGNY?EP28C(/:5Rq(9T,D 2G%8I':G+>L7J\=Pd?QiARoCSsAQrcetIKW'*5"*$!#"'0W\n ¥½fj‡˜·«±Ã5:F&(4kl¶de}/1CTWcRVg|•UYm…Š”§38Lhm|•œ¥‘—¤9>QHLe“–´½ÀÞGdÇÐëqz—s{–w|{€”W\pˆ¡gl€y~’œŸ²mowyˆoq}Y\e&)0;>JRXjTZjRXd>EM#*/"*,0=>*7:+7=,8A8CP(2Afp‚¢¬¿ËÕå\gtKWaUajYdk6;E6=,--~~rsr———kmm387497+1/@FE·¼º½ÂÁ´±³ˆ…‡…‚ƒŒˆ‰§££©¥¥ŒŠŒSW[m‡¢«~¤¶‹¯É]~ŸBb‰Ba‰Aa‰>]…EdTs›Nb…BTr%7Q(</>':E2FQ?RaCUhBTlCTqBSsCSv^`m:K-/=<=RJKjpqŒady\`nLQYCIP7>J+1>3:F7>J18F=CQuyˆŸ¡°¯³¿Y]eVZ`KPS;?A369;=@[|So‘Rj‘PeŠ7Jj-E'7H:IU7HS$*9!'6GM\|€‘“¡{}‰UXaADJ158+/115937;38;;@C8<@37;-1=(/=4;LCM`IWlDTlYi†_q“SdWg{`nyGSWKWWN\]HVXLY`HU^;GTDP^\fx,3Dîóýîòúðñôòñðôóïøõóû¹ðâßòÝÚöÜØøÛÖùÞÕöÜÒúáÖÓ¸®Í²¨ÛÁ·÷ß×ôÜØóÛ×ôßÛѶ²´˜”¼¡éÔÒæÓÒϽ¼´ŸžÔÀ¿ßÊÉÛÁЁ… ƒˆ½¡¦¹œ¡“vz¢ˆ‹Áª©–~Ó½¼È³±»¥¤±œš¢„‡rgœ‰~zo’}rydYXGBPFIe[^cY]”‹ÎÄȜ’•›Ž”©›¡Ç¹¿ÖÈÎßÒØÖÈί£©ÚÐÔîäèûò÷öìñÓÉÎ÷ðõóïõöòøöñøøóúÆÁÈÏÊÑüûÿÄÄÉÜÛàððõóò÷§§¬ÒÎÓüòöúòõǽÀǽÀÅ»¿Ç¼Àþõùþôùª› £”™ª› ´¥ªÒÎÔÓÖÞ¶¹Âôöû”—Ÿ½ÀÉôøü¹ÂÂÔàáÀÌÏÖäèíüþ?RZ'01286.32\a_v{z€…ƒº½¾DCH98=327327³²·ÇÇË®²¶vz~lnp€€ˆ„~yuwmmlhj~‰·Óۏ³Â‚¨¼iŠ¦SmŽKe…Icƒ=Ww=VwSmTl‘PfŠ?Sr#5M!1C:HV6GT9LZBUeGYnEWmBTmARnegtfhu/1>24ABDQ8:G$09?PŸ£¼ƒ‡¤gk…tyŒRWe#$6?@Rop‚pqƒWXjabtlm‚”€’€’¢£µ67I¢¥´~…ekwTZiSXlDI^Ÿ¥¼¿Ç㏘µËÔèIRo™¢¿lu’¦¯ÌW`}|…¢‚‹¨¡ªÇs|™jrtyŽfkz“x}‘otˆy~’†Œ›v|‹”¦HPg*2M'0NDLm5:\=Cb?G_IQcQZer{…HN_06H/5G+1C,1DDI\lo€su‚WYdDGO7:?047,03(.3*0506;9?D:@F=CH48D.4C;BSPZnUcxTd{{‹¨s†¨€’®`pƒhu€KW[6BB>LP7DKYfov‚P\kLWhT]p)0Aêðúîòúðñôòñðôóïû÷õÈÀ¾éÛØíØÕò×Óô×ÒòÕÏõÚÔöÚÔôÙÒóØÑõÙÓõÙÔõÙÕöÚÖøÜØôØÔîÒÎíÒÎïÙ×ðÛÚöáàôàßõàßóÞÝöÝÞñÔ×ìÏÒïÒÕóÖÙâÅÈæÊÌéÐÎÖ¾»Õ¼¹ïÖÓâÊÆÛ¾־¶Î·¬¿¨±š™‚w|dZfSOQEIVKOxlpŒ…¯£§º­±Ä¯´É²·Ð¹¾ÚÃÈÛÅÊÚÄÉÑÂÅÖÌÍÜÒÔØÍÎÀµ·º¯°Á¶¹ÊÁÇØÏÕÎÅÌÌÂÉ¥›¢µ«±ÒÍг­²®¨­ÐÊÏÚÖÙ§¡¦¯§¬ÒÇËóê¡ž“—¦›Ÿ¥šžØÌÑëà嫜¡š‹¢“˜ž”•Ž•Á¿ÅíêñÚ×ß|z§¦­ûúþÍÍί°²¸¼À×Þãñúþ{†Ž)-0587032Z]\¢¥¤ŠŒ‹Ö×Ø|{€>=B65:"½¼ÁêêîÌÐԄˆŒoqs‰ˆˆŠ…‚€{wxw’Ž‡“–Ëæ딸ǂ¨½e†¡Ng†Kc‚Meƒ@Xw;SrLdƒLe…F]|>So&9Q/D4AS8HW4GV9:L_`rvw‰ij|tu‡xy‹yzŒ…†˜€“noFGY„‡–gnxnt€ntƒJOb_dy«°ÇÎÖ툑®­¶Ñ_h…Œ•²nw”˜µirŒ•²€‰¦‹”±|…¢px“puŠafzx}‘Š£„˜v{‚…™y~’£©Ã?Hh3?dDS|>KsbjckŒ>Hc5?T:FTR]jY_sEJ`NSh_dy@EZOTjik~ƒRT`KNWCFL;?B5:<*3908?6?F9BI;CJ=FMC549$#(}|ËÊÏÈÍє™iln„ƒ‚†‚{vr‚yy™”—ƒ’Ðìñ™½Ì‚¨½aœF]yG\xDYuAVr9OkCYuAZu9Pl6Je/AZ$4K'4K5EW2ES7J[@Rf=Of;Lf;LhFHU†ˆ•GIV/1>Y[hIKX".16H…‰¢}žY]wfl^cq./ABCUVWimn€QRd‚”ŒŸz{wxŠrs…XYkXYkx{‰V]g†Œ—io~.3G„™¼ÁØÌÔ院¿r{˜Š“°T]zmv“ˆ¥Š§˜¡¾lu’Ž—´…Ž«‚Š¥y~“otˆ{€”šŸ³‘–ªch|suŒˆ‹¦~„¥S_‡cs£¤ØYkœ€³Vc†2@\>LbFUf:IX]bzeiƒosƒœ<@ZVZsps†˜š§JMXKNVADJ8B;GQN[egt~anxIaDQf:H]M]scrŽ€‘²WkŒm€CTh;IVFSYUac^dkkow…]amQUaMQ^6:I!%4×Úãñôûïñöðòóòóòùõó¿³²ñÛÛ÷ÜÛùÜÚúÞØøÞ×ùÝÖùÝ×øÜÕöÙÒõØÑ÷ÛÓ÷ÝÓùßÕöÜÒðÓÉðÔÊñÔÊõÜÕõßØôÝÖößØ÷àÙößØõÜÓúßÖ÷ÜÓöÛÒùÞÕöÛÑ÷ÜÔúáÙöÝÖõÛÓôÚÓîÕÍèÏÈäÆ¿áºٺ³Ì­¥º›“«Œ…›z‡rpydchTRkWUŠut©•“Ò¼·âÌÆéÓÍðÚÔóÜ×ößÚñÚÕðØÓîÖÑîÖÑï×Òï×Òï×ÒíÕÒêÓÐìÖÓëÔÒ÷áÞùâß÷âá÷ããøãã÷ãäöââõâãñÜÜìÓÓéÐÐçÎÎ×¾¾ÎµµÇ¯¯Ä°±»¨ªº§¨¾¬­·¥¦º¨©´¡¢¦””¦””©——¯œ³¡¡¾«¬½§©½¨ª¸¤¦·¤¨œŠscgMBF?59=47C:=WNRrilzsv][^?N1;H'3+ +.MPY14=&)2:=FehqMPY"*ADP££º‹Š©|{š†‡Ÿtv†QTZ“›HJVXZh]^q…†šz{}~‘†ˆ—egt(`ciy|‡UZnËÐäAFZDI]NSgX]qUYsei„£§Â‘¬)-Hw{–x™}‡ ‡‘ª~ˆ¡s}–‰¢˜°ty„˜x}‘•š®”™­€…™cjv|ƒbhuW\mX]q:?U[a{=FdQ[vak„\g|MXjw’MOaBCU_`rqr„fgy€“z}…KORQUXRVYPTWW[^V[^Q]`LYbO^p~«euœZl˜M\€DTo>Nb6HXM^r\lˆ‰™ºl€ 3E_4DXhx„eszHSW[\`cbgihmNMR/.354967A(*7ÍÏÙîñøîñ÷îòõðóóøô󛌌¿¤¦Æ¦§Ç©¦Ç¬¦Æ«ŸÆ«Æ«ÆªœÄ¨šÂ¥—ƪœÆ«Ç­ŸÌ±£Ö¹«Õ¸ªÑ´§åÌÁÙøϹ®Î´©ÎµªÎµªÏ¶«Ðº¯Ðº¯Ï¸­Ðº¯Ï¹®Ð¼²ÑÀ¹Ð¿¸Ï½¶Ò»Ͻ¶Ì·°Ë¯¨É«£Á£›Á£›´–Ž­‡¢ˆ€•zŒxquaZdPIzf_œ†€É¯ªëÏËôÛ×øáÝùâÞùâÞ÷ÞÚõÜØöÝÙøßÛúäàúäàùäßóßØöâÛôàÙõáÚøäÝùçàúçäùäãûæåõàßòÝÜðÛÚðØÕñÕÑñÕÑðÔÐæÊÆÝÁ½Õ»·Ëµ³Ì·¶Î¹¸Ó¾½Ð»ºÕÀ¿Ï»ºÀ®¬¸¦¤¹§¥¾¬ªÂ°®È¶µÌ¹»Ë¸ºË¸ºË¸º¬™›~lnREI@59>37E:>YNRtim}twfbcFBC845512:67MHIwnm—Œ˜Ž…{zwv‘‡†“‹Œ–’•cekÁÌՉœ¨_zˆDbv4Po1Jj3Ki3Hc9LeBE>BECGJAEHOSVSX[PY\IU]KXh{‰¢Ÿ¿–§ÊapR_tDS`0?JRao?Mc;Je%7Q)9P=K^Zgt`ksemsSSXQPUCBG-,10/4549CCN02?ÄÆÐìï÷îñ÷îòõïññú÷õ´¥¥ìÒÓøÝÞùßÝùãÝùàÖùßÕùßÕøÞÔ÷ÜÑõÚÐ÷ÜÑùÞÓüáÖ÷ÙÏíÏÅòÔÊóÖËûçßùâÚõÚÒùÞÖúß×úß×÷ÜÔöÜÓöÜÔñÖÎëÐÈíÑÉëÓËîÜÕíÚÓìÙÒê×ÐæÒËáÌÅ׺³Ç©¡Â¤œ²”Œ¦ˆ€§‰¡†˜„}|uwc\bNGo[T”~x³™”Ê®ªÀ¤ ºžšºžšºžš½¡ºžš½¡¿¤ Ê°¬Ê°¬Ç¯ª¾©¢¾ª£½©¢Ï»´×üÖ»ӿ¼Ñ¾½ÒÀ¿Ï¼»Í¸·Ç²±Ë³±Ð´°Ø¼¸×»·Ï³¯Æª¦¹žš¼¦¥¼§¦½¨§Â­¬Êµ´È³²Ä°¯·¥£­›™¯›®œš°žœ°žœ³ ¢·¤¦º§©Ä±³«˜š…rtVJMA6:=26A6:RGKlae{svjfgLHI956512:67MHIvuž”“˜Ž†|{Š€“‰ˆ™‘’–’•dgm¤¯·q…‘Sn|GeyD`C\|;Sq2Gb4G`:KcFUkJ[sI]{Lf‹QoœYz­4Q|,F&.A)  )*7QT]03<(+4JZ\er_gq_dmCCH216(',-,1;:?DCHMNX24B¿ÁËîñùîñ÷îòõïññøôó»­¬ëÑÒóÒÓôÔÒõÙÓöØÐ÷ØÐõ×ÏôÖÍóÕÍðÒÊòÔÌóÕÌóÕÍôÕÍóÕÍôÖÍòÕÍõÙÕöÚÖöÚÖ÷Û×õÙÕöÚÖ÷Û×øÜÙøÝØ÷Û×ó×ÓöÚÖóÙÔòÞ×ðÜÕðÜÕóßØîÚÓêÕÎåÈÁâļ۽µÒ´¬Ë­¥Ï±©Ì±ªÀ¬¥°œ•ŒxqjVOmYR”xÄ©¥áÅÁêÎÊèÌÈçËÇçËÇëÏËéÍÉðÔÐòÖÒôÚÖóÙÕñÙÔíØÑë×ÐîÚÓòÞ×õáÚùæßõáÞôßÞôßÞñÜÛíØ×æÑÐèÐÍéÍÉëÒÎçÍÉÒ¶²Í±­Æ«§Æ°®Â­¬Á¬«Ç²±Ð»ºÉ´³¿¬«² ž®œš¬š˜¥“‘£‘›‰ˆœ‰‹¡Ž¥’”¬™›ŸŒŽ€npYMPA6:<15>37H=A^SWmeha]^HDE845734956IDEsii†|{ƒyx~ts…{zƒ‚‡ˆ‡ƒ†cek‡’›ex„Rm{Rp„QmRl‹G_}9Ni5Ha5F^APgHYqH\zIcˆLj–Xy¬?]ˆ&A$8%%,8*@OQT].1:,/8>AJPS\>AJ"* #/aby™˜·€€ž‹Œ¤z{Œ‘”šQT\#&1JLZqr…ÏÐä{|tu‰žXZf!+cfm|‹¨­Árw‹"&:…Šž¯´ÈtyBF`vz•˜œ·uy”;?Zy}˜ÈÏâØâòs}–q{””ž·cm†W`wtyv{…Šžv{†šsxŒu{ˆgnxkq~HM^49MNSiy™BEJNQBFI@DGEILMRUFKP9@I2=H/I7AD7B>DPIJTR>HM
MX$2=BN25@)).)(-21698=EDIQPUQR\35B¹»Æðóúîñ÷îòõðòòúöô¸©©ÞÃÅãÅÅâÃÁèÎÈéÍÈëÏËëÐÌéÌÈæÇÄëÌÈêËÇíÎÊíÎÊîÏËñÒÎñÒÎñÒÎðÔÒðÔÒðÔÒòÖÔðÔÓó×Õó×ÕõÙ×õÙ×ôØÖðÔÒó×ÕïÕÒêÖÏêÖÏêÖÏöâÛîÚÓåÑÊèÌÄæÈÀàºٻ³×¹±Óµ­Ù¾·ÕÁºÄ°©žŠƒt`YdPIƒng´™•Ú¾ºîÓÏéÎÊæÊÆäÈÄçËÇïÓÏíÑÍñÕÑòÖÒñÕÑîÔÏëÖÏïÛÔòÞ×ôàÙùåÞôàÚöâßõàßñÜÛòÝÜðÛÚïÚÙðØÕïÓÏëÏËåÉÅÝÁ½ÝÁ½ãÈÄàÊÈÝÈÇàËÊãÎÍéÔÓæÑÐßÌËÕÃÁ×ÅÃÑ¿½Ë¹·Æ´²º¨§´¡£·¤¦º§©¾«­À­¯œŠŒdX[C8<>37@59G<@^SWrjmjfgLHI956623:67GCClbbwml€vu†|{‹€†……†€|€Y[afqz_s[uƒeƒ—Vr‘QjŠIaH\x>Qi5F^8G]FWoDXvD^ƒHf’Pq¤Hg“2O#9* ,*=LAZlRU^*-625>ADMVYbEHQ #,!-OOf¡¡¿zy˜zz’ƒ…•~ˆGJR),7CESmnÏÐäyzŽ‚•—™©_am!+VY`nq|¿ÄØPUi;@TÅÊ݆‹ŸSXmcg[_z¹½ÖUYtGKf»¿Ö¥­ÄØâïdn‡`jƒ›¥¾lvNWnmr†ty’¦rw‹~ƒ—uzŽrx„\cmtz‡?EVHMaUZpX^xAJhPZu5?Wbm‚VatHRcVXiefx]^pIJ\FGYZ[mPS\KOR59JP3@G3=@7@=2=1;F8EOECLJHRU2?F(3;AIS03?()6! .*)/549?>CA@EIHMONSKKV46C¶¸Ãñôüîñ÷îòõñóóøô󴥥Ͳ´Õ³´Ï¯­Ø¼¶Ô¸´Ô·µÓµ³Ñ²°Ì®¬Ð¶´Ì³±Í´²Í´²Í´²Î¶´Î¶´Î¶´Ìµ·Ìµ·Ìµ·Î¶¸Íµ¶Î·¹Ï¸ºÐº¼Ðº¼Ï¸ºÌ³´Íµ¶Ë´³Å¶¯Å¶¯Å¶¯Ì¼µÈ·°Ä±©Ë²«Ë°¨Çª¢À¢š¿¡™¹›“È®¦Ñ½¶¿«¤•zs_X]IBwb[œ}¹™Á¦¢»Ÿ›·›—³—“¸œ˜Ä¨¤½¡¿£ŸÂ¦¢Ä¨¤À§¢¿ª£Ã¯¨Æ²«Ë·°ØžãÏÉðÜÙèÓÒÝÈÇÓ¾½Ò½¼Ó¿¾Ó½ºÐ´°Æª¦À¤ Ã§£Î²®Ó¸´È²°Êµ´Ò½¼ÚÅÄÝÈÇàËÊÖÂÁμºÒÀ¾Í»¹É·µÂ°®¹§¥³ ¢±ž °Ÿ¼©«É¶¸§”–g[^E:>?48?48F;?]RVvnquqrWST=9:845956E@@dZZwmlˆ~}”Š‰˜Žš–Žƒ‚Z]cZenaun‰—}›¯Zv•Kd„H`}Nc~>QjL]u.>TFWoH[yD^ƒEdLmŸIh•*B`0G(9 0=9M^JeyUWb)+579CDFQdfqOQ\"++??T£¤¾ppŒjjƒ‚„–}‹ILW*,8IKXuvˆº»Ðlm€¥¦¸«­¼giv*QT\`dq¯µÊ4:O‡¡ÄÊÝrx9?UˆŒ¦^b}¶ºÕHLgµ¹Ë§«Â‘—­ÅÍÛnvT\uš¢¼s{•DKcqvŠw|œ¡µafz…Šž”¨v|‰chsdivNScJN`SVj`e|BIc]d|4=R^fybk|S[kNQbcfwUWh[]o^_qZ[mNQZRVY6:=?CFHLOPTWDHJABEEHLJNQKRU@IK2=?0675:639//5(39/6;8@FG5>@5<@8=C!$-%%0*)4==AIHLIILEDGDCG@?C:9C45Bº»ÄôõüïñöïòôðòñùöóÓÄÃîÔÔíÊÊìÊÈïÑËñÓÏõÖÓö×ÔóÒÐñÐÎïÍËïÎÍðÒÑñÒÑòÓÒõÖÕö×ÖöØØóÙÛòÙÛòÙÜõÛÞóÙÜõÛÞôÛÝõÜÞöÜÞõÛÞñ×ÙòØÛï××îÜÕíÜÕíÛÕðÞØîÜÖëÙÒïÕÍîÑÈéÌÃâƽßúàÅ»äÌÃéÖÍÚƾ¬˜‘ƒohbMHr]XŸ„€Ã§£Ù½¹Þ¾ßÿßÿèÏËìÓÏêÑÍîÕÑîÕÑð×ÓóÜØóàÛöãÞùæáùæáøæàøæáùèæ÷æåöåäìÚØèÖÕêØ×éÕÒáÈÄÓº¶Í´°Û¾ßÇÃÙÁ½Îº¸Ð½»ØÅÄÛÈÇ×ÃÂÔÁÀIJ°¼­ªÀ°¯Ã³²Ê»¹Á²°¹¨¨®››£›ˆˆ¢­››’cVXB79=24=35C9;XNPnegoikXRT?9;702602@9;VMMpgg„||Š€‹ƒ‚Œƒƒ…}~ojlVX][fnn‚‚ž«®À]zšIdƒHaF\x9Mhar-?VCVnMc€E_Da‰Hg“If>Ts5Ha-

LGIW_ankm{OR_^ctY^nY_orw‡ˆŽžX^nUYbUY\PTWPTWKORMQTLPSDHK;?BCGJMQTIMP6;=466010221887998000455233(()##$++,445=<=LLMOOOLLL@@A77733354;31=»ºÂõôùòòôòòðòòïùøò̾ºéÌÊëÃÂå¾¹çûìÌÄîÎÇòÑËêÈÂçýè½èÆÃçÊÊæÉÉêÌÌíÐÐðÒÒùÝÞòßÞõãâòàÞõäâõãàõäâóáàñàÞ÷åãòàÞíÛÚëÙ×èÖÕêÝØêÝØéÜ×ìßÚêÞØéÜÖëÔÊêÐÄåÌÀáʽß˽áÍ¿ãÑÃïÜÏåÒƺ§ ‹wrdPNgQQ‹pl¯“Ò¶²ãÇÃëÏËïÓÏí×ÔìÚØïÜÚñßÝóáÞóáÞòáßóääóääõççôååõææòääíãâìäâïçåìäâéáàêáàìàßæÔÒÜÊÈßÍËèÖÔæÔÑâÑÎãÕÒæØÕêÜÙêÜÙéÛØãÕÒÞÓÑàÕÔâØ×åÚÙãØ×ÖÌËÍÁ¿Å³®¸¥ ±ž™¶£Ÿ¸¥ ›ˆ„i\ZF;9A64>32D98^SRzoo‚vzi]aI>B=26:/3A7:_Z[}yy†‚ƒ‚~ƒ€|}vnn`XXHGJYdi–œ•¶¾‹°¾b„ŸVv“Pk‰AYw5KkNbƒ>>???CCCNNNFFF<<<55500000042:53>¹¸Àöõúòòôòòðòóïöô„§Šˆ«„‚ª‚}«…~¬‰ƒ¬‰ƒ¬Šƒª‡«‡«‡®Œ‡°‘µ•’Á¡žË«¨Ê¬§Î±®Å¯¯Å°¯Å°°Ã­­½¥¥Ä®®ÀªªÅ°°Å°°Ã¯¯Â­­À©©¿§¥Ä®¨Ã®¨Ã­§Æ²«Å°ªÄ®¨Âª¢À§ž¾¤š¾¤šÀ¦œÂ¨žÂ« Åµ§Á­¢¢Œ†„midMLeMN{`\Ÿƒ¦¢Ö»·ÝÿàÄÀßËÇÞÌÊàÑÏàÐÎäÔÒäÔÒãÔÒâÔÔãÕÕä××çÙÙêÜÜéÛÛèÜÝèÚÛæÙÚæÙÙæØØæØØèÖ×ßÇÇÕ¾½ßÈÈêÓÓàÉÉÛÄÄßÑÎáÓÐäÖÓå×ÔàÒÏÛÍÊÝÒÐá×ÖãÙØãÙØÞÔÓ×ÍÌÒÆÅÈ·´¼©¦µ£ ´¢Ÿ¶£¡™ˆ…i^\G>QjFYqOQ^GIV;=J*,9VXejly9;H+-9BDQPQbgh}no†‚‚šš`br(+6Kz|‰68EDFSHJWBDQDFSpr@:46713>8:[WXzvwƒ€}yz{wxtpqe]]UMMKJNgqv¨®”¶¾Œ±¾fˆ¤Ij†Rn‹Jb‚=Ss@StJ^wAUY\GKN456$$$ ###)))555BBBGGGIIIGGG888---)))((((((((((((***,,,10853?³²¹÷öûññóññïñòî÷ö𮠜¶™—»”’Á˜”À™’¹‹ˆ¸Š‡±ˆƒ¯†¢‡ÜǼÞÍÆßÐÐæØ×ìßÞðââðââëÝÜçÚØìßÜðâßïâßîßÜîàÝñâßôçäñãàòäáõçäïãàëáÞàÙÖßÙÖÝ×ÔßÙÖßÙÖàÚ×Þß×ÞàÖÛØÐäÙÓëÛ×áÌÉíÔÏ÷ÞÔìÐÇȪ¦’tsfGIz\_°”àÄÀýåáüæâýæâþæâûéåùéçùéçùèæúéçûëéøèæ÷ééôææ÷ééóååóååñããíßàïááðââîààðââèÙÚÝÏÎÖÇÄØÉÆ×ÈÅÝÎËÝÎËÝÎËáÓÐå×ÔâÔÑÛÍÊÙËÈÙËÈ×ËÊÝÓÒàÖÕâØ×ÞÔÓÝÓÒ×ÍÍÐÆÉǽÁÀ¶º·­±²¨¬¡—›yw{TSX??D:9>??DNNSmmp‘’’………\\\>>>344878OLMa]^fbcfbc_[\UQRSJKZRRfeh~‰™±·‘³»Š¯½n¬2RoIe‚Kc‚EZ{9Ll>Nd7FX?N`BPb9HZ5CU;GZ=G[\^kkmy<>J$&3QSd½¾Ónn…ll…¤¤¼¢£´#Y\f™›«‘¨¹ºË68E13@jlykmz@BP6;M¨²ËºÄÝ8B[®¸Ñ‡‘«NVp7;VrvŒª ¤¾“—²>B\MQlšž¹¯³Ë§«Äw{–w{–z~—di}ÄÉÝuzŽ|••š®†™IL[cer?ANmo|EGTikxTVcy{ˆSUbBDQ46C68Egiv|‘‰Žžš ®¡§µ,2BQVfJOWX\_KNRDHKHLOZ^a]adTWZCGJ(,/269;?B046#$% '''///999AAAGGGDDD;;;222***(((%%%((((((((((((***,,,10853?³²¹÷öûññóðñðïñî÷ö𴦢Ħ¤Ô¬ªÒª¤Â›”¼Œ‰½‹¿“Å£V<3ׯ˿ºÁ¼ÁÇÃÈÈÄɾº¿ÈÃÈÉÅÉÑÌÇÕÐË×ÒÌÎÉÄÊÅÀÊÅÀÊÅ¿ÌÇÁËÅ¿ÊÅ¿ÐËÅÐÊÄÄþ®¸¸£®®Ÿ©©´¾¾´¾¿¶ÁÁ·Ç¾¾ÍÂÃÍÄÆÆÀÚÓÏ¿±¯Ä­¨Ã¤š¶–Žž}z‰hggFH`d©ŠÈ­©Ã«§¾¥¡»¡ž»¢ž¹¦¢ºª¨ºª¨¾­«Å´²Æµ³Ä´²Çº¹Å·¶Ç¹¸¿²±Â´³À³²¾µ³¾¶³¾·³µ¯«±ª§¦Ÿ›¤™Ÿ™“£—£—¤—¤—¤—ªœ™±¢Ÿ¬š¬š¯ °¡ž·«©¤™˜¯¥¤ñêèæÞÝäÜÛÝÕÖÔÍÒÕÎÓÕÏÓÙÒ×ÒËÐÆÀÄ  ¥rsySTZACH@BGKMRegk‘‘¥§§|~~TVV>@@>@@EBDROPXTUUQRSNOSNOYPPd[[ihj~ˆŒ›³¹²º…ª¸†¨Ãg‡¢)EbBZxCXx?Rq7EY0=L0=L/O5>O@HYOXicerHJW.0=,.;35Bfhuy{ˆ=?K"$1XYj×Øèppˆ—Œ¤ÀÃ×-gk}³¶Ê–™­›ž©79BEGRegtuw‡-/A[_v³¼ÖÅÎá>Gc³¼Ø€Š¦S[w-3Ix}“•š°ÁÆÛjo…JOdaf~¦ªÅÈÌ埣¼tx“nr“¬in€ÏÕæMSdŠ¡“™«’˜©HKWY\f;>HY[eadncfp`cn`boEGT;=J46C"$1qs„†™®°Ã‹Ž^an8;FVYcZ\bbafWW[RRWoosbbf^]bRRW?@D>>B//4$$)$!"#,,,:::CCCEEEBBB:::...***&&&&&&&&&$$$%%%''')))---111444:9B89E¢¥¯íòùáèðàéðàéîïíñƸ¶Ó¶°á»³×°¨Ç¡™ÀšÄ›“Ï¥¡ä¾½hKKëÝÝøòòíïðñóõòôõôõ÷ïñòòôõïñòïòòðòòðòòðòóñóôñðïôñðñîíóðïóðïóðïóòòòôøñó÷òó÷ôõùòó÷ðñõéóøìúûê÷öðöñìçâÔ¾îÑËñÎÃݼ²´”‡jfaEBˆmk½¦¡êÖÒìÞÛëâßìåäìèèìèäëèáíéãìèâëçáëèâìæÞéáÓèàÑèàÑÙÐÂæÝÏãÜÍáàÏÞßÎÜÝÌÙÚÈÈÉ·Á±¾³Ç¼¹Ë¿»Ì¾¸Ì¼µÎ¼´Ë¸¯Ò»³Ô¼µÐ¸°Ñº²Õ¾¶Ô¼µèÓѕ„…ˆ‚€ëñîÍÛØÑáßÑÝÞÏØàÒÚâÕÝåÖÞçÔÜåÊÓÛ¥°¹vŠOZcCMW?ISHS\dqyŽœ¤¤²¹t‚ŠLZb?NU=KR?LLEOPNRRURS^TTdVVm[Xqb]jdc}…‡ªÁǕ·¿‡­¸—¹É¸ÖÞ 8I9M\FUdNZh>HO0:?%.3)."(#(&/42:@19>/7<-5;DLQU^chjwJLY02?46C57Dgivxz†:>>BBBEEE@@@333+++'''&&&&&&%%%%%%%%%$$$)))...333666888<;DACPŠŽ™ÞåïËÕßÎÛäÕßèóñ÷¾°¯¸œ“Ó­£Ã›’­ˆ€Ÿ}q¨‚xµŒ‡É£¤z]`ßÑÕöñóïóòîòñîòñîòñîòñïóòòöùñõøïóöòöùñõøðô÷îòóðóòïòñðóòðóòðóòðóóòôøòôøòôøîðôðòöóöùî÷ýçôúèõöñøôåàÚ­©çËÃëʾٸ­¬„|_Z`FBƒkg¼§¢½ª§îáßðêèëéêçéêäåâããÞáàÜÚÙÔÏÎÉÍÌÈÌÎÊÕÝÙÖßÛ×àÛÓÜ×ÖàÚ×àÛÈÍÊÈËÈÉÌÉÐÓÐÄÇÅÇÊÈÙ×Õá×Öã×ÔàÒÍÞÎÇßÎÆ˶¬Ðµ¬Ðµ¬Ï´«Ó¸¯ÜÁ¸ÞúçÌË»¦¨|zîùöàõòÛóðÜòòÙíôÚíõÚîõÓçîÓçîÊÞ嬺Â|ˆ‘Q]fEQZBNWJV_es{¡¨ ²¹o‚‰CU\;NU:MSBVVR``bhijggthg{jj„oj…smwqmx~­Ãɒ´½’·Â¡Ã΃ ­0HS;MWANWMW_GPS:BD,46&.0"*,"*,-57>FH=EG;CE8@BHPRS[]kmzJLY13@;=J79Fegtxz†46B:JUWh;FH6>@3;=2:<2:<6>@@HJ?GI>FH>FH=EG;CEtvƒDFS02?>@M9;Hgiv{}Š13?OQ_HJ[³´È˜˜°hi€„ˆœ•©#7`ey¤©½¯´Çjmv"%,WZdUWdTUffg{²¶Î’›¸— ½–Ÿº#,I€‰¦€ˆ¥msˆ]bvÔÙé„—Ÿ¤¸49Mnr‹®²Í®²Í«¯Ê_c~>B]cg€`fw‰Ÿou…™Ÿ¯msƒ¶¼Ë_bn=@I14=DGPor{=@Iy{†?ANCERRTaOQ^57Drt‚°±ÄÖ×æZ[j89FADMGJQttyMLQONSTSXcbgRQV327)(-(',549BAF@?DGFKCCD666,,,&&&$$$######$$$%%%&&&((()))+++//////00011111111111:FGTsx„¢©µ¢«¶¨´¾½ÇÐåâéÙËÊϲªÒ¬¢É¡˜¼–¾œÑ«¡Ü³¯íÉÊ®–™½®²öñóñõôª®­Ž’‘‹Žž¢¡œ Ÿ ¤§ ¤§¢¦© ¤§ ¤§ £Ž—–z†‚…‘~Š†‹‡‰}‰†{‡‡~ŠŠ|‡ˆdpp{‡‡€Œ3FL6=D5=C5=D=EKEOUFRWDPU8DI/;@/:?/<@GYYŒ››ž¥¥—”•¢–•ª˜˜¢Œˆ’{zwY_`»Ò× ÂÊ©ÏØÀáæ#AM?Wb8JT@MVENWAJM>FH@3;=08:xz‡>@M+-:57D57Dacpuwƒ/1=fhv8:K€–²²Éij…™Ž“§ %9fkž£·‡ŒŸ`cl!$,;=Gcer[\mƒ„˜²¶Í…Ž«¢«È“œ¸YbKTq…Žªot‰†šÈÍádi}¬±ÅCH\OSk¿Ãޙ¸¡¥ÀSWrIMhei‚kq[aq•¥•¥fl|ÃÉ×X[f69B7:CEHQtw€-09z}‡ACP<>KMO\FHUMO\rt‚º»ÍÚÛè*,:35A14=adjTTY@?DMLQEDIEDI0/4%$)10565:A@EKJOFEJ;:?//0'''%%%$$$#########%%%(((+++---///000//////////////////009GHUpt€–œ¨˜£¦¨²»ÞÛâÖÈÇË®¦Ê¤šÄ“»•ŽÂŸ“×±§å¼¸óÏÐɲ¶Ãµ¹÷óõõùøÈÌËÈÌËZ^]dhgkonnrurvyx|y}€¥©¬ƒ‡‰„‹Šz‚‰†ƒ‹ˆƒŒ‰³¼¹|…ƒ€ˆŠƒ‹‰‹}…‡—™¹ÁÃGOWP]cðýÿïöó×ÒÌî©ñÕÍèŹÁŸ”ŠkceHCjPLuqƱ¬‚pm÷íëúóñòðñïñóìò÷ìòûìòüìòüëòûëòûíñøòòïòòîòòîòñîòñîññíéùðÞóéÙîãÚðåàöêáõëâôñáðøâîõäîòìóõ×Ýݯ°®Î·®Î³ªÐµ¬Õº±Ó¸¯Õº±Î±°Ð¹»]XVïùöçüùŒ¤¡‰  † ¥€šŸ~˜x‘–k„‰[sxFH=EG:BD9AC;CE9AC5=?5=?5=?5=?3;=2:G:=FEHQNQZKNWtvJLYPR_02?79F]_lY[iÅÆÕ¶·Æ%'6-/;knvADJ@AF@?DBAF/.3$#((',65:FEJFEJA@E87<.-2'&+""$ """$$$######%%%))),,,///000...---,,,,,,,,,...//////11:FGTmq}„‹—|…~Š““¦ÄÁÈ¡“’sj”nd”mc’leŽl_Ÿxn©€|¼••“vy·§«öòóïóòßãâÐÔÓ&*)376265158158047*.1–š$(+69:576788:;;233‘,--78<89=88=:;?,-1†‡‹NV_KW^ñýþòùöÑËƦ‘É«¤Àœ¢v{\TeIDlRNŒtp¶¡…spêàÞùôñõôõÛÝÞÓÚßÒÚáÒÚáÑÙáÏØàÏØàÎØàÍÚáÍÚáÍÚáÎÛáÎÛáÎÛáÄØÞ¼ÒÚ¸ÏÖ¿ÖÜÁØÝÁ×ÞÃÙÞÂ×ݬÀÇÚêïîüþÇÓՌ““²›“±–²—Ž·œ“¶›’» —½¡Ÿ¼¥§E@>êôñêÿü°ÈÅJ__(;B+FH?GI@HJ@HJ>FHK;=JACP:?ANnp}`bpÂÄԇˆ˜=?LGJThkrBEIEGJ++-&%($$&002??ACBEBBD99;,+.$#&%%($$&###!!!"""###$$$&&&***...---+++,,,***))),++-*+,++0//20131153FI?GI@HJ@HJ=EG;CE:BD9AC8@B7?A4<>19;08:oq~EGTDFS>@M@BOACPTUg{|‘st‰vwŒ†‡œ()>BCWš›®Ž %ŒŸ®¯Áefx`br68G›œ¯..EMMgÛÛƖšµª®É´¸ÓCGbƒž]a|ž¢½–šµŠŽ©RVq‚†¡_c~$(?–›¯’—«‚‡›;@TMRfqvŠ„Š›^dtz€‚ˆ˜kqš °TWbADMPS\FIR;>GKNW\_ibdq]_l8:GOQ^tvƒƒ›«CEREHRY\cWZ_:>@+--!!!***444???FFF>>>000(((""""""""""""#########'''+++...000...***((()))))))))/+,/+,/+,3/0623845;7AJFU`^lehtbhtdlwmv~}„wv{tmqymp€op†qr|uƒ}©‰‡¬ŒŒvxƒuu³²±£­®™¢¤¦«®)+/+*/*(-++,++++++"""–––"""+*.+*0+*/...&&"‚ƒ}--)/////////444)))qrr_giDORðüÿîôùßÙÙ̹°á¹Υ¡¥~y}YShH@|^V¢ƒ|Ó¯©¯—•¶°±îòõøöø†yzV@AmUXfQWcS^ZO_hbuRJ[bLQgJPjGQiGS_EOZIP\IQ[GNYELYDLWBJU@HO<@H?<..)³º¶î÷÷ßâ櫨­Ë¸³Ì¸±Ì¸±Ï»´Ì¸±Îº³Ó½·êÔÏYMKáßßîùû¾ÒÖEW[###!!!"""'''666""" 000144O`_ºÉÉÎÔÕ±®¯¾²±¹¨¨®™š£‘š‘UYWç÷õÉãàÊèçÜ÷ü)BLRZGT[MU[LPUHOQGOQGOQCKM@HJ>FH\^k@BO?AN`bo‚„‘vx…}Žikxcep/2:"%*,02:<>>888...(((''' """""""""###$$$---//////...***&&&$$$%%%&&&''')))******2./2./2./40162373484>EAPYWe_an^co]ep_hqadiRRWPJMSGIWEFXCDZHD_IEcHHaFJVBFQHKcef[efU^`X\_79=(&+)'+**+******)))€€€###+*.*)/+*/--.#$ €{01,/////////111---dder{}?IMñýÿíóøëåäÔÀ·çǾ엛tosPJiIB„f^¦‡€Ýº´¡ŒŠ«¦§ó÷ù÷õ÷àÕÕÀ¬¢¦‘µ¤˜‚un³°°‰‡‘€s¯•‰Þ½±ÀšŽ €o¨Žz¬’¦Œzƒqœp–}j‰n]M8-G><33.­´°àééÖÙÞ¦£§Î»¶Ï»´Ð¼µÏ»´Ë·°Í¹²Ï¸²òÞØ]QOØ×Öóýÿ¸ÌÑ\ns%%%"""$$$444### ///244@PP¨··Øßߦ££¬  ©—˜£ŽžŒŒš’‘X\ZçöôÆàÝËèçäþþ@ZdEYaIW^OW]PTYKQTJRTJRTGOQEMOBJL?GI;CE:BD7?A4<>/79+35JLYZ\i>@M-/SRShCDV¶·ÉZ[mž°vw‰EFXVXgy{‹STg†‡žhh‚‚‚Ÿ––´ª®É”¯mqŒ^b}ei„koŠµ¹Ô‘¬9=Xƒžx|—\`{|–áæô‹¤}‚–7K02?XZgz|‰‹šrtˆŠ˜OQ];=G36=47@+35NP]hjwIKX.0=@BOOQ^Z[m{|‘{|‘ˆ‰ž˜™®OPenoƒ@AS‘’¤†‡™’“¥jk}:;MRScŸkl€›œ²LLf‘‘­˜™¶§«Æ§«Æ^b}]a|]a|tx“½Áܑ•°26Quy”{š_c~ƒ‡žÈÍᏔ¨gl€_dxafz’¥{€‘{‘x~ŽV\l‡z€EHSILUcfoPS\;>G36?<>I@BO;=J_an€‚‘žln{ŒŽDFS;>HLOWGJO;?B/11,,,)))'''&&&&&&&&&'''***...000000///***))))))'''%%%%%%&&&(((***,,,000//////2./2./2./40140140140:FBQfdrž¡­£¯Ÿ§²¥® ¥srwWPTXLOZHIXCDOA?O?@RCQ=ÀÎÏáç瑏¤˜˜ Žž‰‰œŠ‰”“Z^\ÕåäÊãáÇææÛùûXq{EZaP^eOW\OTXPWYLUWHQSGPQHQSKTUKTUIRSIRSHQRENO?HJ+46IKXKMZ79F.0=IKXoq~¦¨¶FHX\]pvv{{“œww.0>]_m ¢°Ÿ¡®fhvBDRNQg}›Ýáö‘«-0KŒª“¬Œ‘¦› µCH]X]rqv‹ˆ¡£¨½§¬ÁGLa€…š„‰žfk€sxŒ«°Ä£¨¼lq…^cw"';¯´È•š®`eyƒˆœrwŠ‡Œ tx‹;??@@A556***(((&&&(((---...000326//3*)-&%*&%*$#'%%&'''(((+++---------.........,,,,,,,,,,+/,+0,+/0/3105105439A@G_^eø÷ýïîõííôéêïìïîÀ·¶‡†«Œˆ¤‚z—xl…lfx\WnQKaFCUCFKDNgkv}‡ˆ•“—69;++*)'&((('''$$$)))444(((##$$$%''(---$$$aa`333333222111111111PQQ—¡¢&02æìîððñüöõ¶´ÚÄÀÁŸœ–tqeCAsRO¥„Ì«©ìÎÌϽ¼sif÷õò÷ôõÜÔÙƵ·Ê¶¶E33B33.!!†}|ÉÃĶ°·qw°˜™Å¡Î¡—ئ˜Ø¨“Ú­—׫˜Ó¨˜Ë¤”kE7aC***  .21;A@$7;Ôçêæî𕖙¤œŸ¡“•œŽ†œ„¤˜’zvvÐÚÞÌæê¿åìÐïöc‚ŠGbePdcQa^R_YXgbWgbSc^O_ZM]XM]XN]ZO^^O^^N]]IWWCRQ$22NP]BDQ,.;-/¬±Å{€”ej~œ¡µej~„˜lp„89A216216/.3216549&&.tvƒUWdFHUrt[]j“–¡¢¢¤???FFFMMMCCC333))))))+++---...,,,++,.-2.-2327.-2&%*%$)&&')))---////////////.........,,,,,,,,,,+0,+0,+00/410510543:A@I_^g÷õýôóûîìöííóòôóÒÉÇĬªÓ²­Î«¢Ä¤—²– ƒ|‘riz_XdQPSKThjvqz‚€ˆŽ”™WY[VVTUTRNNNGGG???666DDD555---///222888:::fffPPPJJJKKKLLLVVVTTTijjž©©%'ßäæïîîüöô¾³±ÙĽŸœ’tqgIFnPL{Ç©¥êËÉíÙÙshe÷ôðöôõÝÖÛŵ¸‡tuB11@110%$womÍÇȳ¯¸Á¶½ŒvzâžÈœ•ÐŸ“צ“Ù¬•×ª—ѧ–Ë£”lG:aB“˜¬_dxty”™­hmv{koƒFGO>=B+*/)(-/.3/.3"#*_anMO\OQ^vx…egt¨«¶POQ<<&%*%$)++----///...---------.........,,,,,,,,,,+0,+0,+00/410510542;A?K_]iõóýôòüéç𱱺÷úùÒÉÇ·ŸžÖµ¯Ð­¤Å¥—¸›‘¬Œƒ¢€vogoYXXMU~‰ku}szŽ“—JLN>>=>=;===;;;999555YYY;;;111111555777:::RRRXXXOOONNNMMMTTTUUUcdd¦±²Üáãðïïùóñ²§¥Ë¸µ§‹‡}`\^A=mPLŽrn³–’Ì­¬¾§¦aWUüùöôñóæß㬞¢VFHB46;01/&&f`_ÎËͱ¯»ßÖߔ†­ŽŒÃš”Ìœ’Ô¤×ª“Õ¨•Î¤“É¢“nH;aBR¢§»rw‹ƒˆœ”¨ch|y~’ns‡w|„‰£¨¼—œ°œ¡µOTh+0D†‹ŸTYm¢¶•š®afz–›¯ns†11:-,1 $ $(',/.3""*OQ^np}IKXdfsacp¦¨´002888;;;***)))///***((('''''')))(((667MLQPOTQPU>=B+*/,+/,,.,,,,,,++++++++++++,,,,,,,,,.........+*/+*/+*/-,10/443876@C@O\Zhòðû÷õþÏÍÚ¹¹Ã÷ùøãÚØÅ­«èÉÄçÄ»áÀ²Ô´©Î« Ä “ªˆ~‡nkQCH¬«´‹’w…ty}@BD&%$$#!!!!!!!"""eee&&&  """"""555111&&&&&&&&&***,,,=>>µ¿ÀÙÞàïîîûõóø¶Ï¼¹ª‘Œgc]C?t[V¢ˆ„É®©èÊÈàÌËUJGûøõõòôõîónagB39;/48/3+&(NKMÌËа±¾À»ÆÀ¯µ}abܙŘ‘Ìœ‹Î¡ŠÌ Ë¡È ‘nI<]>8G77LGDX`\ÒÜÜÐÙۗ›À®©È´­Éµ®Ë·°Í¹²Ï»´Ñ½¶Î¼¶§ œ†ŠˆáòòÔí›!%$(,+ 043OUT15ÖéëåïòŽ’˜‘”—‰Œ—Š‚šŽ‚Ÿ“zvv‹nˆŽ-QZ­ÉÔh€‰05&45*31/4/+40'1-&/,!*'&#&"'%')')&((* "\^k79F%'4:@Màâìln{%KM[Z]t—›¶”¯UYt]a|ei„°´Ì› ´Ž“§&+?:?SËÐä^cwhm–›¯v{~ƒ—in‚z“”™­“˜¬|•¡¦ºTYmGL`qvŠ_dxº¿Ó…ŠžKPd·¼Ðx|&&/,+0%$)"!&%$)327..635B’ŸhjwrtacpŒŽš99;999>>>111777666(((&&&&&&''')))'''878POTPOTPOT?>C,+0,,0,,-+++++++++++++++++++++++++++,,,,,,,,,0/40/40/465:98=<;@?=JOL_b_rÀ½Ð¬©º§¤·ïîøô÷öïæäØÀ¾ø×ÒùÖÍ÷×ÉóÑÅð˾èÀ±Î©®“gVZÖÒÚ´¾Å¥¬²FKO:<>%%#"! hhh"""///***"""""""""'''***455µ¿ÀÕÚÜõôôúõóÑÅÃÖŲ›•„mg\E?qZT¡Š„Ë´®êÌÊ÷äã^SPûøõõóôîéì>3:<098/7707*',BAFÍÎÖ©¬½°¬º¼¯¸ƒim¯‹Š½‘ŒÉ™ˆÊœ…Èœ‰Æ›‹¿—ˆnH;]>8G77JEBRZVßéè×à⑕—±Ÿš¶¢›²ž—µ¡š·£œ¸¤³Ÿ˜±Ÿ™˜‘„ˆ†áññÓì­#"&*).21QWV+/Ôæèçñ󀁄‰„‹~€y’†y‘…pkl¡«°Ÿ¹¾Dgp¶ÐÜk‹,2%02*/..2-(.+&,*).-#)'#! $$(-0).1 %( %(!RTa35B(*7EGT€‚ˆŠ—acq13B†‡š‡ˆžSSlººÕjj„ "0EGTèêôpr "/=?M[^v­±Ì”˜³EIdimˆ^b}²¶Î¤©½{€”"6ej~ÆËßqvŠJOc™ž²£¨¼SXl|•v{¡¦º˜±}‚–ƒˆœ[`tns‡rw‹…Šž¡¦º{€”[`t­²Æ”¨$/.3*).%$)%$)4389:A"$1uw„Ž›ªVXegiuFFHAAAMMMDDDBBB<<<***&&&&&&''')))'''667JINJINJIN?>C,+0,,0,,-+++++++++++++++++++++++++++---------76;76;76;:9>;:?<;@=;IIF[]ZoíêöŒžNK`äãïóõõïæäÞÆÅûáÜþáØýâÔûàÒüÝÏùÖÆéĶ˯¨|jlçãêÞèïÍÕÚ>BF:=?%%$!  hhh"""...))) %%%)))())¯º»Ñ×Ùöõõúöô¼°®Â²®¤‰{haWC@EÌÐا¬½«ª¸³§±«“˜‹ii¸‹Ä•„ƘÄ˜…¿•„´}lG:_@9G66HC@MTQáëëØáã‚„©—‘ª–£ˆ¥‘Š¥‘Š£ˆ † ˆƒ{xosqàððÕîñ™°²! $(',0/RXW),ÌÞáêô÷„…ˆŠ‚…‹}€ƒ{•‰|–Š„rnn§±µÀÚߏ±»³É×pƒ /6%,0)--./+%(&%('+/.'*)"! !03669<(+."%(!NMZ,+9-,:TTa‹‹™{zˆ[[jQSb€“yy[[tªªÆuu&(6ACPÑÓßy{ˆ%'4HJXVYqº¾Ù–šµ^b}KOjae€ÃÇàœ¡»lp‹2šŸ¹¢¦Ášž¸GKd–›³¾ÂÙ26Nuy‘}‚š»À؞¢ºƒ‡ŸqvŽUZrrvŽ{—£¥»†ˆžŽ¤jl~Ÿ¢±Ž‘ "$+()-$&*')-2483489;B(*7RTaŽ»½ÊHJWWYdLLNJJJVVV<<<+++$$$&&&(((((((((***)))445A@E87<549>=B)(-+*/**-+*-,,.**-*),,+.--....///11133333333333433533544655766886B=;LXVeùöÿÜÚçÅÃÏîìóùöøåÚÜ©™™Å¯«Æ­¨Æ­¤Æ© È¦Á‘µ’†²–n]_øò÷öùûæèëSUWBBC&%%""! aaa'''222///###&&&!!!®¶´ÃËÍó÷úùõö±¤¡¼¥ š}vpWO[G=~h_«‘‰Ôµ¯îÌÆõàÚMA<ôñïôó÷ojt8.79/48.58/71)35/9ÞÙä±±¸°­³µ®²Áµ·„tt¡ŽŒº—‰¿–†º’‚´Œ~¬†xqK>`B:C54IB@JLJçíîÙã吗˜º©¤¿«¤¾ª£»§ ¹¥ž´ ™³™³Ÿœ•Œ‰cgdáòïÔð¥ !#',&!"!-.-TWV)&»ÎÍíúü’—›‰‹–†…œ‰€¡„§—“†€ž§¬ÅàæŸÂͨÂÔtŠš/;",4(.2013()*&'*-.1)+-#$&026=?D027"$) KIW*(631?[Yg‚€ŽjhvTTcUWftu‡xxgg‘‘­wv‘-.<02?–˜¥§©¶-/=B.-2*).=.25&*-.14047,03#& $.1648;*.1$),*/2069JOR.47!&).25<@C379 $'>*-446Cuw„UWdxz‡dfsSU`::*äáìÖÕÞÛÙâÖÔÝÖÔÞåãì×Óلg_¬†yµ‚»•ˆÀš}WJfJAC76H@>A?>èìíêõö—¢£¤œžž”–…ˆshk^SU`UX„vy•ˆ‹‰ƒ†GIL³¿Â£¦k}$(-# !).''(&&&&?A@-'x‹‰Óä棫®—‘’§•‘¯™Ž· —¼©¦­£¥“œ¡Ãß䑶À¢¾Óƒ›®%3"/:(06).1%-/(13/8:)23U^_4=> '(487>BA598 $#53A1/=ZXfljxhftUSa88G/1@RSf‚ƒ™‚‚›ŒŒ¨‹Š¥8:H57DOQ^¥§´cer!/‘”«˜œ·˜œ·‹ª\`{mqŒ”—´ÇÊâ/2Q·ºÕ¹¼×‚¡˜›¹NRnX\wÍÑìgk†cg‚®²Í¨¬Ç˜œ·~‚lp‹gk†}œ‰Œ¦‘‘ª~•§¨»z|ŒŽ`cn.16)-0#'*,0337:48;69@68E_ankmzCERQS`KNY==?888222(((###"""'''))),,,***&&&(((//0549#87<.-20/4/.3.-2.-2-,1,+0,+0,+.,,,...////////////00000000000011133353>=:IJHUïîõòñøòñöóòô÷ðôíä赪«åÖÕçÕÒèÕÐíÕÐÝ¿¹Ì«¢Æ¥œØ¾¸cQTóëïòòòøøøÕÕՍ)))"""!!!!!!000&&&---PPP""")))lqm089ktyµ¼Áîìî´°©ˆ^XaF=kTI‘yo½ž—Ù´­Ù³ªãǽM@:ÖÔÔ,+296E;59:4/9207/13+0  ®¥­´©¯¿´º¾²¹É½ÄȼÃãØܘyp«…x½—ŠÂœÇ¡”…_RfJAA54F><987Þáãñûü” ¡{yxs{gbjMJQ95<94][ikiwecqXVd<BE@CJ68ENP]fhuEGTIKXACN113+++%%%$$$))),,,,,,+++...66765:#76;,+0.-2.-2.-2.-2-,1,+0,+0,+.,,,.../////////////////////...00011164??=KIGTëêòòñøòñöôòõ÷ðôïæêø¹ìÝÜîÛØîÛÖï×ÓçÉÃÛ¹°Ó³©çÍÇ{jlëãçòòò÷÷÷××׏///((('''%%%(((666---###"""%%%!!!###...QQQ######""" !!!(((LPM;DE`in’˜ÕÓÕ­Ÿ›•zttRK]B9jSIwm¹š’ײ¬Ú´ªãǽgYSÐÍÌ~}„%"0|qoo`S]ND[LEC3/4$#lZY{eeiST~hiyzYCD¦Žªˆº”‡Äž‘Æ “Ψ›‘k^hLDA53F><532ÚÞàóýþnz|JKUNMYFEP76A0.:.-82.650530747?MU_wƒIS\9EFR[`nvzŸŸ¡zpmoWT`A6kSI‡mcªŠ€Àš‘ª‚x·™Ž\KE»¶µÖÖÛ%À±¬É°ž¸žŒÇ­žoWL,•y¯‘‹yZTnh~x\=8¼–¹“†Ãš‹ÅœÊ¢’ׯŸŸvgkMBA41F=;21/ÔÙÛòüþ`mq=BM=AL47C.1=+.:-0<43<98?<=F;?HWai¹ÆÏHS\*-1-03-/0*.+),''*&$$# !!!%%%-/.2A>>888;8-3<07?5CV27K@EYotˆŠ£9>R.3H^cyŠ£ÅÊÛu{‰7=H@FO335000+++&&&"""$$$$$$###&&&&&&&&&&&&((((((555---,,,/////////.........0//4014013/01-.1-.0-./////////000000000214:9>HGLÞÝâîíòðïôòðõõñöíä潬¬éÎËñÏÉóÌÄêÉ¿ç¶ߴ¤Øª›ëÁ¹YYäÕ×ùùùôôô¢¢¢!!!---+++&&&&&&%%%###666$$$<<<$$$!!!!!!!!! )))537GJMQZ[XddX`bKKPI?DQ=>ZCA|_Y£‚wЎΤ“ÍŸ’ѨŸ„ic§›˜øùû@IN‘yÚ²¢ÊŸŒÑ¨“‰hY2Ž{q¥€t…_Rštg˜re‰cV¾˜ŠÂ–ƒÈ›†Í ŠÔ§‘å·¢¾‘|nK;E5-F:7ECA£¥‘ ¥O`g*2;.5=.5=5?HMPR_ply‰€†Ž‚€ˆ|y‰|{‹~~…|~W[]¾ÐÏ¥ÂãÅÒ°ÍØ&/)/"%)#"$2<>m€Œ»ÓëSi‡"8CU^ƒŒ‘:=F?BKADM'*3&#*)0GER_[pxu‹{xˆ[Zc<Oª°ÀŠ RXh‰Ÿ|‚’€…™.3G6;O\au™ž²OTh49Nlq‡…Šž¦¬½fly>EPHNV446333222+++&&&(((%%%###&&&&&&$$$$$$&&&***555---,,,/////////........./..1-.1-.0,-,(),()+()+++++++++---------114:9>HGLÞÝâîíòðïôñðõôó÷íèé¼®­ëÔÏóÔÎöÑÈôÓÉòÎÁí²巨缳™ssäÕÖôôô÷÷÷èèèFFF!!!$$$""" %%%GGG!!!RRR(((!!!+++:7F>EMDKSIPXMR[NT\NW^IU[APUçøú'''%%%.0/3?>G!$-&$,+2DBO[Xmol‚~|‹\Zc99E;=LRSfvw˜xx“„ƒ¢­‹Œ &(447?UWc°±Ã‚ƒ–jk}†‡™¸¹Ë@AS\]o~‚™–Ÿ¼¼Åãaj‹“œ½“œ»ÌÔçSWs¡¥À‚†¡{šœ ¹òöÿ†¥ª¾Ž“§†šw|uzŽÎÓåKQb¦¬¼x~ŽMSc}ƒ“’˜§šŸ²38L05Iej}•š®7S@AqZX–zsº˜ŽÉ¤”Ê¡Â”ˆ¾•Œfa‚€øøú§«hUPéÁ±Ð¦“Ì¢“rc2nd¥€s¡{n°Š}…_R°Š}Á›ŽÆŽÊ Ì¢“Ì¢’Ê «‚rbB5I81B62IGFu{}˜¦¬ƒ”œ6>FJQYHOWIPXMT\OV^KPYHOWGPWDOU1AEàò󗥨999 !!!%%%0213?>:DIFHUZUcrin…xwŠ~{€‘ƒ„Ž…ˆ^bdÌÝÝ®Ë̳Õâ¹×â)2".3%)-**+:DFfy…‡ž·6Nl,CUfps|69B58A@CL!$-'$*)0A?L\Ympl‚~|‹\Zc==I>@ONObtu‹}}–~~š‰ˆ¨¡¡¿ŠŠŸ(*6/2;@BNŸ±ƒ„–€’™š¬°±Ã=>Pkl~„ˆŸ“œ»©²ÑdmŽ˜¸¯¸×±¹×EIe¹½Øy}˜…‰¤’–¯ìðþ—›²§¬À‰Ž¢^cwin‚}‚–ÊÏà\bsœ¢²lr‚V\l‘—§ioX]p:?S>CW}‚“­²Á"';PUi’—­ÅÊÞ ¥·CIWt{†RXa**,)))...///+++((((((...111000222222333333///++++++&&&%%%%%%&&&&&&&&&'%&($%($%($%&"#&"#%"##"#$$$&&&(((***,,,..1438EDIÛÚßðïôñðõñòöîòôîí챨¥ÞÏÈâÍÅåÍÂêÑÆíÌÀ庪է˜Ë¡˜‚]\ÚÆÇÚÚÚÎÎÎÚÚÚUUU### QQQFFF,,,))):7<:=@_hj‰••]egHHMG=AZFG~geªŽ‡Î­¢×±¢Óª˜Ë‘Åœ“œ{Œ|òóõ¶ÁÅQ?9ìʺϤ‘Ú…ŠjZ3mdª…x©ƒv®ˆ{rL?·‘„¼–‰»•‡º“…¹’„³Œ~¬…w’k]^?3I81C74?=<–œŸÑÞ㪺À:BJNU]LS[LS[PW_OV^INWDKSCLSBMS-=BÜï𞬮  <<:DIFHUSO\iaf‚ut~’„ƒ•ˆˆ–`dfÒäã¸ÕÖ¯ÑݳÐÛ+4 ,2$(,)(*;FH_q~o†Ÿ)B`-C^pyx†7:C47@DGP%(1 )&'&.=;H\Znpmƒ~|‹\ZdCCOKM]abu††~~—„„ Š‰¨µ´Ò¤&)4/2;/2=y{Š‹ž€“¡¢µ¡¢µ !4yzŒŽ’ª‚‹¬–ŸÀr{œ‹”´¶¿ß—Ÿ¿KOkÁÅà`d“®°´Êæêù—œ³¡¦ºŽ“§7@D^fhˆ””_giJKOJ@D`LM†om³–Ô³©×²¢Î¥”Çšº‘ˆ£ˆƒŒ}óôöÜæê=+&æÁ²Èž¶Žz€`P4~ja£sª…xŸzmgB6±Œ€«†z£sžym˜th‘maˆcXuPDX;2I92F:6854 ¦¨éõùÀÐÖ×êí¦´µ"""$$$@@@"""!!!%%%0213?>:DIFHURO[h`e†{x™ŠŸ‘¢••¨Ÿ¢nrsÙêê¶ÓÔ¤ÆÒ¬ÊÕ2;$06',0,-.?KLk~‹”¬Ä.Gc.D[mv|…Š8;D47?ILT+.7!$,'#$322CRRdij|{{Œ]]m>@TSWodg€Š§ƒžŒªˆŠ¥¹¹Ó“”ª+,>9;I,.:`boƒ…›psŒ’•®§«Ä0hkƒ¥«Ä~ˆ£– »~ˆ£‰¤ÊÓîu~™Y]{ÀÄàSVt‰ŒªÖÙìáäü“˜°—œ°‘–ªQVj\auns‡«°Ã““•§~€’WXj•—©ADVyƒœwƒž“ ºžªÅàíù-9Tck†›Ÿ¹ÀÄܜ¡µ;@Rekx:?K#$%!!!"""(((//////,,,///***''''''**+::=((,..1++/#"%!!"!!!!!!"""######""" ! "!!"!!"!!''''''(((***---11165:@=F@?H×Úáîòùçíóäíñéñðíæ縤¤åÄÂêÅ¿îÈ¿ìÅÁØ°­¾™“¦ƒ}”vpsZU„wv|mpswz|?BD#&(!#&???###---'''+++88;@DGX]`y~^cfFILHA@gQJ‘wp·š’ͬ¤Å ˜½—Ž³‹„­Š…‘zw~srðòõéóö5,,Á©¦±™”—€zjTP:'$veaŽzr{ru_X_HC…mjˆom…f__U}\R~\R{ZPpNE\?9M98H884//˜šóýþÙèë:ENT_hU`hOZcNYbJU^CNW@KS?KTAMV*7?×åê°»À %#""%">D@$(&%''###.//5@@;DIDHSJKWYW[vsn“‹†Ÿ‘Ÿ’Ž¡™•pttÕåé®Ê֞¾Ñž»Ì)@L5FM.9=,567LMœ£Åßð)BV,;Wqv’8;@038QUY-05"'""#5/0BOPblm{|Ž`as=@Wƒ‡¢VZuƒž“—²Œ«ˆ‹¥²²Ê’“©89M23C-/I=#'*#%777"""+++''' +,+69;AEHTX[mqt[_bFJMTMJ‚ka¬‘ˆÎ°¨Úº²Õ±«Ò­§ÅŸšÀŸœ§’ofeîñóãìïGBD‰yy‘‚‚xiiWHH<,,eVTqd^n`[ZIE\IHoZYs]]wYQxXM|\Q‚bWŒk`Šj_dGAN8:F56812‘“•ôþÿãñó7DMTajS`iLYbHU^ER[BOXBOXBOXDQZ+8AÔáæ»ÆÌ%$+2"*-$,,"+(=FA053"&% $#$('%)(376%('$$$-..6@@;DICHSFISQPSmmgˆƒŒŠ—ŠgkjÄÔÛ§ÂМ¼Ð˜µÇ,DQ8KT/<@+682II–±·Ùòû&>O/=[v{~’8hkw©¬ÃGKf³·Ò¦ªÅ#'BGKfÙßñak„œ¦¿…¨v€™z„y‚›]a‡Š©wz™ÂÅÝÌÏìÅÈæotŒÃÈÜv{‡Œ TYm„˜šž±‰ŠŠ‹Ž VWi‚”–—ª‘›²¶Â×uš‘ž·Úæó$0Jnv‘“—³×Ûï ¥·,1E€†”AFS()*###(((,,,222999222((('''$$$%%%%%%(():9>-,1$#(/.3,+0! %$$&%%%%%%'''))))))+++//////00044444444455555555544455555564;?¥¼Äáöÿ"7I2@Zsxv‡‰8A047UY\+/2!$!();89KMN`efxij|VWiy|“tx“;?Zy}˜§«Æ‰¨ƒ‡¡””¬¤¥»IJ]QScegt,/;ÁÄ۞¢½ ¤¿£§ÂmqŒAE`³¹Ó~ˆ¡ž¨Á“¶—¡ºu˜˜ ºZ^|il‹‹Žª¹¼×§ªÉ“–µx|• ¥¹•©‹¤@EYz“ƒ—z{Žš›­‚”„…—ž°-.@.3H,2I&-C(/ECI_KQg‡Œ¥§«Ç×Û¦+0DÁÇÖ9>K()*,,,,,,333888???222111222111111111223;:?216)(-0/40/4%$)++,++++++***))))))***+++++++++*********+++++++++---......0.574?<;FÖÙà×Ýæ¼Ä̦³¹˜§­™š¡scjƒek€^`xXVnSNsXS…hd›}z»™—­‰‡Èµµòöù÷ûü¡¤IMP#'*,02++,******'''PPP***+++)))''''''%%%***(((%%%%%%''')))(((+++58:AEHLPSW[^W[^OSVaZWuk®”‹Å¨ É©¢È£ÄŸ™¿™”²‘Žš…ƒI@?¹¼¾˜ ¤`fi #%%*""&!"%**.88<<:BHAFQBEO>=@SSMyql‰|y‰|v…`dc±Áǜ·Æ‰¨½~›¬H_lNai6DH2<>2BFFWaK[l.B/@4FM?LO047047Y]`*.1 # /0B;B]»ÁÚs}–¦°É˜¢ºÀÊÝFPi ¨ÂSWvQTs™œ»´·Ö¬¯Î‡Š©x|•w|³¸Ìy~’ch|x}‘z~’abtÀÁÓwxŠ‰Šœ¢)*<&*=$8#7&+>*/BZ_s“˜¯­±ÍÚÞð‚‡œ49L±·Æ>>66601168;AEHLPSW[^W[^OSVaZW‘yo¯•‹É¬¤Êª£ÃŸ™»–²Œ‡¤ƒ€ywF=<²´¶’›Ÿ^ei $%)#'%),15?DHJLQMJMRED™ƒ} x¢|q¦{k®‚q·‹z׆ϣ’Ü°Ÿåƽ8"$F45C=>wx{óüýïýþFS[YfoR_hKXaGT]DQZDQZIV_O\eVcl;HQÍÚÝÏÚà!)07 (,!** )%=FA275  $# "!8<;133###-..5?>:BHAFQCEP=!.@*9A$04!$,03Z^a*.1 # 88G=%$E42E>=lnoòüýîýýMQVcbgeafaZ_\VYXUVUSTWUV^_``dgKRWÚäçÕßä(,5<#-1 *+ +)GGEd^[vkhƒxu…ƒtvw›ª¯‹¤®z•¨p‰šNdqIYcJW]NY]P\aR^f>HW)3CDN];GO!*.+./XZ\.02 @>K86CNK[URf^Zrsoˆ‰ˆ›WYh0SSiÂÂۊŠ¦qp}}›——±LLdÀÁՂ„•(EGb¥¨Ç¬¯Î³¶Õ ¿tw•ÂÆØimˆ›Ÿº£§¿¿ÃÔ]a|ptƒ‡¢uy”˜œ·ÉÍäÃÇᏓ®gk†ŠŽ©ÃÇâQUpx|—qu ¹`auÁÂÔpr€|~‰knvFIOMPT$(+"&)/36,03gkn™œ±¨©½tu‰>?SyzŽpr„IOUx€ƒt|ƒ‹ŽS[^‰Œlnp(((((($$$######%$'32<42=*(3,*5.,7" +%%'&&&&&&'''((((((((())))))))))))))))))(((((((((+++,,,,,,0+31)6LGR¡ŸªÀÂËÉÍÖÓ×âÓØäßÜåˆ|“zy”rltk¶‘…Ô³§èÌÂòÙÑîØÒâÏË´¦¤õõõöööøøø………,++)#%)#%'$%|€286#"#'!#("$& "$ 602.*+###!!!(((98:=@NKJaYVvllƒz|ggj„‘–™t‰™l€[n{R`kU`iWajW^f[bj=DL*19IPX>EM"%*---WWW22286C/-;SQaWThb^urn‡|{ŽSUd1BCY­­Æ’’®{z™€€””®UUmÇÈÝZ[l$&646Q±´Ó£¦ÅÁÄ㘛º‚… ÁÅÕdhƒ˜œ·¶ºÑ­±Ç]a|ei„’–±jn‰ ¤¿»¿ÚÙÝ󋏪hl‡’–±¡¼`dhl‡vz•–š³lm¡£µxzˆ„†‘mpxLOUGJN(,/#'*,036:=impvy‚bct‹ŒžžŸ±=>Opqƒnp€^ehksultvaikaikgoqkno000&&&$$$######%$'32<42=*(3,*5.,7" +%%'&&&&&&'''(((((((((''''''''''''''''''(((((((((*********.)11)6GAM­«¶çéóçêóàåïßãïÙÖßnbg‚iiŽle¢zp´ŽƒÈ¤™Ë®¤Ã©¢Å¬§®—“¢“õõõöööøøø………,++)#%)#%'$%z}286""".)*)$&&!"$ !724745###!!!(((98;LPNêúùéúû –•¬—–°’£€}™zsŸƒx±˜‹Ç°£Ë¹°³ª£ŒŒˆôûúãíð#+6+8@#06-/ ./8FDFCBYRNqgg~uwhhky…†~“—uŠ›kUgt:HT:EN8BK8@H7>F(/7%-+2:%,4!+++XXX222:8E.,9SP`ZWkc_wxt’UWf !477Nžž·‘‘­~{z˜~~™XXpµ¶ËOPb.1@(+F¥¨Ç©¬Ë¿Âà‘”³y|š»¿×EId”˜³®²Ë¹½Òlp‹pt”˜³lp‹˜œ·¯³ÎÜàô‹ªLPk˜œ·~‚nr^b}|€›‘”­€”Ÿ ²|~Œ…‡“vy^aggknGKN=AD=ADBFI\`cRT\MO\ŠŒšÀÂÐ57D…‡•y|ˆz‚‚t}{nwuktrs|{w€~^a`,,,000&&&$$$$$$&%(42<53>+)4,*5-+6#!,&&(''''''((((((((('''%%%%%%%%%&&&&&&&&&(((((((((((()))***.)16.;@;F¸¶ÁôöýõøþåêôÙÝêÁ¾Çodi‰pp¢€yڑ׮¤á»±çúèÆ¿çÉÅÓ»¸ž‹õõõõõõøøø………,+,*$&)$&'$%w{z5;9[KJK"!"544?>>!!!(((98;AECè÷öãõõª Ÿ°›™­°Š¸™‘ŪŸØ¿²âʾÞÍÄØÏȊŠ†óúùèñô*4>)6>%28#13%34;IG:DA# ™–73;9"! $#*0.3AA9FF@KK@HJ8`RUN63°Œ„½ŽÄĖ…Åš‰ÈŒÎ£’Ð¥”缫j\]C;L82G?F6CI2@C=KLCRPANJ)%›¦¢(40+623>:6>; $#  $#+1/5CC:GGALMEMO9>A258854G@=^TSi`c\\_frs}‘•o…•xŒœVhv"-!*'!  !""%%%]]]<<< ,*7#!/63CTQegc{wsŒ|{ŽXZi%&834J~~—ššµ“’±wv”…… gg¬­ÁOQb7:I~€›A9F61=ÉÆÐóõýæêóÏÓÝ°´Á¼¹Âˆ|»¢¢Ñ¯¨á¸¯æÀ·å¿·å¾·åÁ½à»¹Ùº¹©””öööôôôùùù‡‡‡!!!0/0.)+,'))''sxv9?=$#NTR{€~  %$275NRQ!!!)))666;;?DCHONSWV[\[`RQVLBCX?;iMI‚e^¥…|Ä¡–Þ¹­â¸±ßº´Õ¼·zli´²±ÁÇÈcac)"6,/h^a' '!/$(/"'“~€qSOµ‹‚ÁŌzÁ’€Á–…Åš‰ÉžÊŸŽÚ¯žj\]C;L82G?;:>;ÞëêÊÜܦœ››‡…±“‘àÌ¬¥ÐµªÖ¼°Ùµν´ÊÁº~ñø÷óýÿHT^2?H?LRA258965JC@cYYmdg]\`\hi{“m‚’“£fx†#.$-$-!)!)!)''"*#'"""!!!gggEEE -+7$"/64CXUink‚uqŠxxŒ[]m%&878Mww‘‘¬ª©È~}›}}˜ttŒ¡¢·SUf.0@‹¨69XÔ×Õru”’±¤¨ÅosŽ¡¥À®²ÍÀÄßVZuW[v¡¥À„ˆ¤¾ÂÜÔØ유»vz•“®†Š¥~‚|€›|€›¿Ãݍ©’”¨¢adr—š¥ux_ch]bd_dgY^a6;=5:A258522B;8XNNaX[RRUR]^n‚…m‚’…š©v‰–%5@+8A-9B19A29A29A/7?,4<+3:+05,-,"##qrqKLL 139&(068D\]khi|mn‚vvee~-.@;=Knovv­¬Ë„ƒ¡vvvvŽ“”©Z[l=?Osu‘03R³¶Ï®±Ð˜›ºil‹¡¥ÂY]x¼ÀÛ­±È¶ºÑ>B]ae€¡¥Ã…£ÈËâÞâùtw–‚¡‚†¢…‰¤lp‹‹ª}œÎÒçae¡¥»}•{€’—œªjp{ZaiZfeXfbQ_[M[WR_[Yfc_kh_hfktrgpmv}«³±oxvq~yo}xn|vm|vkyslzuhnk&&&***'''&&&&&&&&'0/4549*).(',-,1##'! !!!"""""""""######$$$((((((((()))))))))+++,,,,,,/-02/5-,3½ÀÅáçïÅÍØÀÈÒÊÐÔéèéÁ·µÖ¾»âÁºíüðÆÄïÅÅìÄÃèÅÃéÉÆãÍɛ‰†öööôôôùùù‘‘‘%%%898-31,31)0.&.+golFOL&/,IRO™–# )2/2;8ajg'%"*'+302:71966=;:>@BFIMPTVZ]WZ^SVYE@BM:l8CR]{7B‰:D¥NWÕy‚Í~{ыƒËŒÂº|º”‹l\VA7I91D>:132ËÖ×ÙæèǾ¿°¢¢Ê¶¶ÚÁ¿äÅÃéÇÄéÌÅäÎÇÞÍÆÔÉÄ{øøôóùõºËÁÌÞÔÒäؽÏķɾ®Áµ£½±¡¾²œ¹®“¯¤‰¦š{˜Œs‹sƒ}q‚{ox_nhL]V7GB;IN=IPERXCOV7CJ-9@226934<89?>??BAFLKbpplŠ’Œ¨±Ž¨±]tcxƒdvft{frxdpveqw^jpDPV2=A089079y€NUV!9Y¶ºÕ·»Ó¿ÃÚ<@[sw’ž¡À‰Œ«®±Ìòõÿru”“²ŠŽª‘¬dhƒ™¸tx“ÙÝî^b|½Â×|–…Šœ•£x~ŠnvhtshwrixskzuixsfupgsoiroktqYb_V_\jspjtpm{vixsfupfupetogvq\b`)))***'''&&&&&&&&'0/4549*).(',-,1##'! !!!"""""""""######$$$&&&&&&&&&(((((((((+++,,,,,,.-/0.3339´·½×ÝæÃÊÕÉÓÜÖÜÞ÷öö½³°ßÇÃëÉÃöÍÆôÊÉóÉÊñÉÉîËÉíÍÊäÌÈ«š—öööôôôùùù“““,,,CDCCKH>GD;DA:C@gpmMVS2;8[da·¿½#,)2;87@=iro'0-(1.'0-)2/'0-)2/8=?CGJNRU[_b[_bSWZFBEM<=Q>@^HJv\`Šmrš{¥}„£y€Ÿu{X^O&,O%+C"$> C—ip9D!%O-1^+6a'2e#.p%/‰5?­T]Èxv؎ˆÐ…Ə‚ºŒ|³zˆjZUA7I91D>:132ÍØØäðòÑÉÊ´§§Ì¹¹ÞÆÅåÆÄïÍÊéËÅÞÅÀÕÁ¼ÓÆÁ…zõóïò÷ôÀÔÌÁÕÍÀÕͱŽ®Â»©½¶£¾¸ž»µ™¶°­¨…¢~›•š–ˆ›™…˜–{tˆ…k~|gywoy~entU^dEOU9BH/8>336824956:998;:CIGcpps‘˜•²º›·¿ˆŸª‡œ§…—¢ƒ’™‚•€“Ž”w„Š]jpMX\PXZNVXƒ‹DLN! =@E36>;>HQS`bcuop„ttYYs9:L68F=>Ppp‰wv•€‘‘¬‘‘©ƒ„˜UWhQSc‚„ŸloŽ’¯ÐÓ舋ªadƒ·»ØMQl“—²­±Ë´¸Ò%)DquœŸ¾„‡¦ ¹óöÿTWv…ˆ§|€œƒ‡¢W[v³·Òvz•ÒÖîmqŠµ¹Ð‚‡›•§–¤kr}[clXedVe`[je_ni^mh[je[gcajgcliCLI$-*8A>PZV\jeVe`Q`[O^YO^YRa\HNL+++,,,&&&&&&&&&&&'0/4549*).(',-,1##'! !!!"""""""""#########$$$$$$$$$&&&&&&&&&+++,,,,,,,+-.,0;;A¦©±ÌÒÜÆÍØÑÚäàæè÷ööª žÇ¯«Ï¯©Ï®§Ë«©Ìª«Í¬¬Ê©§Õ·´Ì²®˜‡„öööôôôøøøœœœ666HHHU]ZAJGGPMT]Zw€}s|y[daÏ×Õî÷ôŠ“GPM[da‡?HE@IF5>;2;8.74.74:?AEILPTWhlohloW[^IFHM>>L<=S?AaJMqW[cgˆfkŠgj‹hlˆdiO+/H$(C&(> #S-2™nu8<A$&H 'J"P!c#*9?•GM¾qoµleܛ‘Í—‰¾€°Šw‰k[UA7I91C=9-/-ËÕÖëøúÒÊ˦™™³  Ä¬«Í®¬Ò°­Ð±«Ï´¯Ëµ±ÖÆÂxnk÷òïðññÓãäÑââÑââÑââÑâãÑâãÎåæÅÜß¿ÖÙ¾Õ׸ÏѪÂĦº¾¯ÀÄ«¼¿–§ª¡¤ ±´¼ÌϾÃȦ©®wzNQW=@F36<426713623545587EKIivw~œ£™¶¾¡¼Å¥¯‰ŸªŠ¨‡–…’˜„‘—Ž”{ˆŽr…p{~rz|pxzu}6>@!7:@.18>@KUWdhi{rs‡vvaa{WYkCES35F……žvu”~}›––±ˆˆ¡Œ¢cdvQTcprŽux—‚…¤ãæö‹Ž­ˆ‹ª ¤Áœ »}œ•™´–šµ48STXs±´Ð‘”³‘”±îñý9<[¬¯Îy}™w{–JNi»¿Ø{™Ó×ëuy“‘–¬‹¥„Šœ“™¨TZfAIR@LK>MH>MH@OJAPKCRMFRNOXUU^[>GD!*'8A>HRNKYTGVQBQLAPKETOIXS@FD111111---((('''&&'0/4438*).(',+*/%$(!!"!!!!!!"""###########################%%%%%%%%%'''((((((*(*1/3DDJ“–žÀÆÐÊÒÜØâëçíðùø÷¢˜•Òº¶á¿¹ë»îÄÂîÄÅíÅÅçÄÂéÊÇçÐ̏~{öööóóóîîî¿¿¿ÁÁÁÇÈÈÊÒÏÇÐÍÅÎËÌÕÒËÔÑÂËÈ¿ÈÅÔÝÚÎ×ÔÄÍÊ­¶³®·´¶¿¼¤­ª–“r{xR[XLURENKAFHCGJMQT“–…ˆ[_bB@BH=#%;G V#%a&'h'(¢XT¡XQ៖њÀ’‚°Šw•wgU@6I91C=9,.,ÂÌÍîûýæßàƹ¹áÎÎéÑÏïÐÎñÏÌìÌÆêÍÉåÌÉòÞÛtgeùóñöóôîõúðùýîöúñúýîöûèðõÝèîÍØá¿ËÓ¸ÄË«·¿š¦®š¡–™‰’•{ƒ‡qy}}†‰”˜Š‰ŽtqwPMR<:>96;649615602512322476@EDs€€ƒ¡¨›¹Á¥ÁÉi‹p…o‚lz‚iv|hu{fsy_lrXekXcfYacW_aMUW%-/9GD6?DBu‚‚‡¥¬ºÂªÅÎ@XbI_jH[fN\dN[aLY_JW]ERX@MSBMPGOQFNP=EG (*IZ\hlm€rs‡uvii„`at<>L=?Pžž¶zy˜‡†¤““­ƒƒœvw‹actKN]™œ·›ž½qt“ÑÔ﫮̈́‡¦¾ÁچŠ¤šž¸‚†¡”¯Y]x[_z¯²Ðº½Û¯²Ñµ¸×9<[«®Ãnr‹GKfˆŒ¤ÁÅ۔˜±¡¥½lpŠ„‰Ÿ ¥¹…—†ŒšV]hIPYERQDSNDSNGVQIXSL[VO[WR[XV_\QZWV_\Xa^U^[Vc_Sb]Ra\Ud_P_ZQ`[;A?***+++******+++-,-105549,+0(',+*/%$)%%&&&&&&&((())))))***,,,,,,---/////////.........00011111132486;CCI‡Š’Ò×áØßêáêôäêíöõô±¦¤ÝÅÁëÉÃôÊÄñÇÆé¿Àß··×µ³Ü¼¹ÞÅÁ”ƒ€÷÷÷îîîäää   ···¼½¼¾ÆþÇÄÁÊǾÇÄ¿ÈÅÃÌÉÂËÈ¿ÈÅÂËÈÆÏÌÌÕÒÌÕÒÃÌÉ·À½ž§¤–“…Ž‹Ž—”™¢Ÿ› ¢Ÿ£¦~‚…ÁÅȸ¼¿€„‡BBCD?>[GFjWUo[Z=*(¿«ªêÚØD0/<!B #?!#>''A2/2*&C72bNIC$ }WQU(#t0*‰?9¿~tϙŒÃ•…¹“€£…uZF13>13902602512222376>DBu‚‚«²Ÿ¼Ä®ÉÒ0HR:OZ8KV=LS=JPA^`d´ºÒÂÉá·½Ù¨¯ËT[w…ž‘–­'+Hª­ÆÆÉ↊§š»nqŽ‡‰ Ž¦£ˆ‹šY\hRVaU]`T__U``\gg`kk`jjallenofnoenoiqrkstirsepmbmi]he^ieXc_U`\9==%%'$$'$$'$#&%$'%%*+,3239')/%&-)*1%&-##&$#&$#&%$&%$'%$'%%'&&&&&&'''+++++++++.........00011122254587<98C””¡éêöãæîåêîäëëõôõ¬¢¡¸ŸžÁŸŸÃ™˜¾ŽÀ’Ä–“ÉžšÒ¨¤áÀ»x_^öõùæåëéèíñðöóò÷õôúêóõêóõëõöçòóçðòçðòçììèëêáäãÝàßÙÜÛØÚÙÊÏϾÆʵ½Á°¸¼ÉÑÕÕÝáäìïôôûüùÿ÷ôýîëôÁ¾Éœ™¤ZRXL<QCDXLNG%-=&E',L.2R;+*I31O63].,f**q/0–TR¾‚|Ǔ‰¿–Ž_@23<11923713623333254=B@u€‚‰¥°Ÿ»Ç±ÌÕ.IR5PU4NS:KM:II:HI9GH:HI:HH8EE6BA6A@+76! CEQ24@9;I\]pjj€nn†no…`av]^sZ[pOPehi~——¯——´§||•z{JK\KM]‘¯¡¤Çux›§ªÌÒÕðwzÚÝótw–¬¯Îkn¤§Æ>A`^b€ºÂÚ¼ÆÝÉÓê»ÅØS]vgqŠª¯Ì=ÈË㴷ӓ–µŽ‘°ru’……–—­™š­…‡—EGTLNZOU\SZ`ZafZagU]bOW\OV\V]bV]bQX]V^c\chU]aT\\R[ZPYXMVUKTSJSR7:=%$)#"'$#(#"'#"'##((*303<%(1"%.(+4$'0""(#"'#"'$#(%$)%$)%%'%%%%%%&&&(((((((((,,,,,,,,,+++,,,...22254:42?–“¢îìúëêñëííæììù÷øµªªÓ¹¼Û·ºä¸»Þ®«Ý¬§Ý¬§â±¬ç¶±òÉÄjJIöðöåÞåóìòöïöøñøøòùïó÷òõúðóøàãèÖÙÞÍÑÕÂÀ»µµ³­­ª¤¥œ–•”ŽŽ‡‚„~…~†‚~††‚‹ˆ…‹ˆƒŽŒˆ|‡~r|nalreqdRY\EET?>N<:L>;H<9F<8J<;I<;G==LCGA:AŠ†Œ„,)4$.8$+B*.I.2M37L;=?113%%5))8.-=32Q65a57g,1o).z57ºzxÓ¤¢hCCY<>H8;5/6¬°¶ï÷üòððƺ¹çÎÐéÈÊìÌÊðÓÎðÕÍðÕÌêÏÆäÉÀÞúڿ¶Õ¹±Ï°­Í®«Ë¬©À¡ž¹š—¯‘Ž‡…}{‰wuˆvt‹ywŽ|z}{ˆvt…sqŒzxšˆ†£‘¡’~€}ikaQRJ>>@65;42933824734444265:?=itvwž’¬¹®ÉÓ-IP1NQ1LO8JI:HG:HG:HG:HG:HG9GF5CC6DC*87#"CEQ46C@BPjk~op†uurs‰STiXYnjk€_`u_`u¥¦½¢¢¿††¡{{“€•BCUMO_€‚ ®±Ô“–¹ £Æ¨«Îy|Ÿãæöˆ‹ª–™¸Œ®š¼DGfOSqÂËä³½ÕÐÚî¾ÈÛAKdak„¼ÁÛ),KÆÉ氳Ҟ¡À‹Ž­z}šˆˆ ‘‘¨–—ª‚„“Z\hXZfUZcRYbRYaNU]JQYGNWELUGNWIPYDKSGNWMT\FMUHPTHPTGOSJQUIPTHOT9<@%$)#"'$#(#"'#"'##((*303<%(1"%.(+4$'0""(#"'#"'$#(%$)%$)%%'%%%%%%&&&((((((((()))))))))(((***+++//05490.;–“¡ñîûíìóíïïçîîúøú·¬¬×½ÀÛ·»àµ¸Ü¬©Ü«¦Ü«¦ß®©æµ°ä´¯yRP§‘““~€”~€’|Žy{‹vy{mszlr~qvxkpxkq{nt‚qs‡rrˆrt‹uvŠtuŠuu‹tvwy–}€œƒ†­”—´›¼£¥Ë²³Ì²³Ã©ª±—˜Ÿ…†”z|ˆnn{b`fPMUC>P?:L>8I=7K<;I<;G==G=B=6=fbitrx2.50)/1)-:10>31C33K16E/2<+,<0070.2/+G83Z=:c88h-/m+,ŠEE—]]sNNX;=G7:607¤©°ð÷ýòð𰥤ӻ¼Ý¼¾Ü»ºØ»¶Ó¸¯Ò·®Ï´«É®¥Ä© Æ«¢È¬¥Í®«Ê«¨Éª§½ž›µ–“¬Šš…ƒ~|Ž|z•ƒ™‡…šˆ†—…ƒŽ|zŒzx•ƒ ŽŒ£‘‹‰•ƒ‰uwqbbRFFD;9=649448247344445875:9V`b_u„{‘ —®º,DM.GL+CG1AC2@A2@A2@A2@A2@A2@A0>?3AB,:<%35"01,.?AM-/?9@ZU\VV\79>7:=9;:7:6370=63J-2H-2I36M>??753.+2,$D4-U94]2.j0.;:t89xSSZ=?H8;5/6›Ÿ¦ð÷þöõô´©¨Ø¿ÁçÆÇêÉÈèÌÇæËÃæËÂáƽݹݹپµÖº²Ñ²¯Ï°­Ì­ª½ž›¶—”®Œš…‚““—…ƒ˜†„”‚€{y…sq‡us~|”‚€”‚€~|{}ŠwyxhiZNNH>=?86:44824734434365175DNQK^n_tƒo„CYaCY^AW[HX\JW[JW[IVZIV[JW[HVZDQVGTYDRVESWBPT?MQ;=I(*6ikyˆ‰œmmƒll„ff}bcx\]rdezmnƒTUj°±È›š·rruu†‡œWXiDFV\^|–™¼…ˆ«ž¡Äª­Ð‚…¨©¬Í„‡¦NQpŠ¬®±ÐhkŠWZyáêù’œ³ÅÏß®¸Ìak„dn‡’¯nqÈË꟢Á…ˆ§„‡¦tw”€€™Ž¤š›®pr‚ACOQS_W\i[apagubhvbhvfl{jpgmz^drX^m[apciwio~pv†syŠv{Œuz‹rw‰ns…KMW&%*)(-'&+'&+'&+&&,(+3.1:&)2"%.$'0#&/!!'#"'$#($#(#"'#"'$$&%%%%%%%%%&&&&&&&&&&&&&&&&&&***++++++++,328,*7”‘ óñþóñùñóôìòòø÷øÌÂÂÝÄÆêÆÉìÀÃ練깴뺵鸳崯ޭ¨Õ§¥Î¥§Ò©ªÕ¬®Õ¬®Õ¬­Î¦§Ç¡¢¿˜›¶’°‰‹¬…ˆ©‚…¬ƒ‚²‰„¹‘Œ¾–’Û–ÇŸ™Ë¢Õ©£Ý²¬ß³®ã¶±ã¶±ã¶±ß³©Ü±¤ß´§Ô¨œÊŸ’׋·’ˆ¢…~’voe^mXP\K@P>5K;:H;:D9:A7N`HYjQbpPblM`gPbhUckVckVckTaiTahVcjVckVcjVcjVcjUbjS`hR_g?AM(*6ln}‹ŒŸop…ee}dd{hi~Z[pbcxNOdEF[—˜¯»»Øgg‚mm†ƒ„™lm~GIY\_}„§~¤¡¤Ç¨«Î~¤µ¸Ù“²CFey|›¹¼Ú€ƒ¢‹«æïøq{”Üæôµ¿Öcm†pz“†Œ¨†‰¨ÙÜö†‰¨y|›–™¸}€‚‚š””ª˜™¬}~ŽIKWMO[VZk\at^cvX]pOTgKQcKPbHM`GL^GL^OTfUZlZ_rX]rX]sY^sTYnQVlOTi<=I$#($#($#(#"'#"'##)(+3.1:&)2"%.$'0#&/""($#(&%*%$)$#($#(%%'&&&&&&&&&&&&&&&&&&&&&&&&&&&***++++++,,-217-+8“Ÿóñþóñùòôôîõõø÷øÕËÌßÆÈçÃÆê¿Â뺵ð¿ºöÅÀñÀ»è·²à²±×®µÐ§®Ë¢©ÈŸ¥Åœ¢½”š¶Œ¯†…¦}|¡ywŸvužut£|u«…{³Œƒ¶†¸‘‡¼•‹Á›“Ò¬¨Ú´°×±­Ò¬¨Ñ«¨Ñ«§Ø®¤Ù¯£Ý³§Ý²¦Ù®¢Ð¦šÆ •´”‹§‰€•zph\mXK]J>M=;I<;F;B;BQMTE@G;7>104+/.)1+,8/3:3=32E56C/1H-1X8?Y7>G0.<.&9.$I;-dW™of{MH—qqgJLK:=4/5~‚Šñùÿóñ𠕔ª«È§¨É¨§Ã¦¡À¥œÂ§žÆ«¢Æ«¢Á¦À¥œ¿£œ¿ ¼š¸™–³”‘­Ž‹¥‡„ž‰†‹‰žŒŠšˆ†’€~‰wuommkˆvt“’€~“—…ƒ¦’”­™›˜ˆ‰zmm_VTJC@:55935845444143064;CF=J\?M_CQ`3BM0@H3BI9FO:GP:GP>KSANVCPYER[GT]GT]HU^LYbMZcN[c02>&(4hjx‰‹žjkXXp`av_`tEF[jkVWk>?Sno†ÐÐìaa|qq‹‰‰Ÿop„EGZfh‡‰Œ®œŸÁš¿’•¶ƒ†¨ÆÉ鋎­03RloŽ¹¼Û‚¡­°ÍÂÊߓ›´×ß郎ǂŠ¥jr“¯˜œºåèú“®pt‘¨«É„ „…›•–«™š­st…13A68E69J38I5:K5:K26H27H16G.2C15F27H16G/3E.2D/2G/2G/3G.2G.1F-1E,-7#"'! %#"'#"'#"'#"((*2/08'(0#%,%'.$&-##)&%*'&+(',(',(',('+(()(()(()(()''(''''&('&('''**+++,++,---005/-:‘ôòþòòùñóôíôôöôöÏÄÄȯ±Ð­°ÊŸ¢Ëž™Õ¦ Ô¥ŸÐ¡›ÍŸ™Ç™“À”“²Š’¢{‚šrz¢{ƒ®†Ž³Œ“ª¨€{¦}y°ˆƒº‘Á™”ÇŸ–É£—Ë¥™Í§›Î¨œÑ«žÔ¯¦×¶²Ý½¹ãÿäÄÀâ¿âÁ½ëÅ»ìøìø翳㺯޵ª×°§Ê§Ÿ»™‘¨Š€tizbVhRHP>>L>>G<=F&3>$0<#0;%1=&2>'3?'3?(4@,9D/;F0Pccx½½ÙppŒtt‡‡£hhƒ==XUWu}€Ÿ­°Ï¬¯Î”—·~ ¸»Ú £ÂDGfjmŒ¨«ÊnqÀÃ∋ª»¾Õ”˜´ŠŽ¬¨«Êbe„‹¬¦ªÅáåú—›¶uy”¸¼×lp‰{| ¡³Ÿ ²vw‰+,>23E02@/1?/1?/1?/1?/1?.0>,.<,.<,.<+-:+-:+-:),6),6),6'*4&)3&)3%&-%$)%$)$#(#"'#"'#"')(-/.3'&+%$)'&+&%+#"'#"'#"'%$)&%*&%*'&+)(-)(-*)..-2,+0*).*).*).*).,+/,+0,+0.01148-/;‰Š˜õ÷ÿñôúîóòíóó÷õöÕÊÊδ·åÂÅè½À強侵濶êûæÀ·â»³×±«Ä Ÿ³Ž­Š‰®‹Š°Œ‹²‹¶‰‡¹Œ‰¼ÊšÔ§¤Ù¬©Ü¯ªÜ¯©Ù¬¦×ª¤×ª¤Ø«¥Ý²¬å½¹é½êþçÁ»éýé½íƾîǾèÁ¹â¼³Þ¸¯Þ·¯Òª£Æž™¹’¬ˆ‚”tm|^VhLES?AN67D?>AA@376*.-.10.21.31+3.3A2;A4tkcz_]rIL^+2Z.1N63CE9@L=omb¿¡Ÿç»»ïÔÑR1/K86<77\cdñýþõòõ«¢¤Åµ¶Ð¸¹×··Ü¸·Û·³Ú·²Ú·²Ó¯ªË¨¢Áž˜º™”®“¬Ž««Ž«ª©‘‘¢‹™‚„’{}Šsu€ilzgh|on…xwŒ~‚™‹Š “’ª›©›š¦™˜œ†zxnbaQMO>@D79=57;2483698=A8EK7DK7DK8EL7DJ7DJ:GP:GP8EN1>G-:C-:C*7@&3<&3<&3<(5>(5>(5>-/;24ATVdjk~bcyXXpop„{|ŽLM_]^prs…>?QWXl¯¯Ëww“vv’ˆˆ¤uu‘FFbDFdnq¦©È¯²ÑŽ‘°‚…¤·ºÙÀÃàX[znq‹Ž­ˆ‹ªÍÐµ”—¶loŽ™œ»°³Ò\_~ae‚ÂÆÝÓ×ꋏªtx“ÁÅßRUnfgy¥¦¸“”¦‚”-.@24E.0>-/<-/<,.;,.;,.;+-:)+8)+8)+8')6')6')6&)3&)2&)2$'0$'0$'0#$*#"'#"'#"'#"'#"'$#(,+00/4+*/'&+)(-(',"!&! %! %"!&#"'#"'$#(&%*&%*'&+*).*).+*/,+0,+0,+0.-2/.3/.312458=/1=‡‰–õ÷ÿñôúîóòíóó÷õöÕÊÊØ¿ÂïÌÏòÇÊéÁ¼å¿¶ã½´ä¾µÜ¶­Ý·®Ë¥Ÿ±ŽŒ£€~ }{¥‚€§„‚©„‚¶‰‡¿’Éœ™Ò¥¢Ò¥¢Ñ¤¡Ñ¤ŸÏ¢œËž˜Çš”•À“Â—‘É¢Ò«¦Ð©¤Ñª¥Ò«¦Õ®¨Ô­¥Ç¡˜Á›’Æ —ÅŸ–Ç¡˜Ä–™•¹’¯‹…™yr‚d\nRKXDDTABN>>D8790.?74@@=8<;)-,'+*-10043/513B5GOD…€y«—•kLMC S-1L86BF;ANA€€wε´â¼¼ï×ÔO2/E44<79U\`òüþùöú®¥©º¬®Æ²³Ì±²Ñ²²Ôµ³Ò³±Ò´±Ò³±Ì­ªÅ¦£»Ÿœ­—–«–”ª”“­—–¯™—°›š­š›¥“”œŠ‹’€Šwx‚pqqq„{z‹ƒ€‡…‘ˆ†˜ž•“¤›™¤›™¤œš ˜–”‹‰…|znmn[`cQVYNSVKORINQLSVN[`P]cR_eVciXek[hnYfnWdmVclS`iQ^gQ^gQ^gR_hR_hS`iVclVclVcl/1=8:FTVdXZm^^tggstˆrs…?@RTUgvw‰MN`UVk¹zz–vv’††¢~~š]]yTUteh‡£¦Åº½Ü…ˆ§„‡¦±´ÓÎÑìtw–tw–Š¬“²¶¹Ø§ªÉŠ¬gj‰£¦Å´·ÖLOn6:WÜàìÃÇÛimˆz~™¦ªÅos‹pqƒ“”¦„…—”•§'(:.0A,.=,.;,.;*,9(*7(*7')6%'4%'4%'4$&3$&3$&3"%/"%."%.#&/#&/#&/"")! %! %"!&#"'#"'$#()(-+*/)(-(',*).*).! % $ $### $"!&"!&#"''&+)(-+*/*).*).*).1053273274578<@02>†‡•õ÷ÿñôúîóòíóó÷õöÕÊÊÇ®°äÀÄÞ³¶Í¥ŸÅŸ–¾˜½—Ž´Ž…¸’‰©„}—trŠgeŠge“pnœyw¥~®‚€¼ŒÌŸœÚ­ªÔ§¤Î¡žÏ¢Í šÊ—Éœ–ÌŸ™Ï¢œØ¬¦à¹´ä½¸æ¿ºçÀ»êþíÆÀêļéú㽴ັݷ®Þ¸¯Ø°©Ï¦¢Ä˜¸”Ž¦†Žqi{_WgPOcMM]KIWHEI>:B737647;:/32(,+&*)(,+1848F;T]S‰£š—@//2B(*C75=;03?=CJNXíóúóñø¶³»¹³¹¿¸º¿·¸¿·µ¾²³½°³¿²´Á´¶Á´¶¸«­ªŸ¡›•”•Ž”’‹‘Œ‹“ŽŒŽ‰‰Œ……ˆ„…‡‚‚„€‚|}|€|€|€z}~x{|vy{vxzvxzuyywz{xz|xz|pxxkvvkvvgrr`kl`klalndqwdqwdqwbouboubou_lt^kt^ktZgpWdmTajO\eIV_GT]FS\HU^HU^HU^24@HJV^`nefyfg}wwz{cdv78JIJ\wxŠop‚RSgWWsyy•ŠŠ¦‹‹§ZZv|}œPSr“–µ ¿“–µƒ†¥¨«Ê£¦Å—š¹PSror‘“®¿Âݱ´Ò¯sv•‡Š©µ¸×fiˆz~›¼ÀÙÊÎâcg‚sw’ª®Éhk„Ž¡®¯Á}~Š‹1*,=%'5%'4%'4$&3#%2#%2#%2#%2#%2#%2"$1"$1"$1 #- #, #,"+"+"+!!("!&"!&! % $ $ $"!&"!&"!&&%*%$)#"' $ $ $! %"!&"!&"!&"!&"!&"!&#"'#"'#"'%$)%$)%$)'&+*).-,113536:02>‚„’ôöþíñ÷èííåììïîïËÁÁ¿¦¨Ùµ¸×­°Ï§¡ÅŸ–º”‹¯‰€¥vwnšun˜us˜usž{y©†„±ŽŒ¹•“ʝ›Ï¢ŸÓ¦£Ò¥¢Ò¥¢Ò¥¢Î¡œÉœ–Ëž˜Çš”Æ™“Ä—‘½’Œ»”»”»”Ç ›Ì¥ Ì¥ Î§ŸÏ© Ðª¡Ö°§Ø²©Ô®¥Ó«¤Ò©¥Ð¨¤¼™“§‡“vnˆkd—{wž‚ž†œˆ‚p^X¨˜PMI376*.-#"/32DHG-42-85?LHXfbZie/<87EACDD1323<99EB=ECxxx“‹Š–‡…k__kchrpyps€ÆÊØÓÑݵ²½´²¹µ´¸¶¶¶¶¶µ®ª­¥ ¥¡œ¡ž˜žš”š••‹ˆŒ~‚‚x||x|{{z~~y}}s{|pxzmuwjrtksuemogoqhqshqshprdmobkmaik_hj_hj_hj_hj`hj`hj]hi[hh[hhYffWddWddXdfZgmZgmZgmZgmZgmZgm^ks_lu_lu^kt\ir\ir\ir[hqYfoWdmTajR_hO\e13?OQ^^`o[\pii„„œwxŒabt>?QKL_{|Ž€”abvaa|{{—ŒŒ¨‡‡£„„ __{su”-0N“–µ©¬Ë ¾Œ®…ˆ§¨«Ê„£@Cb{~–™·»¾ÜÆÉ䁄£—š·ru”¸»Úgj‰ÄÈݪ®É°´ÏmqŒtx“ª®ÉRVnŒ °±Ãvw‰‰Šœ.)*;#%3#%2#%2"$1!#0"#0"$1#%2#%2#%2"$1"$1"$1 #- #, #,"+"+"+!!("!&"!&! % $ $ $ $ $ $'&+#"'#"'! % $ $! %"!&"!&"!&"!&"!&"!&#"'#"'#"'#"'#"'#"'%$)(',+*//12148.0<€‚òôþëîõåêêàæçéèêƼ¼²™œÇ¤§ÆœŸº’°Š¦€wŸyp–pg’lc–qj–sq™vt }{¦ƒ¬‰‡´¶ŠˆºŠÃ–”ÉœšÊ›Ê›Å™”Á”Æ™”Ç›–΢œÏ£Î£žÕ¯ªÕ®ªÔ®ªã½¸æÀ»å¾ºæÀ¹êƽðËÃïÊÂëƾèû⽷۴°Õ¯ªÀž™©Š„›~w“xp«‰´™”µ—¸£œ…tk‘xpmh376.21(,+4877;:$)(#-,-:7:KHEYT.E?0HB?IH6==;EDGSQGQPY`_dbalb`phiqlrrq|xx‡€‚“Œ|z…~~†|ƒzz€~z|}|ƒ~…€†……ŒŠ‰ŠŒ‘™™‘š™ˆ’‘•Ÿž– Ÿ— Ÿ™¥¦“ ¢‹™š†”•‚‘~‹Œx…‡u‚ƒu‚ƒu‚ƒs€q~p|~p|}p|}p|}q}q}q}o}~o}}o}}o}}o~~o~~p~p}‚p}‚p}‚r„r„r„uŠv‚Œv‚Œu‹u‹x„vƒŒr~‡q}†mzƒcpyWclMYb/1@KL\]^q[[qssŒŒŒ¨uufg|YZn[\pnoƒwxŒ]]tee€ŠŠ¦ŽŽª††¢ƒƒŸpqkm‰/3OŸ£¿°³Ðš¹Ž’®ƒ†¤·ºÙsv•UXwjmŒŸ¢Á­°Ï±´Óx{š¦©Èux—­°Ï~ ´¸Ó±µÐ†Š¥vz•x|—¡¼\_y‰Š ¡¢·st‡ŒŽž!/*,9#$/$"/$"/#".""-#!."!-!!+!!+"!,"!-"!,"!, ) ))! +" +" +! & $ $ $ $ $ $! %! %! %#"'"!&"!&"!& $## $ $! %"!&"!&#"'%$)%$)%$)$#($#($#(&%*)(-*)..-321:0/:‚‹ôóýççðÞàæÙãäâåèü¿—„ˆ¶˜µ”ª‡„¥‚~¡~z{w›xtšxtŸ}z¦…‚§…ƒ©ˆ…°¹˜–ÁŸÔª¯Ó¨­Ò§¬Ñ§¬Ó¨­Ô©¯Ø±´Ùµ·Û¶¸×²´Ñ®°Ñ­°Î«­Æ««Äª©Â¨¨Ç¬­Ë±±Ð¶¶ÕÁÂÙÆÇÚÇÈÙÆÇ×ÄÅѾ¿Éºº¾´³µ«ª¦œ“Š‰ˆ€~€ywˆ†—œ—”£ž›‹‡„iebVWU?CBFJI6:9598376$)')1/6A>-84=IE4A=3@<7A>4=;7@>QZX^helury|{ƒŠ‡ˆŽ––™˜—œš›Ÿ››Ÿœœž›œžš›œ˜™™–˜—‘”–‘”˜–™Ÿ¢¦¢¥©ž¡¥™¡’—š‘—™‘–˜–›ž”™œ‘—™‹‘•†Œ‡‹~„ˆ}ƒ†|‚†y‚„s€tt€€v‚‚u‚‚ux{€x{€x{€y|}„{~ƒ}‚‰{‰}ƒ‹{‰zˆz€ˆ~„‹ˆ‹~ˆŠ~‡Š}†‰}†‰y‚…y‚‰y‚‹y‚‹|…Ž„Œ–‰’›‡Ž˜„w|‡ns~_cnHMX9>I-/>EGWZ[n^_vœŒ‹¨vvfg|ef{jk€klst‰aaxTTp¸¸Ô‘‘­……¡}}™nnŠKMh>B]€„Ÿ‘•°¤¨Ã‘•°‚Ÿ¸»ÚloŽ\_~`c‚­°Ï½Àޚ¼}€Ÿ®±Êux—Ÿ¢Á¨«Ê·»×¥©ÄVZu‰¨rv‘“®ux’¥ž´no‚ƒ“+-:')5&$0&$/&$/$"-#!,#!,#!,#!,#!,#!," +" +" +!*!*!*" +" +" +! & $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!& $## $ $! %"!&"!&#"'%$)%$)%$)&%*&%*&%*'&+)(-*)./.631<42=‚€ŠöôýæäïÝßçÙãæÜàãÇÁŦ—š¸Ÿ¢²”˜ªŒŒ¦‰‡¢…„£†„¤‡…¤‡†§Šˆ«ŽŒ«ŽŒ«ŽŒ«²•”¸›š¼› ºš ¹˜ž¸—¼›¡Á ¦Ê­±Î³·Î³·Ë°´Ã¨¬½¢¦·¡¯œ©–—¥’“°ž´¡¡·¥¦¿³µÄ¹½Â·»¾´¸º°´³©­¬¦¨¢¢¢›››–––’’’ŒŒŒŠŠŠ‡‡‡„„„uuujjjRTS6:9QUT487&*)#"#('&.+*30-639B?8A>8A>2;8?HE7@=Zc`ktqr{xw|{zzz~~~€€€‚‚‚‚‚‚‚‚‚†††††††††‰‰‰ŠŠŠŠŠŠŒŽŽ’•”—”—ŠŽ‘‰…‰Œ€„‡€„‡€„‡…ˆ…ˆ€„‡|€„y|€ux}psxmpujmrflpblmaklajk`jk`jk`jkdcidcidciihnjiohglst|ux€wzƒvy‚x{„~‰ˆ““›”œž•Ÿ˜šŽ–˜ˆ’†Œz‰w~…v}„|ƒŠ‚‰‘…uxhkt[^fGJR47@),4/1@CEU[\phh‚‚žxx‘PQfSTiklop…vwŒmm„NNi¸¸Ô˜˜´ŽŽª€€œppŒ24O`d•™´imˆšž¹”¯Œ¬¾Áßil‹X[z“°±´ÐÛÞïx{šfiˆ®±È}€ŸŸ¢Áž¡À¸¼Øž¢½HLg†Š¥jn‰ŠŽ©tw‘‚‚š¦¦¼st‡yzŠ-/<)+7&%0'%0'%0%#.#!,#!,#!,$"-$"-$"-" +" +" +#!,#!,#!," +" +" +! & $ $ $ $ $ $"!&"!&"!&"!&"!&"!&"!& $## $ $! %"!&"!&#"'%$)%$)%$)'&+'&+'&+'&+)(-*)..-5/-842=~|†øöþåãîÝÞçÕÝàßâæ¼¹¼‘“¥’”˜€‚‘z|’|}”~€–€–€–€—‚˜‚ƒ˜‚ƒ˜‚ƒ—ƒ˜‚„™ƒ…”„“€ƒ‘~~€“€ƒ—„‡š‹œœ›ŒŽ™‹Œ˜‰‹—ˆŠ—ˆŠ˜‰‹˜Š‹¡’“£”•¥–˜ž•— ˜šž—™™‘””Œ…ˆ‡ƒ…‚‚‚€€€€€€€€€€€€|||xxxrrrfffZZZSSS?A@-10487598*.-'+*"'%&.+-631:76?<9B?9B?4=:?HE@IF`ifoxulurnsqqqqpppooonnnnnnnnntttttttttxxx}}}ŠŒŽ”—“—š–š—›ž›Ÿ¢—›ž“—š“—š“—š”˜›•™œ—›ž”˜š‘•—‘“ˆŒŽƒ‡‰}ƒv{}hoqSZ\HOQFMOFMOGMOHHKHHKHHKIHLHGKJJMhiotw}vyorxilspsyz~ƒ€‡Š~†ˆ}…‡yƒv~€ltvcko`hm^fkbjnlsxry~sx~louZ]dILR69?*-3$'-9;JKL]_`top‡xx’~~›||•DEZ?@Ubcxpq†z{ƒ„›IIdcc¢¢¾¹ˆˆ¤yy•7:U}œ¸¼×VZu…‰¤ ¤¿™œ¹½ÀÝQTsGJi¼¿Ô¡¤¾Ô×è{~Y\{°³Î|ž©¬Ë›ž½§«Çšž¹ae€sw’^b}Œ«il†||•´‚–{}Œ%'3*,8('2)'2)'2'%0%#.%#.%#.%#.%#.%#.#!,#!,#!,#!,#!,#!," +" +" +! & $ $ $! %! %! %#"'#"'#"'#"'#"'#"'"!&! %! %"!&"!&"!&"!&! %#"'&%*&%*(','&+'&+*).+*/)(-,+0/.332997BVT_ŠÇÅо¼Ç°°¹£ª®Ÿ£¦””–’‹‹›Ž™Š‰”†‰—‰›“œŽ“šŒ’™‹‘˜Š—Š•‡”†Œ”†Œ‡Š}ƒ…~ƒ}{}~xz~x{~y{‚}ƒ}{}z||~ƒ~€†}ˆ‚‰ƒ‹‚…Š„ˆƒ…€„€ƒ~€~y{ytvtpqqnoppppppoookkkiiihhhbbbYYYSSSLLLIIIIIIFIHAED/32'+*'+*@DC&+)'/,4=:1:73<9:qrnwywtxxrvvossossvz{~ƒƒ…ŒŽ‡‘†Ž|„†u}muwdlk\ecZbaajhfomhpngnm`dcMQQ<@A8<<5998<;PRadev`auqq‰}}—‡†£zz“YZoKLaMNcgh}~”¥¥¼vv’--I©©Å³³Ï——³…†¢9;W‹ª·»ÖEIdBFašž¹¨«Èbe„fiˆjmŒ£¦Å“–µ®±Ð¯il‹‡Š©¶¹Ö|žŸ¢Á¬°Í¤¨Ã|€›€„Ÿƒ‡¢ˆŒ§dg~~—™™°{|‚ƒ“')5(*6)'3)'2)'2'%0&$/&$/&$/%#.%#.%#.#!,#!,#!,#!,#!,#!," +" +" +! & $ $! %"!&"!&"!&#"'#"'#"'#"'#"'#"'%$)&%*&%*'&+'&+'&+&%*)(-(',327@?DLKPQPUnmrŒ‘¡ ¥ª©®¶µºº¹¾¹·¿¸¶Áº¸Ã¼ºÅ¼ºÅ½»Æº¹Âµ·½³·»³µ¶²²±µµ°¹¸³¸¹À´µÁ¯±¼ª¬·§©´¥¦²¢£¯œž©˜š¥”–¡ŒŽ™‡ˆ”ƒ„€†~„}|‚vu{trxrqwtovwpx{s{|u}{t|{t|zu|ww|xy~yz€yz€}~ƒ‚ˆˆŠ‹‹ŒŒŽ”–•šœ›ŸžžŸžžžžžžž™™™–––•••’’’’’’ŽŽŽ„„„|||tttilk]a`6:9)-,$('!%$NSR2:8&/,2;8.741:7C?BGCDIEJOKRSecew^_tij€yy‘ƒƒžww[[sQQjLLd\\tss‹·zz—>>\ˆ‡¦¾½ÛŒ‹ª­­Ë=?\Œ¬”˜µW[w;?[‡‹§¡½[_|`dru”†‰¨š¾ž¢Ã‡Œ¬tyš{€ Ûàñrw—¢Â°¶Ó¨­Éx}™–²“˜´…Š¦inŠƒ›œ´…ˆœuwˆ$(5(,8()4)(4)(5('3&&2&%1%$0$$/$$/$#/#!.""-#"-#!.#!.#!-" -" -" -! (! &! &! '"!("!("!($#)$#)$#)$#*$#*%$+'&,)(-*).-,10/465:@?DSRYa`gyx~œ¢¥¤«©¨¯®­´²±·¶µ¼·¶¼»ºÁ¾½ÄÁ¿ÊÄÂÏÅÃÐËÉÖËÉÖÊÈÕÈÇÒÉÊÐÇÈÍÆÇÊÂÃÂÀÀ¿¿À¾··¾³´¼¯°¸§©±¢£«¡¢ªž§——¢““žšŠ‹•‡ˆ“††„‚ˆ~„}z€yw|wuzusyxsy|u{~x~‚{‚ƒ|ƒƒ|ƒ„…~~‚€€„‚ƒ‡|}‚‚ƒ‡‰‰‘–““™––ž›œ¡ŸŸ£ŸŸ¤Ÿ ¥¡¢¦¢¢§¢£§¢£¨¤¥¤ ¡Ÿ›š¥¡Ÿ¤ žœ˜–˜”’““““–“[][9<9)-)%(%Y\Z-10%*(-2/-2..3.?D>¥ª¦RWTƒˆ„ ¥¢‘–“‰ŽŠy|zeec\][``_decnnlvvtrpl{yu}|wƒ}…ƒˆ†‚‰‰††‰†ˆ‹ˆ‘Ž˜›˜™œ™™›™Ž†‰ˆ«­¬¸º¹±´³­°¯«°«£¨£™ž™’—’‰Ž‰lql:<;..1)),&')&&)&')&')%&#%&"$&!+.)NPKgidimiinkhmjgkiejgfkhhlknsvkrtgmpY_bW\`TZ]U\\QWWNTTNUTNUTMSRMQQFKJ<@@=A@IMLOSSW[ZJK`Z[pabwef{xyŽˆ‰ž{{”]]yTTpNNj[[wssœ›¸ƒ‚¢?>^…„¤ÔÓïnm†…¥[]|Ž‘°Ž‘°fiˆ@CbŠ¬Œ¬_c{SWr{œ“´¥¨Í£¦Ë{ƒ¥Š«ˆ©Ÿ¨ÈŠ«›¤Å ©Çª³Ðs|™œ¥Âs|™’›¸hoŒˆŒ©z~˜†Š¡di}&,<'-;(+8(*7(*7$&3!#0!. "/#%2#%2#%2"$1"$1"$1%#1%#1%#1#!/#!/#!/#!.#!,#!,#!,#!,#!,#!,%#.%#.%#.&$/)'286A@?EVUZqpu‘•Ÿž£¥¤©ª©¯©§²©§²©§²§¥°¢ «›¦Ÿ¨ ž©¡Ÿª¥£®¦¤¯¨¦±¬ª·¯¬¼²°¿°®½¨¦µ¨¦µ®¬¹«ª°®­²°¯´°¯´®­²¯¯³°¬¯¯«¬­©ª«§¨©¥¦©¥¦ª¥©©¤«¥ §¡œ£™”››–œ—ž•‘–ŽŠŽ‡ƒ‡€|€~z}|x|{w{|x|{}‚~ƒƒ†ƒ†…„†‚†‡ƒ‡……‰†‰‰…ˆ’‰Š—›‘‘¡——£™˜£™™£™™¢˜˜¢˜˜¢˜˜£™™¨žž§°§£¸¯ª°§¢œ“Ž”‹†Ž…€†ƒ~ŽŠvwrLMH12-+,'/0-((*+++785CD>CEA6:=;?BJNQSWZ[_bOPeYZobcxdezrsˆ„…š{{•^^zUUqMMiaa}zz–““°‡†¦;:Z‘°ÞÝõ~}ihˆ‚„£‡Š©’±jmŒ9<[›ž½…‰¥^bzNRm{œ¥¨ÈÁÃ痚¿}…¦‚‹¬§°ÏS\}‘š»— Á›¤Ã˜µvœ§°Ícl‰£¬Élt‘©®ÊAE_¦«Ágl*/?-3A.1>,.;*,9&(5$&3"$1#%2%'4%'4%'4#%2#%2#%2&$2&$2&$2%#1%#1%#1&$1'%0'%0&$/%#.%#.%#.%#.%#.%#.%#.#!,PNY~}ƒ”¤£¨®­²«ª¯§¦«¨§­§¥°¥£®¦¤¯žœ§žœ§žœ§¢ « ž©›¦—• ’›“‘œ–” ™—¤žœª¢ ­£¡®¦¤²®¬·µ´¹³²·°¯´²±¶³²·²±¶¶²µ²®¯®ª«®ª«°¬­°¬­¯ª®­¨®©¤ª¥ ¦Ÿš ¡œ¢¢£¡›ž›•—”ŽŽˆŠŒ†ˆŠ„†…„€ˆ‚„‡‰‰‹Š‹•‘–‘’“Š–’Š„†}wx‘ˆ‡—Œ“‘ž”’Ÿ•“ –•šŽŽ„‚‹‰~†|z}sqwmkxoj‚yt€wrmd_g^YbYTPMHSTOJKF;<723.+,'--*../$$%KKH›œ•€xbdXyzsŠ‹†ˆ‰„|}xrsnab]WXSPQLVWRjkf€{‹Œ‡••›—‘š“£Ÿ˜ •Ÿœ”œ˜‘˜˜–—Ž–—Ž•—Ž•—Ž—˜˜™’–—‘Ÿ ››œ—¡¢œžŸ™›œ—‘”’‹Ž‡‹Š…„x|{_cbIML@DC?CBAED;?>;?>;?>>BA<@?9=<<@?GKJGKJAED@DC=A@<@?<@?<@?;?@86:=259,03&)-"&*#'+$(+(,/+/2,03.25047-1448;AEHJNQQUXEF[QRg_`udezklwxzz“``|VVrOOk]]yqq‹‹§~}KJjœ¼§¦Æ†…¥llŒ‹¬ˆ‹ª•˜·y|›/2Q¯Ž’®bf~hl†ƒ £¦ÇÂÅ遄©œ¤Åy‚£¹Âß`iŠŽ—¸¢«Ìš£Áˆ‘®zƒ ¯¸Õaj‡µ¾ÛjqŽ¾ÃÜEIc¼À×rwŠCIYBHVADQ=?L9;H57D35B13@.0=,.;,.;+-:(*7(*7')6+)7*(6)'5'%3'%3(&4*(5,*5,*5*(3(&1'%0'%0%#.%#.%#.&$/&$/1/:HGMXW\kjozy~yx}vuzwv}yw‚|z…zxƒ€~‰‚€‹„‚†„†„‡…ˆ†‘‰‡’†„Š~|†{yƒxvwv€{z„ƒ‚ŠŒ‹”“˜œ› ¡ ¥¦¥ª¦¥ª±­°±­®®ª«­©ª®ª«®ª«­©«¬¨©¨¤¦§£¥ª¦¨¬§ª­¨ª²ª¨¯¦¤©¡Ÿ¤œš¡˜—ž–”™‘—Ž—Žš‘˜ŽŽ†„˜Ž‘‰ˆˆ€~xw‘‰ˆ‡~}i`_ofbkb]f]Xi`[ja[i`Zd[V^UOaXRg^Xypj‚yt„{v‰€{…|w‚yt…|wˆz~uphe`WXSFGB?@;CD?)*%))&668###OPLÔÕϬ­¤—™‹Œ†‚ƒ~wxslmhbc^STOLMHJKFQRMefauvq‚}‡ˆƒ††ˆ‡‚ˆ‹‹†Œ‡‰‰„‘’Œ”••––—‘—˜“™š”™š•˜˜—¢¢¡  ž¢¢¡ŸŸžœš›™œ˜œ›”˜—”˜—“’‰Œ‚†…‚†…‰Œ†Š‰‡‹Š†Š‰ŠŽz~}hlk[_^UYXBFE/32*.-'+*$('#'&#'&"&& $$!%%!%%!%% %%!%$)-,/333887;;599055*.0&*-&*--1448;<@CBFI89NWXmcdyef{\]rdez˜ii…TTpSSoaa}ww“©mlŒhg‡¬«Ënm…„¤xx˜˜š¹Š¬“²“²EHg\_~vz–txlpŠ€ƒ¡ £Ä¥§ÌŠ²¸Ààr{œ¬µÕ}†§ƒŒ­«´Õ“œ»…Ž«‹”±ª³Ðkt‘˜¡¾zžËÏâ`d~¼Á×w|pv†msnq~kmzfhuacp`bo\^kWYfUWdUWdQS`HJWIKXJLYKIWJHVJHVHFTDBP?=K=;H=;F;9D97B75@53>42=31<31<31<,*5.,7,*4-,2216CBG_^cnmrnmrgfmcala_jZXcWU`XVaYWbVT_ZXcVT_TR]SQ\SQ\SR[SRZSRZSRZTSZTSZUTZYX]`_dfej‰ˆ}|utx¹µ· œ±­®§£¤¥¡¢£Ÿ žš›˜”’–’š–•žš™˜”“”Ž’‰†šŒ’—Œ‰vszpmrheh]ZcXV_TRf[XYOLaWTeZXcYVbWTg\Ylb_ndapf`pg_vme‡~v…|t†}vˆwˆwŠyŒƒ|’‰—Ž†˜‡„‰€{ƒzuvq{rmqhc_\WKLG@AB>:?;-20"&)"&)#'*(,/+/2,03=>SYZodezhi~OPeTUj{{•ii…PPlYYuee~~šŸŸ»mlŒsr’¡ Àdcƒ†…¥–•µ˜™¸‹Ž­‰Œ«”—¶^a€DGfTXt›Ÿ·X\w…¢¥¨É £ÇŒµÆÍëV_€ƒŒ­w€¡„­¹Â㈦†¬•ž»˜¡¾r{˜}†£‘˜µÈÌãptŽ¯´Êw|yŽv|Šz}Šuw„mo|dfs\^kVXePR_OQ^UWd\^khjwz|‰‰‹˜†„’ƒ~|Š{y‡tr€kiw`^kZXcVT_XVa][f][f^\gcalljusq|zxƒvtrq{-,2+*/-,165:MLQmlq~}ƒ—• ’›“‘œŽ™‹‰”}ˆ…ƒŽ„‚jhsGEPCALCAL@?F>=B>=B>=B>=C>=C>=C>=BKJOgfkœ› ]\aEDI²®±kgh•‘’}~{wxtpqfbaYVQVSOUQMXUQWTPWSO\PKeXSi]Xthcoc^xkf‡{vˆ|w„xs„xsˆ|v‰}wŠ~y‚vqˆ|wŽ|‹zƒ~Ž‚}‹x‰€vŠ‚x…|r{siŠwŒ„z‹ƒy‰€v†}s‚yo…}r„{qricofakb]i`[d[VZQLHE@<=8BC>RSNefa-.)!"((*778UURœ–ˆŠ†ˆ}€z{|wvwrpqlklgefacd_de`fgblmhstoxyt{|x{€~ƒ‚††ˆŒ‘––œ¡¡«­­³³µ³³´±±²­­®««¬ªª¬®­³¶µ»³²·¥¤©¡ ¦œ¡—™š—›š•™˜Œ‰Œ|€jnmswvx|{w{zx|{w{zrvueih^baW[ZNRQBFE/32"&% $# $# $##"#"$ $$$#("',&16/BG@JOHLQKGLF@E?@E>385'+.%),#'*#'*"&)"&)>?T]^sjk€op…QRgPQfyy“bb~TTpXXt``|vv’ŠŠ§sr’vu•Œ‹«ihˆˆˆ§œœ¼šœ»‹Ž­‡Š©”—¶hkŠX[z_b¨­ÆRVq„ˆ¥³¶ÖšÁ†‰®ºÁá?Ghv~Ÿdlƒ‹§ÔÜñrz˜ƒ‹¨–ž»œ¤Ábj‡x€¨¯ÌÂÇàrvµºÑw|~ƒ”yŽux…ln{bdqWYfNP]KM[OQ^VXebdqnp}y{‰~€ƒ‘Šˆ—…ƒ’€~Œyw…us‚rp~trususwu€{y…}{‡‹‘š¦¤°·µÁÌÊÖÂÀÌÁ¿Ë*).('++*/-,0437549MLR¸¶¿¥£­¨¦¯¥£¬£¡ª•“œ¡ž¨š˜¢omv97@53<53<21700310321433633643798C>?D?;?>7;?37;048.36,04*.256K‚—¥wxUVk=>SttŽff‚\\xLLhllˆvv’zz—{}œvy˜xz™]_~„‡¦¨ªÉ•˜·“²¯˜›ºy|›be„gk‰”—µJMlŠ¬—š¹’•µ~ ÈËæ=A`x|›‚†¥“¯ÅÉ䀄 ŠŽ©‰Žªšž¹puy~™ª®ÆÈÌãx|—Ÿ£½‚† nrcg€[]pTUfLM_GHZHIZOPbXYkbctmo€wx‰yzŒ{|Ž|}~‘~‘~‚‘‡„—‹ˆ›‘Ž ™–¨š¬™–¨›˜ªŒ‰›xu‡‚“„•†ƒ—…‚–‡„˜Š‡š/.4(())))---...../;::†‚~zy|xwqmkxtsda`\YWOKJ>;91.-2.-2.-3//3014012./1-.2./DAAfb`vspgdb-)'}yw•‘Œ…‡ƒŽ†‰€|…|xwr}upvqvqwr‚yt†}x‰€{Œ‚}”Š…—‡…‘‡‚—ˆœ’›—‹”‰ˆŽ„‚‰}ƒzx~yvˆƒ€Š‡š•’˜•›–’ œ•zvookdliankcrogvsmwsornjniehc`a\XYVRYWWZYXVVUPONDDC;;:554EEDbbb||{ŒŒ‹***###...;;;AAA]]]‰‰‰‰‰‰Œ“””•“”ƒ„rsnstp‚‚‚ŠŠŠ‚‚‚uuurrqffeZZ[PPQMMNVVWddfkkloomtupxyt~zˆ‰ƒˆ‰ƒ™š“¦¨œ¤¦š§© ¢—¢¤˜¥¦š¨¨ ¤¤¢¢œšš“––””Ž’”‘•–•™š—›‘•–‰Ž‚†‡sxuhmiZ_[MRNAFB495%*&$ $ #"! ' *!+!&1%/$*4/5?06@.4>+1;,3<17A4:D4;F4;F5;G8=I7>I7>I./D}~““”©wxTUj89Nll†ppŒff‚IIejj†‡‡£„…¡ˆ‹ª„£tw–NQp¯²µÔ“²‘”³“²–™¸x{š[^}nq‹Ž­NQp…ˆ§‡Š©£¦ÅmpÊÍìHKjps’«®ÍœŸ¾®±Ð‘®… „ˆ£¡¥À{šqu©­ÆÂÆ߄ˆ£”˜³‚†¡mqŒae€\]rWXjQRdNOaMN`RSe\]ohi{qr„yzŒ|}~‘€’‰†™‰†™‰†™ŒŸ£ ³§¤·œ™¬Š‡šŠ‡šŒ‰œ¢Ÿ²Ž‹ž‰†™‹ˆ–“§Š‡›¡Œ‰¬©¼65:,,,+++---......,*)MIF_[Xa]Zhdanjg}yvokh8413/,3/,2.+2.+3//401401512=9::67IEEkgdokhXTQ-)&€|y’Ž‹…‘ˆƒ†ˆzxsypktkfqhcqhcridxoj|snvqŠ|‘ˆƒ”‹†”‹†›’¤›–«¡Ÿ­£¢©Ÿž¢˜—œ’‘—Œ‘‰‡‹ˆ˜”‘Ÿ›˜¤ §£ ¥¡ž›•|unkdtqjvslyvo{xrzvsuqnokhhdaa]ZYWSZYZZZZTTTIII>>>;;;BBBWWWpppUUU$$$ ,,,333555...YYY__^_`]ab]bc^ab][\W[\Wbb_fffeee\\\```^^^SSSJJFGHCTTPqrn‹Œˆž™¤¥Ÿ¦§¢©ª¤§¨¢¡¢¢£§¨¢ª¬¡©«Ÿ©« ¦¨¦¨§©ž£¤žžž™˜™˜”——“““Ž‰Œ‰‘ˆ‹‚†z}ux|hmkZ_\INK?DA5:7).+!&#$!$!"!"$%"'3$*6%+7(.:(.:(.:(.:'-9%+7%+7&,8&,8&,8%+7%+7&,8,2>,2>,2>01Fcdy‚—tuŠWXm<=Rhh‚{{—oo‹KKg^^z˜˜´žŸ¼”–µ|žtw–Y\{“²¬¯Î¯“–µŽ‘°‘”³wz™TWvil‹~ WZy–™¸…ˆ§–™¸mpÀÃâSVuru”©¬Ë±´Ó‚¡ŠŽ«y}˜€„Ÿ ¤¿‚†¡fj…šž¶ÅÉᄈ£“—²nrvz•uy“uw‹st†op‚cdvWXjSTfTUgZ[mabtghzjk}lmnour…ur…ur…ur…wt‡tq„qnspƒwt‡xuˆ~‘~‘ˆ…˜|y‰‡„”zwˆmj{VSdURb0/4000---.........(&%`\Y”‹ˆ}yv|xu“Œ`\Y51.7303/,2.+2.+3//401401:67YUV?;<955<8595251.62/yur…€}Š‚~†Ž…€‡~yvqvmhpgbpgbpgbsje~upxs…|w‰€{‡‚“Š…”‹†š‘Œ¡˜“©Ÿœ¯¥¤¬¢¡ –•—Œ’ˆ‡Œ„‚ŽŠ‡—“Ÿ›˜›—”žš—œ˜”•’Œ|uwtm|u~w€}v€}x~zwyursolmiffb__\Y\\\ZZZRRRFFF<<J:@L;AM)/;%+7!'3%1%1$0".".".=>STUjmnƒlm‚QRgIJ_ee~‚‚žuu‘TTpPPl¢¢¾¾¾Û’±nq|žX[z¯ÆÉ䤧Ƙ›º‡Š©ˆ‹ª|žZ]|_bil‹mp¹¼Ûƒ†¥Œ®{~œŸ¾fiˆ}€Ÿ©¬ËÒÕóps’‰ªw{–‚†¡‰¨†Š¥FJe¡º¾Âۍ‘¬«¯Êhl‡w{–osoq…op‚op‚jk}cdv^_qXYkTUgTUgVWiabtefxhi{olro‚qnspƒwt‡yv‰|yŒzwŠpm€datXUhSPcMJ[DBO=;H97D*(6&$2&$1-,0000///000000222+)(XTQ”“Œ‚~{~zwvroEA>51.51.95240-730954@<=:67@<=IEF;7840/1-+1-*2.+;74|xu„€}Œ…”‹†”‹†Š|€wrulgofapgbqhctkf}to‚ytƒzu„{v…|w†}x‰€{Œƒ~„{v‡„ž”“œ’‘“‰ˆ‹€…{z€xv~zw…~Œˆ…‘Š”‘ŠŒ‰„ƒ€y€}vƒ€y„z„zƒ€z{xzvsuqnplimififb```VVVJJJBBBBBBPPPiiizzz{{{:::%%%""" '''...444%%%MMM€nnkklgjkfijepql~zˆ‰†ŒŒŒ†††sssgggYYXHIBPQKmng‰Šƒ“”Ž•–••“••–““”ŽŽ‡‡ˆ‰‰Š‰‰ŠŠŠŒŽ‡‡Š††ˆ„„†€ƒ‡|€†z~„qv{lqvkotimtfirben`ck_bkWZcPS\GKPADI8;@037*-2%(-!%)#'+(+0.167:>?BGGKRNT_MS_LR^IO[IO[HNZFLXDJVCIU?TRShef{cdyLMbMNccc}||˜zz–OOk99U¦¦Â¯°Í‚…¤\_~”—¶[^}†‰¨åèú·ºÙž¡À„£gj‰–™¸jmŒ^a€PSr¢¥Ã­°Ïƒ†¥Š¬y|›mpmp~ »¾Ý×Úùgj‰y}šy}˜–šµ{š”¯@D_”˜³¯³Î˜œ·±µÐsw’imˆ\`z^`t_`r_`r_`r^_qZ[mVWiPQcOPbNOaUVh[\nabtfcvgdwgdwro‚…‚•‚’nk~b_rTQdHEX<9L1.A'%5%#-$"-#"," +" +" +,,///////000111333-,*]YV¤ œ˜•“Œ‰…‚jfcD@=HDAPLIYURc_\<85^ZZ‹‡ˆQMN8455124013/.1-*1-*1-*C?DP:@L8>J7=I7=I8>J8>J8>J<=RTUjhi~abwJK`MNcbb|||˜yy•KKg..J}}™””±€ƒ¢WZy¯be„…ˆ§âåû»¾Ý ¿{~:=\Œ®Œ®RUtY\{ÎÑ陜»–™¸¯{~cf…eh‡™œ»ÌÏîÏÒðps’mq… ¬°Ë}œ‰¨JNi‹ª´¸Ó›ŸºŸ£¾~‚cg‚PTnRSgRSeRSeSTfSTfRSePQcLM_JK]HI[FGYHI[KL^SPcVSf^[nifyli|\YlEBU96I/,?'$7# 3# 3# 0! ("!("!( & & &,,.//////0001113330.-b^[³¯¬›—”‘Š’Ž‹€|ywspnjgrnk‰…‚š–“PLIVRQ†‚ƒC?@1-.1-.2./3//1-*1-*1-*=96SOLjfc|tpxs€wr{rmypkvmhvmhwniypkzql|sn‚yt‚ytxsxsxs‚yt‡~y~upvs„zy‚xw|rqukjpfeldblhesolyur~zw}z{wtqkqngtqjvslurkurktpkpliokhlheea^[WTROKDDD???999AAAUUUgggyyySSS((('''&&&""" '''222;;;(((@@@rrrkkhijehidnojvwrz{vyzwsssrrrooocccYYYOOPJHSLJUTR]XVaWU`ZXc`_fa`f_^d_^d`_e`_eb`hhfskivljxnlymkxkiwbhuaiwbkxdlzem{em{fkyegubdq]_mSUcJLZBDR68C02<)+5')3),6,.946@;=GADNGJTOR\TWaZ]g[`lX^jW]iY_kY_kY_kX^jV\hTZfRXdOUaMS_LR^LR^MS_OUaPVbPVbPVbJH^][qbawUSiMKaXVlii‚{{—vv’SSo55QRRnŸ‰Œ­gj‹cf‡ru–˜›¼ÓÖö®±Ô–™»sv—+.Lei† ¤¿GKhqt•ÊÍ릩ʗš¼±‚£\_\_€¼¿ÜÚÝù½Àጏ±il‹†Š§°´Ñz~›™œº\`|ˆŒ©»¿Û›Ÿ¹„ˆ {€–[`uFL_IK]KL^MN`PQcQRdQRdQSdRSbQSbPQaMO^JL[HIXJJYJJZNN]GGVCCR@@P99H,,;$#3$#3##2! 0 -!) ( '''&'&*+*-,,///21143250/0ea`¼¸·‹Œ‡ƒ‚•‘›–•ž—•ž—”qigzx›”’zsq965;:;4230./.,-.--/-./--/.,/.,20/431IGFicbkedyrq{tszts|vu|vs}xsyt}wr{vq~xs~xt|vt|vu}wv}vu€zy{tsvroxtpuqmolhjgcfc_b_\ca^jifpomsrosroqpmhgffddfeegfefeeecdecehfkjhnechZX]LJOFDI56<139./512867=;C46;>?ETV\SU[STZRSZSU[XY_]_edfmiltimtilsadl\_fWZbWYfVXeUXdUWdUXdVXeTWbSV`OR\JMWHJTHJTHKUJMZMO\OQ^_an^an]`l[bn[cp\cq]eq]eq\cqZ_mUWeQSaKM[ACQ<>L79G.0;+-7'*4*-7/2<46A;>K@ESHLZOSaTXfVZhX]k[aoZ`nY_mSYhSYhSYgS\iS\iR[hQ[gQZgPZgR[jW`p[dt_hw]fvZcrV_oSOf[WnWSjKG^QMdb^uqo‰||˜||˜dd€AA]GGcŸƒ…¨eh‹VY|†‰¬«®ÑÌÏñ¨ªÏ™›Á{~Ÿ?C`OSo€„JNiŒ²¼¿âº½àlo’“¶†‰¬CFigjâåúÉÌꡤǠ£ÆilŒ|ž°³Ò‚…¤˜›ºSVu‹Ž¬ÌÐ鐔®sx|•[apGM[IK\LM_OPbRSeSTfSTfTVeUWdUWdUWdWYfZ\i\^kWYfNP]EGTBDQDFSFHUKMZ@BO.0=%'4!#0 "/ , ) ) )((("!'%$))(--,1105327204ZVWÁ½¾™•–Œ‘Ž¡œ©ŸŸ³©¨Ž„ƒpfeŸ•”ž”“>::222222000..................000000:::LHIFBC`\]‚~‚~}~}|†ƒ~‡„„|‚z‚z‚z{|~z{}yz{wxxtuoklhhdlmgmnhhic`a[]^XZ[V\\ZccahhfggeeeceecZZ]XW\XW\TSXSRWTSXXW]a_jdbma_j\Ze[YdYWbEGPADM>AJ69B14=.1:017216/.3/.3.-2(',##($'014=;>GHKTMPYRU^OQ]NP]NP]QS`UWdZ\i^bn^dp\bnZ`lTZfSYeRXdY_kY_kY_kX^j[amY_kSYeQWcRXdNT`KQ]KQ]KQ]KQ]KQ]KQ]LR^LR^LR^JP\JP\JP\IO[HNZEKWDHTACP<>K68E02?,.;)+7*-7+.7,/803<69B;>G@DQCIYKQaNTdNTdNTdNTdMScMScMScLRbLRbLRbIRaGSaGSaIUcKWeKWeO[jWbt\gy^i{YdvT_qP[mZVmb^uXTkFBYTPghd{us›„„ ttPPl@@\mm‹qt–dgŠil“¶¦©Ìº½àž ÆšœÁ‚…¦X[y`d€hm…QUp®±Ô³¶Ø±´×KNq§ªÍˆ‹®'*M³óöÿ¯²Ðqt—¦©Ìps“wz™²µÔ~ ¯_b„¢Ó×¯fk‚„—]brJP^KM_OPbSTfUVhVWiVWiVWgUWdUWdVXeZ\i]_l^`mSUbKMZACPACPCEREGTLN[KMZ:Gadmjmvknwmo{mo|mo|kmzhjwegtaeq^dp\bn[am]co^dp_eqhnzhnzhnzdjvgmyekw_eq\bn_eqagsagsagsagsagsagsags`fr`fr`frZ`lX^jX^jU[gPVbKQ]FJW@BO:@MBDQDFSGIVIKXMO\LN[=?L(*7 "/ !-" +" +" + )" + ($! %#"'%$)+*/549647@<=ÖÒÓ¾º»ÇÃÄ®ª««§§½³³¾´³·­¬¤š™‚xw{qp<87444333000///.........---......------2//IEFuqrŒˆ‰’Ž™•–œ˜™ œœŸ›œžš›”‘”‘„€}yztpqiefc_`[WXUSTVVVUUUUUUVVVUUUTTUWV[ZY^\\`__cbafcbg`_d`_d_^c^]b^]b\[`\[a][f][fa_jjhskitdcm`bk]`iZ]fVYbRU^PS\OPVIHM>=B549-,1$#(#$'003<:=FQT]\_h]`idgsgivhjwikxkmzln{lo{jp|hnzgmyflxhnzio{io{hnzhnzekwflxekwciu`fragsflxio{io{io{jp|jp|jp|gmygmygmyflxflxflx`frY_kQWcKO\DFS<>K68E13@.0=,.;,.9/2;36?K@BOFHUJLYMO\TVcY[h]_lXZgACP.0=,-:/-8/-8/-8-+6-+6&$/%$*%$)%$)#"'#"'+*/314734ÕÑÒ¾¿ÈÄŸ´µ°««¸®®»±°¸®­°¦¥—Œe[Z@<<666333111000...---.........---***,,,>:;fbczvw{wxŒš–—Œ‡Š‹†‹‰„‰Š…‹|‚€{€|w|njkjfgeaba]^a]^a]^cadffiihlkknkknooronsut{rqxpovmlsnmtlkrfejcbga`ea`ebafbafbahb`kcaldbmjhsgepcbm]^hZ]fWZcQT]LOXMPYRSYLKP>=B549216)(-%$'//2;8;DBENILULOXVXd[]j_andfshjwjlyjmzgmyhnzio{hnzhnzhnzdjvbht`fr^dp]co]co\bn^dpbhtflxio{flxekwflxflxflxbhtbhtbhtciuciuciu\bnTZfMS_INZDFS;=J35B.0=.0=.0=25?69B9AJCFOHKTOSaRXhTZjV\lV\lTZjSYiQWgQWgQWgOUeNTdLRbISbHTbHTbHTbHTbHTbJVfNYkNYkP[mVasVasVasxt‹vr‰lh73JYUlzvtrŒww“‡‡£‰‰¥~~šhh„gg…y{ž”—º°³Ö¬¯Ò›žÁÃÆ饧̗™¿‡Š«knŒimˆei‚ƒ‡¢´·ÚœŸÂx{žRUx—š½£¦Éy|Ÿ½À㵸ۘ›¾wzŒ²…ˆ©–™¸±´Óx{š„£•˜·NQo³·ÓŠŽ¨z•†‹ŸciyKQ_OQbOPbOPbQRdRSeRSeQSbLN[GIVCER>@M9;H46C<>K?ANBDQKMZOQ^SUbWYf\^k_an_anUWdMO\PQ^VT_VT_VT_WU`][fOMXBAG@?D@?D:9>216.-2/,0/+,ÑÍÎÁ½¾º¶·¥¡¢ ›œ¶¬¬º°¯¶¬«²¨§§œƒyx^ZYIII:::111,,,***((('''***&&&+++(((***522=9:?;=B@?D549##)$'//2;8;DADMFIRFIRHJVKMZNP]TVcY[h[]j]am`frekwio{kq}kq}kq}bhtags^dp\bn[am[amY_kY_k\bn_eq`fr\bnY_kZ`lZ`lZ`lW]iW]iW]iV\hV\hV\hQWcJP\JP\KP\DFS;=J35B/1>/1>/1>57B8;D?KBCPFFSJKXQR_UVcYYf[]i_`mcdqdeqbcodeqhhuigsigskitmkwmkxkiuqpwutztsyontkjpa`f<:?)&)ÃÀøµ¹²®²•’–˜œŸ—š¡™› ˜š”ŒŽ‹ƒ…‹ƒ……‚ƒwwxfegNNO==><<=99;@?AFDF989,*,('))(*.+-,)++(*0,.968GDFQMRLHNQMTWSY^Zae`gZV]c`b[XYOLMROPWTU[XYUTWOOSLKPNMRSSWZZ^]]bjhra`jgepcalgepomxmlrjinfejhglhglonssrx|{„|{ƒut}ljsjhqhgo^_hXYcQS]IJTCDNABLDELFFLEEKGGMKKQ==C$%+#'//3<9=ERV_W[dW[dSVbQT`OR^KN[ILYKNZMP]QVcX]j`dqfjwglyglyditchsbhrafqaeqaeq\amX]iV[gTYeSXdSXdSWdQUaPUaOUaOS`OS`NT`HNZGMYGMYEKWBHTGMYJO[CER;=J46C13@13@13@46A69B:=F=@IADMFIRLP]OUeQWfTZjW]lV\kV\lW]mW]mW]mW]mU[kSYiKUdIUcIUcIUcIUcIUcJVfNYkNYkOZlR]oR]oR]oHH]tt‰rsˆIJ_JJ`hh~rr‹mm‰~~šŠŠ¦›bb~^^}—˜¿hj‘uwÕ×û¤¦Í¯±Ø®­Ö’¹{y¡mkonŽfeƒgg‡¦©Ì¯²Õ€ƒ¦Y\Š°|¢¼¿Ý×Úïtwš³vyœ‚…¨“³„‡¦™œ»{~€ƒ¢Ž‘°df…¸¸Õyy”€€˜Š‹Ÿxz‹\^l\[h[YdZXcTS^OMYIGRHFQKITLJVOMYVT_VU_RP[B@KIGRONXSR]VT_WVa\[ebalcalecnecokitqo{xv„yw…}‹zx†{y‡{y†~|ˆ‰ˆ’Šˆ“„‚ŒŠˆ““‘›b`jFDO†ƒŽƒŒ‰‡‘…ƒŽ†ƒŽ{yƒ{xƒ~|†|‡}z…{yƒ~|ƒƒ‚†~ƒrqvfejgfkjhmrnsfbgNIO;6<0+1.)/'&*'&+)(,,*/,,0-+0.,1/.3/.31/4538438438556767222222666777444222222333555777779<;@>=B>=BQPUSRWTSXa`ea`e^]bdchfejkjo_^cdcibag^]cSRXUTYUTZGFOA?J97B42=42=64?<@M:BM?ERBHTEKXKQ]OUaRXeU[kW]mX^nW]mV\lSYiPZiO[iO[iNZhMYgKWeKVfLWiLWiLWiNYkNYkNYkNOddezfg|KLaIJ_dezrrŒqq›††¢}}™ZZv^^}­¯Ö`b‰dfÌÎô›Ä«­Ô³±Û•’½ywŸgeŠnmlkŠvv–­°Ó £Æ‰Œ¯or•Œ²twšÏÒèÑÔ뀃¦‚…¨ƒ†©}€£Œ¯Š¬’•´‰Œ«y|›œŸ¾\^}¢¡¿””¯uuŽ‘’¦{}Žegugfr`^i_]h][fUS^MKVIGRKITMKVPNYVT_XVaUS^CALIGRPNYWU`ZXc[Yda_jtr}zxƒ|z…|z…ƒŒˆ†‘‚€Ž}‹‚€Ž|zˆrp~uszx…qoz…ƒŽŸ¨“‘œ‡…vtkitŠˆ“wu€…ƒŽ†„‡…€~‰€~‰}ˆ€~‰}{†yw‚|{‚€„~}‚vuzhgledikingbh]X^WRXQLRMHNA@M:=BA@ECBHBAJCALDBMECNGEPHFQGHRGJSKNWMPYMPY@CL!%.!'0/6>@M:C==B?>CGFL=G58A-09&*3(/718@9@HLS[PW_SZbX^iZ`l\bn\bn[am[amZ_iX[bdgnZ]dMPVKNTLOUNQZNQZNQZILUGJSEHQPR^PR_GIVDFSCERDFSDFSCERCERCERGIVEGTCERBGSAGSAGS?EQ>DP>DP@DP@BO<>K9;H8:G46C13@/2,2>-3?.4@.4@.4A17G4:J6?T9:OSTijk€yy“{{—~~š„„ XXt99Uzz™¨©Ðbd‹hj‘ÃÅꏑ¸Ž·–”¿Ž‹¶Šˆ°jia`gf…‘‘± £Æ¼¿âZ]€NQt…ˆ«Š°­°ÓÉÌ힡̝ÀY\x{žž¡Á¢¥ÄŠ¬…ˆ§VYxsv•pr‘••²\\v¡¡¹‡ˆqs„PRaZYe\Ze\ZeWU`US^SQ\NLWLJUNLWOMXNLWNLWNLWYWbb`k_]hfdoecnkit}ˆnlwecnecnfdoecnrp{mkyb`nb`nkiwqo}vt‚uspnyqozmkvsq|xv}{†~|‡|z…†„}ˆxvyw‚‚€‹˜ª¨³ƒŒnlwsq|xw~vuzwv{yx}…„‰†…Šˆ†Œ‡‚ˆ”•‹‘Œ‡ŠŒˆŽˆ†‹…„‰”“˜¢¡¦‡†‹Š‰ŽŒ‘ˆ‡Œ„ƒˆ{zonsjinbbeeeflllwwwsss€€€ˆˆˆ›››ttt‚‚‚yyyllmsrwmlqjinmlqpotrqvmlq[Z_a`eWV[SRWJINLKPIHMKJOPOTPOTTSX_^dGEOVT_ZXcWU`TR]RP[IJSCFOCFODGPCFO?BK;?H:@I?FNDKSLS[PW_SZbW]hY_k[am[am[am[am\aj[^b_bfY]aRVZX\`W[_SV^QT]RU^RU^MPYGJSMO[PR_KMZHJWFHUDFSBDQACPACPACPFHUFHUFHUGLXGMYGMYFLXEKWEKWEIVCER?AN<>K9;H68E35A/2,2>,2>,2>,2>,2>,2?/5E4:J9?O5;K>DTIO_MWfMYgMYgNZhNZhNZhNZjOZlOZlOZlNYkNYkNYkpq†fg|:;P12GPQfpq†{{”}}™~šŠŠ¦]]y44P€ŸžŸÆy{¢_aˆ†ˆ¯‚„«¶”’¼Šˆ²‘¶jhJJj|{š””´’µ½ÀãSVy=@c’µ‘”·¥¨Ì­°Ô”—º•˜»kn’ru™ Á«®Í¢¥Ä†‰©HKjknpr‘š™·NNiÁÁÙuv‹uvˆikzfeqhfqhfq_]h^\g[YdRP[MKVOMXPNYQOZPNYPNY[Ydhfqnlxomxfdoqoz€~‰gepecnfdpigrjhszx„qo}gesgesfdrgeshftgeqecnhfqfdokittr}omxgepecnpnyyw‚nlwUS^kit»¹Ä«©´Š}{†|z…€…yx}}|tsxpotyx}}‚xsy|‚|‚ƒ…Š…‹†‡‰ˆqpurqv Ÿ¤‚†}|~}‚zy~}|ˆ‡Œ~ƒ†…Š~~‚~~~~~~––—††‡ŒŒŒzzz©©©ƒƒƒ}}}vvv”””‡‡‡ŠŠ‹Ž’‰ˆ€…~ƒlkpŒ‹‚†edi]\aRQVHGLEDIIHMKJOWV[ONSONSPOTYX^]\eXVacak\ZdYWbWU`PPZKNWKNWJMUHKTHKTGKTEKRFMTGNVLS[PW_SZbU[fW]iY_jZal[am[am]bjY]^RVXX\]`dfgkmmqtZ]eTW`X[dRU^PS\QT]RU`QS`IKXCERCER?AN=?L?AN?BN?BN@BOBDQCFSHMYHNZHNZJQ\LR^LR^KO\GIVCER@BO<>J8:F57C/2,2>-3?.4@.4@.4A17G3:J6=M5;K>EUIP`HR`FR`FR`HTbJVdJVdKWfMXjMXjMXjLWiLWiLWipq†bcxCDYABWRShno„utŽ~z˜}šˆ„¢d`~;7T{x˜‘“·•˜¼\^‚bd‰z| ‹²Žµy{ ‹Œ±fh‹:<^‰‹¬šœ¾|¢¡¤ÇY\9<_„‡ª–™¼¡£ÉŒŽµ„†¬œžÄfhŽ}¥Ÿ¡Æ¿Â㱴Մ‡ª[^€tw˜|¡™›»Z]zÊÍçjm…uyei|eergepkitmkvhfqhfqcalYWbSQ\QOZOMXSQ\VT_][higuljxqo|sq~xv„{y‡qo|pn|jhupn{rp}ljxkiupnzsq}zx„ywƒvtecn}{†€~‰sq|jhsnlwigrgepgepnlwrp{gep`^icalsq|rp{qozljuvtrqwqpuqpulkpmlqonsgfkb`egfknlqqntxv||z„ƒˆ~}‚wv{…„‰€„‡†‹„ƒˆ|{€~}‚€„„ƒˆ~ƒ}|~~srv€ƒ{z}qqtXX\ŠŠ~‚}|€wvzŒŒ“’–‹Šœ¡™˜‘•mlq€„}|tsxlkpbafYX]RQVIHMGFKPOTYX]SRWSRW[Z_kjo‰ˆŽontrqw`_eRQWTSYOQVGKOEHMDHLCGKEHMGINIJPIJPIJPNOUTUZVX]SW\SX]X\aZ_dOTYRW\OSXMQTJNPMQTUY[Z^a\`c]`e[^cZ^bMPUJNRPSXTX]UX]KOTGKPDGMBEK?CI?EN;AJDP?EQ?FRHW=HX;FW9EV=IZAM^DO`EPbFQcFQcFQcHSeITfKVhno„bcxIJ_NOdTUjmnƒnk†‚}›ƒ~œ|w•`[yE@^zw–’”·¦©Ìor•MPswz“–¹œŸÂnq”„‡ª]`ƒ@CfŠ° Ãqt—Œ²il?Beƒ†©”—º¦¨Ï‹´suœ¨ªÑZ\ƒ‡‰°¤§Ì±´×šÀŽ‘´‚…¨hkŽ‚…¨•˜¹…‰¦ÈÌç|€˜rwŒ_dwkkxkitmkvrp{omxomxmkv`^iSQ\NLWPNYRP[TR]ZXfb`n`^lhftjhvmkytr€qo}zx†mkyljxpn|ljwnlwpnywu€Šˆ“ˆ†‘„‚Š†„•“ž…ƒŽ€~‰wu€~|‡ƒŒus~vtus~jhskitljugepljuhfqfdohfqdcicbgihmqpuutywv{lkpihmgfkmlqgfkonswv{…„‰„ƒˆ|{€}|utylkplkptsxvuzlkp•”™rqvlkpvuzqpunmryx}jinfejzy~}|tsxƒ‚‡Œ‹‰ˆ‡†‹ƒ‚‡}|€…wv{~}‚tsxlkphgl`_d_^cYX]KJOFEJHGLFEJJINQPUTSXZY^hglxw|onsa`eVUZRQVKLPBFI<@C:>A:>A<@C>AECBGCBGCBGJINKJOMMRMOSMQT]ad\`cBFIFJMGKNMQTJNQMQTPTWMQTIMPTX[X\_RVYIMPFJMEILGKNIMPGKNKORKORJNQLPTOU]HOWMT\SZbQX`QX`MT\SZbJQY@GO>EM>EMBHPHKTFIRFIRHKTGJSGJS:=F:=F9AJ>AJ;@K9?K9?KI[=HZ;FX;FX=HZ=HZ=HZ?J\BM_CN`cdydezOPe56K9:OxyŽŠ¥‹†¤qlŠqlŠWRpWRpjg†„§”—ºjmLOrru˜ª­Ð½Àい§‚¥VY|@Cfx{ž‹Ž±Ž‘´y|ŸORuFIl¡¤Ç™œ¿ ¢É“•¼np—†ˆ¯\^…˜šÁ½¿ä £Æ“¶’µ¬¯ÒQTw~¤–™¹Ûßñ”¬®²Ëuzgk~jjvus~dbm_]h`^i`^iVT_TR]US^SQ\US^ZXc`^iljxrp~nlzom{fdrfdrecqhftqo}uszx†~|Šxv„wu‚€‹~|‡nlwa_jŠ‚€‹™—¢‰‡’†„’›©§² ž©†„ŠƒŒ‰‡’‡…xvwu€‚€‹Š§¥°‚€‹„‚Œ’rqvbafonslkponsonsonsyx}|{€}||{€|{€{z€„€„potxw|}|€…€…tsxlkpxw|€…€„zy~ons~ƒwv{hgl]\alkplkp~}‚lkpjinjinkjotsxvuznmrbaf`_d_^cUTYONSKJOGFKDCH;:?=\jg†—š½”—º“¶ad‡CFi£¦É°³Ö‡Š­z} eh‹^a„Ž‘´Ÿ¢Å—š½z} BEhUX{‘”·¦©Ì¯±Ø¦¨Ï{}¤mo–SU|¯±ØÄÆꐓ¶“–¹ Ã”—ºad‡qt–¬¯Ð«¯Ì{š¬°Éˆ¢kpƒffrhfqjhsljuqoz[Yd_]h][f`^idbma_j^\ggepqo}wuƒ_]kb`ngesljxnlzrp~nlzigugesus‚€us~igryw‚wu€gepŠ‚€‹‚€‹|z…igrecnvt}{†}{†‚€‹…ƒŽ…ƒŽ|z…}ˆyw‚Šˆ“˜‹‰”_]h}{†wv|mlqonsihmediqpuzy~vuz~}‚zy~ƒ‚‡qpuŒ‘›šŸŠ‰Ž…„‰|{€ƒ‚‡‹Šƒ‚‡vuzvuzzy~yx}€„~}‚Ž’‰ˆ~}‚wv{mlqwv{lkphgla`eLKP^]bbafYX]a`egfklkpnmrcbgPOTIHMJINLKPONSMLQUTY`_dlkphglkjotsxmlqjinjinedihgl~}‚†…Š{zefjdhkosvosvaehX\_[^aSRWSRWXW\MLQWV[XX]TWZOSVOSV[_bY]`swznrumqteilcgjeilmqtswzeilaehaehdhk_cf]adbficgj]ad^beZ^arvysw{cjrMT\mt|dkshowkrzipxdksfmuahp^emW^fGLTNQZQT]JMVBEN>AJ;>G=@IFIRILU?BK=@I=@I>BM@FRDJVFLXDJVCIUBIU@KZ=IW;GU?KYBN\FR`KVgMXjOZlT_qVasVasVasVasU`rT_qR]oOZlNYkmm‡nnˆff€KKeAA[WWqjh„|™roŒƒ€TPn96Sdaš›¾Ÿ Ã™›¾z{Ÿ::_•–ºº½à–™¼qt—TWzcf‰œŸÂ£¦É—š½z} ADgqt—z} §ªÍ½¿æ¦¨Ï‹´rt›\^…·¹ÝÈÊ膈­“¸ £È—™¾mo”uwœ§ªÌ©¬Ì~‚Ÿ£§Á™žµin‚oo}hfrjhukiudbmgerus€|z†}{ˆ‘›‚€Œzx…ˆ†“‹‰•‡…’xv‚|z†wu‚rp}£¡°Šˆ™sphew~{Œ€~xu…ljvfdovt‹‰”{y„~|‡zx„{y†Œ}‰gerjhuvtƒŒ†„{y„~|‡vtwu€wu€ˆ†‘}{†Štr}tr}wv~qpvsrxzy€povwv|‚‡€†~„}|‚‡†jio‹Š¼»Á}|ƒvu|€‡–•œxw~srxqpuxw|xw|ˆ‡Œ|{€˜—œxw}|{‚™˜Ÿzy`_ejioedj_^c]\aRQV_^cTSXTSXYX]`_d`_dedia`eSRWKJQJIPKJPMLSQPWdciyxrryvv|mmsjjpeelaagfflkkqiioopvxx~~„kmsjmrhkq}€†UX]GJOJLRNMSONUUT[WV]VU\[Za\^bVZ]SWZTX[MQTlpsadigkpjnsorwhkpaejnqvaejmqvbgkdininrinrw|z†imthlsinthntinujpz}„½ÄÎmt~u|…|‚Œu{ƒns|dir`en\ajV\dMR[MQ\PT^NR\JMXDISBEPRU^UXaJMV>AJ:=F8;D7DPFLXSYe]coX^jJP\CIUCIUCIUFLXEKWDJVGM\FL\DJZFK[HM]HM^HM`INcKPeNSgSXlUZnV[pts“ts“rq‘baKJj>=]‡†¥ww“77SWWs€€œ|{™ˆ†ª’µ‡…ª~|¡sq–nm‘¬­Ñ’•¸QTwMPs„§¦©Ì›žÁ_b…ux›mp“fiŒ§ªÍkn‘ÐÒð®°Ô57^›Ä€‚©±³ÙŠŒ³~€§–˜¿¨ªÑ‰‹²~€§|~¤´¶Û¢¥Èru•¡¥Âz~˜z~•tt„tr€}{‰|zˆyw…}‹usigupn|tr€zx†…ƒ}ˆ~|‡ŽŒ—yw‚dbmomxrp|ƒwu„Šˆ–›„‚‘yw„vt†„…ƒŽwu€omxtr}~|‰yw…sqrp~|zˆmkymkxfdofdopny€~‰omxus~wu€wu€sq|xvjhsqoz}{†qoznlwrp{rp{us~zxƒŠ}ˆ~|‡Šˆ“}{†zxƒ{y„us~us~„‚us~jhsnmu{z€…ons`_dnmrmlqdbl][f[YdQOZZXcSQ\KJQDCHEDIJIN[Z_hglihmihmbafbaf]\aUTYPOTJHQKITKITNLWPNYQOZXXbilu{~‡loxvy‚mpyloxUXaX[dOR[wzƒwzƒjmvps|[^gadm[^g_bkben\^g`^i[Yd^\g`^iigrbak^`ehloaehZ^a[_bimp–hktben`clRU^WZcW[dZ`hMT\LS[‚‰‘u|„¤«³ƒŠ”ˆŽšš ¬¡§³”š¦…‘…‘w}‰ourx„sy…pv‚kq}`dnWZcX[d_bk^ajY\eZ^hjp|gmyekwgmyekwelw\_i`cladm_bkX[dPS\FJU=CO@FRMS_SYePVbNT`LR^MS_MS_LR^JP\HNZGMYGMYFMYKQ]MT_LR^IO]FK\GL^JOaNTeLQcIOaposr’pokjŠQPp?>^ih‡©‚‚ž//K<DPEKWEKWAGS>DP;AM + + + + + Garden of the Gods, Colorado Springs, CO, US + 20051112 + Visiting Garden of the Gods in Colorado + + + diff --git a/Pictures/20060429_D-Link_DE-809TP.jpg b/Pictures/20060429_D-Link_DE-809TP.jpg new file mode 100644 index 0000000..1b5adf1 Binary files /dev/null and b/Pictures/20060429_D-Link_DE-809TP.jpg differ diff --git a/Pictures/20060429_chello_extreme.png b/Pictures/20060429_chello_extreme.png new file mode 100644 index 0000000..3644a83 Binary files /dev/null and b/Pictures/20060429_chello_extreme.png differ diff --git a/Pictures/20060513_board/1280/dsc03308_1280.jpg b/Pictures/20060513_board/1280/dsc03308_1280.jpg new file mode 100644 index 0000000..ff30ca5 Binary files /dev/null and b/Pictures/20060513_board/1280/dsc03308_1280.jpg differ diff --git a/Pictures/20060513_board/1280/dsc03309_1280.jpg b/Pictures/20060513_board/1280/dsc03309_1280.jpg new file mode 100644 index 0000000..353faa3 Binary files /dev/null and b/Pictures/20060513_board/1280/dsc03309_1280.jpg differ diff --git a/Pictures/20060513_board/PhotoPage.shtml b/Pictures/20060513_board/PhotoPage.shtml new file mode 100644 index 0000000..83f79e3 --- /dev/null +++ b/Pictures/20060513_board/PhotoPage.shtml @@ -0,0 +1,32 @@ + + + + + +Pictures - http://vanrenterghem.biz + + + + + + + + + + + + + +
+Description: The surfboard is ready to take its first dive in the water this year!!!
+People:
+Location: Redingenhof, Leuven, BE

+
+Description: The surfboard is ready to take its first dive in the water this year!!!
+People:
+Location: Redingenhof, Leuven, BE

+
+ + + + diff --git a/Pictures/20060513_board/dsc03308.jpg b/Pictures/20060513_board/dsc03308.jpg new file mode 100755 index 0000000..c682573 Binary files /dev/null and b/Pictures/20060513_board/dsc03308.jpg differ diff --git a/Pictures/20060513_board/dsc03308.jpg.xml b/Pictures/20060513_board/dsc03308.jpg.xml new file mode 100644 index 0000000..0a93aa8 --- /dev/null +++ b/Pictures/20060513_board/dsc03308.jpg.xml @@ -0,0 +1,11 @@ + + + + The surfboard is ready to take its first dive in the water this year!!! + + Redingenhof, Leuven, BE + 20060513 + + + + diff --git a/Pictures/20060513_board/dsc03309.jpg b/Pictures/20060513_board/dsc03309.jpg new file mode 100755 index 0000000..6e7a325 Binary files /dev/null and b/Pictures/20060513_board/dsc03309.jpg differ diff --git a/Pictures/20060513_board/dsc03309.jpg.xml b/Pictures/20060513_board/dsc03309.jpg.xml new file mode 100644 index 0000000..0a93aa8 --- /dev/null +++ b/Pictures/20060513_board/dsc03309.jpg.xml @@ -0,0 +1,11 @@ + + + + The surfboard is ready to take its first dive in the water this year!!! + + Redingenhof, Leuven, BE + 20060513 + + + + diff --git a/Pictures/20060513_board/index.shtml b/Pictures/20060513_board/index.shtml new file mode 100644 index 0000000..195dc5f --- /dev/null +++ b/Pictures/20060513_board/index.shtml @@ -0,0 +1,32 @@ + + + + + +Pictures - http://vanrenterghem.biz + + + + + + + + + + + + + +
+Description: The surfboard is ready to take its first dive in the water this year!!!
+People:
+Location: Redingenhof, Leuven, BE

+
+Description: The surfboard is ready to take its first dive in the water this year!!!
+People:
+Location: Redingenhof, Leuven, BE

+
+ + + + diff --git a/Pictures/20060513_board/thumb/dsc03308_thumb.jpg b/Pictures/20060513_board/thumb/dsc03308_thumb.jpg new file mode 100644 index 0000000..5945039 Binary files /dev/null and b/Pictures/20060513_board/thumb/dsc03308_thumb.jpg differ diff --git a/Pictures/20060513_board/thumb/dsc03309_thumb.jpg b/Pictures/20060513_board/thumb/dsc03309_thumb.jpg new file mode 100644 index 0000000..ef730fc Binary files /dev/null and b/Pictures/20060513_board/thumb/dsc03309_thumb.jpg differ diff --git a/Pictures/20060513_board/xml_description.xml b/Pictures/20060513_board/xml_description.xml new file mode 100644 index 0000000..0a93aa8 --- /dev/null +++ b/Pictures/20060513_board/xml_description.xml @@ -0,0 +1,11 @@ + + + + The surfboard is ready to take its first dive in the water this year!!! + + Redingenhof, Leuven, BE + 20060513 + + + + diff --git a/Pictures/20070206_Domburg/1280/dsc03492_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03492_1280.jpg new file mode 100644 index 0000000..868400e Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03492_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03493_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03493_1280.jpg new file mode 100644 index 0000000..3c007a1 Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03493_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03494_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03494_1280.jpg new file mode 100644 index 0000000..0095bd4 Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03494_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03495_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03495_1280.jpg new file mode 100644 index 0000000..6c30ed0 Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03495_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03496_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03496_1280.jpg new file mode 100644 index 0000000..93767bb Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03496_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03497_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03497_1280.jpg new file mode 100644 index 0000000..4825d69 Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03497_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03498_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03498_1280.jpg new file mode 100644 index 0000000..91a8243 Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03498_1280.jpg differ diff --git a/Pictures/20070206_Domburg/1280/dsc03499_1280.jpg b/Pictures/20070206_Domburg/1280/dsc03499_1280.jpg new file mode 100644 index 0000000..2004db4 Binary files /dev/null and b/Pictures/20070206_Domburg/1280/dsc03499_1280.jpg differ diff --git a/Pictures/20070206_Domburg/dsc03492.jpg.xml b/Pictures/20070206_Domburg/dsc03492.jpg.xml new file mode 100644 index 0000000..56e4ffc --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03492.jpg.xml @@ -0,0 +1,11 @@ + + + + The recipe for an epic Tuesday afternoon in Domburg... Get there while it is freezing temperature and snowing... + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03493.jpg.xml b/Pictures/20070206_Domburg/dsc03493.jpg.xml new file mode 100644 index 0000000..a46dd1e --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03493.jpg.xml @@ -0,0 +1,11 @@ + + + + It was snowing dude! + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03494.jpg.xml b/Pictures/20070206_Domburg/dsc03494.jpg.xml new file mode 100644 index 0000000..c2515ee --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03494.jpg.xml @@ -0,0 +1,11 @@ + + + + Epic Tuesday in Domburg - this was while the tide was still coming in! + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03495.jpg.xml b/Pictures/20070206_Domburg/dsc03495.jpg.xml new file mode 100644 index 0000000..c2515ee --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03495.jpg.xml @@ -0,0 +1,11 @@ + + + + Epic Tuesday in Domburg - this was while the tide was still coming in! + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03496.jpg.xml b/Pictures/20070206_Domburg/dsc03496.jpg.xml new file mode 100644 index 0000000..c2515ee --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03496.jpg.xml @@ -0,0 +1,11 @@ + + + + Epic Tuesday in Domburg - this was while the tide was still coming in! + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03497.jpg.xml b/Pictures/20070206_Domburg/dsc03497.jpg.xml new file mode 100644 index 0000000..c2515ee --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03497.jpg.xml @@ -0,0 +1,11 @@ + + + + Epic Tuesday in Domburg - this was while the tide was still coming in! + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03498.jpg.xml b/Pictures/20070206_Domburg/dsc03498.jpg.xml new file mode 100644 index 0000000..6b89d00 --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03498.jpg.xml @@ -0,0 +1,11 @@ + + + + Some of the snow stuck. + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/dsc03499.jpg.xml b/Pictures/20070206_Domburg/dsc03499.jpg.xml new file mode 100644 index 0000000..3a6ba89 --- /dev/null +++ b/Pictures/20070206_Domburg/dsc03499.jpg.xml @@ -0,0 +1,11 @@ + + + + It is not the same as actually leaving footprints in the snow while walking towards the water, but it came close. + + Domburg, NL + 20070206 + Epic Tuesday in Domburg, Feb 2007 + + + diff --git a/Pictures/20070206_Domburg/index.shtml b/Pictures/20070206_Domburg/index.shtml new file mode 100644 index 0000000..3c540a9 --- /dev/null +++ b/Pictures/20070206_Domburg/index.shtml @@ -0,0 +1,80 @@ + + + + + +Pictures - http://vanrenterghem.biz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Description: The recipe for an epic Tuesday afternoon in Domburg... Get there while it is freezing temperature and snowing...
+People:
+Location: Domburg, NL

+
+Description: It was snowing dude!
+People:
+Location: Domburg, NL

+
+Description: Epic Tuesday in Domburg - this was while the tide was still coming in!
+People:
+Location: Domburg, NL

+
+Description: Epic Tuesday in Domburg - this was while the tide was still coming in!
+People:
+Location: Domburg, NL

+
+Description: Epic Tuesday in Domburg - this was while the tide was still coming in!
+People:
+Location: Domburg, NL

+
+Description: Epic Tuesday in Domburg - this was while the tide was still coming in!
+People:
+Location: Domburg, NL

+
+Description: Some of the snow stuck.
+People:
+Location: Domburg, NL

+
+Description: It is not the same as actually leaving footprints in the snow while walking towards the water, but it came close.
+People:
+Location: Domburg, NL

+
+ + + + diff --git a/Pictures/20070206_Domburg/thumb/dsc03492_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03492_thumb.jpg new file mode 100644 index 0000000..362a822 Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03492_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03493_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03493_thumb.jpg new file mode 100644 index 0000000..9065cbb Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03493_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03494_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03494_thumb.jpg new file mode 100644 index 0000000..6d9f036 Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03494_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03495_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03495_thumb.jpg new file mode 100644 index 0000000..999ae29 Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03495_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03496_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03496_thumb.jpg new file mode 100644 index 0000000..e944cdb Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03496_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03497_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03497_thumb.jpg new file mode 100644 index 0000000..f97741e Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03497_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03498_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03498_thumb.jpg new file mode 100644 index 0000000..b58f5c9 Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03498_thumb.jpg differ diff --git a/Pictures/20070206_Domburg/thumb/dsc03499_thumb.jpg b/Pictures/20070206_Domburg/thumb/dsc03499_thumb.jpg new file mode 100644 index 0000000..65b86f2 Binary files /dev/null and b/Pictures/20070206_Domburg/thumb/dsc03499_thumb.jpg differ diff --git a/Pictures/200707_Oz/DSC00787.JPG b/Pictures/200707_Oz/DSC00787.JPG new file mode 100644 index 0000000..fd3a450 Binary files /dev/null and b/Pictures/200707_Oz/DSC00787.JPG differ diff --git a/Pictures/200707_Oz/DSC00807.JPG b/Pictures/200707_Oz/DSC00807.JPG new file mode 100644 index 0000000..0f34810 Binary files /dev/null and b/Pictures/200707_Oz/DSC00807.JPG differ diff --git a/Pictures/camblog/06-06-04_1551.jpg b/Pictures/camblog/06-06-04_1551.jpg new file mode 100644 index 0000000..ea29452 Binary files /dev/null and b/Pictures/camblog/06-06-04_1551.jpg differ diff --git a/Pictures/camblog/06-06-04_1552.jpg b/Pictures/camblog/06-06-04_1552.jpg new file mode 100644 index 0000000..da79053 Binary files /dev/null and b/Pictures/camblog/06-06-04_1552.jpg differ diff --git a/Pictures/camblog/06-06-04_1553.jpg b/Pictures/camblog/06-06-04_1553.jpg new file mode 100644 index 0000000..21add0d Binary files /dev/null and b/Pictures/camblog/06-06-04_1553.jpg differ diff --git a/Pictures/camblog/1085518788.jpg b/Pictures/camblog/1085518788.jpg new file mode 100644 index 0000000..82ef828 Binary files /dev/null and b/Pictures/camblog/1085518788.jpg differ diff --git a/Pictures/camblog/20040607/07-06-04_1020.jpg b/Pictures/camblog/20040607/07-06-04_1020.jpg new file mode 100644 index 0000000..8765990 Binary files /dev/null and b/Pictures/camblog/20040607/07-06-04_1020.jpg differ diff --git a/Pictures/camblog/20041225_chateau_belair_1985.jpg b/Pictures/camblog/20041225_chateau_belair_1985.jpg new file mode 100644 index 0000000..fc9993a Binary files /dev/null and b/Pictures/camblog/20041225_chateau_belair_1985.jpg differ diff --git a/Pictures/camblog/20050227_FOSDEM.jpg b/Pictures/camblog/20050227_FOSDEM.jpg new file mode 100644 index 0000000..76970fd Binary files /dev/null and b/Pictures/camblog/20050227_FOSDEM.jpg differ diff --git a/Pictures/camblog/20051224_Pommard_1998.jpg b/Pictures/camblog/20051224_Pommard_1998.jpg new file mode 100644 index 0000000..b0ee903 Binary files /dev/null and b/Pictures/camblog/20051224_Pommard_1998.jpg differ diff --git a/Pictures/camblog/index.txt b/Pictures/camblog/index.txt new file mode 100644 index 0000000..6ec1544 --- /dev/null +++ b/Pictures/camblog/index.txt @@ -0,0 +1 @@ +1085518788.jpg::[Fwd: frederik ]::Test

diff --git a/Pictures/camblog/tiny1085518788.jpg b/Pictures/camblog/tiny1085518788.jpg new file mode 100644 index 0000000..82ef828 Binary files /dev/null and b/Pictures/camblog/tiny1085518788.jpg differ diff --git a/Pictures/des_avonds_aan_het_zwembad.jpg b/Pictures/des_avonds_aan_het_zwembad.jpg new file mode 100755 index 0000000..3400c4d Binary files /dev/null and b/Pictures/des_avonds_aan_het_zwembad.jpg differ diff --git a/Pictures/dsc00383_thumb.jpg b/Pictures/dsc00383_thumb.jpg new file mode 100644 index 0000000..b8e9505 Binary files /dev/null and b/Pictures/dsc00383_thumb.jpg differ diff --git a/Pictures/index.shtml b/Pictures/index.shtml new file mode 100755 index 0000000..5eed041 --- /dev/null +++ b/Pictures/index.shtml @@ -0,0 +1,28 @@ + + + + + + + Vacation pictures a.o. - vanrenterghem.biz + + + + + +

+ + + + diff --git a/Pictures/index.shtml~ b/Pictures/index.shtml~ new file mode 100755 index 0000000..eae8962 --- /dev/null +++ b/Pictures/index.shtml~ @@ -0,0 +1,15 @@ + + + + + + Frederik Vanrenterghem's Pictures - http://frederik.gotdns.org:1976/Pictures/ + + + +

+Site moved to www.vanrenterghem.biz. +

+ + + diff --git a/Pictures/index_beforemove.shtml b/Pictures/index_beforemove.shtml new file mode 100755 index 0000000..d62d027 --- /dev/null +++ b/Pictures/index_beforemove.shtml @@ -0,0 +1,35 @@ + + + + + + Frederik Vanrenterghem's Pictures - http://frederik.gotdns.org:1976/Pictures/ + + + +

+Vacation in Miami, August 2002
+Karting with FedEx, September 02
+Knokke trip, October 02
+Pumpkin carving
+All Saints
+Memphis trip
+Christmas Eve 2002
+Christmas 2002
+New Year's Eve 2002
+New Year's party with family, January 2003
+Chopping wood at Filip & Katrien's place, January 11, 2003
+Snowy day, February 1, 2003
+Ski vacation, Tignes, February 1-9, 2003
+Cross-state trip (TN, MS, AL), February 23, 2003
+Vacation in Marbella, Spain, April 2003.
+Paintball, Merchtem, April 22, 2003.
+Confirmation Felix, May 11, 2003.
+Biking, May 29, 2003.
+Opio, France, June 8-12, 2003.
+Vacation in Barcelona, Spain, June 28 - July 10, 2003.
+

+ + + + diff --git a/Pictures/mr_zogs_art.jpg b/Pictures/mr_zogs_art.jpg new file mode 100644 index 0000000..c3e7e95 Binary files /dev/null and b/Pictures/mr_zogs_art.jpg differ diff --git a/Pictures/mr_zogs_art_big.jpg b/Pictures/mr_zogs_art_big.jpg new file mode 100644 index 0000000..393e9dd Binary files /dev/null and b/Pictures/mr_zogs_art_big.jpg differ diff --git a/Pictures/oktober.jpg b/Pictures/oktober.jpg new file mode 100644 index 0000000..b52c6f1 Binary files /dev/null and b/Pictures/oktober.jpg differ diff --git a/Pictures/old_index.shtml b/Pictures/old_index.shtml new file mode 100755 index 0000000..28df20f --- /dev/null +++ b/Pictures/old_index.shtml @@ -0,0 +1,70 @@ + +pictures + + + + + +
dsc00376 +
Click on one of the size names below to enlarge this image
  + Sm  + Med  + Lg   +
dsc00378 +
Click on one of the size names below to enlarge this image
  + Sm  + Med  + Lg   +
dsc00384 +
Click on one of the size names below to enlarge this image
  + Sm  + Med  + Lg   +
1 +

Album generated by + BINS 1.1.16 + on Sun Oct 27 22:35:44 2002. +        +

diff --git a/Pictures/shot_04-01-03_232439.jpg b/Pictures/shot_04-01-03_232439.jpg new file mode 100755 index 0000000..62b6652 Binary files /dev/null and b/Pictures/shot_04-01-03_232439.jpg differ diff --git a/Pictures/shot_09-03-03_224036.png b/Pictures/shot_09-03-03_224036.png new file mode 100755 index 0000000..0f20955 Binary files /dev/null and b/Pictures/shot_09-03-03_224036.png differ diff --git a/Pictures/the_castle.jpg b/Pictures/the_castle.jpg new file mode 100755 index 0000000..a1050f1 Binary files /dev/null and b/Pictures/the_castle.jpg differ diff --git a/Pictures/varia/.xvpics/geekdinner1a.jpg b/Pictures/varia/.xvpics/geekdinner1a.jpg new file mode 100644 index 0000000..cc127f3 Binary files /dev/null and b/Pictures/varia/.xvpics/geekdinner1a.jpg differ diff --git a/Pictures/varia/.xvpics/geekdinner1b.jpg b/Pictures/varia/.xvpics/geekdinner1b.jpg new file mode 100644 index 0000000..a964ab3 Binary files /dev/null and b/Pictures/varia/.xvpics/geekdinner1b.jpg differ diff --git a/Pictures/varia/20060530_wijkaanzee.jpg b/Pictures/varia/20060530_wijkaanzee.jpg new file mode 100644 index 0000000..38f2e18 Binary files /dev/null and b/Pictures/varia/20060530_wijkaanzee.jpg differ diff --git a/Pictures/varia/artikel_Arnout_volley.jpg b/Pictures/varia/artikel_Arnout_volley.jpg new file mode 100644 index 0000000..e0d5b47 Binary files /dev/null and b/Pictures/varia/artikel_Arnout_volley.jpg differ diff --git a/Pictures/varia/detank.jpg b/Pictures/varia/detank.jpg new file mode 100755 index 0000000..7adfb05 Binary files /dev/null and b/Pictures/varia/detank.jpg differ diff --git a/Pictures/varia/geekdinner1a.jpg b/Pictures/varia/geekdinner1a.jpg new file mode 100644 index 0000000..8e7be4b Binary files /dev/null and b/Pictures/varia/geekdinner1a.jpg differ diff --git a/Pictures/varia/geekdinner1b.jpg b/Pictures/varia/geekdinner1b.jpg new file mode 100644 index 0000000..d7c83df Binary files /dev/null and b/Pictures/varia/geekdinner1b.jpg differ diff --git a/Pictures/varia/geekdinner2.jpg b/Pictures/varia/geekdinner2.jpg new file mode 100644 index 0000000..f1cfe6e Binary files /dev/null and b/Pictures/varia/geekdinner2.jpg differ diff --git a/Pictures/varia/ipaq_running_Familiar_Linux_connected_to_internet_via_bluetooth_to_Motorola_V500.jpg b/Pictures/varia/ipaq_running_Familiar_Linux_connected_to_internet_via_bluetooth_to_Motorola_V500.jpg new file mode 100644 index 0000000..2629b16 Binary files /dev/null and b/Pictures/varia/ipaq_running_Familiar_Linux_connected_to_internet_via_bluetooth_to_Motorola_V500.jpg differ diff --git a/Pictures/varia/koekiemonster.gif b/Pictures/varia/koekiemonster.gif new file mode 100644 index 0000000..f86d61e Binary files /dev/null and b/Pictures/varia/koekiemonster.gif differ diff --git a/Pictures/varia/redhat8AndApt.jpg b/Pictures/varia/redhat8AndApt.jpg new file mode 100755 index 0000000..221d89c Binary files /dev/null and b/Pictures/varia/redhat8AndApt.jpg differ diff --git a/Pictures/varia/shot_25-05-04_212751.png b/Pictures/varia/shot_25-05-04_212751.png new file mode 100644 index 0000000..5fb4175 Binary files /dev/null and b/Pictures/varia/shot_25-05-04_212751.png differ diff --git a/Pictures/webcam/webcam_2003-03-09_144527.jpg b/Pictures/webcam/webcam_2003-03-09_144527.jpg new file mode 100755 index 0000000..0afae52 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_144527.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_144616.jpg b/Pictures/webcam/webcam_2003-03-09_144616.jpg new file mode 100755 index 0000000..39edc04 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_144616.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_144641.jpg b/Pictures/webcam/webcam_2003-03-09_144641.jpg new file mode 100755 index 0000000..046ff47 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_144641.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_144706.jpg b/Pictures/webcam/webcam_2003-03-09_144706.jpg new file mode 100755 index 0000000..fef1b88 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_144706.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_145007.jpg b/Pictures/webcam/webcam_2003-03-09_145007.jpg new file mode 100755 index 0000000..1f922d2 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_145007.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_145507.jpg b/Pictures/webcam/webcam_2003-03-09_145507.jpg new file mode 100755 index 0000000..71693c4 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_145507.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_145632.jpg b/Pictures/webcam/webcam_2003-03-09_145632.jpg new file mode 100755 index 0000000..75a4386 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_145632.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_145957.jpg b/Pictures/webcam/webcam_2003-03-09_145957.jpg new file mode 100755 index 0000000..8e994e3 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_145957.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_150104.jpg b/Pictures/webcam/webcam_2003-03-09_150104.jpg new file mode 100755 index 0000000..3723cc7 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_150104.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_150659.jpg b/Pictures/webcam/webcam_2003-03-09_150659.jpg new file mode 100755 index 0000000..a32b105 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_150659.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_165532.jpg b/Pictures/webcam/webcam_2003-03-09_165532.jpg new file mode 100755 index 0000000..91ff5b6 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_165532.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_211805.jpg b/Pictures/webcam/webcam_2003-03-09_211805.jpg new file mode 100755 index 0000000..75a56b6 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_211805.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_211826.jpg b/Pictures/webcam/webcam_2003-03-09_211826.jpg new file mode 100755 index 0000000..2b860b1 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_211826.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_212031.jpg b/Pictures/webcam/webcam_2003-03-09_212031.jpg new file mode 100755 index 0000000..a1e33bc Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_212031.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_212103.jpg b/Pictures/webcam/webcam_2003-03-09_212103.jpg new file mode 100755 index 0000000..e68c9f8 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_212103.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_212144.jpg b/Pictures/webcam/webcam_2003-03-09_212144.jpg new file mode 100755 index 0000000..c6e8357 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_212144.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_212445.jpg b/Pictures/webcam/webcam_2003-03-09_212445.jpg new file mode 100755 index 0000000..c1533e4 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_212445.jpg differ diff --git a/Pictures/webcam/webcam_2003-03-09_212527.jpg b/Pictures/webcam/webcam_2003-03-09_212527.jpg new file mode 100755 index 0000000..c8fdfe4 Binary files /dev/null and b/Pictures/webcam/webcam_2003-03-09_212527.jpg differ diff --git a/Surfing/index.shtml b/Surfing/index.shtml new file mode 100644 index 0000000..ff5d0dc --- /dev/null +++ b/Surfing/index.shtml @@ -0,0 +1,47 @@ + + + + + + +http://vanrenterghem.biz/ - Surf's up dudes! + + + + + +

Surfing

+

+I'll need to put some thought in organising this section... Right now, it's just a bunch of links to sites useful for the wave surfing amateur in Belgium. +

+

Wave height

+

+Knokke +Oostende +

+

What's MagicSeaweed telling us?

+

+Thanks to the folks at MagicSeaweed, there's even charts of the surf conditions in Ostend and Knokke! +

+

+ + + +

+ + +
+ +

+ + + diff --git a/awstat.html b/awstat.html new file mode 100644 index 0000000..8511a7b --- /dev/null +++ b/awstat.html @@ -0,0 +1,599 @@ + + + + + + + + +Statistics for edward.vanrenterghem.biz (2013-02) - main + + + + + + + + +  +
+ +
+ + + + +
Statistics for: edward.vanrenterghem.bizAwstats Web Site
Last Update: 04 Feb 2013 - 04:26
Reported period: + + + +
+
+
+ + + + + + + + + + + + +
When:Monthly history   Days of month   Days of week   Hours  
Who:Countries   Full list +   Hosts   Full list +   Last visit +   Unresolved IP Address +   Robots/Spiders visitors   Full list +   Last visit +  
Navigation:Visits duration   File type   Downloads   Full list +   Viewed +   Full list +   Entry +   Exit +   Operating Systems   Versions +   Unknown +   Browsers   Versions +   Unknown +  
Referrers:Origin   Referring search engines +   Referring sites +   Search   Search Keyphrases +   Search Keywords +  
Others:Miscellaneous   HTTP Status codes   Pages not found +  
+
+ + +
Summary  
+ + + + + + + + + + + +
Reported period +Month Feb 2013
First visitNA
Last visitNA
 Unique visitorsNumber of visitsPagesHitsBandwidth
Viewed traffic *0
 
0
(0 visits/visitor)
0
(0 Pages/Visit)
0
(0 Hits/Visit)
0
(0 KB/Visit)
Not viewed traffic * 
 
000
* Not viewed traffic includes traffic generated by robots, worms, or replies with special HTTP status codes.
+
+ + 
+ + +
Monthly history  
+ + +
+
+ + + + + + + + + + + + + + + + +
 Unique visitors: 3Number of visits: 402Pages: 7268Hits: 19546Bandwidth: 718.90 MBUnique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Unique visitors: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0 
 Jan
2013
Feb
2013
Mar
2013
Apr
2013
May
2013
Jun
2013
Jul
2013
Aug
2013
Sep
2013
Oct
2013
Nov
2013
Dec
2013
 
+
+ + + + + + + + + + + + + + + +
MonthUnique visitorsNumber of visitsPagesHitsBandwidth
Jan 201334027,26819,546718.90 MB
Feb 201300000
Mar 201300000
Apr 201300000
May 201300000
Jun 201300000
Jul 201300000
Aug 201300000
Sep 201300000
Oct 201300000
Nov 201300000
Dec 201300000
Total34027,26819,546718.90 MB
+
+
+

+ + +  + + 
+ + +
Days of month  
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0Number of visits: 0Pages: 0Hits: 0Bandwidth: 0 Number of visits: 0.00Pages: 0.00Hits: 0.00Bandwidth: 0.00
01
Feb
02
Feb
03
Feb
04
Feb
05
Feb
06
Feb
07
Feb
08
Feb
09
Feb
10
Feb
11
Feb
12
Feb
13
Feb
14
Feb
15
Feb
16
Feb
17
Feb
18
Feb
19
Feb
20
Feb
21
Feb
22
Feb
23
Feb
24
Feb
25
Feb
26
Feb
27
Feb
28
Feb
 Average
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DayNumber of visitsPagesHitsBandwidth
01 Feb 20130000
02 Feb 20130000
03 Feb 20130000
04 Feb 20130000
05 Feb 20130000
06 Feb 20130000
07 Feb 20130000
08 Feb 20130000
09 Feb 20130000
10 Feb 20130000
11 Feb 20130000
12 Feb 20130000
13 Feb 20130000
14 Feb 20130000
15 Feb 20130000
16 Feb 20130000
17 Feb 20130000
18 Feb 20130000
19 Feb 20130000
20 Feb 20130000
21 Feb 20130000
22 Feb 20130000
23 Feb 20130000
24 Feb 20130000
25 Feb 20130000
26 Feb 20130000
27 Feb 20130000
28 Feb 20130000
Average0000
Total0000
+
+

+ + 
+ + +
Days of week  
+ + +
+ + + + + + + + + + + + +
Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0
MonTueWedThuFriSatSun
+
+ + + + + + + + +
DayPagesHitsBandwidth
Mon000
Tue000
Wed000
Thu000
Fri000
Sat000
Sun000
+
+

+ + 
+ + +
Hours  
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0Pages: 0Hits: 0Bandwidth: 0
01234567891011121314151617181920212223
0:00 - 1:00 am1:00 - 2:00 am2:00 - 3:00 am3:00 - 4:00 am4:00 - 5:00 am5:00 - 6:00 am6:00 - 7:00 am7:00 - 8:00 am8:00 - 9:00 am9:00 - 10:00 am10:00 - 11:00 am11:00 - 12:00 am0:00 - 1:00 pm1:00 - 2:00 pm2:00 - 3:00 pm3:00 - 4:00 pm4:00 - 5:00 pm5:00 - 6:00 pm6:00 - 7:00 pm7:00 - 8:00 pm8:00 - 9:00 pm9:00 - 10:00 pm10:00 - 11:00 pm11:00 - 12:00 pm
+
+ +
+ + + + + + + + + + + + + +
HoursPagesHitsBandwidth
00000
01000
02000
03000
04000
05000
06000
07000
08000
09000
10000
11000
+
 
+ + + + + + + + + + + + + + +
HoursPagesHitsBandwidth
12000
13000
14000
15000
16000
17000
18000
19000
20000
21000
22000
23000
+
+
+

+ + +  + + 
+ + +
Visitors domains/countries (Top 10)   -   Full list  
+ + +
 Domains/CountriesPagesHitsBandwidth 

+ + 
+ + +
Hosts (Top 10)   -   Full list   -   Last visit   -   Unresolved IP Address  
+ + +
Hosts : 0 Known, 0 Unknown (unresolved ip)
0 Unique visitors
PagesHitsBandwidthLast visit

+ + 
+ + +
Robots/Spiders visitors (Top 10)   -   Full list   -   Last visit  
+ + +
0 different robots*HitsBandwidthLast visit
* Robots shown here gave hits or traffic "not viewed" by visitors, so they are not included in other charts.
+
+ + +  + + 
+ + +
Visits duration  
+ + + + + + + + + +
Number of visits: 0 - Average: ? sNumber of visitsPercent
0s-30s  
30s-2mn  
2mn-5mn  
5mn-15mn  
15mn-30mn  
30mn-1h  
1h+  

+ + 
+ + +
File type  
+ + +
File typeHitsPercentBandwidthPercent

+ + 
+ + +
Downloads (Top 10)   -   Full list  
+ + +
Downloads: 0Hits206 HitsBandwidthAverage size

+ +   
+ + +
Pages-URL (Top 10)   -   Full list   -   Entry   -   Exit  
+ + +
0 different pages-urlViewedAverage sizeEntryExit 

+ + 
+ + +
Operating Systems (Top 10)   -   Full list/Versions   -   Unknown  
+ + +
 Operating SystemsHitsPercent

+ + 
+ + +
Browsers (Top 10)   -   Full list/Versions   -   Unknown  
+ + +
 BrowsersGrabberHitsPercent

+ + +  + + 
+ + +
Connect to site from  
+ + + + + + + + +
OriginPagesPercentHitsPercent
Direct address / Bookmark / Link in email...    
Links from an Internet Search Engine - Full list
+
    
Links from an external page (other web sites except search engines) - Full list
+
    
Unknown Origin    

+ + +  + +  
+ + +
+ + +
Search Keyphrases (Top 10)
Full list
 
+ + +
0 different keyphrasesSearchPercent

+ +
  + + +
Search Keywords (Top 10)
Full list
 
+ + +
0 different keywordsSearchPercent

+ +
+ +  + + 
+ + +
Miscellaneous  
+ + + +
Miscellaneous  
Successful hits on favicon.ico0 / 0 Visitors 

+ + 
+ + +
HTTP Status codes  
+ + +
HTTP Status codes*HitsPercentBandwidth
* Codes shown here gave hits or traffic "not viewed" by visitors, so they are not included in other charts.
+
+ +

+Advanced Web Statistics 7.0 (build 1.971) - Created by awstats (plugins: hashfiles)
+ + + diff --git a/cgi-bin/foto.php~ b/cgi-bin/foto.php~ new file mode 100755 index 0000000..2008a5b --- /dev/null +++ b/cgi-bin/foto.php~ @@ -0,0 +1,32 @@ + + + + + + http://frederik.gotdns.org:1976 - Picture + + +\n"); +include $ROOT."/header.shtml"; + +// Print the page title +printf("


\n"); +printf("\n\n"); +printf("

Back to index page."); + +// Print the footer +printf("\n"); +include $ROOT."/footer.php"; +?> + + + \ No newline at end of file diff --git a/disclaimer.shtml b/disclaimer.shtml new file mode 100644 index 0000000..044e311 --- /dev/null +++ b/disclaimer.shtml @@ -0,0 +1,9 @@ +


+
+ + + +If you are illegally in the country, were caught by surprise in a place you +weren't supposed to be, are extremely sensitive towards personal privacy or +simply want your picture to be removed from the site, contact the webmaster. \ No newline at end of file diff --git a/facebook2.pdf b/facebook2.pdf new file mode 100644 index 0000000..9ebc5cf Binary files /dev/null and b/facebook2.pdf differ diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..2087184 Binary files /dev/null and b/favicon.ico differ diff --git a/footer.php b/footer.php new file mode 100644 index 0000000..35bca54 --- /dev/null +++ b/footer.php @@ -0,0 +1,7 @@ + +
+
+ + \ No newline at end of file diff --git a/footer.php~ b/footer.php~ new file mode 100644 index 0000000..2c60769 --- /dev/null +++ b/footer.php~ @@ -0,0 +1,8 @@ +
+ +
+
+ + \ No newline at end of file diff --git a/footer.shtml b/footer.shtml new file mode 100644 index 0000000..658766c --- /dev/null +++ b/footer.shtml @@ -0,0 +1,8 @@ +
+ \ No newline at end of file diff --git a/footer.shtml~ b/footer.shtml~ new file mode 100644 index 0000000..057d44c --- /dev/null +++ b/footer.shtml~ @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/gmailsmtp.pl b/gmailsmtp.pl new file mode 100644 index 0000000..7d3c2e3 --- /dev/null +++ b/gmailsmtp.pl @@ -0,0 +1,462 @@ +#!/usr/bin/perl +#--------------------------------------------------------------------------------# +# PROGRAM: gmailsmtp.pl # +# This program was designed to act as a proxy SMTP server on a # +# linux system that relays its outbound mail through a gmail # +# account via HTTPS. # +# # +# Copyright (C) 2005 Frederik Vanrenterghem # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to the Free Software # +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.# +# # +# CREATED: 2005/05/21 by Frederik Vanrenterghem # +# # +# VERSION: 0.1.0 # +# # +# CREDITS: James C. Specht, Jr. # +# For his gsr.pl v.0.8.0, which supplied the majority # +# of the code for v.0.1.0 # +# # +#--------------------------------------------------------------------------------# + +use Mail::Webmail::Gmail; +use Net::SMTP::Server; +use Net::SMTP::Server::Client; +use IO::Socket::INET; +use IO::Socket::SSL; +use Net::SSLeay; +use Digest::HMAC_MD5 qw(hmac_md5_hex); +use MIME::Base64 qw(encode_base64 decode_base64); +use Getopt::Long; +use Term::ReadKey; +use Proc::Daemon; +use Sys::Syslog; + +$SIG{CHLD} = 'IGNORE'; + +my ($configfile,$ehlo_ok,$from,@to,$msgsrc,$dohelp,$sock,$code,$text,$more, + %features,$server,$conn,$verbose,$version,$daemon,$relayfile,@relayIP, + $pidfile,$client); + +$configfile="/usr/local/etc/gmailsmtp.conf"; +$relayfile="/usr/local/etc/gmailsmtp.relay"; +$pidfile="/usr/local/var/run/gmailsmtp.pid"; +$verbose=0; +$daemon=0; +$version="0.1.0"; + +# Get command line options. +GetOptions ('config-file=s' => \$configfile, + 'relay-file=s' => \$relayfile, + 'verbose:1' => \$verbose, + 'daemon:1' => \$daemon, + 'help:1' => \$dohelp ); + +require "$configfile"; + +if ($dohelp == 1 ) {&usage();} + +# Force this process out as a daemon. +if ($daemon >= 1) { + Proc::Daemon::Init; + # Since we are a daemon process log to syslog facility. + openlog('gmailsmtp','pid','mail'); + syslog('info','gmailsmtp.pl daemon process loading'); + $verbose=0; + # Write our pid out. + open(FPID, ">$pidfile"); + print FPID "$$"; + close(FPID); +} + +$ehlo_ok = 1; + +if ($gmailserver =~ /^(.*):(.*)$/) { + $gmailserver = $1; + $gmailport = $2; +} + +if ($daemon >= 1) + { syslog('info',"Gmail relay set to $gmailserver:$gmailport"); } + +if (!defined ($gmailusername)) { + dienice ("Missing \$gmailusername in $configfile!"); +} + +syslog('info',"Gmail user account is $gmailusername") if ($daemon >= 1); + +if ($gmailpassword eq "") { + # We are a daemon so we can't asked for the gmail account password! + if ($daemon >= 1) { + syslog('info',"Missing \$gmailpassword in $configile!"); + syslog('info','Aborting startup!'); + exit; + } + printf ("Enter password for %s : ", $gmailusername); + # Set echo off. + ReadMode (2); + $gmailpassword = <>; + # Restore echo. + ReadMode (0); + printf ("\n"); + + exit if (! defined ($gmailpassword)); + chop ($gmailpassword); +} + +# Build the relayIP table +BuildRelayIPTable(); + +&StartSMTPServer(); +closelog(); +exit(); + +sub StartSMTPServer +{ + my $i, $IPaddr, $size, $nrcpt; + + $server = new Net::SMTP::Server($localserver,$localport) || + dienice ("Unable to start SMTP Server on $localserver:$localport!"); + + while($conn = $server->accept()) { + printf("\nNew connection!\n\n") if ($verbose >= 1); + + my $pid = fork(); + + if ($pid) {undef($conn);} # this is the parent process + dienice ("Can't create child process!") unless defined $pid; + unless($pid) { # $pid == 0 means we're the child + + $client = new Net::SMTP::Server::Client($conn) || + dienice ("Unable to start SMTP client connection!"); + + # Capture the IP address of our client. + $IPaddr = $client->{SOCK}->peerhost(); + + syslog('info',"Incoming connection from [$IPaddr]") if ($daemon >= 1); + printf("\nConnection from [$IPaddr]\n") if ($verbose >= 1); + + # Do we allow this IP to relay through us? + if (AllowRelay($IPaddr) == 0) { + warnnice("Connection refused to [$IPaddr]"); + } + + if ($client->process) { + if ($verbose >= 1 ) { + printf("MAIL FROM: $client->{FROM}\n"); + for ($i=0; $i <= $#client->{TO}; $i++) { + printf("RCPT TO: $client->{TO}[i]\n"); + } + printf("DATA:\n\n$client->{MSG}\n"); + } + # Now relay the msg on. + $from = $client->{FROM}; + for ($i=0; $i <= $#client->{TO}; $i++) + { $to[$i] = $client->{TO}[$i];} + $msgsrc = $client->{MSG}; + + if ($daemon >= 1) { + $size = length($msgsrc); + $nrcpt = $#to + 1; + syslog('info',"from=$from, size=$size, nrcpt=$nrcpt"); + for ($i=0; $i <= $#to; $i++) + { syslog('info',"to=$to[$i]"); } + } + + printf("Relay via GMail account $gmailusername...\n") if ($verbose >= 1); + if ($daemon >= 1) + { syslog('info',"relay via GMail account $gmailusername"); } + + &RelayOurMSG(); + #$client->shutdown; + exit 1; + } + } + undef $client; + } +} + +sub RelayOurMSG +{ +###nieuw vanaf hier +if ($verbose >= 1) + {printf("Connecting to GMail...\n");} + my ( $gmail ) = Mail::Webmail::Gmail->new( + username => $gmailusername, password => $gmailpassword, proxy_name=> $proxy_name, ); + +if ($verbose >= 1) + {printf("Connection to Gmail established.\n");} + +if ($verbose >= 1) + {printf("Attempting to send message.\n");} + + my $msgid = $gmail->send_message + ( to => $to[0], + subject => time(), + msgbody => $msgsrc ); + print "Msgid: $msgid\n"; + if ( $msgid ) { + if ( $gmail->error() ) { + if ($verbose >= 1) + {printf("We ran into a problem. Attempting to display the problem...\n");} + print $gmail->error_msg(); + } else { + ### Create new label ### + if ($verbose >= 1) + {printf("Creating new label\n");} + my $test_label = "tl_" . time(); + $gmail->edit_labels( label => $test_label, action => 'create' ); + if ( $gmail->error() ) { + print $gmail->error_msg(); + } else { + ### Add this label to our new message ### + $gmail->edit_labels( label => $test_label, action => 'add', 'msgid' => $msgid ); + if ( $gmail->error() ) { + print $gmail->error_msg(); + } else { + print "Added label: $test_label to message $msgid\n"; + } + } + } + } +###tot hier + + # Good bye... + if ($verbose >= 1) + {printf("Message sent succesfully.\n");} + if ($daemon >= 1) { + syslog('info',"Message relay successful"); + } +} + +# This is the main SMTP "engine". +sub run_smtp +{ + + + # We can do a relay-test now if a recipient was set. + if ($#to >= 0) { + if (!defined ($from)) { + $from = "<$gmailusername>"; + if ($verbose >= 1) + {printf("From: address not set. Using $gmailusername.\n");} + if ($daemon >= 1) + {syslog('info',"From: address not set. Using $gmailusername.");} + } + &send_line ($sock, "MAIL FROM: %s\n", $from); + ($code, $text, $more) = &get_line ($sock); + if ($code != 250) { warnnice ("MAIL FROM failed: '$code $text'\n"); } + + my $i; + for ($i=0; $i <= $#to; $i++) { + &send_line ($sock, "RCPT TO: %s\n", $to[$i]); + ($code, $text, $more) = &get_line ($sock); + if ($code != 250) { + warnnice ("RCPT TO ".$to[$i]." "."failed: '$code $text'\n"); + } + } + } + + # Wow, we should even send something! + if (defined ($msgsrc)) + { + &send_line ($sock, "DATA\n"); + ($code, $text, $more) = &get_line ($sock); + if ($code != 354) { warnnice ("DATA failed: '$code $text'\n"); } + + if ($verbose >= 1) { + printf("Sending the following.\n\n"); + printf("$msgsrc\n"); + } + + $sock->printf ("$msgsrc\r\n.\r\n"); + + ($code, $text, $more) = &get_line ($sock); + if ($code != 250) { warnnice ("DATA not sent: '$code $text'\n"); } + } + + # Perfect. Everything succeeded! + return 1; +} + +# Get one line of response from the server. +sub get_line ($) +{ + my $sock = shift; + my ($code, $sep, $text) = ($sock->getline() =~ /(\d+)(.)([^\r]*)/); + my $more; + if ($sep eq "-") { $more = 1; } else { $more = 0; } + printf ("[%d] '%s'\n", $code, $text) if ($verbose >= 1); + return ($code, $text, $more); +} + +# Send one line back to the server +sub send_line ($@) +{ + my $socket = shift; + my @args = @_; + + printf ("> ") if ($verbose >= 1); + printf (@args) if ($verbose >= 1); + $socket->printf (@args); +} + +# Helper function to encode CRAM-MD5 challenge +sub encode_cram_md5 ($$$) +{ + my ($ticket64, $username, $password) = @_; + my $ticket = decode_base64($ticket64) or + dienice ("Unable to decode Base64 encoded string '$ticket64'"); + + my $password_md5 = hmac_md5_hex($ticket, $password); + return encode_base64 ("$username $password_md5", ""); +} + +# Store all server's ESMTP features to a hash. +sub say_hello ($$$$) +{ + my ($sock, $ehlo_ok, $gmailhello, $featref) = @_; + my ($feat, $param); + my $hello_cmd = $ehlo_ok ? "EHLO" : "HELO"; + + &send_line ($sock, "$hello_cmd $gmailhello\n"); + my ($code, $text, $more) = &get_line ($sock); + + if ($code != 250) { warnnice ("$hello_cmd failed: '$code $text'\n"); } + + # Empty the hash + %{$featref} = (); + + ($feat, $param) = ($text =~ /^(\w+)[= ]*(.*)$/); + $featref->{$feat} = $param; + + # Load all features presented by the server into the hash + while ($more == 1) { + ($code, $text, $more) = &get_line ($sock); + ($feat, $param) = ($text =~ /^(\w+)[= ]*(.*)$/); + $featref->{$feat} = $param; + } + + return 1; +} + +sub warnnice { + my ($txt) = @_; + + if ( $daemon >= 1 ) { + syslog('info', $txt); + syslog('info', 'Connection terminated!'); + } + else { + printf("\n$txt\n"); + printf("Connection terminated!\n"); + } + if ($sock) { + printf("Shutdown!!!!!\n"); + &send_line ($sock, "QUIT\n"); + } + if ($client) { $client->shutdown;} + exit 1; +} + +sub dienice { + my ($txt) = @_; + + if ( $daemon >= 1 ) { + syslog('info', $txt); + syslog('info',"Aborting"); + } + else { + printf("\n$txt\n"); + printf("Aborting\n\n"); + } + if ($client) {$client->shutdown;} + exit 1; +} + +sub AllowRelay($) { + + my $IP = shift; + my $i; + + for ($i=0; $i <= $#relayIP; $i++) { + if ($IP =~ /^$relayIP[$i]/) { return "1";} + } + + # Did not find a match. + return "0"; +} + +sub BuildRelayIPTable { + + my ($i); + + $i=0; + + if ($verbose >= 1) { printf("Loading relay table from $relayfile\n");} + if ($daemon >= 1) { syslog('info',"Loading relay table from $relayfile");} + + open(INFILE, "$relayfile") || dienice("Cannot open relay file $relayfile!"); + while($line = ) { + $line =~ s/#.*//; # ignore comments by erasing them + next if $line =~ /^(\s)*$/; # skip blank lines + chomp($line); + if ($verbose >= 1) { printf("Adding [$line] to relay table\n");} + if ($daemon >= 1) {syslog('info',"Adding [$line] to relay table");} + + $relayIP[$i++] = $line; + } + close(INFILE); +} + +sub usage () +{ + printf ("\nA simple SMTP server that relays local email through a gmail account via HTTPS. + +Author: Frederik Vanrenterghem + http://vanrenterghem.biz/ + +Version: $version + +Usage: gmailsmtp.pl [--options] + + --config-file= The location of the gmailsmtp.conf file. + (default: /usr/local/etc/gmailsmtp.conf) + --relay-file= The location of the gmailsmtp.relay file. + (default: /usr/local/etc/gmailsmtp.relay) + --verbose Be verbose instead of silent. + --daemon Start as daemon process. + --help Shows you this output. + +Current Options: + + \$gmailserver = [$gmailserver] + \$gmailport = [$gmailport] + \$gmailusername = [$gmailusername]\n"); + + if ($gmailpassword ne "") { + printf (" \$gmailpassword = [is set]\n"); + } else { + printf (" \$gmailpassword = [is NOT set]\n"); + } + + printf (" \$gmailhello = [$gmailhello] + \$localserver = [$localserver] + \$localport = [$localport] +"); + exit (0); +} + + \ No newline at end of file diff --git a/header.shtml b/header.shtml new file mode 100644 index 0000000..04c1c4c --- /dev/null +++ b/header.shtml @@ -0,0 +1,17 @@ + + + +

+This section has been password-protected to satisfy privacy concerns that emerged after reading up on online identity thefts. If you're +interested in viewing the content, sign up on the Forum and check the Administration board for +instructions. +

diff --git a/header_first.shtml b/header_first.shtml new file mode 100644 index 0000000..9ad948d --- /dev/null +++ b/header_first.shtml @@ -0,0 +1,28 @@ + + + + + + + + + + + +
+ + +Home +About me +Forum +News +Pictures +Search + + +
+ + + +
+ diff --git a/header_xmas.shtml b/header_xmas.shtml new file mode 100644 index 0000000..612e75e --- /dev/null +++ b/header_xmas.shtml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + +
+ + + + +Home +About me +Forum +News +Pictures +Linux + + + + +
+ + + +
+ diff --git a/index.shtml b/index.shtml new file mode 100644 index 0000000..9e3ae81 --- /dev/null +++ b/index.shtml @@ -0,0 +1,41 @@ + + + + + + + + + Frederik Vanrenterghem's homepage - http://www.vanrenterghem.biz/ + + + + + +

vanrenterghem.biz

+

Time for business

+

+Without further ado, here's what you can find on this site: +

+

+Home You are here.
+About me This section contains information about the owner of this site, me.
+Social Self-hosted decentralised social network.
+Tech Some technical references.
+

+

+ +Valid XHTML 1.0! + + Valid CSS! + +

+ + + diff --git a/index_beforemove.shtml b/index_beforemove.shtml new file mode 100644 index 0000000..4cbcf66 --- /dev/null +++ b/index_beforemove.shtml @@ -0,0 +1,26 @@ + + + + + + + Frederik Vanrenterghem's homepage - http://frederik.gotdns.org:1976/ + + + +
+ +

Front page

+

+Front pages are boring. By definition. Even if they contain all sorts of fun images. Proceed to the news section. +

+

+debian logo +

+

+ +

+ + + + diff --git a/index_current_site.shtml b/index_current_site.shtml new file mode 100644 index 0000000..5c5d608 --- /dev/null +++ b/index_current_site.shtml @@ -0,0 +1,36 @@ + + + + + + + + Frederik Vanrenterghem's homepage - http://www.vanrenterghem.biz/ + + + +
+ +

vanrenterghem.biz

+

Time for business

+

+For the functionaly retarded: you can navigate within this site by clicking +on the buttons in the navigation bar on top of every page. Since you like +duplication, you can also click on any of the links below. +

+

+Home You are here.
+About me This section contains information about the owner of this site, me.
+Forum This is the most active part of the site, the messageboards. It is also the only part of this site I did not write myself.
+News On the News section, I post whatever pops up in my head. It is all far more interesting than what you would think and talk about. Read it, it will make you smarter.
+Pictures Guess what, there are even pictures of me and others on this site.
+GNU/Linux A free operating system, with almost all types of software available with the source code for you to compile.
+

+

+debian logo +

+ + + + + diff --git a/index_new.shtml b/index_new.shtml new file mode 100644 index 0000000..8c774dd --- /dev/null +++ b/index_new.shtml @@ -0,0 +1,27 @@ + + + + + + + + Frederik Vanrenterghem's homepage - http://frederik.gotdns.org:1976/ + + + +
+ +

Front page

+

+Site moved to www.vanrenterghem.biz. +

+

+debian logo +

+

+ +

+ + + + diff --git a/phpBB2/COPYING b/phpBB2/COPYING new file mode 100644 index 0000000..ce992b2 --- /dev/null +++ b/phpBB2/COPYING @@ -0,0 +1,281 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + diff --git a/phpBB2/admin/admin_board.php b/phpBB2/admin/admin_board.php new file mode 100644 index 0000000..2b47608 --- /dev/null +++ b/phpBB2/admin/admin_board.php @@ -0,0 +1,366 @@ +sql_query($sql)) +{ + message_die(CRITICAL_ERROR, "Could not query config information in admin_board", "", __LINE__, __FILE__, $sql); +} +else +{ + while( $row = $db->sql_fetchrow($result) ) + { + $config_name = $row['config_name']; + $config_value = $row['config_value']; + $default_config[$config_name] = isset($HTTP_POST_VARS['submit']) ? str_replace("'", "\'", $config_value) : $config_value; + + $new[$config_name] = ( isset($HTTP_POST_VARS[$config_name]) ) ? $HTTP_POST_VARS[$config_name] : $default_config[$config_name]; + + if ($config_name == 'cookie_name') + { + $new['cookie_name'] = str_replace('.', '_', $new['cookie_name']); + } + + // Attempt to prevent a common mistake with this value, + // http:// is the protocol and not part of the server name + if ($config_name == 'server_name') + { + $new['server_name'] = str_replace('http://', '', $new['server_name']); + } + + // Attempt to prevent a mistake with this value. + if ($config_name == 'avatar_path') + { + $new['avatar_path'] = trim($new['avatar_path']); + if (strstr($new['avatar_path'], "\0") || !is_dir($phpbb_root_path . $new['avatar_path']) || !is_writable($phpbb_root_path . $new['avatar_path'])) + { + $new['avatar_path'] = $default_config['avatar_path']; + } + } + + if( isset($HTTP_POST_VARS['submit']) ) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET + config_value = '" . str_replace("\'", "''", $new[$config_name]) . "' + WHERE config_name = '$config_name'"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql); + } + } + } + + if( isset($HTTP_POST_VARS['submit']) ) + { + $message = $lang['Config_updated'] . "

" . sprintf($lang['Click_return_config'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } +} + +$style_select = style_select($new['default_style'], 'default_style', "../templates"); +$lang_select = language_select($new['default_lang'], 'default_lang', "language"); +$timezone_select = tz_select($new['board_timezone'], 'board_timezone'); + +$disable_board_yes = ( $new['board_disable'] ) ? "checked=\"checked\"" : ""; +$disable_board_no = ( !$new['board_disable'] ) ? "checked=\"checked\"" : ""; + +$cookie_secure_yes = ( $new['cookie_secure'] ) ? "checked=\"checked\"" : ""; +$cookie_secure_no = ( !$new['cookie_secure'] ) ? "checked=\"checked\"" : ""; + +$html_tags = $new['allow_html_tags']; + +$override_user_style_yes = ( $new['override_user_style'] ) ? "checked=\"checked\"" : ""; +$override_user_style_no = ( !$new['override_user_style'] ) ? "checked=\"checked\"" : ""; + +$html_yes = ( $new['allow_html'] ) ? "checked=\"checked\"" : ""; +$html_no = ( !$new['allow_html'] ) ? "checked=\"checked\"" : ""; + +$bbcode_yes = ( $new['allow_bbcode'] ) ? "checked=\"checked\"" : ""; +$bbcode_no = ( !$new['allow_bbcode'] ) ? "checked=\"checked\"" : ""; + +$activation_none = ( $new['require_activation'] == USER_ACTIVATION_NONE ) ? "checked=\"checked\"" : ""; +$activation_user = ( $new['require_activation'] == USER_ACTIVATION_SELF ) ? "checked=\"checked\"" : ""; +$activation_admin = ( $new['require_activation'] == USER_ACTIVATION_ADMIN ) ? "checked=\"checked\"" : ""; + +$confirm_yes = ($new['enable_confirm']) ? 'checked="checked"' : ''; +$confirm_no = (!$new['enable_confirm']) ? 'checked="checked"' : ''; + +$allow_autologin_yes = ($new['allow_autologin']) ? 'checked="checked"' : ''; +$allow_autologin_no = (!$new['allow_autologin']) ? 'checked="checked"' : ''; + +$board_email_form_yes = ( $new['board_email_form'] ) ? "checked=\"checked\"" : ""; +$board_email_form_no = ( !$new['board_email_form'] ) ? "checked=\"checked\"" : ""; + +$gzip_yes = ( $new['gzip_compress'] ) ? "checked=\"checked\"" : ""; +$gzip_no = ( !$new['gzip_compress'] ) ? "checked=\"checked\"" : ""; + +$privmsg_on = ( !$new['privmsg_disable'] ) ? "checked=\"checked\"" : ""; +$privmsg_off = ( $new['privmsg_disable'] ) ? "checked=\"checked\"" : ""; + +$prune_yes = ( $new['prune_enable'] ) ? "checked=\"checked\"" : ""; +$prune_no = ( !$new['prune_enable'] ) ? "checked=\"checked\"" : ""; + +$smile_yes = ( $new['allow_smilies'] ) ? "checked=\"checked\"" : ""; +$smile_no = ( !$new['allow_smilies'] ) ? "checked=\"checked\"" : ""; + +$sig_yes = ( $new['allow_sig'] ) ? "checked=\"checked\"" : ""; +$sig_no = ( !$new['allow_sig'] ) ? "checked=\"checked\"" : ""; + +$namechange_yes = ( $new['allow_namechange'] ) ? "checked=\"checked\"" : ""; +$namechange_no = ( !$new['allow_namechange'] ) ? "checked=\"checked\"" : ""; + +$avatars_local_yes = ( $new['allow_avatar_local'] ) ? "checked=\"checked\"" : ""; +$avatars_local_no = ( !$new['allow_avatar_local'] ) ? "checked=\"checked\"" : ""; +$avatars_remote_yes = ( $new['allow_avatar_remote'] ) ? "checked=\"checked\"" : ""; +$avatars_remote_no = ( !$new['allow_avatar_remote'] ) ? "checked=\"checked\"" : ""; +$avatars_upload_yes = ( $new['allow_avatar_upload'] ) ? "checked=\"checked\"" : ""; +$avatars_upload_no = ( !$new['allow_avatar_upload'] ) ? "checked=\"checked\"" : ""; + +$smtp_yes = ( $new['smtp_delivery'] ) ? "checked=\"checked\"" : ""; +$smtp_no = ( !$new['smtp_delivery'] ) ? "checked=\"checked\"" : ""; + +$template->set_filenames(array( + "body" => "admin/board_config_body.tpl") +); + +// +// Escape any quotes in the site description for proper display in the text +// box on the admin page +// +$new['site_desc'] = str_replace('"', '"', $new['site_desc']); +$new['sitename'] = str_replace('"', '"', strip_tags($new['sitename'])); +$template->assign_vars(array( + "S_CONFIG_ACTION" => append_sid("admin_board.$phpEx"), + + "L_YES" => $lang['Yes'], + "L_NO" => $lang['No'], + "L_CONFIGURATION_TITLE" => $lang['General_Config'], + "L_CONFIGURATION_EXPLAIN" => $lang['Config_explain'], + "L_GENERAL_SETTINGS" => $lang['General_settings'], + "L_SERVER_NAME" => $lang['Server_name'], + "L_SERVER_NAME_EXPLAIN" => $lang['Server_name_explain'], + "L_SERVER_PORT" => $lang['Server_port'], + "L_SERVER_PORT_EXPLAIN" => $lang['Server_port_explain'], + "L_SCRIPT_PATH" => $lang['Script_path'], + "L_SCRIPT_PATH_EXPLAIN" => $lang['Script_path_explain'], + "L_SITE_NAME" => $lang['Site_name'], + "L_SITE_DESCRIPTION" => $lang['Site_desc'], + "L_DISABLE_BOARD" => $lang['Board_disable'], + "L_DISABLE_BOARD_EXPLAIN" => $lang['Board_disable_explain'], + "L_ACCT_ACTIVATION" => $lang['Acct_activation'], + "L_NONE" => $lang['Acc_None'], + "L_USER" => $lang['Acc_User'], + "L_ADMIN" => $lang['Acc_Admin'], + "L_VISUAL_CONFIRM" => $lang['Visual_confirm'], + "L_VISUAL_CONFIRM_EXPLAIN" => $lang['Visual_confirm_explain'], + "L_ALLOW_AUTOLOGIN" => $lang['Allow_autologin'], + "L_ALLOW_AUTOLOGIN_EXPLAIN" => $lang['Allow_autologin_explain'], + "L_AUTOLOGIN_TIME" => $lang['Autologin_time'], + "L_AUTOLOGIN_TIME_EXPLAIN" => $lang['Autologin_time_explain'], + "L_COOKIE_SETTINGS" => $lang['Cookie_settings'], + "L_COOKIE_SETTINGS_EXPLAIN" => $lang['Cookie_settings_explain'], + "L_COOKIE_DOMAIN" => $lang['Cookie_domain'], + "L_COOKIE_NAME" => $lang['Cookie_name'], + "L_COOKIE_PATH" => $lang['Cookie_path'], + "L_COOKIE_SECURE" => $lang['Cookie_secure'], + "L_COOKIE_SECURE_EXPLAIN" => $lang['Cookie_secure_explain'], + "L_SESSION_LENGTH" => $lang['Session_length'], + "L_PRIVATE_MESSAGING" => $lang['Private_Messaging'], + "L_INBOX_LIMIT" => $lang['Inbox_limits'], + "L_SENTBOX_LIMIT" => $lang['Sentbox_limits'], + "L_SAVEBOX_LIMIT" => $lang['Savebox_limits'], + "L_DISABLE_PRIVATE_MESSAGING" => $lang['Disable_privmsg'], + "L_ENABLED" => $lang['Enabled'], + "L_DISABLED" => $lang['Disabled'], + "L_ABILITIES_SETTINGS" => $lang['Abilities_settings'], + "L_MAX_POLL_OPTIONS" => $lang['Max_poll_options'], + "L_FLOOD_INTERVAL" => $lang['Flood_Interval'], + "L_FLOOD_INTERVAL_EXPLAIN" => $lang['Flood_Interval_explain'], + "L_SEARCH_FLOOD_INTERVAL" => $lang['Search_Flood_Interval'], + "L_SEARCH_FLOOD_INTERVAL_EXPLAIN" => $lang['Search_Flood_Interval_explain'], + + 'L_MAX_LOGIN_ATTEMPTS' => $lang['Max_login_attempts'], + 'L_MAX_LOGIN_ATTEMPTS_EXPLAIN' => $lang['Max_login_attempts_explain'], + 'L_LOGIN_RESET_TIME' => $lang['Login_reset_time'], + 'L_LOGIN_RESET_TIME_EXPLAIN' => $lang['Login_reset_time_explain'], + 'MAX_LOGIN_ATTEMPTS' => $new['max_login_attempts'], + 'LOGIN_RESET_TIME' => $new['login_reset_time'], + + "L_BOARD_EMAIL_FORM" => $lang['Board_email_form'], + "L_BOARD_EMAIL_FORM_EXPLAIN" => $lang['Board_email_form_explain'], + "L_TOPICS_PER_PAGE" => $lang['Topics_per_page'], + "L_POSTS_PER_PAGE" => $lang['Posts_per_page'], + "L_HOT_THRESHOLD" => $lang['Hot_threshold'], + "L_DEFAULT_STYLE" => $lang['Default_style'], + "L_OVERRIDE_STYLE" => $lang['Override_style'], + "L_OVERRIDE_STYLE_EXPLAIN" => $lang['Override_style_explain'], + "L_DEFAULT_LANGUAGE" => $lang['Default_language'], + "L_DATE_FORMAT" => $lang['Date_format'], + "L_SYSTEM_TIMEZONE" => $lang['System_timezone'], + "L_ENABLE_GZIP" => $lang['Enable_gzip'], + "L_ENABLE_PRUNE" => $lang['Enable_prune'], + "L_ALLOW_HTML" => $lang['Allow_HTML'], + "L_ALLOW_BBCODE" => $lang['Allow_BBCode'], + "L_ALLOWED_TAGS" => $lang['Allowed_tags'], + "L_ALLOWED_TAGS_EXPLAIN" => $lang['Allowed_tags_explain'], + "L_ALLOW_SMILIES" => $lang['Allow_smilies'], + "L_SMILIES_PATH" => $lang['Smilies_path'], + "L_SMILIES_PATH_EXPLAIN" => $lang['Smilies_path_explain'], + "L_ALLOW_SIG" => $lang['Allow_sig'], + "L_MAX_SIG_LENGTH" => $lang['Max_sig_length'], + "L_MAX_SIG_LENGTH_EXPLAIN" => $lang['Max_sig_length_explain'], + "L_ALLOW_NAME_CHANGE" => $lang['Allow_name_change'], + "L_AVATAR_SETTINGS" => $lang['Avatar_settings'], + "L_ALLOW_LOCAL" => $lang['Allow_local'], + "L_ALLOW_REMOTE" => $lang['Allow_remote'], + "L_ALLOW_REMOTE_EXPLAIN" => $lang['Allow_remote_explain'], + "L_ALLOW_UPLOAD" => $lang['Allow_upload'], + "L_MAX_FILESIZE" => $lang['Max_filesize'], + "L_MAX_FILESIZE_EXPLAIN" => $lang['Max_filesize_explain'], + "L_MAX_AVATAR_SIZE" => $lang['Max_avatar_size'], + "L_MAX_AVATAR_SIZE_EXPLAIN" => $lang['Max_avatar_size_explain'], + "L_AVATAR_STORAGE_PATH" => $lang['Avatar_storage_path'], + "L_AVATAR_STORAGE_PATH_EXPLAIN" => $lang['Avatar_storage_path_explain'], + "L_AVATAR_GALLERY_PATH" => $lang['Avatar_gallery_path'], + "L_AVATAR_GALLERY_PATH_EXPLAIN" => $lang['Avatar_gallery_path_explain'], + "L_COPPA_SETTINGS" => $lang['COPPA_settings'], + "L_COPPA_FAX" => $lang['COPPA_fax'], + "L_COPPA_MAIL" => $lang['COPPA_mail'], + "L_COPPA_MAIL_EXPLAIN" => $lang['COPPA_mail_explain'], + "L_EMAIL_SETTINGS" => $lang['Email_settings'], + "L_ADMIN_EMAIL" => $lang['Admin_email'], + "L_EMAIL_SIG" => $lang['Email_sig'], + "L_EMAIL_SIG_EXPLAIN" => $lang['Email_sig_explain'], + "L_USE_SMTP" => $lang['Use_SMTP'], + "L_USE_SMTP_EXPLAIN" => $lang['Use_SMTP_explain'], + "L_SMTP_SERVER" => $lang['SMTP_server'], + "L_SMTP_USERNAME" => $lang['SMTP_username'], + "L_SMTP_USERNAME_EXPLAIN" => $lang['SMTP_username_explain'], + "L_SMTP_PASSWORD" => $lang['SMTP_password'], + "L_SMTP_PASSWORD_EXPLAIN" => $lang['SMTP_password_explain'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + + "SERVER_NAME" => $new['server_name'], + "SCRIPT_PATH" => $new['script_path'], + "SERVER_PORT" => $new['server_port'], + "SITENAME" => $new['sitename'], + "SITE_DESCRIPTION" => $new['site_desc'], + "S_DISABLE_BOARD_YES" => $disable_board_yes, + "S_DISABLE_BOARD_NO" => $disable_board_no, + "ACTIVATION_NONE" => USER_ACTIVATION_NONE, + "ACTIVATION_NONE_CHECKED" => $activation_none, + "ACTIVATION_USER" => USER_ACTIVATION_SELF, + "ACTIVATION_USER_CHECKED" => $activation_user, + "ACTIVATION_ADMIN" => USER_ACTIVATION_ADMIN, + "ACTIVATION_ADMIN_CHECKED" => $activation_admin, + "CONFIRM_ENABLE" => $confirm_yes, + "CONFIRM_DISABLE" => $confirm_no, + 'ALLOW_AUTOLOGIN_YES' => $allow_autologin_yes, + 'ALLOW_AUTOLOGIN_NO' => $allow_autologin_no, + 'AUTOLOGIN_TIME' => (int) $new['max_autologin_time'], + "BOARD_EMAIL_FORM_ENABLE" => $board_email_form_yes, + "BOARD_EMAIL_FORM_DISABLE" => $board_email_form_no, + "MAX_POLL_OPTIONS" => $new['max_poll_options'], + "FLOOD_INTERVAL" => $new['flood_interval'], + "SEARCH_FLOOD_INTERVAL" => $new['search_flood_interval'], + "TOPICS_PER_PAGE" => $new['topics_per_page'], + "POSTS_PER_PAGE" => $new['posts_per_page'], + "HOT_TOPIC" => $new['hot_threshold'], + "STYLE_SELECT" => $style_select, + "OVERRIDE_STYLE_YES" => $override_user_style_yes, + "OVERRIDE_STYLE_NO" => $override_user_style_no, + "LANG_SELECT" => $lang_select, + "L_DATE_FORMAT_EXPLAIN" => $lang['Date_format_explain'], + "DEFAULT_DATEFORMAT" => $new['default_dateformat'], + "TIMEZONE_SELECT" => $timezone_select, + "S_PRIVMSG_ENABLED" => $privmsg_on, + "S_PRIVMSG_DISABLED" => $privmsg_off, + "INBOX_LIMIT" => $new['max_inbox_privmsgs'], + "SENTBOX_LIMIT" => $new['max_sentbox_privmsgs'], + "SAVEBOX_LIMIT" => $new['max_savebox_privmsgs'], + "COOKIE_DOMAIN" => $new['cookie_domain'], + "COOKIE_NAME" => $new['cookie_name'], + "COOKIE_PATH" => $new['cookie_path'], + "SESSION_LENGTH" => $new['session_length'], + "S_COOKIE_SECURE_ENABLED" => $cookie_secure_yes, + "S_COOKIE_SECURE_DISABLED" => $cookie_secure_no, + "GZIP_YES" => $gzip_yes, + "GZIP_NO" => $gzip_no, + "PRUNE_YES" => $prune_yes, + "PRUNE_NO" => $prune_no, + "HTML_TAGS" => $html_tags, + "HTML_YES" => $html_yes, + "HTML_NO" => $html_no, + "BBCODE_YES" => $bbcode_yes, + "BBCODE_NO" => $bbcode_no, + "SMILE_YES" => $smile_yes, + "SMILE_NO" => $smile_no, + "SIG_YES" => $sig_yes, + "SIG_NO" => $sig_no, + "SIG_SIZE" => $new['max_sig_chars'], + "NAMECHANGE_YES" => $namechange_yes, + "NAMECHANGE_NO" => $namechange_no, + "AVATARS_LOCAL_YES" => $avatars_local_yes, + "AVATARS_LOCAL_NO" => $avatars_local_no, + "AVATARS_REMOTE_YES" => $avatars_remote_yes, + "AVATARS_REMOTE_NO" => $avatars_remote_no, + "AVATARS_UPLOAD_YES" => $avatars_upload_yes, + "AVATARS_UPLOAD_NO" => $avatars_upload_no, + "AVATAR_FILESIZE" => $new['avatar_filesize'], + "AVATAR_MAX_HEIGHT" => $new['avatar_max_height'], + "AVATAR_MAX_WIDTH" => $new['avatar_max_width'], + "AVATAR_PATH" => $new['avatar_path'], + "AVATAR_GALLERY_PATH" => $new['avatar_gallery_path'], + "SMILIES_PATH" => $new['smilies_path'], + "INBOX_PRIVMSGS" => $new['max_inbox_privmsgs'], + "SENTBOX_PRIVMSGS" => $new['max_sentbox_privmsgs'], + "SAVEBOX_PRIVMSGS" => $new['max_savebox_privmsgs'], + "EMAIL_FROM" => $new['board_email'], + "EMAIL_SIG" => $new['board_email_sig'], + "SMTP_YES" => $smtp_yes, + "SMTP_NO" => $smtp_no, + "SMTP_HOST" => $new['smtp_host'], + "SMTP_USERNAME" => $new['smtp_username'], + "SMTP_PASSWORD" => $new['smtp_password'], + "COPPA_MAIL" => $new['coppa_mail'], + "COPPA_FAX" => $new['coppa_fax']) +); + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2/admin/admin_db_utilities.php b/phpBB2/admin/admin_db_utilities.php new file mode 100644 index 0000000..d08db79 --- /dev/null +++ b/phpBB2/admin/admin_db_utilities.php @@ -0,0 +1,1008 @@ += '4.0.0') ? @ini_get('file_uploads') : @get_cfg_var('file_uploads'); + + if( (empty($file_uploads) || $file_uploads != 0) && (strtolower($file_uploads) != 'off') && (@phpversion() != '4.0.4pl1') ) + { + $module['General']['Restore_DB'] = $filename . "?perform=restore"; + } + + return; +} + +// +// Load default header +// +$no_page_header = TRUE; +$phpbb_root_path = "./../"; +require($phpbb_root_path . 'extension.inc'); +require('./pagestart.' . $phpEx); +include($phpbb_root_path . 'includes/sql_parse.'.$phpEx); + +// +// Set VERBOSE to 1 for debugging info.. +// +define("VERBOSE", 0); + +// +// Increase maximum execution time, but don't complain about it if it isn't +// allowed. +// +@set_time_limit(1200); + +// ----------------------- +// The following functions are adapted from phpMyAdmin and upgrade_20.php +// +function gzip_PrintFourChars($Val) +{ + for ($i = 0; $i < 4; $i ++) + { + $return .= chr($Val % 256); + $Val = floor($Val / 256); + } + return $return; +} + + + +// +// This function is used for grabbing the sequences for postgres... +// +function pg_get_sequences($crlf, $backup_type) +{ + global $db; + + $get_seq_sql = "SELECT relname FROM pg_class WHERE NOT relname ~ 'pg_.*' + AND relkind = 'S' ORDER BY relname"; + + $seq = $db->sql_query($get_seq_sql); + + if( !$num_seq = $db->sql_numrows($seq) ) + { + + $return_val = "# No Sequences Found $crlf"; + + } + else + { + $return_val = "# Sequences $crlf"; + $i_seq = 0; + + while($i_seq < $num_seq) + { + $row = $db->sql_fetchrow($seq); + $sequence = $row['relname']; + + $get_props_sql = "SELECT * FROM $sequence"; + $seq_props = $db->sql_query($get_props_sql); + + if($db->sql_numrows($seq_props) > 0) + { + $row1 = $db->sql_fetchrow($seq_props); + + if($backup_type == 'structure') + { + $row['last_value'] = 1; + } + + $return_val .= "CREATE SEQUENCE $sequence start " . $row['last_value'] . ' increment ' . $row['increment_by'] . ' maxvalue ' . $row['max_value'] . ' minvalue ' . $row['min_value'] . ' cache ' . $row['cache_value'] . "; $crlf"; + + } // End if numrows > 0 + + if(($row['last_value'] > 1) && ($backup_type != 'structure')) + { + $return_val .= "SELECT NEXTVALE('$sequence'); $crlf"; + unset($row['last_value']); + } + + $i_seq++; + + } // End while.. + + } // End else... + + return $returnval; + +} // End function... + +// +// The following functions will return the "CREATE TABLE syntax for the +// varying DBMS's +// +// This function returns, will return the table def's for postgres... +// +function get_table_def_postgresql($table, $crlf) +{ + global $drop, $db; + + $schema_create = ""; + // + // Get a listing of the fields, with their associated types, etc. + // + + $field_query = "SELECT a.attnum, a.attname AS field, t.typname as type, a.attlen AS length, a.atttypmod as lengthvar, a.attnotnull as notnull + FROM pg_class c, pg_attribute a, pg_type t + WHERE c.relname = '$table' + AND a.attnum > 0 + AND a.attrelid = c.oid + AND a.atttypid = t.oid + ORDER BY a.attnum"; + $result = $db->sql_query($field_query); + + if(!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $field_query); + } // end if.. + + if ($drop == 1) + { + $schema_create .= "DROP TABLE $table;$crlf"; + } // end if + + // + // Ok now we actually start building the SQL statements to restore the tables + // + + $schema_create .= "CREATE TABLE $table($crlf"; + + while ($row = $db->sql_fetchrow($result)) + { + // + // Get the data from the table + // + $sql_get_default = "SELECT d.adsrc AS rowdefault + FROM pg_attrdef d, pg_class c + WHERE (c.relname = '$table') + AND (c.oid = d.adrelid) + AND d.adnum = " . $row['attnum']; + $def_res = $db->sql_query($sql_get_default); + + if (!$def_res) + { + unset($row['rowdefault']); + } + else + { + $row['rowdefault'] = @pg_result($def_res, 0, 'rowdefault'); + } + + if ($row['type'] == 'bpchar') + { + // Internally stored as bpchar, but isn't accepted in a CREATE TABLE statement. + $row['type'] = 'char'; + } + + $schema_create .= ' ' . $row['field'] . ' ' . $row['type']; + + if (eregi('char', $row['type'])) + { + if ($row['lengthvar'] > 0) + { + $schema_create .= '(' . ($row['lengthvar'] -4) . ')'; + } + } + + if (eregi('numeric', $row['type'])) + { + $schema_create .= '('; + $schema_create .= sprintf("%s,%s", (($row['lengthvar'] >> 16) & 0xffff), (($row['lengthvar'] - 4) & 0xffff)); + $schema_create .= ')'; + } + + if (!empty($row['rowdefault'])) + { + $schema_create .= ' DEFAULT ' . $row['rowdefault']; + } + + if ($row['notnull'] == 't') + { + $schema_create .= ' NOT NULL'; + } + + $schema_create .= ",$crlf"; + + } + // + // Get the listing of primary keys. + // + + $sql_pri_keys = "SELECT ic.relname AS index_name, bc.relname AS tab_name, ta.attname AS column_name, i.indisunique AS unique_key, i.indisprimary AS primary_key + FROM pg_class bc, pg_class ic, pg_index i, pg_attribute ta, pg_attribute ia + WHERE (bc.oid = i.indrelid) + AND (ic.oid = i.indexrelid) + AND (ia.attrelid = i.indexrelid) + AND (ta.attrelid = bc.oid) + AND (bc.relname = '$table') + AND (ta.attrelid = i.indrelid) + AND (ta.attnum = i.indkey[ia.attnum-1]) + ORDER BY index_name, tab_name, column_name "; + $result = $db->sql_query($sql_pri_keys); + + if(!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $sql_pri_keys); + } + + while ( $row = $db->sql_fetchrow($result)) + { + if ($row['primary_key'] == 't') + { + if (!empty($primary_key)) + { + $primary_key .= ', '; + } + + $primary_key .= $row['column_name']; + $primary_key_name = $row['index_name']; + + } + else + { + // + // We have to store this all this info because it is possible to have a multi-column key... + // we can loop through it again and build the statement + // + $index_rows[$row['index_name']]['table'] = $table; + $index_rows[$row['index_name']]['unique'] = ($row['unique_key'] == 't') ? ' UNIQUE ' : ''; + $index_rows[$row['index_name']]['column_names'] .= $row['column_name'] . ', '; + } + } + + if (!empty($index_rows)) + { + while(list($idx_name, $props) = each($index_rows)) + { + $props['column_names'] = ereg_replace(", $", "" , $props['column_names']); + $index_create .= 'CREATE ' . $props['unique'] . " INDEX $idx_name ON $table (" . $props['column_names'] . ");$crlf"; + } + } + + if (!empty($primary_key)) + { + $schema_create .= " CONSTRAINT $primary_key_name PRIMARY KEY ($primary_key),$crlf"; + } + + // + // Generate constraint clauses for CHECK constraints + // + $sql_checks = "SELECT rcname as index_name, rcsrc + FROM pg_relcheck, pg_class bc + WHERE rcrelid = bc.oid + AND bc.relname = '$table' + AND NOT EXISTS ( + SELECT * + FROM pg_relcheck as c, pg_inherits as i + WHERE i.inhrelid = pg_relcheck.rcrelid + AND c.rcname = pg_relcheck.rcname + AND c.rcsrc = pg_relcheck.rcsrc + AND c.rcrelid = i.inhparent + )"; + $result = $db->sql_query($sql_checks); + + if (!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $sql_checks); + } + + // + // Add the constraints to the sql file. + // + while ($row = $db->sql_fetchrow($result)) + { + $schema_create .= ' CONSTRAINT ' . $row['index_name'] . ' CHECK ' . $row['rcsrc'] . ",$crlf"; + } + + $schema_create = ereg_replace(',' . $crlf . '$', '', $schema_create); + $index_create = ereg_replace(',' . $crlf . '$', '', $index_create); + + $schema_create .= "$crlf);$crlf"; + + if (!empty($index_create)) + { + $schema_create .= $index_create; + } + + // + // Ok now we've built all the sql return it to the calling function. + // + return (stripslashes($schema_create)); + +} + +// +// This function returns the "CREATE TABLE" syntax for mysql dbms... +// +function get_table_def_mysql($table, $crlf) +{ + global $drop, $db; + + $schema_create = ""; + $field_query = "SHOW FIELDS FROM $table"; + $key_query = "SHOW KEYS FROM $table"; + + // + // If the user has selected to drop existing tables when doing a restore. + // Then we add the statement to drop the tables.... + // + if ($drop == 1) + { + $schema_create .= "DROP TABLE IF EXISTS $table;$crlf"; + } + + $schema_create .= "CREATE TABLE $table($crlf"; + + // + // Ok lets grab the fields... + // + $result = $db->sql_query($field_query); + if(!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $field_query); + } + + while ($row = $db->sql_fetchrow($result)) + { + $schema_create .= ' ' . $row['Field'] . ' ' . $row['Type']; + + if(!empty($row['Default'])) + { + $schema_create .= ' DEFAULT \'' . $row['Default'] . '\''; + } + + if($row['Null'] != "YES") + { + $schema_create .= ' NOT NULL'; + } + + if($row['Extra'] != "") + { + $schema_create .= ' ' . $row['Extra']; + } + + $schema_create .= ",$crlf"; + } + // + // Drop the last ',$crlf' off ;) + // + $schema_create = ereg_replace(',' . $crlf . '$', "", $schema_create); + + // + // Get any Indexed fields from the database... + // + $result = $db->sql_query($key_query); + if(!$result) + { + message_die(GENERAL_ERROR, "FAILED IN get_table_def (show keys)", "", __LINE__, __FILE__, $key_query); + } + + while($row = $db->sql_fetchrow($result)) + { + $kname = $row['Key_name']; + + if(($kname != 'PRIMARY') && ($row['Non_unique'] == 0)) + { + $kname = "UNIQUE|$kname"; + } + + if(!is_array($index[$kname])) + { + $index[$kname] = array(); + } + + $index[$kname][] = $row['Column_name']; + } + + while(list($x, $columns) = @each($index)) + { + $schema_create .= ", $crlf"; + + if($x == 'PRIMARY') + { + $schema_create .= ' PRIMARY KEY (' . implode($columns, ', ') . ')'; + } + elseif (substr($x,0,6) == 'UNIQUE') + { + $schema_create .= ' UNIQUE ' . substr($x,7) . ' (' . implode($columns, ', ') . ')'; + } + else + { + $schema_create .= " KEY $x (" . implode($columns, ', ') . ')'; + } + } + + $schema_create .= "$crlf);"; + + if(get_magic_quotes_runtime()) + { + return(stripslashes($schema_create)); + } + else + { + return($schema_create); + } + +} // End get_table_def_mysql + + +// +// This fuction will return a tables create definition to be used as an sql +// statement. +// +// +// The following functions Get the data from the tables and format it as a +// series of INSERT statements, for each different DBMS... +// After every row a custom callback function $handler gets called. +// $handler must accept one parameter ($sql_insert); +// +// +// Here is the function for postgres... +// +function get_table_content_postgresql($table, $handler) +{ + global $db; + + // + // Grab all of the data from current table. + // + + $result = $db->sql_query("SELECT * FROM $table"); + + if (!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_content (select *)", "", __LINE__, __FILE__, "SELECT * FROM $table"); + } + + $i_num_fields = $db->sql_numfields($result); + + for ($i = 0; $i < $i_num_fields; $i++) + { + $aryType[] = $db->sql_fieldtype($i, $result); + $aryName[] = $db->sql_fieldname($i, $result); + } + + $iRec = 0; + + while($row = $db->sql_fetchrow($result)) + { + $schema_vals = ''; + $schema_fields = ''; + $schema_insert = ''; + // + // Build the SQL statement to recreate the data. + // + for($i = 0; $i < $i_num_fields; $i++) + { + $strVal = $row[$aryName[$i]]; + if (eregi("char|text|bool", $aryType[$i])) + { + $strQuote = "'"; + $strEmpty = ""; + $strVal = addslashes($strVal); + } + elseif (eregi("date|timestamp", $aryType[$i])) + { + if (empty($strVal)) + { + $strQuote = ""; + } + else + { + $strQuote = "'"; + } + } + else + { + $strQuote = ""; + $strEmpty = "NULL"; + } + + if (empty($strVal) && $strVal != "0") + { + $strVal = $strEmpty; + } + + $schema_vals .= " $strQuote$strVal$strQuote,"; + $schema_fields .= " $aryName[$i],"; + + } + + $schema_vals = ereg_replace(",$", "", $schema_vals); + $schema_vals = ereg_replace("^ ", "", $schema_vals); + $schema_fields = ereg_replace(",$", "", $schema_fields); + $schema_fields = ereg_replace("^ ", "", $schema_fields); + + // + // Take the ordered fields and their associated data and build it + // into a valid sql statement to recreate that field in the data. + // + $schema_insert = "INSERT INTO $table ($schema_fields) VALUES($schema_vals);"; + + $handler(trim($schema_insert)); + } + + return(true); + +}// end function get_table_content_postgres... + +// +// This function is for getting the data from a mysql table. +// + +function get_table_content_mysql($table, $handler) +{ + global $db; + + // Grab the data from the table. + if (!($result = $db->sql_query("SELECT * FROM $table"))) + { + message_die(GENERAL_ERROR, "Failed in get_table_content (select *)", "", __LINE__, __FILE__, "SELECT * FROM $table"); + } + + // Loop through the resulting rows and build the sql statement. + if ($row = $db->sql_fetchrow($result)) + { + $handler("\n#\n# Table Data for $table\n#\n"); + $field_names = array(); + + // Grab the list of field names. + $num_fields = $db->sql_numfields($result); + $table_list = '('; + for ($j = 0; $j < $num_fields; $j++) + { + $field_names[$j] = $db->sql_fieldname($j, $result); + $table_list .= (($j > 0) ? ', ' : '') . $field_names[$j]; + + } + $table_list .= ')'; + + do + { + // Start building the SQL statement. + $schema_insert = "INSERT INTO $table $table_list VALUES("; + + // Loop through the rows and fill in data for each column + for ($j = 0; $j < $num_fields; $j++) + { + $schema_insert .= ($j > 0) ? ', ' : ''; + + if(!isset($row[$field_names[$j]])) + { + // + // If there is no data for the column set it to null. + // There was a problem here with an extra space causing the + // sql file not to reimport if the last column was null in + // any table. Should be fixed now :) JLH + // + $schema_insert .= 'NULL'; + } + elseif ($row[$field_names[$j]] != '') + { + $schema_insert .= '\'' . addslashes($row[$field_names[$j]]) . '\''; + } + else + { + $schema_insert .= '\'\''; + } + } + + $schema_insert .= ');'; + + // Go ahead and send the insert statement to the handler function. + $handler(trim($schema_insert)); + + } + while ($row = $db->sql_fetchrow($result)); + } + + return(true); +} + +function output_table_content($content) +{ + global $tempfile; + + //fwrite($tempfile, $content . "\n"); + //$backup_sql .= $content . "\n"; + echo $content ."\n"; + return; +} +// +// End Functions +// ------------- + + +// +// Begin program proper +// +if( isset($HTTP_GET_VARS['perform']) || isset($HTTP_POST_VARS['perform']) ) +{ + $perform = (isset($HTTP_POST_VARS['perform'])) ? $HTTP_POST_VARS['perform'] : $HTTP_GET_VARS['perform']; + + switch($perform) + { + case 'backup': + + $error = false; + switch(SQL_LAYER) + { + case 'oracle': + $error = true; + break; + case 'db2': + $error = true; + break; + case 'msaccess': + $error = true; + break; + case 'mssql': + case 'mssql-odbc': + $error = true; + break; + } + + if ($error) + { + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/admin_message_body.tpl") + ); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Information'], + "MESSAGE_TEXT" => $lang['Backups_not_supported']) + ); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + } + + $tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words', 'confirm', 'sessions_keys'); + + $additional_tables = (isset($HTTP_POST_VARS['additional_tables'])) ? $HTTP_POST_VARS['additional_tables'] : ( (isset($HTTP_GET_VARS['additional_tables'])) ? $HTTP_GET_VARS['additional_tables'] : "" ); + + $backup_type = (isset($HTTP_POST_VARS['backup_type'])) ? $HTTP_POST_VARS['backup_type'] : ( (isset($HTTP_GET_VARS['backup_type'])) ? $HTTP_GET_VARS['backup_type'] : "" ); + + $gzipcompress = (!empty($HTTP_POST_VARS['gzipcompress'])) ? $HTTP_POST_VARS['gzipcompress'] : ( (!empty($HTTP_GET_VARS['gzipcompress'])) ? $HTTP_GET_VARS['gzipcompress'] : 0 ); + + $drop = (!empty($HTTP_POST_VARS['drop'])) ? intval($HTTP_POST_VARS['drop']) : ( (!empty($HTTP_GET_VARS['drop'])) ? intval($HTTP_GET_VARS['drop']) : 0 ); + + if(!empty($additional_tables)) + { + if(ereg(",", $additional_tables)) + { + $additional_tables = split(",", $additional_tables); + + for($i = 0; $i < count($additional_tables); $i++) + { + $tables[] = trim($additional_tables[$i]); + } + + } + else + { + $tables[] = trim($additional_tables); + } + } + + if( !isset($HTTP_POST_VARS['backupstart']) && !isset($HTTP_GET_VARS['backupstart'])) + { + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/db_utils_backup_body.tpl") + ); + $s_hidden_fields = ""; + + $template->assign_vars(array( + "L_DATABASE_BACKUP" => $lang['Database_Utilities'] . " : " . $lang['Backup'], + "L_BACKUP_EXPLAIN" => $lang['Backup_explain'], + "L_FULL_BACKUP" => $lang['Full_backup'], + "L_STRUCTURE_BACKUP" => $lang['Structure_backup'], + "L_DATA_BACKUP" => $lang['Data_backup'], + "L_ADDITIONAL_TABLES" => $lang['Additional_tables'], + "L_START_BACKUP" => $lang['Start_backup'], + "L_BACKUP_OPTIONS" => $lang['Backup_options'], + "L_GZIP_COMPRESS" => $lang['Gzip_compress'], + "L_NO" => $lang['No'], + "L_YES" => $lang['Yes'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx")) + ); + $template->pparse("body"); + + break; + + } + else if( !isset($HTTP_POST_VARS['startdownload']) && !isset($HTTP_GET_VARS['startdownload']) ) + { + if(is_array($additional_tables)) + { + $additional_tables = implode(',', $additional_tables); + } + $template->set_filenames(array( + "body" => "admin/admin_message_body.tpl") + ); + + $template->assign_vars(array( + "META" => '', + + "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Backup'], + "MESSAGE_TEXT" => $lang['Backup_download']) + ); + + include('./page_header_admin.'.$phpEx); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + + } + header("Pragma: no-cache"); + $do_gzip_compress = FALSE; + if( $gzipcompress ) + { + $phpver = phpversion(); + + if($phpver >= "4.0") + { + if(extension_loaded("zlib")) + { + $do_gzip_compress = TRUE; + } + } + } + if($do_gzip_compress) + { + @ob_start(); + @ob_implicit_flush(0); + header("Content-Type: application/x-gzip; name=\"phpbb_db_backup.sql.gz\""); + header("Content-disposition: attachment; filename=phpbb_db_backup.sql.gz"); + } + else + { + header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.sql\""); + header("Content-disposition: attachment; filename=phpbb_db_backup.sql"); + } + + // + // Build the sql script file... + // + echo "#\n"; + echo "# phpBB Backup Script\n"; + echo "# Dump of tables for $dbname\n"; + echo "#\n# DATE : " . gmdate("d-m-Y H:i:s", time()) . " GMT\n"; + echo "#\n"; + + if(SQL_LAYER == 'postgresql') + { + echo "\n" . pg_get_sequences("\n", $backup_type); + } + for($i = 0; $i < count($tables); $i++) + { + $table_name = $tables[$i]; + + switch (SQL_LAYER) + { + case 'postgresql': + $table_def_function = "get_table_def_postgresql"; + $table_content_function = "get_table_content_postgresql"; + break; + + case 'mysql': + case 'mysql4': + $table_def_function = "get_table_def_mysql"; + $table_content_function = "get_table_content_mysql"; + break; + } + + if($backup_type != 'data') + { + echo "#\n# TABLE: " . $table_prefix . $table_name . "\n#\n"; + echo $table_def_function($table_prefix . $table_name, "\n") . "\n"; + } + + if($backup_type != 'structure') + { + $table_content_function($table_prefix . $table_name, "output_table_content"); + } + } + + if($do_gzip_compress) + { + $Size = ob_get_length(); + $Crc = crc32(ob_get_contents()); + $contents = gzcompress(ob_get_contents()); + ob_end_clean(); + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00".substr($contents, 0, strlen($contents) - 4).gzip_PrintFourChars($Crc).gzip_PrintFourChars($Size); + } + exit; + + break; + + case 'restore': + if(!isset($HTTP_POST_VARS['restore_start'])) + { + // + // Define Template files... + // + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/db_utils_restore_body.tpl") + ); + + $s_hidden_fields = ""; + + $template->assign_vars(array( + "L_DATABASE_RESTORE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], + "L_RESTORE_EXPLAIN" => $lang['Restore_explain'], + "L_SELECT_FILE" => $lang['Select_file'], + "L_START_RESTORE" => $lang['Start_Restore'], + + "S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + $template->pparse("body"); + + break; + + } + else + { + // + // Handle the file upload .... + // If no file was uploaded report an error... + // + $backup_file_name = (!empty($HTTP_POST_FILES['backup_file']['name'])) ? $HTTP_POST_FILES['backup_file']['name'] : ""; + $backup_file_tmpname = ($HTTP_POST_FILES['backup_file']['tmp_name'] != "none") ? $HTTP_POST_FILES['backup_file']['tmp_name'] : ""; + $backup_file_type = (!empty($HTTP_POST_FILES['backup_file']['type'])) ? $HTTP_POST_FILES['backup_file']['type'] : ""; + + if($backup_file_tmpname == "" || $backup_file_name == "") + { + message_die(GENERAL_MESSAGE, $lang['Restore_Error_no_file']); + } + // + // If I file was actually uploaded, check to make sure that we + // are actually passed the name of an uploaded file, and not + // a hackers attempt at getting us to process a local system + // file. + // + if( file_exists(phpbb_realpath($backup_file_tmpname)) ) + { + if( preg_match("/^(text\/[a-zA-Z]+)|(application\/(x\-)?gzip(\-compressed)?)|(application\/octet-stream)$/is", $backup_file_type) ) + { + if( preg_match("/\.gz$/is",$backup_file_name) ) + { + $do_gzip_compress = FALSE; + $phpver = phpversion(); + if($phpver >= "4.0") + { + if(extension_loaded("zlib")) + { + $do_gzip_compress = TRUE; + } + } + + if($do_gzip_compress) + { + $gz_ptr = gzopen($backup_file_tmpname, 'rb'); + $sql_query = ""; + while( !gzeof($gz_ptr) ) + { + $sql_query .= gzgets($gz_ptr, 100000); + } + } + else + { + message_die(GENERAL_ERROR, $lang['Restore_Error_decompress']); + } + } + else + { + $sql_query = fread(fopen($backup_file_tmpname, 'r'), filesize($backup_file_tmpname)); + } + // + // Comment this line out to see if this fixes the stuff... + // + //$sql_query = stripslashes($sql_query); + } + else + { + message_die(GENERAL_ERROR, $lang['Restore_Error_filename'] ." $backup_file_type $backup_file_name"); + } + } + else + { + message_die(GENERAL_ERROR, $lang['Restore_Error_uploading']); + } + + if($sql_query != "") + { + // Strip out sql comments... + $sql_query = remove_remarks($sql_query); + $pieces = split_sql_file($sql_query, ";"); + + $sql_count = count($pieces); + for($i = 0; $i < $sql_count; $i++) + { + $sql = trim($pieces[$i]); + + if(!empty($sql) and $sql[0] != "#") + { + if(VERBOSE == 1) + { + echo "Executing: $sql\n
"; + flush(); + } + + $result = $db->sql_query($sql); + + if(!$result && ( !(SQL_LAYER == 'postgresql' && eregi("drop table", $sql) ) ) ) + { + message_die(GENERAL_ERROR, "Error importing backup file", "", __LINE__, __FILE__, $sql); + } + } + } + } + + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/admin_message_body.tpl") + ); + + $message = $lang['Restore_success']; + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], + "MESSAGE_TEXT" => $message) + ); + + $template->pparse("body"); + break; + } + break; + } +} + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2/admin/admin_disallow.php b/phpBB2/admin/admin_disallow.php new file mode 100644 index 0000000..a620230 --- /dev/null +++ b/phpBB2/admin/admin_disallow.php @@ -0,0 +1,146 @@ +sql_query( $sql ); + if ( !$result ) + { + message_die(GENERAL_ERROR, "Could not add disallowed user.", "",__LINE__, __FILE__, $sql); + } + $message = $lang['Disallow_successful']; + } + + $message .= "

" . sprintf($lang['Click_return_disallowadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); +} +else if( isset($HTTP_POST_VARS['delete_name']) ) +{ + $disallowed_id = ( isset($HTTP_POST_VARS['disallowed_id']) ) ? intval( $HTTP_POST_VARS['disallowed_id'] ) : intval( $HTTP_GET_VARS['disallowed_id'] ); + + $sql = "DELETE FROM " . DISALLOW_TABLE . " + WHERE disallow_id = $disallowed_id"; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't removed disallowed user.", "",__LINE__, __FILE__, $sql); + } + + $message .= $lang['Disallowed_deleted'] . "

" . sprintf($lang['Click_return_disallowadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + +} + +// +// Grab the current list of disallowed usernames... +// +$sql = "SELECT * + FROM " . DISALLOW_TABLE; +$result = $db->sql_query($sql); +if( !$result ) +{ + message_die(GENERAL_ERROR, "Couldn't get disallowed users.", "", __LINE__, __FILE__, $sql ); +} + +$disallowed = $db->sql_fetchrowset($result); + +// +// Ok now generate the info for the template, which will be put out no matter +// what mode we are in. +// +$disallow_select = ''; + +$template->set_filenames(array( + "body" => "admin/disallow_body.tpl") +); + +$template->assign_vars(array( + "S_DISALLOW_SELECT" => $disallow_select, + "S_FORM_ACTION" => append_sid("admin_disallow.$phpEx"), + + "L_INFO" => $output_info, + "L_DISALLOW_TITLE" => $lang['Disallow_control'], + "L_DISALLOW_EXPLAIN" => $lang['Disallow_explain'], + "L_DELETE" => $lang['Delete_disallow'], + "L_DELETE_DISALLOW" => $lang['Delete_disallow_title'], + "L_DELETE_EXPLAIN" => $lang['Delete_disallow_explain'], + "L_ADD" => $lang['Add_disallow'], + "L_ADD_DISALLOW" => $lang['Add_disallow_title'], + "L_ADD_EXPLAIN" => $lang['Add_disallow_explain'], + "L_USERNAME" => $lang['Username']) +); + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_forum_prune.php b/phpBB2/admin/admin_forum_prune.php new file mode 100644 index 0000000..50cc397 --- /dev/null +++ b/phpBB2/admin/admin_forum_prune.php @@ -0,0 +1,199 @@ +sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain list of forums for pruning', '', __LINE__, __FILE__, $sql); +} + +$forum_rows = array(); +while( $row = $db->sql_fetchrow($result) ) +{ + $forum_rows[] = $row; +} + +// +// Check for submit to be equal to Prune. If so then proceed with the pruning. +// +if( isset($HTTP_POST_VARS['doprune']) ) +{ + $prunedays = ( isset($HTTP_POST_VARS['prunedays']) ) ? intval($HTTP_POST_VARS['prunedays']) : 0; + + // Convert days to seconds for timestamp functions... + $prunedate = time() - ( $prunedays * 86400 ); + + $template->set_filenames(array( + 'body' => 'admin/forum_prune_result_body.tpl') + ); + + for($i = 0; $i < count($forum_rows); $i++) + { + $p_result = prune($forum_rows[$i]['forum_id'], $prunedate); + sync('forum', $forum_rows[$i]['forum_id']); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('prune_results', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_NAME' => $forum_rows[$i]['forum_name'], + 'FORUM_TOPICS' => $p_result['topics'], + 'FORUM_POSTS' => $p_result['posts']) + ); + } + + $template->assign_vars(array( + 'L_FORUM_PRUNE' => $lang['Forum_Prune'], + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS_PRUNED' => $lang['Topics_pruned'], + 'L_POSTS_PRUNED' => $lang['Posts_pruned'], + 'L_PRUNE_RESULT' => $lang['Prune_success']) + ); +} +else +{ + // + // If they haven't selected a forum for pruning yet then + // display a select box to use for pruning. + // + if( empty($HTTP_POST_VARS[POST_FORUM_URL]) ) + { + // + // Output a selection table if no forum id has been specified. + // + $template->set_filenames(array( + 'body' => 'admin/forum_prune_select_body.tpl') + ); + + $select_list = ''; + + // + // Assign the template variables. + // + $template->assign_vars(array( + 'L_FORUM_PRUNE' => $lang['Forum_Prune'], + 'L_SELECT_FORUM' => $lang['Select_a_Forum'], + 'L_LOOK_UP' => $lang['Look_up_Forum'], + + 'S_FORUMPRUNE_ACTION' => append_sid("admin_forum_prune.$phpEx"), + 'S_FORUMS_SELECT' => $select_list) + ); + } + else + { + $forum_id = intval($HTTP_POST_VARS[POST_FORUM_URL]); + + // + // Output the form to retrieve Prune information. + // + $template->set_filenames(array( + 'body' => 'admin/forum_prune_body.tpl') + ); + + $forum_name = ( $forum_id == -1 ) ? $lang['All_Forums'] : $forum_rows[0]['forum_name']; + + $prune_data = $lang['Prune_topics_not_posted'] . " "; + $prune_data .= ' ' . $lang['Days']; + + $hidden_input = ''; + + // + // Assign the template variables. + // + $template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + + 'L_FORUM' => $lang['Forum'], + 'L_FORUM_PRUNE' => $lang['Forum_Prune'], + 'L_FORUM_PRUNE_EXPLAIN' => $lang['Forum_Prune_explain'], + 'L_DO_PRUNE' => $lang['Do_Prune'], + + 'S_FORUMPRUNE_ACTION' => append_sid("admin_forum_prune.$phpEx"), + 'S_PRUNE_DATA' => $prune_data, + 'S_HIDDEN_VARS' => $hidden_input) + ); + } +} +// +// Actually output the page here. +// +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_forumauth.php b/phpBB2/admin/admin_forumauth.php new file mode 100644 index 0000000..12f540e --- /dev/null +++ b/phpBB2/admin/admin_forumauth.php @@ -0,0 +1,328 @@ + array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG), + 1 => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG), + 2 => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG), + 3 => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL), + 4 => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL), + 5 => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD), + 6 => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD), +); + +$simple_auth_types = array($lang['Public'], $lang['Registered'], $lang['Registered'] . ' [' . $lang['Hidden'] . ']', $lang['Private'], $lang['Private'] . ' [' . $lang['Hidden'] . ']', $lang['Moderators'], $lang['Moderators'] . ' [' . $lang['Hidden'] . ']'); + +$forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate'); + +$field_names = array( + 'auth_view' => $lang['View'], + 'auth_read' => $lang['Read'], + 'auth_post' => $lang['Post'], + 'auth_reply' => $lang['Reply'], + 'auth_edit' => $lang['Edit'], + 'auth_delete' => $lang['Delete'], + 'auth_sticky' => $lang['Sticky'], + 'auth_announce' => $lang['Announce'], + 'auth_vote' => $lang['Vote'], + 'auth_pollcreate' => $lang['Pollcreate']); + +$forum_auth_levels = array('ALL', 'REG', 'PRIVATE', 'MOD', 'ADMIN'); +$forum_auth_const = array(AUTH_ALL, AUTH_REG, AUTH_ACL, AUTH_MOD, AUTH_ADMIN); + +if(isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL])) +{ + $forum_id = (isset($HTTP_POST_VARS[POST_FORUM_URL])) ? intval($HTTP_POST_VARS[POST_FORUM_URL]) : intval($HTTP_GET_VARS[POST_FORUM_URL]); + $forum_sql = "AND forum_id = $forum_id"; +} +else +{ + unset($forum_id); + $forum_sql = ''; +} + +if( isset($HTTP_GET_VARS['adv']) ) +{ + $adv = intval($HTTP_GET_VARS['adv']); +} +else +{ + unset($adv); +} + +// +// Start program proper +// +if( isset($HTTP_POST_VARS['submit']) ) +{ + $sql = ''; + + if(!empty($forum_id)) + { + if(isset($HTTP_POST_VARS['simpleauth'])) + { + $simple_ary = $simple_auth_ary[intval($HTTP_POST_VARS['simpleauth'])]; + + for($i = 0; $i < count($simple_ary); $i++) + { + $sql .= ( ( $sql != '' ) ? ', ' : '' ) . $forum_auth_fields[$i] . ' = ' . $simple_ary[$i]; + } + + if (is_array($simple_ary)) + { + $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id"; + } + } + else + { + for($i = 0; $i < count($forum_auth_fields); $i++) + { + $value = intval($HTTP_POST_VARS[$forum_auth_fields[$i]]); + + if ( $forum_auth_fields[$i] == 'auth_vote' ) + { + if ( $HTTP_POST_VARS['auth_vote'] == AUTH_ALL ) + { + $value = AUTH_REG; + } + } + + $sql .= ( ( $sql != '' ) ? ', ' : '' ) .$forum_auth_fields[$i] . ' = ' . $value; + } + + $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id"; + } + + if ( $sql != '' ) + { + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update auth table', '', __LINE__, __FILE__, $sql); + } + } + + $forum_sql = ''; + $adv = 0; + } + + $template->assign_vars(array( + 'META' => '') + ); + $message = $lang['Forum_auth_updated'] . '

' . sprintf($lang['Click_return_forumauth'], '', ""); + message_die(GENERAL_MESSAGE, $message); + +} // End of submit + +// +// Get required information, either all forums if +// no id was specified or just the requsted if it +// was +// +$sql = "SELECT f.* + FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c + WHERE c.cat_id = f.cat_id + $forum_sql + ORDER BY c.cat_order ASC, f.forum_order ASC"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Couldn't obtain forum list", "", __LINE__, __FILE__, $sql); +} + +$forum_rows = $db->sql_fetchrowset($result); +$db->sql_freeresult($result); + +if( empty($forum_id) ) +{ + // + // Output the selection table if no forum id was + // specified + // + $template->set_filenames(array( + 'body' => 'admin/auth_select_body.tpl') + ); + + $select_list = ''; + + $template->assign_vars(array( + 'L_AUTH_TITLE' => $lang['Auth_Control_Forum'], + 'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'], + 'L_AUTH_SELECT' => $lang['Select_a_Forum'], + 'L_LOOK_UP' => $lang['Look_up_Forum'], + + 'S_AUTH_ACTION' => append_sid("admin_forumauth.$phpEx"), + 'S_AUTH_SELECT' => $select_list) + ); + +} +else +{ + // + // Output the authorisation details if an id was + // specified + // + $template->set_filenames(array( + 'body' => 'admin/auth_forum_body.tpl') + ); + + $forum_name = $forum_rows[0]['forum_name']; + + @reset($simple_auth_ary); + while( list($key, $auth_levels) = each($simple_auth_ary)) + { + $matched = 1; + for($k = 0; $k < count($auth_levels); $k++) + { + $matched_type = $key; + + if ( $forum_rows[0][$forum_auth_fields[$k]] != $auth_levels[$k] ) + { + $matched = 0; + } + } + + if ( $matched ) + { + break; + } + } + + // + // If we didn't get a match above then we + // automatically switch into 'advanced' mode + // + if ( !isset($adv) && !$matched ) + { + $adv = 1; + } + + $s_column_span == 0; + + if ( empty($adv) ) + { + $simple_auth = ''; + + $template->assign_block_vars('forum_auth_titles', array( + 'CELL_TITLE' => $lang['Simple_mode']) + ); + $template->assign_block_vars('forum_auth_data', array( + 'S_AUTH_LEVELS_SELECT' => $simple_auth) + ); + + $s_column_span++; + } + else + { + // + // Output values of individual + // fields + // + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $custom_auth[$j] = '  '; + + $cell_title = $field_names[$forum_auth_fields[$j]]; + + $template->assign_block_vars('forum_auth_titles', array( + 'CELL_TITLE' => $cell_title) + ); + $template->assign_block_vars('forum_auth_data', array( + 'S_AUTH_LEVELS_SELECT' => $custom_auth[$j]) + ); + + $s_column_span++; + } + } + + $adv_mode = ( empty($adv) ) ? '1' : '0'; + $switch_mode = append_sid("admin_forumauth.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&adv=". $adv_mode); + $switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode']; + $u_switch_mode = '' . $switch_mode_text . ''; + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + + 'L_FORUM' => $lang['Forum'], + 'L_AUTH_TITLE' => $lang['Auth_Control_Forum'], + 'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + + 'U_SWITCH_MODE' => $u_switch_mode, + + 'S_FORUMAUTH_ACTION' => append_sid("admin_forumauth.$phpEx"), + 'S_COLUMN_SPAN' => $s_column_span, + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + +} + +include('./page_header_admin.'.$phpEx); + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_forums.php b/phpBB2/admin/admin_forums.php new file mode 100644 index 0000000..9974eda --- /dev/null +++ b/phpBB2/admin/admin_forums.php @@ -0,0 +1,1028 @@ + AUTH_ALL, + "auth_read" => AUTH_ALL, + "auth_post" => AUTH_REG, + "auth_reply" => AUTH_REG, + "auth_edit" => AUTH_REG, + "auth_delete" => AUTH_REG, + "auth_sticky" => AUTH_MOD, + "auth_announce" => AUTH_MOD, + "auth_vote" => AUTH_REG, + "auth_pollcreate" => AUTH_REG +); + +// +// Mode setting +// +if( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) ) +{ + $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ""; +} + +// ------------------ +// Begin function block +// +function get_info($mode, $id) +{ + global $db; + + switch($mode) + { + case 'category': + $table = CATEGORIES_TABLE; + $idfield = 'cat_id'; + $namefield = 'cat_title'; + break; + + case 'forum': + $table = FORUMS_TABLE; + $idfield = 'forum_id'; + $namefield = 'forum_name'; + break; + + default: + message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); + break; + } + $sql = "SELECT count(*) as total + FROM $table"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get Forum/Category information", "", __LINE__, __FILE__, $sql); + } + $count = $db->sql_fetchrow($result); + $count = $count['total']; + + $sql = "SELECT * + FROM $table + WHERE $idfield = $id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get Forum/Category information", "", __LINE__, __FILE__, $sql); + } + + if( $db->sql_numrows($result) != 1 ) + { + message_die(GENERAL_ERROR, "Forum/Category doesn't exist or multiple forums/categories with ID $id", "", __LINE__, __FILE__); + } + + $return = $db->sql_fetchrow($result); + $return['number'] = $count; + return $return; +} + +function get_list($mode, $id, $select) +{ + global $db; + + switch($mode) + { + case 'category': + $table = CATEGORIES_TABLE; + $idfield = 'cat_id'; + $namefield = 'cat_title'; + break; + + case 'forum': + $table = FORUMS_TABLE; + $idfield = 'forum_id'; + $namefield = 'forum_name'; + break; + + default: + message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); + break; + } + + $sql = "SELECT * + FROM $table"; + if( $select == 0 ) + { + $sql .= " WHERE $idfield <> $id"; + } + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql); + } + + $cat_list = ""; + + while( $row = $db->sql_fetchrow($result) ) + { + $s = ""; + if ($row[$idfield] == $id) + { + $s = " selected=\"selected\""; + } + $catlist .= "\n"; + } + + return($catlist); +} + +function renumber_order($mode, $cat = 0) +{ + global $db; + + switch($mode) + { + case 'category': + $table = CATEGORIES_TABLE; + $idfield = 'cat_id'; + $orderfield = 'cat_order'; + $cat = 0; + break; + + case 'forum': + $table = FORUMS_TABLE; + $idfield = 'forum_id'; + $orderfield = 'forum_order'; + $catfield = 'cat_id'; + break; + + default: + message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); + break; + } + + $sql = "SELECT * FROM $table"; + if( $cat != 0) + { + $sql .= " WHERE $catfield = $cat"; + } + $sql .= " ORDER BY $orderfield ASC"; + + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql); + } + + $i = 10; + $inc = 10; + + while( $row = $db->sql_fetchrow($result) ) + { + $sql = "UPDATE $table + SET $orderfield = $i + WHERE $idfield = " . $row[$idfield]; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update order fields", "", __LINE__, __FILE__, $sql); + } + $i += 10; + } + +} +// +// End function block +// ------------------ + +// +// Begin program proper +// +if( isset($HTTP_POST_VARS['addforum']) || isset($HTTP_POST_VARS['addcategory']) ) +{ + $mode = ( isset($HTTP_POST_VARS['addforum']) ) ? "addforum" : "addcat"; + + if( $mode == "addforum" ) + { + list($cat_id) = each($HTTP_POST_VARS['addforum']); + $cat_id = intval($cat_id); + // + // stripslashes needs to be run on this because slashes are added when the forum name is posted + // + $forumname = stripslashes($HTTP_POST_VARS['forumname'][$cat_id]); + } +} + +if( !empty($mode) ) +{ + switch($mode) + { + case 'addforum': + case 'editforum': + // + // Show form to create/modify a forum + // + if ($mode == 'editforum') + { + // $newmode determines if we are going to INSERT or UPDATE after posting? + + $l_title = $lang['Edit_forum']; + $newmode = 'modforum'; + $buttonvalue = $lang['Update']; + + $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); + + $row = get_info('forum', $forum_id); + + $cat_id = $row['cat_id']; + $forumname = $row['forum_name']; + $forumdesc = $row['forum_desc']; + $forumstatus = $row['forum_status']; + + // + // start forum prune stuff. + // + if( $row['prune_enable'] ) + { + $prune_enabled = "checked=\"checked\""; + $sql = "SELECT * + FROM " . PRUNE_TABLE . " + WHERE forum_id = $forum_id"; + if(!$pr_result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Auto-Prune: Couldn't read auto_prune table.", __LINE__, __FILE__); + } + + $pr_row = $db->sql_fetchrow($pr_result); + } + else + { + $prune_enabled = ''; + } + } + else + { + $l_title = $lang['Create_forum']; + $newmode = 'createforum'; + $buttonvalue = $lang['Create_forum']; + + $forumdesc = ''; + $forumstatus = FORUM_UNLOCKED; + $forum_id = ''; + $prune_enabled = ''; + } + + $catlist = get_list('category', $cat_id, TRUE); + + $forumstatus == ( FORUM_LOCKED ) ? $forumlocked = "selected=\"selected\"" : $forumunlocked = "selected=\"selected\""; + + // These two options ($lang['Status_unlocked'] and $lang['Status_locked']) seem to be missing from + // the language files. + $lang['Status_unlocked'] = isset($lang['Status_unlocked']) ? $lang['Status_unlocked'] : 'Unlocked'; + $lang['Status_locked'] = isset($lang['Status_locked']) ? $lang['Status_locked'] : 'Locked'; + + $statuslist = "\n"; + $statuslist .= "\n"; + + $template->set_filenames(array( + "body" => "admin/forum_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_SUBMIT_VALUE' => $buttonvalue, + 'S_CAT_LIST' => $catlist, + 'S_STATUS_LIST' => $statuslist, + 'S_PRUNE_ENABLED' => $prune_enabled, + + 'L_FORUM_TITLE' => $l_title, + 'L_FORUM_EXPLAIN' => $lang['Forum_edit_delete_explain'], + 'L_FORUM_SETTINGS' => $lang['Forum_settings'], + 'L_FORUM_NAME' => $lang['Forum_name'], + 'L_CATEGORY' => $lang['Category'], + 'L_FORUM_DESCRIPTION' => $lang['Forum_desc'], + 'L_FORUM_STATUS' => $lang['Forum_status'], + 'L_AUTO_PRUNE' => $lang['Forum_pruning'], + 'L_ENABLED' => $lang['Enabled'], + 'L_PRUNE_DAYS' => $lang['prune_days'], + 'L_PRUNE_FREQ' => $lang['prune_freq'], + 'L_DAYS' => $lang['Days'], + + 'PRUNE_DAYS' => ( isset($pr_row['prune_days']) ) ? $pr_row['prune_days'] : 7, + 'PRUNE_FREQ' => ( isset($pr_row['prune_freq']) ) ? $pr_row['prune_freq'] : 1, + 'FORUM_NAME' => $forumname, + 'DESCRIPTION' => $forumdesc) + ); + $template->pparse("body"); + break; + + case 'createforum': + // + // Create a forum in the DB + // + if( trim($HTTP_POST_VARS['forumname']) == "" ) + { + message_die(GENERAL_ERROR, "Can't create a forum without a name"); + } + + $sql = "SELECT MAX(forum_order) AS max_order + FROM " . FORUMS_TABLE . " + WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get order number from forums table", "", __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $max_order = $row['max_order']; + $next_order = $max_order + 10; + + $sql = "SELECT MAX(forum_id) AS max_id + FROM " . FORUMS_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get order number from forums table", "", __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $max_id = $row['max_id']; + $next_id = $max_id + 1; + + // + // Default permissions of public :: + // + $field_sql = ""; + $value_sql = ""; + while( list($field, $value) = each($forum_auth_ary) ) + { + $field_sql .= ", $field"; + $value_sql .= ", $value"; + + } + + // There is no problem having duplicate forum names so we won't check for it. + $sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ") + VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert row in forums table", "", __LINE__, __FILE__, $sql); + } + + if( $HTTP_POST_VARS['prune_enable'] ) + { + + if( $HTTP_POST_VARS['prune_days'] == "" || $HTTP_POST_VARS['prune_freq'] == "") + { + message_die(GENERAL_MESSAGE, $lang['Set_prune_data']); + } + + $sql = "INSERT INTO " . PRUNE_TABLE . " (forum_id, prune_days, prune_freq) + VALUES('" . $next_id . "', " . intval($HTTP_POST_VARS['prune_days']) . ", " . intval($HTTP_POST_VARS['prune_freq']) . ")"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert row in prune table", "", __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'modforum': + // Modify a forum in the DB + if( isset($HTTP_POST_VARS['prune_enable'])) + { + if( $HTTP_POST_VARS['prune_enable'] != 1 ) + { + $HTTP_POST_VARS['prune_enable'] = 0; + } + } + + $sql = "UPDATE " . FORUMS_TABLE . " + SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . " + WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql); + } + + if( $HTTP_POST_VARS['prune_enable'] == 1 ) + { + if( $HTTP_POST_VARS['prune_days'] == "" || $HTTP_POST_VARS['prune_freq'] == "" ) + { + message_die(GENERAL_MESSAGE, $lang['Set_prune_data']); + } + + $sql = "SELECT * + FROM " . PRUNE_TABLE . " + WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get forum Prune Information","",__LINE__, __FILE__, $sql); + } + + if( $db->sql_numrows($result) > 0 ) + { + $sql = "UPDATE " . PRUNE_TABLE . " + SET prune_days = " . intval($HTTP_POST_VARS['prune_days']) . ", prune_freq = " . intval($HTTP_POST_VARS['prune_freq']) . " + WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); + } + else + { + $sql = "INSERT INTO " . PRUNE_TABLE . " (forum_id, prune_days, prune_freq) + VALUES(" . intval($HTTP_POST_VARS[POST_FORUM_URL]) . ", " . intval($HTTP_POST_VARS['prune_days']) . ", " . intval($HTTP_POST_VARS['prune_freq']) . ")"; + } + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't Update Forum Prune Information","",__LINE__, __FILE__, $sql); + } + } + + $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'addcat': + // Create a category in the DB + if( trim($HTTP_POST_VARS['categoryname']) == '') + { + message_die(GENERAL_ERROR, "Can't create a category without a name"); + } + + $sql = "SELECT MAX(cat_order) AS max_order + FROM " . CATEGORIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get order number from categories table", "", __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $max_order = $row['max_order']; + $next_order = $max_order + 10; + + // + // There is no problem having duplicate forum names so we won't check for it. + // + $sql = "INSERT INTO " . CATEGORIES_TABLE . " (cat_title, cat_order) + VALUES ('" . str_replace("\'", "''", $HTTP_POST_VARS['categoryname']) . "', $next_order)"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert row in categories table", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'editcat': + // + // Show form to edit a category + // + $newmode = 'modcat'; + $buttonvalue = $lang['Update']; + + $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); + + $row = get_info('category', $cat_id); + $cat_title = $row['cat_title']; + + $template->set_filenames(array( + "body" => "admin/category_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'CAT_TITLE' => $cat_title, + + 'L_EDIT_CATEGORY' => $lang['Edit_Category'], + 'L_EDIT_CATEGORY_EXPLAIN' => $lang['Edit_Category_explain'], + 'L_CATEGORY' => $lang['Category'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_SUBMIT_VALUE' => $buttonvalue, + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx")) + ); + + $template->pparse("body"); + break; + + case 'modcat': + // Modify a category in the DB + $sql = "UPDATE " . CATEGORIES_TABLE . " + SET cat_title = '" . str_replace("\'", "''", $HTTP_POST_VARS['cat_title']) . "' + WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'deleteforum': + // Show form to delete a forum + $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); + + $select_to = ''; + + $buttonvalue = $lang['Move_and_Delete']; + + $newmode = 'movedelforum'; + + $foruminfo = get_info('forum', $forum_id); + $name = $foruminfo['forum_name']; + + $template->set_filenames(array( + "body" => "admin/forum_delete_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'NAME' => $name, + + 'L_FORUM_DELETE' => $lang['Forum_delete'], + 'L_FORUM_DELETE_EXPLAIN' => $lang['Forum_delete_explain'], + 'L_MOVE_CONTENTS' => $lang['Move_contents'], + 'L_FORUM_NAME' => $lang['Forum_name'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'S_SELECT_TO' => $select_to, + 'S_SUBMIT_VALUE' => $buttonvalue) + ); + + $template->pparse("body"); + break; + + case 'movedelforum': + // + // Move or delete a forum in the DB + // + $from_id = intval($HTTP_POST_VARS['from_id']); + $to_id = intval($HTTP_POST_VARS['to_id']); + $delete_old = intval($HTTP_POST_VARS['delete_old']); + + // Either delete or move all posts in a forum + if($to_id == -1) + { + // Delete polls in this forum + $sql = "SELECT v.vote_id + FROM " . VOTE_DESC_TABLE . " v, " . TOPICS_TABLE . " t + WHERE t.forum_id = $from_id + AND v.topic_id = t.topic_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, "Couldn't obtain list of vote ids", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $vote_ids = ''; + do + { + $vote_ids = (($vote_ids != '') ? ', ' : '') . $row['vote_id']; + } + while ($row = $db->sql_fetchrow($result)); + + $sql = "DELETE FROM " . VOTE_DESC_TABLE . " + WHERE vote_id IN ($vote_ids)"; + $db->sql_query($sql); + + $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id IN ($vote_ids)"; + $db->sql_query($sql); + + $sql = "DELETE FROM " . VOTE_USERS_TABLE . " + WHERE vote_id IN ($vote_ids)"; + $db->sql_query($sql); + } + $db->sql_freeresult($result); + + include($phpbb_root_path . "includes/prune.$phpEx"); + prune($from_id, 0, true); // Delete everything from forum + } + else + { + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + WHERE forum_id IN ($from_id, $to_id)"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't verify existence of forums", "", __LINE__, __FILE__, $sql); + } + + if($db->sql_numrows($result) != 2) + { + message_die(GENERAL_ERROR, "Ambiguous forum ID's", "", __LINE__, __FILE__); + } + $sql = "UPDATE " . TOPICS_TABLE . " + SET forum_id = $to_id + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't move topics to other forum", "", __LINE__, __FILE__, $sql); + } + $sql = "UPDATE " . POSTS_TABLE . " + SET forum_id = $to_id + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't move posts to other forum", "", __LINE__, __FILE__, $sql); + } + sync('forum', $to_id); + } + + // Alter Mod level if appropriate - 2.0.4 + $sql = "SELECT ug.user_id + FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug + WHERE a.forum_id <> $from_id + AND a.auth_mod = 1 + AND ug.group_id = a.group_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain moderator list", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $user_ids = ''; + do + { + $user_ids .= (($user_ids != '') ? ', ' : '' ) . $row['user_id']; + } + while ($row = $db->sql_fetchrow($result)); + + $sql = "SELECT ug.user_id + FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug + WHERE a.forum_id = $from_id + AND a.auth_mod = 1 + AND ug.group_id = a.group_id + AND ug.user_id NOT IN ($user_ids)"; + if( !$result2 = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain moderator list", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result2)) + { + $user_ids = ''; + do + { + $user_ids .= (($user_ids != '') ? ', ' : '' ) . $row['user_id']; + } + while ($row = $db->sql_fetchrow($result2)); + + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN ($user_ids) + AND user_level <> " . ADMIN; + $db->sql_query($sql); + } + $db->sql_freeresult($result); + + } + $db->sql_freeresult($result2); + + $sql = "DELETE FROM " . FORUMS_TABLE . " + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete forum", "", __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete forum", "", __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . PRUNE_TABLE . " + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete forum prune information!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'deletecat': + // + // Show form to delete a category + // + $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); + + $buttonvalue = $lang['Move_and_Delete']; + $newmode = 'movedelcat'; + $catinfo = get_info('category', $cat_id); + $name = $catinfo['cat_title']; + + if ($catinfo['number'] == 1) + { + $sql = "SELECT count(*) as total + FROM ". FORUMS_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get Forum count", "", __LINE__, __FILE__, $sql); + } + $count = $db->sql_fetchrow($result); + $count = $count['total']; + + if ($count > 0) + { + message_die(GENERAL_ERROR, $lang['Must_delete_forums']); + } + else + { + $select_to = $lang['Nowhere_to_move']; + } + } + else + { + $select_to = ''; + } + + $template->set_filenames(array( + "body" => "admin/forum_delete_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'NAME' => $name, + + 'L_FORUM_DELETE' => $lang['Forum_delete'], + 'L_FORUM_DELETE_EXPLAIN' => $lang['Forum_delete_explain'], + 'L_MOVE_CONTENTS' => $lang['Move_contents'], + 'L_FORUM_NAME' => $lang['Forum_name'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'S_SELECT_TO' => $select_to, + 'S_SUBMIT_VALUE' => $buttonvalue) + ); + + $template->pparse("body"); + break; + + case 'movedelcat': + // + // Move or delete a category in the DB + // + $from_id = intval($HTTP_POST_VARS['from_id']); + $to_id = intval($HTTP_POST_VARS['to_id']); + + if (!empty($to_id)) + { + $sql = "SELECT * + FROM " . CATEGORIES_TABLE . " + WHERE cat_id IN ($from_id, $to_id)"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't verify existence of categories", "", __LINE__, __FILE__, $sql); + } + if($db->sql_numrows($result) != 2) + { + message_die(GENERAL_ERROR, "Ambiguous category ID's", "", __LINE__, __FILE__); + } + + $sql = "UPDATE " . FORUMS_TABLE . " + SET cat_id = $to_id + WHERE cat_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't move forums to other category", "", __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE FROM " . CATEGORIES_TABLE ." + WHERE cat_id = $from_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete category", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

" . sprintf($lang['Click_return_forumadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'forum_order': + // + // Change order of forums in the DB + // + $move = intval($HTTP_GET_VARS['move']); + $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); + + $forum_info = get_info('forum', $forum_id); + + $cat_id = $forum_info['cat_id']; + + $sql = "UPDATE " . FORUMS_TABLE . " + SET forum_order = forum_order + $move + WHERE forum_id = $forum_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't change category order", "", __LINE__, __FILE__, $sql); + } + + renumber_order('forum', $forum_info['cat_id']); + $show_index = TRUE; + + break; + + case 'cat_order': + // + // Change order of categories in the DB + // + $move = intval($HTTP_GET_VARS['move']); + $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); + + $sql = "UPDATE " . CATEGORIES_TABLE . " + SET cat_order = cat_order + $move + WHERE cat_id = $cat_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't change category order", "", __LINE__, __FILE__, $sql); + } + + renumber_order('category'); + $show_index = TRUE; + + break; + + case 'forum_sync': + sync('forum', intval($HTTP_GET_VARS[POST_FORUM_URL])); + $show_index = TRUE; + + break; + + default: + message_die(GENERAL_MESSAGE, $lang['No_mode']); + break; + } + + if ($show_index != TRUE) + { + include('./page_footer_admin.'.$phpEx); + exit; + } +} + +// +// Start page proper +// +$template->set_filenames(array( + "body" => "admin/forum_admin_body.tpl") +); + +$template->assign_vars(array( + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'L_FORUM_TITLE' => $lang['Forum_admin'], + 'L_FORUM_EXPLAIN' => $lang['Forum_admin_explain'], + 'L_CREATE_FORUM' => $lang['Create_forum'], + 'L_CREATE_CATEGORY' => $lang['Create_category'], + 'L_EDIT' => $lang['Edit'], + 'L_DELETE' => $lang['Delete'], + 'L_MOVE_UP' => $lang['Move_up'], + 'L_MOVE_DOWN' => $lang['Move_down'], + 'L_RESYNC' => $lang['Resync']) +); + +$sql = "SELECT cat_id, cat_title, cat_order + FROM " . CATEGORIES_TABLE . " + ORDER BY cat_order"; +if( !$q_categories = $db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Could not query categories list", "", __LINE__, __FILE__, $sql); +} + +if( $total_categories = $db->sql_numrows($q_categories) ) +{ + $category_rows = $db->sql_fetchrowset($q_categories); + + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + ORDER BY cat_id, forum_order"; + if(!$q_forums = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query forums information", "", __LINE__, __FILE__, $sql); + } + + if( $total_forums = $db->sql_numrows($q_forums) ) + { + $forum_rows = $db->sql_fetchrowset($q_forums); + } + + // + // Okay, let's build the index + // + $gen_cat = array(); + + for($i = 0; $i < $total_categories; $i++) + { + $cat_id = $category_rows[$i]['cat_id']; + + $template->assign_block_vars("catrow", array( + 'S_ADD_FORUM_SUBMIT' => "addforum[$cat_id]", + 'S_ADD_FORUM_NAME' => "forumname[$cat_id]", + + 'CAT_ID' => $cat_id, + 'CAT_DESC' => $category_rows[$i]['cat_title'], + + 'U_CAT_EDIT' => append_sid("admin_forums.$phpEx?mode=editcat&" . POST_CAT_URL . "=$cat_id"), + 'U_CAT_DELETE' => append_sid("admin_forums.$phpEx?mode=deletecat&" . POST_CAT_URL . "=$cat_id"), + 'U_CAT_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=cat_order&move=-15&" . POST_CAT_URL . "=$cat_id"), + 'U_CAT_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=cat_order&move=15&" . POST_CAT_URL . "=$cat_id"), + 'U_VIEWCAT' => append_sid($phpbb_root_path."index.$phpEx?" . POST_CAT_URL . "=$cat_id")) + ); + + for($j = 0; $j < $total_forums; $j++) + { + $forum_id = $forum_rows[$j]['forum_id']; + + if ($forum_rows[$j]['cat_id'] == $cat_id) + { + + $template->assign_block_vars("catrow.forumrow", array( + 'FORUM_NAME' => $forum_rows[$j]['forum_name'], + 'FORUM_DESC' => $forum_rows[$j]['forum_desc'], + 'ROW_COLOR' => $row_color, + 'NUM_TOPICS' => $forum_rows[$j]['forum_topics'], + 'NUM_POSTS' => $forum_rows[$j]['forum_posts'], + + 'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_id")) + ); + + }// if ... forumid == catid + + } // for ... forums + + } // for ... categories + +}// if ... total_categories + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_groups.php b/phpBB2/admin/admin_groups.php new file mode 100644 index 0000000..1392dde --- /dev/null +++ b/phpBB2/admin/admin_groups.php @@ -0,0 +1,417 @@ +set_filenames(array( + 'body' => 'admin/group_edit_body.tpl') + ); + + if ( isset($HTTP_POST_VARS['edit']) ) + { + // + // They're editing. Grab the vars. + // + $sql = "SELECT * + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + AND group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if ( !($group_info = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); + } + + $mode = 'editgroup'; + $template->assign_block_vars('group_edit', array()); + + } + else if ( isset($HTTP_POST_VARS['new']) ) + { + $group_info = array ( + 'group_name' => '', + 'group_description' => '', + 'group_moderator' => '', + 'group_type' => GROUP_OPEN); + $group_open = ' checked="checked"'; + + $mode = 'newgroup'; + + } + + // + // Ok, now we know everything about them, let's show the page. + // + if ($group_info['group_moderator'] != '') + { + $sql = "SELECT user_id, username + FROM " . USERS_TABLE . " + WHERE user_id = " . $group_info['group_moderator']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user info for moderator list', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user info for moderator list', '', __LINE__, __FILE__, $sql); + } + + $group_moderator = $row['username']; + } + else + { + $group_moderator = ''; + } + + $group_open = ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : ''; + $group_closed = ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : ''; + $group_hidden = ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : ''; + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'GROUP_NAME' => $group_info['group_name'], + 'GROUP_DESCRIPTION' => $group_info['group_description'], + 'GROUP_MODERATOR' => $group_moderator, + + 'L_GROUP_TITLE' => $lang['Group_administration'], + 'L_GROUP_EDIT_DELETE' => ( isset($HTTP_POST_VARS['new']) ) ? $lang['New_group'] : $lang['Edit_group'], + 'L_GROUP_NAME' => $lang['group_name'], + 'L_GROUP_DESCRIPTION' => $lang['group_description'], + 'L_GROUP_MODERATOR' => $lang['group_moderator'], + 'L_FIND_USERNAME' => $lang['Find_username'], + 'L_GROUP_STATUS' => $lang['group_status'], + 'L_GROUP_OPEN' => $lang['group_open'], + 'L_GROUP_CLOSED' => $lang['group_closed'], + 'L_GROUP_HIDDEN' => $lang['group_hidden'], + 'L_GROUP_DELETE' => $lang['group_delete'], + 'L_GROUP_DELETE_CHECK' => $lang['group_delete_check'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_DELETE_MODERATOR' => $lang['delete_group_moderator'], + 'L_DELETE_MODERATOR_EXPLAIN' => $lang['delete_moderator_explain'], + 'L_YES' => $lang['Yes'], + + 'U_SEARCH_USER' => append_sid("../search.$phpEx?mode=searchuser"), + + 'S_GROUP_OPEN_TYPE' => GROUP_OPEN, + 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED, + 'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN, + 'S_GROUP_OPEN_CHECKED' => $group_open, + 'S_GROUP_CLOSED_CHECKED' => $group_closed, + 'S_GROUP_HIDDEN_CHECKED' => $group_hidden, + 'S_GROUP_ACTION' => append_sid("admin_groups.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('body'); + +} +else if ( isset($HTTP_POST_VARS['group_update']) ) +{ + // + // Ok, they are submitting a group, let's save the data based on if it's new or editing + // + if ( isset($HTTP_POST_VARS['group_delete']) ) + { + // + // Reset User Moderator Level + // + + // Is Group moderating a forum ? + $sql = "SELECT auth_mod FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $group_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select auth_access', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + if (intval($row['auth_mod']) == 1) + { + // Yes, get the assigned users and update their Permission if they are no longer moderator of one of the forums + $sql = "SELECT user_id FROM " . USER_GROUP_TABLE . " + WHERE group_id = " . $group_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select user_group', '', __LINE__, __FILE__, $sql); + } + + $rows = $db->sql_fetchrowset($result); + for ($i = 0; $i < count($rows); $i++) + { + $sql = "SELECT g.group_id FROM " . AUTH_ACCESS_TABLE . " a, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug + WHERE (a.auth_mod = 1) AND (g.group_id = a.group_id) AND (a.group_id = ug.group_id) AND (g.group_id = ug.group_id) + AND (ug.user_id = " . intval($rows[$i]['user_id']) . ") AND (ug.group_id <> " . $group_id . ")"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator permissions', '', __LINE__, __FILE__, $sql); + } + + if ($db->sql_numrows($result) == 0) + { + $sql = "UPDATE " . USERS_TABLE . " SET user_level = " . USER . " + WHERE user_level = " . MOD . " AND user_id = " . intval($rows[$i]['user_id']); + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update moderator permissions', '', __LINE__, __FILE__, $sql); + } + } + } + } + + // + // Delete Group + // + $sql = "DELETE FROM " . GROUPS_TABLE . " + WHERE group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user_group', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update auth_access', '', __LINE__, __FILE__, $sql); + } + + $message = $lang['Deleted_group'] . '

' . sprintf($lang['Click_return_groupsadmin'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $group_type = isset($HTTP_POST_VARS['group_type']) ? intval($HTTP_POST_VARS['group_type']) : GROUP_OPEN; + $group_name = isset($HTTP_POST_VARS['group_name']) ? htmlspecialchars(trim($HTTP_POST_VARS['group_name'])) : ''; + $group_description = isset($HTTP_POST_VARS['group_description']) ? trim($HTTP_POST_VARS['group_description']) : ''; + $group_moderator = isset($HTTP_POST_VARS['username']) ? $HTTP_POST_VARS['username'] : ''; + $delete_old_moderator = isset($HTTP_POST_VARS['delete_old_moderator']) ? true : false; + + if ( $group_name == '' ) + { + message_die(GENERAL_MESSAGE, $lang['No_group_name']); + } + else if ( $group_moderator == '' ) + { + message_die(GENERAL_MESSAGE, $lang['No_group_moderator']); + } + + $this_userdata = get_userdata($group_moderator, true); + $group_moderator = $this_userdata['user_id']; + + if ( !$group_moderator ) + { + message_die(GENERAL_MESSAGE, $lang['No_group_moderator']); + } + + if( $mode == "editgroup" ) + { + $sql = "SELECT * + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + AND group_id = " . $group_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if( !($group_info = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); + } + + if ( $group_info['group_moderator'] != $group_moderator ) + { + if ( $delete_old_moderator ) + { + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = " . $group_info['group_moderator'] . " + AND group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "SELECT user_id + FROM " . USER_GROUP_TABLE . " + WHERE user_id = $group_moderator + AND group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Failed to obtain current group moderator info', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending) + VALUES (" . $group_id . ", " . $group_moderator . ", 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql); + } + } + } + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_type = $group_type, group_name = '" . str_replace("\'", "''", $group_name) . "', group_description = '" . str_replace("\'", "''", $group_description) . "', group_moderator = $group_moderator + WHERE group_id = $group_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql); + } + + $message = $lang['Updated_group'] . '

' . sprintf($lang['Click_return_groupsadmin'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', '');; + + message_die(GENERAL_MESSAGE, $message); + } + else if( $mode == 'newgroup' ) + { + $sql = "INSERT INTO " . GROUPS_TABLE . " (group_type, group_name, group_description, group_moderator, group_single_user) + VALUES ($group_type, '" . str_replace("\'", "''", $group_name) . "', '" . str_replace("\'", "''", $group_description) . "', $group_moderator, '0')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new group', '', __LINE__, __FILE__, $sql); + } + $new_group_id = $db->sql_nextid(); + + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending) + VALUES ($new_group_id, $group_moderator, 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new user-group info', '', __LINE__, __FILE__, $sql); + } + + $message = $lang['Added_new_group'] . '

' . sprintf($lang['Click_return_groupsadmin'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', '');; + + message_die(GENERAL_MESSAGE, $message); + + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_group_action']); + } + } +} +else +{ + $sql = "SELECT group_id, group_name + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + ORDER BY group_name"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql); + } + + $select_list = ''; + if ( $row = $db->sql_fetchrow($result) ) + { + $select_list .= ''; + } + + $template->set_filenames(array( + 'body' => 'admin/group_select_body.tpl') + ); + + $template->assign_vars(array( + 'L_GROUP_TITLE' => $lang['Group_administration'], + 'L_GROUP_EXPLAIN' => $lang['Group_admin_explain'], + 'L_GROUP_SELECT' => $lang['Select_group'], + 'L_LOOK_UP' => $lang['Look_up_group'], + 'L_CREATE_NEW_GROUP' => $lang['New_group'], + + 'S_GROUP_ACTION' => append_sid("admin_groups.$phpEx"), + 'S_GROUP_SELECT' => $select_list) + ); + + if ( $select_list != '' ) + { + $template->assign_block_vars('select_box', array()); + } + + $template->pparse('body'); +} + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2/admin/admin_mass_email.php b/phpBB2/admin/admin_mass_email.php new file mode 100644 index 0000000..fc70efe --- /dev/null +++ b/phpBB2/admin/admin_mass_email.php @@ -0,0 +1,213 @@ +' . $lang['Empty_subject'] : $lang['Empty_subject']; + } + + if ( empty($message) ) + { + $error = true; + $error_msg .= ( !empty($error_msg) ) ? '
' . $lang['Empty_message'] : $lang['Empty_message']; + } + + $group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]); + + $sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select group members', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $bcc_list = array(); + do + { + $bcc_list[] = $row['user_email']; + } + while ( $row = $db->sql_fetchrow($result) ); + + $db->sql_freeresult($result); + } + else + { + $message = ( $group_id != -1 ) ? $lang['Group_not_exist'] : $lang['No_such_user']; + + $error = true; + $error_msg .= ( !empty($error_msg) ) ? '
' . $message : $message; + } + + if ( !$error ) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + + // + // Let's do some checking to make sure that mass mail functions + // are working in win32 versions of php. + // + if ( preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery']) + { + $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + + // We are running on windows, force delivery to use our smtp functions + // since php's are broken by default + $board_config['smtp_delivery'] = 1; + $board_config['smtp_host'] = @$ini_val('SMTP'); + } + + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + for ($i = 0; $i < count($bcc_list); $i++) + { + $emailer->bcc($bcc_list[$i]); + } + + $email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "\n"; + $email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n"; + $email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n"; + $email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n"; + + $emailer->use_template('admin_send_email'); + $emailer->email_address($board_config['board_email']); + $emailer->set_subject($subject); + $emailer->extra_headers($email_headers); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'BOARD_EMAIL' => $board_config['board_email'], + 'MESSAGE' => $message) + ); + $emailer->send(); + $emailer->reset(); + + message_die(GENERAL_MESSAGE, $lang['Email_sent'] . '

' . sprintf($lang['Click_return_admin_index'], '', '')); + } +} + +if ( $error ) +{ + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); +} + +// +// Initial selection +// + +$sql = "SELECT group_id, group_name + FROM ".GROUPS_TABLE . " + WHERE group_single_user <> 1"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain list of groups', '', __LINE__, __FILE__, $sql); +} + +$select_list = ''; + +// +// Generate page +// +include('./page_header_admin.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'admin/user_email_body.tpl') +); + +$template->assign_vars(array( + 'MESSAGE' => $message, + 'SUBJECT' => $subject, + + 'L_EMAIL_TITLE' => $lang['Email'], + 'L_EMAIL_EXPLAIN' => $lang['Mass_email_explain'], + 'L_COMPOSE' => $lang['Compose'], + 'L_RECIPIENTS' => $lang['Recipients'], + 'L_EMAIL_SUBJECT' => $lang['Subject'], + 'L_EMAIL_MSG' => $lang['Message'], + 'L_EMAIL' => $lang['Email'], + 'L_NOTICE' => $notice, + + 'S_USER_ACTION' => append_sid('admin_mass_email.'.$phpEx), + 'S_GROUP_SELECT' => $select_list) +); + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_ranks.php b/phpBB2/admin/admin_ranks.php new file mode 100644 index 0000000..3cdfe46 --- /dev/null +++ b/phpBB2/admin/admin_ranks.php @@ -0,0 +1,349 @@ +sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain rank data", "", __LINE__, __FILE__, $sql); + } + + $rank_info = $db->sql_fetchrow($result); + $s_hidden_fields .= ''; + + } + else + { + $rank_info['rank_special'] = 0; + } + + $s_hidden_fields .= ''; + + $rank_is_special = ( $rank_info['rank_special'] ) ? "checked=\"checked\"" : ""; + $rank_is_not_special = ( !$rank_info['rank_special'] ) ? "checked=\"checked\"" : ""; + + $template->set_filenames(array( + "body" => "admin/ranks_edit_body.tpl") + ); + + $template->assign_vars(array( + "RANK" => $rank_info['rank_title'], + "SPECIAL_RANK" => $rank_is_special, + "NOT_SPECIAL_RANK" => $rank_is_not_special, + "MINIMUM" => ( $rank_is_special ) ? "" : $rank_info['rank_min'], + "IMAGE" => ( $rank_info['rank_image'] != "" ) ? $rank_info['rank_image'] : "", + "IMAGE_DISPLAY" => ( $rank_info['rank_image'] != "" ) ? '' : "", + + "L_RANKS_TITLE" => $lang['Ranks_title'], + "L_RANKS_TEXT" => $lang['Ranks_explain'], + "L_RANK_TITLE" => $lang['Rank_title'], + "L_RANK_SPECIAL" => $lang['Rank_special'], + "L_RANK_MINIMUM" => $lang['Rank_minimum'], + "L_RANK_IMAGE" => $lang['Rank_image'], + "L_RANK_IMAGE_EXPLAIN" => $lang['Rank_image_explain'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + "L_YES" => $lang['Yes'], + "L_NO" => $lang['No'], + + "S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + + } + else if( $mode == "save" ) + { + // + // Ok, they sent us our info, let's update it. + // + + $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0; + $rank_title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : ""; + $special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0; + $min_posts = ( isset($HTTP_POST_VARS['min_posts']) ) ? intval($HTTP_POST_VARS['min_posts']) : -1; + $rank_image = ( (isset($HTTP_POST_VARS['rank_image'])) ) ? trim($HTTP_POST_VARS['rank_image']) : ""; + + if( $rank_title == "" ) + { + message_die(GENERAL_MESSAGE, $lang['Must_select_rank']); + } + + if( $special_rank == 1 ) + { + $max_posts = -1; + $min_posts = -1; + } + + // + // The rank image has to be a jpg, gif or png + // + if($rank_image != "") + { + if ( !preg_match("/(\.gif|\.png|\.jpg)$/is", $rank_image)) + { + $rank_image = ""; + } + } + + if ($rank_id) + { + if (!$special_rank) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_rank = 0 + WHERE user_rank = $rank_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql); + } + } + $sql = "UPDATE " . RANKS_TABLE . " + SET rank_title = '" . str_replace("\'", "''", $rank_title) . "', rank_special = $special_rank, rank_min = $min_posts, rank_image = '" . str_replace("\'", "''", $rank_image) . "' + WHERE rank_id = $rank_id"; + + $message = $lang['Rank_updated']; + } + else + { + $sql = "INSERT INTO " . RANKS_TABLE . " (rank_title, rank_special, rank_min, rank_image) + VALUES ('" . str_replace("\'", "''", $rank_title) . "', $special_rank, $min_posts, '" . str_replace("\'", "''", $rank_image) . "')"; + + $message = $lang['Rank_added']; + } + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update/insert into ranks table", "", __LINE__, __FILE__, $sql); + } + + $message .= "

" . sprintf($lang['Click_return_rankadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else if( $mode == "delete" ) + { + // + // Ok, they want to delete their rank + // + + if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) ) + { + $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']); + } + else + { + $rank_id = 0; + } + + $confirm = isset($HTTP_POST_VARS['confirm']); + + if( $rank_id && $confirm ) + { + $sql = "DELETE FROM " . RANKS_TABLE . " + WHERE rank_id = $rank_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete rank data", "", __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . USERS_TABLE . " + SET user_rank = 0 + WHERE user_rank = $rank_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Rank_removed'] . "

" . sprintf($lang['Click_return_rankadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + elseif( $rank_id && !$confirm) + { + // Present the confirmation screen to the user + $template->set_filenames(array( + 'body' => 'admin/confirm_body.tpl') + ); + + $hidden_fields = ''; + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_delete_rank'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("admin_ranks.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + } + else + { + message_die(GENERAL_MESSAGE, $lang['Must_select_rank']); + } + } + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); +} + +// +// Show the default page +// +$template->set_filenames(array( + "body" => "admin/ranks_list_body.tpl") +); + +$sql = "SELECT * FROM " . RANKS_TABLE . " + ORDER BY rank_min ASC, rank_special ASC"; +if( !$result = $db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql); +} +$rank_count = $db->sql_numrows($result); + +$rank_rows = $db->sql_fetchrowset($result); + +$template->assign_vars(array( + "L_RANKS_TITLE" => $lang['Ranks_title'], + "L_RANKS_TEXT" => $lang['Ranks_explain'], + "L_RANK" => $lang['Rank_title'], + "L_RANK_MINIMUM" => $lang['Rank_minimum'], + "L_SPECIAL_RANK" => $lang['Rank_special'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete'], + "L_ADD_RANK" => $lang['Add_new_rank'], + "L_ACTION" => $lang['Action'], + + "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx")) +); + +for($i = 0; $i < $rank_count; $i++) +{ + $rank = $rank_rows[$i]['rank_title']; + $special_rank = $rank_rows[$i]['rank_special']; + $rank_id = $rank_rows[$i]['rank_id']; + $rank_min = $rank_rows[$i]['rank_min']; + + if( $special_rank == 1 ) + { + $rank_min = $rank_max = "-"; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $rank_is_special = ( $special_rank ) ? $lang['Yes'] : $lang['No']; + + $template->assign_block_vars("ranks", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "RANK" => $rank, + "SPECIAL_RANK" => $rank_is_special, + "RANK_MIN" => $rank_min, + + "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"), + "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id")) + ); +} + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2/admin/admin_smilies.php b/phpBB2/admin/admin_smilies.php new file mode 100644 index 0000000..b43d925 --- /dev/null +++ b/phpBB2/admin/admin_smilies.php @@ -0,0 +1,597 @@ +sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete current smilies", "", __LINE__, __FILE__, $sql); + } + } + else + { + $sql = "SELECT code + FROM ". SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get current smilies", "", __LINE__, __FILE__, $sql); + } + + $cur_smilies = $db->sql_fetchrowset($result); + + for( $i = 0; $i < count($cur_smilies); $i++ ) + { + $k = $cur_smilies[$i]['code']; + $smiles[$k] = 1; + } + } + + $fcontents = @file($phpbb_root_path . $board_config['smilies_path'] . '/'. $smile_pak); + + if( empty($fcontents) ) + { + message_die(GENERAL_ERROR, "Couldn't read smiley pak file", "", __LINE__, __FILE__, $sql); + } + + for( $i = 0; $i < count($fcontents); $i++ ) + { + $smile_data = explode($delimeter, trim(addslashes($fcontents[$i]))); + + for( $j = 2; $j < count($smile_data); $j++) + { + // + // Replace > and < with the proper html_entities for matching. + // + $smile_data[$j] = str_replace("<", "<", $smile_data[$j]); + $smile_data[$j] = str_replace(">", ">", $smile_data[$j]); + $k = $smile_data[$j]; + + if( $smiles[$k] == 1 ) + { + if( !empty($replace_existing) ) + { + $sql = "UPDATE " . SMILIES_TABLE . " + SET smile_url = '" . str_replace("\'", "''", $smile_data[0]) . "', emoticon = '" . str_replace("\'", "''", $smile_data[1]) . "' + WHERE code = '" . str_replace("\'", "''", $smile_data[$j]) . "'"; + } + else + { + $sql = ''; + } + } + else + { + $sql = "INSERT INTO " . SMILIES_TABLE . " (code, smile_url, emoticon) + VALUES('" . str_replace("\'", "''", $smile_data[$j]) . "', '" . str_replace("\'", "''", $smile_data[0]) . "', '" . str_replace("\'", "''", $smile_data[1]) . "')"; + } + + if( $sql != '' ) + { + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't update smilies!", "", __LINE__, __FILE__, $sql); + } + } + } + } + + $message = $lang['smiley_import_success'] . "

" . sprintf($lang['Click_return_smileadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else + { + // + // Display the script to get the smile_pak cfg file... + // + $smile_paks_select = ""; + + $hidden_vars = ""; + + $template->set_filenames(array( + "body" => "admin/smile_import_body.tpl") + ); + + $template->assign_vars(array( + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_EXPLAIN" => $lang['smiley_import_inst'], + "L_SMILEY_IMPORT" => $lang['smiley_import'], + "L_SELECT_LBL" => $lang['choose_smile_pak'], + "L_IMPORT" => $lang['import'], + "L_CONFLICTS" => $lang['smile_conflicts'], + "L_DEL_EXISTING" => $lang['del_existing_smileys'], + "L_REPLACE_EXISTING" => $lang['replace_existing'], + "L_KEEP_EXISTING" => $lang['keep_existing'], + + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"), + "S_SMILE_SELECT" => $smile_paks_select, + "S_HIDDEN_FIELDS" => $hidden_vars) + ); + + $template->pparse("body"); + } +} +else if( isset($HTTP_POST_VARS['export_pack']) || isset($HTTP_GET_VARS['export_pack']) ) +{ + // + // Export our smiley config as a smiley pak... + // + if ( $HTTP_GET_VARS['export_pack'] == "send" ) + { + $sql = "SELECT * + FROM " . SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Could not get smiley list", "", __LINE__, __FILE__, $sql); + } + + $resultset = $db->sql_fetchrowset($result); + + $smile_pak = ""; + for($i = 0; $i < count($resultset); $i++ ) + { + $smile_pak .= $resultset[$i]['smile_url'] . $delimeter; + $smile_pak .= $resultset[$i]['emoticon'] . $delimeter; + $smile_pak .= $resultset[$i]['code'] . "\n"; + } + + header("Content-Type: text/x-delimtext; name=\"smiles.pak\""); + header("Content-disposition: attachment; filename=smiles.pak"); + + echo $smile_pak; + + exit; + } + + $message = sprintf($lang['export_smiles'], "", "") . "

" . sprintf($lang['Click_return_smileadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + +} +else if( isset($HTTP_POST_VARS['add']) || isset($HTTP_GET_VARS['add']) ) +{ + // + // Admin has selected to add a smiley. + // + + $template->set_filenames(array( + "body" => "admin/smile_edit_body.tpl") + ); + + $filename_list = ""; + for( $i = 0; $i < count($smiley_images); $i++ ) + { + $filename_list .= ''; + } + + $s_hidden_fields = ''; + + $template->assign_vars(array( + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_CONFIG" => $lang['smiley_config'], + "L_SMILEY_EXPLAIN" => $lang['smile_desc'], + "L_SMILEY_CODE" => $lang['smiley_code'], + "L_SMILEY_URL" => $lang['smiley_url'], + "L_SMILEY_EMOTION" => $lang['smiley_emot'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + + "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smiley_images[0], + + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_FILENAME_OPTIONS" => $filename_list, + "S_SMILEY_BASEDIR" => $phpbb_root_path . $board_config['smilies_path']) + ); + + $template->pparse("body"); +} +else if ( $mode != "" ) +{ + switch( $mode ) + { + case 'delete': + // + // Admin has selected to delete a smiley. + // + + $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; + $smiley_id = intval($smiley_id); + + $confirm = isset($HTTP_POST_VARS['confirm']); + + if( $confirm ) + { + $sql = "DELETE FROM " . SMILIES_TABLE . " + WHERE smilies_id = " . $smiley_id; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't delete smiley", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['smiley_del_success'] . "

" . sprintf($lang['Click_return_smileadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + // Present the confirmation screen to the user + $template->set_filenames(array( + 'body' => 'admin/confirm_body.tpl') + ); + + $hidden_fields = ''; + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_delete_smiley'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("admin_smilies.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + $template->pparse('body'); + } + break; + + case 'edit': + // + // Admin has selected to edit a smiley. + // + + $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; + $smiley_id = intval($smiley_id); + + $sql = "SELECT * + FROM " . SMILIES_TABLE . " + WHERE smilies_id = " . $smiley_id; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, 'Could not obtain emoticon information', "", __LINE__, __FILE__, $sql); + } + $smile_data = $db->sql_fetchrow($result); + + $filename_list = ""; + for( $i = 0; $i < count($smiley_images); $i++ ) + { + if( $smiley_images[$i] == $smile_data['smile_url'] ) + { + $smiley_selected = "selected=\"selected\""; + $smiley_edit_img = $smiley_images[$i]; + } + else + { + $smiley_selected = ""; + } + + $filename_list .= ''; + } + + $template->set_filenames(array( + "body" => "admin/smile_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + "SMILEY_CODE" => $smile_data['code'], + "SMILEY_EMOTICON" => $smile_data['emoticon'], + + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_CONFIG" => $lang['smiley_config'], + "L_SMILEY_EXPLAIN" => $lang['smile_desc'], + "L_SMILEY_CODE" => $lang['smiley_code'], + "L_SMILEY_URL" => $lang['smiley_url'], + "L_SMILEY_EMOTION" => $lang['smiley_emot'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + + "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smiley_edit_img, + + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_FILENAME_OPTIONS" => $filename_list, + "S_SMILEY_BASEDIR" => $phpbb_root_path . $board_config['smilies_path']) + ); + + $template->pparse("body"); + break; + + case "save": + // + // Admin has submitted changes while editing a smiley. + // + + // + // Get the submitted data, being careful to ensure that we only + // accept the data we are looking for. + // + $smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? trim($HTTP_POST_VARS['smile_code']) : ''; + $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? trim($HTTP_POST_VARS['smile_url']) : ''; + $smile_url = phpbb_ltrim(basename($smile_url), "'"); + $smile_emotion = ( isset($HTTP_POST_VARS['smile_emotion']) ) ? htmlspecialchars(trim($HTTP_POST_VARS['smile_emotion'])) : ''; + $smile_id = ( isset($HTTP_POST_VARS['smile_id']) ) ? intval($HTTP_POST_VARS['smile_id']) : 0; + $smile_code = trim($smile_code); + $smile_url = trim($smile_url); + + // If no code was entered complain ... + if ($smile_code == '' || $smile_url == '') + { + message_die(GENERAL_MESSAGE, $lang['Fields_empty']); + } + + // + // Convert < and > to proper htmlentities for parsing. + // + $smile_code = str_replace('<', '<', $smile_code); + $smile_code = str_replace('>', '>', $smile_code); + + // + // Proceed with updating the smiley table. + // + $sql = "UPDATE " . SMILIES_TABLE . " + SET code = '" . str_replace("\'", "''", $smile_code) . "', smile_url = '" . str_replace("\'", "''", $smile_url) . "', emoticon = '" . str_replace("\'", "''", $smile_emotion) . "' + WHERE smilies_id = $smile_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update smilies info", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['smiley_edit_success'] . "

" . sprintf($lang['Click_return_smileadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + break; + + case "savenew": + // + // Admin has submitted changes while adding a new smiley. + // + + // + // Get the submitted data being careful to ensure the the data + // we recieve and process is only the data we are looking for. + // + $smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? $HTTP_POST_VARS['smile_code'] : ''; + $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? $HTTP_POST_VARS['smile_url'] : ''; + $smile_url = phpbb_ltrim(basename($smile_url), "'"); + $smile_emotion = ( isset($HTTP_POST_VARS['smile_emotion']) ) ? htmlspecialchars(trim($HTTP_POST_VARS['smile_emotion'])) : ''; + $smile_code = trim($smile_code); + $smile_url = trim($smile_url); + + // If no code was entered complain ... + if ($smile_code == '' || $smile_url == '') + { + message_die(GENERAL_MESSAGE, $lang['Fields_empty']); + } + + // + // Convert < and > to proper htmlentities for parsing. + // + $smile_code = str_replace('<', '<', $smile_code); + $smile_code = str_replace('>', '>', $smile_code); + + // + // Save the data to the smiley table. + // + $sql = "INSERT INTO " . SMILIES_TABLE . " (code, smile_url, emoticon) + VALUES ('" . str_replace("\'", "''", $smile_code) . "', '" . str_replace("\'", "''", $smile_url) . "', '" . str_replace("\'", "''", $smile_emotion) . "')"; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't insert new smiley", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['smiley_add_success'] . "

" . sprintf($lang['Click_return_smileadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + break; + } +} +else +{ + + // + // This is the main display of the page before the admin has selected + // any options. + // + $sql = "SELECT * + FROM " . SMILIES_TABLE; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't obtain smileys from database", "", __LINE__, __FILE__, $sql); + } + + $smilies = $db->sql_fetchrowset($result); + + $template->set_filenames(array( + "body" => "admin/smile_list_body.tpl") + ); + + $template->assign_vars(array( + "L_ACTION" => $lang['Action'], + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_TEXT" => $lang['smile_desc'], + "L_DELETE" => $lang['Delete'], + "L_EDIT" => $lang['Edit'], + "L_SMILEY_ADD" => $lang['smile_add'], + "L_CODE" => $lang['Code'], + "L_EMOT" => $lang['Emotion'], + "L_SMILE" => $lang['Smile'], + "L_IMPORT_PACK" => $lang['import_smile_pack'], + "L_EXPORT_PACK" => $lang['export_smile_pack'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx")) + ); + + // + // Loop throuh the rows of smilies setting block vars for the template. + // + for($i = 0; $i < count($smilies); $i++) + { + // + // Replace htmlentites for < and > with actual character. + // + $smilies[$i]['code'] = str_replace('<', '<', $smilies[$i]['code']); + $smilies[$i]['code'] = str_replace('>', '>', $smilies[$i]['code']); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("smiles", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + + "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'], + "CODE" => $smilies[$i]['code'], + "EMOT" => $smilies[$i]['emoticon'], + + "U_SMILEY_EDIT" => append_sid("admin_smilies.$phpEx?mode=edit&id=" . $smilies[$i]['smilies_id']), + "U_SMILEY_DELETE" => append_sid("admin_smilies.$phpEx?mode=delete&id=" . $smilies[$i]['smilies_id'])) + ); + } + + // + // Spit out the page. + // + $template->pparse("body"); +} + +// +// Page Footer +// +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_styles.php b/phpBB2/admin/admin_styles.php new file mode 100644 index 0000000..200aa4a --- /dev/null +++ b/phpBB2/admin/admin_styles.php @@ -0,0 +1,941 @@ +sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Could not insert theme data!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Theme_installed'] . "

" . sprintf($lang['Click_return_styleadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + + $installable_themes = array(); + + if( $dir = @opendir($phpbb_root_path. "templates/") ) + { + while( $sub_dir = @readdir($dir) ) + { + if( !is_file(phpbb_realpath($phpbb_root_path . 'templates/' .$sub_dir)) && !is_link(phpbb_realpath($phpbb_root_path . 'templates/' .$sub_dir)) && $sub_dir != "." && $sub_dir != ".." && $sub_dir != "CVS" ) + { + if( @file_exists(@phpbb_realpath($phpbb_root_path. "templates/" . $sub_dir . "/theme_info.cfg")) ) + { + include($phpbb_root_path. "templates/" . $sub_dir . "/theme_info.cfg"); + + for($i = 0; $i < count($$sub_dir); $i++) + { + $working_data = $$sub_dir; + + $style_name = $working_data[$i]['style_name']; + + $sql = "SELECT themes_id + FROM " . THEMES_TABLE . " + WHERE style_name = '" . str_replace("\'", "''", $style_name) . "'"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query themes table!", "", __LINE__, __FILE__, $sql); + } + + if(!$db->sql_numrows($result)) + { + $installable_themes[] = $working_data[$i]; + } + } + } + } + } + + $template->set_filenames(array( + "body" => "admin/styles_addnew_body.tpl") + ); + + $template->assign_vars(array( + "L_STYLES_TITLE" => $lang['Styles_admin'], + "L_STYLES_ADD_TEXT" => $lang['Styles_addnew_explain'], + "L_STYLE" => $lang['Style'], + "L_TEMPLATE" => $lang['Template'], + "L_INSTALL" => $lang['Install'], + "L_ACTION" => $lang['Action']) + ); + + for($i = 0; $i < count($installable_themes); $i++) + { + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("styles", array( + "ROW_CLASS" => $row_class, + "ROW_COLOR" => "#" . $row_color, + "STYLE_NAME" => $installable_themes[$i]['style_name'], + "TEMPLATE_NAME" => $installable_themes[$i]['template_name'], + + "U_STYLES_INSTALL" => append_sid("admin_styles.$phpEx?mode=addnew&style=" . urlencode($installable_themes[$i]['style_name']) . "&install_to=" . urlencode($installable_themes[$i]['template_name']))) + ); + + } + $template->pparse("body"); + + } + closedir($dir); + } + break; + + case "create": + case "edit": + $submit = ( isset($HTTP_POST_VARS['submit']) ) ? TRUE : 0; + + if( $submit ) + { + // + // DAMN! Thats alot of data to validate... + // + $updated['style_name'] = $HTTP_POST_VARS['style_name']; + $updated['template_name'] = $HTTP_POST_VARS['template_name']; + $updated['head_stylesheet'] = $HTTP_POST_VARS['head_stylesheet']; + $updated['body_background'] = $HTTP_POST_VARS['body_background']; + $updated['body_bgcolor'] = $HTTP_POST_VARS['body_bgcolor']; + $updated['body_text'] = $HTTP_POST_VARS['body_text']; + $updated['body_link'] = $HTTP_POST_VARS['body_link']; + $updated['body_vlink'] = $HTTP_POST_VARS['body_vlink']; + $updated['body_alink'] = $HTTP_POST_VARS['body_alink']; + $updated['body_hlink'] = $HTTP_POST_VARS['body_hlink']; + $updated['tr_color1'] = $HTTP_POST_VARS['tr_color1']; + $updated_name['tr_color1_name'] = $HTTP_POST_VARS['tr_color1_name']; + $updated['tr_color2'] = $HTTP_POST_VARS['tr_color2']; + $updated_name['tr_color2_name'] = $HTTP_POST_VARS['tr_color2_name']; + $updated['tr_color3'] = $HTTP_POST_VARS['tr_color3']; + $updated_name['tr_color3_name'] = $HTTP_POST_VARS['tr_color3_name']; + $updated['tr_class1'] = $HTTP_POST_VARS['tr_class1']; + $updated_name['tr_class1_name'] = $HTTP_POST_VARS['tr_class1_name']; + $updated['tr_class2'] = $HTTP_POST_VARS['tr_class2']; + $updated_name['tr_class2_name'] = $HTTP_POST_VARS['tr_class2_name']; + $updated['tr_class3'] = $HTTP_POST_VARS['tr_class3']; + $updated_name['tr_class3_name'] = $HTTP_POST_VARS['tr_class3_name']; + $updated['th_color1'] = $HTTP_POST_VARS['th_color1']; + $updated_name['th_color1_name'] = $HTTP_POST_VARS['th_color1_name']; + $updated['th_color2'] = $HTTP_POST_VARS['th_color2']; + $updated_name['th_color2_name'] = $HTTP_POST_VARS['th_color2_name']; + $updated['th_color3'] = $HTTP_POST_VARS['th_color3']; + $updated_name['th_color3_name'] = $HTTP_POST_VARS['th_color3_name']; + $updated['th_class1'] = $HTTP_POST_VARS['th_class1']; + $updated_name['th_class1_name'] = $HTTP_POST_VARS['th_class1_name']; + $updated['th_class2'] = $HTTP_POST_VARS['th_class2']; + $updated_name['th_class2_name'] = $HTTP_POST_VARS['th_class2_name']; + $updated['th_class3'] = $HTTP_POST_VARS['th_class3']; + $updated_name['th_class3_name'] = $HTTP_POST_VARS['th_class3_name']; + $updated['td_color1'] = $HTTP_POST_VARS['td_color1']; + $updated_name['td_color1_name'] = $HTTP_POST_VARS['td_color1_name']; + $updated['td_color2'] = $HTTP_POST_VARS['td_color2']; + $updated_name['td_color2_name'] = $HTTP_POST_VARS['td_color2_name']; + $updated['td_color3'] = $HTTP_POST_VARS['td_color3']; + $updated_name['td_color3_name'] = $HTTP_POST_VARS['td_color3_name']; + $updated['td_class1'] = $HTTP_POST_VARS['td_class1']; + $updated_name['td_class1_name'] = $HTTP_POST_VARS['td_class1_name']; + $updated['td_class2'] = $HTTP_POST_VARS['td_class2']; + $updated_name['td_class2_name'] = $HTTP_POST_VARS['td_class2_name']; + $updated['td_class3'] = $HTTP_POST_VARS['td_class3']; + $updated_name['td_class3_name'] = $HTTP_POST_VARS['td_class3_name']; + $updated['fontface1'] = $HTTP_POST_VARS['fontface1']; + $updated_name['fontface1_name'] = $HTTP_POST_VARS['fontface1_name']; + $updated['fontface2'] = $HTTP_POST_VARS['fontface2']; + $updated_name['fontface2_name'] = $HTTP_POST_VARS['fontface2_name']; + $updated['fontface3'] = $HTTP_POST_VARS['fontface3']; + $updated_name['fontface3_name'] = $HTTP_POST_VARS['fontface3_name']; + $updated['fontsize1'] = intval($HTTP_POST_VARS['fontsize1']); + $updated_name['fontsize1_name'] = $HTTP_POST_VARS['fontsize1_name']; + $updated['fontsize2'] = intval($HTTP_POST_VARS['fontsize2']); + $updated_name['fontsize2_name'] = $HTTP_POST_VARS['fontsize2_name']; + $updated['fontsize3'] = intval($HTTP_POST_VARS['fontsize3']); + $updated_name['fontsize3_name'] = $HTTP_POST_VARS['fontsize3_name']; + $updated['fontcolor1'] = $HTTP_POST_VARS['fontcolor1']; + $updated_name['fontcolor1_name'] = $HTTP_POST_VARS['fontcolor1_name']; + $updated['fontcolor2'] = $HTTP_POST_VARS['fontcolor2']; + $updated_name['fontcolor2_name'] = $HTTP_POST_VARS['fontcolor2_name']; + $updated['fontcolor3'] = $HTTP_POST_VARS['fontcolor3']; + $updated_name['fontcolor3_name'] = $HTTP_POST_VARS['fontcolor3_name']; + $updated['span_class1'] = $HTTP_POST_VARS['span_class1']; + $updated_name['span_class1_name'] = $HTTP_POST_VARS['span_class1_name']; + $updated['span_class2'] = $HTTP_POST_VARS['span_class2']; + $updated_name['span_class2_name'] = $HTTP_POST_VARS['span_class2_name']; + $updated['span_class3'] = $HTTP_POST_VARS['span_class3']; + $updated_name['span_class3_name'] = $HTTP_POST_VARS['span_class3_name']; + $style_id = intval($HTTP_POST_VARS['style_id']); + // + // Wheeeew! Thank heavens for copy and paste and search and replace :D + // + + if($mode == "edit") + { + $sql = "UPDATE " . THEMES_TABLE . " SET "; + $count = 0; + + while(list($key, $val) = each($updated)) + { + if($count != 0) + { + $sql .= ", "; + } + + // + // I don't like this but it'll keep MSSQL from throwing + // an error and save me alot of typing + // + $sql .= ( stristr($key, "fontsize") ) ? "$key = $val" : "$key = '" . str_replace("\'", "''", $val) . "'"; + + $count++; + } + + $sql .= " WHERE themes_id = $style_id"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not update themes table!", "", __LINE__, __FILE__, $sql); + } + + // + // Check if there's a names table entry for this style + // + $sql = "SELECT themes_id + FROM " . THEMES_NAME_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get data from themes_name table", "", __LINE__, __FILE__, $sql); + } + + if($db->sql_numrows($result) > 0) + { + $sql = "UPDATE " . THEMES_NAME_TABLE . " + SET "; + $count = 0; + while(list($key, $val) = each($updated_name)) + { + if($count != 0) + { + $sql .= ", "; + } + + $sql .= "$key = '$val'"; + + $count++; + } + + $sql .= " WHERE themes_id = $style_id"; + } + else + { + // + // Nope, no names entry so we create a new one. + // + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, "; + while(list($key, $val) = each($updated_name)) + { + $fields[] = $key; + $vals[] = str_replace("\'", "''", $val); + } + + for($i = 0; $i < count($fields); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= $fields[$i]; + } + + $sql .= ") VALUES ($style_id, "; + for($i = 0; $i < count($vals); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= "'" . $vals[$i] . "'"; + } + + $sql .= ")"; + } + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not update themes name table!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Theme_updated'] . "

" . sprintf($lang['Click_return_styleadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + // + // First, check if we already have a style by this name + // + $sql = "SELECT themes_id + FROM " . THEMES_TABLE . " + WHERE style_name = '" . str_replace("\'", "''", $updated['style_name']) . "'"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query themes table", "", __LINE__, __FILE__, $sql); + } + + if($db->sql_numrows($result)) + { + message_die(GENERAL_ERROR, $lang['Style_exists'], $lang['Error']); + } + + while(list($key, $val) = each($updated)) + { + $field_names[] = $key; + + if(stristr($key, "fontsize")) + { + $values[] = "$val"; + } + else + { + $values[] = "'" . str_replace("\'", "''", $val) . "'"; + } + } + + $sql = "INSERT + INTO " . THEMES_TABLE . " ("; + for($i = 0; $i < count($field_names); $i++) + { + if($i != 0) + { + $sql .= ", "; + } + $sql .= $field_names[$i]; + } + + $sql .= ") VALUES ("; + for($i = 0; $i < count($values); $i++) + { + if($i != 0) + { + $sql .= ", "; + } + $sql .= $values[$i]; + } + $sql .= ")"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not update themes table!", "", __LINE__, __FILE__, $sql); + } + + $style_id = $db->sql_nextid(); + + // + // Insert names data + // + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, "; + while(list($key, $val) = each($updated_name)) + { + $fields[] = $key; + $vals[] = $val; + } + + for($i = 0; $i < count($fields); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= $fields[$i]; + } + + $sql .= ") VALUES ($style_id, "; + for($i = 0; $i < count($vals); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= "'" . $vals[$i] . "'"; + } + + $sql .= ")"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not insert themes name table!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Theme_created'] . "

" . sprintf($lang['Click_return_styleadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + if($mode == "edit") + { + $themes_title = $lang['Edit_theme']; + $themes_explain = $lang['Edit_theme_explain']; + + $style_id = intval($HTTP_GET_VARS['style_id']); + + $selected_names = array(); + $selected_values = array(); + // + // Fetch the Theme Info from the db + // + $sql = "SELECT * + FROM " . THEMES_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get data from themes table", "", __LINE__, __FILE__, $sql); + } + + if ( $selected_values = $db->sql_fetchrow($result) ) + { + while(list($key, $val) = @each($selected_values)) + { + $selected[$key] = $val; + } + } + + // + // Fetch the Themes Name data + // + $sql = "SELECT * + FROM " . THEMES_NAME_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get data from themes name table", "", __LINE__, __FILE__, $sql); + } + + if ( $selected_names = $db->sql_fetchrow($result) ) + { + while(list($key, $val) = @each($selected_names)) + { + $selected[$key] = $val; + } + } + + $s_hidden_fields = ''; + } + else + { + $themes_title = $lang['Create_theme']; + $themes_explain = $lang['Create_theme_explain']; + } + + $template->set_filenames(array( + "body" => "admin/styles_edit_body.tpl") + ); + + if( $dir = @opendir($phpbb_root_path . 'templates/') ) + { + $s_template_select = ''; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_template_dir']); + } + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + "L_THEMES_TITLE" => $themes_title, + "L_THEMES_EXPLAIN" => $themes_explain, + "L_THEME_NAME" => $lang['Theme_name'], + "L_TEMPLATE" => $lang['Template'], + "L_THEME_SETTINGS" => $lang['Theme_settings'], + "L_THEME_ELEMENT" => $lang['Theme_element'], + "L_SIMPLE_NAME" => $lang['Simple_name'], + "L_VALUE" => $lang['Value'], + "L_STYLESHEET" => $lang['Stylesheet'], + "L_STYLESHEET_EXPLAIN" => $lang['Stylesheet_explain'], + "L_BACKGROUND_IMAGE" => $lang['Background_image'], + "L_BACKGROUND_COLOR" => $lang['Background_color'], + "L_BODY_TEXT_COLOR" => $lang['Text_color'], + "L_BODY_LINK_COLOR" => $lang['Link_color'], + "L_BODY_VLINK_COLOR" => $lang['VLink_color'], + "L_BODY_ALINK_COLOR" => $lang['ALink_color'], + "L_BODY_HLINK_COLOR" => $lang['HLink_color'], + "L_TR_COLOR1" => $lang['Tr_color1'], + "L_TR_COLOR2" => $lang['Tr_color2'], + "L_TR_COLOR3" => $lang['Tr_color3'], + "L_TR_CLASS1" => $lang['Tr_class1'], + "L_TR_CLASS2" => $lang['Tr_class2'], + "L_TR_CLASS3" => $lang['Tr_class3'], + "L_TH_COLOR1" => $lang['Th_color1'], + "L_TH_COLOR2" => $lang['Th_color2'], + "L_TH_COLOR3" => $lang['Th_color3'], + "L_TH_CLASS1" => $lang['Th_class1'], + "L_TH_CLASS2" => $lang['Th_class2'], + "L_TH_CLASS3" => $lang['Th_class3'], + "L_TD_COLOR1" => $lang['Td_color1'], + "L_TD_COLOR2" => $lang['Td_color2'], + "L_TD_COLOR3" => $lang['Td_color3'], + "L_TD_CLASS1" => $lang['Td_class1'], + "L_TD_CLASS2" => $lang['Td_class2'], + "L_TD_CLASS3" => $lang['Td_class3'], + "L_FONTFACE_1" => $lang['fontface1'], + "L_FONTFACE_2" => $lang['fontface2'], + "L_FONTFACE_3" => $lang['fontface3'], + "L_FONTSIZE_1" => $lang['fontsize1'], + "L_FONTSIZE_2" => $lang['fontsize2'], + "L_FONTSIZE_3" => $lang['fontsize3'], + "L_FONTCOLOR_1" => $lang['fontcolor1'], + "L_FONTCOLOR_2" => $lang['fontcolor2'], + "L_FONTCOLOR_3" => $lang['fontcolor3'], + "L_SPAN_CLASS_1" => $lang['span_class1'], + "L_SPAN_CLASS_2" => $lang['span_class2'], + "L_SPAN_CLASS_3" => $lang['span_class3'], + "L_SAVE_SETTINGS" => $lang['Save_Settings'], + "THEME_NAME" => $selected['style_name'], + "HEAD_STYLESHEET" => $selected['head_stylesheet'], + "BODY_BACKGROUND" => $selected['body_background'], + "BODY_BGCOLOR" => $selected['body_bgcolor'], + "BODY_TEXT_COLOR" => $selected['body_text'], + "BODY_LINK_COLOR" => $selected['body_link'], + "BODY_VLINK_COLOR" => $selected['body_vlink'], + "BODY_ALINK_COLOR" => $selected['body_alink'], + "BODY_HLINK_COLOR" => $selected['body_hlink'], + "TR_COLOR1" => $selected['tr_color1'], + "TR_COLOR2" => $selected['tr_color2'], + "TR_COLOR3" => $selected['tr_color3'], + "TR_CLASS1" => $selected['tr_class1'], + "TR_CLASS2" => $selected['tr_class2'], + "TR_CLASS3" => $selected['tr_class3'], + "TH_COLOR1" => $selected['th_color1'], + "TH_COLOR2" => $selected['th_color2'], + "TH_COLOR3" => $selected['th_color3'], + "TH_CLASS1" => $selected['th_class1'], + "TH_CLASS2" => $selected['th_class2'], + "TH_CLASS3" => $selected['th_class3'], + "TD_COLOR1" => $selected['td_color1'], + "TD_COLOR2" => $selected['td_color2'], + "TD_COLOR3" => $selected['td_color3'], + "TD_CLASS1" => $selected['td_class1'], + "TD_CLASS2" => $selected['td_class2'], + "TD_CLASS3" => $selected['td_class3'], + "FONTFACE1" => $selected['fontface1'], + "FONTFACE2" => $selected['fontface2'], + "FONTFACE3" => $selected['fontface3'], + "FONTSIZE1" => $selected['fontsize1'], + "FONTSIZE2" => $selected['fontsize2'], + "FONTSIZE3" => $selected['fontsize3'], + "FONTCOLOR1" => $selected['fontcolor1'], + "FONTCOLOR2" => $selected['fontcolor2'], + "FONTCOLOR3" => $selected['fontcolor3'], + "SPAN_CLASS1" => $selected['span_class1'], + "SPAN_CLASS2" => $selected['span_class2'], + "SPAN_CLASS3" => $selected['span_class3'], + + "TR_COLOR1_NAME" => $selected['tr_color1_name'], + "TR_COLOR2_NAME" => $selected['tr_color2_name'], + "TR_COLOR3_NAME" => $selected['tr_color3_name'], + "TR_CLASS1_NAME" => $selected['tr_class1_name'], + "TR_CLASS2_NAME" => $selected['tr_class2_name'], + "TR_CLASS3_NAME" => $selected['tr_class3_name'], + "TH_COLOR1_NAME" => $selected['th_color1_name'], + "TH_COLOR2_NAME" => $selected['th_color2_name'], + "TH_COLOR3_NAME" => $selected['th_color3_name'], + "TH_CLASS1_NAME" => $selected['th_class1_name'], + "TH_CLASS2_NAME" => $selected['th_class2_name'], + "TH_CLASS3_NAME" => $selected['th_class3_name'], + "TD_COLOR1_NAME" => $selected['td_color1_name'], + "TD_COLOR2_NAME" => $selected['td_color2_name'], + "TD_COLOR3_NAME" => $selected['td_color3_name'], + "TD_CLASS1_NAME" => $selected['td_class1_name'], + "TD_CLASS2_NAME" => $selected['td_class2_name'], + "TD_CLASS3_NAME" => $selected['td_class3_name'], + "FONTFACE1_NAME" => $selected['fontface1_name'], + "FONTFACE2_NAME" => $selected['fontface2_name'], + "FONTFACE3_NAME" => $selected['fontface3_name'], + "FONTSIZE1_NAME" => $selected['fontsize1_name'], + "FONTSIZE2_NAME" => $selected['fontsize2_name'], + "FONTSIZE3_NAME" => $selected['fontsize3_name'], + "FONTCOLOR1_NAME" => $selected['fontcolor1_name'], + "FONTCOLOR2_NAME" => $selected['fontcolor2_name'], + "FONTCOLOR3_NAME" => $selected['fontcolor3_name'], + "SPAN_CLASS1_NAME" => $selected['span_class1_name'], + "SPAN_CLASS2_NAME" => $selected['span_class2_name'], + "SPAN_CLASS3_NAME" => $selected['span_class3_name'], + + "S_THEME_ACTION" => append_sid("admin_styles.$phpEx"), + "S_TEMPLATE_SELECT" => $s_template_select, + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + + $template->pparse("body"); + } + break; + + case "export"; + if($HTTP_POST_VARS['export_template']) + { + $template_name = $HTTP_POST_VARS['export_template']; + + $sql = "SELECT * + FROM " . THEMES_TABLE . " + WHERE template_name = '" . str_replace("\'", "''", $template_name) . "'"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get theme data for selected template", "", __LINE__, __FILE__, $sql); + } + + $theme_rowset = $db->sql_fetchrowset($result); + + if( count($theme_rowset) == 0 ) + { + message_die(GENERAL_MESSAGE, $lang['No_themes']); + } + + $theme_data = ''; // Done this to prevent highlighting editors getting confused! + + @umask(0111); + + $fp = @fopen($phpbb_root_path . 'templates/' . basename($template_name) . '/theme_info.cfg', 'w'); + + if( !$fp ) + { + // + // Unable to open the file writeable do something here as an attempt + // to get around that... + // + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + $download_form = '
' . $s_hidden_fields; + + $template->set_filenames(array( + "body" => "message_body.tpl") + ); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Export_themes'], + "MESSAGE_TEXT" => $lang['Download_theme_cfg'] . "

" . $download_form) + ); + + $template->pparse('body'); + exit(); + } + + $result = @fputs($fp, $theme_data, strlen($theme_data)); + fclose($fp); + + $message = $lang['Theme_info_saved'] . "

" . sprintf($lang['Click_return_styleadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else if($HTTP_POST_VARS['send_file']) + { + + header("Content-Type: text/x-delimtext; name=\"theme_info.cfg\""); + header("Content-disposition: attachment; filename=theme_info.cfg"); + + echo stripslashes($HTTP_POST_VARS['theme_info']); + } + else + { + $template->set_filenames(array( + "body" => "admin/styles_exporter.tpl") + ); + + if( $dir = @opendir($phpbb_root_path . 'templates/') ) + { + $s_template_select = ''; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_template_dir']); + } + + $template->assign_vars(array( + "L_STYLE_EXPORTER" => $lang['Export_themes'], + "L_EXPORTER_EXPLAIN" => $lang['Export_explain'], + "L_TEMPLATE_SELECT" => $lang['Select_template'], + "L_SUBMIT" => $lang['Submit'], + + "S_EXPORTER_ACTION" => append_sid("admin_styles.$phpEx?mode=export"), + "S_TEMPLATE_SELECT" => $s_template_select) + ); + + $template->pparse("body"); + + } + break; + + case "delete": + $style_id = ( isset($HTTP_GET_VARS['style_id']) ) ? intval($HTTP_GET_VARS['style_id']) : intval($HTTP_POST_VARS['style_id']); + + if( !$confirm ) + { + if($style_id == $board_config['default_style']) + { + message_die(GENERAL_MESSAGE, $lang['Cannot_remove_style']); + } + + $hidden_fields = ''; + + // + // Set template files + // + $template->set_filenames(array( + "confirm" => "admin/confirm_body.tpl") + ); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Confirm'], + "MESSAGE_TEXT" => $lang['Confirm_delete_style'], + + "L_YES" => $lang['Yes'], + "L_NO" => $lang['No'], + + "S_CONFIRM_ACTION" => append_sid("admin_styles.$phpEx"), + "S_HIDDEN_FIELDS" => $hidden_fields) + ); + + $template->pparse("confirm"); + + } + else + { + // + // The user has confirmed the delete. Remove the style, the style element + // names and update any users who might be using this style + // + $sql = "DELETE FROM " . THEMES_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql, BEGIN_TRANSACTION)) + { + message_die(GENERAL_ERROR, "Could not remove style data!", "", __LINE__, __FILE__, $sql); + } + + // + // There may not be any theme name data so don't throw an error + // if the SQL dosan't work + // + $sql = "DELETE FROM " . THEMES_NAME_TABLE . " + WHERE themes_id = $style_id"; + $db->sql_query($sql); + + $sql = "UPDATE " . USERS_TABLE . " + SET user_style = " . $board_config['default_style'] . " + WHERE user_style = $style_id"; + if(!$result = $db->sql_query($sql, END_TRANSACTION)) + { + message_die(GENERAL_ERROR, "Could not update user style information", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Style_removed'] . "

" . sprintf($lang['Click_return_styleadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + break; + + default: + + $sql = "SELECT themes_id, template_name, style_name + FROM " . THEMES_TABLE . " + ORDER BY template_name"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get style information!", "", __LINE__, __FILE__, $sql); + } + + $style_rowset = $db->sql_fetchrowset($result); + + $template->set_filenames(array( + "body" => "admin/styles_list_body.tpl") + ); + + $template->assign_vars(array( + "L_STYLES_TITLE" => $lang['Styles_admin'], + "L_STYLES_TEXT" => $lang['Styles_explain'], + "L_STYLE" => $lang['Style'], + "L_TEMPLATE" => $lang['Template'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete']) + ); + + for($i = 0; $i < count($style_rowset); $i++) + { + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("styles", array( + "ROW_CLASS" => $row_class, + "ROW_COLOR" => $row_color, + "STYLE_NAME" => $style_rowset[$i]['style_name'], + "TEMPLATE_NAME" => $style_rowset[$i]['template_name'], + + "U_STYLES_EDIT" => append_sid("admin_styles.$phpEx?mode=edit&style_id=" . $style_rowset[$i]['themes_id']), + "U_STYLES_DELETE" => append_sid("admin_styles.$phpEx?mode=delete&style_id=" . $style_rowset[$i]['themes_id'])) + ); + } + + $template->pparse("body"); + break; +} + +if (empty($HTTP_POST_VARS['send_file'])) +{ + include('./page_footer_admin.'.$phpEx); +} + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_ug_auth.php b/phpBB2/admin/admin_ug_auth.php new file mode 100644 index 0000000..0588ffe --- /dev/null +++ b/phpBB2/admin/admin_ug_auth.php @@ -0,0 +1,999 @@ + 'mode', 'user_id' => POST_USERS_URL, 'group_id' => POST_GROUPS_URL, 'adv' => 'adv'); + +while( list($var, $param) = @each($params) ) +{ + if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) ) + { + $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? $HTTP_POST_VARS[$param] : $HTTP_GET_VARS[$param]; + } + else + { + $$var = ""; + } +} + +$user_id = intval($user_id); +$group_id = intval($group_id); +$adv = intval($adv); +$mode = htmlspecialchars($mode); + +// +// Start program - define vars +// +$forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate'); + +$auth_field_match = array( + 'auth_view' => AUTH_VIEW, + 'auth_read' => AUTH_READ, + 'auth_post' => AUTH_POST, + 'auth_reply' => AUTH_REPLY, + 'auth_edit' => AUTH_EDIT, + 'auth_delete' => AUTH_DELETE, + 'auth_sticky' => AUTH_STICKY, + 'auth_announce' => AUTH_ANNOUNCE, + 'auth_vote' => AUTH_VOTE, + 'auth_pollcreate' => AUTH_POLLCREATE); + +$field_names = array( + 'auth_view' => $lang['View'], + 'auth_read' => $lang['Read'], + 'auth_post' => $lang['Post'], + 'auth_reply' => $lang['Reply'], + 'auth_edit' => $lang['Edit'], + 'auth_delete' => $lang['Delete'], + 'auth_sticky' => $lang['Sticky'], + 'auth_announce' => $lang['Announce'], + 'auth_vote' => $lang['Vote'], + 'auth_pollcreate' => $lang['Pollcreate']); + +// --------------- +// Start Functions +// +function check_auth($type, $key, $u_access, $is_admin) +{ + $auth_user = 0; + + if( count($u_access) ) + { + for($j = 0; $j < count($u_access); $j++) + { + $result = 0; + switch($type) + { + case AUTH_ACL: + $result = $u_access[$j][$key]; + + case AUTH_MOD: + $result = $result || $u_access[$j]['auth_mod']; + + case AUTH_ADMIN: + $result = $result || $is_admin; + break; + } + + $auth_user = $auth_user || $result; + } + } + else + { + $auth_user = $is_admin; + } + + return $auth_user; +} +// +// End Functions +// ------------- + +if ( isset($HTTP_POST_VARS['submit']) && ( ( $mode == 'user' && $user_id ) || ( $mode == 'group' && $group_id ) ) ) +{ + $user_level = ''; + if ( $mode == 'user' ) + { + // + // Get group_id for this user_id + // + $sql = "SELECT g.group_id, u.user_level + FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u, " . GROUPS_TABLE . " g + WHERE u.user_id = $user_id + AND ug.user_id = u.user_id + AND g.group_id = ug.group_id + AND g.group_single_user = " . TRUE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select info from user/user_group table', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + $group_id = $row['group_id']; + $user_level = $row['user_level']; + + $db->sql_freeresult($result); + } + + // + // Carry out requests + // + if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'admin' && $user_level != ADMIN ) + { + // + // Make user an admin (if already user) + // + if ( $userdata['user_id'] != $user_id ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . ADMIN . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = $group_id + AND auth_mod = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't delete auth access info", "", __LINE__, __FILE__, $sql); + } + + // + // Delete any entries in auth_access, they are not required if user is becoming an + // admin + // + $sql = "UPDATE " . AUTH_ACCESS_TABLE . " + SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0 + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update auth access", "", __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Auth_updated'] . '

' . sprintf($lang['Click_return_userauth'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'user' && $user_level == ADMIN ) + { + // + // Make admin a user (if already admin) ... ignore if you're trying + // to change yourself from an admin to user! + // + if ( $userdata['user_id'] != $user_id ) + { + $sql = "UPDATE " . AUTH_ACCESS_TABLE . " + SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0 + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update auth access', '', __LINE__, __FILE__, $sql); + } + + // + // Update users level, reset to USER + // + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Auth_updated'] . '

' . sprintf($lang['Click_return_userauth'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + } + else + { + + $change_mod_list = ( isset($HTTP_POST_VARS['moderator']) ) ? $HTTP_POST_VARS['moderator'] : false; + + if ( empty($adv) ) + { + $change_acl_list = ( isset($HTTP_POST_VARS['private']) ) ? $HTTP_POST_VARS['private'] : false; + } + else + { + $change_acl_list = array(); + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $auth_field = $forum_auth_fields[$j]; + + while( list($forum_id, $value) = @each($HTTP_POST_VARS['private_' . $auth_field]) ) + { + $change_acl_list[$forum_id][$auth_field] = $value; + } + } + } + + $sql = 'SELECT f.* + FROM ' . FORUMS_TABLE . ' f, ' . CATEGORIES_TABLE . ' c + WHERE f.cat_id = c.cat_id + ORDER BY c.cat_order, f.forum_order'; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql); + } + + $forum_access = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_access[] = $row; + } + $db->sql_freeresult($result); + + $sql = ( $mode == 'user' ) ? "SELECT aa.* FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND g.group_id = ug.group_id AND aa.group_id = ug.group_id AND g.group_single_user = " . TRUE : "SELECT * FROM " . AUTH_ACCESS_TABLE . " WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $auth_access = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $auth_access[$row['forum_id']] = $row; + } + $db->sql_freeresult($result); + + $forum_auth_action = array(); + $update_acl_status = array(); + $update_mod_status = array(); + + for($i = 0; $i < count($forum_access); $i++) + { + $forum_id = $forum_access[$i]['forum_id']; + + if ( + ( isset($auth_access[$forum_id]['auth_mod']) && $change_mod_list[$forum_id]['auth_mod'] != $auth_access[$forum_id]['auth_mod'] ) || + ( !isset($auth_access[$forum_id]['auth_mod']) && !empty($change_mod_list[$forum_id]['auth_mod']) ) + ) + { + $update_mod_status[$forum_id] = $change_mod_list[$forum_id]['auth_mod']; + + if ( !$update_mod_status[$forum_id] ) + { + $forum_auth_action[$forum_id] = 'delete'; + } + else if ( !isset($auth_access[$forum_id]['auth_mod']) ) + { + $forum_auth_action[$forum_id] = 'insert'; + } + else + { + $forum_auth_action[$forum_id] = 'update'; + } + } + + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $auth_field = $forum_auth_fields[$j]; + + if( $forum_access[$i][$auth_field] == AUTH_ACL && isset($change_acl_list[$forum_id][$auth_field]) ) + { + if ( ( empty($auth_access[$forum_id]['auth_mod']) && + ( isset($auth_access[$forum_id][$auth_field]) && $change_acl_list[$forum_id][$auth_field] != $auth_access[$forum_id][$auth_field] ) || + ( !isset($auth_access[$forum_id][$auth_field]) && !empty($change_acl_list[$forum_id][$auth_field]) ) ) || + !empty($update_mod_status[$forum_id]) + ) + { + $update_acl_status[$forum_id][$auth_field] = ( !empty($update_mod_status[$forum_id]) ) ? 0 : $change_acl_list[$forum_id][$auth_field]; + + if ( isset($auth_access[$forum_id][$auth_field]) && empty($update_acl_status[$forum_id][$auth_field]) && $forum_auth_action[$forum_id] != 'insert' && $forum_auth_action[$forum_id] != 'update' ) + { + $forum_auth_action[$forum_id] = 'delete'; + } + else if ( !isset($auth_access[$forum_id][$auth_field]) && !( $forum_auth_action[$forum_id] == 'delete' && empty($update_acl_status[$forum_id][$auth_field]) ) ) + { + $forum_auth_action[$forum_id] = 'insert'; + } + else if ( isset($auth_access[$forum_id][$auth_field]) && !empty($update_acl_status[$forum_id][$auth_field]) ) + { + $forum_auth_action[$forum_id] = 'update'; + } + } + else if ( ( empty($auth_access[$forum_id]['auth_mod']) && + ( isset($auth_access[$forum_id][$auth_field]) && $change_acl_list[$forum_id][$auth_field] == $auth_access[$forum_id][$auth_field] ) ) && $forum_auth_action[$forum_id] == 'delete' ) + { + $forum_auth_action[$forum_id] = 'update'; + } + } + } + } + + // + // Checks complete, make updates to DB + // + $delete_sql = ''; + while( list($forum_id, $action) = @each($forum_auth_action) ) + { + if ( $action == 'delete' ) + { + $delete_sql .= ( ( $delete_sql != '' ) ? ', ' : '' ) . $forum_id; + } + else + { + if ( $action == 'insert' ) + { + $sql_field = ''; + $sql_value = ''; + while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) ) + { + $sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . $auth_type; + $sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . $value; + } + $sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . 'auth_mod'; + $sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]); + + $sql = "INSERT INTO " . AUTH_ACCESS_TABLE . " (forum_id, group_id, $sql_field) + VALUES ($forum_id, $group_id, $sql_value)"; + } + else + { + $sql_values = ''; + while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) ) + { + $sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . $auth_type . ' = ' . $value; + } + $sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . 'auth_mod = ' . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]); + + $sql = "UPDATE " . AUTH_ACCESS_TABLE . " + SET $sql_values + WHERE group_id = $group_id + AND forum_id = $forum_id"; + } + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update private forum permissions", "", __LINE__, __FILE__, $sql); + } + } + } + + if ( $delete_sql != '' ) + { + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = $group_id + AND forum_id IN ($delete_sql)"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't delete permission entries", "", __LINE__, __FILE__, $sql); + } + } + + $l_auth_return = ( $mode == 'user' ) ? $lang['Click_return_userauth'] : $lang['Click_return_groupauth']; + $message = $lang['Auth_updated'] . '

' . sprintf($l_auth_return, '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + } + + // + // Update user level to mod for appropriate users + // + $sql = "SELECT u.user_id + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE ug.group_id = aa.group_id + AND u.user_id = ug.user_id + AND ug.user_pending = 0 + AND u.user_level NOT IN (" . MOD . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) > 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $set_mod = ''; + while( $row = $db->sql_fetchrow($result) ) + { + $set_mod .= ( ( $set_mod != '' ) ? ', ' : '' ) . $row['user_id']; + } + $db->sql_freeresult($result); + + // + // Update user level to user for appropriate users + // + switch ( SQL_LAYER ) + { + case 'postgresql': + $sql = "SELECT u.user_id + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa + WHERE ug.user_id = u.user_id + AND aa.group_id = ug.group_id + AND u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) = 0 + UNION ( + SELECT u.user_id + FROM " . USERS_TABLE . " u + WHERE NOT EXISTS ( + SELECT aa.auth_mod + FROM " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa + WHERE ug.user_id = u.user_id + AND aa.group_id = ug.group_id + ) + AND u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + )"; + break; + case 'oracle': + $sql = "SELECT u.user_id + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa + WHERE ug.user_id = u.user_id(+) + AND aa.group_id = ug.group_id(+) + AND u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) = 0"; + break; + default: + $sql = "SELECT u.user_id + FROM ( ( " . USERS_TABLE . " u + LEFT JOIN " . USER_GROUP_TABLE . " ug ON ug.user_id = u.user_id ) + LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = ug.group_id ) + WHERE u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) = 0"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $unset_mod = ""; + while( $row = $db->sql_fetchrow($result) ) + { + $unset_mod .= ( ( $unset_mod != '' ) ? ', ' : '' ) . $row['user_id']; + } + $db->sql_freeresult($result); + + if ( $set_mod != '' ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id IN ($set_mod)"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql); + } + } + + if ( $unset_mod != '' ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN ($unset_mod)"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql); + } + } + + $sql = 'SELECT user_id FROM ' . USER_GROUP_TABLE . " + WHERE group_id = $group_id"; + $result = $db->sql_query($sql); + + $group_user = array(); + while ($row = $db->sql_fetchrow($result)) + { + $group_user[$row['user_id']] = $row['user_id']; + } + $db->sql_freeresult($result); + + $sql = "SELECT ug.user_id, COUNT(auth_mod) AS is_auth_mod + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id IN (" . implode(', ', $group_user) . ") + AND aa.group_id = ug.group_id + AND aa.auth_mod = 1 + GROUP BY ug.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator status', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + if ($row['is_auth_mod']) + { + unset($group_user[$row['user_id']]); + } + } + $db->sql_freeresult($result); + + if (sizeof($group_user)) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN (" . implode(', ', $group_user) . ") AND user_level = " . MOD; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + message_die(GENERAL_MESSAGE, $message); + } +} +else if ( ( $mode == 'user' && ( isset($HTTP_POST_VARS['username']) || $user_id ) ) || ( $mode == 'group' && $group_id ) ) +{ + if ( isset($HTTP_POST_VARS['username']) ) + { + $this_userdata = get_userdata($HTTP_POST_VARS['username'], true); + if ( !is_array($this_userdata) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_user']); + } + $user_id = $this_userdata['user_id']; + } + + // + // Front end + // + $sql = "SELECT f.* + FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c + WHERE f.cat_id = c.cat_id + ORDER BY c.cat_order, f.forum_order ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql); + } + + $forum_access = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_access[] = $row; + } + $db->sql_freeresult($result); + + if( empty($adv) ) + { + for($i = 0; $i < count($forum_access); $i++) + { + $forum_id = $forum_access[$i]['forum_id']; + + $forum_auth_level[$forum_id] = AUTH_ALL; + + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $forum_access[$i][$forum_auth_fields[$j]] . ' :: '; + if ( $forum_access[$i][$forum_auth_fields[$j]] == AUTH_ACL ) + { + $forum_auth_level[$forum_id] = AUTH_ACL; + $forum_auth_level_fields[$forum_id][] = $forum_auth_fields[$j]; + } + } + } + } + + $sql = "SELECT u.user_id, u.username, u.user_level, g.group_id, g.group_name, g.group_single_user, ug.user_pending FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE "; + $sql .= ( $mode == 'user' ) ? "u.user_id = $user_id AND ug.user_id = u.user_id AND g.group_id = ug.group_id" : "g.group_id = $group_id AND ug.group_id = g.group_id AND u.user_id = ug.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group information", "", __LINE__, __FILE__, $sql); + } + $ug_info = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $ug_info[] = $row; + } + $db->sql_freeresult($result); + + $sql = ( $mode == 'user' ) ? "SELECT aa.*, g.group_single_user FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND g.group_id = ug.group_id AND aa.group_id = ug.group_id AND g.group_single_user = 1" : "SELECT * FROM " . AUTH_ACCESS_TABLE . " WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $auth_access = array(); + $auth_access_count = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $auth_access[$row['forum_id']][] = $row; + $auth_access_count[$row['forum_id']]++; + } + $db->sql_freeresult($result); + + $is_admin = ( $mode == 'user' ) ? ( ( $ug_info[0]['user_level'] == ADMIN && $ug_info[0]['user_id'] != ANONYMOUS ) ? 1 : 0 ) : 0; + + for($i = 0; $i < count($forum_access); $i++) + { + $forum_id = $forum_access[$i]['forum_id']; + + unset($prev_acl_setting); + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $key = $forum_auth_fields[$j]; + $value = $forum_access[$i][$key]; + + switch( $value ) + { + case AUTH_ALL: + case AUTH_REG: + $auth_ug[$forum_id][$key] = 1; + break; + + case AUTH_ACL: + $auth_ug[$forum_id][$key] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_ACL, $key, $auth_access[$forum_id], $is_admin) : 0; + $auth_field_acl[$forum_id][$key] = $auth_ug[$forum_id][$key]; + + if ( isset($prev_acl_setting) ) + { + if ( $prev_acl_setting != $auth_ug[$forum_id][$key] && empty($adv) ) + { + $adv = 1; + } + } + + $prev_acl_setting = $auth_ug[$forum_id][$key]; + + break; + + case AUTH_MOD: + $auth_ug[$forum_id][$key] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_MOD, $key, $auth_access[$forum_id], $is_admin) : 0; + break; + + case AUTH_ADMIN: + $auth_ug[$forum_id][$key] = $is_admin; + break; + + default: + $auth_ug[$forum_id][$key] = 0; + break; + } + } + + // + // Is user a moderator? + // + $auth_ug[$forum_id]['auth_mod'] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_MOD, 'auth_mod', $auth_access[$forum_id], 0) : 0; + } + + $i = 0; + @reset($auth_ug); + while( list($forum_id, $user_ary) = @each($auth_ug) ) + { + if ( empty($adv) ) + { + if ( $forum_auth_level[$forum_id] == AUTH_ACL ) + { + $allowed = 1; + + for($j = 0; $j < count($forum_auth_level_fields[$forum_id]); $j++) + { + if ( !$auth_ug[$forum_id][$forum_auth_level_fields[$forum_id][$j]] ) + { + $allowed = 0; + } + } + + $optionlist_acl = ''; + } + else + { + $optionlist_acl = ' '; + } + } + else + { + for($j = 0; $j < count($forum_access); $j++) + { + if ( $forum_access[$j]['forum_id'] == $forum_id ) + { + for($k = 0; $k < count($forum_auth_fields); $k++) + { + $field_name = $forum_auth_fields[$k]; + + if( $forum_access[$j][$field_name] == AUTH_ACL ) + { + $optionlist_acl_adv[$forum_id][$k] = ''; + + } + } + } + } + } + + $optionlist_mod = ''; + + $row_class = ( !( $i % 2 ) ) ? 'row2' : 'row1'; + $row_color = ( !( $i % 2 ) ) ? $theme['td_color1'] : $theme['td_color2']; + + $template->assign_block_vars('forums', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_NAME' => $forum_access[$i]['forum_name'], + + 'U_FORUM_AUTH' => append_sid("admin_forumauth.$phpEx?f=" . $forum_access[$i]['forum_id']), + + 'S_MOD_SELECT' => $optionlist_mod) + ); + + if( !$adv ) + { + $template->assign_block_vars('forums.aclvalues', array( + 'S_ACL_SELECT' => $optionlist_acl) + ); + } + else + { + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $template->assign_block_vars('forums.aclvalues', array( + 'S_ACL_SELECT' => $optionlist_acl_adv[$forum_id][$j]) + ); + } + } + + $i++; + } +// @reset($auth_user); + + if ( $mode == 'user' ) + { + $t_username = $ug_info[0]['username']; + $s_user_type = ( $is_admin ) ? '' : ''; + } + else + { + $t_groupname = $ug_info[0]['group_name']; + } + + $name = array(); + $id = array(); + for($i = 0; $i < count($ug_info); $i++) + { + if( ( $mode == 'user' && !$ug_info[$i]['group_single_user'] ) || $mode == 'group' ) + { + $name[] = ( $mode == 'user' ) ? $ug_info[$i]['group_name'] : $ug_info[$i]['username']; + $id[] = ( $mode == 'user' ) ? intval($ug_info[$i]['group_id']) : intval($ug_info[$i]['user_id']); + } + } + + $t_usergroup_list = $t_pending_list = ''; + if( count($name) ) + { + for($i = 0; $i < count($ug_info); $i++) + { + $ug = ( $mode == 'user' ) ? 'group&' . POST_GROUPS_URL : 'user&' . POST_USERS_URL; + + if (!$ug_info[$i]['user_pending']) + { + $t_usergroup_list .= ( ( $t_usergroup_list != '' ) ? ', ' : '' ) . '' . $name[$i] . ''; + } + else + { + $t_pending_list .= ( ( $t_pending_list != '' ) ? ', ' : '' ) . '' . $name[$i] . ''; + } + } + } + + $t_usergroup_list = ($t_usergroup_list == '') ? $lang['None'] : $t_usergroup_list; + $t_pending_list = ($t_pending_list == '') ? $lang['None'] : $t_pending_list; + + $s_column_span = 2; // Two columns always present + if( !$adv ) + { + $template->assign_block_vars('acltype', array( + 'L_UG_ACL_TYPE' => $lang['Simple_Permission']) + ); + $s_column_span++; + } + else + { + for($i = 0; $i < count($forum_auth_fields); $i++) + { + $cell_title = $field_names[$forum_auth_fields[$i]]; + + $template->assign_block_vars('acltype', array( + 'L_UG_ACL_TYPE' => $cell_title) + ); + $s_column_span++; + } + } + + // + // Dump in the page header ... + // + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => 'admin/auth_ug_body.tpl') + ); + + $adv_switch = ( empty($adv) ) ? 1 : 0; + $u_ug_switch = ( $mode == 'user' ) ? POST_USERS_URL . "=" . $user_id : POST_GROUPS_URL . "=" . $group_id; + $switch_mode = append_sid("admin_ug_auth.$phpEx?mode=$mode&" . $u_ug_switch . "&adv=$adv_switch"); + $switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode']; + $u_switch_mode = '' . $switch_mode_text . ''; + + $s_hidden_fields = ''; + $s_hidden_fields .= ( $mode == 'user' ) ? '' : ''; + + if ( $mode == 'user' ) + { + $template->assign_block_vars('switch_user_auth', array()); + + $template->assign_vars(array( + 'USERNAME' => $t_username, + 'USER_LEVEL' => $lang['User_Level'] . " : " . $s_user_type, + 'USER_GROUP_MEMBERSHIPS' => $lang['Group_memberships'] . ' : ' . $t_usergroup_list) + ); + } + else + { + $template->assign_block_vars("switch_group_auth", array()); + + $template->assign_vars(array( + 'USERNAME' => $t_groupname, + 'GROUP_MEMBERSHIP' => $lang['Usergroup_members'] . ' : ' . $t_usergroup_list . '
' . $lang['Pending_members'] . ' : ' . $t_pending_list) + ); + } + + $template->assign_vars(array( + 'L_USER_OR_GROUPNAME' => ( $mode == 'user' ) ? $lang['Username'] : $lang['Group_name'], + + 'L_AUTH_TITLE' => ( $mode == 'user' ) ? $lang['Auth_Control_User'] : $lang['Auth_Control_Group'], + 'L_AUTH_EXPLAIN' => ( $mode == 'user' ) ? $lang['User_auth_explain'] : $lang['Group_auth_explain'], + 'L_MODERATOR_STATUS' => $lang['Moderator_status'], + 'L_PERMISSIONS' => $lang['Permissions'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_FORUM' => $lang['Forum'], + + 'U_USER_OR_GROUP' => append_sid("admin_ug_auth.$phpEx"), + 'U_SWITCH_MODE' => $u_switch_mode, + + 'S_COLUMN_SPAN' => $s_column_span, + 'S_AUTH_ACTION' => append_sid("admin_ug_auth.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); +} +else +{ + // + // Select a user/group + // + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + 'body' => ( $mode == 'user' ) ? 'admin/user_select_body.tpl' : 'admin/auth_select_body.tpl') + ); + + if ( $mode == 'user' ) + { + $template->assign_vars(array( + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'U_SEARCH_USER' => append_sid("../search.$phpEx?mode=searchuser")) + ); + } + else + { + $sql = "SELECT group_id, group_name + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't get group list", "", __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $select_list = ''; + } + + $template->assign_vars(array( + 'S_AUTH_SELECT' => $select_list) + ); + } + + $s_hidden_fields = ''; + + $l_type = ( $mode == 'user' ) ? 'USER' : 'AUTH'; + + $template->assign_vars(array( + 'L_' . $l_type . '_TITLE' => ( $mode == 'user' ) ? $lang['Auth_Control_User'] : $lang['Auth_Control_Group'], + 'L_' . $l_type . '_EXPLAIN' => ( $mode == 'user' ) ? $lang['User_auth_explain'] : $lang['Group_auth_explain'], + 'L_' . $l_type . '_SELECT' => ( $mode == 'user' ) ? $lang['Select_a_User'] : $lang['Select_a_Group'], + 'L_LOOK_UP' => ( $mode == 'user' ) ? $lang['Look_up_User'] : $lang['Look_up_Group'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_' . $l_type . '_ACTION' => append_sid("admin_ug_auth.$phpEx")) + ); + +} + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_user_ban.php b/phpBB2/admin/admin_user_ban.php new file mode 100644 index 0000000..73743bf --- /dev/null +++ b/phpBB2/admin/admin_user_ban.php @@ -0,0 +1,452 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain banlist information", "", __LINE__, __FILE__, $sql); + } + + $current_banlist = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $kill_session_sql = ''; + for($i = 0; $i < count($user_list); $i++) + { + $in_banlist = false; + for($j = 0; $j < count($current_banlist); $j++) + { + if ( $user_list[$i] == $current_banlist[$j]['ban_userid'] ) + { + $in_banlist = true; + } + } + + if ( !$in_banlist ) + { + $kill_session_sql .= ( ( $kill_session_sql != '' ) ? ' OR ' : '' ) . "session_user_id = " . $user_list[$i]; + + $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_userid) + VALUES (" . $user_list[$i] . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert ban_userid info into database", "", __LINE__, __FILE__, $sql); + } + } + } + + for($i = 0; $i < count($ip_list); $i++) + { + $in_banlist = false; + for($j = 0; $j < count($current_banlist); $j++) + { + if ( $ip_list[$i] == $current_banlist[$j]['ban_ip'] ) + { + $in_banlist = true; + } + } + + if ( !$in_banlist ) + { + if ( preg_match('/(ff\.)|(\.ff)/is', chunk_split($ip_list[$i], 2, '.')) ) + { + $kill_ip_sql = "session_ip LIKE '" . str_replace('.', '', preg_replace('/(ff\.)|(\.ff)/is', '%', chunk_split($ip_list[$i], 2, "."))) . "'"; + } + else + { + $kill_ip_sql = "session_ip = '" . $ip_list[$i] . "'"; + } + + $kill_session_sql .= ( ( $kill_session_sql != '' ) ? ' OR ' : '' ) . $kill_ip_sql; + + $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_ip) + VALUES ('" . $ip_list[$i] . "')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert ban_ip info into database", "", __LINE__, __FILE__, $sql); + } + } + } + + // + // Now we'll delete all entries from the session table with any of the banned + // user or IP info just entered into the ban table ... this will force a session + // initialisation resulting in an instant ban + // + if ( $kill_session_sql != '' ) + { + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE $kill_session_sql"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete banned sessions from database", "", __LINE__, __FILE__, $sql); + } + } + + for($i = 0; $i < count($email_list); $i++) + { + $in_banlist = false; + for($j = 0; $j < count($current_banlist); $j++) + { + if ( $email_list[$i] == $current_banlist[$j]['ban_email'] ) + { + $in_banlist = true; + } + } + + if ( !$in_banlist ) + { + $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_email) + VALUES ('" . str_replace("\'", "''", $email_list[$i]) . "')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert ban_email info into database", "", __LINE__, __FILE__, $sql); + } + } + } + + $where_sql = ''; + + if ( isset($HTTP_POST_VARS['unban_user']) ) + { + $user_list = $HTTP_POST_VARS['unban_user']; + + for($i = 0; $i < count($user_list); $i++) + { + if ( $user_list[$i] != -1 ) + { + $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . intval($user_list[$i]); + } + } + } + + if ( isset($HTTP_POST_VARS['unban_ip']) ) + { + $ip_list = $HTTP_POST_VARS['unban_ip']; + + for($i = 0; $i < count($ip_list); $i++) + { + if ( $ip_list[$i] != -1 ) + { + $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . str_replace("\'", "''", $ip_list[$i]); + } + } + } + + if ( isset($HTTP_POST_VARS['unban_email']) ) + { + $email_list = $HTTP_POST_VARS['unban_email']; + + for($i = 0; $i < count($email_list); $i++) + { + if ( $email_list[$i] != -1 ) + { + $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . str_replace("\'", "''", $email_list[$i]); + } + } + } + + if ( $where_sql != '' ) + { + $sql = "DELETE FROM " . BANLIST_TABLE . " + WHERE ban_id IN ($where_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete ban info from database", "", __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Ban_update_sucessful'] . '

' . sprintf($lang['Click_return_banadmin'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + +} +else +{ + $template->set_filenames(array( + 'body' => 'admin/user_ban_body.tpl') + ); + + $template->assign_vars(array( + 'L_BAN_TITLE' => $lang['Ban_control'], + 'L_BAN_EXPLAIN' => $lang['Ban_explain'], + 'L_BAN_EXPLAIN_WARN' => $lang['Ban_explain_warn'], + 'L_IP_OR_HOSTNAME' => $lang['IP_hostname'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + + 'S_BANLIST_ACTION' => append_sid("admin_user_ban.$phpEx")) + ); + + $template->assign_vars(array( + 'L_BAN_USER' => $lang['Ban_username'], + 'L_BAN_USER_EXPLAIN' => $lang['Ban_username_explain'], + 'L_BAN_IP' => $lang['Ban_IP'], + 'L_BAN_IP_EXPLAIN' => $lang['Ban_IP_explain'], + 'L_BAN_EMAIL' => $lang['Ban_email'], + 'L_BAN_EMAIL_EXPLAIN' => $lang['Ban_email_explain']) + ); + + $userban_count = 0; + $ipban_count = 0; + $emailban_count = 0; + + $sql = "SELECT b.ban_id, u.user_id, u.username + FROM " . BANLIST_TABLE . " b, " . USERS_TABLE . " u + WHERE u.user_id = b.ban_userid + AND b.ban_userid <> 0 + AND u.user_id <> " . ANONYMOUS . " + ORDER BY u.user_id ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select current user_id ban list', '', __LINE__, __FILE__, $sql); + } + + $user_list = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $select_userlist = ''; + for($i = 0; $i < count($user_list); $i++) + { + $select_userlist .= ''; + $userban_count++; + } + + if( $select_userlist == '' ) + { + $select_userlist = ''; + } + + $select_userlist = ''; + + $sql = "SELECT ban_id, ban_ip, ban_email + FROM " . BANLIST_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select current ip ban list', '', __LINE__, __FILE__, $sql); + } + + $banlist = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $select_iplist = ''; + $select_emaillist = ''; + + for($i = 0; $i < count($banlist); $i++) + { + $ban_id = $banlist[$i]['ban_id']; + + if ( !empty($banlist[$i]['ban_ip']) ) + { + $ban_ip = str_replace('255', '*', decode_ip($banlist[$i]['ban_ip'])); + $select_iplist .= ''; + $ipban_count++; + } + else if ( !empty($banlist[$i]['ban_email']) ) + { + $ban_email = $banlist[$i]['ban_email']; + $select_emaillist .= ''; + $emailban_count++; + } + } + + if ( $select_iplist == '' ) + { + $select_iplist = ''; + } + + if ( $select_emaillist == '' ) + { + $select_emaillist = ''; + } + + $select_iplist = ''; + $select_emaillist = ''; + + $template->assign_vars(array( + 'L_UNBAN_USER' => $lang['Unban_username'], + 'L_UNBAN_USER_EXPLAIN' => $lang['Unban_username_explain'], + 'L_UNBAN_IP' => $lang['Unban_IP'], + 'L_UNBAN_IP_EXPLAIN' => $lang['Unban_IP_explain'], + 'L_UNBAN_EMAIL' => $lang['Unban_email'], + 'L_UNBAN_EMAIL_EXPLAIN' => $lang['Unban_email_explain'], + 'L_USERNAME' => $lang['Username'], + 'L_LOOK_UP' => $lang['Look_up_User'], + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'U_SEARCH_USER' => append_sid("./../search.$phpEx?mode=searchuser"), + 'S_UNBAN_USERLIST_SELECT' => $select_userlist, + 'S_UNBAN_IPLIST_SELECT' => $select_iplist, + 'S_UNBAN_EMAILLIST_SELECT' => $select_emaillist, + 'S_BAN_ACTION' => append_sid("admin_user_ban.$phpEx")) + ); +} + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_userlist.php b/phpBB2/admin/admin_userlist.php new file mode 100644 index 0000000..11ced3f --- /dev/null +++ b/phpBB2/admin/admin_userlist.php @@ -0,0 +1,975 @@ +'; + + unset($user_id); + $i++; + } + + $template->set_filenames(array( + 'body' => 'confirm_body.tpl') + ); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Delete'], + 'MESSAGE_TEXT' => $lang['Confirm_user_deleted'], + + 'U_INDEX' => '', + 'L_INDEX' => '', + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid('admin_userlist.'.$phpEx.'?mode=delete'), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + } + else + { + // delete users + $i = 0; + while( $i < count($user_ids) ) + { + $user_id = intval($user_ids[$i]); + + $sql = "SELECT u.username, g.group_id + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE ug.user_id = $user_id + AND g.group_id = ug.group_id + AND g.group_single_user = 1"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + $sql = "UPDATE " . POSTS_TABLE . " + SET poster_id = " . DELETED . ", post_username = '" . $row['username'] . "' + WHERE poster_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_poster = " . DELETED . " + WHERE topic_poster = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . VOTE_USERS_TABLE . " + SET vote_user_id = " . DELETED . " + WHERE vote_user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "SELECT group_id + FROM " . GROUPS_TABLE . " + WHERE group_moderator = $user_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql); + } + + while ( $row_group = $db->sql_fetchrow($result) ) + { + $group_moderator[] = $row_group['group_id']; + } + + if ( count($group_moderator) ) + { + $update_moderator_id = implode(', ', $group_moderator); + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_moderator = " . $userdata['user_id'] . " + WHERE group_moderator IN ($update_moderator_id)"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . GROUPS_TABLE . " + WHERE group_id = " . $row['group_id']; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $row['group_id']; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . BANLIST_TABLE . " + WHERE ban_userid = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql); + } + + $sql = "SELECT privmsgs_id + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_from_userid = $user_id + OR privmsgs_to_userid = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql); + } + + // This little bit of code directly from the private messaging section. + while ( $row_privmsgs = $db->sql_fetchrow($result) ) + { + $mark_list[] = $row_privmsgs['privmsgs_id']; + } + + if ( count($mark_list) ) + { + $delete_sql_id = implode(', ', $mark_list); + + $delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id IN ($delete_sql_id)"; + $delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id)"; + + if ( !$db->sql_query($delete_sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql); + } + + if ( !$db->sql_query($delete_text_sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql); + } + } + + unset($user_id); + $i++; + } + + $message = $lang['User_deleted_successfully'] . "

" . sprintf($lang['Click_return_userlist'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + break; + + case 'ban': + + // + // see if cancel has been hit and redirect if it has + // shouldn't get to this point if it has been hit but + // do this just in case + // + if ( $cancel ) + { + redirect($phpbb_root_path . 'admin/admin_userlist.'.$phpEx); + } + + // + // check confirm and either ban or show confirm message + // + if ( !$confirm ) + { + $i = 0; + $hidden_fields = ''; + while( $i < count($user_ids) ) + { + $user_id = intval($user_ids[$i]); + $hidden_fields .= ''; + + unset($user_id); + $i++; + } + + $template->set_filenames(array( + 'body' => 'confirm_body.tpl') + ); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Ban'], + 'MESSAGE_TEXT' => $lang['Confirm_user_ban'], + + 'U_INDEX' => '', + 'L_INDEX' => '', + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid('admin_userlist.'.$phpEx.'?mode=ban'), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + } + else + { + // ban users + $i = 0; + while( $i < count($user_ids) ) + { + $user_id = intval($user_ids[$i]); + + $sql = "INSERT INTO " . BANLIST_TABLE . " ( ban_userid ) + VALUES ( '$user_id' )"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain ban user', '', __LINE__, __FILE__, $sql); + } + + unset($user_id); + $i++; + } + + $message = $lang['User_banned_successfully'] . "

" . sprintf($lang['Click_return_userlist'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + break; + + case 'activate': + + // + // activate or deactive the seleted users + // + $i = 0; + while( $i < count($user_ids) ) + { + $user_id = intval($user_ids[$i]); + $sql = "SELECT user_active FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + $new_status = ( $row['user_active'] ) ? 0 : 1; + + $sql = "UPDATE " . USERS_TABLE . " + SET user_active = '$new_status' + WHERE user_id = $user_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user status', '', __LINE__, __FILE__, $sql); + } + + unset($user_id); + $i++; + } + + $message = $lang['User_status_updated'] . "

" . sprintf($lang['Click_return_userlist'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + break; + + case 'group': + + // + // add users to a group + // + if ( !$confirm ) + { + // show form to select which group to add users to + $i = 0; + $hidden_fields = ''; + while( $i < count($user_ids) ) + { + $user_id = intval($user_ids[$i]); + $hidden_fields .= ''; + + unset($user_id); + $i++; + } + + $template->set_filenames(array( + 'body' => 'admin/userlist_group.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Add_group'], + 'MESSAGE_TEXT' => $lang['Add_group_explain'], + + 'L_GROUP' => $lang['Group'], + + 'S_GROUP_VARIABLE' => POST_GROUPS_URL, + 'S_ACTION' => append_sid($phpbb_root_path . 'admin/admin_userlist.'.$phpEx.'?mode=group'), + 'L_GO' => $lang['Go'], + 'L_CANCEL' => $lang['Cancel'], + 'L_SELECT' => $lang['Select_one'], + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + + $sql = "SELECT group_id, group_name FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + ORDER BY group_name"; + + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query groups', '', __LINE__, __FILE__, $sql); + } + + // loop through groups + while ( $row = $db->sql_fetchrow($result) ) + { + $template->assign_block_vars('grouprow',array( + 'GROUP_NAME' => $row['group_name'], + 'GROUP_ID' => $row['group_id']) + ); + } + } + else + { + // add the users to the selected group + $group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]); + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $i = 0; + while( $i < count($user_ids) ) + { + $user_id = intval($user_ids[$i]); + + // + // For security, get the ID of the group moderator. + // + switch(SQL_LAYER) + { + /*case 'postgresql': + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa + WHERE g.group_id = $group_id + AND aa.group_id = g.group_id + UNION ( + SELECT g.group_moderator, g.group_type, NULL + FROM " . GROUPS_TABLE . " g + WHERE g.group_id = $group_id + AND NOT EXISTS ( + SELECT aa.group_id + FROM " . AUTH_ACCESS_TABLE . " aa + WHERE aa.group_id = g.group_id + ) + )"; + break;*/ + + case 'oracle': + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa + WHERE g.group_id = $group_id + AND aa.group_id = g.group_id(+)"; + break; + + default: + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM ( " . GROUPS_TABLE . " g + LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id ) + WHERE g.group_id = $group_id"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get moderator information', '', __LINE__, __FILE__, $sql); + } + + $group_info = $db->sql_fetchrow($result); + + $sql = "SELECT user_id, user_email, user_lang, user_level + FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $sql = "SELECT ug.user_id, u.user_level + FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE u.user_id = " . $row['user_id'] . " + AND ug.user_id = u.user_id + AND ug.group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE__, __FILE__, $sql); + } + + if ( !($db->sql_fetchrow($result)) ) + { + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) + VALUES (" . $row['user_id'] . ", $group_id, 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not add user to group', '', __LINE__, __FILE__, $sql); + } + + if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id = " . $row['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + // + // Get the group name + // Email the user and tell them they're in the group + // + $group_sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($group_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql); + } + + $group_name_row = $db->sql_fetchrow($result); + + $group_name = $group_name_row['group_name']; + + $script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path'])); + $script_name = ( $script_name != '' ) ? $script_name . '/groupcp.'.$phpEx : 'groupcp.'.$phpEx; + $server_name = trim($board_config['server_name']); + $server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://'; + $server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + + $server_url = $server_protocol . $server_name . $server_port . $script_name; + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('group_added', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['Group_added']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_NAME' => $group_name, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") + ); + $emailer->send(); + $emailer->reset(); + + } + + unset($user_id); + $i++; + } + + $message = $lang['User_add_group_successfully'] . "

" . sprintf($lang['Click_return_userlist'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + break; + + default: + + // + // get and display all of the users + // + $template->set_filenames(array( + 'body' => 'admin/userlist_body.tpl') + ); + + // + // gets for alphanum + // + $alpha_range = array(); + $alpha_letters = array(); + $alpha_letters = range('A','Z'); + $alpha_start = array($lang['All'], '#'); + $alpha_range = array_merge($alpha_start, $alpha_letters); + + $i = 0; + while( $i < count($alpha_range) ) + { + + if ( $alpha_range[$i] != $lang['All'] ) + { + if ( $alpha_range[$i] != '#' ) + { + $temp = strtolower($alpha_range[$i]); + } + else + { + $temp = 'num'; + } + $alphanum_search_url = append_sid($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show&alphanum=$temp"); + } + else + { + $alphanum_search_url = append_sid($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show"); + } + + if ( ( $alphanum == $temp ) || ( $alpha_range[$i] == $lang['All'] && empty($alphanum) ) ) + { + $alpha_range[$i] = '' . $alpha_range[$i] . ''; + } + + $template->assign_block_vars('alphanumsearch', array( + 'SEARCH_SIZE' => floor(100/count($alpha_range)) . '%', + 'SEARCH_TERM' => $alpha_range[$i], + 'SEARCH_LINK' => $alphanum_search_url) + ); + + $i++; + } + + $hidden_fields = ''; + $hidden_fields .= ''; + + // + // set up template varibles + // + $template->assign_vars(array( + 'L_TITLE' => $lang['Userlist'], + 'L_DESCRIPTION' => $lang['Userlist_description'], + + 'L_OPEN_CLOSE' => $lang['Open_close'], + 'L_ACTIVE' => $lang['Active'], + 'L_USERNAME' => $lang['Username'], + 'L_GROUP' => $lang['Group'], + 'L_RANK' => $lang['Rank'], + 'L_POSTS' => $lang['Posts'], + 'L_FIND_ALL_POSTS' => $lang['Find_all_posts'], + 'L_JOINED' => $lang['Joined'], + 'L_ACTIVTY' => $lang['Last_activity'], + 'L_MANAGE' => $lang['User_manage'], + 'L_PERMISSIONS' => $lang['Permissions'], + 'L_EMAIL' => $lang['Email'], + 'L_PM' => $lang['Private_Message'], + 'L_WEBSITE' => $lang['Website'], + + 'S_USER_VARIABLE' => POST_USERS_URL, + 'S_ACTION' => append_sid($phpbb_root_path . 'admin/admin_userlist.'.$phpEx), + 'L_GO' => $lang['Go'], + 'L_SELECT' => $lang['Select_one'], + 'L_DELETE' => $lang['Delete'], + 'L_BAN' => $lang['Ban'], + 'L_ACTIVATE_DEACTIVATE' => $lang['Activate_deactivate'], + 'L_ADD_GROUP' => $lang['Add_group'], + + 'S_SHOW' => $show, + 'L_SORT_BY' => $lang['Sort_by'], + 'L_USER_ID' => $lang['User_id'], + 'L_USER_LEVEL' => $lang['User_level'], + 'L_ASCENDING' => $lang['Ascending'], + 'L_DESCENDING' => $lang['Descending'], + 'L_SHOW' => $lang['Show'], + 'S_SORT' => $lang['Sort'], + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + + $order_by = "ORDER BY $sort $order "; + + $sql = "SELECT * + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + $alpha_where + $order_by + LIMIT $start, $show"; + + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql); + } + + // loop through users + $i = 1; + while ( $row = $db->sql_fetchrow($result) ) + { + // + // users avatar + // + $avatar_img = ''; + if ( $row['user_avatar_type'] && $row['user_allowavatar'] ) + { + switch( $row['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $avatar_img = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $avatar_img = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $avatar_img = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + // + // users rank + // + $rank_sql = "SELECT * + FROM " . RANKS_TABLE . " + ORDER BY rank_special, rank_min"; + if ( !($rank_result = $db->sql_query($rank_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain ranks information', '', __LINE__, __FILE__, $sql); + } + + while ( $rank_row = $db->sql_fetchrow($rank_result) ) + { + $ranksrow[] = $rank_row; + } + $db->sql_freeresult($rank_result); + + $poster_rank = ''; + $rank_image = ''; + if ( $row['user_rank'] ) + { + for($ji = 0; $ji < count($ranksrow); $ji++) + { + if ( $row['user_rank'] == $ranksrow[$ji]['rank_id'] && $ranksrow[$ji]['rank_special'] ) + { + $poster_rank = $ranksrow[$ji]['rank_title']; + $rank_image = ( $ranksrow[$ji]['rank_image'] ) ? '' . $poster_rank . '
' : ''; + } + } + } + else + { + for($ji = 0; $ji < count($ranksrow); $ji++) + { + if ( $row['user_posts'] >= $ranksrow[$ji]['rank_min'] && !$ranksrow[$ji]['rank_special'] ) + { + $poster_rank = $ranksrow[$ji]['rank_title']; + $rank_image = ( $ranksrow[$ji]['rank_image'] ) ? '' . $poster_rank . '
' : ''; + } + } + } + + // + // user's color depending on their level + // + $style_color = ''; + if ( $row['user_level'] == ADMIN ) + { + $row['username'] = '' . $row['username'] . ''; + $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; + } + else if ( $row['user_level'] == MOD ) + { + $row['username'] = '' . $row['username'] . ''; + $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; + } + + // + // setup user row template varibles + // + $template->assign_block_vars('user_row', array( + 'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ), + 'ROW_CLASS' => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'], + + 'USER_ID' => $row['user_id'], + 'ACTIVE' => ( $row['user_active'] == TRUE ) ? $lang['Yes'] : $lang['No'], + 'STYLE_COLOR' => $style_color, + 'USERNAME' => $row['username'], + 'U_PROFILE' => append_sid($phpbb_root_path . 'profile.'.$phpEx.'?mode=viewprofile&' . POST_USERS_URL . '=' . $row['user_id']), + + 'RANK' => $poster_rank, + 'I_RANK' => $rank_image, + 'I_AVATAR' => $avatar_img, + + 'JOINED' => create_date('d M Y', $row['user_regdate'], $board_config['board_timezone']), + 'LAST_ACTIVITY' => ( !empty($row['user_session_time']) ) ? create_date('d M Y', $row['user_session_time'], $board_config['board_timezone']) : $lang['Never'], + + 'POSTS' => ( $row['user_posts'] ) ? $row['user_posts'] : 0, + 'U_SEARCH' => append_sid($phpbb_root_path . 'search.'.$phpEx.'?search_author=' . urlencode(strip_tags($row['username'])) . '&showresults=posts'), + + 'U_WEBSITE' => ( $row['user_website'] ) ? $row['user_website'] : '', + + 'EMAIL' => $row['user_email'], + 'U_PM' => append_sid($phpbb_root_path . 'privmsg.' . $phpEx . '?mode=post&' . POST_USERS_URL . '='. $row['user_id']), + 'U_MANAGE' => append_sid($phpbb_root_path . 'admin/admin_users.'.$phpEx.'?mode=edit&' . POST_USERS_URL . '=' . $row['user_id']), + 'U_PERMISSIONS' => append_sid($phpbb_root_path . 'admin/admin_ug_auth.'.$phpEx.'?mode=user&' . POST_USERS_URL . '=' . $row['user_id'])) + ); + + // + // get the users group information + // + $group_sql = "SELECT * FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE ug.user_id = " . $row['user_id'] . " + AND g.group_single_user <> 1 + AND g.group_id = ug.group_id"; + + if( !($group_result = $db->sql_query($group_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query groups', '', __LINE__, __FILE__, $group_sql); + } + $g = 0; + while ( $group_row = $db->sql_fetchrow($group_result) ) + { + // + // assign the group varibles + // + if ( $group_row['group_moderator'] == $row['user_id'] ) + { + $group_status = $lang['Moderator']; + } + else if ( $group_row['user_pending'] == true ) + { + $group_status = $lang['Pending']; + } + else + { + $group_status = $lang['Member']; + } + + $template->assign_block_vars('user_row.group_row', array( + 'GROUP_NAME' => $group_row['group_name'], + 'GROUP_STATUS' => $group_status, + 'U_GROUP' => $phpbb_root_path . 'groupcp.'.$phpEx.'?'.POST_GROUPS_URL.'='.$group_row['group_id']) + ); + $g++; + } + + if ( $g == 0 ) + { + $template->assign_block_vars('user_row.no_group_row', array( + 'L_NONE' => $lang['None']) + ); + } + + $i++; + } + $db->sql_freeresult($result); + + $count_sql = "SELECT count(user_id) AS total + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " $alpha_where"; + + if ( !($count_result = $db->sql_query($count_sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql); + } + + if ( $total = $db->sql_fetchrow($count_result) ) + { + $total_members = $total['total']; + + $pagination = generate_pagination($phpbb_root_path . "admin/admin_userlist.$phpEx?sort=$sort&order=$sort_order&show=$show" . ( ( isset($alphanum) ) ? "&alphanum=$alphanum" : '' ), $total_members, $show, $start); + } + + $template->assign_vars(array( + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $show ) + 1 ), ceil( $total_members / $show ))) + ); + + break; + +} // switch() + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_users.php b/phpBB2/admin/admin_users.php new file mode 100644 index 0000000..cf567e6 --- /dev/null +++ b/phpBB2/admin/admin_users.php @@ -0,0 +1,1173 @@ +#'); +$html_entities_replace = array('<', '>'); + +// +// Set mode +// +if( isset( $HTTP_POST_VARS['mode'] ) || isset( $HTTP_GET_VARS['mode'] ) ) +{ + $mode = ( isset( $HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ''; +} + +// +// Begin program +// +if ( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) || isset($HTTP_GET_VARS[POST_USERS_URL]) || isset( $HTTP_POST_VARS[POST_USERS_URL]) ) ) +{ + // + // Ok, the profile has been modified and submitted, let's update + // + if ( ( $mode == 'save' && isset( $HTTP_POST_VARS['submit'] ) ) || isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) ) + { + $user_id = intval($HTTP_POST_VARS['id']); + + if (!($this_userdata = get_userdata($user_id))) + { + message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] ); + } + + if( $HTTP_POST_VARS['deleteuser'] && ( $userdata['user_id'] != $user_id ) ) + { + $sql = "SELECT g.group_id + FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE ug.user_id = $user_id + AND g.group_id = ug.group_id + AND g.group_single_user = 1"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + $sql = "UPDATE " . POSTS_TABLE . " + SET poster_id = " . DELETED . ", post_username = '" . str_replace("\\'", "''", addslashes($this_userdata['username'])) . "' + WHERE poster_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_poster = " . DELETED . " + WHERE topic_poster = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . VOTE_USERS_TABLE . " + SET vote_user_id = " . DELETED . " + WHERE vote_user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "SELECT group_id + FROM " . GROUPS_TABLE . " + WHERE group_moderator = $user_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql); + } + + while ( $row_group = $db->sql_fetchrow($result) ) + { + $group_moderator[] = $row_group['group_id']; + } + + if ( count($group_moderator) ) + { + $update_moderator_id = implode(', ', $group_moderator); + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_moderator = " . $userdata['user_id'] . " + WHERE group_moderator IN ($update_moderator_id)"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . GROUPS_TABLE . " + WHERE group_id = " . $row['group_id']; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $row['group_id']; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . BANLIST_TABLE . " + WHERE ban_userid = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE session_user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete sessions for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . SESSIONS_KEYS_TABLE . " + WHERE user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete auto-login keys for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "SELECT privmsgs_id + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_from_userid = $user_id + OR privmsgs_to_userid = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql); + } + + // This little bit of code directly from the private messaging section. + while ( $row_privmsgs = $db->sql_fetchrow($result) ) + { + $mark_list[] = $row_privmsgs['privmsgs_id']; + } + + if ( count($mark_list) ) + { + $delete_sql_id = implode(', ', $mark_list); + + $delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id IN ($delete_sql_id)"; + $delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id)"; + + if ( !$db->sql_query($delete_sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql); + } + + if ( !$db->sql_query($delete_text_sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql); + } + } + + $message = $lang['User_deleted'] . '

' . sprintf($lang['Click_return_useradmin'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + $username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : ''; + $email = ( !empty($HTTP_POST_VARS['email']) ) ? trim(strip_tags(htmlspecialchars( $HTTP_POST_VARS['email'] ) )) : ''; + + $password = ( !empty($HTTP_POST_VARS['password']) ) ? trim(strip_tags(htmlspecialchars( $HTTP_POST_VARS['password'] ) )) : ''; + $password_confirm = ( !empty($HTTP_POST_VARS['password_confirm']) ) ? trim(strip_tags(htmlspecialchars( $HTTP_POST_VARS['password_confirm'] ) )) : ''; + + $icq = ( !empty($HTTP_POST_VARS['icq']) ) ? trim(strip_tags( $HTTP_POST_VARS['icq'] ) ) : ''; + $aim = ( !empty($HTTP_POST_VARS['aim']) ) ? trim(strip_tags( $HTTP_POST_VARS['aim'] ) ) : ''; + $msn = ( !empty($HTTP_POST_VARS['msn']) ) ? trim(strip_tags( $HTTP_POST_VARS['msn'] ) ) : ''; + $yim = ( !empty($HTTP_POST_VARS['yim']) ) ? trim(strip_tags( $HTTP_POST_VARS['yim'] ) ) : ''; + + $website = ( !empty($HTTP_POST_VARS['website']) ) ? trim(strip_tags( $HTTP_POST_VARS['website'] ) ) : ''; + $location = ( !empty($HTTP_POST_VARS['location']) ) ? trim(strip_tags( $HTTP_POST_VARS['location'] ) ) : ''; + $occupation = ( !empty($HTTP_POST_VARS['occupation']) ) ? trim(strip_tags( $HTTP_POST_VARS['occupation'] ) ) : ''; + $interests = ( !empty($HTTP_POST_VARS['interests']) ) ? trim(strip_tags( $HTTP_POST_VARS['interests'] ) ) : ''; + $signature = ( !empty($HTTP_POST_VARS['signature']) ) ? trim(str_replace('
', "\n", $HTTP_POST_VARS['signature'] ) ) : ''; + + validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature); + + $viewemail = ( isset( $HTTP_POST_VARS['viewemail']) ) ? ( ( $HTTP_POST_VARS['viewemail'] ) ? TRUE : 0 ) : 0; + $allowviewonline = ( isset( $HTTP_POST_VARS['hideonline']) ) ? ( ( $HTTP_POST_VARS['hideonline'] ) ? 0 : TRUE ) : TRUE; + $notifyreply = ( isset( $HTTP_POST_VARS['notifyreply']) ) ? ( ( $HTTP_POST_VARS['notifyreply'] ) ? TRUE : 0 ) : 0; + $notifypm = ( isset( $HTTP_POST_VARS['notifypm']) ) ? ( ( $HTTP_POST_VARS['notifypm'] ) ? TRUE : 0 ) : TRUE; + $popuppm = ( isset( $HTTP_POST_VARS['popup_pm']) ) ? ( ( $HTTP_POST_VARS['popup_pm'] ) ? TRUE : 0 ) : TRUE; + $attachsig = ( isset( $HTTP_POST_VARS['attachsig']) ) ? ( ( $HTTP_POST_VARS['attachsig'] ) ? TRUE : 0 ) : 0; + + $allowhtml = ( isset( $HTTP_POST_VARS['allowhtml']) ) ? intval( $HTTP_POST_VARS['allowhtml'] ) : $board_config['allow_html']; + $allowbbcode = ( isset( $HTTP_POST_VARS['allowbbcode']) ) ? intval( $HTTP_POST_VARS['allowbbcode'] ) : $board_config['allow_bbcode']; + $allowsmilies = ( isset( $HTTP_POST_VARS['allowsmilies']) ) ? intval( $HTTP_POST_VARS['allowsmilies'] ) : $board_config['allow_smilies']; + + $user_style = ( isset( $HTTP_POST_VARS['style'] ) ) ? intval( $HTTP_POST_VARS['style'] ) : $board_config['default_style']; + $user_lang = ( $HTTP_POST_VARS['language'] ) ? $HTTP_POST_VARS['language'] : $board_config['default_lang']; + $user_timezone = ( isset( $HTTP_POST_VARS['timezone']) ) ? doubleval( $HTTP_POST_VARS['timezone'] ) : $board_config['board_timezone']; + $user_dateformat = ( $HTTP_POST_VARS['dateformat'] ) ? trim( $HTTP_POST_VARS['dateformat'] ) : $board_config['default_dateformat']; + + $user_avatar_local = ( isset( $HTTP_POST_VARS['avatarselect'] ) && !empty($HTTP_POST_VARS['submitavatar'] ) && $board_config['allow_avatar_local'] ) ? $HTTP_POST_VARS['avatarselect'] : ( ( isset( $HTTP_POST_VARS['avatarlocal'] ) ) ? $HTTP_POST_VARS['avatarlocal'] : '' ); + $user_avatar_category = ( isset($HTTP_POST_VARS['avatarcatname']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarcatname']) : '' ; + + $user_avatar_remoteurl = ( !empty($HTTP_POST_VARS['avatarremoteurl']) ) ? trim( $HTTP_POST_VARS['avatarremoteurl'] ) : ''; + $user_avatar_url = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim( $HTTP_POST_VARS['avatarurl'] ) : ''; + $user_avatar_loc = ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : ''; + $user_avatar_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : ''; + $user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0; + $user_avatar_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : ''; + + $user_avatar = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar'] : ''; + $user_avatar_type = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar_type'] : ''; + + $user_status = ( !empty($HTTP_POST_VARS['user_status']) ) ? intval( $HTTP_POST_VARS['user_status'] ) : 0; + $user_allowpm = ( !empty($HTTP_POST_VARS['user_allowpm']) ) ? intval( $HTTP_POST_VARS['user_allowpm'] ) : 0; + $user_rank = ( !empty($HTTP_POST_VARS['user_rank']) ) ? intval( $HTTP_POST_VARS['user_rank'] ) : 0; + $user_allowavatar = ( !empty($HTTP_POST_VARS['user_allowavatar']) ) ? intval( $HTTP_POST_VARS['user_allowavatar'] ) : 0; + + if( isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) ) + { + $username = stripslashes($username); + $email = stripslashes($email); + $password = ''; + $password_confirm = ''; + + $icq = stripslashes($icq); + $aim = htmlspecialchars(stripslashes($aim)); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); + + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); + + $user_lang = stripslashes($user_lang); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); + + if ( !isset($HTTP_POST_VARS['cancelavatar'])) + { + $user_avatar = $user_avatar_category . '/' . $user_avatar_local; + $user_avatar_type = USER_AVATAR_GALLERY; + } + } + } + + if( isset( $HTTP_POST_VARS['submit'] ) ) + { + include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx); + + $error = FALSE; + + if (stripslashes($username) != $this_userdata['username']) + { + unset($rename_user); + + if ( stripslashes(strtolower($username)) != strtolower($this_userdata['username']) ) + { + $result = validate_username($username); + if ( $result['error'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $result['error_msg']; + } + else if ( strtolower(str_replace("\\'", "''", $username)) == strtolower($userdata['username']) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Username_taken']; + } + } + + if (!$error) + { + $username_sql = "username = '" . str_replace("\\'", "''", $username) . "', "; + $rename_user = $username; // Used for renaming usergroup + } + } + + $passwd_sql = ''; + if( !empty($password) && !empty($password_confirm) ) + { + // + // Awww, the user wants to change their password, isn't that cute.. + // + if($password != $password_confirm) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Password_mismatch']; + } + else + { + $password = md5($password); + $passwd_sql = "user_password = '$password', "; + } + } + else if( $password && !$password_confirm ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Password_mismatch']; + } + else if( !$password && $password_confirm ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Password_mismatch']; + } + + if ($signature != '') + { + $sig_length_check = preg_replace('/(\[.*?)(=.*?)\]/is', '\\1]', stripslashes($signature)); + if ( $allowhtml ) + { + $sig_length_check = preg_replace('/(\<.*?)(=.*?)( .*?=.*?)?([ \/]?\>)/is', '\\1\\3\\4', $sig_length_check); + } + + // Only create a new bbcode_uid when there was no uid yet. + if ( $signature_bbcode_uid == '' ) + { + $signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : ''; + } + $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid); + + if ( strlen($sig_length_check) > $board_config['max_sig_chars'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Signature_too_long']; + } + } + + // + // Avatar stuff + // + $avatar_sql = ""; + if( isset($HTTP_POST_VARS['avatardel']) ) + { + if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "" ) + { + if( @file_exists(@phpbb_realpath('./../' . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) ) + { + @unlink('./../' . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar']); + } + } + $avatar_sql = ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE; + } + else if( ( $user_avatar_loc != "" || !empty($user_avatar_url) ) && !$error ) + { + // + // Only allow one type of upload, either a + // filename or a URL + // + if( !empty($user_avatar_loc) && !empty($user_avatar_url) ) + { + $error = TRUE; + if( isset($error_msg) ) + { + $error_msg .= "
"; + } + $error_msg .= $lang['Only_one_avatar']; + } + + if( $user_avatar_loc != "" ) + { + if( file_exists(@phpbb_realpath($user_avatar_loc)) && ereg(".jpg$|.gif$|.png$", $user_avatar_name) ) + { + if( $user_avatar_size <= $board_config['avatar_filesize'] && $user_avatar_size > 0) + { + $error_type = false; + + // + // Opera appends the image name after the type, not big, not clever! + // + preg_match("'image\/[x\-]*([a-z]+)'", $user_avatar_filetype, $user_avatar_filetype); + $user_avatar_filetype = $user_avatar_filetype[1]; + + switch( $user_avatar_filetype ) + { + case "jpeg": + case "pjpeg": + case "jpg": + $imgtype = '.jpg'; + break; + case "gif": + $imgtype = '.gif'; + break; + case "png": + $imgtype = '.png'; + break; + default: + $error = true; + $error_msg = (!empty($error_msg)) ? $error_msg . "
" . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + break; + } + + if( !$error ) + { + list($width, $height) = @getimagesize($user_avatar_loc); + + if( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) + { + $user_id = $this_userdata['user_id']; + + $avatar_filename = $user_id . $imgtype; + + if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "" ) + { + if( @file_exists(@phpbb_realpath("./../" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) ) + { + @unlink("./../" . $board_config['avatar_path'] . "/". $this_userdata['user_avatar']); + } + } + @copy($user_avatar_loc, "./../" . $board_config['avatar_path'] . "/$avatar_filename"); + + $avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $l_avatar_size : $l_avatar_size; + } + } + } + else + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $l_avatar_size : $l_avatar_size; + } + } + else + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + } + } + else if( !empty($user_avatar_url) ) + { + // + // First check what port we should connect + // to, look for a :[xxxx]/ or, if that doesn't + // exist assume port 80 (http) + // + preg_match("/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/", $user_avatar_url, $url_ary); + + if( !empty($url_ary[4]) ) + { + $port = (!empty($url_ary[3])) ? $url_ary[3] : 80; + + $fsock = @fsockopen($url_ary[2], $port, $errno, $errstr); + if( $fsock ) + { + $base_get = "/" . $url_ary[4]; + + // + // Uses HTTP 1.1, could use HTTP 1.0 ... + // + @fputs($fsock, "GET $base_get HTTP/1.1\r\n"); + @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n"); + @fputs($fsock, "Connection: close\r\n\r\n"); + + unset($avatar_data); + while( !@feof($fsock) ) + { + $avatar_data .= @fread($fsock, $board_config['avatar_filesize']); + } + @fclose($fsock); + + if( preg_match("/Content-Length\: ([0-9]+)[^\/ ][\s]+/i", $avatar_data, $file_data1) && preg_match("/Content-Type\: image\/[x\-]*([a-z]+)[\s]+/i", $avatar_data, $file_data2) ) + { + $file_size = $file_data1[1]; + $file_type = $file_data2[1]; + + switch( $file_type ) + { + case "jpeg": + case "pjpeg": + case "jpg": + $imgtype = '.jpg'; + break; + case "gif": + $imgtype = '.gif'; + break; + case "png": + $imgtype = '.png'; + break; + default: + $error = true; + $error_msg = (!empty($error_msg)) ? $error_msg . "
" . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + break; + } + + if( !$error && $file_size > 0 && $file_size < $board_config['avatar_filesize'] ) + { + $avatar_data = substr($avatar_data, strlen($avatar_data) - $file_size, $file_size); + + $tmp_filename = tempnam ("/tmp", $this_userdata['user_id'] . "-"); + $fptr = @fopen($tmp_filename, "wb"); + $bytes_written = @fwrite($fptr, $avatar_data, $file_size); + @fclose($fptr); + + if( $bytes_written == $file_size ) + { + list($width, $height) = @getimagesize($tmp_filename); + + if( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) + { + $user_id = $this_userdata['user_id']; + + $avatar_filename = $user_id . $imgtype; + + if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "") + { + if( file_exists(@phpbb_realpath("./../" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) ) + { + @unlink("./../" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar']); + } + } + @copy($tmp_filename, "./../" . $board_config['avatar_path'] . "/$avatar_filename"); + @unlink($tmp_filename); + + $avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $l_avatar_size : $l_avatar_size; + } + } + else + { + // + // Error writing file + // + @unlink($tmp_filename); + message_die(GENERAL_ERROR, "Could not write avatar file to local storage. Please contact the board administrator with this message", "", __LINE__, __FILE__); + } + } + } + else + { + // + // No data + // + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $lang['File_no_data'] : $lang['File_no_data']; + } + } + else + { + // + // No connection + // + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $lang['No_connection_URL'] : $lang['No_connection_URL']; + } + } + else + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $lang['Incomplete_URL'] : $lang['Incomplete_URL']; + } + } + else if( !empty($user_avatar_name) ) + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $l_avatar_size : $l_avatar_size; + } + } + else if( $user_avatar_remoteurl != "" && $avatar_sql == "" && !$error ) + { + if( !preg_match("#^http:\/\/#i", $user_avatar_remoteurl) ) + { + $user_avatar_remoteurl = "http://" . $user_avatar_remoteurl; + } + + if( preg_match("#^(http:\/\/[a-z0-9\-]+?\.([a-z0-9\-]+\.)*[a-z]+\/.*?\.(gif|jpg|png)$)#is", $user_avatar_remoteurl) ) + { + $avatar_sql = ", user_avatar = '" . str_replace("\'", "''", $user_avatar_remoteurl) . "', user_avatar_type = " . USER_AVATAR_REMOTE; + } + else + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
" . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; + } + } + else if( $user_avatar_local != "" && $avatar_sql == "" && !$error ) + { + $avatar_sql = ", user_avatar = '" . str_replace("\'", "''", phpbb_ltrim(basename($user_avatar_category), "'") . '/' . phpbb_ltrim(basename($user_avatar_local), "'")) . "', user_avatar_type = " . USER_AVATAR_GALLERY; + } + + // + // Update entry in DB + // + if( !$error ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) . "', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", $aim) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_sig_bbcode_uid = '$signature_bbcode_uid', user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_allow_pm = $user_allowpm, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_active = $user_status, user_rank = $user_rank" . $avatar_sql . " + WHERE user_id = $user_id"; + + if( $result = $db->sql_query($sql) ) + { + if( isset($rename_user) ) + { + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_name = '".str_replace("\'", "''", $rename_user)."' + WHERE group_name = '".str_replace("'", "''", $this_userdata['username'] )."'"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not rename users group', '', __LINE__, __FILE__, $sql); + } + } + + // Delete user session, to prevent the user navigating the forum (if logged in) when disabled + if (!$user_status) + { + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE session_user_id = " . $user_id; + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql); + } + } + + // We remove all stored login keys since the password has been updated + // and change the current one (if applicable) + if ( !empty($passwd_sql) ) + { + session_reset_keys($user_id, $user_ip); + } + + $message .= $lang['Admin_user_updated']; + } + else + { + message_die(GENERAL_ERROR, 'Admin_user_fail', '', __LINE__, __FILE__, $sql); + } + + $message .= '

' . sprintf($lang['Click_return_useradmin'], '', '') . '

' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + + $username = htmlspecialchars(stripslashes($username)); + $email = stripslashes($email); + $password = ''; + $password_confirm = ''; + + $icq = stripslashes($icq); + $aim = htmlspecialchars(str_replace('+', ' ', stripslashes($aim))); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); + + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); + + $user_lang = stripslashes($user_lang); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); + } + } + else if( !isset( $HTTP_POST_VARS['submit'] ) && $mode != 'save' && !isset( $HTTP_POST_VARS['avatargallery'] ) && !isset( $HTTP_POST_VARS['submitavatar'] ) && !isset( $HTTP_POST_VARS['cancelavatar'] ) ) + { + if( isset( $HTTP_GET_VARS[POST_USERS_URL]) || isset( $HTTP_POST_VARS[POST_USERS_URL]) ) + { + $user_id = ( isset( $HTTP_POST_VARS[POST_USERS_URL]) ) ? intval( $HTTP_POST_VARS[POST_USERS_URL]) : intval( $HTTP_GET_VARS[POST_USERS_URL]); + $this_userdata = get_userdata($user_id); + if( !$this_userdata ) + { + message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] ); + } + } + else + { + $this_userdata = get_userdata($HTTP_POST_VARS['username'], true); + if( !$this_userdata ) + { + message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] ); + } + } + + // + // Now parse and display it as a template + // + $user_id = $this_userdata['user_id']; + $username = $this_userdata['username']; + $email = $this_userdata['user_email']; + $password = ''; + $password_confirm = ''; + + $icq = $this_userdata['user_icq']; + $aim = htmlspecialchars(str_replace('+', ' ', $this_userdata['user_aim'] )); + $msn = htmlspecialchars($this_userdata['user_msnm']); + $yim = htmlspecialchars($this_userdata['user_yim']); + + $website = htmlspecialchars($this_userdata['user_website']); + $location = htmlspecialchars($this_userdata['user_from']); + $occupation = htmlspecialchars($this_userdata['user_occ']); + $interests = htmlspecialchars($this_userdata['user_interests']); + + $signature = ($this_userdata['user_sig_bbcode_uid'] != '') ? preg_replace('#:' . $this_userdata['user_sig_bbcode_uid'] . '#si', '', $this_userdata['user_sig']) : $this_userdata['user_sig']; + $signature = preg_replace($html_entities_match, $html_entities_replace, $signature); + + $viewemail = $this_userdata['user_viewemail']; + $notifypm = $this_userdata['user_notify_pm']; + $popuppm = $this_userdata['user_popup_pm']; + $notifyreply = $this_userdata['user_notify']; + $attachsig = $this_userdata['user_attachsig']; + $allowhtml = $this_userdata['user_allowhtml']; + $allowbbcode = $this_userdata['user_allowbbcode']; + $allowsmilies = $this_userdata['user_allowsmile']; + $allowviewonline = $this_userdata['user_allow_viewonline']; + + $user_avatar = $this_userdata['user_avatar']; + $user_avatar_type = $this_userdata['user_avatar_type']; + $user_style = $this_userdata['user_style']; + $user_lang = $this_userdata['user_lang']; + $user_timezone = $this_userdata['user_timezone']; + $user_dateformat = htmlspecialchars($this_userdata['user_dateformat']); + + $user_status = $this_userdata['user_active']; + $user_allowavatar = $this_userdata['user_allowavatar']; + $user_allowpm = $this_userdata['user_allow_pm']; + + $COPPA = false; + + $html_status = ($this_userdata['user_allowhtml'] ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; + $bbcode_status = ($this_userdata['user_allowbbcode'] ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; + $smilies_status = ($this_userdata['user_allowsmile'] ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; + } + + if( isset($HTTP_POST_VARS['avatargallery']) && !$error ) + { + if( !$error ) + { + $user_id = intval($HTTP_POST_VARS['id']); + + $template->set_filenames(array( + "body" => "admin/user_avatar_gallery.tpl") + ); + + $dir = @opendir("../" . $board_config['avatar_gallery_path']); + + $avatar_images = array(); + while( $file = @readdir($dir) ) + { + if( $file != "." && $file != ".." && !is_file(phpbb_realpath("./../" . $board_config['avatar_gallery_path'] . "/" . $file)) && !is_link(phpbb_realpath("./../" . $board_config['avatar_gallery_path'] . "/" . $file)) ) + { + $sub_dir = @opendir("../" . $board_config['avatar_gallery_path'] . "/" . $file); + + $avatar_row_count = 0; + $avatar_col_count = 0; + + while( $sub_file = @readdir($sub_dir) ) + { + if( preg_match("/(\.gif$|\.png$|\.jpg)$/is", $sub_file) ) + { + $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $sub_file; + + $avatar_col_count++; + if( $avatar_col_count == 5 ) + { + $avatar_row_count++; + $avatar_col_count = 0; + } + } + } + } + } + + @closedir($dir); + + if( isset($HTTP_POST_VARS['avatarcategory']) ) + { + $category = htmlspecialchars($HTTP_POST_VARS['avatarcategory']); + } + else + { + list($category, ) = each($avatar_images); + } + @reset($avatar_images); + + $s_categories = ""; + while( list($key) = each($avatar_images) ) + { + $selected = ( $key == $category ) ? "selected=\"selected\"" : ""; + if( count($avatar_images[$key]) ) + { + $s_categories .= ''; + } + } + + $s_colspan = 0; + for($i = 0; $i < count($avatar_images[$category]); $i++) + { + $template->assign_block_vars("avatar_row", array()); + + $s_colspan = max($s_colspan, count($avatar_images[$category][$i])); + + for($j = 0; $j < count($avatar_images[$category][$i]); $j++) + { + $template->assign_block_vars("avatar_row.avatar_column", array( + "AVATAR_IMAGE" => "../" . $board_config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$i][$j]) + ); + + $template->assign_block_vars("avatar_row.avatar_option_column", array( + "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j]) + ); + } + } + + $coppa = ( ( !$HTTP_POST_VARS['coppa'] && !$HTTP_GET_VARS['coppa'] ) || $mode == "register") ? 0 : TRUE; + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + + $template->assign_vars(array( + "L_USER_TITLE" => $lang['User_admin'], + "L_USER_EXPLAIN" => $lang['User_admin_explain'], + "L_AVATAR_GALLERY" => $lang['Avatar_gallery'], + "L_SELECT_AVATAR" => $lang['Select_avatar'], + "L_RETURN_PROFILE" => $lang['Return_profile'], + "L_CATEGORY" => $lang['Select_category'], + "L_GO" => $lang['Go'], + + "S_OPTIONS_CATEGORIES" => $s_categories, + "S_COLSPAN" => $s_colspan, + "S_PROFILE_ACTION" => append_sid("admin_users.$phpEx?mode=$mode"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + } + } + else + { + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + if( !empty($user_avatar_local) ) + { + $s_hidden_fields .= ''; + } + + if( $user_avatar_type ) + { + switch( $user_avatar_type ) + { + case USER_AVATAR_UPLOAD: + $avatar = ''; + break; + case USER_AVATAR_REMOTE: + $avatar = ''; + break; + case USER_AVATAR_GALLERY: + $avatar = ''; + break; + } + } + else + { + $avatar = ""; + } + + $sql = "SELECT * FROM " . RANKS_TABLE . " + WHERE rank_special = 1 + ORDER BY rank_title"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain ranks data', '', __LINE__, __FILE__, $sql); + } + + $rank_select_box = ''; + while( $row = $db->sql_fetchrow($result) ) + { + $rank = $row['rank_title']; + $rank_id = $row['rank_id']; + + $selected = ( $this_userdata['user_rank'] == $rank_id ) ? ' selected="selected"' : ''; + $rank_select_box .= ''; + } + + $template->set_filenames(array( + "body" => "admin/user_edit_body.tpl") + ); + + // + // Let's do an overall check for settings/versions which would prevent + // us from doing file uploads.... + // + $ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + $form_enctype = ( !@$ini_val('file_uploads') || phpversion() == '4.0.4pl1' || !$board_config['allow_avatar_upload'] || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"'; + + $template->assign_vars(array( + 'USERNAME' => $username, + 'EMAIL' => $email, + 'YIM' => $yim, + 'ICQ' => $icq, + 'MSN' => $msn, + 'AIM' => $aim, + 'OCCUPATION' => $occupation, + 'INTERESTS' => $interests, + 'LOCATION' => $location, + 'WEBSITE' => $website, + 'SIGNATURE' => str_replace('
', "\n", $signature), + 'VIEW_EMAIL_YES' => ($viewemail) ? 'checked="checked"' : '', + 'VIEW_EMAIL_NO' => (!$viewemail) ? 'checked="checked"' : '', + 'HIDE_USER_YES' => (!$allowviewonline) ? 'checked="checked"' : '', + 'HIDE_USER_NO' => ($allowviewonline) ? 'checked="checked"' : '', + 'NOTIFY_PM_YES' => ($notifypm) ? 'checked="checked"' : '', + 'NOTIFY_PM_NO' => (!$notifypm) ? 'checked="checked"' : '', + 'POPUP_PM_YES' => ($popuppm) ? 'checked="checked"' : '', + 'POPUP_PM_NO' => (!$popuppm) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_YES' => ($attachsig) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_NO' => (!$attachsig) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_YES' => ( $notifyreply ) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_YES' => ($allowbbcode) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_NO' => (!$allowbbcode) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_YES' => ($allowhtml) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_NO' => (!$allowhtml) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_YES' => ($allowsmilies) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_NO' => (!$allowsmilies) ? 'checked="checked"' : '', + 'AVATAR' => $avatar, + 'LANGUAGE_SELECT' => language_select($user_lang), + 'TIMEZONE_SELECT' => tz_select($user_timezone), + 'STYLE_SELECT' => style_select($user_style, 'style'), + 'DATE_FORMAT' => $user_dateformat, + 'ALLOW_PM_YES' => ($user_allowpm) ? 'checked="checked"' : '', + 'ALLOW_PM_NO' => (!$user_allowpm) ? 'checked="checked"' : '', + 'ALLOW_AVATAR_YES' => ($user_allowavatar) ? 'checked="checked"' : '', + 'ALLOW_AVATAR_NO' => (!$user_allowavatar) ? 'checked="checked"' : '', + 'USER_ACTIVE_YES' => ($user_status) ? 'checked="checked"' : '', + 'USER_ACTIVE_NO' => (!$user_status) ? 'checked="checked"' : '', + 'RANK_SELECT_BOX' => $rank_select_box, + + 'L_USERNAME' => $lang['Username'], + 'L_USER_TITLE' => $lang['User_admin'], + 'L_USER_EXPLAIN' => $lang['User_admin_explain'], + 'L_NEW_PASSWORD' => $lang['New_password'], + 'L_PASSWORD_IF_CHANGED' => $lang['password_if_changed'], + 'L_CONFIRM_PASSWORD' => $lang['Confirm_password'], + 'L_PASSWORD_CONFIRM_IF_CHANGED' => $lang['password_confirm_if_changed'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_ICQ_NUMBER' => $lang['ICQ'], + 'L_MESSENGER' => $lang['MSNM'], + 'L_YAHOO' => $lang['YIM'], + 'L_WEBSITE' => $lang['Website'], + 'L_AIM' => $lang['AIM'], + 'L_LOCATION' => $lang['Location'], + 'L_OCCUPATION' => $lang['Occupation'], + 'L_BOARD_LANGUAGE' => $lang['Board_lang'], + 'L_BOARD_STYLE' => $lang['Board_style'], + 'L_TIMEZONE' => $lang['Timezone'], + 'L_DATE_FORMAT' => $lang['Date_format'], + 'L_DATE_FORMAT_EXPLAIN' => $lang['Date_format_explain'], + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + 'L_INTERESTS' => $lang['Interests'], + 'L_ALWAYS_ALLOW_SMILIES' => $lang['Always_smile'], + 'L_ALWAYS_ALLOW_BBCODE' => $lang['Always_bbcode'], + 'L_ALWAYS_ALLOW_HTML' => $lang['Always_html'], + 'L_HIDE_USER' => $lang['Hide_user'], + 'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'], + + 'L_SPECIAL' => $lang['User_special'], + 'L_SPECIAL_EXPLAIN' => $lang['User_special_explain'], + 'L_USER_ACTIVE' => $lang['User_status'], + 'L_ALLOW_PM' => $lang['User_allowpm'], + 'L_ALLOW_AVATAR' => $lang['User_allowavatar'], + + 'L_AVATAR_PANEL' => $lang['Avatar_panel'], + 'L_AVATAR_EXPLAIN' => $lang['Admin_avatar_explain'], + 'L_DELETE_AVATAR' => $lang['Delete_Image'], + 'L_CURRENT_IMAGE' => $lang['Current_Image'], + 'L_UPLOAD_AVATAR_FILE' => $lang['Upload_Avatar_file'], + 'L_UPLOAD_AVATAR_URL' => $lang['Upload_Avatar_URL'], + 'L_AVATAR_GALLERY' => $lang['Select_from_gallery'], + 'L_SHOW_GALLERY' => $lang['View_avatar_gallery'], + 'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'], + + 'L_SIGNATURE' => $lang['Signature'], + 'L_SIGNATURE_EXPLAIN' => sprintf($lang['Signature_explain'], $board_config['max_sig_chars'] ), + 'L_NOTIFY_ON_PRIVMSG' => $lang['Notify_on_privmsg'], + 'L_NOTIFY_ON_REPLY' => $lang['Always_notify'], + 'L_POPUP_ON_PRIVMSG' => $lang['Popup_on_privmsg'], + 'L_PREFERENCES' => $lang['Preferences'], + 'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'], + 'L_ITEMS_REQUIRED' => $lang['Items_required'], + 'L_REGISTRATION_INFO' => $lang['Registration_info'], + 'L_PROFILE_INFO' => $lang['Profile_info'], + 'L_PROFILE_INFO_NOTICE' => $lang['Profile_info_warn'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'S_FORM_ENCTYPE' => $form_enctype, + + 'HTML_STATUS' => $html_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'SMILIES_STATUS' => $smilies_status, + + 'L_DELETE_USER' => $lang['User_delete'], + 'L_DELETE_USER_EXPLAIN' => $lang['User_delete_explain'], + 'L_SELECT_RANK' => $lang['Rank_title'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_PROFILE_ACTION' => append_sid("admin_users.$phpEx")) + ); + + if( file_exists(@phpbb_realpath('./../' . $board_config['avatar_path'])) && ($board_config['allow_avatar_upload'] == TRUE) ) + { + if ( $form_enctype != '' ) + { + $template->assign_block_vars('avatar_local_upload', array() ); + } + $template->assign_block_vars('avatar_remote_upload', array() ); + } + + if( file_exists(@phpbb_realpath('./../' . $board_config['avatar_gallery_path'])) && ($board_config['allow_avatar_local'] == TRUE) ) + { + $template->assign_block_vars('avatar_local_gallery', array() ); + } + + if( $board_config['allow_avatar_remote'] == TRUE ) + { + $template->assign_block_vars('avatar_remote_link', array() ); + } + } + + $template->pparse('body'); +} +else +{ + // + // Default user selection box + // + $template->set_filenames(array( + 'body' => 'admin/user_select_body.tpl') + ); + + $template->assign_vars(array( + 'L_USER_TITLE' => $lang['User_admin'], + 'L_USER_EXPLAIN' => $lang['User_admin_explain'], + 'L_USER_SELECT' => $lang['Select_a_User'], + 'L_LOOK_UP' => $lang['Look_up_user'], + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'U_SEARCH_USER' => append_sid("./../search.$phpEx?mode=searchuser"), + + 'S_USER_ACTION' => append_sid("admin_users.$phpEx"), + 'S_USER_SELECT' => $select_list) + ); + $template->pparse('body'); + +} + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_words.php b/phpBB2/admin/admin_words.php new file mode 100644 index 0000000..1162bd5 --- /dev/null +++ b/phpBB2/admin/admin_words.php @@ -0,0 +1,273 @@ +set_filenames(array( + "body" => "admin/words_edit_body.tpl") + ); + + $word_info = array('word' => '', 'replacement' => ''); + $s_hidden_fields = ''; + + if( $mode == "edit" ) + { + if( $word_id ) + { + $sql = "SELECT * + FROM " . WORDS_TABLE . " + WHERE word_id = $word_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query words table", "Error", __LINE__, __FILE__, $sql); + } + + $word_info = $db->sql_fetchrow($result); + $s_hidden_fields .= ''; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_word_selected']); + } + } + + $template->assign_vars(array( + "WORD" => $word_info['word'], + "REPLACEMENT" => $word_info['replacement'], + + "L_WORDS_TITLE" => $lang['Words_title'], + "L_WORDS_TEXT" => $lang['Words_explain'], + "L_WORD_CENSOR" => $lang['Edit_word_censor'], + "L_WORD" => $lang['Word'], + "L_REPLACEMENT" => $lang['Replacement'], + "L_SUBMIT" => $lang['Submit'], + + "S_WORDS_ACTION" => append_sid("admin_words.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + } + else if( $mode == "save" ) + { + $word_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0; + $word = ( isset($HTTP_POST_VARS['word']) ) ? trim($HTTP_POST_VARS['word']) : ""; + $replacement = ( isset($HTTP_POST_VARS['replacement']) ) ? trim($HTTP_POST_VARS['replacement']) : ""; + + if($word == "" || $replacement == "") + { + message_die(GENERAL_MESSAGE, $lang['Must_enter_word']); + } + + if( $word_id ) + { + $sql = "UPDATE " . WORDS_TABLE . " + SET word = '" . str_replace("\'", "''", $word) . "', replacement = '" . str_replace("\'", "''", $replacement) . "' + WHERE word_id = $word_id"; + $message = $lang['Word_updated']; + } + else + { + $sql = "INSERT INTO " . WORDS_TABLE . " (word, replacement) + VALUES ('" . str_replace("\'", "''", $word) . "', '" . str_replace("\'", "''", $replacement) . "')"; + $message = $lang['Word_added']; + } + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not insert data into words table", $lang['Error'], __LINE__, __FILE__, $sql); + } + + $message .= "

" . sprintf($lang['Click_return_wordadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else if( $mode == "delete" ) + { + if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) ) + { + $word_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; + $word_id = intval($word_id); + } + else + { + $word_id = 0; + } + + $confirm = isset($HTTP_POST_VARS['confirm']); + + if( $word_id && $confirm ) + { + $sql = "DELETE FROM " . WORDS_TABLE . " + WHERE word_id = $word_id"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not remove data from words table", $lang['Error'], __LINE__, __FILE__, $sql); + } + + $message = $lang['Word_removed'] . "

" . sprintf($lang['Click_return_wordadmin'], "", "") . "

" . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + elseif( $word_id && !$confirm) + { + // Present the confirmation screen to the user + $template->set_filenames(array( + 'body' => 'admin/confirm_body.tpl') + ); + + $hidden_fields = ''; + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_delete_word'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("admin_words.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_word_selected']); + } + } +} +else +{ + $template->set_filenames(array( + "body" => "admin/words_list_body.tpl") + ); + + $sql = "SELECT * + FROM " . WORDS_TABLE . " + ORDER BY word"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Could not query words table", $lang['Error'], __LINE__, __FILE__, $sql); + } + + $word_rows = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + $word_count = count($word_rows); + + $template->assign_vars(array( + "L_WORDS_TITLE" => $lang['Words_title'], + "L_WORDS_TEXT" => $lang['Words_explain'], + "L_WORD" => $lang['Word'], + "L_REPLACEMENT" => $lang['Replacement'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete'], + "L_ADD_WORD" => $lang['Add_new_word'], + "L_ACTION" => $lang['Action'], + + "S_WORDS_ACTION" => append_sid("admin_words.$phpEx"), + "S_HIDDEN_FIELDS" => '') + ); + + for($i = 0; $i < $word_count; $i++) + { + $word = $word_rows[$i]['word']; + $replacement = $word_rows[$i]['replacement']; + $word_id = $word_rows[$i]['word_id']; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("words", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "WORD" => $word, + "REPLACEMENT" => $replacement, + + "U_WORD_EDIT" => append_sid("admin_words.$phpEx?mode=edit&id=$word_id"), + "U_WORD_DELETE" => append_sid("admin_words.$phpEx?mode=delete&id=$word_id")) + ); + } +} + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/admin/admin_xs.php b/phpBB2/admin/admin_xs.php new file mode 100644 index 0000000..ce171a8 --- /dev/null +++ b/phpBB2/admin/admin_xs.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/phpBB2/admin/index.php b/phpBB2/admin/index.php new file mode 100644 index 0000000..6715d92 --- /dev/null +++ b/phpBB2/admin/index.php @@ -0,0 +1,657 @@ +set_filenames(array( + "body" => "admin/index_navigate.tpl") + ); + + $template->assign_vars(array( + "U_FORUM_INDEX" => append_sid("../index.$phpEx"), + "U_ADMIN_INDEX" => append_sid("index.$phpEx?pane=right"), + + "L_FORUM_INDEX" => $lang['Main_index'], + "L_ADMIN_INDEX" => $lang['Admin_Index'], + "L_PREVIEW_FORUM" => $lang['Preview_forum']) + ); + + ksort($module); + + while( list($cat, $action_array) = each($module) ) + { + $cat = ( !empty($lang[$cat]) ) ? $lang[$cat] : preg_replace("/_/", " ", $cat); + + $template->assign_block_vars("catrow", array( + "ADMIN_CATEGORY" => $cat) + ); + + ksort($action_array); + + $row_count = 0; + while( list($action, $file) = each($action_array) ) + { + $row_color = ( !($row_count%2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($row_count%2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $action = ( !empty($lang[$action]) ) ? $lang[$action] : preg_replace("/_/", " ", $action); + + $template->assign_block_vars("catrow.modulerow", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + + "ADMIN_MODULE" => $action, + "U_ADMIN_MODULE" => append_sid($file)) + ); + $row_count++; + } + } + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); +} +elseif( isset($HTTP_GET_VARS['pane']) && $HTTP_GET_VARS['pane'] == 'right' ) +{ + + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/index_body.tpl") + ); + + $template->assign_vars(array( + "L_WELCOME" => $lang['Welcome_phpBB'], + "L_ADMIN_INTRO" => $lang['Admin_intro'], + "L_FORUM_STATS" => $lang['Forum_stats'], + "L_WHO_IS_ONLINE" => $lang['Who_is_Online'], + "L_USERNAME" => $lang['Username'], + "L_LOCATION" => $lang['Location'], + "L_LAST_UPDATE" => $lang['Last_updated'], + "L_IP_ADDRESS" => $lang['IP_Address'], + "L_STATISTIC" => $lang['Statistic'], + "L_VALUE" => $lang['Value'], + "L_NUMBER_POSTS" => $lang['Number_posts'], + "L_POSTS_PER_DAY" => $lang['Posts_per_day'], + "L_NUMBER_TOPICS" => $lang['Number_topics'], + "L_TOPICS_PER_DAY" => $lang['Topics_per_day'], + "L_NUMBER_USERS" => $lang['Number_users'], + "L_USERS_PER_DAY" => $lang['Users_per_day'], + "L_BOARD_STARTED" => $lang['Board_started'], + "L_AVATAR_DIR_SIZE" => $lang['Avatar_dir_size'], + "L_DB_SIZE" => $lang['Database_size'], + "L_FORUM_LOCATION" => $lang['Forum_Location'], + "L_STARTED" => $lang['Login'], + "L_GZIP_COMPRESSION" => $lang['Gzip_compression']) + ); + + // + // Get forum statistics + // + $total_posts = get_db_stat('postcount'); + $total_users = get_db_stat('usercount'); + $total_topics = get_db_stat('topiccount'); + + $start_date = create_date($board_config['default_dateformat'], $board_config['board_startdate'], $board_config['board_timezone']); + + $boarddays = ( time() - $board_config['board_startdate'] ) / 86400; + + $posts_per_day = sprintf("%.2f", $total_posts / $boarddays); + $topics_per_day = sprintf("%.2f", $total_topics / $boarddays); + $users_per_day = sprintf("%.2f", $total_users / $boarddays); + + $avatar_dir_size = 0; + + if ($avatar_dir = @opendir($phpbb_root_path . $board_config['avatar_path'])) + { + while( $file = @readdir($avatar_dir) ) + { + if( $file != "." && $file != ".." ) + { + $avatar_dir_size += @filesize($phpbb_root_path . $board_config['avatar_path'] . "/" . $file); + } + } + @closedir($avatar_dir); + + // + // This bit of code translates the avatar directory size into human readable format + // Borrowed the code from the PHP.net annoted manual, origanally written by: + // Jesse (jesse@jess.on.ca) + // + if($avatar_dir_size >= 1048576) + { + $avatar_dir_size = round($avatar_dir_size / 1048576 * 100) / 100 . " MB"; + } + else if($avatar_dir_size >= 1024) + { + $avatar_dir_size = round($avatar_dir_size / 1024 * 100) / 100 . " KB"; + } + else + { + $avatar_dir_size = $avatar_dir_size . " Bytes"; + } + + } + else + { + // Couldn't open Avatar dir. + $avatar_dir_size = $lang['Not_available']; + } + + if($posts_per_day > $total_posts) + { + $posts_per_day = $total_posts; + } + + if($topics_per_day > $total_topics) + { + $topics_per_day = $total_topics; + } + + if($users_per_day > $total_users) + { + $users_per_day = $total_users; + } + + // + // DB size ... MySQL only + // + // This code is heavily influenced by a similar routine + // in phpMyAdmin 2.2.0 + // + if( preg_match("/^mysql/", SQL_LAYER) ) + { + $sql = "SELECT VERSION() AS mysql_version"; + if($result = $db->sql_query($sql)) + { + $row = $db->sql_fetchrow($result); + $version = $row['mysql_version']; + + if( preg_match("/^(3\.23|4\.|5\.)/", $version) ) + { + $db_name = ( preg_match("/^(3\.23\.[6-9])|(3\.23\.[1-9][1-9])|(4\.)|(5\.)/", $version) ) ? "`$dbname`" : $dbname; + + $sql = "SHOW TABLE STATUS + FROM " . $db_name; + if($result = $db->sql_query($sql)) + { + $tabledata_ary = $db->sql_fetchrowset($result); + + $dbsize = 0; + for($i = 0; $i < count($tabledata_ary); $i++) + { + if( $tabledata_ary[$i]['Type'] != "MRG_MyISAM" ) + { + if( $table_prefix != "" ) + { + if( strstr($tabledata_ary[$i]['Name'], $table_prefix) ) + { + $dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length']; + } + } + else + { + $dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length']; + } + } + } + } // Else we couldn't get the table status. + } + else + { + $dbsize = $lang['Not_available']; + } + } + else + { + $dbsize = $lang['Not_available']; + } + } + else if( preg_match("/^mssql/", SQL_LAYER) ) + { + $sql = "SELECT ((SUM(size) * 8.0) * 1024.0) as dbsize + FROM sysfiles"; + if( $result = $db->sql_query($sql) ) + { + $dbsize = ( $row = $db->sql_fetchrow($result) ) ? intval($row['dbsize']) : $lang['Not_available']; + } + else + { + $dbsize = $lang['Not_available']; + } + } + else + { + $dbsize = $lang['Not_available']; + } + + if ( is_integer($dbsize) ) + { + if( $dbsize >= 1048576 ) + { + $dbsize = sprintf("%.2f MB", ( $dbsize / 1048576 )); + } + else if( $dbsize >= 1024 ) + { + $dbsize = sprintf("%.2f KB", ( $dbsize / 1024 )); + } + else + { + $dbsize = sprintf("%.2f Bytes", $dbsize); + } + } + + $template->assign_vars(array( + "NUMBER_OF_POSTS" => $total_posts, + "NUMBER_OF_TOPICS" => $total_topics, + "NUMBER_OF_USERS" => $total_users, + "START_DATE" => $start_date, + "POSTS_PER_DAY" => $posts_per_day, + "TOPICS_PER_DAY" => $topics_per_day, + "USERS_PER_DAY" => $users_per_day, + "AVATAR_DIR_SIZE" => $avatar_dir_size, + "DB_SIZE" => $dbsize, + "GZIP_COMPRESSION" => ( $board_config['gzip_compress'] ) ? $lang['ON'] : $lang['OFF']) + ); + // + // End forum statistics + // + + // + // Get users online information. + // + $sql = "SELECT u.user_id, u.username, u.user_session_time, u.user_session_page, s.session_logged_in, s.session_ip, s.session_start + FROM " . USERS_TABLE . " u, " . SESSIONS_TABLE . " s + WHERE s.session_logged_in = " . TRUE . " + AND u.user_id = s.session_user_id + AND u.user_id <> " . ANONYMOUS . " + AND s.session_time >= " . ( time() - 300 ) . " + ORDER BY u.user_session_time DESC"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql); + } + $onlinerow_reg = $db->sql_fetchrowset($result); + + $sql = "SELECT session_page, session_logged_in, session_time, session_ip, session_start + FROM " . SESSIONS_TABLE . " + WHERE session_logged_in = 0 + AND session_time >= " . ( time() - 300 ) . " + ORDER BY session_time DESC"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain guest user/online information.", "", __LINE__, __FILE__, $sql); + } + $onlinerow_guest = $db->sql_fetchrowset($result); + + $sql = "SELECT forum_name, forum_id + FROM " . FORUMS_TABLE; + if($forums_result = $db->sql_query($sql)) + { + while($forumsrow = $db->sql_fetchrow($forums_result)) + { + $forum_data[$forumsrow['forum_id']] = $forumsrow['forum_name']; + } + } + else + { + message_die(GENERAL_ERROR, "Couldn't obtain user/online forums information.", "", __LINE__, __FILE__, $sql); + } + + $reg_userid_ary = array(); + + if( count($onlinerow_reg) ) + { + $registered_users = 0; + + for($i = 0; $i < count($onlinerow_reg); $i++) + { + if( !inarray($onlinerow_reg[$i]['user_id'], $reg_userid_ary) ) + { + $reg_userid_ary[] = $onlinerow_reg[$i]['user_id']; + + $username = $onlinerow_reg[$i]['username']; + + if( $onlinerow_reg[$i]['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) + { + $registered_users++; + $hidden = FALSE; + } + else + { + $hidden_users++; + $hidden = TRUE; + } + + if( $onlinerow_reg[$i]['user_session_page'] < 1 ) + { + switch($onlinerow_reg[$i]['user_session_page']) + { + case PAGE_INDEX: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_POSTING: + $location = $lang['Posting_message']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_LOGIN: + $location = $lang['Logging_on']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_SEARCH: + $location = $lang['Searching_forums']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PROFILE: + $location = $lang['Viewing_profile']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWONLINE: + $location = $lang['Viewing_online']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWMEMBERS: + $location = $lang['Viewing_member_list']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PRIVMSGS: + $location = $lang['Viewing_priv_msgs']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_FAQ: + $location = $lang['Viewing_FAQ']; + $location_url = "index.$phpEx?pane=right"; + break; + default: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + } + } + else + { + $location_url = append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=" . $onlinerow_reg[$i]['user_session_page']); + $location = $forum_data[$onlinerow_reg[$i]['user_session_page']]; + } + + $row_color = ( $registered_users % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $registered_users % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $reg_ip = decode_ip($onlinerow_reg[$i]['session_ip']); + + $template->assign_block_vars("reg_user_row", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "USERNAME" => $username, + "STARTED" => create_date($board_config['default_dateformat'], $onlinerow_reg[$i]['session_start'], $board_config['board_timezone']), + "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_reg[$i]['user_session_time'], $board_config['board_timezone']), + "FORUM_LOCATION" => $location, + "IP_ADDRESS" => $reg_ip, + + "U_WHOIS_IP" => "http://network-tools.com/default.asp?host=$reg_ip", + "U_USER_PROFILE" => append_sid("admin_users.$phpEx?mode=edit&" . POST_USERS_URL . "=" . $onlinerow_reg[$i]['user_id']), + "U_FORUM_LOCATION" => append_sid($location_url)) + ); + } + } + + } + else + { + $template->assign_vars(array( + "L_NO_REGISTERED_USERS_BROWSING" => $lang['No_users_browsing']) + ); + } + + // + // Guest users + // + if( count($onlinerow_guest) ) + { + $guest_users = 0; + + for($i = 0; $i < count($onlinerow_guest); $i++) + { + $guest_userip_ary[] = $onlinerow_guest[$i]['session_ip']; + $guest_users++; + + if( $onlinerow_guest[$i]['session_page'] < 1 ) + { + switch( $onlinerow_guest[$i]['session_page'] ) + { + case PAGE_INDEX: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_POSTING: + $location = $lang['Posting_message']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_LOGIN: + $location = $lang['Logging_on']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_SEARCH: + $location = $lang['Searching_forums']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PROFILE: + $location = $lang['Viewing_profile']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWONLINE: + $location = $lang['Viewing_online']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWMEMBERS: + $location = $lang['Viewing_member_list']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PRIVMSGS: + $location = $lang['Viewing_priv_msgs']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_FAQ: + $location = $lang['Viewing_FAQ']; + $location_url = "index.$phpEx?pane=right"; + break; + default: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + } + } + else + { + $location_url = append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=" . $onlinerow_guest[$i]['session_page']); + $location = $forum_data[$onlinerow_guest[$i]['session_page']]; + } + + $row_color = ( $guest_users % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $guest_users % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $guest_ip = decode_ip($onlinerow_guest[$i]['session_ip']); + + $template->assign_block_vars("guest_user_row", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "USERNAME" => $lang['Guest'], + "STARTED" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_start'], $board_config['board_timezone']), + "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_time'], $board_config['board_timezone']), + "FORUM_LOCATION" => $location, + "IP_ADDRESS" => $guest_ip, + + "U_WHOIS_IP" => "http://network-tools.com/default.asp?host=$guest_ip", + "U_FORUM_LOCATION" => append_sid($location_url)) + ); + } + + } + else + { + $template->assign_vars(array( + "L_NO_GUESTS_BROWSING" => $lang['No_users_browsing']) + ); + } + + // Check for new version + $current_version = explode('.', '2' . $board_config['version']); + $minor_revision = (int) $current_version[2]; + + $errno = 0; + $errstr = $version_info = ''; + + if ($fsock = @fsockopen('www.phpbb.com', 80, $errno, $errstr, 10)) + { + @fputs($fsock, "GET /updatecheck/20x.txt HTTP/1.1\r\n"); + @fputs($fsock, "HOST: www.phpbb.com\r\n"); + @fputs($fsock, "Connection: close\r\n\r\n"); + + $get_info = false; + while (!@feof($fsock)) + { + if ($get_info) + { + $version_info .= @fread($fsock, 1024); + } + else + { + if (@fgets($fsock, 1024) == "\r\n") + { + $get_info = true; + } + } + } + @fclose($fsock); + + $version_info = explode("\n", $version_info); + $latest_head_revision = (int) $version_info[0]; + $latest_minor_revision = (int) $version_info[2]; + $latest_version = (int) $version_info[0] . '.' . (int) $version_info[1] . '.' . (int) $version_info[2]; + + if ($latest_head_revision == 2 && $minor_revision == $latest_minor_revision) + { + $version_info = '

' . $lang['Version_up_to_date'] . '

'; + } + else + { + $version_info = '

' . $lang['Version_not_up_to_date']; + $version_info .= '
' . sprintf($lang['Latest_version_info'], $latest_version) . ' ' . sprintf($lang['Current_version_info'], '2' . $board_config['version']) . '

'; + } + } + else + { + if ($errstr) + { + $version_info = '

' . sprintf($lang['Connect_socket_error'], $errstr) . '

'; + } + else + { + $version_info = '

' . $lang['Socket_functions_disabled'] . '

'; + } + } + + $version_info .= '

' . $lang['Mailing_list_subscribe_reminder'] . '

'; + + + $template->assign_vars(array( + 'VERSION_INFO' => $version_info, + 'L_VERSION_INFORMATION' => $lang['Version_information']) + ); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + +} +else +{ + // + // Generate frameset + // + $template->set_filenames(array( + "body" => "admin/index_frameset.tpl") + ); + + $template->assign_vars(array( + "S_FRAME_NAV" => append_sid("index.$phpEx?pane=left"), + "S_FRAME_MAIN" => append_sid("index.$phpEx?pane=right")) + ); + + header ("Expires: " . gmdate("D, d M Y H:i:s", time()) . " GMT"); + header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); + + $template->pparse("body"); + + $db->sql_close(); + exit; + +} + +?> \ No newline at end of file diff --git a/phpBB2/admin/page_footer_admin.php b/phpBB2/admin/page_footer_admin.php new file mode 100644 index 0000000..3412489 --- /dev/null +++ b/phpBB2/admin/page_footer_admin.php @@ -0,0 +1,75 @@ +set_filenames(array( + 'page_footer' => 'admin/page_footer.tpl') +); + +$template->assign_vars(array( + 'PHPBB_VERSION' => ($userdata['user_level'] == ADMIN && $userdata['user_id'] != ANONYMOUS) ? '2' . $board_config['version'] : '', + 'TRANSLATION_INFO' => (isset($lang['TRANSLATION_INFO'])) ? $lang['TRANSLATION_INFO'] : ((isset($lang['TRANSLATION'])) ? $lang['TRANSLATION'] : '')) +); + +$template->pparse('page_footer'); + +// +// Close our DB connection. +// +$db->sql_close(); + +// +// Compress buffered output if required +// and send to browser +// +if( $do_gzip_compress ) +{ + // + // Borrowed from php.net! + // + $gzip_contents = ob_get_contents(); + ob_end_clean(); + + $gzip_size = strlen($gzip_contents); + $gzip_crc = crc32($gzip_contents); + + $gzip_contents = gzcompress($gzip_contents, 9); + $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); + + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; + echo $gzip_contents; + echo pack('V', $gzip_crc); + echo pack('V', $gzip_size); +} + +exit; + +?> \ No newline at end of file diff --git a/phpBB2/admin/page_header_admin.php b/phpBB2/admin/page_header_admin.php new file mode 100644 index 0000000..6e3428a --- /dev/null +++ b/phpBB2/admin/page_header_admin.php @@ -0,0 +1,150 @@ += '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) + { + if ( extension_loaded('zlib') ) + { + ob_start('ob_gzhandler'); + } + } + else if ( $phpver > '4.0' ) + { + if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) + { + if ( extension_loaded('zlib') ) + { + $do_gzip_compress = TRUE; + ob_start(); + ob_implicit_flush(0); + + header('Content-Encoding: gzip'); + } + } + } +} + +$template->set_filenames(array( + 'header' => 'admin/page_header.tpl') +); + +// Format Timezone. We are unable to use array_pop here, because of PHP3 compatibility +$l_timezone = explode('.', $board_config['board_timezone']); +$l_timezone = (count($l_timezone) > 1 && $l_timezone[count($l_timezone)-1] != 0) ? $lang[sprintf('%.1f', $board_config['board_timezone'])] : $lang[number_format($board_config['board_timezone'])]; + +// +// The following assigns all _common_ variables that may be used at any point +// in a template. Note that all URL's should be wrapped in append_sid, as +// should all S_x_ACTIONS for forms. +// +$template->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'PAGE_TITLE' => $page_title, + + 'L_ADMIN' => $lang['Admin'], + 'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']), + 'L_FAQ' => $lang['FAQ'], + + 'U_INDEX' => append_sid('../index.'.$phpEx), + + 'S_TIMEZONE' => sprintf($lang['All_times'], $l_timezone), + 'S_LOGIN_ACTION' => append_sid('../login.'.$phpEx), + 'S_JUMPBOX_ACTION' => append_sid('../viewforum.'.$phpEx), + 'S_CURRENT_TIME' => sprintf($lang['Current_time'], create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])), + 'S_CONTENT_DIRECTION' => $lang['DIRECTION'], + 'S_CONTENT_ENCODING' => $lang['ENCODING'], + 'S_CONTENT_DIR_LEFT' => $lang['LEFT'], + 'S_CONTENT_DIR_RIGHT' => $lang['RIGHT'], + + 'T_HEAD_STYLESHEET' => $theme['head_stylesheet'], + 'T_BODY_BACKGROUND' => $theme['body_background'], + 'T_BODY_BGCOLOR' => '#'.$theme['body_bgcolor'], + 'T_BODY_TEXT' => '#'.$theme['body_text'], + 'T_BODY_LINK' => '#'.$theme['body_link'], + 'T_BODY_VLINK' => '#'.$theme['body_vlink'], + 'T_BODY_ALINK' => '#'.$theme['body_alink'], + 'T_BODY_HLINK' => '#'.$theme['body_hlink'], + 'T_TR_COLOR1' => '#'.$theme['tr_color1'], + 'T_TR_COLOR2' => '#'.$theme['tr_color2'], + 'T_TR_COLOR3' => '#'.$theme['tr_color3'], + 'T_TR_CLASS1' => $theme['tr_class1'], + 'T_TR_CLASS2' => $theme['tr_class2'], + 'T_TR_CLASS3' => $theme['tr_class3'], + 'T_TH_COLOR1' => '#'.$theme['th_color1'], + 'T_TH_COLOR2' => '#'.$theme['th_color2'], + 'T_TH_COLOR3' => '#'.$theme['th_color3'], + 'T_TH_CLASS1' => $theme['th_class1'], + 'T_TH_CLASS2' => $theme['th_class2'], + 'T_TH_CLASS3' => $theme['th_class3'], + 'T_TD_COLOR1' => '#'.$theme['td_color1'], + 'T_TD_COLOR2' => '#'.$theme['td_color2'], + 'T_TD_COLOR3' => '#'.$theme['td_color3'], + 'T_TD_CLASS1' => $theme['td_class1'], + 'T_TD_CLASS2' => $theme['td_class2'], + 'T_TD_CLASS3' => $theme['td_class3'], + 'T_FONTFACE1' => $theme['fontface1'], + 'T_FONTFACE2' => $theme['fontface2'], + 'T_FONTFACE3' => $theme['fontface3'], + 'T_FONTSIZE1' => $theme['fontsize1'], + 'T_FONTSIZE2' => $theme['fontsize2'], + 'T_FONTSIZE3' => $theme['fontsize3'], + 'T_FONTCOLOR1' => '#'.$theme['fontcolor1'], + 'T_FONTCOLOR2' => '#'.$theme['fontcolor2'], + 'T_FONTCOLOR3' => '#'.$theme['fontcolor3'], + 'T_SPAN_CLASS1' => $theme['span_class1'], + 'T_SPAN_CLASS2' => $theme['span_class2'], + 'T_SPAN_CLASS3' => $theme['span_class3']) +); + +// Work around for "current" Apache 2 + PHP module which seems to not +// cope with private cache control setting +if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2')) +{ + header ('Cache-Control: no-cache, pre-check=0, post-check=0'); +} +else +{ + header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0'); +} +header ('Expires: 0'); +header ('Pragma: no-cache'); + +$template->pparse('header'); + +?> diff --git a/phpBB2/admin/pagestart.php b/phpBB2/admin/pagestart.php new file mode 100644 index 0000000..26c269a --- /dev/null +++ b/phpBB2/admin/pagestart.php @@ -0,0 +1,67 @@ + \ No newline at end of file diff --git a/phpBB2/admin/xs_cache.php b/phpBB2/admin/xs_cache.php new file mode 100644 index 0000000..4f01b4f --- /dev/null +++ b/phpBB2/admin/xs_cache.php @@ -0,0 +1,264 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_manage_cache'] . '')); + +$data = ''; + +$skip_files = array( + '.', + '..', + '.htaccess', + 'index.htm', + 'index.html', + 'index.php', + 'attach_config.php', + ); + +// +// clear cache +// +if(isset($HTTP_GET_VARS['clear']) && !defined('DEMO_MODE')) +{ + @set_time_limit(XS_MAX_TIMEOUT); + $clear = $HTTP_GET_VARS['clear']; + if(!$clear) + { + // clear all cache + $match = ''; + } + else + { + $match = XS_TPL_PREFIX . $clear . XS_SEPARATOR; + } + $match_len = strlen($match); + $style_len = strlen(STYLE_EXTENSION); + $backup_len = strlen(XS_BACKUP_EXT); + $dir = $template->cachedir; + $res = @opendir($dir); + if(!$res) + { + $data = $lang['xs_cache_nowrite']; + } + else + { + $num = 0; + $num_error = 0; + while(($file = readdir($res)) !== false) + { + $len = strlen($file); + // delete only files that match pattern, that aren't in exclusion list and that aren't downloaded styles. + if(substr($file, 0, $match_len) === $match && !xs_in_array($file, $skip_files)) + if(substr($file, $len - $style_len) !== STYLE_EXTENSION && substr($file, $len - $backup_len) !== XS_BACKUP_EXT) + { + $res2 = @unlink($dir . $file); + if($res2) + { + $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_deleted']) . "
\n"; + $num ++; + } + elseif(@is_file($dir . $file)) + { + $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_nodelete']) . "
\n"; + $num_error ++; + } + } + } + closedir($res); + if(!$num && !$num_error) + { + if($clear) + { + $data .= str_replace('{TPL}', $clear, $lang['xs_cache_log_nothing']) . "
\n"; + } + else + { + $data .= $lang['xs_cache_log_nothing2'] . "
\n"; + } + } + else + { + $data .= str_replace('{NUM}', $num, $lang['xs_cache_log_count']) . "
\n"; + if($num_error) + { + $data .= str_replace('{NUM}', $num_error, $lang['xs_cache_log_count2']) . "
\n"; + } + } + } +} + + +// +// compile cache +// +if(isset($HTTP_GET_VARS['compile']) && !defined('DEMO_MODE')) +{ + $tpl = $HTTP_GET_VARS['compile']; + @set_time_limit(XS_MAX_TIMEOUT); + $num_errors = 0; + $num_compiled = 0; + if($tpl) + { + $dir = $template->tpldir . $tpl . '/'; + compile_cache($dir, '', $tpl); + } + else + { + $res = opendir('../templates'); + while(($file = readdir($res)) !== false) + { + if($file !== '.' && $file !== '..' && is_dir('../templates/'.$file) && @file_exists('../templates/'.$file.'/overall_header.tpl')) + { + compile_cache('../templates/'.$file.'/', '', $file); + } + } + closedir($res); + } + $data .= str_replace('{NUM}', $num_compiled, $lang['xs_cache_log_compiled']) . "
\n"; + $data .= str_replace('{NUM}', $num_errors, $lang['xs_cache_log_errors']) . "
\n"; +} + +function compile_cache($dir, $subdir, $tpl) +{ + global $data, $template, $num_errors, $num_compiled, $lang; + $str = $dir . $subdir; + $res = @opendir($dir . $subdir); + if(!$res) + { + $data .= str_replace('{DIR}', $dir.$subdir, $lang['xs_cache_log_noaccess']) . "
\n"; + $num_errors ++; + return; + } + while(($file = readdir($res)) !== false) + { + if(@is_dir($str . $file) && $file !== '.' && $file !== '..' && $file !== 'CVS') + { + compile_cache($dir, $subdir . $file . '/', $tpl); + } + elseif(substr($file, strlen($file) - 4) === '.tpl') + { + $res2 = $template->precompile($tpl, $subdir . $file); + if($res2) + { + $data .= str_replace('{FILE}', $dir.$subdir.$file, $lang['xs_cache_log_compiled2']) . "
\n"; + $num_compiled ++; + } + else + { + $data .= str_replace('{FILE}', $dir.$subdir.$file, $lang['xs_cache_log_nocompile']) . "
\n"; + $num_errors ++; + } + } + } + closedir($res); +} + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'cache.tpl')); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLEAR' => "xs_cache.{$phpEx}?clear={$str2}&sid={$userdata['session_id']}", + 'U_COMPILE' => "xs_cache.{$phpEx}?compile={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} +if($prev_id > 0) +{ + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLEAR' => "xs_cache.{$phpEx}?clear={$str2}&sid={$userdata['session_id']}", + 'U_COMPILE' => "xs_cache.{$phpEx}?compile={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->assign_vars(array( + 'U_CLEAR_ALL' => "xs_cache.{$phpEx}?clear=&sid={$userdata['session_id']}", + 'U_COMPILE_ALL' => "xs_cache.{$phpEx}?compile=&sid={$userdata['session_id']}", + 'RESULT' => '

' . $data + ) +); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_chmod.php b/phpBB2/admin/xs_chmod.php new file mode 100644 index 0000000..6cec86e --- /dev/null +++ b/phpBB2/admin/xs_chmod.php @@ -0,0 +1,92 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_configuration'] . '')); +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_chmod'] . '')); + +$lang['xs_chmod_return'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_chmod_return']); +$lang['xs_chmod_message1'] .= $lang['xs_chmod_return']; +$lang['xs_chmod_error1'] .= $lang['xs_chmod_return']; + +if(defined('DEMO_MODE')) +{ + xs_error($lang['xs_permission_denied']); +} + +if(!get_ftp_config(append_sid('xs_chmod.'.$phpEx), array(), false)) +{ + exit; +} +xs_ftp_connect(append_sid('xs_chmod.'.$phpEx), array(), true); + +if($ftp === XS_FTP_LOCAL) +{ + @mkdir('../cache', 0777); + @chmod('../cache', 0777); + if(xs_dir_writable('../cache')) + { + xs_message($lang['Information'], $lang['xs_chmod_message1']); + } + xs_error($lang['xs_chmod_error1']); +} + +$str = ftp_pwd($ftp); + +if(strlen($str) && substr($str, strlen($str) - 1) !== '/') +{ + $str .= '/'; +} +$res = @ftp_site($ftp, "CHMOD 0777 {$str}cache"); +if(!$res) +{ + @ftp_mkdir($ftp, 'cache'); + $res = @ftp_site($ftp, "CHMOD 0777 {$str}cache"); +} +@ftp_quit($ftp); +if($res) +{ + xs_message($lang['Information'], $lang['xs_chmod_message1']); +} +else +{ + xs_error($lang['xs_chmod_error1']); +} + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_clone.php b/phpBB2/admin/xs_clone.php new file mode 100644 index 0000000..c083730 --- /dev/null +++ b/phpBB2/admin/xs_clone.php @@ -0,0 +1,365 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_clone_styles'] . '')); + +$lang['xs_clone_back'] = str_replace('{URL}', append_sid('xs_clone.'.$phpEx), $lang['xs_clone_back']); + +// +// Check required functions +// +if(!@function_exists('gzcompress')) +{ + xs_error($lang['xs_import_nogzip']); +} + +// +// clone style +// +if(!empty($HTTP_POST_VARS['clone_style']) && !defined('DEMO_MODE')) +{ + $style = intval($HTTP_POST_VARS['clone_style']); + $new_name = stripslashes($HTTP_POST_VARS['clone_name']); + // get theme data + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id='{$style}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'] . '

' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + $theme = $db->sql_fetchrow($result); + if(empty($theme['themes_id'])) + { + xs_error($lang['xs_no_themes'] . '

' . $lang['xs_clone_back']); + } + if($theme['style_name'] === stripslashes($new_name)) + { + xs_error($lang['xs_clone_taken'] . '

' . $lang['xs_clone_back']); + } + // check for clone + $sql = "SELECT themes_id FROM " . THEMES_TABLE . " WHERE style_name = '" . xs_sql($new_name) . "'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + $row = $db->sql_fetchrow($result); + if(!empty($row['themes_id'])) + { + xs_error($lang['xs_clone_taken'] . '

' . $lang['xs_clone_back']); + } + // clone it + $vars = array('style_name'); + $values = array(xs_sql($new_name)); + foreach($theme as $var => $value) + { + if(!is_integer($var) && $var !== 'style_name' && $var !== 'themes_id') + { + $vars[] = $var; + $values[] = xs_sql($value); + } + } + $sql = "INSERT INTO " . THEMES_TABLE . " (" . implode(', ', $vars) . ") VALUES ('" . implode("','", $values) . "')"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_error_new_row'] . '

' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + // recache themes + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + if ( empty($themes) ) + { + $themes = new themes(); + } + if ( !empty($themes) ) + { + $themes->read(true); + } + } + xs_message($lang['Information'], $lang['xs_theme_cloned'] . '

' . $lang['xs_clone_back']); +} + +// +// clone template +// +if(!empty($HTTP_POST_VARS['clone_tpl']) && !defined('DEMO_MODE')) +{ + $old_name = xs_tpl_name($HTTP_POST_VARS['clone_tpl']); + $new_name = xs_tpl_name($HTTP_POST_VARS['clone_style_name']); + if(empty($new_name) || $new_name === $old_name) + { + xs_error($lang['xs_invalid_style_name'] . '

' . $lang['xs_clone_back']); + } + // check if template exists + if(@file_exists('../templates/'.$new_name)) + { + xs_error($lang['xs_clone_style_exists'] . '

' . $lang['xs_clone_back']); + } + // check variables + $total = intval($HTTP_POST_VARS['total']); + $vars = array('clone_tpl', 'clone_style_name', 'total'); + $count = 0; + $list = array(); + for($i=0; $i<$total; $i++) + { + $vars[] = 'clone_style_id_'.$i; + $vars[] = 'clone_style_'.$i; + $vars[] = 'clone_style_name_'.$i; + if(!empty($HTTP_POST_VARS['clone_style_'.$i]) && !empty($HTTP_POST_VARS['clone_style_name_'.$i])) + { + // prepare for export + $list[] = intval($HTTP_POST_VARS['clone_style_id_'.$i]); + $HTTP_POST_VARS['export_style_'.$i] = $HTTP_POST_VARS['clone_style_'.$i]; + $HTTP_POST_VARS['export_style_id_'.$i] = $HTTP_POST_VARS['clone_style_id_'.$i]; + $HTTP_POST_VARS['export_style_name_'.$i] = $HTTP_POST_VARS['clone_style_name_'.$i]; + // prepare for import + $HTTP_POST_VARS['import_install_'.$count] = '1'; + $count ++; + } + } + if(!$count) + { + xs_error($lang['xs_clone_no_select'] . '

' . $lang['xs_clone_back']); + } + $request = array(); + for($i=0; $isql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . $lang['xs_clone_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

' . $lang['xs_clone_back']); + } + $theme_data = xs_generate_themeinfo($theme_rowset, $export, $exportas, $total); + // prepare to pack + $pack_error = ''; + $pack_list = array(); + $pack_replace = array('./theme_info.cfg' => $theme_data); + // pack style + for($i = 0; $i < count($theme_rowset); $i++) + { + $id = $theme_rowset[$i]['themes_id']; + $theme_name = $theme_rowset[$i]['style_name']; + for($j=0; $j<$total; $j++) + { + if(!empty($HTTP_POST_VARS['export_style_name_'.$j]) && $HTTP_POST_VARS['export_style_id_'.$j] == $id) + { + $theme_name = stripslashes($HTTP_POST_VARS['export_style_name_'.$j]); + } + } + $theme_rowset[$i]['style_name'] = $theme_name; + } + $data = pack_style($export, $exportas, $theme_rowset, ''); + // check errors + if($pack_error) + { + xs_error(str_replace('{TPL}', $export, $lang['xs_export_error']) . $pack_error . '

' . $lang['xs_clone_back']); + } + if(!$data) + { + xs_error(str_replace('{TPL}', $export, $lang['xs_export_error2']) . '

' . $lang['xs_clone_back']); + } + // save as file + $filename = 'clone_' . time() . '.tmp'; + $tmp_filename = XS_TEMP_DIR . $filename; + $f = @fopen($tmp_filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $tpl_filename, $lang['xs_error_cannot_create_tmp']) . '

' . $lang['xs_clone_back']); + } + fwrite($f, $data); + fclose($f); + // prepare import variables + $total = $count; + $HTTP_POST_VARS['total'] = $count; + $list_only = false; + $get_file = ''; + define('XS_CLONING', true); + $lang['xs_import_back'] = $lang['xs_clone_back']; + include('xs_include_import.' . $phpEx); + include('xs_include_import2.' . $phpEx); +} + + +// +// clone style menu +// +if(!empty($HTTP_GET_VARS['clone'])) +{ + $style = stripslashes($HTTP_GET_VARS['clone']); + $sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name = '" . xs_sql($style) . "' ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

' . $lang['xs_clone_back']); + } + $template->set_filenames(array('body' => XS_TPL_PATH . 'clone2.tpl')); + // clone template + $template->assign_vars(array( + 'FORM_ACTION' => append_sid('xs_clone.'.$phpEx), + 'CLONE_TEMPLATE' => htmlspecialchars($style), + 'STYLE_ID' => $theme_rowset[0]['themes_id'], + 'STYLE_NAME' => htmlspecialchars($theme_rowset[0]['style_name']), + 'TOTAL' => count($theme_rowset), + 'L_CLONE_STYLE3' => str_replace('{STYLE}', htmlspecialchars($style), $lang['xs_clone_style3']) + )); + // clone styles + for($i=0; $iassign_block_vars('styles', array( + 'ID' => $theme_rowset[$i]['themes_id'], + 'TPL' => htmlspecialchars($theme_rowset[$i]['template_name']), + 'STYLE' => htmlspecialchars($theme_rowset[$i]['style_name']), + 'L_CLONE' => str_replace('{STYLE}', htmlspecialchars($theme_rowset[$i]['style_name']), $lang['xs_clone_style2']) + )); + } + if(count($theme_rowset) == 1) + { + $template->assign_block_vars('switch_select_nostyle', array()); + if($theme_rowset[0]['style_name'] === $style) + { + $template->assign_block_vars('switch_onchange', array()); + } + } + else + { + $template->assign_block_vars('switch_select_style', array()); + for($i=0; $iassign_block_vars('switch_select_style.style', array( + 'NUM' => $i, + 'ID' => $theme_rowset[$i]['themes_id'], + 'NAME' => htmlspecialchars($theme_rowset[$i]['style_name']) + )); + } + } + $template->pparse('body'); + xs_exit(); +} + + + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLONE' => "xs_clone.{$phpEx}?clone={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} + +if($prev_id > 0) +{ + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLONE' => "xs_clone.{$phpEx}?clone={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'clone.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_config.php b/phpBB2/admin/xs_config.php new file mode 100644 index 0000000..348c13f --- /dev/null +++ b/phpBB2/admin/xs_config.php @@ -0,0 +1,217 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_configuration'] . '')); + +$lang['xs_config_updated_explain'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_config_updated_explain']); +$lang['xs_config_title'] = str_replace('{VERSION}', $template->xs_versiontxt, $lang['xs_config_title']); +$lang['xs_config_warning_explain'] = str_replace('{URL}', append_sid('xs_chmod.'.$phpEx), $lang['xs_config_warning_explain']); +$lang['xs_config_back'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_config_back']); + +// +// Updating configuration +// +if(isset($HTTP_POST_VARS['submit']) && !defined('DEMO_MODE')) +{ + $vars = array('xs_use_cache', 'xs_auto_compile', 'xs_auto_recompile', 'xs_php', 'xs_def_template', 'xs_check_switches', 'xs_warn_includes', 'xs_add_comments', 'xs_ftp_host', 'xs_ftp_login', 'xs_ftp_path', 'xs_shownav'); + // checking navigation config + $shownav = 0; + for($i=0; $iassign_block_vars('left_refresh', array( + 'ACTION' => append_sid('index.' . $phpEx . '?pane=left') + )); + } + $HTTP_POST_VARS['xs_shownav'] = $shownav; + // checking submitted data + $update_time = false; + foreach($vars as $var) + { + $new[$var] = stripslashes(trim($HTTP_POST_VARS[$var])); + if(($var == 'xs_auto_recompile') && !$new['xs_auto_compile']) + { + $new[$var] = 0; + } + if($board_config[$var] !== $new[$var]) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '" . xs_sql($new[$var]) . "' WHERE config_name = '{$var}'"; + if( !$db->sql_query($sql) ) + { + xs_error(str_replace('{VAR}', $var, $lang['xs_config_sql_error']) . '

' . $lang['xs_config_back'], __LINE__, __FILE__); + } + $board_config[$var] = $new[$var]; + if($var === 'xs_check_switches') + { + $update_time = true; + } + } + } + if($update_time) + { + $board_config['xs_template_time'] = time() + 10; // set time 10 seconds in future in case if some tpl file would be compiled right now with current settings + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '" . $board_config['xs_template_time'] . "' WHERE config_name = 'xs_template_time'"; + if( !$db->sql_query($sql) ) + { + xs_error(str_replace('{VAR}', 'xs_template_time', $lang['xs_config_sql_error']) . '

' . $lang['xs_config_back'], __LINE__, __FILE__); + } + } + // update config cache + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + if ( !empty($config) ) + { + $config->read(true); + } + } + $template->assign_block_vars('switch_updated', array()); + $template->load_config($template->root, false); +} + +// check ftp configuration +$xs_ftp_host = $board_config['xs_ftp_host']; +if(empty($xs_ftp_host) && !empty($HTTP_SERVER_VARS['HTTP_HOST'])) +{ + $str = $HTTP_SERVER_VARS['HTTP_HOST']; + $template->assign_vars(array( + 'HOST_GUESS' => str_replace(array('{HOST}', '{CLICK}'), array($str, 'document.config.xs_ftp_host.value=\''.$str.'\''), $lang['xs_ftp_host_guess']) + )); +} +$dir = getcwd(); +$xs_ftp_login = $board_config['xs_ftp_login']; +if(empty($xs_ftp_login)) +{ + if(substr($dir, 0, 6) === '/home/') + { + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, 0, $pos); + $template->assign_vars(array( + 'LOGIN_GUESS' => str_replace(array('{LOGIN}', '{CLICK}'), array($str, 'document.config.xs_ftp_login.value=\''.$str.'\''), $lang['xs_ftp_login_guess']) + )); + } + } +} +$xs_ftp_path = $board_config['xs_ftp_path']; +if(empty($xs_ftp_path)) +{ + if(substr($dir, 0, 6) === '/home/'); + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, $pos + 1); + $pos = strrpos($str, 'admin'); + if($pos) + { + $str = substr($str, 0, $pos-1); + $template->assign_vars(array( + 'PATH_GUESS' => str_replace(array('{PATH}', '{CLICK}'), array($str, 'document.config.xs_ftp_path.value=\''.$str.'\''), $lang['xs_ftp_path_guess']) + )); + } + } +} + +$template->assign_vars(array( + 'XS_USE_CACHE_0' => $board_config['xs_use_cache'] ? '' : ' checked="checked"', + 'XS_USE_CACHE_1' => $board_config['xs_use_cache'] ? ' checked="checked"' : '', + 'XS_AUTO_COMPILE_0' => $board_config['xs_auto_compile'] ? '' : ' checked="checked"', + 'XS_AUTO_COMPILE_1' => $board_config['xs_auto_compile'] ? ' checked="checked"' : '', + 'XS_AUTO_RECOMPILE_0' => $board_config['xs_auto_recompile'] ? '' : ' checked="checked"', + 'XS_AUTO_RECOMPILE_1' => $board_config['xs_auto_recompile'] ? ' checked="checked"' : '', + 'XS_PHP' => htmlspecialchars($board_config['xs_php']), + 'XS_DEF_TEMPLATE' => htmlspecialchars($board_config['xs_def_template']), + 'XS_CHECK_SWITCHES_0' => !$board_config['xs_check_switches'] ? ' checked="checked"' : '', // no check + 'XS_CHECK_SWITCHES_1' => $board_config['xs_check_switches'] == 1 ? ' checked="checked"' : '', // smart check + 'XS_CHECK_SWITCHES_2' => $board_config['xs_check_switches'] == 2 ? ' checked="checked"' : '', // simple check + 'XS_WARN_INCLUDES_0' => $board_config['xs_warn_includes'] ? '' : ' checked="checked"', + 'XS_WARN_INCLUDES_1' => $board_config['xs_warn_includes'] ? ' checked="checked"' : '', + 'XS_ADD_COMMENTS_0' => $board_config['xs_add_comments'] ? '' : ' checked="checked"', + 'XS_ADD_COMMENTS_1' => $board_config['xs_add_comments'] ? ' checked="checked"' : '', + 'XS_FTP_HOST' => defined('DEMO_MODE') ? '' : $xs_ftp_host, + 'XS_FTP_LOGIN' => defined('DEMO_MODE') ? '' : $xs_ftp_login, + 'XS_FTP_PATH' => defined('DEMO_MODE') ? '' : $xs_ftp_path, + 'FORM_ACTION' => append_sid('xs_config.' . $phpEx), + )); + +for($i=0; $iassign_block_vars('shownav', array( + 'NUM' => $i, + 'LABEL' => $lang['xs_config_shownav'][$i], + 'CHECKED' => (($board_config['xs_shownav'] & $num) > 0) ? 'checked="checked"' : '' + )); + } +} + +// test cache +$tpl_filename = $template->make_filename('_xs_test.tpl'); +$cache_filename = $template->make_filename_cache($tpl_filename); +$str = ''; +if(!xs_check_cache($cache_filename)) +{ + $template->assign_block_vars('switch_xs_warning', array()); +} +@unlink($cache_filename); +$debug_data = $str; +$template->assign_vars(array( + 'XS_DEBUG_HDR1' => sprintf($lang['xs_check_hdr'], '_xs_test.tpl'), + 'XS_DEBUG_FILENAME1' => $tpl_filename, + 'XS_DEBUG_FILENAME2' => $cache_filename, + 'XS_DEBUG_DATA' => $debug_data, + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'config.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_download.php b/phpBB2/admin/xs_download.php new file mode 100644 index 0000000..0732995 --- /dev/null +++ b/phpBB2/admin/xs_download.php @@ -0,0 +1,167 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_import_styles'] . '')); +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_download_styles'] . '')); + +// submit url +if(isset($HTTP_GET_VARS['url']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['url']); + $var = 'xs_downloads_' . $id; + $import_data = array( + 'host' => $HTTP_SERVER_VARS['HTTP_HOST'], + 'port' => $HTTP_SERVER_VARS['SERVER_PORT'], + 'url' => str_replace('xs_download.', 'xs_frameset.', $HTTP_SERVER_VARS['PHP_SELF']), + 'session' => $userdata['session_id'], + 'xs' => $template->xs_versiontxt, + 'style' => STYLE_HEADER_VERSION, + ); + $str = ''; + $message = $lang['xs_import_download_warning'] . '

' . $str . '

' . str_replace('{URL}', append_sid('xs_download.'.$phpEx), $lang['xs_download_back']); + xs_message($lang['Information'], $message); +} + + +if(isset($HTTP_GET_VARS['edit'])) +{ + $id = intval($HTTP_GET_VARS['edit']); + $template->assign_block_vars('edit', array( + 'ID' => $id, + 'TITLE' => $board_config['xs_downloads_title_'.$id], + 'URL' => $board_config['xs_downloads_'.$id] + )); +} + +if(isset($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_POST_VARS['edit']); + $update = array(); + if(!empty($HTTP_POST_VARS['edit_delete'])) + { + // delete link + $total = $board_config['xs_downloads_count']; + $update['xs_downloads_count'] = $total - 1; + for($i=$id; $i<($total-1); $i++) + { + $update['xs_downloads_'.$i] = $update['xs_downloads_'.($i+1)]; + $update['xs_downloads_title_'.$i] = $update['xs_downloads_title_'.($i+1)]; + } + $update['xs_downloads_'.($total-1)] = ''; + $update['xs_downloads_title_'.($total-1)] = ''; + } + else + { + $update['xs_downloads_'.$id] = stripslashes($HTTP_POST_VARS['edit_url']); + $update['xs_downloads_title_'.$id] = stripslashes($HTTP_POST_VARS['edit_title']); + } + foreach($update as $var => $value) + { + if(isset($board_config[$var])) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . xs_sql($value) . "' WHERE config_name='" . $var . "'"; + } + else + { + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . $var . "', '" . xs_sql($value) . "')"; + } + $db->sql_query($sql); + $board_config[$var] = $value; + } + // update config cache + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + if(!empty($config)) + { + $config->read(true); + } + } +} + +if(!empty($HTTP_POST_VARS['add_url']) && !defined('DEMO_MODE')) +{ + $id = $board_config['xs_downloads_count']; + $update = array(); + $update['xs_downloads_'.$id] = stripslashes($HTTP_POST_VARS['add_url']); + $update['xs_downloads_title_'.$id] = stripslashes($HTTP_POST_VARS['add_title']); + $update['xs_downloads_count'] = $board_config['xs_downloads_count'] + 1; + foreach($update as $var => $value) + { + if(isset($board_config[$var])) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . xs_sql($value) . "' WHERE config_name='" . $var . "'"; + } + else + { + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . $var . "', '" . xs_sql($value) . "')"; + } + $db->sql_query($sql); + $board_config[$var] = $value; + } + // update config cache + if( defined('XS_MODS_CATEGORY_HIERARCHY210') && !empty($config) ) + { + $config->read(true); + } +} + +for($i=0; $i<$board_config['xs_downloads_count']; $i++) +{ + $row_class = $xs_row_class[$i % 2]; + $template->assign_block_vars('url', array( + 'ROW_CLASS' => $row_class, + 'NUM' => $i, + 'NUM1' => $i + 1, + 'URL' => htmlspecialchars($board_config['xs_downloads_'.$i]), + 'TITLE' => htmlspecialchars($board_config['xs_downloads_title_'.$i]), + 'U_DOWNLOAD' => append_sid('xs_download.'.$phpEx.'?url='.$i), + 'U_EDIT' => append_sid('xs_download.'.$phpEx.'?edit='.$i), + )); +} + +$template->assign_vars(array( + 'U_POST' => append_sid('xs_download.'.$phpEx) + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'downloads.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_edit.php b/phpBB2/admin/xs_edit.php new file mode 100644 index 0000000..24e5bee --- /dev/null +++ b/phpBB2/admin/xs_edit.php @@ -0,0 +1,513 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + + +// check filter +$filter = isset($HTTP_GET_VARS['filter']) ? stripslashes($HTTP_GET_VARS['filter']) : (isset($HTTP_POST_VARS['filter']) ? stripslashes($HTTP_POST_VARS['filter']) : ''); +if(isset($HTTP_POST_VARS['filter_update'])) +{ + $filter_data = array( + 'ext' => trim(stripslashes($HTTP_POST_VARS['filter_ext'])), + 'data' => trim(stripslashes($HTTP_POST_VARS['filter_data'])) + ); + $filter = serialize($filter_data); +} +else +{ + $filter_data = @unserialize($filter); + if(empty($filter_data['ext'])) + { + $filter_data['ext'] = ''; + } + if(empty($filter_data['data'])) + { + $filter_data['data'] = ''; + } +} +$filter_str = '?filter=' . urlencode($filter); + + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_templates'] . '')); + +$editable = array('.htm', '.html', '.tpl', '.css', '.txt', '.cfg', '.xml', '.php', '.htaccess'); + +// get current directory +$current_dir = isset($HTTP_GET_VARS['dir']) ? stripslashes($HTTP_GET_VARS['dir']) : (isset($HTTP_POST_VARS['dir']) ? stripslashes($HTTP_POST_VARS['dir']) : 'templates'); +$current_dir = xs_fix_dir($current_dir); +if(defined('DEMO_MODE') && substr($current_dir, 0, 9) !== 'templates') +{ // limit access to "templates" in demo mode + $current_dir = 'templates'; +} +$dirs = explode('/', $current_dir); +for($i=0; $iassign_vars(array( + 'FILTER_EXT' => htmlspecialchars($filter_data['ext']), + 'FILTER_DATA' => htmlspecialchars($filter_data['data']), + 'FILTER_URL' => append_sid('xs_edit.'.$phpEx), + 'FILTER_DIR' => htmlspecialchars($current_dir), + 'S_FILTER' => '' + )); + + +/* +* show edit form +*/ +if(isset($HTTP_GET_VARS['edit']) && !empty($HTTP_GET_VARS['restore'])) +{ + $file = stripslashes($HTTP_GET_VARS['edit']); + $file = xs_fix_dir($file); + $fullfile = $current_dir_root . $file; + $localfile = '../' . $fullfile; + $hash = md5($localfile); + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['restore']) . XS_BACKUP_EXT; + if(@file_exists($backup_name)) + { + // restore file + $HTTP_POST_VARS['edit'] = $HTTP_GET_VARS['edit']; + $HTTP_POST_VARS['content'] = addslashes(implode('', @file($backup_name))); + unset($HTTP_GET_VARS['edit']); + $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); + $return_url = $return_file . '

' . $return_dir; + } +} + + +/* +* save modified file +*/ +if(isset($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) +{ + $file = stripslashes($HTTP_POST_VARS['edit']); + $content = stripslashes($HTTP_POST_VARS['content']); + $fullfile = $current_dir_root . $file; + $localfile = '../' . $fullfile; + if(!empty($HTTP_POST_VARS['trim'])) + { + $content = trim($content); + } + if(!empty($HTTP_POST_FILES['upload']['tmp_name']) && @file_exists($HTTP_POST_FILES['upload']['tmp_name'])) + { + $content = @implode('', @file($HTTP_POST_FILES['upload']['tmp_name'])); + } + $params = array( + 'edit' => $file, + 'dir' => $current_dir, + 'content' => $content, + 'filter' => $filter, + ); + $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); + $return_url = $return_file . '

' . $return_dir; + // get ftp configuration + $write_local = false; + if(!get_ftp_config(append_sid('xs_edit.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_edit.'.$phpEx), $params, true); + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $local_filename = $localfile; + } + else + { + $local_filename = XS_TEMP_DIR . 'edit_' . time() . '.tmp'; + } + $f = @fopen($local_filename, 'wb'); + if(!$f) + { + xs_error($lang['xs_error_cannot_open'] . '

' . $return_url); + } + fwrite($f, $content); + fclose($f); + if($write_local) + { + xs_message($lang['Information'], $lang['xs_edit_file_saved'] . '

' . $return_url); + } + // generate ftp actions + $actions = array(); + // chdir to template directory + for($i=0; $i 'chdir', + 'dir' => $dirs[$i] + ); + } + $actions[] = array( + 'command' => 'upload', + 'local' => $local_filename, + 'remote' => $fullfile + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); + echo ""; + @unlink($local_filename); + if($res) + { + xs_message($lang['Information'], $lang['xs_edit_file_saved'] . '

' . $return_url); + } + xs_error($ftp_error . '

' . $return_url); +} + + +/* +* show edit form +*/ +if(isset($HTTP_GET_VARS['edit'])) +{ + $file = stripslashes($HTTP_GET_VARS['edit']); + $file = xs_fix_dir($file); + $fullfile = $current_dir_root . $file; + $localfile = '../' . $fullfile; + $hash = md5($localfile); + if(!@file_exists($localfile)) + { + xs_error($lang['xs_edit_not_found'] . '

' . $return_url); + } + $content = @file($localfile); + if(!is_array($content)) + { + xs_error($lang['xs_edit_not_found'] . '

' . $return_url); + } + $content = implode('', $content); + if(isset($HTTP_GET_VARS['download']) && !defined('DEMO_MODE')) + { + xs_download_file($file, $content); + xs_exit(); + } + if(isset($HTTP_GET_VARS['downloadbackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['downloadbackup']) . XS_BACKUP_EXT; + xs_download_file($file, implode('', @file($backup_name))); + xs_exit(); + } + $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); + $return_url = $return_file . '

' . $return_dir; + $template->assign_vars(array( + 'U_ACTION' => append_sid('xs_edit.'.$phpEx), + 'U_BROWSE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir)), + 'U_EDIT' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), + 'U_BACKUP' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dobackup=1&dir='.urlencode($current_dir).'&edit='.urlencode($file)), + 'U_DOWNLOAD' => append_sid('xs_edit.'.$phpEx.$filter_str.'&download=1&dir='.urlencode($current_dir).'&edit='.urlencode($file)), + 'CURRENT_DIR' => htmlspecialchars($current_dir_full), + 'DIR' => htmlspecialchars($current_dir), + 'FILE' => htmlspecialchars($file), + 'FULLFILE' => htmlspecialchars($fullfile), + 'CONTENT' => defined('DEMO_MODE') ? $lang['xs_error_demo_edit'] : htmlspecialchars($content), + ) + ); + if($current_dir_full) + { + $template->assign_block_vars('nav_left',array('ITEM' => '» ' . htmlspecialchars($current_dir_full) . '')); + } + + // show tree + $arr = array(); + $template->assign_block_vars('tree', array( + 'ITEM' => 'phpBB', + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='), + 'SEPARATOR' => '', + )); + $back_dir = ''; + for($i=0; $i ($i + 1)) + { + $back_dir = $str; + } + $template->assign_block_vars('tree', array( + 'ITEM' => htmlspecialchars($dirs[$i]), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), + 'SEPARATOR' => '/', + )); + } + + // view backup + if(!empty($HTTP_GET_VARS['viewbackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['viewbackup']) . XS_BACKUP_EXT; + $template->assign_vars(array( + 'CONTENT' => implode('', @file($backup_name)) + ) + ); + } + + // save backup + if(isset($HTTP_GET_VARS['dobackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . time() . XS_BACKUP_EXT; + $f = @fopen($backup_name, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $backup_name, $lang['xs_error_cannot_create_tmp']) . '

' . $return_url); + } + fwrite($f, $content); + fclose($f); + @chmod($backup_name, 0777); + } + + // delete backup + if(isset($HTTP_GET_VARS['delbackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['delbackup']) . XS_BACKUP_EXT; + @unlink($backup_name); + } + + // show backups + $backups = array(); + $res = opendir(XS_TEMP_DIR); + $match = XS_BACKUP_PREFIX . $hash . '.'; + $match_len = strlen($match); + while(($f = readdir($res)) !== false) + { + if(substr($f, 0, $match_len) === $match) + { + $str = substr($f, $match_len, strlen($f) - $match_len - strlen(XS_BACKUP_EXT)); + if(intval($str)) + { + $backups[] = intval($str); + } + } + } + closedir($res); + sort($backups); + for($i=0; $iassign_block_vars('backup', array( + 'TIME' => create_date($board_config['default_dateformat'], $backups[$i], $board_config['board_timezone']), + 'U_RESTORE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&restore='.$backups[$i]), + 'U_DELETE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&delbackup='.$backups[$i]), + 'U_DOWNLOAD' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&downloadbackup='.$backups[$i]), + 'U_VIEW' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&viewbackup='.$backups[$i]), + ) + ); + } + + // show template + $template->set_filenames(array('body' => XS_TPL_PATH . 'edit_file.tpl')); + $template->pparse('body'); + xs_exit(); +} + + +/* +* show file browser +*/ + +// show tree +$arr = array(); +$template->assign_block_vars('tree', array( + 'ITEM' => 'phpBB', + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='), + 'SEPARATOR' => '', + )); +$back_dir = ''; +for($i=0; $i ($i + 1)) + { + $back_dir = $str; + } + $template->assign_block_vars('tree', array( + 'ITEM' => htmlspecialchars($dirs[$i]), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), + 'SEPARATOR' => '/', + )); +} + +// get list of files/directories +$list_files = array(); // non-editable files +$list_files_editable = array(); // editable files +$list_dirs = array(); // directories +$res = @opendir('../' . $current_dir_full); +if(!$res) +{ + xs_error(str_replace('{DIR}', $current_dir_full, $lang['xs_export_no_open_dir']) . '

' . $return_url_root); +} +while(($file = readdir($res)) !== false) +{ + if($file !== '.' && $file !== '..') + { + $filename = '../' . ($current_dir_full ? $current_dir_full . '/' : '') . $file; + if(is_dir($filename)) + { + $list_dirs[] = $file; + } + else + { + $pos = strrpos($file, '.'); + if($pos !== false) + { + $ext = strtolower(substr($file, $pos)); + $ext1 = substr($ext, 1); + if((!$filter_data['ext'] && xs_in_array($ext, $editable)) || $ext1 === $filter_data['ext']) + { + // check filter + if($filter_data['data']) + { + $content = @implode('', @file($filename)); + if(strpos($content, $filter_data['data']) !== false) + { + $list_files_editable[] = $file; + } + } + else + { + $list_files_editable[] = $file; + } + } + else + { + $list_files[] = $file; + } + } + } + } +} +closedir($res); + +$list_dirs_count = count($list_dirs); +$list_files_count = count($list_files) + count($list_files_editable); + +if($current_dir || count($list_dirs)) +{ + $template->assign_block_vars('begin_dirs', array( + 'COUNT' => count($list_dirs), + 'L_COUNT' => str_replace('{COUNT}', count($list_dirs), $lang['xs_fileman_dircount']) + )); +} +else +{ + $template->assign_block_vars('begin_nodirs', array()); +} +if($current_dir) +{ + $template->assign_block_vars('begin_dirs.dir', array( + 'NAME' => '..', + 'FULLNAME' => htmlspecialchars($back_dir ? $back_dir . '/' : ''), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($back_dir)), + ) + ); +} + +// show subdirectories +sort($list_dirs); +for($i=0; $iassign_block_vars('begin_dirs.dir', array( + 'NAME' => htmlspecialchars($dir), + 'FULLNAME' => htmlspecialchars($current_dir_root . $dir), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), + ) + ); +} + +// show editable files +if(count($list_files_editable)) +{ + $template->assign_block_vars('begin_files', array('COUNT' => count($list_files_editable))); +} +else +{ + $template->assign_block_vars('begin_nofiles', array('COUNT' => count($list_files_editable))); +} +sort($list_files_editable); +// get today start +$today = floor((time() + 3600 * $board_config['board_timezone']) / 86400) * 86400 - (3600 * $board_config['board_timezone']); +for($i=0; $iassign_block_vars('begin_files.file', array( + 'ROW_CLASS' => $row_class, + 'NAME' => htmlspecialchars($file), + 'FULLNAME' => htmlspecialchars($fullfile), + 'SIZE' => @filesize($localfile), + 'TIME' => $filetime, + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)) + ) + ); + if($t < $today) + { + $template->assign_block_vars('begin_files.file.old', array()); + } + else + { + $template->assign_block_vars('begin_files.file.today', array()); + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'edit.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_edit_data.php b/phpBB2/admin/xs_edit_data.php new file mode 100644 index 0000000..79915f3 --- /dev/null +++ b/phpBB2/admin/xs_edit_data.php @@ -0,0 +1,393 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_styles_data'] . '')); + +$lang['xs_edittpl_back_list'] = str_replace('{URL}', append_sid('xs_edit_data.'.$phpEx), $lang['xs_edittpl_back_list']); + +function xs_empty_name() +{ + global $db; + $sql = "SELECT * FROM " . THEMES_NAME_TABLE . " LIMIT 0, 1"; + if(!$result = $db->sql_query($sql)) + { + $data = array(); + } + $data = $db->sql_fetchrow($result); + if($data === false || !@count($data)) + { + $data = array( + 'themes_id' => 0, + 'tr_color1_name' => '', + 'tr_color2_name' => '', + 'tr_color3_name' => '', + 'tr_class1_name' => '', + 'tr_class2_name' => '', + 'tr_class3_name' => '', + 'th_color1_name' => '', + 'th_color2_name' => '', + 'th_color3_name' => '', + 'th_class1_name' => '', + 'th_class2_name' => '', + 'th_class3_name' => '', + 'td_color1_name' => '', + 'td_color2_name' => '', + 'td_color3_name' => '', + 'td_class1_name' => '', + 'td_class2_name' => '', + 'td_class3_name' => '', + 'fontface1_name' => '', + 'fontface2_name' => '', + 'fontface3_name' => '', + 'fontsize1_name' => '', + 'fontsize2_name' => '', + 'fontsize3_name' => '', + 'fontcolor1_name' => '', + 'fontcolor2_name' => '', + 'fontcolor3_name' => '', + 'span_class1_name' => '', + 'span_class2_name' => '', + 'span_class3_name' => '' + ); + + } + $arr = array(); + foreach($data as $var => $value) + { + if($var !== 'themes_id') + { + $arr[$var] = ''; + } + } + return $arr; +} + +function xs_get_vars($theme) +{ + $arr1 = array(); + $arr2 = array(); + $vars_100 = array('head_stylesheet', 'body_background'); + $vars_50 = array('fontface'); + $vars_30 = array('style_name'); + $vars_25 = array('tr_class', 'th_class', 'td_class', 'span_class'); + $vars_6 = array('body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color', 'th_color', 'td_color', 'fontcolor'); + $vars_5 = array('img_size_poll', 'img_size_privmsg'); + $vars_4 = array('fontsize', 'theme_public'); + foreach($theme as $var => $value) + { + if(!is_integer($var) && $var !== 'themes_id' && $var !== 'template_name') + { + // editable variable + $len = 0; + $sub = substr($var, 0, strlen($var) - 1); + if(xs_in_array($var, $vars_100) || xs_in_array($sub, $vars_100)) + { + $len = 100; + } + elseif(xs_in_array($var, $vars_50) || xs_in_array($sub, $vars_50)) + { + $len = 50; + } + elseif(xs_in_array($var, $vars_30) || xs_in_array($sub, $vars_30)) + { + $len = 30; + } + elseif(xs_in_array($var, $vars_25) || xs_in_array($sub, $vars_25)) + { + $len = 25; + } + elseif(xs_in_array($var, $vars_6) || xs_in_array($sub, $vars_6)) + { + $len = 6; + } + elseif(xs_in_array($var, $vars_5) || xs_in_array($sub, $vars_5)) + { + $len = 5; + } + elseif(xs_in_array($var, $vrs_4) || xs_in_array($sub, $vars_4)) + { + $len = 4; + } + elseif(strpos($var, 'class')) + { + $len = 25; + } + elseif(strpos($var, 'color')) + { + $len = 6; + } + if($len) + { + $item = array( + 'var' => $var, + 'len' => $len, + 'color' => $len == 6 ? true : false, + 'font' => $len == 25 ? true : false, + ); + if($var === 'style_name' || $var === 'head_stylesheet' || $var === 'body_background') + { + $arr1[$var] = $item; + } + else + { + $arr2[$var] = $item; + } + } + } + } + krsort($arr1); + ksort($arr2); + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + // force sort for the added fields + $added = array( + 'style_name' => array(), + 'images_pack' => array('var' => $item['images_pack'], 'len' => 100, 'color' => false, 'font' => false), + 'custom_tpls' => array('var' => $item['custom_tpls'], 'len' => 100, 'color' => false, 'font' => false), + 'head_stylesheet' => array(), + ); + $arr1 = array_merge($added, $arr1); + // we need to add lang entries + global $lang; + $lang['xs_data_images_pack'] = $lang['Images_pack']; + $lang['xs_data_images_pack_explain'] = $lang['Images_pack_explain']; + $lang['xs_data_custom_tpls'] = $lang['Custom_tpls']; + $lang['xs_data_custom_tpls_explain'] = $lang['Custom_tpls_explain']; + } + return array_merge($arr1, $arr2); +} + +// +// submit +// +if(!empty($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_POST_VARS['edit']); + $lang['xs_edittpl_back_edit'] = str_replace('{URL}', append_sid('xs_edit_data.'.$phpEx.'?edit='.$id), $lang['xs_edittpl_back_edit']); + $data_item = array(); + $data_item_update = array(); + $data_name = array(); + $data_name_insert_vars = array('themes_id'); + $data_name_insert_values = array($id); + $data_name_update = array(); + foreach($HTTP_POST_VARS as $var => $value) + { + if(substr($var, 0, 5) === 'edit_') + { + $var = substr($var, 5); + $value = stripslashes($value); + $data_item[$var] = $value; + $data_item_update[] = $var . "='" . xs_sql($value) . "'"; + } + elseif(substr($var, 0, 5) === 'name_') + { + $var = substr($var, 5).'_name'; + $value = stripslashes($value); + $data_name[$var] = $value; + $data_name_update[] = $var . "='" . xs_sql($value) . "'"; + $data_name_insert_vars[] = $var; + $data_name_insert_values[] = xs_sql($value); + } + } + // update item + $sql = "UPDATE " . THEMES_TABLE . " SET " . implode(',', $data_item_update) . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_edittpl_error_updating'] . '

' . $lang['xs_edittpl_back_edit'] . '

' . $lang['xs_edittpl_back_list'], __LINE__, __FILE__); + } + // check if there is name + $sql = "SELECT themes_id FROM " . THEMES_NAME_TABLE . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (" . implode(',', $data_name_insert_vars) . ") VALUES ('" . implode("', '", $data_name_insert_values) . "')"; + } + $item = $db->sql_fetchrow($result); + if(!is_array($item)) + { + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (" . implode(',', $data_name_insert_vars) . ") VALUES ('" . implode("', '", $data_name_insert_values) . "')"; + } + else + { + $sql = "UPDATE " . THEMES_NAME_TABLE . " SET " . implode(',', $data_name_update) . " WHERE themes_id='{$id}'"; + } + $db->sql_query($sql); + // regen themes cache + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + if ( empty($themes) ) + { + $themes = new themes(); + } + if ( !empty($themes) ) + { + $themes->read(true); + } + } + xs_message($lang['Information'], $lang['xs_edittpl_style_updated'] . '

' . $lang['xs_edittpl_back_edit'] . '

' . $lang['xs_edittpl_back_list']); +} + +// +// edit style +// +if(!empty($HTTP_GET_VARS['edit'])) +{ + $id = intval($HTTP_GET_VARS['edit']); + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); + } + $item = $db->sql_fetchrow($result); + if(empty($item['themes_id'])) + { + xs_error($lang['xs_invalid_style_id'] . '

' . $lang['xs_edittpl_back_list']); + } + $sql = "SELECT * FROM " . THEMES_NAME_TABLE . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + $item_name = array(); + } + $item_name = $db->sql_fetchrow($result); + if($item_name === false || !@count($item_name)) + { + $item_name = xs_empty_name(); + } + $vars = xs_get_vars($item); + // show variables + $template->assign_vars(array( + 'U_ACTION' => append_sid('xs_edit_data.'.$phpEx), + 'TPL' => htmlspecialchars($item['template-name']), + 'STYLE' => htmlspecialchars($item['style_name']), + 'ID' => $id + ) + ); + // all variables + $i = 0; + foreach($vars as $var => $value) + { + $row_class = $xs_row_class[$i % 2]; + $i++; + if(isset($lang['xs_data_'.$var])) + { + $text = $lang['xs_data_'.$var]; + } + else + { + $str = substr($var, 0, strlen($var) - 1); + $str_fc = substr($var, 0, strlen($var) - 2); + if(isset($lang['xs_data_'.$str_fc])) + { + $str1 = substr($var, strlen($var) - 2); + $text = sprintf($lang['xs_data_'.$str_fc], $str1); + } + else if(isset($lang['xs_data_'.$str])) + { + $str1 = substr($var, strlen($var) - 1); + $text = sprintf($lang['xs_data_'.$str], $str1); + } + else + { + $text = sprintf($lang['xs_data_unknown'], $var); + } + } + $template->assign_block_vars('row', array( + 'ROW_CLASS' => $row_class, + 'VAR' => $var, + 'VALUE' => isset($item[$var]) ? htmlspecialchars($item[$var]) : '', + 'LEN' => $value['len'], + 'SIZE' => $value['len'] < 10 ? 10 : 30, + 'TEXT' => htmlspecialchars($text), + 'EXPLAIN' => isset($lang['xs_data_' . $var . '_explain']) ? $lang['xs_data_' . $var . '_explain'] : '', + ) + ); + if($value['color']) + { + $template->assign_block_vars('row.color', array()); + } + if($value['font']) + { + $template->assign_block_vars('row.font', array()); + } + if(isset($item_name[$var.'_name'])) + { + $template->assign_block_vars('row.name', array( + 'DATA' => $item_name[$var.'_name'] + ) + ); + } + else + { + $template->assign_block_vars('row.noname', array()); + } + } + $template->set_filenames(array('body' => XS_TPL_PATH . 'edit_data.tpl')); + $template->pparse('body'); + xs_exit(); +} + + +// +// show list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY style_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'edit_data_list.tpl')); +for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => htmlspecialchars($item['template_name']), + 'STYLE' => htmlspecialchars($item['style_name']), + 'U_EDIT' => append_sid('xs_edit_data.'.$phpEx.'?edit='.$item['themes_id']) + ) + ); +} + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_export.php b/phpBB2/admin/xs_export.php new file mode 100644 index 0000000..b4a4563 --- /dev/null +++ b/phpBB2/admin/xs_export.php @@ -0,0 +1,320 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_export_styles'] . '')); + +$lang['xs_export_back'] = str_replace('{URL}', append_sid('xs_export.'.$phpEx), $lang['xs_export_back']); + +// +// Check required functions +// +if(!@function_exists('gzcompress')) +{ + xs_error($lang['xs_import_nogzip']); +} + + +// +// Export page +// +$export = isset($HTTP_GET_VARS['export']) ? $HTTP_GET_VARS['export'] : ''; +$export = xs_tpl_name($export); +if(!empty($export) && @file_exists($phpbb_root_path . $template_dir . $export . '/theme_info.cfg')) +{ + // Get list of styles + $sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name = '$export' ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

' . $lang['xs_export_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

' . $lang['xs_export_back']); + } + $template->set_filenames(array('body' => XS_TPL_PATH . 'export2.tpl')); + $xs_send_method = isset($board_config['xs_export_data']) ? $board_config['xs_export_data'] : ''; + $xs_send = @unserialize($xs_send_method); + $xs_send_method = $xs_send['method'] == 'ftp' ? 'ftp' : ($xs_send['method'] == 'file' ? 'file' : 'save'); + $template->assign_vars(array( + 'FORM_ACTION' => append_sid('xs_export.'.$phpEx), + 'EXPORT_TEMPLATE' => htmlspecialchars($export), + 'STYLE_ID' => $theme_rowset[0]['themes_id'], + 'STYLE_NAME' => htmlspecialchars($theme_rowset[0]['style_name']), + 'TOTAL' => count($theme_rowset), + 'SEND_METHOD_'.strtoupper($xs_send_method) => ' checked="checked"', + 'SEND_DATA_DIR' => isset($xs_send['dir']) ? htmlspecialchars($xs_send['dir']) : '', + 'SEND_DATA_HOST' => isset($xs_send['host']) ? htmlspecialchars($xs_send['host']) : '', + 'SEND_DATA_LOGIN' => isset($xs_send['login']) ? htmlspecialchars($xs_send['login']) : '', + 'SEND_DATA_FTPDIR' => isset($xs_send['ftpdir']) ? htmlspecialchars($xs_send['ftpdir']) : '', + 'L_TITLE' => str_replace('{TPL}', $export, $lang['xs_export_style_title']), + )); + if(count($theme_rowset) == 1) + { + $template->assign_block_vars('switch_select_nostyle', array()); + } + else + { + $template->assign_block_vars('switch_select_style', array()); + for($i=0; $iassign_block_vars('switch_select_style.style', array( + 'NUM' => $i, + 'ID' => $theme_rowset[$i]['themes_id'], + 'NAME' => htmlspecialchars($theme_rowset[$i]['style_name']) + )); + } + } + $template->pparse('body'); + xs_exit(); +} + +// +// Export style +// +$export = isset($HTTP_POST_VARS['export']) ? $HTTP_POST_VARS['export'] : ''; +$export = xs_tpl_name($export); +if(!empty($export) && @file_exists($phpbb_root_path . $template_dir . $export . '/theme_info.cfg') && !defined('DEMO_MODE')) +{ + $total = intval($HTTP_POST_VARS['total']); + $comment = substr(stripslashes($HTTP_POST_VARS['export_comment']), 0, 255); + $list = array(); + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['export_style_'.$i])) + { + $list[] = intval($HTTP_POST_VARS['export_style_id_'.$i]); + } + } + if(!count($list)) + { + xs_error($lang['xs_export_noselect_themes'] . '

' . $lang['xs_export_back']); + } + // Export as... + $exportas = empty($HTTP_POST_VARS['export_template']) ? $export : $HTTP_POST_VARS['export_template']; + $exportas = xs_tpl_name($exportas); + // Generate theme_info.cfg + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE template_name = '$export' AND themes_id IN (" . implode(', ', $list) . ")"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . $lang['xs_export_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

' . $lang['xs_export_back']); + } + $theme_data = xs_generate_themeinfo($theme_rowset, $export, $exportas, $total); + + // prepare to pack + $pack_error = ''; + $pack_list = array(); + $pack_replace = array('./theme_info.cfg' => $theme_data); + + // pack style + for($i=0; $i
' . $lang['xs_export_back']); + } + if(!$data) + { + xs_error(str_replace('{TPL}', $export, $lang['xs_export_error2']) . '

' . $lang['xs_export_back']); + } + + // + // Got file. Sending it. + // + $send_method = isset($HTTP_POST_VARS['export_to']) ? $HTTP_POST_VARS['export_to'] : ''; + $export_filename = empty($HTTP_POST_VARS['export_filename']) ? $exportas . STYLE_EXTENSION : $HTTP_POST_VARS['export_filename']; + if($send_method === 'file') + { + // store on local server + $send_dir = isset($HTTP_POST_VARS['export_to_dir']) ? $HTTP_POST_VARS['export_to_dir'] : ''; + $send_dir = str_replace('\\', '/', stripslashes($send_dir)); + if(empty($send_dir)) + { + $send_dir = XS_TEMP_DIR; + } + if(substr($send_dir, strlen($send_dir) - 1) !== '/') + { + $send_dir .= '/'; + } + $filename = $send_dir . $export_filename; + $f = @fopen($filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $filename, $lang['xs_error_cannot_create_file']) . '

' . $lang['xs_export_back']); + } + @fwrite($f, $data); + @fclose($f); + set_export_method('file', array('dir' => $send_dir)); + xs_message($lang['Information'], str_replace('{FILE}', $filename, $lang['xs_export_saved']) . '

' . $lang['xs_export_back']); + } + elseif($send_method === 'ftp') + { + // upload via ftp + $ftp_host = $HTTP_POST_VARS['export_to_ftp_host']; + $ftp_login = $HTTP_POST_VARS['export_to_ftp_login']; + $ftp_pass = $HTTP_POST_VARS['export_to_ftp_pass']; + $ftp_dir = str_replace('\\', '/', $HTTP_POST_VARS['export_to_ftp_dir']); + if($ftp_dir && substr($ftp_dir, strlen($ftp_dir) - 1) !== '/') + { + $ftp_dir .= '/'; + } + // save as temporary file + $filename = XS_TEMP_DIR.'tmp_' . time() . '.tmp'; + $f = @fopen($filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $filename, $lang['xs_error_cannot_create_tmp']) . '

' . $lang['xs_export_back']); + } + @fwrite($f, $data); + @fclose($f); + // connect to ftp + $ftp = @ftp_connect($ftp_host); + if(!$ftp) + { + @unlink($filename); + xs_error($lang['xs_ftp_error_noconnect'] . '

' . $lang['xs_export_back']); + } + $res = @ftp_login($ftp, $ftp_login, $ftp_pass); + if(!$res) + { + @unlink($filename); + xs_error($lang['xs_ftp_error_login2'] . '

' . $lang['xs_export_back']); + } + if($ftp_dir) + { + @ftp_chdir($ftp, $ftp_dir); + } + $res = @ftp_put($ftp, $ftp_dir . $export_filename, $filename, FTP_BINARY); + @unlink($filename); + if(!$res) + { + xs_error($lang['xs_export_error_uploading'] . '

' . $lang['xs_export_back']); + } + set_export_method('ftp', array('host' => $ftp_host, 'login' => $ftp_login, 'ftpdir' => $ftp_dir)); + xs_message($lang['Information'], $lang['xs_export_uploaded'] . '

' . $lang['xs_export_back']); + } + // send file + xs_download_file($export_filename, $data, 'application/phpbbstyle'); + xs_exit(); +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'export.tpl')); + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} + +if($prev_id > 0) +{ + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_export_data.php b/phpBB2/admin/xs_export_data.php new file mode 100644 index 0000000..f965f0e --- /dev/null +++ b/phpBB2/admin/xs_export_data.php @@ -0,0 +1,259 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_styles_data'] . '')); + +$lang['xs_export_data_back'] = str_replace('{URL}', append_sid('xs_export_data.'.$phpEx), $lang['xs_export_data_back']); + +// +// export style +// +if(isset($HTTP_GET_VARS['export'])) +{ + $export = str_replace(array('\\', '/'), array('',''), stripslashes($HTTP_GET_VARS['export'])); + // get list of themes for style + $sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name = '$export' ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

' . $lang['xs_export_data_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

' . $lang['xs_export_data_back']); + } + if(count($theme_rowset) == 1) + { + $HTTP_POST_VARS['export'] = $HTTP_GET_VARS['export']; + $HTTP_POST_VARS['export_total'] = '1'; + $HTTP_POST_VARS['export_id_0'] = $theme_rowset[0]['themes_id']; + $HTTP_POST_VARS['export_check_0'] = 'checked'; + } + else + { + $template->set_filenames(array('body' => XS_TPL_PATH . 'export_data2.tpl')); + $template->assign_vars(array( + 'TOTAL' => count($theme_rowset), + 'EXPORT' => htmlspecialchars($export), + 'U_ACTION' => append_sid("xs_export_data.{$phpEx}") + ) + ); + for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'NUM' => $i, + 'ID' => $theme_rowset[$i]['themes_id'], + 'STYLE' => htmlspecialchars($theme_rowset[$i]['style_name']) + ) + ); + } + $template->pparse('body'); + xs_exit(); + } +} + +if(!empty($HTTP_POST_VARS['export']) && !defined('DEMO_MODE')) +{ + $export = xs_tpl_name($HTTP_POST_VARS['export']); + // get ftp configuration + $params = array('export' => $export); + $total = intval($HTTP_POST_VARS['export_total']); + $count = 0; + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['export_check_'.$i])) + { + $params['export_id_'.$count] = intval($HTTP_POST_VARS['export_id_'.$i]); + $params['export_check_'.$count] = 'checked'; + $count ++; + } + } + $params['export_total'] = $count; + if(!$count) + { + xs_error($lang['xs_export_noselect_themes'] . '

' . $lang['xs_export_data_back']); + } + $write_local = false; + if(!get_ftp_config(append_sid('xs_export_data.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_export_data.'.$phpEx), $params, true); + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $local_filename = '../templates/'. $export . '/theme_info.cfg'; + } + else + { + $local_filename = XS_TEMP_DIR . 'export_' . time() . '.tmp'; + } + // get all themes for style + $export_list = array(); + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['export_check_'.$i])) + { + $export_list[] = intval($HTTP_POST_VARS['export_id_'.$i]); + } + } + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id IN (" . implode(', ', $export_list) . ") ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'] . '

' . $lang['xs_export_data_back'], __LINE__, __FILE__); + } + $style_rowset = $db->sql_fetchrowset($result); + if(!count($style_rowset)) + { + xs_error($lang['xs_no_style_info'] . '

' . $lang['xs_export_data_back'], __LINE__, __FILE__); + } + $data = xs_generate_themeinfo($style_rowset, $export, $export, 0); + $f = @fopen($local_filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $local_filename, $lang['xs_error_cannot_create_file']) . '

' . $lang['xs_export_data_back']); + } + fwrite($f, $data); + fclose($f); + if($write_local) + { + xs_message($lang['Information'], $lang['xs_export_data_saved'] . '

' . $lang['xs_export_data_back']); + } + // generate ftp actions + $actions = array(); + // chdir to template directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => 'templates' + ); + $actions[] = array( + 'command' => 'chdir', + 'dir' => $export + ); + $actions[] = array( + 'command' => 'upload', + 'local' => $local_filename, + 'remote' => 'templates/' . $export . '/theme_info.cfg' + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); +/* echo ""; */ + @unlink($local_filename); + if($res) + { + xs_message($lang['Information'], $lang['xs_export_data_saved'] . '

' . $lang['xs_export_data_back']); + } + xs_error($ftp_error . '

' . $lang['xs_export_data_back']); +} + + + + +$template->set_filenames(array('body' => XS_TPL_PATH . 'export_data.tpl')); +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export_data.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} + +if($prev_id > 0) +{ + $str = implode('
', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export_data.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_frame_top.php b/phpBB2/admin/xs_frame_top.php new file mode 100644 index 0000000..60783dc --- /dev/null +++ b/phpBB2/admin/xs_frame_top.php @@ -0,0 +1,63 @@ +set_filenames(array('body' => XS_TPL_PATH . 'frame_top.tpl')); + +$template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_index.'.$phpEx), + 'TEXT' => $lang['xs_menu_lc'] + )); +/* $template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_download.'.$phpEx), + 'TEXT' => $lang['xs_download_styles_lc'] + )); */ +$template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_import.'.$phpEx), + 'TEXT' => $lang['xs_import_styles_lc'] + )); +$template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_install.'.$phpEx), + 'TEXT' => $lang['xs_install_styles_lc'] + )); +$template->assign_block_vars('left_nav', array( + 'URL' => 'http://www.phpbbstyles.com', + 'TEXT' => $lang['xs_support_forum_lc'] + )); + + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_frameset.php b/phpBB2/admin/xs_frameset.php new file mode 100644 index 0000000..1985aa6 --- /dev/null +++ b/phpBB2/admin/xs_frameset.php @@ -0,0 +1,101 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +define('NO_XS_HEADER', true); +include_once('xs_include.' . $phpEx); + +$action = isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : ''; +$get_data = array(); +foreach($HTTP_GET_VARS as $var => $value) +{ + if($var !== 'action' && $var !== 'sid') + { + $get_data[] = $var . '=' . urlencode(stripslashes($value)); + } +} + +// check for style download command +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'web') +{ + $action = 'import'; + $get_data[] = 'get_remote=' . urlencode(stripslashes($HTTP_POST_VARS['source'])); + if(isset($HTTP_POST_VARS['return'])) + { + $get_data[] = 'return=' . urlencode(stripslashes($HTTP_POST_VARS['return'])); + } +} + +$get_data = count($get_data) ? $phpEx . '?' . implode('&', $get_data) : $phpEx; + +$content_url = array( + 'config' => append_sid('xs_config.'.$get_data), + 'install' => append_sid('xs_install.'.$get_data), + 'uninstall' => append_sid('xs_uninstall.'.$get_data), + 'default' => append_sid('xs_styles.'.$get_data), + 'cache' => append_sid('xs_cache.'.$get_data), + 'import' => append_sid('xs_import.'.$get_data), + 'export' => append_sid('xs_export.'.$get_data), + 'clone' => append_sid('xs_clone.'.$get_data), + 'download' => append_sid('xs_download.'.$get_data), + 'edittpl' => append_sid('xs_edit.'.$get_data), + 'editdb' => append_sid('xs_edit_data.'.$get_data), + 'exportdb' => append_sid('xs_export_data.'.$get_data), + 'updates' => append_sid('xs_update.'.$get_data), + 'portal' => append_sid('xs_portal.'.$get_data), + 'style_config' => append_sid('xs_style_config.'.$get_data), + ); + +if(isset($content_url[$action])) +{ + $content = $content_url[$action]; +} +else +{ + $content = append_sid('xs_index.'.$get_data); +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'frameset.tpl')); +$template->assign_vars(array( + 'FRAME_TOP' => append_sid('xs_frame_top.'.$phpEx), + 'FRAME_MAIN' => $content, + )); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_import.php b/phpBB2/admin/xs_import.php new file mode 100644 index 0000000..d3c1da7 --- /dev/null +++ b/phpBB2/admin/xs_import.php @@ -0,0 +1,391 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_import_styles'] . '')); + +$lang['xs_import_back'] = str_replace('{URL}', append_sid('xs_import.'.$phpEx), $lang['xs_import_back']); + +$return_url = isset($HTTP_POST_VARS['return']) ? stripslashes($HTTP_POST_VARS['return']) : (isset($HTTP_GET_VARS['return']) ? stripslashes($HTTP_GET_VARS['return']) : ''); +$return = $return_url ? '&return=' . urlencode($return_url) : ''; +if($return) +{ + $lang['xs_import_back'] = str_replace('{URL}', $return_url, $lang['xs_import_back_download']); + $HTTP_POST_VARS['return'] = $HTTP_GET_VARS['return'] = addslashes($return_url); +} + +// +// Check required functions +// +if(!@function_exists('gzcompress')) +{ + xs_error($lang['xs_import_nogzip']); +} + +$tpl_filename = $template->make_filename('_xs_test.tpl'); +$cache_filename = $template->make_filename_cache($tpl_filename); +$str = ''; +if(!xs_check_cache($cache_filename)) +{ + xs_error(str_replace(array('{URL1}', '{URL2}'), array(append_sid('xs_chmod.'.$phpEx), append_sid('xs_import.'.$phpEx)), $lang['xs_import_nowrite_cache'])); +} + +// +// include all functions +// +include_once('xs_include_import.'.$phpEx); + +// remove timeout +@set_time_limit(XS_MAX_TIMEOUT); + +// +// check if need to download style +// +if(!empty($HTTP_GET_VARS['get_remote'])) +{ + $HTTP_POST_VARS['action'] = 'web'; + $HTTP_POST_VARS['source'] = $HTTP_GET_VARS['get_remote']; +} + +// +// delete style +// +if(isset($HTTP_GET_VARS['del']) && !defined('DEMO_MODE')) +{ + $str = xs_tpl_name($HTTP_GET_VARS['del']); + @unlink(XS_TEMP_DIR.$str); +} + +// +// import style +// +if(isset($HTTP_GET_VARS['import']) || isset($HTTP_POST_VARS['import'])) +{ + $list_only = isset($HTTP_GET_VARS['list']) ? true : false; + $get_file = isset($HTTP_GET_VARS['get_file']) ? stripslashes($HTTP_GET_VARS['get_file']) : ''; + $filename = isset($HTTP_POST_VARS['import']) ? $HTTP_POST_VARS['import'] : $HTTP_GET_VARS['import']; + $filename = xs_tpl_name($filename); + $write_local = false; + if(!$list_only) + { + if(defined('DEMO_MODE')) + { + xs_error($lang['xs_permission_denied'] . '

' . $lang['xs_import_back']); + } + $params = array('import' => $filename); + $total = intval($HTTP_POST_VARS['total']); + $params['total'] = $total; + $params['import_default'] = isset($HTTP_POST_VARS['import_default']) && strlen($HTTP_POST_VARS['import_default']) ? intval($HTTP_POST_VARS['import_default']) : -1; + for($i=0; $i<$total; $i++) + { + $install = empty($HTTP_POST_VARS['import_install_'.$i]) ? 0 : 1; + $default = $install ? ($params['import_default'] == $i ? 1 : 0) : 0; + $params['import_install_'.$i] = $install; + } + if($return_url) + { + $params['return'] = $return_url; + } + if(!get_ftp_config(append_sid('xs_import.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_import.'.$phpEx), $params, true); + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $write_local_dir = '../templates/'; + } + } + include('xs_include_import2.' . $phpEx); +} + +// +// Download from web +// +if(isset($HTTP_GET_VARS['get_web'])) +{ + $HTTP_POST_VARS['action'] = 'web'; + $HTTP_POST_VARS['source'] = $HTTP_GET_VARS['get_web']; +} +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'web' && !defined('DEMO_MODE')) +{ + $src = stripslashes($HTTP_POST_VARS['source']); + $dst = generate_style_name('web'); + $str = @implode('', @file($src)); + if(empty($str)) + { + xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload']) . '

' . $lang['xs_import_back']); + } + $header = xs_get_style_header('', substr($str, 0, 10240)); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

' . $lang['xs_import_back']); + } + if($header['filesize'] != strlen($str)) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

' . $lang['xs_import_back']); + } + $f = @fopen(XS_TEMP_DIR . $dst, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . '

' . $lang['xs_import_back']); + } + fwrite($f, $str); + fclose($f); + xs_message($lang['Information'], str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst) . $return), $lang['xs_import_uploaded2']) . '

' . $lang['xs_import_back']); +} + +// +// Copy from file +// +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'copy' && !defined('DEMO_MODE')) +{ + $src = stripslashes($HTTP_POST_VARS['source']); + $dst = generate_style_name('copy'); + $str = @implode('', @file($src)); + if(empty($str)) + { + xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload2']) . '

' . $lang['xs_import_back']); + } + if(substr($str, 0, strlen(STYLE_HEADER_START)) !== STYLE_HEADER_START) + { + xs_error($lang['xs_style_header_error_invalid2'] . '

' . $lang['xs_import_back']); + } + $header = xs_get_style_header('', substr($str, 0, 10240)); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

' . $lang['xs_import_back']); + } + if($header['filesize'] != strlen($str)) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

' . $lang['xs_import_back']); + } + $f = @fopen(XS_TEMP_DIR . $dst, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . $lang['xs_import_back']); + } + fwrite($f, $str); + fclose($f); + xs_message($lang['Information'], str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst)), $lang['xs_import_uploaded3']) . '

' . $lang['xs_import_back']); +} + + +// +// Upload +// +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'upload' && !defined('DEMO_MODE')) +{ + if(empty($HTTP_POST_FILES['source']['tmp_name']) || !@file_exists($HTTP_POST_FILES['source']['tmp_name'])) + { + xs_error($lang['xs_import_nodownload3'] . '

' . $lang['xs_import_back']); + } + $src = $HTTP_POST_FILES['source']['tmp_name']; + $dst = generate_style_name('upload'); + $str = @implode('', @file($src)); + if(empty($str)) + { + xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload2']) . '

' . $lang['xs_import_back']); + } + if(substr($str, 0, strlen(STYLE_HEADER_START)) !== STYLE_HEADER_START) + { + xs_error($lang['xs_style_header_error_invalid2'] . '

' . $lang['xs_import_back']); + } + $header = xs_get_style_header('', substr($str, 0, 10240)); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

' . $lang['xs_import_back']); + } + if($header['filesize'] != strlen($str)) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

' . $lang['xs_import_back']); + } + $f = @fopen(XS_TEMP_DIR . $dst, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . '

' . $lang['xs_import_back']); + } + fwrite($f, $str); + fclose($f); + xs_error(str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst)), $lang['xs_import_uploaded4']) . '

' . $lang['xs_import_back']); +} + + +// +// Show import page +// +if(!empty($HTTP_GET_VARS['importstyle'])) +{ + $file = xs_tpl_name($HTTP_GET_VARS['importstyle']); + $header = xs_get_style_header(XS_TEMP_DIR.$file); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

' . $lang['xs_import_back']); + } + if(@filesize(XS_TEMP_DIR.$file) != $header['filesize']) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

' . $lang['xs_import_back']); + } + $template->set_filenames(array('import' => XS_TPL_PATH . 'import2.tpl')); + $template->assign_vars(array( + 'FORM_ACTION' => append_sid('xs_import.'.$phpEx), + 'S_RETURN' => $return_url ? '' : '', + 'IMPORT_FILENAME' => htmlspecialchars($file), + 'STYLE_TEMPLATE' => htmlspecialchars($header['template']), + 'STYLE_FILENAME' => htmlspecialchars($file), + 'STYLE_COMMENT' => htmlspecialchars($header['comment']), + 'DATE' => create_date($board_config['default_dateformat'], $header['date'], $board_config['board_timezone']), + 'STYLE_SIZE' => $header['filesize'], + 'STYLE_NAME' => htmlspecialchars($header['styles'][0]), + 'TOTAL' => count($header['styles']), + 'L_XS_IMPORT_TPL' => str_replace('{TPL}', htmlspecialchars($header['template']), $lang['xs_import_tpl']) + )); + if(count($header['styles']) > 1) + { + $template->assign_block_vars('switch_select_style', array()); + for($i=0; $iassign_block_vars('switch_select_style.style', array( + 'NUM' => $i, + 'NAME' => htmlspecialchars($header['styles'][$i]), + )); + } + } + else + { + $template->assign_block_vars('switch_select_nostyle', array()); + } + $template->pparse('import'); + xs_exit(); +} + + +$template->set_filenames(array('body' => XS_TPL_PATH . 'import.tpl')); +// +// Get list of available styles +// +$dir = @opendir(XS_TEMP_DIR); +$files = array(); +if($dir) +{ + while(($file = readdir($dir)) !== false) + { + if(substr($file, strlen($file) - strlen(STYLE_EXTENSION)) === STYLE_EXTENSION) + { + $items = xs_get_style_header(XS_TEMP_DIR.$file); + if(is_array($items)) + { + $items['file'] = $file; + $items['file2'] = substr($file, 0, strlen($file) - strlen(STYLE_EXTENSION)); + if(@filesize(XS_TEMP_DIR.$file) != $items['filesize']) + { + $items['error'] = $lang['xs_import_incomplete_file']; + } + $files[] = $items; + } + else + { + $items = array( + 'filename' => XS_TEMP_DIR.$file, + 'filesize' => @filesize(XS_TEMP_DIR.$file), + 'date' => filemtime(XS_TEMP_DIR.$file), + 'file' => $file, + 'file2' => substr($file, 0, strlen($file) - strlen(STYLE_EXTENSION)), + 'error' => $lang['xs_import_invalid_file'], + 'template' => '-', + 'styles' => array('-'), + 'comment' => '', + 'offset' => 0 + ); + $files[] = $items; + } + } + } + closedir($dir); +} + +if(count($files)) +{ + + for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'FILE' => htmlspecialchars($item['file']), + 'FILE2' => htmlspecialchars($item['file2']), + 'FILENAME' => htmlspecialchars($item['filename']), + 'TEMPLATE' => htmlspecialchars($item['template']), + 'DATE' => create_date($board_config['default_dateformat'], $item['date'], $board_config['board_timezone']), + 'COMMENT' => htmlspecialchars($item['comment']), + 'U_DELETE' => append_sid('xs_import.' . $phpEx . '?del=' . urlencode($item['file'])), + 'U_IMPORT' => append_sid('xs_import.' . $phpEx . '?importstyle=' . urlencode($item['file'])), + 'U_DOWNLOAD' => append_sid('xs_download.' . $phpEx), + 'U_LIST' => append_sid('xs_import.' . $phpEx . '?list=1&import=' . urlencode($item['file'])), + )); + if(empty($item['error'])) + { + for($j=0; $jassign_block_vars('styles.list', array( + 'STYLE' => $item['styles'][$j] + )); + } + $template->assign_block_vars('styles.valid', array()); + } + else + { + $template->assign_block_vars('styles.error', array('ERROR' => htmlspecialchars($item['error']))); + } + } +} +else +{ + $template->assign_block_vars('nostyles', array()); +} +$template->assign_vars(array( + 'U_SCRIPT' => append_sid('xs_import.'.$phpEx), + )); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_include.php b/phpBB2/admin/xs_include.php new file mode 100644 index 0000000..1669160 --- /dev/null +++ b/phpBB2/admin/xs_include.php @@ -0,0 +1,1264 @@ + 0) + { + $module[$module_name][$lang['xs_config_shownav'][$i]] = 'xs_frameset.'.$phpEx.'?action=' . $xs_shownav_action[$i]; + } + } + // add menu for style configuration + foreach($board_config as $var => $value) + { + if(substr($var, 0, 9) === 'xs_style_') + { + $str = substr($var, 9); + $module['Template_Config'][$str] = 'xs_frameset.'.$phpEx.'?action=style_config&tpl='.urlencode($str); + } + } +} + + +if(!empty($setmodules)) +{ + if(@function_exists('jr_admin_get_module_list')) + { + $tmp_mod = $module; + global $module; + $module = $tmp_mod; + xs_admin_override(true); + } + return; +} + +// +// Global defines for eXtreme Styles mod administration panel +// +define('STYLE_HEADER_START', 'xs_style_01'); +define('STYLE_HEADER_END', ''); +define('STYLE_HEADER_VERSION', '1'); +define('STYLE_EXTENSION', '.style'); +define('TAR_HEADER_PACK', 'a100A8A8A8A12A12A8A1A100A6A2A32A32A8A8a155a12'); +define('TAR_HEADER_UNPACK', 'a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor/a155prefix/a12extra'); +define('XS_MAX_ITEMS_PER_STYLE', 32); +define('XS_TEMP_DIR', '../cache/'); +define('XS_FTP_LOCAL', 'no_ftp'); +define('XS_UPDATE_STYLE', 1); +define('XS_UPDATE_MOD', 2); +define('XS_UPDATE_PHPBB', 3); +define('XS_TPL_PATH', '../../xs_mod/tpl/'); +define('XS_BACKUP_PREFIX', 'backup.'); +define('XS_BACKUP_EXT', '.backup'); +define('XS_MAX_TIMEOUT', 600); // maximum timeout for downloads/import/installation + +$xs_row_class = array('row1', 'row2'); + +$template_dir = 'templates/'; + +$template->assign_vars(array( + 'XS_PATH' => '../xs_mod/', + 'XS_UL' => '', + 'XS_UL2' => '
', + 'XS_LI' => '', + 'XS_LI2' => '', + 'S_HIDDEN_FIELDS' => '', + )); + +if(!defined('NO_XS_HEADER')) +{ + $template->set_filenames(array( + 'xs_header' => XS_TPL_PATH . 'xs_header.tpl', + 'xs_footer' => XS_TPL_PATH . 'xs_footer.tpl', + )); + $template->preparse = 'xs_header'; + $template->postparse = 'xs_footer'; + $template->assign_block_vars('nav_left',array('ITEM' => '' . $lang['xs_menu'] . '')); +} + + +header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + +// +// Check compatibility with mods +// +if(isset($config->data) && $config->data === $board_config && isset($config->data['mod_cat_hierarchy'])) +{ + define('XS_MODS_CATEGORY_HIERARCHY210', true); +} +elseif(defined('CACHE_THEMES') && @function_exists('cache_themes')) +{ + define('XS_MODS_CATEGORY_HIERARCHY', true); +} +if(isset($theme['theme_public'])) +{ + define('XS_MODS_ADMIN_TEMPLATES', true); +} + + +// +// Get FTP configuration +// +function get_ftp_config($action, $post = array(), $allow_local = false, $show_error = '') +{ + global $template, $board_config, $db, $lang, $HTTP_POST_VARS, $HTTP_SERVER_VARS; + $board_config['xs_ftp_local'] = false; + // check if ftp can be used + if(!@function_exists('ftp_connect')) + { + if($allow_local && xs_dir_writable('../templates/')) + { + $board_config['xs_ftp_local'] = true; + return true; + } + xs_error($lang['xs_ftp_error_fatal']); + } + // check if we have configuration + if(!empty($HTTP_POST_VARS['get_ftp_config'])) + { + $vars = array('xs_ftp_host', 'xs_ftp_login', 'xs_ftp_path'); + for($i=0; $isql_query($sql); + } + } + $board_config['xs_ftp_pass'] = stripslashes($HTTP_POST_VARS['xs_ftp_pass']); + $board_config['xs_ftp_local'] = empty($HTTP_POST_VARS['xs_ftp_local']) ? false : true; + // recache config table + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + global $config; + if ( !empty($config) ) + { + $config->read(true); + } + } + return true; + } + // check ftp configuration + $xs_ftp_host = $board_config['xs_ftp_host']; + if(empty($xs_ftp_host)) + { + $str = $HTTP_SERVER_VARS['HTTP_HOST']; + $template->assign_vars(array( + 'HOST_GUESS' => str_replace(array('{HOST}', '{CLICK}'), array($str, 'document.ftp.xs_ftp_host.value=\''.$str.'\''), $lang['xs_ftp_host_guess']) + )); + } + $dir = getcwd(); + $xs_ftp_login = $board_config['xs_ftp_login']; + if(empty($xs_ftp_login)) + { + if(substr($dir, 0, 6) === '/home/') + { + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, 0, $pos); + $template->assign_vars(array( + 'LOGIN_GUESS' => str_replace(array('{LOGIN}', '{CLICK}'), array($str, 'document.ftp.xs_ftp_login.value=\''.$str.'\''), $lang['xs_ftp_login_guess']) + )); + } + } + } + $xs_ftp_path = $board_config['xs_ftp_path']; + if(empty($xs_ftp_path)) + { + if(substr($dir, 0, 6) === '/home/'); + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, $pos + 1); + $pos = strrpos($str, 'admin'); + if($pos) + { + $str = substr($str, 0, $pos-1); + $template->assign_vars(array( + 'PATH_GUESS' => str_replace(array('{PATH}', '{CLICK}'), array($str, 'document.ftp.xs_ftp_path.value=\''.$str.'\''), $lang['xs_ftp_path_guess']) + )); + } + } + } + if($allow_local && xs_dir_writable('../templates/')) + { + $template->assign_block_vars('xs_ftp_local', array()); + } + else + { + $template->assign_block_vars('xs_ftp_nolocal', array()); + } + $str = ''; + foreach($post as $var => $value) + { + $str .= ''; + } + $template->assign_vars(array( + 'FORM_ACTION' => $action, + 'S_EXTRA_FIELDS' => $str, + 'XS_FTP_HOST' => $xs_ftp_host, + 'XS_FTP_LOGIN' => $xs_ftp_login, + 'XS_FTP_PATH' => $xs_ftp_path, + )); + if($show_error) + { + $template->assign_block_vars('error', array('MSG' => $show_error)); + } + $template->set_filenames(array('config' => XS_TPL_PATH . 'ftp.tpl')); + $template->pparse('config'); + return false; +} + +// connect ftp +function xs_ftp_connect($action, $post = array(), $allow_local = false) +{ + global $ftp, $board_config, $HTTP_POST_VARS, $phpEx, $lang, $template; + $HTTP_POST_VARS['get_ftp_config'] = ''; + if($allow_local && !empty($board_config['xs_ftp_local'])) + { + $ftp = XS_FTP_LOCAL; + return true; + } + $ftp = @ftp_connect($board_config['xs_ftp_host']); + if(!$ftp) + { + get_ftp_config($action, $post, $allow_local, str_replace('{HOST}', $board_config['xs_ftp_host'], $lang['xs_ftp_error_connect'])); + } + $res = @ftp_login($ftp, $board_config['xs_ftp_login'], $board_config['xs_ftp_pass']); + if(!$res) + { + get_ftp_config($action, $post, $allow_local, $lang['xs_ftp_error_login']); + } + $res = @ftp_chdir($ftp, $board_config['xs_ftp_path']); + if(!$res) + { + get_ftp_config($action, $post, $allow_local, str_replace('{DIR}', $board_config['xs_ftp_path'], $lang['xs_ftp_error_chdir'])); + } + // check current directory + $current_dir = @ftp_pwd($ftp); + $list = @ftp_nlist($ftp, $current_dir); + for($i=0; $i $tpl, + 'styles' => $items, + 'date' => @filemtime($filename), + 'comment' => $comment, + 'offset' => $header_size, + 'filename' => $filename, + 'filesize' => $filesize, + ); +} + + +// check if cache is writable +function xs_check_cache($filename) +{ + // check if filename is valid + global $str, $template, $lang; + if(substr($filename, 0, strlen($template->cachedir)) !== $template->cachedir) + { + $str .= $lang['xs_check_filename'] . "
\n"; + return false; + } + else + { + // try to open file + $file = @fopen($filename, 'w'); + if(!$file) + { + $str .= sprintf($lang['xs_check_openfile1'], $filename) . "
\n"; + // try to create directories + $dir = substr($filename, strlen($template->cachedir), strlen($filename)); + $dirs = explode('/', $dir); + $path = $template->cachedir; + @umask(0); + if(!@is_dir($path)) + { + $str .= sprintf($lang['xs_check_nodir'], $path) . "
\n"; + if(!@mkdir($path)) + { + $str .= sprintf($lang['xs_check_nodir2'], $path) . "
\n"; + return false; + } + else + { + $str .= sprintf($lang['xs_check_createddir'], $path) . "
\n"; + @chmod($path, 0777); + } + } + else + { + $str .= sprintf($lang['xs_check_dir'] , $path) . "
\n"; + } + if(count($dirs) > 0) + for($i=0; $i0) + { + $path .= '/'; + } + $path .= $dirs[$i]; + if(!@is_dir($path)) + { + $str .= sprintf($lang['xs_check_nodir'], $path) . "
\n"; + if(!@mkdir($path)) + { + $str .= sprintf($lang['xs_check_nodir2'], $path) . "
\n"; + return false; + } + else + { + $str .= sprintf($lang['xs_check_createddir'], $path) . "
\n"; + @chmod($path, 0777); + } + } + else + { + $str .= sprintf($lang['xs_check_dir'] , $path) . "
\n"; + } + } + // try to open file again after directories were created + $file = @fopen($filename, 'w'); + } + if(!$file) + { + $str .= sprintf($lang['xs_check_openfile2'], $filename) . "
\n"; + return false; + } + $str .= sprintf($lang['xs_check_ok'], $filename) . "
\n"; + fputs($file, ' '); + fclose($file); + @chmod($filename, 0777); + return true; + } +} + +// run ftp commands +function ftp_myexec($list) +{ + global $ftp, $ftp_error, $ftp_log, $ftp_host, $ftp_login, $ftp_pass, $lang; + $ftp_error = ''; + $ftp_log = array(); + if(empty($ftp)) + { + // checking ftp extensions + if(!@function_exists('ftp_connect')) + { + $ftp_log[] = $ftp_error = $lang['xs_ftp_log_disabled']; + return false; + } + // connect to server + $ftp_log[] = str_replace('{HOST}', "{$ftp_login}:*@{$ftp_host}", $lang['xs_ftp_log_connecting']); + $ftp = @ftp_connect($ftp_host); + if(!$ftp) + { + $ftp_log[] = $ftp_error = str_replace('{HOST}', $ftp_host, $lang['xs_ftp_log_noconnect']); + return false; + } + $ftp_log[] = $lang['xs_ftp_log_connected']; + // logging in + $logged_in = @ftp_login($ftp, $ftp_login, $ftp_pass); + if(!$logged_in) + { + $ftp_log[] = $ftp_error = str_replace('{USER}', $ftp_login, $lang['xs_ftp_log_nologin']); + @ftp_close($ftp); + return false; + } + $ftp_log[] = $lang['xs_ftp_log_loggedin']; + } + if(!ftp_myexec2($ftp, $list)) + { + @ftp_close($ftp); + return false; + } + @ftp_close($ftp); + $ftp_log[] = $lang['xs_ftp_log_end']; + return true; +} + +// remove all files via ftp +function ftp_remove_all($ftp) +{ + // get current directory + $root_dir = @ftp_pwd($ftp); + // get list of files + $files = @ftp_nlist($ftp, $root_dir); + // remove files/directories + for($i=0; $isql_query($sql)) + { + return false; + } + $row = $db->sql_fetchrow($result); + if(!empty($row['themes_id'])) + { + return false; + } + $vars = array(); + $values = array(); + foreach($data as $var => $value) + { + $vars[] = xs_sql($var); + $values[] = xs_sql(stripslashes($value)); + } + $sql = "INSERT INTO " . THEMES_TABLE . " (" . implode(', ', $vars) . ") VALUES ('" . implode("', '", $values) . "')"; + if(!$result = $db->sql_query($sql)) + { + return false; + } + // recache themes table + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + global $themes; + if ( empty($themes) ) + { + $themes = new themes(); + } + if ( !empty($themes) ) + { + $themes->read(true); + } + } + // add configuration + global $template; + if($template->add_config($tpl)) + { + define('REFRESH_NAVBAR', true); + } + return true; +} + +// generate theme_info.cfg for template +function xs_generate_themeinfo($theme_rowset, $export, $exportas, $total) +{ + global $HTTP_POST_VARS; + $vars = array('template_name', 'style_name', 'head_stylesheet', 'body_background', 'body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color1', 'tr_color2', 'tr_color3', 'tr_class1', 'tr_class2', 'tr_class3', 'th_color1', 'th_color2', 'th_color3', 'th_class1', 'th_class2', 'th_class3', 'td_color1', 'td_color2', 'td_color3', 'td_class1', 'td_class2', 'td_class3', 'fontface1', 'fontface2', 'fontface3', 'fontsize1', 'fontsize2', 'fontsize3', 'fontcolor1', 'fontcolor2', 'fontcolor3', 'span_class1', 'span_class2', 'span_class3', 'img_size_poll', 'img_size_privmsg'); + $theme_data = ''; // Done this to prevent highlighting editors getting confused! + return $theme_data; +} + +// Checks if directory is writable +function xs_dir_writable($dir) +{ + $filename = 'tmp_' . time(); + $f = @fopen($dir . $filename, 'wb'); + if($f) + { + fclose($f); + @unlink($dir . $filename); + return true; + } + return false; +} + +// Write to file. Create directory if necessary +function xs_write_file($filename, $data) +{ + $f = @fopen($filename, 'wb'); + if(!$f) + { + // try to create directories + $pos = strrpos($filename, '/'); + if(!$pos) + { + return false; + } + $dir = substr($filename, 0, $pos); + xs_create_dir($dir); + $f = @fopen($filename, 'wb'); + if(!$f) + { + return false; + } + } + fwrite($f, $data); + fclose($f); + @chmod($filename, 0777); + return true; +} + +// Create local directory +function xs_create_dir($dir) +{ + if(!$dir) + { + return false; + } + // remove trailing / + if(substr($dir, strlen($dir) - 1) === '/') + { + $dir = substr($dir, 0, strlen($dir) - 1); + if(!$dir) + { + return false; + } + } + if($dir === '.' || $dir === '..') + { + return false; + } + $res = @mkdir($dir, 0777); + if($res) + { + return true; + } + // try to create previous directory + $pos = strrpos($dir, '/'); + if(!$pos) + { + return false; + } + $dir1 = substr($dir, 0, $pos); + $dir2 = substr($dir, $pos+1); + if($dir2 === '.' || $dir2 === '..') + { + return false; + } + if(!xs_create_dir($dir1)) + { + return false; + } + $res = @mkdir($dir2, 0777); + return $res ? true : false; +} + +// replacement for in_array() (because of compatibility problems) +function xs_in_array($needle, $haystack) +{ + for($i=0; $iset_filenames(array('errormsg' => XS_TPL_PATH . 'message.tpl')); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Error'], + 'MESSAGE_TEXT' => $error + )); + $template->pparse('errormsg'); + xs_exit(); +} + +// show message and exit +function xs_message($title, $message) +{ + global $template; + $template->set_filenames(array('msg' => XS_TPL_PATH . 'message.tpl')); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $title, + 'MESSAGE_TEXT' => $message + )); + $template->pparse('msg'); + xs_exit(); +} + +// pack style to .style +function pack_style($name, $newname, $themes, $comment) +{ + /* + header format (v0.01): + - header + - header size (4 bytes) + - file size (4 bytes) + - number of entries (1 byte) + - entries sizes (number_of_entries bytes) + - entries + - footer + - gzcompressed tar of style (no crc check in tar) + + entries: + - template name + - comment + - style names + */ + global $phpbb_root_path, $template_dir; + $data = gzcompress(pack_dir($phpbb_root_path . $template_dir . $name, '', $name, $newname)); + $items_data = chr(strlen($newname)) . chr(strlen($comment)); + $items_str = $newname . $comment; + for($i=0; $i $base_dir, + 'mode' => '40777', + 'uid' => '0', + 'gid' => '0', + 'size' => decoct(0), + 'mtime' => decoct(@filemtime($dir)), + 'checksum' => '0', // ignore checksum + 'typeflag' => '5', + 'link' => '', + 'magic' => "ustar", + 'version' => '', + 'uname' => 'user', + 'gname' => 'group', + 'devmajor' => '', + 'devminor' => '', + 'prefix' => '', + 'extra' => '' + ); + $header_str = pack(TAR_HEADER_PACK, $header['filename'], $header['mode'], $header['uid'], $header['gid'], $header['size'], $header['mtime'], $header['checksum'], $header['typeflag'], $header['linkname'], $header['magic'], $header['version'], $header['uname'], $header['gname'], $header['devmajor'], $header['devminor'], $header['prefix'], $header['extra']); + $file_str = ''; + $extra_str = ''; + $str .= $header_str . $file_str . $extra_str; + // add all files + for($i=0; $i'; + if($header['filename'] === './overall_header.tpl') + { + echo 'overall_header.tpl:

', nl2br(htmlspecialchars($file_str)), '


'; + }*/ + $size = strlen($file_str); + $header['size'] = decoct($size); + $header['typeflag'] = '0'; + $header['mode'] = '100666'; + $full_size = floor(($size + 511) / 512) * 512; + $extra_str = $full_size > $size ? str_repeat("\0", $full_size - $size) : ''; + $header_str = pack(TAR_HEADER_PACK, $header['filename'], $header['mode'], $header['uid'], $header['gid'], $header['size'], $header['mtime'], $header['checksum'], $header['typeflag'], $header['linkname'], $header['magic'], $header['version'], $header['uname'], $header['gname'], $header['devmajor'], $header['devminor'], $header['prefix'], $header['extra']); + $str .= $header_str . $file_str . $extra_str; + } + // add all directories + for($i=0; $isql_query($sql); +} + +// send file +function xs_download_file($filename, $content, $content_type = '') +{ + if(empty($content_type)) + { + $content_type = 'application/unknown'; + } + header('Content-Type: ' . $content_type); + header('Content-Length: ' . strlen($content)); + header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + if($filename) + { + header('Content-Disposition: inline; filename="' . $filename . '"'); + } + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + echo $content; +} + +// strip slashes for sql +function xs_sql($sql, $strip = false) +{ + if($strip) + { + $sql = stripslashes($sql); + } + return str_replace('\\\'', '\'\'', addslashes($sql)); +} + +// clean template name +function xs_tpl_name($name) +{ + return str_replace(array('\\', '/', "'", '"'), array('','','',''), $name); +} + +// close database and maybe do some other stuff +function xs_exit() +{ + global $db; + if(isset($db)) + { + $db->sql_close(); + } + exit; +} + +// check directory name/filename +function xs_fix_dir($dir) +{ + $dir = str_replace('\\', '/', $dir); + $dir = str_replace('../', './', $dir); + while(strlen($dir > 1) && substr($dir, strlen($dir) - 2) === '..') + { + $dir = substr($dir, 0, strlen($dir) - 1); + } + return $dir; +} + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_include_import.php b/phpBB2/admin/xs_include_import.php new file mode 100644 index 0000000..16ea3a1 --- /dev/null +++ b/phpBB2/admin/xs_include_import.php @@ -0,0 +1,121 @@ + 'upload', + 'local' => $items[$i]['tmp'], + 'remote' => $items[$i]['file'] + ); + } + } + return $arr; +} + +function generate_actions_dirs($dir = '') +{ + global $dirs; + $arr = array(); + if($dir && substr($dir, strlen($dir) - 1) !== '/') + { + $dir .= '/'; + } + if($dir) + { + // remove trailing / + $pos = strrpos($dir, '/'); + $str = $pos === strlen($dir) - 1 ? substr($dir, 0, $pos) : $dir; + // get last directory name + $pos = strrpos($str, '/'); + $str = $pos ? substr($str, $pos + 1) : $str; + $arr[] = array( + 'command' => 'mkdir', + 'dir' => $str, + 'ignore' => true + ); + $arr[] = array( + 'command' => 'chdir', + 'dir' => $str + ); + } + $arr[] = array( + 'command' => 'exec', + 'list' => generate_actions_files($dir) + ); + // create subdirectories + $len = strlen($dir); + for($i=0; $i 'exec', + 'list' => generate_actions_dirs($dirs[$i]) + ); + } + } + } + return $arr; +} + +function generate_style_name($str) +{ + $str = 'style_' . $str . '_%02d' . STYLE_EXTENSION; + $num = 0; + $found = true; + while($found) + { + $filename = sprintf($str, $num); + $found = @file_exists(XS_TEMP_DIR.$filename); + $num ++; + } + return $filename; +} + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_include_import2.php b/phpBB2/admin/xs_include_import2.php new file mode 100644 index 0000000..137405c --- /dev/null +++ b/phpBB2/admin/xs_include_import2.php @@ -0,0 +1,522 @@ +
' . $lang['xs_import_back']); +} +if($header['filesize'] != filesize($file)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_style_header_error_incomplete'] . '

' . $lang['xs_import_back']); +} +$f = @fopen($file, 'rb'); +if(!$f) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_error_cannot_open'] . '

' . $lang['xs_import_back']); +} +if($write_local) +{ + $write_local_dir .= $header['template'] . '/'; +} +fseek($f, $header['offset'], 0); +$str = fread($f, filesize($file) - $header['offset']); +fclose($f); +$str = @gzuncompress($str); +if($str === false || !strlen($str)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_error_decompress_style'] . '

' . $lang['xs_import_back']); +} +// +// unpack tar file +// +$pos = 0; +$tmp_name = XS_TEMP_DIR . 'file_' . $filename . '_%02d.tmp'; +$tmp_count = 0; +$files = array(); // complete list of files +$list_data = array(); // result for list +$dirs = array(); // complete list of directories +$items = array(); // data +while($pos < strlen($str)) +{ + $data = unpack(TAR_HEADER_UNPACK, substr($str, $pos, 512)); + $pos += 512; + $data['filename'] = trim($data['prefix']) . trim($data['filename']); + if(substr($data['filename'], 0, 2) === './') + { + $data['filename'] = substr($data['filename'], 2); + } + if($write_local) + { + $save_filename = $write_local_dir . $data['filename']; + } + else + { + $pos1 = strrpos($data['filename'], '/'); + if($pos1) + { + $data['dir'] = substr($data['filename'], 0, $pos1); + $data['file'] = substr($data['filename'], $pos1 + 1); + } + else + { + $data['dir'] = ''; + $data['file'] = $data['filename']; + } + } + $data['size'] = octdec(trim($data['size'])); + $data['mtime'] = octdec(trim($data['mtime'])); + $data['typeflag'] = octdec(trim($data['typeflag'])); + if($data['typeflag'] === '5') + { + $data['size'] = 0; + if($write_local) + { + xs_create_dir($save_filename); + } + } + $data['offset'] = $pos; + $contents = $data['size'] > 0 ? substr($str, $pos, $data['size']) : ''; + $data['tmp'] = ''; + // adding to list + $is_file = true; + if(intval($data['typeflag']) == 5) + { + $is_file = false; + if($data['filename']) + { + $dirs[] = $data['filename']; + } + } + else + { + if($data['filename']) + { + if(!$list_only) + { + if($write_local) + { + $res = xs_write_file($save_filename, $contents); + if(!$res) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error(str_replace('{FILE}', $save_filename, $lang['xs_error_cannot_create_file']) . '

' . $lang['xs_import_back']); + } + } + else + { + // write to temporary file + $tmp_count ++; + $data['tmp'] = sprintf($tmp_name, $tmp_count); + $f = @fopen($data['tmp'], 'wb'); + if(!$f) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error(str_replace('{FILE}', $data['tmp'], $lang['xs_error_cannot_create_tmp']) . '

' . $lang['xs_import_back']); + } + fwrite($f, $contents); + fclose($f); + } + } + elseif(!empty($get_file) && $get_file === $data['filename']) + { + // show contents of file + $f = $data['filename']; + $ext = strtolower(substr($f, strlen($f) - 4)); + if(empty($HTTP_GET_VARS['get_content']) && xs_in_array($ext, $text_types)) + { + // show as text + $str = '
' . $lang['xs_import_list_contents'] . $f . ' [' . $lang['xs_import_download_lc'] . ']

'; + $str .= ''; + $str .= '
'; + xs_message($lang['Information'], $str); + } + else + { + $do_download = false; + $content_type = ''; + if(empty($HTTP_GET_VARS['get_content'])) + { + if($ext === '.gif') + { + $content_type = 'image/gif'; + } + elseif($ext === '.jpg' || $ext === '.jpe' || $ext === 'jpeg') + { + $content_type = 'image/jpeg'; + } + elseif($ext === '.png') + { + $content_type = 'image/png'; + } + else + { + $do_download = true; + } + } + else + { + $do_download = true; + } + xs_download_file($do_download ? basename($f) : '', $contents, $content_type); + xs_exit(); + } + } + else + { + $list_data[$data['filename']] = $data; + } + $files[] = $data['filename']; + } + } + if(empty($data['filename']) && $is_file) + { + $pos = strlen($str); + } + else + { + $pos += floor(($data['size'] + 511) / 512) * 512; + if($is_file) + { + $items[] = $data; + } + } +} +if($list_only) +{ + // show list of files. used for debug. + $str = '
'; + // main data + $str .= $lang['xs_import_list_filename'] . $header['filename'] . '
'; + $str .= $lang['xs_import_list_template'] . $header['template'] . '
'; + $str .= $lang['xs_import_list_comment'] . $header['comment'] . '
'; + $str .= $lang['xs_import_list_styles'] . implode(', ', $header['styles']) . '
'; + ksort($list_data); + $str .= '
' . str_replace('{NUM}', count($list_data), $lang['xs_import_list_files']) . '
'; + $str .= ''; + foreach($list_data as $var => $value) + { + $str .= ''; + } + $str .= '
' . htmlspecialchars($value['filename']) . ''; + if($value['size'] > 0) + { + $ext = strtolower(substr($var, strlen($var) - 4)); + if(xs_in_array($ext, $text_types) || xs_in_array($ext, $img_types)) + { + $str .= '[' . $lang['xs_import_view_lc'] . '] '; + } + $str .= '[' . $lang['xs_import_download_lc'] . '] '; + } + $str .= str_replace('{NUM}', $value['size'], $lang['xs_import_file_size']) . '
'; + $str .= '
'; + xs_message($lang['Information'], $str); +} +$str = ''; +if(!$write_local) +{ + // + // Generate actions list + // + $actions = array(); + // chdir to template directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => 'templates' + ); + // create directory with template name + $actions[] = array( + 'command' => 'mkdir', + 'dir' => $header['template'], + 'ignore' => true + ); + // change directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => $header['template'] + ); + // create all directories and upload all files + $actions[] = array( + 'command' => 'exec', + 'list' => generate_actions_dirs() + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); +/* echo ""; */ + // remove temporary files + for($i=0; $i
' . $lang['xs_import_back']); + } +} + +// +// Check if we need to install style +// +$total = intval($HTTP_POST_VARS['total']); +$default = isset($HTTP_POST_VARS['import_default']) && strlen($HTTP_POST_VARS['import_default']) ? intval($HTTP_POST_VARS['import_default']) : -1; +$install = array(); +$default_name = ''; +for($i=0; $i<$total; $i++) +{ + $tmp = empty($HTTP_POST_VARS['import_install_'.$i]) ? 0 : 1; + if($tmp) + { + $set_default = $default == $i ? 1 : 0; + $tmp_name = $header['styles'][$i]; + if($tmp_name) + { + $install[] = $tmp_name; + if($set_default) + { + $default_name = $tmp_name; + } + } + } +} +if(!count($install)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_message($lang['Information'], $lang['xs_import_uploaded'] . '

' . $lang['xs_import_back']); +} +// +// Get list of installed styles +// +$tpl = $header['template']; +$sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name='" . xs_sql($tpl) . "'"; +if(!$result = $db->sql_query($sql)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall'] . '

' . $lang['xs_import_back']); +} +$style_rowset = $db->sql_fetchrowset($result); +// run theme_info.cfg +$data = xs_get_themeinfo($tpl); +if(!@count($data)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall2'] . '

' . $lang['xs_import_back']); +} +// install styles +$default_id = 0; +for($i=0; $i
' . $lang['xs_import_back']); + } + if($installed) + { + // update + $sql = ''; + foreach($style_data as $var => $value) + { + if($sql) + { + $sql .= ', '; + } + $sql .= xs_sql($var) . " = '" . xs_sql($value) . "'"; + } + $sql = "UPDATE " . THEMES_TABLE . " SET " . $sql . " WHERE themes_id = '{$installed}'"; + } + else + { + // install + $sql = "SELECT MAX(themes_id) AS total FROM " . THEMES_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall4'] . '

' . $lang['xs_import_back']); + } + if ( !($row = $db->sql_fetchrow($result)) ) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall4'] . '

' . $lang['xs_import_back']); + } + $installed = $row['total'] + 1; + $style_data['themes_id'] = $installed; + $sql1 = $sql2 = ''; + foreach($style_data as $var => $value) + { + if($sql1) + { + $sql1 .= ', '; + $sql2 .= ', '; + } + $sql1 .= xs_sql($var); + $sql2 .= "'" . xs_sql($value) . "'"; + } + $sql = "INSERT INTO " . THEMES_TABLE . " (" . $sql1 . ") VALUES (" . $sql2 . ")"; + } + if ( !($result = $db->sql_query($sql)) ) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall5'] . '

' . $lang['xs_import_back']); + } + if($default_name === $style_name) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='{$installed}' WHERE config_name='default_style'"; + $board_config['default_style'] = $installed; + $db->sql_query($sql); + } +} +if(defined('XS_CLONING')) +{ + @unlink($tmp_filename); +} +if(count($install) && defined('XS_MODS_CATEGORY_HIERARCHY210')) +{ + // recache themes table + if ( empty($themes) ) + { + $themes = new themes(); + } + if ( !empty($themes) ) + { + $themes->read(true); + } +} +if(count($install) && defined('XS_MODS_CATEGORY_HIERARCHY')) +{ + cache_themes(); +} +xs_message($lang['Information'], $lang['xs_import_installed'] . '

' . $lang['xs_import_back']); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_index.php b/phpBB2/admin/xs_index.php new file mode 100644 index 0000000..3b38a9b --- /dev/null +++ b/phpBB2/admin/xs_index.php @@ -0,0 +1,67 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +if(isset($HTTP_GET_VARS['showwarning'])) +{ + $msg = str_replace('{URL}', append_sid('xs_index.'.$phpEx), $lang['xs_main_comment3']); + xs_message($lang['Information'], $msg); +} + +$template->assign_vars(array( + 'U_CONFIG' => append_sid('xs_config.'.$phpEx), + 'U_DEFAULT_STYLE' => append_sid('xs_styles.'.$phpEx), + 'U_MANAGE_CACHE' => append_sid('xs_cache.'.$phpEx), + 'U_IMPORT_STYLES' => append_sid('xs_import.'.$phpEx), + 'U_EXPORT_STYLES' => append_sid('xs_export.'.$phpEx), + 'U_CLONE_STYLE' => append_sid('xs_clone.'.$phpEx), + 'U_DOWNLOAD_STYLES' => append_sid('xs_download.'.$phpEx), + 'U_INSTALL_STYLES' => append_sid('xs_install.'.$phpEx), + 'U_UNINSTALL_STYLES' => append_sid('xs_uninstall.'.$phpEx), + 'U_EDIT_STYLES' => append_sid('xs_edit.'.$phpEx), + 'U_EDIT_STYLES_DATA' => append_sid('xs_edit_data.'.$phpEx), + 'U_EXPORT_DATA' => append_sid('xs_export_data.'.$phpEx), + 'U_UPDATES' => append_sid('xs_update.'.$phpEx), + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'index.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_install.php b/phpBB2/admin/xs_install.php new file mode 100644 index 0000000..45dc976 --- /dev/null +++ b/phpBB2/admin/xs_install.php @@ -0,0 +1,179 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_install_styles'] . '')); + +$lang['xs_install_back'] = str_replace('{URL}', append_sid('xs_install.'.$phpEx), $lang['xs_install_back']); +$lang['xs_goto_default'] = str_replace('{URL}', append_sid('xs_styles.'.$phpEx), $lang['xs_goto_default']); + +// remove timeout. useful for forum with 100+ styles +@set_time_limit(XS_MAX_TIMEOUT); + +// install style +if(!empty($HTTP_GET_VARS['style']) && !defined('DEMO_MODE')) +{ + $style = stripslashes($HTTP_GET_VARS['style']); + $num = intval($HTTP_GET_VARS['num']); + $res = xs_install_style($style, $num); + if(defined('REFRESH_NAVBAR')) + { + $template->assign_block_vars('left_refresh', array( + 'ACTION' => append_sid('index.' . $phpEx . '?pane=left') + )); + } + if($res) + { + if(defined('XS_MODS_CATEGORY_HIERARCHY')) + { + cache_themes(); + } + xs_message($lang['Information'], $lang['xs_install_installed'] . '

' . $lang['xs_install_back'] . '

' . $lang['xs_goto_default']); + } + xs_error($lang['xs_install_error'] . '

' . $lang['xs_install_back']); +} + +// install styles +if(!empty($HTTP_POST_VARS['total']) && !defined('DEMO_MODE')) +{ + $tpl = array(); + $num = array(); + $total = intval($HTTP_POST_VARS['total']); + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['install_'.$i])) + { + $tpl[] = stripslashes($HTTP_POST_VARS['install_'.$i.'_style']); + $num[] = intval($HTTP_POST_VARS['install_'.$i.'_num']); + } + } + if(count($tpl)) + { + for($i=0; $iassign_block_vars('left_refresh', array( + 'ACTION' => append_sid('index.' . $phpEx . '?pane=left') + )); + } + if(defined('XS_MODS_CATEGORY_HIERARCHY')) + { + cache_themes(); + } + xs_message($lang['Information'], $lang['xs_install_installed'] . '

' . $lang['xs_install_back'] . '

' . $lang['xs_goto_default']); + } +} + + +// get all installed styles +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +// find all styles to install +$res = @opendir('../templates/'); +$styles = array(); +while(($file = readdir($res)) !== false) +{ + if($file !== '.' && $file !== '..' && @file_exists('../templates/'.$file.'/theme_info.cfg') && @file_exists('../templates/'.$file.'/'.$file.'.cfg')) + { + $arr = xs_get_themeinfo($file); + for($i=0; $i
' . $lang['xs_goto_default']); +} + +ksort($styles); + +$j = 0; +foreach($styles as $var => $value) +{ + $row_class = $xs_row_class[$j % 2]; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'STYLE' => htmlspecialchars($value['template_name']), + 'THEME' => htmlspecialchars($value['style_name']), + 'U_INSTALL' => append_sid('xs_install.'.$phpEx.'?style='.urlencode($value['template_name']).'&num='.$value['num']), + 'CB_NAME' => 'install_'.$j, + 'NUM' => $value['num'], + ) + ); + $j++; +} + +$template->assign_vars(array( + 'U_INSTALL' => append_sid('xs_install.'.$phpEx), + 'TOTAL' => count($styles) + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'install.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_main.cfg b/phpBB2/admin/xs_main.cfg new file mode 100644 index 0000000..df9ea16 --- /dev/null +++ b/phpBB2/admin/xs_main.cfg @@ -0,0 +1,36 @@ +xs_versiontxt; +$update['eXtreme Styles']['update_item'] = 'xs'; + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_style_config.php b/phpBB2/admin/xs_style_config.php new file mode 100644 index 0000000..ad1215f --- /dev/null +++ b/phpBB2/admin/xs_style_config.php @@ -0,0 +1,189 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$tpl = isset($HTTP_POST_VARS['tpl']) ? $HTTP_POST_VARS['tpl'] : (isset($HTTP_GET_VARS['tpl']) ? $HTTP_GET_VARS['tpl'] : ''); +$filename = $phpbb_root_path . 'templates/' . $tpl . '/xs_config.cfg'; + +if(empty($tpl)) +{ + xs_error($lang['xs_invalid_style_name']); +} +if(!@file_exists($filename)) +{ + // remove from config + $config_name = 'xs_style_' . $tpl; + $sql = "DELETE FROM " . CONFIG_TABLE . " WHERE config_name='" . addslashes($config_name) . "'"; + $db->sql_query($sql); + // recache config table for cat_hierarchy 2.1.0 + if(isset($GLOBALS['config']) && is_object($GLOBALS['config'])) + { + global $config; + $config->read(true); + } + $template->assign_block_vars('left_refresh', array( + 'ACTION' => append_sid('index.' . $phpEx . '?pane=left') + )); + xs_error($lang['xs_invalid_style_name']); +} + +// get configuration +$style_config = array(); +include($filename); +$data = $template->get_config($tpl, false); +for($i=0; $i $value1) + { + $list[] = $var1; + } + $value = implode(',', $list); + } + else + { + $value = isset($HTTP_POST_VARS['cfg_' . $var]) ? stripslashes($HTTP_POST_VARS['cfg_' . $var]) : 0; + } + $data[$var] = $value; + } + // update config + $str = $template->_serialize($data); + $config_name = 'xs_style_' . $tpl; + if(isset($board_config[$config_name])) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . addslashes($str) . "' WHERE config_name='" . addslashes($config_name) . "'"; + } + else + { + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . addslashes($config_name) . "', '" . addslashes($str) . "')"; + } + $db->sql_query($sql); + $board_config[$config_name] = $str; + // recache config table for cat_hierarchy 2.1.0 + if(isset($config) && is_object($config)) + { + $config->read(true); + } +} + + +// show form +$last_cat = ''; +for($i=0; $iassign_block_vars('item', array( + 'VAR' => 'cfg_' . $var, + 'VALUE' => htmlspecialchars($data[$var]), + 'DEF' => $item['default'], + 'TYPE' => $item['type'], + 'TEXT' => htmlspecialchars($item['text']), + 'EXPLAIN' => isset($item['explain']) ? $item['explain'] : '', + )); + if($item['type'] === 'select') + { + foreach($item['selection'] as $var1 => $value1) + { + $template->assign_block_vars('item.select', array( + 'VALUE' => htmlspecialchars($var1), + 'TEXT' => htmlspecialchars($value1), + 'SELECTED' => $data[$var] === $var1 ? 1 : 0, + )); + } + } + if($item['type'] === 'list') + { + $values = explode(',', $data[$var]); + foreach($item['selection'] as $var => $value) + { + $selected = false; + for($j=0; $jassign_block_vars('item.list', array( + 'VALUE' => htmlspecialchars($var), + 'TEXT' => htmlspecialchars($value), + 'SELECTED' => $selected, + )); + $num++; + } + } + if(!empty($item['cat']) && $item['cat'] !== $last_cat) + { + $template->assign_block_vars('item.cat', array( + 'TEXT' => htmlspecialchars($item['cat']) + )); + $last_cat = $item['cat']; + } +} + +$template->assign_vars(array( + 'TPL' => htmlspecialchars($tpl), + 'U_FORM' => 'xs_style_config.'.$phpEx.'?sid='.$userdata['session_id'], + )); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_style_configuration'] . ': ' . $tpl . '')); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'style_config.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_styles.php b/phpBB2/admin/xs_styles.php new file mode 100644 index 0000000..17d0e05 --- /dev/null +++ b/phpBB2/admin/xs_styles.php @@ -0,0 +1,289 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_default_style'] . '')); + +// +// set new default style +// +if(!empty($HTTP_GET_VARS['setdefault']) && !defined('DEMO_MODE')) +{ + $board_config['default_style'] = intval($HTTP_GET_VARS['setdefault']); + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . $board_config['default_style'] . "' WHERE config_name='default_style'"; + if(defined('XS_MODS_ADMIN_TEMPLATES')) + { + $sql = str_replace(' WHERE config_name', ', theme_public=\'1\' WHERE config_name', $sql); + } + $db->sql_query($sql); + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + // recache config table + if ( !empty($config) ) + { + $config->read(true); + } + } +} + +// +// change "override" variable +// +if(isset($HTTP_GET_VARS['setoverride']) && !defined('DEMO_MODE')) +{ + $board_config['override_user_style'] = intval($HTTP_GET_VARS['setoverride']); + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . $board_config['override_user_style'] . "' WHERE config_name='override_user_style'"; + $db->sql_query($sql); + // recache config table + if(defined('XS_MODS_CATEGORY_HIERARCHY210') && !empty($config)) + { + $config->read(true); + } +} + +// +// move all users to some style +// +if(!empty($HTTP_GET_VARS['moveusers']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['moveusers']); + $sql = "UPDATE " . USERS_TABLE . " SET user_style='" . $id . "' WHERE user_id > 0"; + $db->sql_query($sql); +} + +// +// move all users from some style +// +if(!empty($HTTP_GET_VARS['moveaway']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['moveaway']); + $id2 = intval($HTTP_GET_VARS['movestyle']); + if($id2) + { + $sql = "UPDATE " . USERS_TABLE . " SET user_style='" . $id2 . "' WHERE user_style = " . $id; + } + else + { + $sql = "UPDATE " . USERS_TABLE . " SET user_style = NULL WHERE user_style = " . $id; + } + $db->sql_query($sql); +} + +// +// set admin-only style (Admin Templates mod) +// +if(!empty($HTTP_GET_VARS['setadmin']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['setadmin']); + $setadmin = empty($HTTP_GET_VARS['admin']) ? 0 : 1; + $sql = "UPDATE " . THEMES_TABLE . " SET theme_public='{$setadmin}' WHERE themes_id='{$id}'"; + $db->sql_query($sql); + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + // recache themes table + if ( empty($themes) ) + { + $themes = new themes(); + } + if ( !empty($themes) ) + { + $themes->read(true); + } + } +} + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(defined('XS_MODS_ADMIN_TEMPLATES')) +{ + $sql = str_replace(', style_name', ', style_name, theme_public', $sql); +} +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$style_override = $board_config['override_user_style']; +$style_default = $board_config['default_style']; +$num_users = 0; +$style_ids = array(); + +for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'STYLE' => $style_rowset[$i]['style_name'], + 'TEMPLATE' => $style_rowset[$i]['template_name'], + 'ID' => $id, + 'TOTAL' => $total, + 'U_TOTAL' => append_sid('xs_styles.' . $phpEx . '?list=' . $id), + 'U_DEFAULT' => append_sid('xs_styles.' . $phpEx . '?setdefault=' . $id), + 'U_OVERRIDE' => append_sid('xs_styles.' . $phpEx . '?setoverride=' . ($style_override ? '0' : '1')), + 'U_SWITCHALL' => append_sid('xs_styles.' . $phpEx . '?moveusers=' . $id), + ) + ); + if($total > 0) + { + $template->assign_block_vars('styles.users', array()); + } + if($id == $style_default) + { + $template->assign_block_vars('styles.default', array()); + if($style_override) + { + $template->assign_block_vars('styles.default.override', array()); + } + else + { + $template->assign_block_vars('styles.default.nooverride', array()); + } + } + else + { + $template->assign_block_vars('styles.nodefault', array()); + if(defined('XS_MODS_ADMIN_TEMPLATES')) + { + if($style_rowset[$i]['theme_public']) + { + $template->assign_block_vars('styles.nodefault.admin_only', array( + 'U_CHANGE' => append_sid('xs_styles.'.$phpEx.'?setadmin='.$id.'&admin=0') + )); + } + else + { + $template->assign_block_vars('styles.nodefault.public', array( + 'U_CHANGE' => append_sid('xs_styles.'.$phpEx.'?setadmin='.$id.'&admin=1') + )); + } + } + } + if($total) + { + $template->assign_block_vars('styles.total', array()); + } + else + { + $template->assign_block_vars('styles.none', array()); + } +} + +// get number of users using default style +$sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE . ' WHERE user_style = NULL'; +$result = $db->sql_query($sql); +if($result) +{ + $total = $db->sql_fetchrow($result); + $num_default = $total['total']; + $num_users += $num_default; +} + +// get number of users +$sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE; +$result = $db->sql_query($sql); +if(!$result) +{ + $total_users = 0; +} +else +{ + $total = $db->sql_fetchrow($result); + $total_users = $total['total']; +} + +$template->assign_vars(array( + 'U_SCRIPT' => 'xs_styles.' . $phpEx, + 'NUM_DEFAULT' => $num_default + ) +); + +if($total_users > $num_users) +{ + // fix problem + $sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = NULL WHERE user_style NOT IN (' . implode(', ', $style_ids) . ')'; + $db->sql_query($sql); +} + +// +// get list of users +// +if(isset($HTTP_GET_VARS['list'])) +{ + $id = intval($HTTP_GET_VARS['list']); + $template->assign_block_vars('list_users', array()); + $sql = "SELECT user_id, username FROM " . USERS_TABLE . " WHERE user_style='{$id}' ORDER BY username ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error('Could not get users list!', __LINE__, __FILE__); + } + $rowset = $db->sql_fetchrowset($result); + for($i=0; $iassign_block_vars('list_users.user', array( + 'NUM' => $i + 1, + 'ID' => $rowset[$i]['user_id'], + 'NAME' => htmlspecialchars($rowset[$i]['username']), + ) + ); + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'styles.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_uninstall.php b/phpBB2/admin/xs_uninstall.php new file mode 100644 index 0000000..89cb1c6 --- /dev/null +++ b/phpBB2/admin/xs_uninstall.php @@ -0,0 +1,258 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_uninstall_styles'] . '')); + +$lang['xs_uninstall_back'] = str_replace('{URL}', append_sid('xs_uninstall.'.$phpEx), $lang['xs_uninstall_back']); +$lang['xs_goto_default'] = str_replace('{URL}', append_sid('xs_styles.'.$phpEx), $lang['xs_goto_default']); + +// +// uninstall style +// +if(isset($HTTP_GET_VARS['remove']) && !defined('DEMO_MODE')) +{ + $remove_id = intval($HTTP_GET_VARS['remove']); + if($board_config['default_style'] == $remove_id) + { + xs_error(str_replace('{URL}', append_sid('xs_styles.'.$phpEx), $lang['xs_uninstall_default']) . '

' . $lang['xs_uninstall_back']); + } + $sql = "SELECT themes_id, template_name, style_name FROM " . THEMES_TABLE . " WHERE themes_id='{$remove_id}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'] . '

' . $lang['xs_uninstall_back'], __LINE__, __FILE__); + } + $row = $db->sql_fetchrow($result); + if(empty($row['themes_id'])) + { + xs_error($lang['xs_no_style_info'] . '

' . $lang['xs_uninstall_back'], __LINE__, __FILE__); + } + $sql = "UPDATE " . USERS_TABLE . " SET user_style=NULL WHERE user_style='{$remove_id}'"; + $db->sql_query($sql); + $sql = "DELETE FROM " . THEMES_TABLE . " WHERE themes_id='{$remove_id}'"; + $db->sql_query($sql); + $template->assign_block_vars('removed', array()); + // remove files + if(!empty($HTTP_GET_VARS['dir'])) + { + $HTTP_POST_VARS['remove'] = addslashes($row['template_name']); + } + // remove config + if(empty($HTTP_GET_VARS['nocfg']) && isset($board_config['xs_style_'.$row['template_name']])) + { + $sql = "DELETE FROM " . CONFIG_TABLE . " WHERE config_name='" . addslashes("xs_style_{$row['template_name']}") . "'"; + $db->sql_query($sql); + $template->assign_block_vars('left_refresh', array( + 'ACTION' => append_sid('index.' . $phpEx . '?pane=left') + )); + // recache config table for cat_hierarchy 2.1.0 + if(isset($GLOBALS['config']) && is_object($GLOBALS['config'])) + { + global $config; + $config->read(true); + } + } + // recache themes table + if(defined('XS_MODS_CATEGORY_HIERARCHY210')) + { + if ( empty($themes) ) + { + $themes = new themes(); + } + if ( !empty($themes) ) + { + $themes->read(true); + } + } +} + +function remove_all($dir) +{ + $res = opendir($dir); + if(!$res) + { + return false; + } + while(($file = readdir($res)) !== false) + { + if($file !== '.' && $file !== '..') + { + $str = $dir . '/' . $file; + if(is_dir($str)) + { + remove_all($str); + @rmdir($str); + } + else + { + @unlink($str); + } + } + } + closedir($res); +} + +// +// remove files +// +if(isset($HTTP_POST_VARS['remove']) && !defined('DEMO_MODE')) +{ + $remove = stripslashes($HTTP_POST_VARS['remove']); + $params = array('remove' => $remove); + if(!get_ftp_config(append_sid('xs_uninstall.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_uninstall.'.$phpEx), $params, true); + $write_local = false; + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $write_local_dir = '../templates/'; + } + if(!$write_local) + { + // + // Generate actions list + // + $actions = array(); + // chdir to templates directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => 'templates' + ); + // chdir to template + $actions[] = array( + 'command' => 'chdir', + 'dir' => $remove + ); + // remove all files + $actions[] = array( + 'command' => 'removeall', + 'ignore' => true + ); + $actions[] = array( + 'command' => 'cdup' + ); + $actions[] = array( + 'command' => 'rmdir', + 'dir' => $remove + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); +/* echo ""; */ + } + else + { + remove_all('../templates/'.$remove); + @rmdir('../templates/'.$remove); + } + $template->assign_block_vars('removed', array()); +} + + + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name, style_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$tpl = array(); +for($i=0; $i $styles) +{ + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => htmlspecialchars($tpl), + 'ROWS' => count($styles), + ) + ); + if(count($styles) > 1) + { + for($i=0; $iassign_block_vars('styles.item', array( + 'ID' => $styles[$i]['themes_id'], + 'THEME' => htmlspecialchars($styles[$i]['style_name']), + 'U_DELETE' => append_sid('xs_uninstall.'.$phpEx.'?remove='.$styles[$i]['themes_id'].'&nocfg=1'), + ) + ); + $template->assign_block_vars('styles.item.nodelete', array()); + } + } + else + { + $i = 0; + $template->assign_block_vars('styles.item', array( + 'ID' => $styles[$i]['themes_id'], + 'THEME' => htmlspecialchars($styles[$i]['style_name']), + 'U_DELETE' => append_sid('xs_uninstall.'.$phpEx.'?remove='.$styles[$i]['themes_id']), + ) + ); + $template->assign_block_vars('styles.item.delete', array( + 'U_DELETE' => append_sid('xs_uninstall.'.$phpEx.'?dir=1&remove='.$styles[$i]['themes_id']), + ) + ); + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'uninstall.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/admin/xs_update.php b/phpBB2/admin/xs_update.php new file mode 100644 index 0000000..660647d --- /dev/null +++ b/phpBB2/admin/xs_update.php @@ -0,0 +1,320 @@ +xs_version) || $template->xs_version !== 8) +{ + message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_check_for_updates'] . '')); + +$updates = array(); + +function include_update($filename) +{ + $update = array(); + @include($filename); + global $updates; + $updates = array_merge($updates, $update); +} + +if($dir = @opendir($phpbb_root_path. 'templates/')) +{ + while($sub_dir = @readdir($dir)) + if(($sub_dir !== '.') && ($sub_dir !== '..') && ($sub_dir !== 'CVS')) + { + $file = $phpbb_root_path . 'templates/' . $sub_dir . '/xs.cfg'; + if(@file_exists($file)) + { + include_update($file); + } + } + closedir($dir); +} + +// check for xs files in acp. mask: xs_*.cfg +if($dir = @opendir('.')) +{ + while($file = @readdir($dir)) + if(strlen($file) > 6 && substr($file, 0, 3) === 'xs_' && substr($file, strlen($file) - 4) === '.cfg') + { + include_update($file); + } + closedir($dir); +} + + +// nothing to update +if(!count($updates)) +{ + xs_error($lang['xs_update_nothing']); +} + +// show list of available updates +if(!isset($HTTP_GET_VARS['doupdate'])) +{ + $template->set_filenames(array('body' => XS_TPL_PATH . 'update.tpl')); + $template->assign_vars(array( + 'UPDATE_URL' => append_sid('xs_update.'.$phpEx.'?doupdate=1'), + 'L_XS_UPDATE_TOTAL1' => str_replace('{NUM}', count($updates), $lang['xs_update_total1']), + ) + ); + $counter = 0; + @reset($updates); + foreach($updates as $var => $item) + { + $counter ++; + $type = isset($lang['xs_update_types'][$item['update_type']]) ? $item['update_type'] : 0; + $row_class = $xs_row_class[$counter % 2]; + $template->assign_block_vars('row', + array( + 'ROW_CLASS' => $row_class, + 'NUM' => $counter, + 'VAR' => 'item_'.$counter.'_', + 'ITEM' => htmlspecialchars($var), + 'NAME' => htmlspecialchars($item['update_name']), + 'TYPE' => $lang['xs_update_types'][$type], + 'URL' => htmlspecialchars($item['update_url']), + 'VERSION' => htmlspecialchars($item['update_version']) + ) + ); + $template->assign_block_vars('row.'.(empty($item['update_url']) ? 'nourl' : 'url'), array()); + } + $template->pparse('body'); + xs_exit(); +} + +// check updates. + +// getting list of items to update +@reset($updates); +$urls = array(); +$items = array(); +$i=0; +foreach($updates as $var1 => $item) +{ + $i++; + $var = 'item_'.$i.'_'; + if(!empty($HTTP_POST_VARS[$var.'item']) && !empty($HTTP_POST_VARS[$var.'checked']) && $HTTP_POST_VARS[$var.'checked']) + { + $item = $HTTP_POST_VARS[$var.'item']; + if(!empty($updates[$item]['update_url'])) + { + $items[] = $var1; + $found = false; + $url = $updates[$item]['update_url']; + for($j=0; $j'; + $end_text = ''; + $begin_pos = -1; + $end_pos = -1; + // getting begin and end tags for it + for($k=0; ($k= 0) + { + // getting all data for this item in array + for($k=$begin_pos+1; $k<$end_pos; $k++) + { + $arr2 = explode(' ', $arr[$k], 2); + if(count($arr2) == 2) + { + $data[trim($arr2[0])] = trim($arr2[1]); + } + } + } + else + { + $data['error'] = $lang['xs_update_error_noitem']; + } + $updates[$items[$j]]['data'] = $data; + } + } + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'update2.tpl')); + +@reset($updates); +$count_total = 0; +$count_error = 0; +$count_update = 0; +foreach($updates as $var => $item) +{ + if(isset($item['data']) && is_array($item['data'])) + { + $count_total++; + $type = isset($lang['xs_update_types'][$item['update_type']]) ? $item['update_type'] : 0; + $ver1 = htmlspecialchars($item['update_version']); + $row_class = $xs_row_class[$count_total % 2]; + $template->assign_block_vars('row', + array( + 'ROW_CLASS' => $row_class, + 'ITEM' => htmlspecialchars($item['update_name']), + 'TYPE' => $lang['xs_update_types'][$type], + 'VERSION' => $ver1, + ) + ); + if(!empty($item['data']['version'])) + { + $ver2 = htmlspecialchars($item['data']['version']); + $info = isset($item['data']['info']) ? $item['data']['info'] : ''; + if($ver2 !== $ver1 && (!empty($item['data']['update']) || !empty($item['data']['autoupdate']))) + { + $count_update++; + $u_import = (isset($item['data']['style']) && substr($item['data']['style'], 0, 7) === 'http://') ? append_sid('xs_import.'.$phpEx.'?get_web=' . urlencode($item['data']['style'])) : ''; + $template->assign_block_vars('row.update', + array( + 'NUM' => $count_total, + 'VERSION' => $ver2, + 'UPDATE' => isset($item['data']['update']) ? htmlspecialchars($item['data']['update']) : '', + 'U_IMPORT' => $u_import, + 'INFO' => htmlspecialchars($info), + ) + ); + $template->assign_block_vars('row.update.' . (empty($item['data']['update']) ? 'noupdate' : 'updated'), array()); + $template->assign_block_vars('row.update.' . (empty($item['data']['info']) ? 'noinfo' : 'info'), array()); + $template->assign_block_vars('row.update.' . (empty($u_import) ? 'noimport' : 'import'), array()); + } + else + { + $template->assign_block_vars('row.noupdate', + array( + 'VERSION' => $ver2, + 'MESSAGE' => $lang['xs_update_noupdate'], + 'INFO' => empty($info) ? '' : htmlspecialchars($info), + ) + ); + $template->assign_block_vars('row.noupdate.' . (empty($item['data']['info']) ? 'noinfo' : 'info'), array()); + } + } + else + { + if(empty($item['data']['error'])) + { + $item['data']['error'] = $lang['xs_update_error_noitem']; + } + $template->assign_block_vars('row.error', array('ERROR' => htmlspecialchars($item['data']['error']))); + $count_error++; + } + } +} + +$template->assign_vars( + array( + 'COUNT_TOTAL' => str_replace('{NUM}', $count_total, $lang['xs_update_total1']), + 'COUNT_ERROR' => str_replace('{NUM}', $count_error, $lang['xs_update_total2']), + 'COUNT_UPDATE' => str_replace('{NUM}', $count_update, $lang['xs_update_total3']) + ) +); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2/cache/tpl_Helius.index_body.php b/phpBB2/cache/tpl_Helius.index_body.php new file mode 100755 index 0000000..f2f619e --- /dev/null +++ b/phpBB2/cache/tpl_Helius.index_body.php @@ -0,0 +1,219 @@ +_tpldata['switch_xs_enabled.']) ) ? sizeof($this->_tpldata['switch_xs_enabled.']) : 0; +for ($switch_xs_enabled_i = 0; $switch_xs_enabled_i < $switch_xs_enabled_count; $switch_xs_enabled_i++) +{ + $switch_xs_enabled_item = &$this->_tpldata['switch_xs_enabled.'][$switch_xs_enabled_i]; + $switch_xs_enabled_item['S_ROW_COUNT'] = $switch_xs_enabled_i; + $switch_xs_enabled_item['S_NUM_ROWS'] = $switch_xs_enabled_count; + +?> +vars['PRIVATE_MESSAGE_INFO'])) +{ + $this->vars['PRIVATE_MESSAGE_INFO'] = '' . $this->vars['PRIVATE_MESSAGE_INFO'] . ''; +} + +?> + + + + + + +
+ _tpldata['switch_user_logged_in.']) ) ? sizeof($this->_tpldata['switch_user_logged_in.']) : 0; +for ($switch_user_logged_in_i = 0; $switch_user_logged_in_i < $switch_user_logged_in_count; $switch_user_logged_in_i++) +{ + $switch_user_logged_in_item = &$this->_tpldata['switch_user_logged_in.'][$switch_user_logged_in_i]; + $switch_user_logged_in_item['S_ROW_COUNT'] = $switch_user_logged_in_i; + $switch_user_logged_in_item['S_NUM_ROWS'] = $switch_user_logged_in_count; + +?> + vars['PRIVATE_MESSAGE_INFO']) ? $this->vars['PRIVATE_MESSAGE_INFO'] : $this->lang('PRIVATE_MESSAGE_INFO'); ?>
+ vars['LAST_VISIT_DATE']) ? $this->vars['LAST_VISIT_DATE'] : $this->lang('LAST_VISIT_DATE'); ?>
+ + vars['CURRENT_TIME']) ? $this->vars['CURRENT_TIME'] : $this->lang('CURRENT_TIME'); ?>
+ vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ _tpldata['switch_user_logged_in.']) ) ? sizeof($this->_tpldata['switch_user_logged_in.']) : 0; +for ($switch_user_logged_in_i = 0; $switch_user_logged_in_i < $switch_user_logged_in_count; $switch_user_logged_in_i++) +{ + $switch_user_logged_in_item = &$this->_tpldata['switch_user_logged_in.'][$switch_user_logged_in_i]; + $switch_user_logged_in_item['S_ROW_COUNT'] = $switch_user_logged_in_i; + $switch_user_logged_in_item['S_NUM_ROWS'] = $switch_user_logged_in_count; + +?> + vars['L_SEARCH_NEW']) ? $this->vars['L_SEARCH_NEW'] : $this->lang('L_SEARCH_NEW'); ?>
vars['L_SEARCH_SELF']) ? $this->vars['L_SEARCH_SELF'] : $this->lang('L_SEARCH_SELF'); ?>
+ + vars['L_SEARCH_UNANSWERED']) ? $this->vars['L_SEARCH_UNANSWERED'] : $this->lang('L_SEARCH_UNANSWERED'); ?>
+ vars['L_MARK_FORUMS_READ']) ? $this->vars['L_MARK_FORUMS_READ'] : $this->lang('L_MARK_FORUMS_READ'); ?>
+ +_tpldata['catrow.']) ) ? sizeof($this->_tpldata['catrow.']) : 0; +for ($catrow_i = 0; $catrow_i < $catrow_count; $catrow_i++) +{ + $catrow_item = &$this->_tpldata['catrow.'][$catrow_i]; + $catrow_item['S_ROW_COUNT'] = $catrow_i; + $catrow_item['S_NUM_ROWS'] = $catrow_count; + +?> +vars['TPL_HDR1']) ? $this->vars['TPL_HDR1'] : $this->lang('TPL_HDR1'); ?>  vars['TPL_HDR2']) ? $this->vars['TPL_HDR2'] : $this->lang('TPL_HDR2'); ?>
+ + + + + + + + + + + + + + + +
 vars['L_FORUM']) ? $this->vars['L_FORUM'] : $this->lang('L_FORUM'); ?>  vars['L_TOPICS']) ? $this->vars['L_TOPICS'] : $this->lang('L_TOPICS'); ?>  vars['L_POSTS']) ? $this->vars['L_POSTS'] : $this->lang('L_POSTS'); ?>  vars['L_LASTPOST']) ? $this->vars['L_LASTPOST'] : $this->lang('L_LASTPOST'); ?> 
<?php echo isset($forumrow_item['L_FORUM_FOLDER_ALT']) ? $forumrow_item['L_FORUM_FOLDER_ALT'] : ''; ?>
+

+
vars['TPL_FTR']) ? $this->vars['TPL_FTR'] : $this->lang('TPL_FTR'); ?> + +
+ + +vars['TPL_HDR1']) ? $this->vars['TPL_HDR1'] : $this->lang('TPL_HDR1'); ?> vars['L_WHO_IS_ONLINE']) ? $this->vars['L_WHO_IS_ONLINE'] : $this->lang('L_WHO_IS_ONLINE'); ?> vars['TPL_HDR2']) ? $this->vars['TPL_HDR2'] : $this->lang('TPL_HDR2'); ?> + + + + + + + +
<?php echo isset($this->vars['L_WHO_IS_ONLINE']) ? $this->vars['L_WHO_IS_ONLINE'] : $this->lang('L_WHO_IS_ONLINE'); ?>vars['TOTAL_POSTS']) ? $this->vars['TOTAL_POSTS'] : $this->lang('TOTAL_POSTS'); ?>
vars['TOTAL_USERS']) ? $this->vars['TOTAL_USERS'] : $this->lang('TOTAL_USERS'); ?>
vars['NEWEST_USER']) ? $this->vars['NEWEST_USER'] : $this->lang('NEWEST_USER'); ?>
+
vars['TOTAL_USERS_ONLINE']) ? $this->vars['TOTAL_USERS_ONLINE'] : $this->lang('TOTAL_USERS_ONLINE'); ?>   [ vars['L_WHOSONLINE_ADMIN']) ? $this->vars['L_WHOSONLINE_ADMIN'] : $this->lang('L_WHOSONLINE_ADMIN'); ?> ]   [ vars['L_WHOSONLINE_MOD']) ? $this->vars['L_WHOSONLINE_MOD'] : $this->lang('L_WHOSONLINE_MOD'); ?> ]
vars['RECORD_USERS']) ? $this->vars['RECORD_USERS'] : $this->lang('RECORD_USERS'); ?>
vars['LOGGED_IN_USER_LIST']) ? $this->vars['LOGGED_IN_USER_LIST'] : $this->lang('LOGGED_IN_USER_LIST'); ?>
vars['L_ONLINE_EXPLAIN']) ? $this->vars['L_ONLINE_EXPLAIN'] : $this->lang('L_ONLINE_EXPLAIN'); ?>
vars['TPL_FTR']) ? $this->vars['TPL_FTR'] : $this->lang('TPL_FTR'); ?> +
+ +_tpldata['switch_user_logged_out.']) ) ? sizeof($this->_tpldata['switch_user_logged_out.']) : 0; +for ($switch_user_logged_out_i = 0; $switch_user_logged_out_i < $switch_user_logged_out_count; $switch_user_logged_out_i++) +{ + $switch_user_logged_out_item = &$this->_tpldata['switch_user_logged_out.'][$switch_user_logged_out_i]; + $switch_user_logged_out_item['S_ROW_COUNT'] = $switch_user_logged_out_i; + $switch_user_logged_out_item['S_NUM_ROWS'] = $switch_user_logged_out_count; + +?> +
+vars['TPL_HDR1']) ? $this->vars['TPL_HDR1'] : $this->lang('TPL_HDR1'); ?>vars['L_LOGIN_LOGOUT']) ? $this->vars['L_LOGIN_LOGOUT'] : $this->lang('L_LOGIN_LOGOUT'); ?>vars['TPL_HDR2']) ? $this->vars['TPL_HDR2'] : $this->lang('TPL_HDR2'); ?> + + + +
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>: + +    vars['L_PASSWORD']) ? $this->vars['L_PASSWORD'] : $this->lang('L_PASSWORD'); ?>: + + +      vars['L_AUTO_LOGIN']) ? $this->vars['L_AUTO_LOGIN'] : $this->lang('L_AUTO_LOGIN'); ?> + + +     + +
vars['TPL_FTR']) ? $this->vars['TPL_FTR'] : $this->lang('TPL_FTR'); ?> +
+
+ + + + + + + + + + + + + +
<?php echo isset($this->vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_FORUM_LOCKED']) ? $this->vars['L_FORUM_LOCKED'] : $this->lang('L_FORUM_LOCKED'); ?>vars['L_FORUM_LOCKED']) ? $this->vars['L_FORUM_LOCKED'] : $this->lang('L_FORUM_LOCKED'); ?>
diff --git a/phpBB2/cache/tpl_Helius.jumpbox.php b/phpBB2/cache/tpl_Helius.jumpbox.php new file mode 100755 index 0000000..ec5db12 --- /dev/null +++ b/phpBB2/cache/tpl_Helius.jumpbox.php @@ -0,0 +1,146 @@ +_tpldata['switch_xs_enabled.']) ) ? sizeof($this->_tpldata['switch_xs_enabled.']) : 0; +for ($switch_xs_enabled_i = 0; $switch_xs_enabled_i < $switch_xs_enabled_count; $switch_xs_enabled_i++) +{ + $switch_xs_enabled_item = &$this->_tpldata['switch_xs_enabled.'][$switch_xs_enabled_i]; + $switch_xs_enabled_item['S_ROW_COUNT'] = $switch_xs_enabled_i; + $switch_xs_enabled_item['S_NUM_ROWS'] = $switch_xs_enabled_count; + +?> + tags. +// + +$str = $this->vars['S_JUMPBOX_SELECT']; +$options = array(); +// getting header +$pos = strpos($str, ' 0) +{ + $start = substr($str, 0, $pos); + $str = substr($str, $pos, strlen($str)); +} +else +{ + $start = 0; +} +// getting footer +$str = strrev($str); +$pos = strpos($str, strrev('')); +if($pos > 0) +{ + $end = strrev(substr($str, 0, $pos)); + $str = substr($str, $pos, strlen($str)); +} +else +{ + $end = ''; +} +$str = trim(strrev($str)); +// getting all options +while(strlen($str) > 0) +{ + $pos = strpos($str, ''); + if($pos > 0) + { + $pos += 9; + $item = trim(substr($str, 0, $pos)); + $str = trim(substr($str, $pos, strlen($str))); + } + else + { + $item = $str; + $str = ''; + } + $value = ''; + $text = ''; + $selected = false; + $pos = strpos($item, '>') + 1; + // getting text + $text = substr($item, $pos, strlen($item)); + $item = substr($item, 0, $pos); + $pos = strpos($text, '<'); + if($pos) + { + $text = substr($text, 0, $pos); + } + // checking if item is selected + if(strpos($str1, ' selected')) + { + $selected = true; + } + // getting value + $pos = strpos($item, 'value="'); + if($pos) + { + $pos += 7; + $str1 = substr($item, $pos, strlen($item)); + $pos = strpos($str1, '"'); + $value = substr($str1, 0, $pos); + } + $options[] = array( + 'text' => $text, + 'value' => $value, + 'selected' => $selected + ); +} + +$text = $start; +$group = 0; +for($i=0; $i= 2) + { + $item = $options[$i+1]; + $i+=2; + $group = true; + $text .= ''; + } + } + else + { + $text .= ''; +} +$text .= $end; +$this->vars['S_JUMPBOX_SELECT'] = $text; + +?> + + + + + + + +
vars['S_JUMPBOX_SELECT']) ? $this->vars['S_JUMPBOX_SELECT'] : $this->lang('S_JUMPBOX_SELECT'); ?>  
\ No newline at end of file diff --git a/phpBB2/cache/tpl_Helius.overall_footer.php b/phpBB2/cache/tpl_Helius.overall_footer.php new file mode 100755 index 0000000..202d644 --- /dev/null +++ b/phpBB2/cache/tpl_Helius.overall_footer.php @@ -0,0 +1,41 @@ + +

vars['ADMIN_LINK']) ? $this->vars['ADMIN_LINK'] : $this->lang('ADMIN_LINK'); ?>
+ +Powered by phpBB vars['PHPBB_VERSION']) ? $this->vars['PHPBB_VERSION'] : $this->lang('PHPBB_VERSION'); ?> © 2001-2004 phpBB Group
Designed for Trushkin.net | Themes Database
vars['TRANSLATION_INFO']) ? $this->vars['TRANSLATION_INFO'] : $this->lang('TRANSLATION_INFO'); ?>
+ + + + + + diff --git a/phpBB2/cache/tpl_Helius.overall_header.php b/phpBB2/cache/tpl_Helius.overall_header.php new file mode 100755 index 0000000..7360341 --- /dev/null +++ b/phpBB2/cache/tpl_Helius.overall_header.php @@ -0,0 +1,319 @@ + + + + + + +vars['META']) ? $this->vars['META'] : $this->lang('META'); ?> +vars['NAV_LINKS']) ? $this->vars['NAV_LINKS'] : $this->lang('NAV_LINKS'); ?> +<?php echo isset($this->vars['SITENAME']) ? $this->vars['SITENAME'] : $this->lang('SITENAME'); ?> :: <?php echo isset($this->vars['PAGE_TITLE']) ? $this->vars['PAGE_TITLE'] : $this->lang('PAGE_TITLE'); ?> + + +_tpldata['switch_enable_pm_popup.']) ) ? sizeof($this->_tpldata['switch_enable_pm_popup.']) : 0; +for ($switch_enable_pm_popup_i = 0; $switch_enable_pm_popup_i < $switch_enable_pm_popup_count; $switch_enable_pm_popup_i++) +{ + $switch_enable_pm_popup_item = &$this->_tpldata['switch_enable_pm_popup.'][$switch_enable_pm_popup_i]; + $switch_enable_pm_popup_item['S_ROW_COUNT'] = $switch_enable_pm_popup_i; + $switch_enable_pm_popup_item['S_NUM_ROWS'] = $switch_enable_pm_popup_count; + +?> + + + + + + + + + + + + +
+ + + + + + + + +
+ + + _tpldata['switch_user_logged_out.']) ) ? sizeof($this->_tpldata['switch_user_logged_out.']) : 0; +for ($switch_user_logged_out_i = 0; $switch_user_logged_out_i < $switch_user_logged_out_count; $switch_user_logged_out_i++) +{ + $switch_user_logged_out_item = &$this->_tpldata['switch_user_logged_out.'][$switch_user_logged_out_i]; + $switch_user_logged_out_item['S_ROW_COUNT'] = $switch_user_logged_out_i; + $switch_user_logged_out_item['S_NUM_ROWS'] = $switch_user_logged_out_count; + +?> + + + + _tpldata['switch_user_logged_in.']) ) ? sizeof($this->_tpldata['switch_user_logged_in.']) : 0; +for ($switch_user_logged_in_i = 0; $switch_user_logged_in_i < $switch_user_logged_in_count; $switch_user_logged_in_i++) +{ + $switch_user_logged_in_item = &$this->_tpldata['switch_user_logged_in.'][$switch_user_logged_in_i]; + $switch_user_logged_in_item['S_ROW_COUNT'] = $switch_user_logged_in_i; + $switch_user_logged_in_item['S_NUM_ROWS'] = $switch_user_logged_in_count; + +?> + + + + + + + _tpldata['switch_user_logged_in.']) ) ? sizeof($this->_tpldata['switch_user_logged_in.']) : 0; +for ($switch_user_logged_in_i = 0; $switch_user_logged_in_i < $switch_user_logged_in_count; $switch_user_logged_in_i++) +{ + $switch_user_logged_in_item = &$this->_tpldata['switch_user_logged_in.'][$switch_user_logged_in_i]; + $switch_user_logged_in_item['S_ROW_COUNT'] = $switch_user_logged_in_i; + $switch_user_logged_in_item['S_NUM_ROWS'] = $switch_user_logged_in_count; + +?> + + + + + +
<?php echo isset($this->vars['L_LOGIN_LOGOUT']) ? $this->vars['L_LOGIN_LOGOUT'] : $this->lang('L_LOGIN_LOGOUT'); ?><?php echo isset($this->vars['L_REGISTER']) ? $this->vars['L_REGISTER'] : $this->lang('L_REGISTER'); ?><?php echo isset($this->vars['L_PROFILE']) ? $this->vars['L_PROFILE'] : $this->lang('L_PROFILE'); ?><?php echo isset($this->vars['PRIVATE_MESSAGE_INFO']) ? $this->vars['PRIVATE_MESSAGE_INFO'] : $this->lang('PRIVATE_MESSAGE_INFO'); ?><?php echo isset($this->vars['L_FAQ']) ? $this->vars['L_FAQ'] : $this->lang('L_FAQ'); ?><?php echo isset($this->vars['L_MEMBERLIST']) ? $this->vars['L_MEMBERLIST'] : $this->lang('L_MEMBERLIST'); ?><?php echo isset($this->vars['L_SEARCH']) ? $this->vars['L_SEARCH'] : $this->lang('L_SEARCH'); ?><?php echo isset($this->vars['L_USERGROUPS']) ? $this->vars['L_USERGROUPS'] : $this->lang('L_USERGROUPS'); ?><?php echo isset($this->vars['L_LOGIN_LOGOUT']) ? $this->vars['L_LOGIN_LOGOUT'] : $this->lang('L_LOGIN_LOGOUT'); ?><?php echo isset($this->vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
vars['SITE_DESCRIPTION']) ? $this->vars['SITE_DESCRIPTION'] : $this->lang('SITE_DESCRIPTION'); ?>
+
+ +
+ + + + + +
diff --git a/phpBB2/cache/tpl_Helius.viewforum_body.php b/phpBB2/cache/tpl_Helius.viewforum_body.php new file mode 100755 index 0000000..06c40e1 --- /dev/null +++ b/phpBB2/cache/tpl_Helius.viewforum_body.php @@ -0,0 +1,126 @@ + +
+ + + + + + + + + + +
vars['L_MODERATOR']) ? $this->vars['L_MODERATOR'] : $this->lang('L_MODERATOR'); ?>: vars['MODERATORS']) ? $this->vars['MODERATORS'] : $this->lang('MODERATORS'); ?>
vars['LOGGED_IN_USER_LIST']) ? $this->vars['LOGGED_IN_USER_LIST'] : $this->lang('LOGGED_IN_USER_LIST'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?>
<?php echo isset($this->vars['L_POST_NEW_TOPIC']) ? $this->vars['L_POST_NEW_TOPIC'] : $this->lang('L_POST_NEW_TOPIC'); ?>
+ +vars['TPL_HDR1']) ? $this->vars['TPL_HDR1'] : $this->lang('TPL_HDR1'); ?>vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>vars['TPL_HDR2']) ? $this->vars['TPL_HDR2'] : $this->lang('TPL_HDR2'); ?> + + + + + + + + _tpldata['topicrow.']) ) ? sizeof($this->_tpldata['topicrow.']) : 0; +for ($topicrow_i = 0; $topicrow_i < $topicrow_count; $topicrow_i++) +{ + $topicrow_item = &$this->_tpldata['topicrow.'][$topicrow_i]; + $topicrow_item['S_ROW_COUNT'] = $topicrow_i; + $topicrow_item['S_NUM_ROWS'] = $topicrow_count; + +?> + + + + + + + + + + _tpldata['switch_no_topics.']) ) ? sizeof($this->_tpldata['switch_no_topics.']) : 0; +for ($switch_no_topics_i = 0; $switch_no_topics_i < $switch_no_topics_count; $switch_no_topics_i++) +{ + $switch_no_topics_item = &$this->_tpldata['switch_no_topics.'][$switch_no_topics_i]; + $switch_no_topics_item['S_ROW_COUNT'] = $switch_no_topics_i; + $switch_no_topics_item['S_NUM_ROWS'] = $switch_no_topics_count; + +?> + + + + + + + +
 vars['L_TOPICS']) ? $this->vars['L_TOPICS'] : $this->lang('L_TOPICS'); ?>  vars['L_REPLIES']) ? $this->vars['L_REPLIES'] : $this->lang('L_REPLIES'); ?>  vars['L_AUTHOR']) ? $this->vars['L_AUTHOR'] : $this->lang('L_AUTHOR'); ?>  vars['L_VIEWS']) ? $this->vars['L_VIEWS'] : $this->lang('L_VIEWS'); ?>  vars['L_LASTPOST']) ? $this->vars['L_LASTPOST'] : $this->lang('L_LASTPOST'); ?> 
<?php echo isset($topicrow_item['L_TOPIC_FOLDER_ALT']) ? $topicrow_item['L_TOPIC_FOLDER_ALT'] : ''; ?>
+

vars['L_NO_TOPICS']) ? $this->vars['L_NO_TOPICS'] : $this->lang('L_NO_TOPICS'); ?>
vars['L_DISPLAY_TOPICS']) ? $this->vars['L_DISPLAY_TOPICS'] : $this->lang('L_DISPLAY_TOPICS'); ?>: vars['S_SELECT_TOPIC_DAYS']) ? $this->vars['S_SELECT_TOPIC_DAYS'] : $this->lang('S_SELECT_TOPIC_DAYS'); ?>  + +
vars['TPL_FTR']) ? $this->vars['TPL_FTR'] : $this->lang('TPL_FTR'); ?> + + + + + + + + + + +
<?php echo isset($this->vars['L_POST_NEW_TOPIC']) ? $this->vars['L_POST_NEW_TOPIC'] : $this->lang('L_POST_NEW_TOPIC'); ?>   vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?> » vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?> +
vars['PAGE_NUMBER']) ? $this->vars['PAGE_NUMBER'] : $this->lang('PAGE_NUMBER'); ?>
+
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
<?php echo isset($this->vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>
<?php echo isset($this->vars['L_NEW_POSTS_HOT']) ? $this->vars['L_NEW_POSTS_HOT'] : $this->lang('L_NEW_POSTS_HOT'); ?>vars['L_NEW_POSTS_HOT']) ? $this->vars['L_NEW_POSTS_HOT'] : $this->lang('L_NEW_POSTS_HOT'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS_HOT']) ? $this->vars['L_NO_NEW_POSTS_HOT'] : $this->lang('L_NO_NEW_POSTS_HOT'); ?>vars['L_NO_NEW_POSTS_HOT']) ? $this->vars['L_NO_NEW_POSTS_HOT'] : $this->lang('L_NO_NEW_POSTS_HOT'); ?>
<?php echo isset($this->vars['L_NEW_POSTS_TOPIC_LOCKED']) ? $this->vars['L_NEW_POSTS_TOPIC_LOCKED'] : $this->lang('L_NEW_POSTS_TOPIC_LOCKED'); ?>vars['L_NEW_POSTS_LOCKED']) ? $this->vars['L_NEW_POSTS_LOCKED'] : $this->lang('L_NEW_POSTS_LOCKED'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS_TOPIC_LOCKED']) ? $this->vars['L_NO_NEW_POSTS_TOPIC_LOCKED'] : $this->lang('L_NO_NEW_POSTS_TOPIC_LOCKED'); ?>vars['L_NO_NEW_POSTS_LOCKED']) ? $this->vars['L_NO_NEW_POSTS_LOCKED'] : $this->lang('L_NO_NEW_POSTS_LOCKED'); ?>
vars['S_AUTH_LIST']) ? $this->vars['S_AUTH_LIST'] : $this->lang('S_AUTH_LIST'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.admin.admin_message_body.php b/phpBB2/cache/tpl_subSilver.admin.admin_message_body.php new file mode 100644 index 0000000..36d68de --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.admin_message_body.php @@ -0,0 +1,17 @@ + +

+ + + + + + + + +
vars['MESSAGE_TITLE']) ? $this->vars['MESSAGE_TITLE'] : $this->lang('MESSAGE_TITLE'); ?>
vars['MESSAGE_TEXT']) ? $this->vars['MESSAGE_TEXT'] : $this->lang('MESSAGE_TEXT'); ?>
+ +
diff --git a/phpBB2/cache/tpl_subSilver.admin.board_config_body.php b/phpBB2/cache/tpl_subSilver.admin.board_config_body.php new file mode 100644 index 0000000..3bdc344 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.board_config_body.php @@ -0,0 +1,256 @@ + +

vars['L_CONFIGURATION_TITLE']) ? $this->vars['L_CONFIGURATION_TITLE'] : $this->lang('L_CONFIGURATION_TITLE'); ?>

+ +

vars['L_CONFIGURATION_EXPLAIN']) ? $this->vars['L_CONFIGURATION_EXPLAIN'] : $this->lang('L_CONFIGURATION_EXPLAIN'); ?>

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_GENERAL_SETTINGS']) ? $this->vars['L_GENERAL_SETTINGS'] : $this->lang('L_GENERAL_SETTINGS'); ?>
vars['L_SERVER_NAME']) ? $this->vars['L_SERVER_NAME'] : $this->lang('L_SERVER_NAME'); ?>
vars['L_SERVER_PORT']) ? $this->vars['L_SERVER_PORT'] : $this->lang('L_SERVER_PORT'); ?>
vars['L_SERVER_PORT_EXPLAIN']) ? $this->vars['L_SERVER_PORT_EXPLAIN'] : $this->lang('L_SERVER_PORT_EXPLAIN'); ?>
vars['L_SCRIPT_PATH']) ? $this->vars['L_SCRIPT_PATH'] : $this->lang('L_SCRIPT_PATH'); ?>
vars['L_SCRIPT_PATH_EXPLAIN']) ? $this->vars['L_SCRIPT_PATH_EXPLAIN'] : $this->lang('L_SCRIPT_PATH_EXPLAIN'); ?>
vars['L_SITE_NAME']) ? $this->vars['L_SITE_NAME'] : $this->lang('L_SITE_NAME'); ?>
vars['L_SITE_NAME_EXPLAIN']) ? $this->vars['L_SITE_NAME_EXPLAIN'] : $this->lang('L_SITE_NAME_EXPLAIN'); ?>
vars['L_SITE_DESCRIPTION']) ? $this->vars['L_SITE_DESCRIPTION'] : $this->lang('L_SITE_DESCRIPTION'); ?>
vars['L_DISABLE_BOARD']) ? $this->vars['L_DISABLE_BOARD'] : $this->lang('L_DISABLE_BOARD'); ?>
vars['L_DISABLE_BOARD_EXPLAIN']) ? $this->vars['L_DISABLE_BOARD_EXPLAIN'] : $this->lang('L_DISABLE_BOARD_EXPLAIN'); ?>
vars['S_DISABLE_BOARD_YES']) ? $this->vars['S_DISABLE_BOARD_YES'] : $this->lang('S_DISABLE_BOARD_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['S_DISABLE_BOARD_NO']) ? $this->vars['S_DISABLE_BOARD_NO'] : $this->lang('S_DISABLE_BOARD_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ACCT_ACTIVATION']) ? $this->vars['L_ACCT_ACTIVATION'] : $this->lang('L_ACCT_ACTIVATION'); ?>vars['ACTIVATION_NONE_CHECKED']) ? $this->vars['ACTIVATION_NONE_CHECKED'] : $this->lang('ACTIVATION_NONE_CHECKED'); ?> />vars['L_NONE']) ? $this->vars['L_NONE'] : $this->lang('L_NONE'); ?>   vars['ACTIVATION_USER_CHECKED']) ? $this->vars['ACTIVATION_USER_CHECKED'] : $this->lang('ACTIVATION_USER_CHECKED'); ?> />vars['L_USER']) ? $this->vars['L_USER'] : $this->lang('L_USER'); ?>   vars['ACTIVATION_ADMIN_CHECKED']) ? $this->vars['ACTIVATION_ADMIN_CHECKED'] : $this->lang('ACTIVATION_ADMIN_CHECKED'); ?> />vars['L_ADMIN']) ? $this->vars['L_ADMIN'] : $this->lang('L_ADMIN'); ?>
vars['L_VISUAL_CONFIRM']) ? $this->vars['L_VISUAL_CONFIRM'] : $this->lang('L_VISUAL_CONFIRM'); ?>
vars['L_VISUAL_CONFIRM_EXPLAIN']) ? $this->vars['L_VISUAL_CONFIRM_EXPLAIN'] : $this->lang('L_VISUAL_CONFIRM_EXPLAIN'); ?>
vars['CONFIRM_ENABLE']) ? $this->vars['CONFIRM_ENABLE'] : $this->lang('CONFIRM_ENABLE'); ?> />vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   vars['CONFIRM_DISABLE']) ? $this->vars['CONFIRM_DISABLE'] : $this->lang('CONFIRM_DISABLE'); ?> />vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_BOARD_EMAIL_FORM']) ? $this->vars['L_BOARD_EMAIL_FORM'] : $this->lang('L_BOARD_EMAIL_FORM'); ?>
vars['L_BOARD_EMAIL_FORM_EXPLAIN']) ? $this->vars['L_BOARD_EMAIL_FORM_EXPLAIN'] : $this->lang('L_BOARD_EMAIL_FORM_EXPLAIN'); ?>
vars['BOARD_EMAIL_FORM_ENABLE']) ? $this->vars['BOARD_EMAIL_FORM_ENABLE'] : $this->lang('BOARD_EMAIL_FORM_ENABLE'); ?> /> vars['L_ENABLED']) ? $this->vars['L_ENABLED'] : $this->lang('L_ENABLED'); ?>  vars['BOARD_EMAIL_FORM_DISABLE']) ? $this->vars['BOARD_EMAIL_FORM_DISABLE'] : $this->lang('BOARD_EMAIL_FORM_DISABLE'); ?> /> vars['L_DISABLED']) ? $this->vars['L_DISABLED'] : $this->lang('L_DISABLED'); ?>
vars['L_FLOOD_INTERVAL']) ? $this->vars['L_FLOOD_INTERVAL'] : $this->lang('L_FLOOD_INTERVAL'); ?>
vars['L_FLOOD_INTERVAL_EXPLAIN']) ? $this->vars['L_FLOOD_INTERVAL_EXPLAIN'] : $this->lang('L_FLOOD_INTERVAL_EXPLAIN'); ?>
vars['L_TOPICS_PER_PAGE']) ? $this->vars['L_TOPICS_PER_PAGE'] : $this->lang('L_TOPICS_PER_PAGE'); ?>
vars['L_POSTS_PER_PAGE']) ? $this->vars['L_POSTS_PER_PAGE'] : $this->lang('L_POSTS_PER_PAGE'); ?>
vars['L_HOT_THRESHOLD']) ? $this->vars['L_HOT_THRESHOLD'] : $this->lang('L_HOT_THRESHOLD'); ?>
vars['L_DEFAULT_STYLE']) ? $this->vars['L_DEFAULT_STYLE'] : $this->lang('L_DEFAULT_STYLE'); ?>vars['STYLE_SELECT']) ? $this->vars['STYLE_SELECT'] : $this->lang('STYLE_SELECT'); ?>
vars['L_OVERRIDE_STYLE']) ? $this->vars['L_OVERRIDE_STYLE'] : $this->lang('L_OVERRIDE_STYLE'); ?>
vars['L_OVERRIDE_STYLE_EXPLAIN']) ? $this->vars['L_OVERRIDE_STYLE_EXPLAIN'] : $this->lang('L_OVERRIDE_STYLE_EXPLAIN'); ?>
vars['OVERRIDE_STYLE_YES']) ? $this->vars['OVERRIDE_STYLE_YES'] : $this->lang('OVERRIDE_STYLE_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['OVERRIDE_STYLE_NO']) ? $this->vars['OVERRIDE_STYLE_NO'] : $this->lang('OVERRIDE_STYLE_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_DEFAULT_LANGUAGE']) ? $this->vars['L_DEFAULT_LANGUAGE'] : $this->lang('L_DEFAULT_LANGUAGE'); ?>vars['LANG_SELECT']) ? $this->vars['LANG_SELECT'] : $this->lang('LANG_SELECT'); ?>
vars['L_DATE_FORMAT']) ? $this->vars['L_DATE_FORMAT'] : $this->lang('L_DATE_FORMAT'); ?>
vars['L_DATE_FORMAT_EXPLAIN']) ? $this->vars['L_DATE_FORMAT_EXPLAIN'] : $this->lang('L_DATE_FORMAT_EXPLAIN'); ?>
vars['L_SYSTEM_TIMEZONE']) ? $this->vars['L_SYSTEM_TIMEZONE'] : $this->lang('L_SYSTEM_TIMEZONE'); ?>vars['TIMEZONE_SELECT']) ? $this->vars['TIMEZONE_SELECT'] : $this->lang('TIMEZONE_SELECT'); ?>
vars['L_ENABLE_GZIP']) ? $this->vars['L_ENABLE_GZIP'] : $this->lang('L_ENABLE_GZIP'); ?>vars['GZIP_YES']) ? $this->vars['GZIP_YES'] : $this->lang('GZIP_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['GZIP_NO']) ? $this->vars['GZIP_NO'] : $this->lang('GZIP_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ENABLE_PRUNE']) ? $this->vars['L_ENABLE_PRUNE'] : $this->lang('L_ENABLE_PRUNE'); ?>vars['PRUNE_YES']) ? $this->vars['PRUNE_YES'] : $this->lang('PRUNE_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['PRUNE_NO']) ? $this->vars['PRUNE_NO'] : $this->lang('PRUNE_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_COOKIE_SETTINGS']) ? $this->vars['L_COOKIE_SETTINGS'] : $this->lang('L_COOKIE_SETTINGS'); ?>
vars['L_COOKIE_SETTINGS_EXPLAIN']) ? $this->vars['L_COOKIE_SETTINGS_EXPLAIN'] : $this->lang('L_COOKIE_SETTINGS_EXPLAIN'); ?>
vars['L_COOKIE_DOMAIN']) ? $this->vars['L_COOKIE_DOMAIN'] : $this->lang('L_COOKIE_DOMAIN'); ?>
vars['L_COOKIE_NAME']) ? $this->vars['L_COOKIE_NAME'] : $this->lang('L_COOKIE_NAME'); ?>
vars['L_COOKIE_PATH']) ? $this->vars['L_COOKIE_PATH'] : $this->lang('L_COOKIE_PATH'); ?>
vars['L_COOKIE_SECURE']) ? $this->vars['L_COOKIE_SECURE'] : $this->lang('L_COOKIE_SECURE'); ?>
vars['L_COOKIE_SECURE_EXPLAIN']) ? $this->vars['L_COOKIE_SECURE_EXPLAIN'] : $this->lang('L_COOKIE_SECURE_EXPLAIN'); ?>
vars['S_COOKIE_SECURE_DISABLED']) ? $this->vars['S_COOKIE_SECURE_DISABLED'] : $this->lang('S_COOKIE_SECURE_DISABLED'); ?> />vars['L_DISABLED']) ? $this->vars['L_DISABLED'] : $this->lang('L_DISABLED'); ?>   vars['S_COOKIE_SECURE_ENABLED']) ? $this->vars['S_COOKIE_SECURE_ENABLED'] : $this->lang('S_COOKIE_SECURE_ENABLED'); ?> />vars['L_ENABLED']) ? $this->vars['L_ENABLED'] : $this->lang('L_ENABLED'); ?>
vars['L_SESSION_LENGTH']) ? $this->vars['L_SESSION_LENGTH'] : $this->lang('L_SESSION_LENGTH'); ?>
vars['L_PRIVATE_MESSAGING']) ? $this->vars['L_PRIVATE_MESSAGING'] : $this->lang('L_PRIVATE_MESSAGING'); ?>
vars['L_DISABLE_PRIVATE_MESSAGING']) ? $this->vars['L_DISABLE_PRIVATE_MESSAGING'] : $this->lang('L_DISABLE_PRIVATE_MESSAGING'); ?>vars['S_PRIVMSG_ENABLED']) ? $this->vars['S_PRIVMSG_ENABLED'] : $this->lang('S_PRIVMSG_ENABLED'); ?> />vars['L_ENABLED']) ? $this->vars['L_ENABLED'] : $this->lang('L_ENABLED'); ?>   vars['S_PRIVMSG_DISABLED']) ? $this->vars['S_PRIVMSG_DISABLED'] : $this->lang('S_PRIVMSG_DISABLED'); ?> />vars['L_DISABLED']) ? $this->vars['L_DISABLED'] : $this->lang('L_DISABLED'); ?>
vars['L_INBOX_LIMIT']) ? $this->vars['L_INBOX_LIMIT'] : $this->lang('L_INBOX_LIMIT'); ?>
vars['L_SENTBOX_LIMIT']) ? $this->vars['L_SENTBOX_LIMIT'] : $this->lang('L_SENTBOX_LIMIT'); ?>
vars['L_SAVEBOX_LIMIT']) ? $this->vars['L_SAVEBOX_LIMIT'] : $this->lang('L_SAVEBOX_LIMIT'); ?>
vars['L_ABILITIES_SETTINGS']) ? $this->vars['L_ABILITIES_SETTINGS'] : $this->lang('L_ABILITIES_SETTINGS'); ?>
vars['L_MAX_POLL_OPTIONS']) ? $this->vars['L_MAX_POLL_OPTIONS'] : $this->lang('L_MAX_POLL_OPTIONS'); ?>
vars['L_ALLOW_HTML']) ? $this->vars['L_ALLOW_HTML'] : $this->lang('L_ALLOW_HTML'); ?>vars['HTML_YES']) ? $this->vars['HTML_YES'] : $this->lang('HTML_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['HTML_NO']) ? $this->vars['HTML_NO'] : $this->lang('HTML_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALLOWED_TAGS']) ? $this->vars['L_ALLOWED_TAGS'] : $this->lang('L_ALLOWED_TAGS'); ?>
vars['L_ALLOWED_TAGS_EXPLAIN']) ? $this->vars['L_ALLOWED_TAGS_EXPLAIN'] : $this->lang('L_ALLOWED_TAGS_EXPLAIN'); ?>
vars['L_ALLOW_BBCODE']) ? $this->vars['L_ALLOW_BBCODE'] : $this->lang('L_ALLOW_BBCODE'); ?>vars['BBCODE_YES']) ? $this->vars['BBCODE_YES'] : $this->lang('BBCODE_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['BBCODE_NO']) ? $this->vars['BBCODE_NO'] : $this->lang('BBCODE_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALLOW_SMILIES']) ? $this->vars['L_ALLOW_SMILIES'] : $this->lang('L_ALLOW_SMILIES'); ?>vars['SMILE_YES']) ? $this->vars['SMILE_YES'] : $this->lang('SMILE_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['SMILE_NO']) ? $this->vars['SMILE_NO'] : $this->lang('SMILE_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_SMILIES_PATH']) ? $this->vars['L_SMILIES_PATH'] : $this->lang('L_SMILIES_PATH'); ?>
vars['L_SMILIES_PATH_EXPLAIN']) ? $this->vars['L_SMILIES_PATH_EXPLAIN'] : $this->lang('L_SMILIES_PATH_EXPLAIN'); ?>
vars['L_ALLOW_SIG']) ? $this->vars['L_ALLOW_SIG'] : $this->lang('L_ALLOW_SIG'); ?>vars['SIG_YES']) ? $this->vars['SIG_YES'] : $this->lang('SIG_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['SIG_NO']) ? $this->vars['SIG_NO'] : $this->lang('SIG_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_MAX_SIG_LENGTH']) ? $this->vars['L_MAX_SIG_LENGTH'] : $this->lang('L_MAX_SIG_LENGTH'); ?>
vars['L_MAX_SIG_LENGTH_EXPLAIN']) ? $this->vars['L_MAX_SIG_LENGTH_EXPLAIN'] : $this->lang('L_MAX_SIG_LENGTH_EXPLAIN'); ?>
vars['L_ALLOW_NAME_CHANGE']) ? $this->vars['L_ALLOW_NAME_CHANGE'] : $this->lang('L_ALLOW_NAME_CHANGE'); ?>vars['NAMECHANGE_YES']) ? $this->vars['NAMECHANGE_YES'] : $this->lang('NAMECHANGE_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['NAMECHANGE_NO']) ? $this->vars['NAMECHANGE_NO'] : $this->lang('NAMECHANGE_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_AVATAR_SETTINGS']) ? $this->vars['L_AVATAR_SETTINGS'] : $this->lang('L_AVATAR_SETTINGS'); ?>
vars['L_ALLOW_LOCAL']) ? $this->vars['L_ALLOW_LOCAL'] : $this->lang('L_ALLOW_LOCAL'); ?>vars['AVATARS_LOCAL_YES']) ? $this->vars['AVATARS_LOCAL_YES'] : $this->lang('AVATARS_LOCAL_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['AVATARS_LOCAL_NO']) ? $this->vars['AVATARS_LOCAL_NO'] : $this->lang('AVATARS_LOCAL_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALLOW_REMOTE']) ? $this->vars['L_ALLOW_REMOTE'] : $this->lang('L_ALLOW_REMOTE'); ?>
vars['L_ALLOW_REMOTE_EXPLAIN']) ? $this->vars['L_ALLOW_REMOTE_EXPLAIN'] : $this->lang('L_ALLOW_REMOTE_EXPLAIN'); ?>
vars['AVATARS_REMOTE_YES']) ? $this->vars['AVATARS_REMOTE_YES'] : $this->lang('AVATARS_REMOTE_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['AVATARS_REMOTE_NO']) ? $this->vars['AVATARS_REMOTE_NO'] : $this->lang('AVATARS_REMOTE_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALLOW_UPLOAD']) ? $this->vars['L_ALLOW_UPLOAD'] : $this->lang('L_ALLOW_UPLOAD'); ?>vars['AVATARS_UPLOAD_YES']) ? $this->vars['AVATARS_UPLOAD_YES'] : $this->lang('AVATARS_UPLOAD_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['AVATARS_UPLOAD_NO']) ? $this->vars['AVATARS_UPLOAD_NO'] : $this->lang('AVATARS_UPLOAD_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_MAX_FILESIZE']) ? $this->vars['L_MAX_FILESIZE'] : $this->lang('L_MAX_FILESIZE'); ?>
vars['L_MAX_FILESIZE_EXPLAIN']) ? $this->vars['L_MAX_FILESIZE_EXPLAIN'] : $this->lang('L_MAX_FILESIZE_EXPLAIN'); ?>
Bytes
vars['L_MAX_AVATAR_SIZE']) ? $this->vars['L_MAX_AVATAR_SIZE'] : $this->lang('L_MAX_AVATAR_SIZE'); ?>
+ vars['L_MAX_AVATAR_SIZE_EXPLAIN']) ? $this->vars['L_MAX_AVATAR_SIZE_EXPLAIN'] : $this->lang('L_MAX_AVATAR_SIZE_EXPLAIN'); ?> +
x
vars['L_AVATAR_STORAGE_PATH']) ? $this->vars['L_AVATAR_STORAGE_PATH'] : $this->lang('L_AVATAR_STORAGE_PATH'); ?>
vars['L_AVATAR_STORAGE_PATH_EXPLAIN']) ? $this->vars['L_AVATAR_STORAGE_PATH_EXPLAIN'] : $this->lang('L_AVATAR_STORAGE_PATH_EXPLAIN'); ?>
vars['L_AVATAR_GALLERY_PATH']) ? $this->vars['L_AVATAR_GALLERY_PATH'] : $this->lang('L_AVATAR_GALLERY_PATH'); ?>
vars['L_AVATAR_GALLERY_PATH_EXPLAIN']) ? $this->vars['L_AVATAR_GALLERY_PATH_EXPLAIN'] : $this->lang('L_AVATAR_GALLERY_PATH_EXPLAIN'); ?>
vars['L_COPPA_SETTINGS']) ? $this->vars['L_COPPA_SETTINGS'] : $this->lang('L_COPPA_SETTINGS'); ?>
vars['L_COPPA_FAX']) ? $this->vars['L_COPPA_FAX'] : $this->lang('L_COPPA_FAX'); ?>
vars['L_COPPA_MAIL']) ? $this->vars['L_COPPA_MAIL'] : $this->lang('L_COPPA_MAIL'); ?>
vars['L_COPPA_MAIL_EXPLAIN']) ? $this->vars['L_COPPA_MAIL_EXPLAIN'] : $this->lang('L_COPPA_MAIL_EXPLAIN'); ?>
vars['L_EMAIL_SETTINGS']) ? $this->vars['L_EMAIL_SETTINGS'] : $this->lang('L_EMAIL_SETTINGS'); ?>
vars['L_ADMIN_EMAIL']) ? $this->vars['L_ADMIN_EMAIL'] : $this->lang('L_ADMIN_EMAIL'); ?>
vars['L_EMAIL_SIG']) ? $this->vars['L_EMAIL_SIG'] : $this->lang('L_EMAIL_SIG'); ?>
vars['L_EMAIL_SIG_EXPLAIN']) ? $this->vars['L_EMAIL_SIG_EXPLAIN'] : $this->lang('L_EMAIL_SIG_EXPLAIN'); ?>
vars['L_USE_SMTP']) ? $this->vars['L_USE_SMTP'] : $this->lang('L_USE_SMTP'); ?>
vars['L_USE_SMTP_EXPLAIN']) ? $this->vars['L_USE_SMTP_EXPLAIN'] : $this->lang('L_USE_SMTP_EXPLAIN'); ?>
vars['SMTP_YES']) ? $this->vars['SMTP_YES'] : $this->lang('SMTP_YES'); ?> /> vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>  vars['SMTP_NO']) ? $this->vars['SMTP_NO'] : $this->lang('SMTP_NO'); ?> /> vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_SMTP_SERVER']) ? $this->vars['L_SMTP_SERVER'] : $this->lang('L_SMTP_SERVER'); ?>
vars['L_SMTP_USERNAME']) ? $this->vars['L_SMTP_USERNAME'] : $this->lang('L_SMTP_USERNAME'); ?>
vars['L_SMTP_USERNAME_EXPLAIN']) ? $this->vars['L_SMTP_USERNAME_EXPLAIN'] : $this->lang('L_SMTP_USERNAME_EXPLAIN'); ?>
vars['L_SMTP_PASSWORD']) ? $this->vars['L_SMTP_PASSWORD'] : $this->lang('L_SMTP_PASSWORD'); ?>
vars['L_SMTP_PASSWORD_EXPLAIN']) ? $this->vars['L_SMTP_PASSWORD_EXPLAIN'] : $this->lang('L_SMTP_PASSWORD_EXPLAIN'); ?>
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>   +
+ +
diff --git a/phpBB2/cache/tpl_subSilver.admin.db_utils_backup_body.php b/phpBB2/cache/tpl_subSilver.admin.db_utils_backup_body.php new file mode 100644 index 0000000..e94d85b --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.db_utils_backup_body.php @@ -0,0 +1,37 @@ + +

vars['L_DATABASE_BACKUP']) ? $this->vars['L_DATABASE_BACKUP'] : $this->lang('L_DATABASE_BACKUP'); ?>

+ +

vars['L_BACKUP_EXPLAIN']) ? $this->vars['L_BACKUP_EXPLAIN'] : $this->lang('L_BACKUP_EXPLAIN'); ?>

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_BACKUP_OPTIONS']) ? $this->vars['L_BACKUP_OPTIONS'] : $this->lang('L_BACKUP_OPTIONS'); ?>
vars['L_FULL_BACKUP']) ? $this->vars['L_FULL_BACKUP'] : $this->lang('L_FULL_BACKUP'); ?>
vars['L_STRUCTURE_BACKUP']) ? $this->vars['L_STRUCTURE_BACKUP'] : $this->lang('L_STRUCTURE_BACKUP'); ?>
vars['L_DATA_BACKUP']) ? $this->vars['L_DATA_BACKUP'] : $this->lang('L_DATA_BACKUP'); ?>
vars['L_ADDITIONAL_TABLES']) ? $this->vars['L_ADDITIONAL_TABLES'] : $this->lang('L_ADDITIONAL_TABLES'); ?>
vars['L_GZIP_COMPRESS']) ? $this->vars['L_GZIP_COMPRESS'] : $this->lang('L_GZIP_COMPRESS'); ?>vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>  vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.admin.index_body.php b/phpBB2/cache/tpl_subSilver.admin.index_body.php new file mode 100644 index 0000000..22217b2 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.index_body.php @@ -0,0 +1,119 @@ + +

vars['L_WELCOME']) ? $this->vars['L_WELCOME'] : $this->lang('L_WELCOME'); ?>

+ +

vars['L_ADMIN_INTRO']) ? $this->vars['L_ADMIN_INTRO'] : $this->lang('L_ADMIN_INTRO'); ?>

+ +

vars['L_FORUM_STATS']) ? $this->vars['L_FORUM_STATS'] : $this->lang('L_FORUM_STATS'); ?>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_STATISTIC']) ? $this->vars['L_STATISTIC'] : $this->lang('L_STATISTIC'); ?>vars['L_VALUE']) ? $this->vars['L_VALUE'] : $this->lang('L_VALUE'); ?>vars['L_STATISTIC']) ? $this->vars['L_STATISTIC'] : $this->lang('L_STATISTIC'); ?>vars['L_VALUE']) ? $this->vars['L_VALUE'] : $this->lang('L_VALUE'); ?>
vars['L_NUMBER_POSTS']) ? $this->vars['L_NUMBER_POSTS'] : $this->lang('L_NUMBER_POSTS'); ?>:vars['NUMBER_OF_POSTS']) ? $this->vars['NUMBER_OF_POSTS'] : $this->lang('NUMBER_OF_POSTS'); ?>vars['L_POSTS_PER_DAY']) ? $this->vars['L_POSTS_PER_DAY'] : $this->lang('L_POSTS_PER_DAY'); ?>:vars['POSTS_PER_DAY']) ? $this->vars['POSTS_PER_DAY'] : $this->lang('POSTS_PER_DAY'); ?>
vars['L_NUMBER_TOPICS']) ? $this->vars['L_NUMBER_TOPICS'] : $this->lang('L_NUMBER_TOPICS'); ?>:vars['NUMBER_OF_TOPICS']) ? $this->vars['NUMBER_OF_TOPICS'] : $this->lang('NUMBER_OF_TOPICS'); ?>vars['L_TOPICS_PER_DAY']) ? $this->vars['L_TOPICS_PER_DAY'] : $this->lang('L_TOPICS_PER_DAY'); ?>:vars['TOPICS_PER_DAY']) ? $this->vars['TOPICS_PER_DAY'] : $this->lang('TOPICS_PER_DAY'); ?>
vars['L_NUMBER_USERS']) ? $this->vars['L_NUMBER_USERS'] : $this->lang('L_NUMBER_USERS'); ?>:vars['NUMBER_OF_USERS']) ? $this->vars['NUMBER_OF_USERS'] : $this->lang('NUMBER_OF_USERS'); ?>vars['L_USERS_PER_DAY']) ? $this->vars['L_USERS_PER_DAY'] : $this->lang('L_USERS_PER_DAY'); ?>:vars['USERS_PER_DAY']) ? $this->vars['USERS_PER_DAY'] : $this->lang('USERS_PER_DAY'); ?>
vars['L_BOARD_STARTED']) ? $this->vars['L_BOARD_STARTED'] : $this->lang('L_BOARD_STARTED'); ?>:vars['START_DATE']) ? $this->vars['START_DATE'] : $this->lang('START_DATE'); ?>vars['L_AVATAR_DIR_SIZE']) ? $this->vars['L_AVATAR_DIR_SIZE'] : $this->lang('L_AVATAR_DIR_SIZE'); ?>:vars['AVATAR_DIR_SIZE']) ? $this->vars['AVATAR_DIR_SIZE'] : $this->lang('AVATAR_DIR_SIZE'); ?>
vars['L_DB_SIZE']) ? $this->vars['L_DB_SIZE'] : $this->lang('L_DB_SIZE'); ?>:vars['DB_SIZE']) ? $this->vars['DB_SIZE'] : $this->lang('DB_SIZE'); ?>vars['L_GZIP_COMPRESSION']) ? $this->vars['L_GZIP_COMPRESSION'] : $this->lang('L_GZIP_COMPRESSION'); ?>:vars['GZIP_COMPRESSION']) ? $this->vars['GZIP_COMPRESSION'] : $this->lang('GZIP_COMPRESSION'); ?>
+

vars['L_WHO_IS_ONLINE']) ? $this->vars['L_WHO_IS_ONLINE'] : $this->lang('L_WHO_IS_ONLINE'); ?>

+ + + + + + + + + + _tpldata['reg_user_row.']) ) ? sizeof($this->_tpldata['reg_user_row.']) : 0; +for ($reg_user_row_i = 0; $reg_user_row_i < $reg_user_row_count; $reg_user_row_i++) +{ + $reg_user_row_item = &$this->_tpldata['reg_user_row.'][$reg_user_row_i]; + $reg_user_row_item['S_ROW_COUNT'] = $reg_user_row_i; + $reg_user_row_item['S_NUM_ROWS'] = $reg_user_row_count; + +?> + + + + + + + + + + + + _tpldata['guest_user_row.']) ) ? sizeof($this->_tpldata['guest_user_row.']) : 0; +for ($guest_user_row_i = 0; $guest_user_row_i < $guest_user_row_count; $guest_user_row_i++) +{ + $guest_user_row_item = &$this->_tpldata['guest_user_row.'][$guest_user_row_i]; + $guest_user_row_item['S_ROW_COUNT'] = $guest_user_row_i; + $guest_user_row_item['S_NUM_ROWS'] = $guest_user_row_count; + +?> + + + + + + + + +
 vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>  vars['L_STARTED']) ? $this->vars['L_STARTED'] : $this->lang('L_STARTED'); ?>  vars['L_LAST_UPDATE']) ? $this->vars['L_LAST_UPDATE'] : $this->lang('L_LAST_UPDATE'); ?>  vars['L_FORUM_LOCATION']) ? $this->vars['L_FORUM_LOCATION'] : $this->lang('L_FORUM_LOCATION'); ?>  vars['L_IP_ADDRESS']) ? $this->vars['L_IP_ADDRESS'] : $this->lang('L_IP_ADDRESS'); ?> 
          
.
          
+ +
+ +

vars['L_VERSION_INFORMATION']) ? $this->vars['L_VERSION_INFORMATION'] : $this->lang('L_VERSION_INFORMATION'); ?>

+ +vars['VERSION_INFO']) ? $this->vars['VERSION_INFO'] : $this->lang('VERSION_INFO'); ?> + +
diff --git a/phpBB2/cache/tpl_subSilver.admin.index_frameset.php b/phpBB2/cache/tpl_subSilver.admin.index_frameset.php new file mode 100644 index 0000000..031cec9 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.index_frameset.php @@ -0,0 +1,21 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2/cache/tpl_subSilver.admin.index_navigate.php b/phpBB2/cache/tpl_subSilver.admin.index_navigate.php new file mode 100644 index 0000000..e73d663 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.index_navigate.php @@ -0,0 +1,71 @@ + + + + + + + + +
+ + + + + + + + + + + + + + _tpldata['catrow.']) ) ? sizeof($this->_tpldata['catrow.']) : 0; +for ($catrow_i = 0; $catrow_i < $catrow_count; $catrow_i++) +{ + $catrow_item = &$this->_tpldata['catrow.'][$catrow_i]; + $catrow_item['S_ROW_COUNT'] = $catrow_i; + $catrow_item['S_NUM_ROWS'] = $catrow_count; + +?> + + + + + + + + + +
vars['L_ADMIN']) ? $this->vars['L_ADMIN'] : $this->lang('L_ADMIN'); ?>
vars['L_ADMIN_INDEX']) ? $this->vars['L_ADMIN_INDEX'] : $this->lang('L_ADMIN_INDEX'); ?>
vars['L_FORUM_INDEX']) ? $this->vars['L_FORUM_INDEX'] : $this->lang('L_FORUM_INDEX'); ?>
vars['L_PREVIEW_FORUM']) ? $this->vars['L_PREVIEW_FORUM'] : $this->lang('L_PREVIEW_FORUM'); ?>
+
+
+ +
diff --git a/phpBB2/cache/tpl_subSilver.admin.page_footer.php b/phpBB2/cache/tpl_subSilver.admin.page_footer.php new file mode 100644 index 0000000..a59395e --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.page_footer.php @@ -0,0 +1,26 @@ + + + +
Powered by phpBB vars['PHPBB_VERSION']) ? $this->vars['PHPBB_VERSION'] : $this->lang('PHPBB_VERSION'); ?> © 2001 phpBB Group
vars['TRANSLATION_INFO']) ? $this->vars['TRANSLATION_INFO'] : $this->lang('TRANSLATION_INFO'); ?>
+ + + \ No newline at end of file diff --git a/phpBB2/cache/tpl_subSilver.admin.page_header.php b/phpBB2/cache/tpl_subSilver.admin.page_header.php new file mode 100644 index 0000000..e250cca --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.page_header.php @@ -0,0 +1,230 @@ + + + +vars['META']) ? $this->vars['META'] : $this->lang('META'); ?> + + + +<?php echo isset($this->vars['SITENAME']) ? $this->vars['SITENAME'] : $this->lang('SITENAME'); ?> - <?php echo isset($this->vars['L_PHPBB_ADMIN']) ? $this->vars['L_PHPBB_ADMIN'] : $this->lang('L_PHPBB_ADMIN'); ?> + + + + diff --git a/phpBB2/cache/tpl_subSilver.admin.user_select_body.php b/phpBB2/cache/tpl_subSilver.admin.user_select_body.php new file mode 100644 index 0000000..349e24b --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.user_select_body.php @@ -0,0 +1,17 @@ + +

vars['L_USER_TITLE']) ? $this->vars['L_USER_TITLE'] : $this->lang('L_USER_TITLE'); ?>

+ +

vars['L_USER_EXPLAIN']) ? $this->vars['L_USER_EXPLAIN'] : $this->lang('L_USER_EXPLAIN'); ?>

+ +
+ + + + + + +
vars['L_USER_SELECT']) ? $this->vars['L_USER_SELECT'] : $this->lang('L_USER_SELECT'); ?>
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.admin.userlist_body.php b/phpBB2/cache/tpl_subSilver.admin.userlist_body.php new file mode 100644 index 0000000..2710985 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.admin.userlist_body.php @@ -0,0 +1,208 @@ + + +

vars['L_TITLE']) ? $this->vars['L_TITLE'] : $this->lang('L_TITLE'); ?>

+ +

vars['L_DESCRIPTION']) ? $this->vars['L_DESCRIPTION'] : $this->lang('L_DESCRIPTION'); ?>

+ +
+ + + + + + + + + + +
 vars['L_SORT_BY']) ? $this->vars['L_SORT_BY'] : $this->lang('L_SORT_BY'); ?>vars['L_SHOW']) ? $this->vars['L_SHOW'] : $this->lang('L_SHOW'); ?>vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>
+
+ + + + _tpldata['alphanumsearch.']) ) ? sizeof($this->_tpldata['alphanumsearch.']) : 0; +for ($alphanumsearch_i = 0; $alphanumsearch_i < $alphanumsearch_count; $alphanumsearch_i++) +{ + $alphanumsearch_item = &$this->_tpldata['alphanumsearch.'][$alphanumsearch_i]; + $alphanumsearch_item['S_ROW_COUNT'] = $alphanumsearch_i; + $alphanumsearch_item['S_NUM_ROWS'] = $alphanumsearch_count; + +?> + + + +
+ +
+ +
+ + + + + + + + + _tpldata['user_row.']) ) ? sizeof($this->_tpldata['user_row.']) : 0; +for ($user_row_i = 0; $user_row_i < $user_row_count; $user_row_i++) +{ + $user_row_item = &$this->_tpldata['user_row.'][$user_row_i]; + $user_row_item['S_ROW_COUNT'] = $user_row_i; + $user_row_item['S_NUM_ROWS'] = $user_row_count; + +?> + + + + + + + + + + + + + + + +
 vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>vars['L_ACTIVE']) ? $this->vars['L_ACTIVE'] : $this->lang('L_ACTIVE'); ?>vars['L_JOINED']) ? $this->vars['L_JOINED'] : $this->lang('L_JOINED'); ?>vars['L_ACTIVTY']) ? $this->vars['L_ACTIVTY'] : $this->lang('L_ACTIVTY'); ?>
   vars['L_OPEN_CLOSE']) ? $this->vars['L_OPEN_CLOSE'] : $this->lang('L_OPEN_CLOSE'); ?>>>
+ + +
+ + + + + + +
vars['PAGE_NUMBER']) ? $this->vars['PAGE_NUMBER'] : $this->lang('PAGE_NUMBER'); ?>vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?>
+
+ +
\ No newline at end of file diff --git a/phpBB2/cache/tpl_subSilver.agreement.php b/phpBB2/cache/tpl_subSilver.agreement.php new file mode 100644 index 0000000..4130d38 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.agreement.php @@ -0,0 +1,23 @@ + + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + + + + + + +
vars['SITENAME']) ? $this->vars['SITENAME'] : $this->lang('SITENAME'); ?> - vars['REGISTRATION']) ? $this->vars['REGISTRATION'] : $this->lang('REGISTRATION'); ?>
+ + + +

vars['AGREEMENT']) ? $this->vars['AGREEMENT'] : $this->lang('AGREEMENT'); ?>



diff --git a/phpBB2/cache/tpl_subSilver.confirm_body.php b/phpBB2/cache/tpl_subSilver.confirm_body.php new file mode 100644 index 0000000..464abc8 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.confirm_body.php @@ -0,0 +1,21 @@ + + + + + +
+ + + + + + + + +
vars['MESSAGE_TITLE']) ? $this->vars['MESSAGE_TITLE'] : $this->lang('MESSAGE_TITLE'); ?>

vars['MESSAGE_TEXT']) ? $this->vars['MESSAGE_TEXT'] : $this->lang('MESSAGE_TEXT'); ?>

vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>  
+ +
diff --git a/phpBB2/cache/tpl_subSilver.error_body.php b/phpBB2/cache/tpl_subSilver.error_body.php new file mode 100644 index 0000000..f49ef1a --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.error_body.php @@ -0,0 +1,22 @@ + + + + + +
+ + + + + + + + + +
 
vars['ERROR_MESSAGE']) ? $this->vars['ERROR_MESSAGE'] : $this->lang('ERROR_MESSAGE'); ?>
 
+ +
diff --git a/phpBB2/cache/tpl_subSilver.faq_body.php b/phpBB2/cache/tpl_subSilver.faq_body.php new file mode 100644 index 0000000..bb3c4ca --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.faq_body.php @@ -0,0 +1,116 @@ + + + + + +
+ + + + + + + + + + + +
vars['L_FAQ_TITLE']) ? $this->vars['L_FAQ_TITLE'] : $this->lang('L_FAQ_TITLE'); ?>
+ _tpldata['faq_block_link.']) ) ? sizeof($this->_tpldata['faq_block_link.']) : 0; +for ($faq_block_link_i = 0; $faq_block_link_i < $faq_block_link_count; $faq_block_link_i++) +{ + $faq_block_link_item = &$this->_tpldata['faq_block_link.'][$faq_block_link_i]; + $faq_block_link_item['S_ROW_COUNT'] = $faq_block_link_i; + $faq_block_link_item['S_NUM_ROWS'] = $faq_block_link_count; + +?> +
+ +
+ +
+ +
 
+ +
+ +_tpldata['faq_block.']) ) ? sizeof($this->_tpldata['faq_block.']) : 0; +for ($faq_block_i = 0; $faq_block_i < $faq_block_count; $faq_block_i++) +{ + $faq_block_item = &$this->_tpldata['faq_block.'][$faq_block_i]; + $faq_block_item['S_ROW_COUNT'] = $faq_block_i; + $faq_block_item['S_NUM_ROWS'] = $faq_block_count; + +?> + + + + + + + + + + + + +


vars['L_BACK_TO_TOP']) ? $this->vars['L_BACK_TO_TOP'] : $this->lang('L_BACK_TO_TOP'); ?>
+ +
+ + + + + + +
vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>

vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.groupcp_user_body.php b/phpBB2/cache/tpl_subSilver.groupcp_user_body.php new file mode 100644 index 0000000..f6f4cfe --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.groupcp_user_body.php @@ -0,0 +1,140 @@ + + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + _tpldata['switch_groups_joined.']) ) ? sizeof($this->_tpldata['switch_groups_joined.']) : 0; +for ($switch_groups_joined_i = 0; $switch_groups_joined_i < $switch_groups_joined_count; $switch_groups_joined_i++) +{ + $switch_groups_joined_item = &$this->_tpldata['switch_groups_joined.'][$switch_groups_joined_i]; + $switch_groups_joined_item['S_ROW_COUNT'] = $switch_groups_joined_i; + $switch_groups_joined_item['S_NUM_ROWS'] = $switch_groups_joined_count; + +?> + + + + + + + + + + + + + + + + + _tpldata['switch_groups_remaining.']) ) ? sizeof($this->_tpldata['switch_groups_remaining.']) : 0; +for ($switch_groups_remaining_i = 0; $switch_groups_remaining_i < $switch_groups_remaining_count; $switch_groups_remaining_i++) +{ + $switch_groups_remaining_item = &$this->_tpldata['switch_groups_remaining.'][$switch_groups_remaining_i]; + $switch_groups_remaining_item['S_ROW_COUNT'] = $switch_groups_remaining_i; + $switch_groups_remaining_item['S_NUM_ROWS'] = $switch_groups_remaining_count; + +?> + + + + + + + + +
vars['L_GROUP_MEMBERSHIP_DETAILS']) ? $this->vars['L_GROUP_MEMBERSHIP_DETAILS'] : $this->lang('L_GROUP_MEMBERSHIP_DETAILS'); ?>
vars['L_YOU_BELONG_GROUPS']) ? $this->vars['L_YOU_BELONG_GROUPS'] : $this->lang('L_YOU_BELONG_GROUPS'); ?> + + + + + +
vars['GROUP_MEMBER_SELECT']) ? $this->vars['GROUP_MEMBER_SELECT'] : $this->lang('GROUP_MEMBER_SELECT'); ?> + vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?> +
+
vars['L_PENDING_GROUPS']) ? $this->vars['L_PENDING_GROUPS'] : $this->lang('L_PENDING_GROUPS'); ?> + + + + + +
vars['GROUP_PENDING_SELECT']) ? $this->vars['GROUP_PENDING_SELECT'] : $this->lang('GROUP_PENDING_SELECT'); ?> + vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?> +
+
vars['L_JOIN_A_GROUP']) ? $this->vars['L_JOIN_A_GROUP'] : $this->lang('L_JOIN_A_GROUP'); ?>
vars['L_SELECT_A_GROUP']) ? $this->vars['L_SELECT_A_GROUP'] : $this->lang('L_SELECT_A_GROUP'); ?> + + + + + +
vars['GROUP_LIST_SELECT']) ? $this->vars['GROUP_LIST_SELECT'] : $this->lang('GROUP_LIST_SELECT'); ?> + vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?> +
+
+ + + + + +
vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+ +
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.index_body.php b/phpBB2/cache/tpl_subSilver.index_body.php new file mode 100644 index 0000000..f96615d --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.index_body.php @@ -0,0 +1,182 @@ + + + + + +
+ _tpldata['switch_user_logged_in.']) ) ? sizeof($this->_tpldata['switch_user_logged_in.']) : 0; +for ($switch_user_logged_in_i = 0; $switch_user_logged_in_i < $switch_user_logged_in_count; $switch_user_logged_in_i++) +{ + $switch_user_logged_in_item = &$this->_tpldata['switch_user_logged_in.'][$switch_user_logged_in_i]; + $switch_user_logged_in_item['S_ROW_COUNT'] = $switch_user_logged_in_i; + $switch_user_logged_in_item['S_NUM_ROWS'] = $switch_user_logged_in_count; + +?> + vars['LAST_VISIT_DATE']) ? $this->vars['LAST_VISIT_DATE'] : $this->lang('LAST_VISIT_DATE'); ?>
+ + vars['CURRENT_TIME']) ? $this->vars['CURRENT_TIME'] : $this->lang('CURRENT_TIME'); ?>
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ _tpldata['switch_user_logged_in.']) ) ? sizeof($this->_tpldata['switch_user_logged_in.']) : 0; +for ($switch_user_logged_in_i = 0; $switch_user_logged_in_i < $switch_user_logged_in_count; $switch_user_logged_in_i++) +{ + $switch_user_logged_in_item = &$this->_tpldata['switch_user_logged_in.'][$switch_user_logged_in_i]; + $switch_user_logged_in_item['S_ROW_COUNT'] = $switch_user_logged_in_i; + $switch_user_logged_in_item['S_NUM_ROWS'] = $switch_user_logged_in_count; + +?> + vars['L_SEARCH_NEW']) ? $this->vars['L_SEARCH_NEW'] : $this->lang('L_SEARCH_NEW'); ?>
vars['L_SEARCH_SELF']) ? $this->vars['L_SEARCH_SELF'] : $this->lang('L_SEARCH_SELF'); ?>
+ + vars['L_SEARCH_UNANSWERED']) ? $this->vars['L_SEARCH_UNANSWERED'] : $this->lang('L_SEARCH_UNANSWERED'); ?>
+ + + + + + + + + _tpldata['catrow.']) ) ? sizeof($this->_tpldata['catrow.']) : 0; +for ($catrow_i = 0; $catrow_i < $catrow_count; $catrow_i++) +{ + $catrow_item = &$this->_tpldata['catrow.'][$catrow_i]; + $catrow_item['S_ROW_COUNT'] = $catrow_i; + $catrow_item['S_NUM_ROWS'] = $catrow_count; + +?> + + + + + + + + + + + + + + +
 vars['L_FORUM']) ? $this->vars['L_FORUM'] : $this->lang('L_FORUM'); ?>  vars['L_TOPICS']) ? $this->vars['L_TOPICS'] : $this->lang('L_TOPICS'); ?>  vars['L_POSTS']) ? $this->vars['L_POSTS'] : $this->lang('L_POSTS'); ?>  vars['L_LASTPOST']) ? $this->vars['L_LASTPOST'] : $this->lang('L_LASTPOST'); ?> 
 
<?php echo isset($forumrow_item['L_FORUM_FOLDER_ALT']) ? $forumrow_item['L_FORUM_FOLDER_ALT'] : ''; ?>
+

+
+ + + + + + +
vars['L_MARK_FORUMS_READ']) ? $this->vars['L_MARK_FORUMS_READ'] : $this->lang('L_MARK_FORUMS_READ'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+ + + + + + + + + + + + +
vars['L_WHO_IS_ONLINE']) ? $this->vars['L_WHO_IS_ONLINE'] : $this->lang('L_WHO_IS_ONLINE'); ?>
<?php echo isset($this->vars['L_WHO_IS_ONLINE']) ? $this->vars['L_WHO_IS_ONLINE'] : $this->lang('L_WHO_IS_ONLINE'); ?>vars['TOTAL_POSTS']) ? $this->vars['TOTAL_POSTS'] : $this->lang('TOTAL_POSTS'); ?>
vars['TOTAL_USERS']) ? $this->vars['TOTAL_USERS'] : $this->lang('TOTAL_USERS'); ?>
vars['NEWEST_USER']) ? $this->vars['NEWEST_USER'] : $this->lang('NEWEST_USER'); ?>
+
vars['TOTAL_USERS_ONLINE']) ? $this->vars['TOTAL_USERS_ONLINE'] : $this->lang('TOTAL_USERS_ONLINE'); ?>   [ vars['L_WHOSONLINE_ADMIN']) ? $this->vars['L_WHOSONLINE_ADMIN'] : $this->lang('L_WHOSONLINE_ADMIN'); ?> ]   [ vars['L_WHOSONLINE_MOD']) ? $this->vars['L_WHOSONLINE_MOD'] : $this->lang('L_WHOSONLINE_MOD'); ?> ]
vars['RECORD_USERS']) ? $this->vars['RECORD_USERS'] : $this->lang('RECORD_USERS'); ?>
vars['LOGGED_IN_USER_LIST']) ? $this->vars['LOGGED_IN_USER_LIST'] : $this->lang('LOGGED_IN_USER_LIST'); ?>
+ + + + + +
vars['L_ONLINE_EXPLAIN']) ? $this->vars['L_ONLINE_EXPLAIN'] : $this->lang('L_ONLINE_EXPLAIN'); ?>
+ +_tpldata['switch_user_logged_out.']) ) ? sizeof($this->_tpldata['switch_user_logged_out.']) : 0; +for ($switch_user_logged_out_i = 0; $switch_user_logged_out_i < $switch_user_logged_out_count; $switch_user_logged_out_i++) +{ + $switch_user_logged_out_item = &$this->_tpldata['switch_user_logged_out.'][$switch_user_logged_out_i]; + $switch_user_logged_out_item['S_ROW_COUNT'] = $switch_user_logged_out_i; + $switch_user_logged_out_item['S_NUM_ROWS'] = $switch_user_logged_out_count; + +?> +
+ + + + + + + +
vars['L_LOGIN_LOGOUT']) ? $this->vars['L_LOGIN_LOGOUT'] : $this->lang('L_LOGIN_LOGOUT'); ?>
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>: + +    vars['L_PASSWORD']) ? $this->vars['L_PASSWORD'] : $this->lang('L_PASSWORD'); ?>: + +      vars['L_AUTO_LOGIN']) ? $this->vars['L_AUTO_LOGIN'] : $this->lang('L_AUTO_LOGIN'); ?> + +     + +
+
+ + +
+ + + + + + + + + + + + +
<?php echo isset($this->vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_FORUM_LOCKED']) ? $this->vars['L_FORUM_LOCKED'] : $this->lang('L_FORUM_LOCKED'); ?>vars['L_FORUM_LOCKED']) ? $this->vars['L_FORUM_LOCKED'] : $this->lang('L_FORUM_LOCKED'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.jumpbox.php b/phpBB2/cache/tpl_subSilver.jumpbox.php new file mode 100644 index 0000000..4c81095 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.jumpbox.php @@ -0,0 +1,10 @@ + +
+ + + +
vars['L_JUMP_TO']) ? $this->vars['L_JUMP_TO'] : $this->lang('L_JUMP_TO'); ?>: vars['S_JUMPBOX_SELECT']) ? $this->vars['S_JUMPBOX_SELECT'] : $this->lang('S_JUMPBOX_SELECT'); ?> 
diff --git a/phpBB2/cache/tpl_subSilver.login_body.php b/phpBB2/cache/tpl_subSilver.login_body.php new file mode 100644 index 0000000..c3d19b2 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.login_body.php @@ -0,0 +1,48 @@ + +
+ + + + + +
+ + + + + + + + +
vars['L_ENTER_PASSWORD']) ? $this->vars['L_ENTER_PASSWORD'] : $this->lang('L_ENTER_PASSWORD'); ?>
+ + + + + + + + + + + + + + + + + + + + +
 
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>: + +
vars['L_PASSWORD']) ? $this->vars['L_PASSWORD'] : $this->lang('L_PASSWORD'); ?>: + +
vars['L_AUTO_LOGIN']) ? $this->vars['L_AUTO_LOGIN'] : $this->lang('L_AUTO_LOGIN'); ?>:
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>
vars['L_SEND_PASSWORD']) ? $this->vars['L_SEND_PASSWORD'] : $this->lang('L_SEND_PASSWORD'); ?>
+ +
diff --git a/phpBB2/cache/tpl_subSilver.memberlist_body.php b/phpBB2/cache/tpl_subSilver.memberlist_body.php new file mode 100644 index 0000000..ab1430f --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.memberlist_body.php @@ -0,0 +1,74 @@ + +
+ + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>vars['L_SELECT_SORT_METHOD']) ? $this->vars['L_SELECT_SORT_METHOD'] : $this->lang('L_SELECT_SORT_METHOD'); ?>: vars['S_MODE_SELECT']) ? $this->vars['S_MODE_SELECT'] : $this->lang('S_MODE_SELECT'); ?>  vars['L_ORDER']) ? $this->vars['L_ORDER'] : $this->lang('L_ORDER'); ?> vars['S_ORDER_SELECT']) ? $this->vars['S_ORDER_SELECT'] : $this->lang('S_ORDER_SELECT'); ?>   + +
+ + + + + + + + + + + + _tpldata['memberrow.']) ) ? sizeof($this->_tpldata['memberrow.']) : 0; +for ($memberrow_i = 0; $memberrow_i < $memberrow_count; $memberrow_i++) +{ + $memberrow_item = &$this->_tpldata['memberrow.'][$memberrow_i]; + $memberrow_item['S_ROW_COUNT'] = $memberrow_i; + $memberrow_item['S_NUM_ROWS'] = $memberrow_count; + +?> + + + + + + + + + + + + + + +
# vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>vars['L_EMAIL']) ? $this->vars['L_EMAIL'] : $this->lang('L_EMAIL'); ?>vars['L_FROM']) ? $this->vars['L_FROM'] : $this->lang('L_FROM'); ?>vars['L_JOINED']) ? $this->vars['L_JOINED'] : $this->lang('L_JOINED'); ?>vars['L_POSTS']) ? $this->vars['L_POSTS'] : $this->lang('L_POSTS'); ?>vars['L_WEBSITE']) ? $this->vars['L_WEBSITE'] : $this->lang('L_WEBSITE'); ?>
        
 
+ + + + +
+ + + + + + +
vars['PAGE_NUMBER']) ? $this->vars['PAGE_NUMBER'] : $this->lang('PAGE_NUMBER'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?>
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.message_body.php b/phpBB2/cache/tpl_subSilver.message_body.php new file mode 100644 index 0000000..9727aef --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.message_body.php @@ -0,0 +1,31 @@ + + + + + +
+ + + + + + + + +
vars['MESSAGE_TITLE']) ? $this->vars['MESSAGE_TITLE'] : $this->lang('MESSAGE_TITLE'); ?>
+ + + + + + + + + +
 
vars['MESSAGE_TEXT']) ? $this->vars['MESSAGE_TEXT'] : $this->lang('MESSAGE_TEXT'); ?>
 
+ +
diff --git a/phpBB2/cache/tpl_subSilver.overall_footer.php b/phpBB2/cache/tpl_subSilver.overall_footer.php new file mode 100644 index 0000000..c77b82d --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.overall_footer.php @@ -0,0 +1,23 @@ + +

vars['ADMIN_LINK']) ? $this->vars['ADMIN_LINK'] : $this->lang('ADMIN_LINK'); ?>
+ +Powered by phpBB © 2001, 2005 phpBB Group
vars['TRANSLATION_INFO']) ? $this->vars['TRANSLATION_INFO'] : $this->lang('TRANSLATION_INFO'); ?>
+
+ + + diff --git a/phpBB2/cache/tpl_subSilver.overall_header.php b/phpBB2/cache/tpl_subSilver.overall_header.php new file mode 100644 index 0000000..b3b4491 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.overall_header.php @@ -0,0 +1,288 @@ + + + + + +vars['META']) ? $this->vars['META'] : $this->lang('META'); ?> +vars['NAV_LINKS']) ? $this->vars['NAV_LINKS'] : $this->lang('NAV_LINKS'); ?> +<?php echo isset($this->vars['SITENAME']) ? $this->vars['SITENAME'] : $this->lang('SITENAME'); ?> :: <?php echo isset($this->vars['PAGE_TITLE']) ? $this->vars['PAGE_TITLE'] : $this->lang('PAGE_TITLE'); ?> + + + + + +_tpldata['switch_enable_pm_popup.']) ) ? sizeof($this->_tpldata['switch_enable_pm_popup.']) : 0; +for ($switch_enable_pm_popup_i = 0; $switch_enable_pm_popup_i < $switch_enable_pm_popup_count; $switch_enable_pm_popup_i++) +{ + $switch_enable_pm_popup_item = &$this->_tpldata['switch_enable_pm_popup.'][$switch_enable_pm_popup_i]; + $switch_enable_pm_popup_item['S_ROW_COUNT'] = $switch_enable_pm_popup_i; + $switch_enable_pm_popup_item['S_NUM_ROWS'] = $switch_enable_pm_popup_count; + +?> + + + + + + + + + + + + + + + + + + + + _tpldata['poll_option_rows.']) ) ? sizeof($this->_tpldata['poll_option_rows.']) : 0; +for ($poll_option_rows_i = 0; $poll_option_rows_i < $poll_option_rows_count; $poll_option_rows_i++) +{ + $poll_option_rows_item = &$this->_tpldata['poll_option_rows.'][$poll_option_rows_i]; + $poll_option_rows_item['S_ROW_COUNT'] = $poll_option_rows_i; + $poll_option_rows_item['S_NUM_ROWS'] = $poll_option_rows_count; + +?> + + + + + + + + + + + + + + _tpldata['switch_poll_delete_toggle.']) ) ? sizeof($this->_tpldata['switch_poll_delete_toggle.']) : 0; +for ($switch_poll_delete_toggle_i = 0; $switch_poll_delete_toggle_i < $switch_poll_delete_toggle_count; $switch_poll_delete_toggle_i++) +{ + $switch_poll_delete_toggle_item = &$this->_tpldata['switch_poll_delete_toggle.'][$switch_poll_delete_toggle_i]; + $switch_poll_delete_toggle_item['S_ROW_COUNT'] = $switch_poll_delete_toggle_i; + $switch_poll_delete_toggle_item['S_NUM_ROWS'] = $switch_poll_delete_toggle_count; + +?> + + + + + diff --git a/phpBB2/cache/tpl_subSilver.posting_preview.php b/phpBB2/cache/tpl_subSilver.posting_preview.php new file mode 100644 index 0000000..8444d6c --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.posting_preview.php @@ -0,0 +1,27 @@ + +
+ + + + +
+ + + + + + + + +
 <?php echo isset($this->vars['L_FAQ']) ? $this->vars['L_FAQ'] : $this->lang('L_FAQ'); ?>vars['L_FAQ']) ? $this->vars['L_FAQ'] : $this->lang('L_FAQ'); ?>   <?php echo isset($this->vars['L_SEARCH']) ? $this->vars['L_SEARCH'] : $this->lang('L_SEARCH'); ?>vars['L_SEARCH']) ? $this->vars['L_SEARCH'] : $this->lang('L_SEARCH'); ?>   <?php echo isset($this->vars['L_MEMBERLIST']) ? $this->vars['L_MEMBERLIST'] : $this->lang('L_MEMBERLIST'); ?>vars['L_MEMBERLIST']) ? $this->vars['L_MEMBERLIST'] : $this->lang('L_MEMBERLIST'); ?>   <?php echo isset($this->vars['L_USERGROUPS']) ? $this->vars['L_USERGROUPS'] : $this->lang('L_USERGROUPS'); ?>vars['L_USERGROUPS']) ? $this->vars['L_USERGROUPS'] : $this->lang('L_USERGROUPS'); ?>  + _tpldata['switch_user_logged_out.']) ) ? sizeof($this->_tpldata['switch_user_logged_out.']) : 0; +for ($switch_user_logged_out_i = 0; $switch_user_logged_out_i < $switch_user_logged_out_count; $switch_user_logged_out_i++) +{ + $switch_user_logged_out_item = &$this->_tpldata['switch_user_logged_out.'][$switch_user_logged_out_i]; + $switch_user_logged_out_item['S_ROW_COUNT'] = $switch_user_logged_out_i; + $switch_user_logged_out_item['S_NUM_ROWS'] = $switch_user_logged_out_count; + +?> +  <?php echo isset($this->vars['L_REGISTER']) ? $this->vars['L_REGISTER'] : $this->lang('L_REGISTER'); ?>vars['L_REGISTER']) ? $this->vars['L_REGISTER'] : $this->lang('L_REGISTER'); ?>  + +
 <?php echo isset($this->vars['L_PROFILE']) ? $this->vars['L_PROFILE'] : $this->lang('L_PROFILE'); ?>vars['L_PROFILE']) ? $this->vars['L_PROFILE'] : $this->lang('L_PROFILE'); ?>   <?php echo isset($this->vars['PRIVATE_MESSAGE_INFO']) ? $this->vars['PRIVATE_MESSAGE_INFO'] : $this->lang('PRIVATE_MESSAGE_INFO'); ?>vars['PRIVATE_MESSAGE_INFO']) ? $this->vars['PRIVATE_MESSAGE_INFO'] : $this->lang('PRIVATE_MESSAGE_INFO'); ?>   <?php echo isset($this->vars['L_LOGIN_LOGOUT']) ? $this->vars['L_LOGIN_LOGOUT'] : $this->lang('L_LOGIN_LOGOUT'); ?>vars['L_LOGIN_LOGOUT']) ? $this->vars['L_LOGIN_LOGOUT'] : $this->lang('L_LOGIN_LOGOUT'); ?> 
+ +
diff --git a/phpBB2/cache/tpl_subSilver.posting_body.php b/phpBB2/cache/tpl_subSilver.posting_body.php new file mode 100644 index 0000000..967f406 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.posting_body.php @@ -0,0 +1,695 @@ + + +_tpldata['privmsg_extensions.']) ) ? sizeof($this->_tpldata['privmsg_extensions.']) : 0; +for ($privmsg_extensions_i = 0; $privmsg_extensions_i < $privmsg_extensions_count; $privmsg_extensions_i++) +{ + $privmsg_extensions_item = &$this->_tpldata['privmsg_extensions.'][$privmsg_extensions_i]; + $privmsg_extensions_item['S_ROW_COUNT'] = $privmsg_extensions_i; + $privmsg_extensions_item['S_NUM_ROWS'] = $privmsg_extensions_count; + +?> + + + + +
+ + + + + + + + + + + +
vars['INBOX_IMG']) ? $this->vars['INBOX_IMG'] : $this->lang('INBOX_IMG'); ?>vars['INBOX_LINK']) ? $this->vars['INBOX_LINK'] : $this->lang('INBOX_LINK'); ?>  vars['SENTBOX_IMG']) ? $this->vars['SENTBOX_IMG'] : $this->lang('SENTBOX_IMG'); ?>vars['SENTBOX_LINK']) ? $this->vars['SENTBOX_LINK'] : $this->lang('SENTBOX_LINK'); ?>  vars['OUTBOX_IMG']) ? $this->vars['OUTBOX_IMG'] : $this->lang('OUTBOX_IMG'); ?>vars['OUTBOX_LINK']) ? $this->vars['OUTBOX_LINK'] : $this->lang('OUTBOX_LINK'); ?>  vars['SAVEBOX_IMG']) ? $this->vars['SAVEBOX_IMG'] : $this->lang('SAVEBOX_IMG'); ?>vars['SAVEBOX_LINK']) ? $this->vars['SAVEBOX_LINK'] : $this->lang('SAVEBOX_LINK'); ?>  
+
+ +
+ + +
+ +vars['POST_PREVIEW_BOX']) ? $this->vars['POST_PREVIEW_BOX'] : $this->lang('POST_PREVIEW_BOX'); ?> +vars['ERROR_BOX']) ? $this->vars['ERROR_BOX'] : $this->lang('ERROR_BOX'); ?> + + + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?> + _tpldata['switch_not_privmsg.']) ) ? sizeof($this->_tpldata['switch_not_privmsg.']) : 0; +for ($switch_not_privmsg_i = 0; $switch_not_privmsg_i < $switch_not_privmsg_count; $switch_not_privmsg_i++) +{ + $switch_not_privmsg_item = &$this->_tpldata['switch_not_privmsg.'][$switch_not_privmsg_i]; + $switch_not_privmsg_item['S_ROW_COUNT'] = $switch_not_privmsg_i; + $switch_not_privmsg_item['S_NUM_ROWS'] = $switch_not_privmsg_count; + +?> + -> vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>
+ + + + + + _tpldata['switch_username_select.']) ) ? sizeof($this->_tpldata['switch_username_select.']) : 0; +for ($switch_username_select_i = 0; $switch_username_select_i < $switch_username_select_count; $switch_username_select_i++) +{ + $switch_username_select_item = &$this->_tpldata['switch_username_select.'][$switch_username_select_i]; + $switch_username_select_item['S_ROW_COUNT'] = $switch_username_select_i; + $switch_username_select_item['S_NUM_ROWS'] = $switch_username_select_count; + +?> + + + + + + _tpldata['switch_privmsg.']) ) ? sizeof($this->_tpldata['switch_privmsg.']) : 0; +for ($switch_privmsg_i = 0; $switch_privmsg_i < $switch_privmsg_count; $switch_privmsg_i++) +{ + $switch_privmsg_item = &$this->_tpldata['switch_privmsg.'][$switch_privmsg_i]; + $switch_privmsg_item['S_ROW_COUNT'] = $switch_privmsg_i; + $switch_privmsg_item['S_NUM_ROWS'] = $switch_privmsg_count; + +?> + + + + + + + + + + + + + + + + + + vars['POLLBOX']) ? $this->vars['POLLBOX'] : $this->lang('POLLBOX'); ?> + + + +
vars['L_POST_A']) ? $this->vars['L_POST_A'] : $this->lang('L_POST_A'); ?>
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?> 
vars['L_SUBJECT']) ? $this->vars['L_SUBJECT'] : $this->lang('L_SUBJECT'); ?> + +
+ + + + + + + +
vars['L_MESSAGE_BODY']) ? $this->vars['L_MESSAGE_BODY'] : $this->lang('L_MESSAGE_BODY'); ?>

+ + + + + _tpldata['smilies_row.']) ) ? sizeof($this->_tpldata['smilies_row.']) : 0; +for ($smilies_row_i = 0; $smilies_row_i < $smilies_row_count; $smilies_row_i++) +{ + $smilies_row_item = &$this->_tpldata['smilies_row.'][$smilies_row_i]; + $smilies_row_item['S_ROW_COUNT'] = $smilies_row_i; + $smilies_row_item['S_NUM_ROWS'] = $smilies_row_count; + +?> + + + + + + + _tpldata['switch_smilies_extra.']) ) ? sizeof($this->_tpldata['switch_smilies_extra.']) : 0; +for ($switch_smilies_extra_i = 0; $switch_smilies_extra_i < $switch_smilies_extra_count; $switch_smilies_extra_i++) +{ + $switch_smilies_extra_item = &$this->_tpldata['switch_smilies_extra.'][$switch_smilies_extra_i]; + $switch_smilies_extra_item['S_ROW_COUNT'] = $switch_smilies_extra_i; + $switch_smilies_extra_item['S_NUM_ROWS'] = $switch_smilies_extra_count; + +?> + + + + +
vars['L_EMOTICONS']) ? $this->vars['L_EMOTICONS'] : $this->lang('L_EMOTICONS'); ?>
<?php echo isset($smilies_col_item['SMILEY_DESC']) ? $smilies_col_item['SMILEY_DESC'] : ''; ?>
vars['L_MORE_SMILIES']) ? $this->vars['L_MORE_SMILIES'] : $this->lang('L_MORE_SMILIES'); ?>
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ + + + + +
 vars['L_FONT_COLOR']) ? $this->vars['L_FONT_COLOR'] : $this->lang('L_FONT_COLOR'); ?>: +  vars['L_FONT_SIZE']) ? $this->vars['L_FONT_SIZE'] : $this->lang('L_FONT_SIZE'); ?>: + vars['L_BBCODE_CLOSE_TAGS']) ? $this->vars['L_BBCODE_CLOSE_TAGS'] : $this->lang('L_BBCODE_CLOSE_TAGS'); ?>
+
+ +
+ +
+
vars['L_OPTIONS']) ? $this->vars['L_OPTIONS'] : $this->lang('L_OPTIONS'); ?>
vars['HTML_STATUS']) ? $this->vars['HTML_STATUS'] : $this->lang('HTML_STATUS'); ?>
vars['BBCODE_STATUS']) ? $this->vars['BBCODE_STATUS'] : $this->lang('BBCODE_STATUS'); ?>
vars['SMILIES_STATUS']) ? $this->vars['SMILIES_STATUS'] : $this->lang('SMILIES_STATUS'); ?>
+ + _tpldata['switch_html_checkbox.']) ) ? sizeof($this->_tpldata['switch_html_checkbox.']) : 0; +for ($switch_html_checkbox_i = 0; $switch_html_checkbox_i < $switch_html_checkbox_count; $switch_html_checkbox_i++) +{ + $switch_html_checkbox_item = &$this->_tpldata['switch_html_checkbox.'][$switch_html_checkbox_i]; + $switch_html_checkbox_item['S_ROW_COUNT'] = $switch_html_checkbox_i; + $switch_html_checkbox_item['S_NUM_ROWS'] = $switch_html_checkbox_count; + +?> + + + + + + _tpldata['switch_bbcode_checkbox.']) ) ? sizeof($this->_tpldata['switch_bbcode_checkbox.']) : 0; +for ($switch_bbcode_checkbox_i = 0; $switch_bbcode_checkbox_i < $switch_bbcode_checkbox_count; $switch_bbcode_checkbox_i++) +{ + $switch_bbcode_checkbox_item = &$this->_tpldata['switch_bbcode_checkbox.'][$switch_bbcode_checkbox_i]; + $switch_bbcode_checkbox_item['S_ROW_COUNT'] = $switch_bbcode_checkbox_i; + $switch_bbcode_checkbox_item['S_NUM_ROWS'] = $switch_bbcode_checkbox_count; + +?> + + + + + + _tpldata['switch_smilies_checkbox.']) ) ? sizeof($this->_tpldata['switch_smilies_checkbox.']) : 0; +for ($switch_smilies_checkbox_i = 0; $switch_smilies_checkbox_i < $switch_smilies_checkbox_count; $switch_smilies_checkbox_i++) +{ + $switch_smilies_checkbox_item = &$this->_tpldata['switch_smilies_checkbox.'][$switch_smilies_checkbox_i]; + $switch_smilies_checkbox_item['S_ROW_COUNT'] = $switch_smilies_checkbox_i; + $switch_smilies_checkbox_item['S_NUM_ROWS'] = $switch_smilies_checkbox_count; + +?> + + + + + + _tpldata['switch_signature_checkbox.']) ) ? sizeof($this->_tpldata['switch_signature_checkbox.']) : 0; +for ($switch_signature_checkbox_i = 0; $switch_signature_checkbox_i < $switch_signature_checkbox_count; $switch_signature_checkbox_i++) +{ + $switch_signature_checkbox_item = &$this->_tpldata['switch_signature_checkbox.'][$switch_signature_checkbox_i]; + $switch_signature_checkbox_item['S_ROW_COUNT'] = $switch_signature_checkbox_i; + $switch_signature_checkbox_item['S_NUM_ROWS'] = $switch_signature_checkbox_count; + +?> + + + + + + _tpldata['switch_notify_checkbox.']) ) ? sizeof($this->_tpldata['switch_notify_checkbox.']) : 0; +for ($switch_notify_checkbox_i = 0; $switch_notify_checkbox_i < $switch_notify_checkbox_count; $switch_notify_checkbox_i++) +{ + $switch_notify_checkbox_item = &$this->_tpldata['switch_notify_checkbox.'][$switch_notify_checkbox_i]; + $switch_notify_checkbox_item['S_ROW_COUNT'] = $switch_notify_checkbox_i; + $switch_notify_checkbox_item['S_NUM_ROWS'] = $switch_notify_checkbox_count; + +?> + + + + + + _tpldata['switch_delete_checkbox.']) ) ? sizeof($this->_tpldata['switch_delete_checkbox.']) : 0; +for ($switch_delete_checkbox_i = 0; $switch_delete_checkbox_i < $switch_delete_checkbox_count; $switch_delete_checkbox_i++) +{ + $switch_delete_checkbox_item = &$this->_tpldata['switch_delete_checkbox.'][$switch_delete_checkbox_i]; + $switch_delete_checkbox_item['S_ROW_COUNT'] = $switch_delete_checkbox_i; + $switch_delete_checkbox_item['S_NUM_ROWS'] = $switch_delete_checkbox_count; + +?> + + + + + + _tpldata['switch_type_toggle.']) ) ? sizeof($this->_tpldata['switch_type_toggle.']) : 0; +for ($switch_type_toggle_i = 0; $switch_type_toggle_i < $switch_type_toggle_count; $switch_type_toggle_i++) +{ + $switch_type_toggle_item = &$this->_tpldata['switch_type_toggle.'][$switch_type_toggle_i]; + $switch_type_toggle_item['S_ROW_COUNT'] = $switch_type_toggle_i; + $switch_type_toggle_item['S_NUM_ROWS'] = $switch_type_toggle_count; + +?> + + + + + +
+ vars['S_HTML_CHECKED']) ? $this->vars['S_HTML_CHECKED'] : $this->lang('S_HTML_CHECKED'); ?> /> + vars['L_DISABLE_HTML']) ? $this->vars['L_DISABLE_HTML'] : $this->lang('L_DISABLE_HTML'); ?>
+ vars['S_BBCODE_CHECKED']) ? $this->vars['S_BBCODE_CHECKED'] : $this->lang('S_BBCODE_CHECKED'); ?> /> + vars['L_DISABLE_BBCODE']) ? $this->vars['L_DISABLE_BBCODE'] : $this->lang('L_DISABLE_BBCODE'); ?>
+ vars['S_SMILIES_CHECKED']) ? $this->vars['S_SMILIES_CHECKED'] : $this->lang('S_SMILIES_CHECKED'); ?> /> + vars['L_DISABLE_SMILIES']) ? $this->vars['L_DISABLE_SMILIES'] : $this->lang('L_DISABLE_SMILIES'); ?>
+ vars['S_SIGNATURE_CHECKED']) ? $this->vars['S_SIGNATURE_CHECKED'] : $this->lang('S_SIGNATURE_CHECKED'); ?> /> + vars['L_ATTACH_SIGNATURE']) ? $this->vars['L_ATTACH_SIGNATURE'] : $this->lang('L_ATTACH_SIGNATURE'); ?>
+ vars['S_NOTIFY_CHECKED']) ? $this->vars['S_NOTIFY_CHECKED'] : $this->lang('S_NOTIFY_CHECKED'); ?> /> + vars['L_NOTIFY_ON_REPLY']) ? $this->vars['L_NOTIFY_ON_REPLY'] : $this->lang('L_NOTIFY_ON_REPLY'); ?>
+ + vars['L_DELETE_POST']) ? $this->vars['L_DELETE_POST'] : $this->lang('L_DELETE_POST'); ?>
vars['S_TYPE_TOGGLE']) ? $this->vars['S_TYPE_TOGGLE'] : $this->lang('S_TYPE_TOGGLE'); ?>
+
vars['S_HIDDEN_FORM_FIELDS']) ? $this->vars['S_HIDDEN_FORM_FIELDS'] : $this->lang('S_HIDDEN_FORM_FIELDS'); ?> 
+ + + + + +
vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
+ +vars['TOPIC_REVIEW_BOX']) ? $this->vars['TOPIC_REVIEW_BOX'] : $this->lang('TOPIC_REVIEW_BOX'); ?> diff --git a/phpBB2/cache/tpl_subSilver.posting_poll_body.php b/phpBB2/cache/tpl_subSilver.posting_poll_body.php new file mode 100644 index 0000000..0323fa4 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.posting_poll_body.php @@ -0,0 +1,65 @@ + +
vars['L_ADD_A_POLL']) ? $this->vars['L_ADD_A_POLL'] : $this->lang('L_ADD_A_POLL'); ?>
vars['L_ADD_POLL_EXPLAIN']) ? $this->vars['L_ADD_POLL_EXPLAIN'] : $this->lang('L_ADD_POLL_EXPLAIN'); ?>
vars['L_POLL_QUESTION']) ? $this->vars['L_POLL_QUESTION'] : $this->lang('L_POLL_QUESTION'); ?>
vars['L_POLL_OPTION']) ? $this->vars['L_POLL_OPTION'] : $this->lang('L_POLL_OPTION'); ?>  
vars['L_POLL_OPTION']) ? $this->vars['L_POLL_OPTION'] : $this->lang('L_POLL_OPTION'); ?>  
vars['L_POLL_LENGTH']) ? $this->vars['L_POLL_LENGTH'] : $this->lang('L_POLL_LENGTH'); ?> vars['L_DAYS']) ? $this->vars['L_DAYS'] : $this->lang('L_DAYS'); ?>   vars['L_POLL_LENGTH_EXPLAIN']) ? $this->vars['L_POLL_LENGTH_EXPLAIN'] : $this->lang('L_POLL_LENGTH_EXPLAIN'); ?>
vars['L_POLL_DELETE']) ? $this->vars['L_POLL_DELETE'] : $this->lang('L_POLL_DELETE'); ?>
+ + + + + + + + + + + + +
vars['L_PREVIEW']) ? $this->vars['L_PREVIEW'] : $this->lang('L_PREVIEW'); ?>
<?php echo isset($this->vars['L_POST']) ? $this->vars['L_POST'] : $this->lang('L_POST'); ?>vars['L_POSTED']) ? $this->vars['L_POSTED'] : $this->lang('L_POSTED'); ?>: vars['POST_DATE']) ? $this->vars['POST_DATE'] : $this->lang('POST_DATE'); ?>     vars['L_POST_SUBJECT']) ? $this->vars['L_POST_SUBJECT'] : $this->lang('L_POST_SUBJECT'); ?>: vars['POST_SUBJECT']) ? $this->vars['POST_SUBJECT'] : $this->lang('POST_SUBJECT'); ?>
+ + + +
+ vars['MESSAGE']) ? $this->vars['MESSAGE'] : $this->lang('MESSAGE'); ?> +
+ +
diff --git a/phpBB2/cache/tpl_subSilver.posting_smilies.php b/phpBB2/cache/tpl_subSilver.posting_smilies.php new file mode 100644 index 0000000..4aac458 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.posting_smilies.php @@ -0,0 +1,94 @@ + + + + + + + +
+ + + + + + + + + +
vars['L_EMOTICONS']) ? $this->vars['L_EMOTICONS'] : $this->lang('L_EMOTICONS'); ?>
+ _tpldata['smilies_row.']) ) ? sizeof($this->_tpldata['smilies_row.']) : 0; +for ($smilies_row_i = 0; $smilies_row_i < $smilies_row_count; $smilies_row_i++) +{ + $smilies_row_item = &$this->_tpldata['smilies_row.'][$smilies_row_i]; + $smilies_row_item['S_ROW_COUNT'] = $smilies_row_i; + $smilies_row_item['S_NUM_ROWS'] = $smilies_row_count; + +?> + + + + + + + _tpldata['switch_smilies_extra.']) ) ? sizeof($this->_tpldata['switch_smilies_extra.']) : 0; +for ($switch_smilies_extra_i = 0; $switch_smilies_extra_i < $switch_smilies_extra_count; $switch_smilies_extra_i++) +{ + $switch_smilies_extra_item = &$this->_tpldata['switch_smilies_extra.'][$switch_smilies_extra_i]; + $switch_smilies_extra_item['S_ROW_COUNT'] = $switch_smilies_extra_i; + $switch_smilies_extra_item['S_NUM_ROWS'] = $switch_smilies_extra_count; + +?> + + + + +
<?php echo isset($smilies_col_item['SMILEY_DESC']) ? $smilies_col_item['SMILEY_DESC'] : ''; ?>
vars['L_MORE_SMILIES']) ? $this->vars['L_MORE_SMILIES'] : $this->lang('L_MORE_SMILIES'); ?>

vars['L_CLOSE_WINDOW']) ? $this->vars['L_CLOSE_WINDOW'] : $this->lang('L_CLOSE_WINDOW'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.posting_topic_review.php b/phpBB2/cache/tpl_subSilver.posting_topic_review.php new file mode 100644 index 0000000..fcb7b13 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.posting_topic_review.php @@ -0,0 +1,88 @@ + +_tpldata['switch_inline_mode.']) ) ? sizeof($this->_tpldata['switch_inline_mode.']) : 0; +for ($switch_inline_mode_i = 0; $switch_inline_mode_i < $switch_inline_mode_count; $switch_inline_mode_i++) +{ + $switch_inline_mode_item = &$this->_tpldata['switch_inline_mode.'][$switch_inline_mode_i]; + $switch_inline_mode_item['S_ROW_COUNT'] = $switch_inline_mode_i; + $switch_inline_mode_item['S_NUM_ROWS'] = $switch_inline_mode_count; + +?> + + + + + + + +
vars['L_TOPIC_REVIEW']) ? $this->vars['L_TOPIC_REVIEW'] : $this->lang('L_TOPIC_REVIEW'); ?>
+ diff --git a/phpBB2/cache/tpl_subSilver.privmsgs_body.php b/phpBB2/cache/tpl_subSilver.privmsgs_body.php new file mode 100644 index 0000000..b150005 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.privmsgs_body.php @@ -0,0 +1,169 @@ + + + + + + + + +
+ + + + + + + + + + + +
vars['INBOX_IMG']) ? $this->vars['INBOX_IMG'] : $this->lang('INBOX_IMG'); ?>vars['INBOX']) ? $this->vars['INBOX'] : $this->lang('INBOX'); ?>  vars['SENTBOX_IMG']) ? $this->vars['SENTBOX_IMG'] : $this->lang('SENTBOX_IMG'); ?>vars['SENTBOX']) ? $this->vars['SENTBOX'] : $this->lang('SENTBOX'); ?>  vars['OUTBOX_IMG']) ? $this->vars['OUTBOX_IMG'] : $this->lang('OUTBOX_IMG'); ?>vars['OUTBOX']) ? $this->vars['OUTBOX'] : $this->lang('OUTBOX'); ?>  vars['SAVEBOX_IMG']) ? $this->vars['SAVEBOX_IMG'] : $this->lang('SAVEBOX_IMG'); ?>vars['SAVEBOX']) ? $this->vars['SAVEBOX'] : $this->lang('SAVEBOX'); ?>  
+
+ _tpldata['switch_box_size_notice.']) ) ? sizeof($this->_tpldata['switch_box_size_notice.']) : 0; +for ($switch_box_size_notice_i = 0; $switch_box_size_notice_i < $switch_box_size_notice_count; $switch_box_size_notice_i++) +{ + $switch_box_size_notice_item = &$this->_tpldata['switch_box_size_notice.'][$switch_box_size_notice_i]; + $switch_box_size_notice_item['S_ROW_COUNT'] = $switch_box_size_notice_i; + $switch_box_size_notice_item['S_NUM_ROWS'] = $switch_box_size_notice_count; + +?> + + + + + + + + + + + + +
vars['BOX_SIZE_STATUS']) ? $this->vars['BOX_SIZE_STATUS'] : $this->lang('BOX_SIZE_STATUS'); ?>
+ + + + +
<?php echo isset($this->vars['INBOX_LIMIT_PERCENT']) ? $this->vars['INBOX_LIMIT_PERCENT'] : $this->lang('INBOX_LIMIT_PERCENT'); ?>
+
0%50%100%
+ +
+ +
+ +
+ + + + + + +
vars['POST_PM_IMG']) ? $this->vars['POST_PM_IMG'] : $this->lang('POST_PM_IMG'); ?> vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>vars['L_DISPLAY_MESSAGES']) ? $this->vars['L_DISPLAY_MESSAGES'] : $this->lang('L_DISPLAY_MESSAGES'); ?>: + + +
+ + + + + + + + + + _tpldata['listrow.']) ) ? sizeof($this->_tpldata['listrow.']) : 0; +for ($listrow_i = 0; $listrow_i < $listrow_count; $listrow_i++) +{ + $listrow_item = &$this->_tpldata['listrow.'][$listrow_i]; + $listrow_item['S_ROW_COUNT'] = $listrow_i; + $listrow_item['S_NUM_ROWS'] = $listrow_count; + +?> + + + + + + + + + _tpldata['switch_no_messages.']) ) ? sizeof($this->_tpldata['switch_no_messages.']) : 0; +for ($switch_no_messages_i = 0; $switch_no_messages_i < $switch_no_messages_count; $switch_no_messages_i++) +{ + $switch_no_messages_item = &$this->_tpldata['switch_no_messages.'][$switch_no_messages_i]; + $switch_no_messages_item['S_ROW_COUNT'] = $switch_no_messages_i; + $switch_no_messages_item['S_NUM_ROWS'] = $switch_no_messages_count; + +?> + + + + + + + +
 vars['L_FLAG']) ? $this->vars['L_FLAG'] : $this->lang('L_FLAG'); ?>  vars['L_SUBJECT']) ? $this->vars['L_SUBJECT'] : $this->lang('L_SUBJECT'); ?>  vars['L_FROM_OR_TO']) ? $this->vars['L_FROM_OR_TO'] : $this->lang('L_FROM_OR_TO'); ?>  vars['L_DATE']) ? $this->vars['L_DATE'] : $this->lang('L_DATE'); ?>  vars['L_MARK']) ? $this->vars['L_MARK'] : $this->lang('L_MARK'); ?> 
<?php echo isset($listrow_item['L_PRIVMSG_FOLDER_ALT']) ? $listrow_item['L_PRIVMSG_FOLDER_ALT'] : ''; ?>   + +
vars['L_NO_MESSAGES']) ? $this->vars['L_NO_MESSAGES'] : $this->lang('L_NO_MESSAGES'); ?>
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?> + +   + +   + +
+ + + + + + + +
vars['POST_PM_IMG']) ? $this->vars['POST_PM_IMG'] : $this->lang('POST_PM_IMG'); ?>vars['PAGE_NUMBER']) ? $this->vars['PAGE_NUMBER'] : $this->lang('PAGE_NUMBER'); ?>vars['L_MARK_ALL']) ? $this->vars['L_MARK_ALL'] : $this->lang('L_MARK_ALL'); ?> :: vars['L_UNMARK_ALL']) ? $this->vars['L_UNMARK_ALL'] : $this->lang('L_UNMARK_ALL'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?>
vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.privmsgs_preview.php b/phpBB2/cache/tpl_subSilver.privmsgs_preview.php new file mode 100644 index 0000000..c49b0b3 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.privmsgs_preview.php @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_PREVIEW']) ? $this->vars['L_PREVIEW'] : $this->lang('L_PREVIEW'); ?>
vars['L_FROM']) ? $this->vars['L_FROM'] : $this->lang('L_FROM'); ?>:vars['MESSAGE_FROM']) ? $this->vars['MESSAGE_FROM'] : $this->lang('MESSAGE_FROM'); ?>
vars['L_TO']) ? $this->vars['L_TO'] : $this->lang('L_TO'); ?>:vars['MESSAGE_TO']) ? $this->vars['MESSAGE_TO'] : $this->lang('MESSAGE_TO'); ?>
vars['L_POSTED']) ? $this->vars['L_POSTED'] : $this->lang('L_POSTED'); ?>:vars['POST_DATE']) ? $this->vars['POST_DATE'] : $this->lang('POST_DATE'); ?>
vars['L_SUBJECT']) ? $this->vars['L_SUBJECT'] : $this->lang('L_SUBJECT'); ?>:vars['POST_SUBJECT']) ? $this->vars['POST_SUBJECT'] : $this->lang('POST_SUBJECT'); ?>
vars['MESSAGE']) ? $this->vars['MESSAGE'] : $this->lang('MESSAGE'); ?>
+ +
diff --git a/phpBB2/cache/tpl_subSilver.privmsgs_read_body.php b/phpBB2/cache/tpl_subSilver.privmsgs_read_body.php new file mode 100644 index 0000000..c19bb86 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.privmsgs_read_body.php @@ -0,0 +1,90 @@ + + + + + + + + + + + + +
vars['INBOX_IMG']) ? $this->vars['INBOX_IMG'] : $this->lang('INBOX_IMG'); ?>vars['INBOX']) ? $this->vars['INBOX'] : $this->lang('INBOX'); ?>  vars['SENTBOX_IMG']) ? $this->vars['SENTBOX_IMG'] : $this->lang('SENTBOX_IMG'); ?>vars['SENTBOX']) ? $this->vars['SENTBOX'] : $this->lang('SENTBOX'); ?>  vars['OUTBOX_IMG']) ? $this->vars['OUTBOX_IMG'] : $this->lang('OUTBOX_IMG'); ?>vars['OUTBOX']) ? $this->vars['OUTBOX'] : $this->lang('OUTBOX'); ?>  vars['SAVEBOX_IMG']) ? $this->vars['SAVEBOX_IMG'] : $this->lang('SAVEBOX_IMG'); ?>vars['SAVEBOX']) ? $this->vars['SAVEBOX'] : $this->lang('SAVEBOX'); ?>
+ +
+ +
+ + + + + +
vars['REPLY_PM_IMG']) ? $this->vars['REPLY_PM_IMG'] : $this->lang('REPLY_PM_IMG'); ?> vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
vars['BOX_NAME']) ? $this->vars['BOX_NAME'] : $this->lang('BOX_NAME'); ?> :: vars['L_MESSAGE']) ? $this->vars['L_MESSAGE'] : $this->lang('L_MESSAGE'); ?>
vars['L_FROM']) ? $this->vars['L_FROM'] : $this->lang('L_FROM'); ?>:vars['MESSAGE_FROM']) ? $this->vars['MESSAGE_FROM'] : $this->lang('MESSAGE_FROM'); ?>
vars['L_TO']) ? $this->vars['L_TO'] : $this->lang('L_TO'); ?>:vars['MESSAGE_TO']) ? $this->vars['MESSAGE_TO'] : $this->lang('MESSAGE_TO'); ?>
vars['L_POSTED']) ? $this->vars['L_POSTED'] : $this->lang('L_POSTED'); ?>:vars['POST_DATE']) ? $this->vars['POST_DATE'] : $this->lang('POST_DATE'); ?>
vars['L_SUBJECT']) ? $this->vars['L_SUBJECT'] : $this->lang('L_SUBJECT'); ?>:vars['POST_SUBJECT']) ? $this->vars['POST_SUBJECT'] : $this->lang('POST_SUBJECT'); ?> vars['QUOTE_PM_IMG']) ? $this->vars['QUOTE_PM_IMG'] : $this->lang('QUOTE_PM_IMG'); ?> vars['EDIT_PM_IMG']) ? $this->vars['EDIT_PM_IMG'] : $this->lang('EDIT_PM_IMG'); ?>
vars['MESSAGE']) ? $this->vars['MESSAGE'] : $this->lang('MESSAGE'); ?>
+ + + + +
vars['PROFILE_IMG']) ? $this->vars['PROFILE_IMG'] : $this->lang('PROFILE_IMG'); ?> vars['PM_IMG']) ? $this->vars['PM_IMG'] : $this->lang('PM_IMG'); ?> vars['EMAIL_IMG']) ? $this->vars['EMAIL_IMG'] : $this->lang('EMAIL_IMG'); ?> + vars['WWW_IMG']) ? $this->vars['WWW_IMG'] : $this->lang('WWW_IMG'); ?> vars['AIM_IMG']) ? $this->vars['AIM_IMG'] : $this->lang('AIM_IMG'); ?> vars['YIM_IMG']) ? $this->vars['YIM_IMG'] : $this->lang('YIM_IMG'); ?> vars['MSN_IMG']) ? $this->vars['MSN_IMG'] : $this->lang('MSN_IMG'); ?> 
+
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?> + +   + +
+ + + + + +
vars['REPLY_PM_IMG']) ? $this->vars['REPLY_PM_IMG'] : $this->lang('REPLY_PM_IMG'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.profile_add_body.php b/phpBB2/cache/tpl_subSilver.profile_add_body.php new file mode 100644 index 0000000..c5c1a03 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.profile_add_body.php @@ -0,0 +1,413 @@ + +
vars['S_FORM_ENCTYPE']) ? $this->vars['S_FORM_ENCTYPE'] : $this->lang('S_FORM_ENCTYPE'); ?> method="post"> + +vars['ERROR_BOX']) ? $this->vars['ERROR_BOX'] : $this->lang('ERROR_BOX'); ?> + + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + + + + + + + _tpldata['switch_namechange_disallowed.']) ) ? sizeof($this->_tpldata['switch_namechange_disallowed.']) : 0; +for ($switch_namechange_disallowed_i = 0; $switch_namechange_disallowed_i < $switch_namechange_disallowed_count; $switch_namechange_disallowed_i++) +{ + $switch_namechange_disallowed_item = &$this->_tpldata['switch_namechange_disallowed.'][$switch_namechange_disallowed_i]; + $switch_namechange_disallowed_item['S_ROW_COUNT'] = $switch_namechange_disallowed_i; + $switch_namechange_disallowed_item['S_NUM_ROWS'] = $switch_namechange_disallowed_count; + +?> + + + + + + _tpldata['switch_namechange_allowed.']) ) ? sizeof($this->_tpldata['switch_namechange_allowed.']) : 0; +for ($switch_namechange_allowed_i = 0; $switch_namechange_allowed_i < $switch_namechange_allowed_count; $switch_namechange_allowed_i++) +{ + $switch_namechange_allowed_item = &$this->_tpldata['switch_namechange_allowed.'][$switch_namechange_allowed_i]; + $switch_namechange_allowed_item['S_ROW_COUNT'] = $switch_namechange_allowed_i; + $switch_namechange_allowed_item['S_NUM_ROWS'] = $switch_namechange_allowed_count; + +?> + + + + + + + + + + _tpldata['switch_edit_profile.']) ) ? sizeof($this->_tpldata['switch_edit_profile.']) : 0; +for ($switch_edit_profile_i = 0; $switch_edit_profile_i < $switch_edit_profile_count; $switch_edit_profile_i++) +{ + $switch_edit_profile_item = &$this->_tpldata['switch_edit_profile.'][$switch_edit_profile_i]; + $switch_edit_profile_item['S_ROW_COUNT'] = $switch_edit_profile_i; + $switch_edit_profile_item['S_NUM_ROWS'] = $switch_edit_profile_count; + +?> + + + + + + + + + + + + + + + _tpldata['switch_confirm.']) ) ? sizeof($this->_tpldata['switch_confirm.']) : 0; +for ($switch_confirm_i = 0; $switch_confirm_i < $switch_confirm_count; $switch_confirm_i++) +{ + $switch_confirm_item = &$this->_tpldata['switch_confirm.'][$switch_confirm_i]; + $switch_confirm_item['S_ROW_COUNT'] = $switch_confirm_i; + $switch_confirm_item['S_NUM_ROWS'] = $switch_confirm_count; + +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _tpldata['switch_avatar_block.']) ) ? sizeof($this->_tpldata['switch_avatar_block.']) : 0; +for ($switch_avatar_block_i = 0; $switch_avatar_block_i < $switch_avatar_block_count; $switch_avatar_block_i++) +{ + $switch_avatar_block_item = &$this->_tpldata['switch_avatar_block.'][$switch_avatar_block_i]; + $switch_avatar_block_item['S_ROW_COUNT'] = $switch_avatar_block_i; + $switch_avatar_block_item['S_NUM_ROWS'] = $switch_avatar_block_count; + +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_REGISTRATION_INFO']) ? $this->vars['L_REGISTRATION_INFO'] : $this->lang('L_REGISTRATION_INFO'); ?>
vars['L_ITEMS_REQUIRED']) ? $this->vars['L_ITEMS_REQUIRED'] : $this->lang('L_ITEMS_REQUIRED'); ?>
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>: *vars['USERNAME']) ? $this->vars['USERNAME'] : $this->lang('USERNAME'); ?>
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>: *
vars['L_EMAIL_ADDRESS']) ? $this->vars['L_EMAIL_ADDRESS'] : $this->lang('L_EMAIL_ADDRESS'); ?>: *
vars['L_CURRENT_PASSWORD']) ? $this->vars['L_CURRENT_PASSWORD'] : $this->lang('L_CURRENT_PASSWORD'); ?>: *
+ vars['L_CONFIRM_PASSWORD_EXPLAIN']) ? $this->vars['L_CONFIRM_PASSWORD_EXPLAIN'] : $this->lang('L_CONFIRM_PASSWORD_EXPLAIN'); ?>
+ +
vars['L_NEW_PASSWORD']) ? $this->vars['L_NEW_PASSWORD'] : $this->lang('L_NEW_PASSWORD'); ?>: *
+ vars['L_PASSWORD_IF_CHANGED']) ? $this->vars['L_PASSWORD_IF_CHANGED'] : $this->lang('L_PASSWORD_IF_CHANGED'); ?>
+ +
vars['L_CONFIRM_PASSWORD']) ? $this->vars['L_CONFIRM_PASSWORD'] : $this->lang('L_CONFIRM_PASSWORD'); ?>: *
+ vars['L_PASSWORD_CONFIRM_IF_CHANGED']) ? $this->vars['L_PASSWORD_CONFIRM_IF_CHANGED'] : $this->lang('L_PASSWORD_CONFIRM_IF_CHANGED'); ?>
+ +
vars['L_CONFIRM_CODE_IMPAIRED']) ? $this->vars['L_CONFIRM_CODE_IMPAIRED'] : $this->lang('L_CONFIRM_CODE_IMPAIRED'); ?>

vars['CONFIRM_IMG']) ? $this->vars['CONFIRM_IMG'] : $this->lang('CONFIRM_IMG'); ?>

vars['L_CONFIRM_CODE']) ? $this->vars['L_CONFIRM_CODE'] : $this->lang('L_CONFIRM_CODE'); ?>: *
vars['L_CONFIRM_CODE_EXPLAIN']) ? $this->vars['L_CONFIRM_CODE_EXPLAIN'] : $this->lang('L_CONFIRM_CODE_EXPLAIN'); ?>
 
vars['L_PROFILE_INFO']) ? $this->vars['L_PROFILE_INFO'] : $this->lang('L_PROFILE_INFO'); ?>
vars['L_PROFILE_INFO_NOTICE']) ? $this->vars['L_PROFILE_INFO_NOTICE'] : $this->lang('L_PROFILE_INFO_NOTICE'); ?>
vars['L_ICQ_NUMBER']) ? $this->vars['L_ICQ_NUMBER'] : $this->lang('L_ICQ_NUMBER'); ?>: + +
vars['L_AIM']) ? $this->vars['L_AIM'] : $this->lang('L_AIM'); ?>: + +
vars['L_MESSENGER']) ? $this->vars['L_MESSENGER'] : $this->lang('L_MESSENGER'); ?>: + +
vars['L_YAHOO']) ? $this->vars['L_YAHOO'] : $this->lang('L_YAHOO'); ?>: + +
vars['L_WEBSITE']) ? $this->vars['L_WEBSITE'] : $this->lang('L_WEBSITE'); ?>: + +
vars['L_LOCATION']) ? $this->vars['L_LOCATION'] : $this->lang('L_LOCATION'); ?>: + +
vars['L_OCCUPATION']) ? $this->vars['L_OCCUPATION'] : $this->lang('L_OCCUPATION'); ?>: + +
vars['L_INTERESTS']) ? $this->vars['L_INTERESTS'] : $this->lang('L_INTERESTS'); ?>: + +
vars['L_SIGNATURE']) ? $this->vars['L_SIGNATURE'] : $this->lang('L_SIGNATURE'); ?>:
vars['L_SIGNATURE_EXPLAIN']) ? $this->vars['L_SIGNATURE_EXPLAIN'] : $this->lang('L_SIGNATURE_EXPLAIN'); ?>

vars['HTML_STATUS']) ? $this->vars['HTML_STATUS'] : $this->lang('HTML_STATUS'); ?>
vars['BBCODE_STATUS']) ? $this->vars['BBCODE_STATUS'] : $this->lang('BBCODE_STATUS'); ?>
vars['SMILIES_STATUS']) ? $this->vars['SMILIES_STATUS'] : $this->lang('SMILIES_STATUS'); ?>
+ +
 
vars['L_PREFERENCES']) ? $this->vars['L_PREFERENCES'] : $this->lang('L_PREFERENCES'); ?>
vars['L_PUBLIC_VIEW_EMAIL']) ? $this->vars['L_PUBLIC_VIEW_EMAIL'] : $this->lang('L_PUBLIC_VIEW_EMAIL'); ?>: + vars['VIEW_EMAIL_YES']) ? $this->vars['VIEW_EMAIL_YES'] : $this->lang('VIEW_EMAIL_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['VIEW_EMAIL_NO']) ? $this->vars['VIEW_EMAIL_NO'] : $this->lang('VIEW_EMAIL_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_HIDE_USER']) ? $this->vars['L_HIDE_USER'] : $this->lang('L_HIDE_USER'); ?>: + vars['HIDE_USER_YES']) ? $this->vars['HIDE_USER_YES'] : $this->lang('HIDE_USER_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['HIDE_USER_NO']) ? $this->vars['HIDE_USER_NO'] : $this->lang('HIDE_USER_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_NOTIFY_ON_REPLY']) ? $this->vars['L_NOTIFY_ON_REPLY'] : $this->lang('L_NOTIFY_ON_REPLY'); ?>:
+ vars['L_NOTIFY_ON_REPLY_EXPLAIN']) ? $this->vars['L_NOTIFY_ON_REPLY_EXPLAIN'] : $this->lang('L_NOTIFY_ON_REPLY_EXPLAIN'); ?>
+ vars['NOTIFY_REPLY_YES']) ? $this->vars['NOTIFY_REPLY_YES'] : $this->lang('NOTIFY_REPLY_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['NOTIFY_REPLY_NO']) ? $this->vars['NOTIFY_REPLY_NO'] : $this->lang('NOTIFY_REPLY_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_NOTIFY_ON_PRIVMSG']) ? $this->vars['L_NOTIFY_ON_PRIVMSG'] : $this->lang('L_NOTIFY_ON_PRIVMSG'); ?>: + vars['NOTIFY_PM_YES']) ? $this->vars['NOTIFY_PM_YES'] : $this->lang('NOTIFY_PM_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['NOTIFY_PM_NO']) ? $this->vars['NOTIFY_PM_NO'] : $this->lang('NOTIFY_PM_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_POPUP_ON_PRIVMSG']) ? $this->vars['L_POPUP_ON_PRIVMSG'] : $this->lang('L_POPUP_ON_PRIVMSG'); ?>:
vars['L_POPUP_ON_PRIVMSG_EXPLAIN']) ? $this->vars['L_POPUP_ON_PRIVMSG_EXPLAIN'] : $this->lang('L_POPUP_ON_PRIVMSG_EXPLAIN'); ?>
+ vars['POPUP_PM_YES']) ? $this->vars['POPUP_PM_YES'] : $this->lang('POPUP_PM_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['POPUP_PM_NO']) ? $this->vars['POPUP_PM_NO'] : $this->lang('POPUP_PM_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALWAYS_ADD_SIGNATURE']) ? $this->vars['L_ALWAYS_ADD_SIGNATURE'] : $this->lang('L_ALWAYS_ADD_SIGNATURE'); ?>: + vars['ALWAYS_ADD_SIGNATURE_YES']) ? $this->vars['ALWAYS_ADD_SIGNATURE_YES'] : $this->lang('ALWAYS_ADD_SIGNATURE_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['ALWAYS_ADD_SIGNATURE_NO']) ? $this->vars['ALWAYS_ADD_SIGNATURE_NO'] : $this->lang('ALWAYS_ADD_SIGNATURE_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALWAYS_ALLOW_BBCODE']) ? $this->vars['L_ALWAYS_ALLOW_BBCODE'] : $this->lang('L_ALWAYS_ALLOW_BBCODE'); ?>: + vars['ALWAYS_ALLOW_BBCODE_YES']) ? $this->vars['ALWAYS_ALLOW_BBCODE_YES'] : $this->lang('ALWAYS_ALLOW_BBCODE_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['ALWAYS_ALLOW_BBCODE_NO']) ? $this->vars['ALWAYS_ALLOW_BBCODE_NO'] : $this->lang('ALWAYS_ALLOW_BBCODE_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALWAYS_ALLOW_HTML']) ? $this->vars['L_ALWAYS_ALLOW_HTML'] : $this->lang('L_ALWAYS_ALLOW_HTML'); ?>: + vars['ALWAYS_ALLOW_HTML_YES']) ? $this->vars['ALWAYS_ALLOW_HTML_YES'] : $this->lang('ALWAYS_ALLOW_HTML_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['ALWAYS_ALLOW_HTML_NO']) ? $this->vars['ALWAYS_ALLOW_HTML_NO'] : $this->lang('ALWAYS_ALLOW_HTML_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_ALWAYS_ALLOW_SMILIES']) ? $this->vars['L_ALWAYS_ALLOW_SMILIES'] : $this->lang('L_ALWAYS_ALLOW_SMILIES'); ?>: + vars['ALWAYS_ALLOW_SMILIES_YES']) ? $this->vars['ALWAYS_ALLOW_SMILIES_YES'] : $this->lang('ALWAYS_ALLOW_SMILIES_YES'); ?> /> + vars['L_YES']) ? $this->vars['L_YES'] : $this->lang('L_YES'); ?>   + vars['ALWAYS_ALLOW_SMILIES_NO']) ? $this->vars['ALWAYS_ALLOW_SMILIES_NO'] : $this->lang('ALWAYS_ALLOW_SMILIES_NO'); ?> /> + vars['L_NO']) ? $this->vars['L_NO'] : $this->lang('L_NO'); ?>
vars['L_BOARD_LANGUAGE']) ? $this->vars['L_BOARD_LANGUAGE'] : $this->lang('L_BOARD_LANGUAGE'); ?>:vars['LANGUAGE_SELECT']) ? $this->vars['LANGUAGE_SELECT'] : $this->lang('LANGUAGE_SELECT'); ?>
vars['L_BOARD_STYLE']) ? $this->vars['L_BOARD_STYLE'] : $this->lang('L_BOARD_STYLE'); ?>:vars['STYLE_SELECT']) ? $this->vars['STYLE_SELECT'] : $this->lang('STYLE_SELECT'); ?>
vars['L_TIMEZONE']) ? $this->vars['L_TIMEZONE'] : $this->lang('L_TIMEZONE'); ?>:vars['TIMEZONE_SELECT']) ? $this->vars['TIMEZONE_SELECT'] : $this->lang('TIMEZONE_SELECT'); ?>
vars['L_DATE_FORMAT']) ? $this->vars['L_DATE_FORMAT'] : $this->lang('L_DATE_FORMAT'); ?>:
+ vars['L_DATE_FORMAT_EXPLAIN']) ? $this->vars['L_DATE_FORMAT_EXPLAIN'] : $this->lang('L_DATE_FORMAT_EXPLAIN'); ?>
+ +
 
vars['L_AVATAR_PANEL']) ? $this->vars['L_AVATAR_PANEL'] : $this->lang('L_AVATAR_PANEL'); ?>
+ + + + +
vars['L_AVATAR_EXPLAIN']) ? $this->vars['L_AVATAR_EXPLAIN'] : $this->lang('L_AVATAR_EXPLAIN'); ?>vars['L_CURRENT_IMAGE']) ? $this->vars['L_CURRENT_IMAGE'] : $this->lang('L_CURRENT_IMAGE'); ?>
vars['AVATAR']) ? $this->vars['AVATAR'] : $this->lang('AVATAR'); ?>
 vars['L_DELETE_AVATAR']) ? $this->vars['L_DELETE_AVATAR'] : $this->lang('L_DELETE_AVATAR'); ?>
vars['L_UPLOAD_AVATAR_FILE']) ? $this->vars['L_UPLOAD_AVATAR_FILE'] : $this->lang('L_UPLOAD_AVATAR_FILE'); ?>:
vars['L_UPLOAD_AVATAR_URL']) ? $this->vars['L_UPLOAD_AVATAR_URL'] : $this->lang('L_UPLOAD_AVATAR_URL'); ?>:
vars['L_UPLOAD_AVATAR_URL_EXPLAIN']) ? $this->vars['L_UPLOAD_AVATAR_URL_EXPLAIN'] : $this->lang('L_UPLOAD_AVATAR_URL_EXPLAIN'); ?>
vars['L_LINK_REMOTE_AVATAR']) ? $this->vars['L_LINK_REMOTE_AVATAR'] : $this->lang('L_LINK_REMOTE_AVATAR'); ?>:
vars['L_LINK_REMOTE_AVATAR_EXPLAIN']) ? $this->vars['L_LINK_REMOTE_AVATAR_EXPLAIN'] : $this->lang('L_LINK_REMOTE_AVATAR_EXPLAIN'); ?>
vars['L_AVATAR_GALLERY']) ? $this->vars['L_AVATAR_GALLERY'] : $this->lang('L_AVATAR_GALLERY'); ?>:
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>  
+ +
diff --git a/phpBB2/cache/tpl_subSilver.profile_send_pass.php b/phpBB2/cache/tpl_subSilver.profile_send_pass.php new file mode 100644 index 0000000..98eb07a --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.profile_send_pass.php @@ -0,0 +1,39 @@ + +
+ + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + + + + + + + + + + + + + + + + +
vars['L_SEND_PASSWORD']) ? $this->vars['L_SEND_PASSWORD'] : $this->lang('L_SEND_PASSWORD'); ?>
vars['L_ITEMS_REQUIRED']) ? $this->vars['L_ITEMS_REQUIRED'] : $this->lang('L_ITEMS_REQUIRED'); ?>
vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>: * + +
vars['L_EMAIL_ADDRESS']) ? $this->vars['L_EMAIL_ADDRESS'] : $this->lang('L_EMAIL_ADDRESS'); ?>: * + +
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?> + +    + +
+
diff --git a/phpBB2/cache/tpl_subSilver.profile_view_body.php b/phpBB2/cache/tpl_subSilver.profile_view_body.php new file mode 100644 index 0000000..d7ae8b3 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.profile_view_body.php @@ -0,0 +1,95 @@ + + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + + + + + + + + + + + + + + + + + +
vars['L_VIEWING_PROFILE']) ? $this->vars['L_VIEWING_PROFILE'] : $this->lang('L_VIEWING_PROFILE'); ?>
vars['L_AVATAR']) ? $this->vars['L_AVATAR'] : $this->lang('L_AVATAR'); ?>vars['L_ABOUT_USER']) ? $this->vars['L_ABOUT_USER'] : $this->lang('L_ABOUT_USER'); ?>
vars['AVATAR_IMG']) ? $this->vars['AVATAR_IMG'] : $this->lang('AVATAR_IMG'); ?>
vars['POSTER_RANK']) ? $this->vars['POSTER_RANK'] : $this->lang('POSTER_RANK'); ?>
+ + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_JOINED']) ? $this->vars['L_JOINED'] : $this->lang('L_JOINED'); ?>: vars['JOINED']) ? $this->vars['JOINED'] : $this->lang('JOINED'); ?>
vars['L_TOTAL_POSTS']) ? $this->vars['L_TOTAL_POSTS'] : $this->lang('L_TOTAL_POSTS'); ?>: vars['POSTS']) ? $this->vars['POSTS'] : $this->lang('POSTS'); ?>
[vars['POST_PERCENT_STATS']) ? $this->vars['POST_PERCENT_STATS'] : $this->lang('POST_PERCENT_STATS'); ?> / vars['POST_DAY_STATS']) ? $this->vars['POST_DAY_STATS'] : $this->lang('POST_DAY_STATS'); ?>]
vars['L_SEARCH_USER_POSTS']) ? $this->vars['L_SEARCH_USER_POSTS'] : $this->lang('L_SEARCH_USER_POSTS'); ?>
vars['L_LOCATION']) ? $this->vars['L_LOCATION'] : $this->lang('L_LOCATION'); ?>: vars['LOCATION']) ? $this->vars['LOCATION'] : $this->lang('LOCATION'); ?>
vars['L_WEBSITE']) ? $this->vars['L_WEBSITE'] : $this->lang('L_WEBSITE'); ?>: vars['WWW']) ? $this->vars['WWW'] : $this->lang('WWW'); ?>
vars['L_OCCUPATION']) ? $this->vars['L_OCCUPATION'] : $this->lang('L_OCCUPATION'); ?>: vars['OCCUPATION']) ? $this->vars['OCCUPATION'] : $this->lang('OCCUPATION'); ?>
vars['L_INTERESTS']) ? $this->vars['L_INTERESTS'] : $this->lang('L_INTERESTS'); ?>: vars['INTERESTS']) ? $this->vars['INTERESTS'] : $this->lang('INTERESTS'); ?>
+
vars['L_CONTACT']) ? $this->vars['L_CONTACT'] : $this->lang('L_CONTACT'); ?> vars['USERNAME']) ? $this->vars['USERNAME'] : $this->lang('USERNAME'); ?>
+ + + + + + + + + + + + + + + + + + + + + + + + +
vars['L_EMAIL_ADDRESS']) ? $this->vars['L_EMAIL_ADDRESS'] : $this->lang('L_EMAIL_ADDRESS'); ?>:vars['EMAIL_IMG']) ? $this->vars['EMAIL_IMG'] : $this->lang('EMAIL_IMG'); ?>
vars['L_PM']) ? $this->vars['L_PM'] : $this->lang('L_PM'); ?>:vars['PM_IMG']) ? $this->vars['PM_IMG'] : $this->lang('PM_IMG'); ?>
vars['L_MESSENGER']) ? $this->vars['L_MESSENGER'] : $this->lang('L_MESSENGER'); ?>:vars['MSN']) ? $this->vars['MSN'] : $this->lang('MSN'); ?>
vars['L_YAHOO']) ? $this->vars['L_YAHOO'] : $this->lang('L_YAHOO'); ?>:vars['YIM_IMG']) ? $this->vars['YIM_IMG'] : $this->lang('YIM_IMG'); ?>
vars['L_AIM']) ? $this->vars['L_AIM'] : $this->lang('L_AIM'); ?>:vars['AIM_IMG']) ? $this->vars['AIM_IMG'] : $this->lang('AIM_IMG'); ?>
vars['L_ICQ_NUMBER']) ? $this->vars['L_ICQ_NUMBER'] : $this->lang('L_ICQ_NUMBER'); ?>:
+
+ + + + + +

vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.search_username.php b/phpBB2/cache/tpl_subSilver.search_username.php new file mode 100644 index 0000000..dba5d71 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.search_username.php @@ -0,0 +1,49 @@ + + + +
+ + + + +
+ + + + + + +
vars['L_SEARCH_USERNAME']) ? $this->vars['L_SEARCH_USERNAME'] : $this->lang('L_SEARCH_USERNAME'); ?>

 

vars['L_SEARCH_EXPLAIN']) ? $this->vars['L_SEARCH_EXPLAIN'] : $this->lang('L_SEARCH_EXPLAIN'); ?>
+ _tpldata['switch_select_name.']) ) ? sizeof($this->_tpldata['switch_select_name.']) : 0; +for ($switch_select_name_i = 0; $switch_select_name_i < $switch_select_name_count; $switch_select_name_i++) +{ + $switch_select_name_item = &$this->_tpldata['switch_select_name.'][$switch_select_name_i]; + $switch_select_name_item['S_ROW_COUNT'] = $switch_select_name_i; + $switch_select_name_item['S_NUM_ROWS'] = $switch_select_name_count; + +?> + vars['L_UPDATE_USERNAME']) ? $this->vars['L_UPDATE_USERNAME'] : $this->lang('L_UPDATE_USERNAME'); ?>
 

+ +
vars['L_CLOSE_WINDOW']) ? $this->vars['L_CLOSE_WINDOW'] : $this->lang('L_CLOSE_WINDOW'); ?>
+
diff --git a/phpBB2/cache/tpl_subSilver.simple_footer.php b/phpBB2/cache/tpl_subSilver.simple_footer.php new file mode 100644 index 0000000..92f3d6a --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.simple_footer.php @@ -0,0 +1,23 @@ + +

+ +Powered by phpBB © 2001, 2005 phpBB Group
+ + + + + + diff --git a/phpBB2/cache/tpl_subSilver.simple_header.php b/phpBB2/cache/tpl_subSilver.simple_header.php new file mode 100644 index 0000000..b19169a --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.simple_header.php @@ -0,0 +1,247 @@ + + + + + + + + + + +vars['META']) ? $this->vars['META'] : $this->lang('META'); ?> +<?php echo isset($this->vars['SITENAME']) ? $this->vars['SITENAME'] : $this->lang('SITENAME'); ?> :: <?php echo isset($this->vars['PAGE_TITLE']) ? $this->vars['PAGE_TITLE'] : $this->lang('PAGE_TITLE'); ?> + + + + + + + + + + diff --git a/phpBB2/cache/tpl_subSilver.viewforum_body.php b/phpBB2/cache/tpl_subSilver.viewforum_body.php new file mode 100644 index 0000000..d7702b8 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.viewforum_body.php @@ -0,0 +1,132 @@ + +
+ + + + + + + + + + +
vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>
vars['L_MODERATOR']) ? $this->vars['L_MODERATOR'] : $this->lang('L_MODERATOR'); ?>: vars['MODERATORS']) ? $this->vars['MODERATORS'] : $this->lang('MODERATORS'); ?>

vars['LOGGED_IN_USER_LIST']) ? $this->vars['LOGGED_IN_USER_LIST'] : $this->lang('LOGGED_IN_USER_LIST'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?>
<?php echo isset($this->vars['L_POST_NEW_TOPIC']) ? $this->vars['L_POST_NEW_TOPIC'] : $this->lang('L_POST_NEW_TOPIC'); ?>
+ + + + + + + + + + _tpldata['topicrow.']) ) ? sizeof($this->_tpldata['topicrow.']) : 0; +for ($topicrow_i = 0; $topicrow_i < $topicrow_count; $topicrow_i++) +{ + $topicrow_item = &$this->_tpldata['topicrow.'][$topicrow_i]; + $topicrow_item['S_ROW_COUNT'] = $topicrow_i; + $topicrow_item['S_NUM_ROWS'] = $topicrow_count; + +?> + + + + + + + + + + _tpldata['switch_no_topics.']) ) ? sizeof($this->_tpldata['switch_no_topics.']) : 0; +for ($switch_no_topics_i = 0; $switch_no_topics_i < $switch_no_topics_count; $switch_no_topics_i++) +{ + $switch_no_topics_item = &$this->_tpldata['switch_no_topics.'][$switch_no_topics_i]; + $switch_no_topics_item['S_ROW_COUNT'] = $switch_no_topics_i; + $switch_no_topics_item['S_NUM_ROWS'] = $switch_no_topics_count; + +?> + + + + + + + +
 vars['L_TOPICS']) ? $this->vars['L_TOPICS'] : $this->lang('L_TOPICS'); ?>  vars['L_REPLIES']) ? $this->vars['L_REPLIES'] : $this->lang('L_REPLIES'); ?>  vars['L_AUTHOR']) ? $this->vars['L_AUTHOR'] : $this->lang('L_AUTHOR'); ?>  vars['L_VIEWS']) ? $this->vars['L_VIEWS'] : $this->lang('L_VIEWS'); ?>  vars['L_LASTPOST']) ? $this->vars['L_LASTPOST'] : $this->lang('L_LASTPOST'); ?> 
<?php echo isset($topicrow_item['L_TOPIC_FOLDER_ALT']) ? $topicrow_item['L_TOPIC_FOLDER_ALT'] : ''; ?>
+

vars['L_NO_TOPICS']) ? $this->vars['L_NO_TOPICS'] : $this->lang('L_NO_TOPICS'); ?>
vars['L_DISPLAY_TOPICS']) ? $this->vars['L_DISPLAY_TOPICS'] : $this->lang('L_DISPLAY_TOPICS'); ?>: vars['S_SELECT_TOPIC_DAYS']) ? $this->vars['S_SELECT_TOPIC_DAYS'] : $this->lang('S_SELECT_TOPIC_DAYS'); ?>  + +
+ + + + + + + + + + +
<?php echo isset($this->vars['L_POST_NEW_TOPIC']) ? $this->vars['L_POST_NEW_TOPIC'] : $this->lang('L_POST_NEW_TOPIC'); ?>   vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?> -> vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?> +
vars['PAGE_NUMBER']) ? $this->vars['PAGE_NUMBER'] : $this->lang('PAGE_NUMBER'); ?>
+
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
<?php echo isset($this->vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>vars['L_NEW_POSTS']) ? $this->vars['L_NEW_POSTS'] : $this->lang('L_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>vars['L_NO_NEW_POSTS']) ? $this->vars['L_NO_NEW_POSTS'] : $this->lang('L_NO_NEW_POSTS'); ?>  <?php echo isset($this->vars['L_ANNOUNCEMENT']) ? $this->vars['L_ANNOUNCEMENT'] : $this->lang('L_ANNOUNCEMENT'); ?>vars['L_ANNOUNCEMENT']) ? $this->vars['L_ANNOUNCEMENT'] : $this->lang('L_ANNOUNCEMENT'); ?>
<?php echo isset($this->vars['L_NEW_POSTS_HOT']) ? $this->vars['L_NEW_POSTS_HOT'] : $this->lang('L_NEW_POSTS_HOT'); ?>vars['L_NEW_POSTS_HOT']) ? $this->vars['L_NEW_POSTS_HOT'] : $this->lang('L_NEW_POSTS_HOT'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS_HOT']) ? $this->vars['L_NO_NEW_POSTS_HOT'] : $this->lang('L_NO_NEW_POSTS_HOT'); ?>vars['L_NO_NEW_POSTS_HOT']) ? $this->vars['L_NO_NEW_POSTS_HOT'] : $this->lang('L_NO_NEW_POSTS_HOT'); ?>  <?php echo isset($this->vars['L_STICKY']) ? $this->vars['L_STICKY'] : $this->lang('L_STICKY'); ?>vars['L_STICKY']) ? $this->vars['L_STICKY'] : $this->lang('L_STICKY'); ?>
<?php echo isset($this->vars['L_NEW_POSTS_LOCKED']) ? $this->vars['L_NEW_POSTS_LOCKED'] : $this->lang('L_NEW_POSTS_LOCKED'); ?>vars['L_NEW_POSTS_LOCKED']) ? $this->vars['L_NEW_POSTS_LOCKED'] : $this->lang('L_NEW_POSTS_LOCKED'); ?>  <?php echo isset($this->vars['L_NO_NEW_POSTS_LOCKED']) ? $this->vars['L_NO_NEW_POSTS_LOCKED'] : $this->lang('L_NO_NEW_POSTS_LOCKED'); ?>vars['L_NO_NEW_POSTS_LOCKED']) ? $this->vars['L_NO_NEW_POSTS_LOCKED'] : $this->lang('L_NO_NEW_POSTS_LOCKED'); ?>
vars['S_AUTH_LIST']) ? $this->vars['S_AUTH_LIST'] : $this->lang('S_AUTH_LIST'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.viewonline_body.php b/phpBB2/cache/tpl_subSilver.viewonline_body.php new file mode 100644 index 0000000..0dda8a3 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.viewonline_body.php @@ -0,0 +1,87 @@ + + + + + +
vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?>
+ + + + + + + + + + + _tpldata['reg_user_row.']) ) ? sizeof($this->_tpldata['reg_user_row.']) : 0; +for ($reg_user_row_i = 0; $reg_user_row_i < $reg_user_row_count; $reg_user_row_i++) +{ + $reg_user_row_item = &$this->_tpldata['reg_user_row.'][$reg_user_row_i]; + $reg_user_row_item['S_ROW_COUNT'] = $reg_user_row_i; + $reg_user_row_item['S_NUM_ROWS'] = $reg_user_row_count; + +?> + + + + + + + + + + + + + _tpldata['guest_user_row.']) ) ? sizeof($this->_tpldata['guest_user_row.']) : 0; +for ($guest_user_row_i = 0; $guest_user_row_i < $guest_user_row_count; $guest_user_row_i++) +{ + $guest_user_row_item = &$this->_tpldata['guest_user_row.'][$guest_user_row_i]; + $guest_user_row_item['S_ROW_COUNT'] = $guest_user_row_i; + $guest_user_row_item['S_NUM_ROWS'] = $guest_user_row_count; + +?> + + + + + + +
 vars['L_USERNAME']) ? $this->vars['L_USERNAME'] : $this->lang('L_USERNAME'); ?>  vars['L_LAST_UPDATE']) ? $this->vars['L_LAST_UPDATE'] : $this->lang('L_LAST_UPDATE'); ?>  vars['L_FORUM_LOCATION']) ? $this->vars['L_FORUM_LOCATION'] : $this->lang('L_FORUM_LOCATION'); ?> 
vars['TOTAL_REGISTERED_USERS_ONLINE']) ? $this->vars['TOTAL_REGISTERED_USERS_ONLINE'] : $this->lang('TOTAL_REGISTERED_USERS_ONLINE'); ?>
      
.
vars['TOTAL_GUEST_USERS_ONLINE']) ? $this->vars['TOTAL_GUEST_USERS_ONLINE'] : $this->lang('TOTAL_GUEST_USERS_ONLINE'); ?>
      
+ + + + + + +
vars['L_ONLINE_EXPLAIN']) ? $this->vars['L_ONLINE_EXPLAIN'] : $this->lang('L_ONLINE_EXPLAIN'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
+ +
+ + + + + +
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>
+ diff --git a/phpBB2/cache/tpl_subSilver.viewtopic_body.php b/phpBB2/cache/tpl_subSilver.viewtopic_body.php new file mode 100644 index 0000000..ff003b8 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.viewtopic_body.php @@ -0,0 +1,110 @@ + + + + + +
vars['TOPIC_TITLE']) ? $this->vars['TOPIC_TITLE'] : $this->lang('TOPIC_TITLE'); ?>
+ vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?>
+  
+ + + + + + +
<?php echo isset($this->vars['L_POST_NEW_TOPIC']) ? $this->vars['L_POST_NEW_TOPIC'] : $this->lang('L_POST_NEW_TOPIC'); ?>   <?php echo isset($this->vars['L_POST_REPLY_TOPIC']) ? $this->vars['L_POST_REPLY_TOPIC'] : $this->lang('L_POST_REPLY_TOPIC'); ?>   vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?> + -> vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>
+ + + + + + vars['POLL_DISPLAY']) ? $this->vars['POLL_DISPLAY'] : $this->lang('POLL_DISPLAY'); ?> + + + + + _tpldata['postrow.']) ) ? sizeof($this->_tpldata['postrow.']) : 0; +for ($postrow_i = 0; $postrow_i < $postrow_count; $postrow_i++) +{ + $postrow_item = &$this->_tpldata['postrow.'][$postrow_i]; + $postrow_item['S_ROW_COUNT'] = $postrow_i; + $postrow_item['S_NUM_ROWS'] = $postrow_count; + +?> + + + + + + + + + + + + + + + +
vars['L_VIEW_PREVIOUS_TOPIC']) ? $this->vars['L_VIEW_PREVIOUS_TOPIC'] : $this->lang('L_VIEW_PREVIOUS_TOPIC'); ?> :: vars['L_VIEW_NEXT_TOPIC']) ? $this->vars['L_VIEW_NEXT_TOPIC'] : $this->lang('L_VIEW_NEXT_TOPIC'); ?>  
vars['L_AUTHOR']) ? $this->vars['L_AUTHOR'] : $this->lang('L_AUTHOR'); ?>vars['L_MESSAGE']) ? $this->vars['L_MESSAGE'] : $this->lang('L_MESSAGE'); ?>







+ + + + + + + + + + +
<?php echo isset($postrow_item['L_MINI_POST_ALT']) ? $postrow_item['L_MINI_POST_ALT'] : ''; ?>vars['L_POSTED']) ? $this->vars['L_POSTED'] : $this->lang('L_POSTED'); ?>:     vars['L_POST_SUBJECT']) ? $this->vars['L_POST_SUBJECT'] : $this->lang('L_POST_SUBJECT'); ?>:

vars['L_BACK_TO_TOP']) ? $this->vars['L_BACK_TO_TOP'] : $this->lang('L_BACK_TO_TOP'); ?> + + + +
+ + + +
vars['L_DISPLAY_POSTS']) ? $this->vars['L_DISPLAY_POSTS'] : $this->lang('L_DISPLAY_POSTS'); ?>: vars['S_SELECT_POST_DAYS']) ? $this->vars['S_SELECT_POST_DAYS'] : $this->lang('S_SELECT_POST_DAYS'); ?> vars['S_SELECT_POST_ORDER']) ? $this->vars['S_SELECT_POST_ORDER'] : $this->lang('S_SELECT_POST_ORDER'); ?> 
+ + + + + + + + + + +
<?php echo isset($this->vars['L_POST_NEW_TOPIC']) ? $this->vars['L_POST_NEW_TOPIC'] : $this->lang('L_POST_NEW_TOPIC'); ?>   <?php echo isset($this->vars['L_POST_REPLY_TOPIC']) ? $this->vars['L_POST_REPLY_TOPIC'] : $this->lang('L_POST_REPLY_TOPIC'); ?>   vars['L_INDEX']) ? $this->vars['L_INDEX'] : $this->lang('L_INDEX'); ?> + -> vars['FORUM_NAME']) ? $this->vars['FORUM_NAME'] : $this->lang('FORUM_NAME'); ?>vars['S_TIMEZONE']) ? $this->vars['S_TIMEZONE'] : $this->lang('S_TIMEZONE'); ?>
vars['PAGINATION']) ? $this->vars['PAGINATION'] : $this->lang('PAGINATION'); ?> +
vars['PAGE_NUMBER']) ? $this->vars['PAGE_NUMBER'] : $this->lang('PAGE_NUMBER'); ?>
+ + + + + + +
vars['S_WATCH_TOPIC']) ? $this->vars['S_WATCH_TOPIC'] : $this->lang('S_WATCH_TOPIC'); ?>
+  
+ vars['S_TOPIC_ADMIN']) ? $this->vars['S_TOPIC_ADMIN'] : $this->lang('S_TOPIC_ADMIN'); ?>
vars['JUMPBOX']) ? $this->vars['JUMPBOX'] : $this->lang('JUMPBOX'); ?>vars['S_AUTH_LIST']) ? $this->vars['S_AUTH_LIST'] : $this->lang('S_AUTH_LIST'); ?>
diff --git a/phpBB2/cache/tpl_subSilver.viewtopic_poll_ballot.php b/phpBB2/cache/tpl_subSilver.viewtopic_poll_ballot.php new file mode 100644 index 0000000..0569d84 --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.viewtopic_poll_ballot.php @@ -0,0 +1,45 @@ + +
+ + + + + + + + + + + + + +
vars['POLL_QUESTION']) ? $this->vars['POLL_QUESTION'] : $this->lang('POLL_QUESTION'); ?>
+ _tpldata['poll_option.']) ) ? sizeof($this->_tpldata['poll_option.']) : 0; +for ($poll_option_i = 0; $poll_option_i < $poll_option_count; $poll_option_i++) +{ + $poll_option_item = &$this->_tpldata['poll_option.'][$poll_option_i]; + $poll_option_item['S_ROW_COUNT'] = $poll_option_i; + $poll_option_item['S_NUM_ROWS'] = $poll_option_count; + +?> + + + + + +
 
+ +
vars['L_VIEW_RESULTS']) ? $this->vars['L_VIEW_RESULTS'] : $this->lang('L_VIEW_RESULTS'); ?>
vars['S_HIDDEN_FIELDS']) ? $this->vars['S_HIDDEN_FIELDS'] : $this->lang('S_HIDDEN_FIELDS'); ?>
+ \ No newline at end of file diff --git a/phpBB2/cache/tpl_subSilver.viewtopic_poll_result.php b/phpBB2/cache/tpl_subSilver.viewtopic_poll_result.php new file mode 100644 index 0000000..e72b61d --- /dev/null +++ b/phpBB2/cache/tpl_subSilver.viewtopic_poll_result.php @@ -0,0 +1,55 @@ + + +
+ + + + + + + + + + +
vars['POLL_QUESTION']) ? $this->vars['POLL_QUESTION'] : $this->lang('POLL_QUESTION'); ?>
+ + _tpldata['poll_option.']) ) ? sizeof($this->_tpldata['poll_option.']) : 0; +for ($poll_option_i = 0; $poll_option_i < $poll_option_count; $poll_option_i++) +{ + $poll_option_item = &$this->_tpldata['poll_option.'][$poll_option_i]; + $poll_option_item['S_ROW_COUNT'] = $poll_option_i; + $poll_option_item['S_NUM_ROWS'] = $poll_option_count; + +?> + + + + + + + +
+ + + + + + +
<?php echo isset($poll_option_item['POLL_OPTION_PERCENT']) ? $poll_option_item['POLL_OPTION_PERCENT'] : ''; ?>
+
  [ ]
+
vars['L_TOTAL_VOTES']) ? $this->vars['L_TOTAL_VOTES'] : $this->lang('L_TOTAL_VOTES'); ?> : vars['TOTAL_VOTES']) ? $this->vars['TOTAL_VOTES'] : $this->lang('TOTAL_VOTES'); ?>
+
+ + diff --git a/phpBB2/common.php b/phpBB2/common.php new file mode 100644 index 0000000..1588481 --- /dev/null +++ b/phpBB2/common.php @@ -0,0 +1,236 @@ += '5.0.0' && (!@ini_get('register_long_arrays') || @ini_get('register_long_arrays') == '0' || strtolower(@ini_get('register_long_arrays')) == 'off')) +{ + $HTTP_POST_VARS = $_POST; + $HTTP_GET_VARS = $_GET; + $HTTP_SERVER_VARS = $_SERVER; + $HTTP_COOKIE_VARS = $_COOKIE; + $HTTP_ENV_VARS = $_ENV; + $HTTP_POST_FILES = $_FILES; + + // _SESSION is the only superglobal which is conditionally set + if (isset($_SESSION)) + { + $HTTP_SESSION_VARS = $_SESSION; + } +} + +// Protect against GLOBALS tricks +if (isset($HTTP_POST_VARS['GLOBALS']) || isset($HTTP_POST_FILES['GLOBALS']) || isset($HTTP_GET_VARS['GLOBALS']) || isset($HTTP_COOKIE_VARS['GLOBALS'])) +{ + die("Hacking attempt"); +} + +// Protect against HTTP_SESSION_VARS tricks +if (isset($HTTP_SESSION_VARS) && !is_array($HTTP_SESSION_VARS)) +{ + die("Hacking attempt"); +} + +if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on') +{ + // PHP4+ path + $not_unset = array('HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_COOKIE_VARS', 'HTTP_SERVER_VARS', 'HTTP_SESSION_VARS', 'HTTP_ENV_VARS', 'HTTP_POST_FILES', 'phpEx', 'phpbb_root_path'); + + // Not only will array_merge give a warning if a parameter + // is not an array, it will actually fail. So we check if + // HTTP_SESSION_VARS has been initialised. + if (!isset($HTTP_SESSION_VARS) || !is_array($HTTP_SESSION_VARS)) + { + $HTTP_SESSION_VARS = array(); + } + + // Merge all into one extremely huge array; unset + // this later + $input = array_merge($HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES); + + unset($input['input']); + unset($input['not_unset']); + + while (list($var,) = @each($input)) + { + if (in_array($var, $not_unset)) + { + die('Hacking attempt!'); + } + unset($$var); + } + + unset($input); +} + +// +// addslashes to vars if magic_quotes_gpc is off +// this is a security precaution to prevent someone +// trying to break out of a SQL statement. +// +if( !get_magic_quotes_gpc() ) +{ + if( is_array($HTTP_GET_VARS) ) + { + while( list($k, $v) = each($HTTP_GET_VARS) ) + { + if( is_array($HTTP_GET_VARS[$k]) ) + { + while( list($k2, $v2) = each($HTTP_GET_VARS[$k]) ) + { + $HTTP_GET_VARS[$k][$k2] = addslashes($v2); + } + @reset($HTTP_GET_VARS[$k]); + } + else + { + $HTTP_GET_VARS[$k] = addslashes($v); + } + } + @reset($HTTP_GET_VARS); + } + + if( is_array($HTTP_POST_VARS) ) + { + while( list($k, $v) = each($HTTP_POST_VARS) ) + { + if( is_array($HTTP_POST_VARS[$k]) ) + { + while( list($k2, $v2) = each($HTTP_POST_VARS[$k]) ) + { + $HTTP_POST_VARS[$k][$k2] = addslashes($v2); + } + @reset($HTTP_POST_VARS[$k]); + } + else + { + $HTTP_POST_VARS[$k] = addslashes($v); + } + } + @reset($HTTP_POST_VARS); + } + + if( is_array($HTTP_COOKIE_VARS) ) + { + while( list($k, $v) = each($HTTP_COOKIE_VARS) ) + { + if( is_array($HTTP_COOKIE_VARS[$k]) ) + { + while( list($k2, $v2) = each($HTTP_COOKIE_VARS[$k]) ) + { + $HTTP_COOKIE_VARS[$k][$k2] = addslashes($v2); + } + @reset($HTTP_COOKIE_VARS[$k]); + } + else + { + $HTTP_COOKIE_VARS[$k] = addslashes($v); + } + } + @reset($HTTP_COOKIE_VARS); + } +} + +// +// Define some basic configuration arrays this also prevents +// malicious rewriting of language and otherarray values via +// URI params +// +$board_config = array(); +$userdata = array(); +$theme = array(); +$images = array(); +$lang = array(); +$nav_links = array(); +$dss_seeded = false; +$gen_simple_header = FALSE; + +include($phpbb_root_path . 'config.'.$phpEx); + +if( !defined("PHPBB_INSTALLED") ) +{ + header('Location: ' . $phpbb_root_path . 'install/install.' . $phpEx); + exit; +} + +include($phpbb_root_path . 'includes/constants.'.$phpEx); +include($phpbb_root_path . 'includes/template.'.$phpEx); +include($phpbb_root_path . 'includes/sessions.'.$phpEx); +include($phpbb_root_path . 'includes/auth.'.$phpEx); +include($phpbb_root_path . 'includes/functions.'.$phpEx); +include($phpbb_root_path . 'includes/db.'.$phpEx); + +// We do not need this any longer, unset for safety purposes +unset($dbpasswd); + +// +// Obtain and encode users IP +// +// I'm removing HTTP_X_FORWARDED_FOR ... this may well cause other problems such as +// private range IP's appearing instead of the guilty routable IP, tough, don't +// even bother complaining ... go scream and shout at the idiots out there who feel +// "clever" is doing harm rather than good ... karma is a great thing ... :) +// +$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') ); +$user_ip = encode_ip($client_ip); + +// +// Setup forum wide options, if this fails +// then we output a CRITICAL_ERROR since +// basic forum information is not available +// +$sql = "SELECT * + FROM " . CONFIG_TABLE; +if( !($result = $db->sql_query($sql)) ) +{ + message_die(CRITICAL_ERROR, "Could not query config information", "", __LINE__, __FILE__, $sql); +} + +while ( $row = $db->sql_fetchrow($result) ) +{ + $board_config[$row['config_name']] = $row['config_value']; +} + +if (file_exists('install') || file_exists('contrib')) +{ + message_die(GENERAL_MESSAGE, 'Please_remove_install_contrib'); +} + +// +// Show 'Board is disabled' message if needed. +// +if( $board_config['board_disable'] && !defined("IN_ADMIN") && !defined("IN_LOGIN") ) +{ + message_die(GENERAL_MESSAGE, 'Board_disable', 'Information'); +} + +?> \ No newline at end of file diff --git a/phpBB2/config.php b/phpBB2/config.php new file mode 100644 index 0000000..94fa560 --- /dev/null +++ b/phpBB2/config.php @@ -0,0 +1,18 @@ + diff --git a/phpBB2/db/db2.php b/phpBB2/db/db2.php new file mode 100644 index 0000000..1ab5284 --- /dev/null +++ b/phpBB2/db/db2.php @@ -0,0 +1,421 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->dbname = $database; + + $this->server = $sqlserver; + + if($this->persistency) + { + $this->db_connect_id = odbc_pconnect($this->server, "", ""); + } + else + { + $this->db_connect_id = odbc_connect($this->server, "", ""); + } + + if($this->db_connect_id) + { + @odbc_autocommit($this->db_connect_id, off); + + return $this->db_connect_id; + } + else + { + return false; + } + } + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if($this->query_result) + { + @odbc_free_result($this->query_result); + } + $result = @odbc_close($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + + + // + // Query method + // + function sql_query($query = "", $transaction = FALSE) + { + // + // Remove any pre-existing queries + // + unset($this->query_result); + unset($this->row); + if($query != "") + { + $this->num_queries++; + + if(!eregi("^INSERT ",$query)) + { + if(eregi("LIMIT", $query)) + { + preg_match("/^(.*)LIMIT ([0-9]+)[, ]*([0-9]+)*/s", $query, $limits); + + $query = $limits[1]; + if($limits[3]) + { + $row_offset = $limits[2]; + $num_rows = $limits[3]; + } + else + { + $row_offset = 0; + $num_rows = $limits[2]; + } + + $query .= " FETCH FIRST ".($row_offset+$num_rows)." ROWS ONLY OPTIMIZE FOR ".($row_offset+$num_rows)." ROWS"; + + $this->query_result = odbc_exec($this->db_connect_id, $query); + + $query_limit_offset = $row_offset; + $this->result_numrows[$this->query_result] = $num_rows; + } + else + { + $this->query_result = odbc_exec($this->db_connect_id, $query); + + $row_offset = 0; + $this->result_numrows[$this->query_result] = 5E6; + } + + $result_id = $this->query_result; + if($this->query_result && eregi("^SELECT", $query)) + { + + for($i = 1; $i < odbc_num_fields($result_id)+1; $i++) + { + $this->result_field_names[$result_id][] = odbc_field_name($result_id, $i); + } + + $i = $row_offset + 1; + $k = 0; + while(odbc_fetch_row($result_id, $i) && $k < $this->result_numrows[$result_id]) + { + + for($j = 1; $j < count($this->result_field_names[$result_id])+1; $j++) + { + $this->result_rowset[$result_id][$k][$this->result_field_names[$result_id][$j-1]] = odbc_result($result_id, $j); + } + $i++; + $k++; + } + + $this->result_numrows[$result_id] = $k; + $this->row_index[$result_id] = 0; + } + else + { + $this->result_numrows[$result_id] = @odbc_num_rows($result_id); + $this->row_index[$result_id] = 0; + } + } + else + { + if(eregi("^(INSERT|UPDATE) ", $query)) + { + $query = preg_replace("/\\\'/s", "''", $query); + } + + $this->query_result = odbc_exec($this->db_connect_id, $query); + + if($this->query_result) + { + $sql_id = "VALUES(IDENTITY_VAL_LOCAL())"; + + $id_result = odbc_exec($this->db_connect_id, $sql_id); + if($id_result) + { + $row_result = odbc_fetch_row($id_result); + if($row_result) + { + $this->next_id[$this->query_result] = odbc_result($id_result, 1); + } + } + } + + odbc_commit($this->db_connect_id); + + $this->query_limit_offset[$this->query_result] = 0; + $this->result_numrows[$this->query_result] = 0; + } + + return $this->query_result; + } + else + { + return false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + return $this->result_numrows[$query_id]; + } + else + { + return false; + } + } + function sql_affectedrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + return $this->result_numrows[$query_id]; + } + else + { + return false; + } + } + function sql_numfields($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = count($this->result_field_names[$query_id]); + return $result; + } + else + { + return false; + } + } + function sql_fieldname($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = $this->result_field_names[$query_id][$offset]; + return $result; + } + else + { + return false; + } + } + function sql_fieldtype($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @odbc_field_type($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fetchrow($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($this->row_index[$query_id] < $this->result_numrows[$query_id]) + { + $result = $this->result_rowset[$query_id][$this->row_index[$query_id]]; + $this->row_index[$query_id]++; + return $result; + } + else + { + return false; + } + } + else + { + return false; + } + } + function sql_fetchrowset($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $this->row_index[$query_id] = $this->result_numrows[$query_id]; + return $this->result_rowset[$query_id]; + } + else + { + return false; + } + } + function sql_fetchfield($field, $row = -1, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($row < $this->result_numrows[$query_id]) + { + if($row == -1) + { + $getrow = $this->row_index[$query_id]-1; + } + else + { + $getrow = $row; + } + + return $this->result_rowset[$query_id][$getrow][$this->result_field_names[$query_id][$field]]; + + } + else + { + return false; + } + } + else + { + return false; + } + } + function sql_rowseek($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $this->row_index[$query_id] = 0; + return true; + } + else + { + return false; + } + } + function sql_nextid($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + return $this->next_id[$query_id]; + } + else + { + return false; + } + } + function sql_freeresult($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @odbc_free_result($query_id); + return $result; + } + else + { + return false; + } + } + function sql_error($query_id = 0) + { +// $result['code'] = @odbc_error($this->db_connect_id); +// $result['message'] = @odbc_errormsg($this->db_connect_id); + + return ""; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2/db/index.htm b/phpBB2/db/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/db/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/db/msaccess.php b/phpBB2/db/msaccess.php new file mode 100644 index 0000000..733fa3c --- /dev/null +++ b/phpBB2/db/msaccess.php @@ -0,0 +1,389 @@ +persistency = $persistency; + $this->server = $sqlserver; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->dbname = $database; + + $this->db_connect_id = ($this->persistency) ? odbc_pconnect($this->server, $this->user, $this->password) : odbc_connect($this->server, $this->user, $this->password); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; + } + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if( $this->in_transaction ) + { + @odbc_commit($this->db_connect_id); + } + + if( count($this->result_rowset) ) + { + unset($this->result_rowset); + unset($this->field_names); + unset($this->field_types); + unset($this->num_rows); + unset($this->current_row); + } + + return @odbc_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Query method + // + function sql_query($query = "", $transaction = FALSE) + { + if( $query != "" ) + { + $this->num_queries++; + + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + if( !odbc_autocommit($this->db_connect_id, false) ) + { + return false; + } + $this->in_transaction = TRUE; + } + + $query = str_replace("LOWER(", "LCASE(", $query); + + if( preg_match("/^SELECT(.*?)(LIMIT ([0-9]+)[, ]*([0-9]+)*)?$/s", $query, $limits) ) + { + $query = $limits[1]; + + if( !empty($limits[2]) ) + { + $row_offset = ( $limits[4] ) ? $limits[3] : ""; + $num_rows = ( $limits[4] ) ? $limits[4] : $limits[3]; + + $query = "TOP " . ( $row_offset + $num_rows ) . $query; + } + + $this->result = odbc_exec($this->db_connect_id, "SELECT $query"); + + if( $this->result ) + { + if( empty($this->field_names[$this->result]) ) + { + for($i = 1; $i < odbc_num_fields($this->result) + 1; $i++) + { + $this->field_names[$this->result][] = odbc_field_name($this->result, $i); + $this->field_types[$this->result][] = odbc_field_type($this->result, $i); + } + } + + $this->current_row[$this->result] = 0; + $this->result_rowset[$this->result] = array(); + + $row_outer = ( isset($row_offset) ) ? $row_offset + 1 : 1; + $row_outer_max = ( isset($num_rows) ) ? $row_offset + $num_rows + 1 : 1E9; + $row_inner = 0; + + while( odbc_fetch_row($this->result, $row_outer) && $row_outer < $row_outer_max ) + { + for($j = 0; $j < count($this->field_names[$this->result]); $j++) + { + $this->result_rowset[$this->result][$row_inner][$this->field_names[$this->result][$j]] = stripslashes(odbc_result($this->result, $j + 1)); + } + + $row_outer++; + $row_inner++; + } + + $this->num_rows[$this->result] = count($this->result_rowset[$this->result]); + + odbc_free_result($this->result); + } + + } + else if( eregi("^INSERT ", $query) ) + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $result_id = odbc_exec($this->db_connect_id, "SELECT @@IDENTITY"); + if( $result_id ) + { + if( odbc_fetch_row($result_id) ) + { + $this->next_id[$this->db_connect_id] = odbc_result($result_id, 1); + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + } + } + else + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + + if( !$this->result ) + { + if( $this->in_transaction ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + $this->in_transaction = FALSE; + } + + return false; + } + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !@odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + return $this->result; + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !@odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->num_rows[$query_id] : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? count($this->field_names[$query_id]) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_names[$query_id][$offset] : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_types[$query_id][$offset] : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] && $this->current_row[$query_id] < $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id][$this->current_row[$query_id]++] : false; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id] : false; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $row = -1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + if( $row < $this->num_rows[$query_id] ) + { + $getrow = ($row == -1) ? $this->current_row[$query_id] - 1 : $row; + + return $this->result_rowset[$query_id][$getrow][$this->field_names[$query_id][$field]]; + } + else + { + return false; + } + } + else + { + return false; + } + } + + function sql_rowseek($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + $this->current_row[$query_id] = $offset - 1; + return true; + } + else + { + return false; + } + } + + function sql_nextid() + { + return ( $this->next_id[$this->db_connect_id] ) ? $this->next_id[$this->db_connect_id] : false; + } + + function sql_affectedrows() + { + return ( $this->affected_rows[$this->db_connect_id] ) ? $this->affected_rows[$this->db_connect_id] : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + unset($this->num_rows[$query_id]); + unset($this->current_row[$query_id]); + unset($this->result_rowset[$query_id]); + unset($this->field_names[$query_id]); + unset($this->field_types[$query_id]); + + return true; + } + + function sql_error() + { + $error['code'] = "";//odbc_error($this->db_connect_id); + $error['message'] = "Error";//odbc_errormsg($this->db_connect_id); + + return $error; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2/db/mssql-odbc.php b/phpBB2/db/mssql-odbc.php new file mode 100644 index 0000000..93abe0a --- /dev/null +++ b/phpBB2/db/mssql-odbc.php @@ -0,0 +1,387 @@ +persistency = $persistency; + $this->server = $sqlserver; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->dbname = $database; + + $this->db_connect_id = ($this->persistency) ? odbc_pconnect($this->server, $this->user, $this->password) : odbc_connect($this->server, $this->user, $this->password); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; + } + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if( $this->in_transaction ) + { + @odbc_commit($this->db_connect_id); + } + + if( count($this->result_rowset) ) + { + unset($this->result_rowset); + unset($this->field_names); + unset($this->field_types); + unset($this->num_rows); + unset($this->current_row); + } + + return @odbc_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Query method + // + function sql_query($query = "", $transaction = FALSE) + { + if( $query != "" ) + { + $this->num_queries++; + + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + if( !odbc_autocommit($this->db_connect_id, false) ) + { + return false; + } + $this->in_transaction = TRUE; + } + + if( preg_match("/^SELECT(.*?)(LIMIT ([0-9]+)[, ]*([0-9]+)*)?$/s", $query, $limits) ) + { + $query = $limits[1]; + + if( !empty($limits[2]) ) + { + $row_offset = ( $limits[4] ) ? $limits[3] : ""; + $num_rows = ( $limits[4] ) ? $limits[4] : $limits[3]; + + $query = "TOP " . ( $row_offset + $num_rows ) . $query; + } + + $this->result = odbc_exec($this->db_connect_id, "SELECT $query"); + + if( $this->result ) + { + if( empty($this->field_names[$this->result]) ) + { + for($i = 1; $i < odbc_num_fields($this->result) + 1; $i++) + { + $this->field_names[$this->result][] = odbc_field_name($this->result, $i); + $this->field_types[$this->result][] = odbc_field_type($this->result, $i); + } + } + + $this->current_row[$this->result] = 0; + $this->result_rowset[$this->result] = array(); + + $row_outer = ( isset($row_offset) ) ? $row_offset + 1 : 1; + $row_outer_max = ( isset($num_rows) ) ? $row_offset + $num_rows + 1 : 1E9; + $row_inner = 0; + + while( odbc_fetch_row($this->result, $row_outer) && $row_outer < $row_outer_max ) + { + for($j = 0; $j < count($this->field_names[$this->result]); $j++) + { + $this->result_rowset[$this->result][$row_inner][$this->field_names[$this->result][$j]] = stripslashes(odbc_result($this->result, $j + 1)); + } + + $row_outer++; + $row_inner++; + } + + $this->num_rows[$this->result] = count($this->result_rowset[$this->result]); + } + + } + else if( eregi("^INSERT ", $query) ) + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $result_id = odbc_exec($this->db_connect_id, "SELECT @@IDENTITY"); + if( $result_id ) + { + if( odbc_fetch_row($result_id) ) + { + $this->next_id[$this->db_connect_id] = odbc_result($result_id, 1); + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + } + } + else + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + + if( !$this->result ) + { + if( $this->in_transaction ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + $this->in_transaction = FALSE; + } + + return false; + } + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + odbc_free_result($this->result); + + return $this->result; + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !@odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->num_rows[$query_id] : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? count($this->field_names[$query_id]) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_names[$query_id][$offset] : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_types[$query_id][$offset] : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] && $this->current_row[$query_id] < $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id][$this->current_row[$query_id]++] : false; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id] : false; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $row = -1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + if( $row < $this->num_rows[$query_id] ) + { + $getrow = ( $row == -1 ) ? $this->current_row[$query_id] - 1 : $row; + + return $this->result_rowset[$query_id][$getrow][$this->field_names[$query_id][$field]]; + + } + else + { + return false; + } + } + else + { + return false; + } + } + + function sql_rowseek($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + $this->current_row[$query_id] = $offset - 1; + return true; + } + else + { + return false; + } + } + + function sql_nextid() + { + return ( $this->next_id[$this->db_connect_id] ) ? $this->next_id[$this->db_connect_id] : false; + } + + function sql_affectedrows() + { + return ( $this->affected_rows[$this->db_connect_id] ) ? $this->affected_rows[$this->db_connect_id] : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + unset($this->num_rows[$query_id]); + unset($this->current_row[$query_id]); + unset($this->result_rowset[$query_id]); + unset($this->field_names[$query_id]); + unset($this->field_types[$query_id]); + + return true; + } + + function sql_error() + { + $error['code'] = odbc_error($this->db_connect_id); + $error['message'] = odbc_errormsg($this->db_connect_id); + + return $error; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2/db/mssql.php b/phpBB2/db/mssql.php new file mode 100644 index 0000000..c03a7aa --- /dev/null +++ b/phpBB2/db/mssql.php @@ -0,0 +1,418 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + $this->db_connect_id = ( $this->persistency ) ? @mssql_pconnect($this->server, $this->user, $this->password) : @mssql_connect($this->server, $this->user, $this->password); + + if( $this->db_connect_id && $this->dbname != "" ) + { + if( !mssql_select_db($this->dbname, $this->db_connect_id) ) + { + mssql_close($this->db_connect_id); + return false; + } + } + + return $this->db_connect_id; + } + + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + // + // Commit any remaining transactions + // + if( $this->in_transaction ) + { + @mssql_query("COMMIT", $this->db_connect_id); + } + + return @mssql_close($this->db_connect_id); + } + else + { + return false; + } + } + + + // + // Query method + // + function sql_query($query = '', $transaction = FALSE) + { + // + // Remove any pre-existing queries + // + unset($this->result); + unset($this->row); + + if ( $query != '' ) + { + $this->num_queries++; + + if ( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + if ( !@mssql_query('BEGIN TRANSACTION', $this->db_connect_id) ) + { + return false; + } + $this->in_transaction = TRUE; + } + + // + // Does query contain any LIMIT code? If so pull out relevant start and num_results + // This isn't terribly easy with MSSQL, whatever you do will potentially impact + // performance compared to an 'in-built' limit + // + // Another issue is the 'lack' of a returned true value when a query is valid but has + // no result set (as with all the other DB interfaces). It seems though that it's + // 'fair' to say that if a query returns a false result (ie. no resource id) then the + // SQL was valid but had no result set. If the query returns nothing but the rowcount + // returns something then there's a problem. This may well be a false assumption though + // ... needs checking under Windows itself. + // + if( preg_match('#^SELECT(.*?)(LIMIT ([0-9]+)[, ]*([0-9]+)*)?$#s', $query, $limits) ) + { + $query = $limits[1]; + + if( !empty($limits[2]) ) + { + $row_offset = ( $limits[4] ) ? $limits[3] : ""; + $num_rows = ( $limits[4] ) ? $limits[4] : $limits[3]; + + $query = 'TOP ' . ( $row_offset + $num_rows ) . $query; + } + + $this->result = @mssql_query("SELECT $query", $this->db_connect_id); + + if( $this->result ) + { + $this->limit_offset[$this->result] = ( !empty($row_offset) ) ? $row_offset : 0; + + if( $row_offset > 0 ) + { + @mssql_data_seek($this->result, $row_offset); + } + } + } + else if( preg_match('#^INSERT #i', $query) ) + { + if( @mssql_query($query, $this->db_connect_id) ) + { + $this->result = time() + microtime(); + + $result_id = @mssql_query('SELECT @@IDENTITY AS id, @@ROWCOUNT as affected', $this->db_connect_id); + if( $result_id ) + { + if( $row = @mssql_fetch_array($result_id) ) + { + $this->next_id[$this->db_connect_id] = $row['id']; + $this->affected_rows[$this->db_connect_id] = $row['affected']; + } + } + } + } + else + { + if( @mssql_query($query, $this->db_connect_id) ) + { + $this->result = time() + microtime(); + + $result_id = @mssql_query('SELECT @@ROWCOUNT as affected', $this->db_connect_id); + if( $result_id ) + { + if( $row = @mssql_fetch_array($result_id) ) + { + $this->affected_rows[$this->db_connect_id] = $row['affected']; + } + } + } + } + + if( !$this->result ) + { + if( $this->in_transaction ) + { + @mssql_query('ROLLBACK', $this->db_connect_id); + $this->in_transaction = FALSE; + } + + return false; + } + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if( !@mssql_query('COMMIT', $this->db_connect_id) ) + { + @mssql_query("ROLLBACK", $this->db_connect_id); + return false; + } + } + + return $this->result; + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if( !@mssql_query('COMMIT', $this->db_connect_id) ) + { + @mssql_query('ROLLBACK', $this->db_connect_id); + return false; + } + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( !empty($this->limit_offset[$query_id]) ) ? @mssql_num_rows($query_id) - $this->limit_offset[$query_id] : @mssql_num_rows($query_id); + } + else + { + return false; + } + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_num_fields($query_id) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_field_name($query_id, $offset) : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_field_type($query_id, $offset) : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + empty($row); + + $row = @mssql_fetch_array($query_id); + + while( list($key, $value) = @each($row) ) + { + $row[$key] = ($value === ' ') ? '' : stripslashes($value); + } + @reset($row); + + return $row; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + $i = 0; + empty($rowset); + + while( $row = @mssql_fetch_array($query_id)) + { + while( list($key, $value) = @each($row) ) + { + $rowset[$i][$key] = ($value === ' ') ? '' : stripslashes($value); + } + $i++; + } + @reset($rowset); + + return $rowset; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $row = -1, $query_id) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + if( $row != -1 ) + { + if( $this->limit_offset[$query_id] > 0 ) + { + $result = ( !empty($this->limit_offset[$query_id]) ) ? @mssql_result($this->result, ($this->limit_offset[$query_id] + $row), $field) : false; + } + else + { + $result = @mssql_result($this->result, $row, $field); + } + } + else + { + if( empty($this->row[$query_id]) ) + { + $this->row[$query_id] = @mssql_fetch_array($query_id); + $result = ($this->row[$query_id][$field] === ' ') ? '' : stripslashes($this->row[$query_id][$field]); + } + } + + return $result; + } + else + { + return false; + } + } + + function sql_rowseek($rownum, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( !empty($this->limit_offset[$query_id]) ) ? @mssql_data_seek($query_id, ($this->limit_offset[$query_id] + $rownum)) : @mssql_data_seek($query_id, $rownum); + } + else + { + return false; + } + } + + function sql_nextid() + { + return ( $this->next_id[$this->db_connect_id] ) ? $this->next_id[$this->db_connect_id] : false; + } + + function sql_affectedrows() + { + return ( $this->affected_rows[$this->db_connect_id] ) ? $this->affected_rows[$this->db_connect_id] : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_free_result($query_id) : false; + } + + function sql_error($query_id = 0) + { + $result['message'] = @mssql_get_last_message(); + return $result; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2/db/mysql.php b/phpBB2/db/mysql.php new file mode 100644 index 0000000..47886e3 --- /dev/null +++ b/phpBB2/db/mysql.php @@ -0,0 +1,335 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + if($this->persistency) + { + $this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password); + } + else + { + $this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password); + } + if($this->db_connect_id) + { + if($database != "") + { + $this->dbname = $database; + $dbselect = @mysql_select_db($this->dbname); + if(!$dbselect) + { + @mysql_close($this->db_connect_id); + $this->db_connect_id = $dbselect; + } + } + return $this->db_connect_id; + } + else + { + return false; + } + } + + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if($this->query_result) + { + @mysql_free_result($this->query_result); + } + $result = @mysql_close($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + + // + // Base query method + // + function sql_query($query = "", $transaction = FALSE) + { + // Remove any pre-existing queries + unset($this->query_result); + if($query != "") + { + $this->num_queries++; + + $this->query_result = @mysql_query($query, $this->db_connect_id); + } + if($this->query_result) + { + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + return $this->query_result; + } + else + { + return ( $transaction == END_TRANSACTION ) ? true : false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_num_rows($query_id); + return $result; + } + else + { + return false; + } + } + function sql_affectedrows() + { + if($this->db_connect_id) + { + $result = @mysql_affected_rows($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + function sql_numfields($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_num_fields($query_id); + return $result; + } + else + { + return false; + } + } + function sql_fieldname($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_field_name($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fieldtype($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_field_type($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fetchrow($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $this->row[$query_id] = @mysql_fetch_array($query_id); + return $this->row[$query_id]; + } + else + { + return false; + } + } + function sql_fetchrowset($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + unset($this->rowset[$query_id]); + unset($this->row[$query_id]); + while($this->rowset[$query_id] = @mysql_fetch_array($query_id)) + { + $result[] = $this->rowset[$query_id]; + } + return $result; + } + else + { + return false; + } + } + function sql_fetchfield($field, $rownum = -1, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($rownum > -1) + { + $result = @mysql_result($query_id, $rownum, $field); + } + else + { + if(empty($this->row[$query_id]) && empty($this->rowset[$query_id])) + { + if($this->sql_fetchrow()) + { + $result = $this->row[$query_id][$field]; + } + } + else + { + if($this->rowset[$query_id]) + { + $result = $this->rowset[$query_id][0][$field]; + } + else if($this->row[$query_id]) + { + $result = $this->row[$query_id][$field]; + } + } + } + return $result; + } + else + { + return false; + } + } + function sql_rowseek($rownum, $query_id = 0){ + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_data_seek($query_id, $rownum); + return $result; + } + else + { + return false; + } + } + function sql_nextid(){ + if($this->db_connect_id) + { + $result = @mysql_insert_id($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + function sql_freeresult($query_id = 0){ + if(!$query_id) + { + $query_id = $this->query_result; + } + + if ( $query_id ) + { + unset($this->row[$query_id]); + unset($this->rowset[$query_id]); + + @mysql_free_result($query_id); + + return true; + } + else + { + return false; + } + } + function sql_error($query_id = 0) + { + $result["message"] = @mysql_error($this->db_connect_id); + $result["code"] = @mysql_errno($this->db_connect_id); + + return $result; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2/db/mysql4.php b/phpBB2/db/mysql4.php new file mode 100644 index 0000000..7fc8826 --- /dev/null +++ b/phpBB2/db/mysql4.php @@ -0,0 +1,340 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password); + + if( $this->db_connect_id ) + { + if( $database != "" ) + { + $this->dbname = $database; + $dbselect = mysql_select_db($this->dbname); + + if( !$dbselect ) + { + mysql_close($this->db_connect_id); + $this->db_connect_id = $dbselect; + } + } + + return $this->db_connect_id; + } + else + { + return false; + } + } + + // + // Other base methods + // + function sql_close() + { + if( $this->db_connect_id ) + { + // + // Commit any remaining transactions + // + if( $this->in_transaction ) + { + mysql_query("COMMIT", $this->db_connect_id); + } + + return mysql_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Base query method + // + function sql_query($query = "", $transaction = FALSE) + { + // + // Remove any pre-existing queries + // + unset($this->query_result); + + if( $query != "" ) + { + $this->num_queries++; + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + $result = mysql_query("BEGIN", $this->db_connect_id); + if(!$result) + { + return false; + } + $this->in_transaction = TRUE; + } + + $this->query_result = mysql_query($query, $this->db_connect_id); + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $result = mysql_query("COMMIT", $this->db_connect_id); + } + } + + if( $this->query_result ) + { + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !mysql_query("COMMIT", $this->db_connect_id) ) + { + mysql_query("ROLLBACK", $this->db_connect_id); + return false; + } + } + + return $this->query_result; + } + else + { + if( $this->in_transaction ) + { + mysql_query("ROLLBACK", $this->db_connect_id); + $this->in_transaction = FALSE; + } + return false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_num_rows($query_id) : false; + } + + function sql_affectedrows() + { + return ( $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_num_fields($query_id) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_field_name($query_id, $offset) : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_field_type($query_id, $offset) : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + $this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC); + return $this->row[$query_id]; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + unset($this->rowset[$query_id]); + unset($this->row[$query_id]); + + while($this->rowset[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC)) + { + $result[] = $this->rowset[$query_id]; + } + + return $result; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $rownum = -1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + if( $rownum > -1 ) + { + $result = mysql_result($query_id, $rownum, $field); + } + else + { + if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) ) + { + if( $this->sql_fetchrow() ) + { + $result = $this->row[$query_id][$field]; + } + } + else + { + if( $this->rowset[$query_id] ) + { + $result = $this->rowset[$query_id][0][$field]; + } + else if( $this->row[$query_id] ) + { + $result = $this->row[$query_id][$field]; + } + } + } + + return $result; + } + else + { + return false; + } + } + + function sql_rowseek($rownum, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_data_seek($query_id, $rownum) : false; + } + + function sql_nextid() + { + return ( $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if ( $query_id ) + { + unset($this->row[$query_id]); + unset($this->rowset[$query_id]); + + mysql_free_result($query_id); + + return true; + } + else + { + return false; + } + } + + function sql_error() + { + $result['message'] = mysql_error($this->db_connect_id); + $result['code'] = mysql_errno($this->db_connect_id); + + return $result; + } + +} // class sql_db + +} // if ... define + +?> diff --git a/phpBB2/db/oracle.php b/phpBB2/db/oracle.php new file mode 100644 index 0000000..fd52b17 --- /dev/null +++ b/phpBB2/db/oracle.php @@ -0,0 +1,472 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + if($this->persistency) + { + $this->db_connect_id = @OCIPLogon($this->user, $this->password, $this->server); + } + else + { + $this->db_connect_id = @OCINLogon($this->user, $this->password, $this->server); + } + if($this->db_connect_id) + { + return $this->db_connect_id; + } + else + { + return false; + } + } + + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + // Commit outstanding transactions + if($this->in_transaction) + { + OCICommit($this->db_connect_id); + } + + if($this->query_result) + { + @OCIFreeStatement($this->query_result); + } + $result = @OCILogoff($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + + // + // Base query method + // + function sql_query($query = "", $transaction = FALSE) + { + // Remove any pre-existing queries + unset($this->query_result); + + // Put us in transaction mode because with Oracle as soon as you make a query you're in a transaction + $this->in_transaction = TRUE; + + if($query != "") + { + $this->last_query = $query; + $this->num_queries++; + + if(eregi("LIMIT", $query)) + { + preg_match("/^(.*)LIMIT ([0-9]+)[, ]*([0-9]+)*/s", $query, $limits); + + $query = $limits[1]; + if($limits[3]) + { + $row_offset = $limits[2]; + $num_rows = $limits[3]; + } + else + { + $row_offset = 0; + $num_rows = $limits[2]; + } + } + + if(eregi("^(INSERT|UPDATE) ", $query)) + { + $query = preg_replace("/\\\'/s", "''", $query); + } + + $this->query_result = @OCIParse($this->db_connect_id, $query); + $success = @OCIExecute($this->query_result, OCI_DEFAULT); + } + if($success) + { + if($transaction == END_TRANSACTION) + { + OCICommit($this->db_connect_id); + $this->in_transaction = FALSE; + } + + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + $this->last_query_text[$this->query_result] = $query; + + return $this->query_result; + } + else + { + if($this->in_transaction) + { + OCIRollback($this->db_connect_id); + } + return false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIFetchStatement($query_id, $this->rowset); + // OCIFetchStatment kills our query result so we have to execute the statment again + // if we ever want to use the query_id again. + @OCIExecute($query_id, OCI_DEFAULT); + return $result; + } + else + { + return false; + } + } + function sql_affectedrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIRowCount($query_id); + return $result; + } + else + { + return false; + } + } + function sql_numfields($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCINumCols($query_id); + return $result; + } + else + { + return false; + } + } + function sql_fieldname($offset, $query_id = 0) + { + // OCIColumnName uses a 1 based array so we have to up the offset by 1 in here to maintain + // full abstraction compatibitly + $offset += 1; + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = strtolower(@OCIColumnName($query_id, $offset)); + return $result; + } + else + { + return false; + } + } + function sql_fieldtype($offset, $query_id = 0) + { + // This situation is the same as fieldname + $offset += 1; + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIColumnType($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fetchrow($query_id = 0, $debug = FALSE) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result_row = ""; + $result = @OCIFetchInto($query_id, $result_row, OCI_ASSOC+OCI_RETURN_NULLS); + if($debug) + { + echo "Query was: ".$this->last_query . "
"; + echo "Result: $result
"; + echo "Query ID: $query_id
"; + echo "
";
+				var_dump($result_row);
+				echo "
"; + } + if($result_row == "") + { + return false; + } + + for($i = 0; $i < count($result_row); $i++) + { + list($key, $val) = each($result_row); + $return_arr[strtolower($key)] = $val; + } + $this->row[$query_id] = $return_arr; + + return $this->row[$query_id]; + } + else + { + return false; + } + } + // This function probably isn't as efficant is it could be but any other way I do it + // I end up losing 1 row... + function sql_fetchrowset($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $rows = @OCIFetchStatement($query_id, $results); + @OCIExecute($query_id, OCI_DEFAULT); + for($i = 0; $i < $rows; $i++) + { + @OCIFetchInto($query_id, $tmp_result, OCI_ASSOC+OCI_RETURN_NULLS); + + for($j = 0; $j < count($tmp_result); $j++) + { + list($key, $val) = each($tmp_result); + $return_arr[strtolower($key)] = $val; + } + $result[] = $return_arr; + } + return $result; + } + else + { + return false; + } + } + function sql_fetchfield($field, $rownum = -1, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($rownum > -1) + { + // Reset the internal rownum pointer. + @OCIExecute($query_id, OCI_DEFAULT); + for($i = 0; $i < $rownum; $i++) + { + // Move the interal pointer to the row we want + @OCIFetch($query_id); + } + // Get the field data. + $result = @OCIResult($query_id, strtoupper($field)); + } + else + { + // The internal pointer should be where we want it + // so we just grab the field out of the current row. + $result = @OCIResult($query_id, strtoupper($field)); + } + return $result; + } + else + { + return false; + } + } + function sql_rowseek($rownum, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + @OCIExecute($query_id, OCI_DEFAULT); + for($i = 0; $i < $rownum; $i++) + { + @OCIFetch($query_id); + } + $result = @OCIFetch($query_id); + return $result; + } + else + { + return false; + } + } + function sql_nextid($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id && $this->last_query_text[$query_id] != "") + { + if( eregi("^(INSERT{1}|^INSERT INTO{1})[[:space:]][\"]?([a-zA-Z0-9\_\-]+)[\"]?", $this->last_query_text[$query_id], $tablename)) + { + $query = "SELECT ".$tablename[2]."_id_seq.currval FROM DUAL"; + $stmt = @OCIParse($this->db_connect_id, $query); + @OCIExecute($stmt,OCI_DEFAULT ); + $temp_result = @OCIFetchInto($stmt, $temp_result, OCI_ASSOC+OCI_RETURN_NULLS); + if($temp_result) + { + return $temp_result['CURRVAL']; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + + function sql_nextid($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id && $this->last_query_text[$query_id] != "") + { + if( eregi("^(INSERT{1}|^INSERT INTO{1})[[:space:]][\"]?([a-zA-Z0-9\_\-]+)[\"]?", $this->last_query_text[$query_id], $tablename)) + { + $query = "SELECT ".$tablename[2]."_id_seq.CURRVAL FROM DUAL"; + $temp_q_id = @OCIParse($this->db_connect_id, $query); + @OCIExecute($temp_q_id, OCI_DEFAULT); + @OCIFetchInto($temp_q_id, $temp_result, OCI_ASSOC+OCI_RETURN_NULLS); + + if($temp_result) + { + return $temp_result['CURRVAL']; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + + + + function sql_freeresult($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIFreeStatement($query_id); + return $result; + } + else + { + return false; + } + } + function sql_error($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + $result = @OCIError($query_id); + return $result; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2/db/postgres7.php b/phpBB2/db/postgres7.php new file mode 100644 index 0000000..1a5fcd2 --- /dev/null +++ b/phpBB2/db/postgres7.php @@ -0,0 +1,397 @@ +connect_string = ""; + + if( $sqluser ) + { + $this->connect_string .= "user=$sqluser "; + } + + if( $sqlpassword ) + { + $this->connect_string .= "password=$sqlpassword "; + } + + if( $sqlserver ) + { + if( ereg(":", $sqlserver) ) + { + list($sqlserver, $sqlport) = split(":", $sqlserver); + $this->connect_string .= "host=$sqlserver port=$sqlport "; + } + else + { + if( $sqlserver != "localhost" ) + { + $this->connect_string .= "host=$sqlserver "; + } + } + } + + if( $database ) + { + $this->dbname = $database; + $this->connect_string .= "dbname=$database"; + } + + $this->persistency = $persistency; + + $this->db_connect_id = ( $this->persistency ) ? pg_pconnect($this->connect_string) : pg_connect($this->connect_string); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; + } + + // + // Other base methods + // + function sql_close() + { + if( $this->db_connect_id ) + { + // + // Commit any remaining transactions + // + if( $this->in_transaction ) + { + @pg_exec($this->db_connect_id, "COMMIT"); + } + + if( $this->query_result ) + { + @pg_freeresult($this->query_result); + } + + return @pg_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Query method + // + function sql_query($query = "", $transaction = false) + { + // + // Remove any pre-existing queries + // + unset($this->query_result); + if( $query != "" ) + { + $this->num_queries++; + + $query = preg_replace("/LIMIT ([0-9]+),([ 0-9]+)/", "LIMIT \\2 OFFSET \\1", $query); + + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + $this->in_transaction = TRUE; + + if( !@pg_exec($this->db_connect_id, "BEGIN") ) + { + return false; + } + } + + $this->query_result = @pg_exec($this->db_connect_id, $query); + if( $this->query_result ) + { + if( $transaction == END_TRANSACTION ) + { + $this->in_transaction = FALSE; + + if( !@pg_exec($this->db_connect_id, "COMMIT") ) + { + @pg_exec($this->db_connect_id, "ROLLBACK"); + return false; + } + } + + $this->last_query_text[$this->query_result] = $query; + $this->rownum[$this->query_result] = 0; + + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + + return $this->query_result; + } + else + { + if( $this->in_transaction ) + { + @pg_exec($this->db_connect_id, "ROLLBACK"); + } + $this->in_transaction = FALSE; + + return false; + } + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if( !@pg_exec($this->db_connect_id, "COMMIT") ) + { + @pg_exec($this->db_connect_id, "ROLLBACK"); + return false; + } + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_numrows($query_id) : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_numfields($query_id) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_fieldname($query_id, $offset) : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_fieldtype($query_id, $offset) : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if($query_id) + { + $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id]); + + if( $this->row ) + { + $this->rownum[$query_id]++; + return $this->row; + } + } + + return false; + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + unset($this->rowset[$query_id]); + unset($this->row[$query_id]); + $this->rownum[$query_id] = 0; + + while( $this->rowset = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC) ) + { + $result[] = $this->rowset; + $this->rownum[$query_id]++; + } + + return $result; + } + + return false; + } + + function sql_fetchfield($field, $row_offset=-1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + if( $row_offset != -1 ) + { + $this->row = @pg_fetch_array($query_id, $row_offset, PGSQL_ASSOC); + } + else + { + if( $this->rownum[$query_id] ) + { + $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id]-1, PGSQL_ASSOC); + } + else + { + $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC); + + if( $this->row ) + { + $this->rownum[$query_id]++; + } + } + } + + return $this->row[$field]; + } + + return false; + } + + function sql_rowseek($offset, $query_id = 0) + { + + if(!$query_id) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + if( $offset > -1 ) + { + $this->rownum[$query_id] = $offset; + return true; + } + else + { + return false; + } + } + + return false; + } + + function sql_nextid() + { + $query_id = $this->query_result; + + if($query_id && $this->last_query_text[$query_id] != "") + { + if( preg_match("/^INSERT[\t\n ]+INTO[\t\n ]+([a-z0-9\_\-]+)/is", $this->last_query_text[$query_id], $tablename) ) + { + $query = "SELECT currval('" . $tablename[1] . "_id_seq') AS last_value"; + $temp_q_id = @pg_exec($this->db_connect_id, $query); + if( !$temp_q_id ) + { + return false; + } + + $temp_result = @pg_fetch_array($temp_q_id, 0, PGSQL_ASSOC); + + return ( $temp_result ) ? $temp_result['last_value'] : false; + } + } + + return false; + } + + function sql_affectedrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_cmdtuples($query_id) : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_freeresult($query_id) : false; + } + + function sql_error($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + $result['message'] = @pg_errormessage($this->db_connect_id); + $result['code'] = -1; + + return $result; + } + +} // class ... db_sql + +} // if ... defined + +?> \ No newline at end of file diff --git a/phpBB2/docs/AUTHORS b/phpBB2/docs/AUTHORS new file mode 100644 index 0000000..a2d973c --- /dev/null +++ b/phpBB2/docs/AUTHORS @@ -0,0 +1 @@ +Please see: http://www.phpbb.com/about.php for a list of all the people involved in phpBB. diff --git a/phpBB2/docs/CHANGELOG.html b/phpBB2/docs/CHANGELOG.html new file mode 100644 index 0000000..6a59fdf --- /dev/null +++ b/phpBB2/docs/CHANGELOG.html @@ -0,0 +1,668 @@ + + + + + +phpBB 2.0.15 :: Changelog + + + + + + + + + +
+ + + +
+ + + + + + +
phpBB 2 : Creating CommunitiesphpBB 2.0.15 CHANGELOG
+ + +
    +
  1. Changelog
  2. +
      +
    1. Changes since 2.0.14
    2. +
    3. Changes since 2.0.13
    4. +
    5. Changes since 2.0.12
    6. +
    7. Changes since 2.0.11
    8. +
    9. Changes since 2.0.10
    10. +
    11. Changes since 2.0.9
    12. +
    13. Changes since 2.0.8
    14. +
    15. Changes since 2.0.7
    16. +
    17. Changes since 2.0.6
    18. +
    19. Changes since 2.0.5
    20. +
    21. Changes since 2.0.4
    22. +
    23. Changes since 2.0.3
    24. +
    25. Changes since 2.0.2
    26. +
    27. Changes since 2.0.1
    28. +
    29. Changes since 2.0.0
    30. +
    31. Changes since RC-4
    32. +
    33. Changes since RC-3
    34. +
    35. Changes since RC-2
    36. +
    37. Changes since RC-1
    38. +
    39. Changes since RC-1 (pre)
    40. +
    +
  3. Disclaimer
  4. +
+ +

1. Changelog

+ +

This is a non-exhaustive (but still near complete) changelog for phpBB 2.0.x including beta and release candidate versions. Our thanks to all those people who've contributed bug reports and code fixes.

+ +

l.i. Changes since 2.0.14

+ +
    +
  • Fixed moderator status removal in groupcp.php
  • +
  • Removed newlines after ?> on some files - Thoul
  • +
  • Added admin re-authentication (admin needs to login seperatly to access the ACP) - backported from Olympus
  • +
  • Fixed vulnerability in url/bbcode handling functions - PapaDos and Paul/Zhen-Xjell from CastleCops
  • +
  • Fixed issue in admin/admin_forums.php
  • +
  • Suppressed warning message for fsockopen in /includes/smtp.php - Thoul
  • +
  • Fixed bug in admin/admin_smilies.php (admin is able to add empty smilies) - Exy
  • +
  • Adjusted documents to reflect the urgent need to update the files too (not only running the database update script)
  • +
  • Updated the readme file
  • +
  • Added one new language variable
  • +
  • Added general error if accessing profile for a non-existent user
  • +
  • Changed session id generation to be more unique - Henno Joosep
  • +
  • Fixed bug in highlight code to escape characters correctly
  • +
  • Reversed the 2.0.14 fix for postgresql because it produced more problems than it solves.
  • +
  • Added reference to article written by R45 about case-sensitivity in postgreSQL to the readme file
  • +
  • Fixed bypassing of validate_username on registration - Yen
  • +
  • Empty url/img bbcodes no longer get parsed
  • +
+ +

l.ii. Changes since 2.0.13

+ +
    +
  • Hardened author and keyword search a bit to not allow very server intensive searches
  • +
  • Fixed full path disclosure in bad word parsing
  • +
  • Resetting complete userdata array in session code if authentication fails
  • +
  • Fixed bug in moderator control panel where certain parameters could lead to an "error creating new session" sql error
  • +
  • Fixed bug in session code where empty page ids could lead to an "error creating new session" sql error
  • +
  • Fixed html handling in signatures if html is turned off globally
  • +
  • Fixed install.php problem with PHP5 register_long_arrays option turned off
  • +
  • Fixed potential issues with styling system
  • +
  • Added correct class to login_body template file
  • +
  • Removed file db/oracle.php from package
  • +
  • Removed version number from message body page in /admin (if user is not an admin) - mikelbeck
  • +
  • Fixed case-sensitivity issues in postgres7.php - R45
  • +
+ +

l.iii. Changes since 2.0.12

+ +
    +
  • Ommitted preg_replace warning in viewtopic due to improper working of preg_quote in PHP - originally reported by matrix_killer, fix submitted by another party
  • +
  • Fixed high severity issue in session handling allowing everyone gaining administrator rights. Please update as soon as possible.
  • +
  • Minimum requirements raised to PHP 4.0.3 or above due to fixing vulnerability issues breaking PHP3 compatibility.
  • +
+ +

l.iv. Changes since 2.0.11

+ +
    +
  • Added confirm table to admin_db_utilities.php
  • +
  • Prevented full path display on critical messages
  • +
  • Fixed full path disclosure in username handling caused by a PHP 4.3.10 bug - AnthraX101
  • +
  • Added exclude list to unsetting globals (if register_globals is on) - SpoofedExistence
  • +
  • Fixed arbitrary file disclosure vulnerability in avatar handling functions - AnthraX101
  • +
  • Fixed arbitrary file unlink vulnerability in avatar handling functions - AnthraX101
  • +
  • Removed version number from powered by line
  • +
  • Merged database update files to update_to_latest.php file
  • +
  • Fixed path disclosure bug in search.php caused by a PHP 4.3.10 bug (related to AnthraX101's discovery)
  • +
  • Fixed path disclosure bug in viewtopic.php caused by a PHP 4.3.10 bug - matrix_killer
  • +
+ +

l.v. Changes since 2.0.10

+ +
    +
  • Fixed vulnerability in highlighting code (very high severity, please update your installation as soon as possible)
  • +
  • Fixed unsetting global vars - Matt Kavanagh
  • +
  • Fixed XSS vulnerability in username handling - AnthraX101
  • +
  • Fixed not confirmed sql injection in username handling - warmth
  • +
  • Added check for empty topic id in topic_review function
  • +
  • Added visual confirmation mod to code base
  • +
+ +

l.vi. Changes since 2.0.9

+ +
    +
  • Fixed deleting of styles in admin_styles.php
  • +
  • Fixed wrong unsetting of variables introduced in phpBB 2.0.9, making the board non-functional for users with specific php.ini settings
  • +
  • Added code to let phpBB work with PHP5 for those having register_long_arrays set to off (default settings) - running phpBB 2.0.x with PHP5 is not supported at http://www.phpbb.com.
  • +
  • Fixed bug in admin_board.php for board settings having single quotes in it
  • +
  • Fixed "search by author" in search.php. Now it is possible to search for users with special chars in their name too
  • +
  • Fixed forum jumpbox propagating session id in moderator control pages
  • +
  • Added check for newlines at redirecting pages, to prevent http response splitting attacks - Ory Segal and Amit Klein
  • +
  • Fixed visual confirmation code. The image was not created due to a wrong regular expression.
  • +
+ +

l.vii. Changes since 2.0.8

+ +
    +
  • Fixed one vulnerability in admin_board.php - Xore
  • +
  • Added checking for proper session id characters to sessions and viewtopic to prevent injections - Bartlomiej Korupczynski
  • +
  • Fixed injection vulnerabilities possible with linked avatars
  • +
  • Implemented unsetting globalised variables
  • +
  • Limited confirm switch to POST variable in posting
  • +
  • Changed IP code in common.php to prevent IP spoofing, which might introduce some problems with private IP Ranges showing up. - Wang Products
  • +
  • Updated visual confirmation mod [pre-edited files]
  • +
  • Moved obtaining word censors in modcp out of topic generation loop [increased performance/lower query count] - spotted by R45
  • +
  • Added the ability to link to https/ftps sites using the img bbcode tag
  • +
  • Fixed user online information in admin/index.php
  • +
  • Fixed getting group moderator in groupcp.php if running oracle backend - spotted by pakman
  • +
  • Fixed use of non-existing result variable in modcp (poster_id instead of user_id)
  • +
  • Fixed several vulnerabilities (XSS, SQL Injection and path disclosure) only possible with register_globals enabled - Matthew C. Kavanagh, Janek Vind
  • +
  • Fixed problem with SID not delivered to next page in groupcp.php
  • +
+ +

l.viii. Changes since 2.0.7

+ +
    +
  • Fixed several vulnerabilities in admin pages
  • +
  • Fixed sid checking code in admin/pagestart.php
  • +
  • Fixed injection vulnerabilities possible with the img bbcode tag
  • +
  • Limited allowed images in img bbcode tag to jpg, jpeg, gif and png
  • +
  • Fixed redirect problems - 2.0.7a
  • +
  • Fixed sql injection vulnerability in search - 2.0.7a
  • +
  • Fixed sql injection vulnerability in privmsg - 2.0.8a
  • +
+ +

1.ix. Changes since 2.0.6

+ +
    +
  • Fixed several vulnerabilities in modcp - Robert Lavierck
  • +
  • Changed whois lookup address within admin index
  • +
  • Fixed potential vulnerability in viewtopic postorder - 2.0.6d
  • +
  • Updates to cope with Zend Optimizer 2.5 problems - 2.0.6d - jetset
  • +
  • Force specialcharing of redirect variable in login - Pit
  • +
  • Fixed potential vulnerability in viewtopic postdays - GulfTech Security Research
  • +
  • Fixed potential vulnerability in viewforum topicdays - GulfTech Security Research
  • +
  • Fixed potential vulnerability in modcp
  • +
  • Fixed potential vulnerability in avatar gallery
  • +
+ +

1.x. Changes since 2.0.5

+ +
    +
  • Fixed various email issues
  • +
  • Fixed registration email bug with Administrator Confirmation used
  • +
  • Fixed mass emailer
  • +
  • Fixed long post time issue
  • +
  • Fixed bug with usernames containing single quotes
  • +
  • Fixed word list bug - Word boundaries were not considered
  • +
  • Fixed vulnerability in style admin
  • +
  • Fixed sql injection vulnerability in viewtopic
  • +
  • Fixed vulnerability allowing server side variable access in search - tendor
  • +
  • Fixed potential vulnerability in 2.0.5 login username entry - throw away/eomer
  • +
  • Fixed sql injection with reset date format field in profile - tendor
  • +
+ +

1.xi. Changes since 2.0.4

+ +
    +
  • Removed user facing session_id checks
  • +
  • Fixed user self-activation after deactivation
  • +
  • Fixed incorrect functioning of phpbb_realpath
  • +
  • Fixed wrong path to database schema files within the upgrade script
  • +
  • Fixed double quote problem with username validation
  • +
  • Allow & within email addresses
  • +
  • Fixed email validation for banned email addresses
  • +
  • Removed underline from email domain validation
  • +
  • Fixed redirection for sentbox folder, installation and email
  • +
  • Fixed poll deletion
  • +
  • Fixed Mozilla navigation bar
  • +
  • Fixed URL bbcode parsing
  • +
  • Fixed database timeouts while searching the forums
  • +
  • Fixed wrong email return path in admin mass mailing - netclectic
  • +
  • Fixed MS-SQL failures within the update script
  • +
  • Fixed memberlist sort order
  • +
  • Fixed not showing leading spaces within Code BBCode
  • +
  • Fixed problem with adding double quotes to subject titles
  • +
  • Remove username input field from profile when user cannot change name
  • +
  • Fixed pagination error with highlighting
  • +
  • Fixed errors if no smilies are installed
  • +
  • Fixed CSS issues with IE 5.2 on MacOS X
  • +
  • Fixed missing sid propagation problem within the Moderator Control Panel
  • +
  • Fixed language variables within Authentication error output
  • +
  • Removed doubled CSS class definitions within input fields
  • +
  • Fixed username change within the Administration Panel
  • +
  • Added missing <tr> tags to index_body.tpl
  • +
  • Added missing username language variable to admin index page
  • +
  • Fixed moderator status update if a usergroup got deleted
  • +
  • Fixed poll handling upon post edit
  • +
  • Fixed remove common words from search table if post get pruned - Nuttzy99
  • +
  • Fixed behaviour on splitting topics if no checkbox is selected
  • +
  • Anonymous is no longer displayed within Username dropdown boxes
  • +
  • Fixed viewprofile redirection if an invalid mode was specified
  • +
  • Fixed fraction settings within determining common words - Novan
  • +
  • Prevent admin change usernames to his own within the ACP
  • +
  • Activation email is sent to all admins
  • +
  • Fixed conversion of & to &amp; in appropriate cases
  • +
  • Fixed display of "greater than topics per page" announcements preventing display of normal posts
  • +
  • Added variable checks to database backup and restore screen
  • +
  • Prevented pm popup window from resetting after visiting avatar gallery
  • +
  • Fixed special character handling with word censor
  • +
  • Added SID to jumpbox
  • +
  • Fixed problems with usernames using html special chars
  • +
  • Added GMT + 13 to English lang_main, all translators are encouraged to do likewise
  • +
  • Deleted doubled 'U_MEMBERLIST' assignment from page_header.php
  • +
  • Fixed wrong display of Signature Checkbox while editing Private Message
  • +
  • Fixed disappearing post text if emoticon was inserted directly after pressing a BBCode button
  • +
  • Display correct alt-tag for smilies within postings
  • +
  • Prevented the ability to apply BBCode to website contents
  • +
  • Fixed maxlength issue with password field in login_body.tpl
  • +
  • Fixed possible username duplication issue with validation and username length
  • +
  • Fixed split words function to handle additional foreign characters
  • +
  • Changed empty email To Field to use a non-disclosure delimiter
  • +
  • Fixed wrong language var in install.php - FTP Config screen
  • +
  • Fixed alt tag for locked topic images in viewforum_body.tpl
  • +
  • Fixed typo in groupcp.php - $lang['Unsub_success'] instead of $lang['Usub_success']
  • +
  • Fixed timezone display
  • +
  • Fixed wrong display of author quote tag within profile - Cl1mh4224rd
  • +
  • Added deletion of sessions of users whose account is deactivated
  • +
  • Added mail header X-MimeOLE to the emailer class
  • +
  • Prevent registration if user is logged in or user trying to register again
  • +
  • Prevent usage of char(255) in usernames
  • +
  • Added check for additional FORWARDED_FOR IP's - cosmos
  • +
  • Fixed handling of non-selection of option when voting
  • +
  • Fixed potential xss issue with memberslist mode
  • +
  • Default English support for visual confirmation - translators are encouraged to support this
  • +
+ +

1.xii. Changes since 2.0.3

+ +
    +
  • Fixed cross-browser scripting issue with highlight param
  • +
  • Back-ported highlighting code from phpBB 2.2
  • +
  • Add session id validation to posting, profile, email, voting - Edwin van Vliet
  • +
  • Added {S_HIDDEN_FIELDS} template var to profile_send_email.tpl
  • +
  • Added "intval" fix for flood check, may resolve some issues
  • +
  • Added missing index to post_id for search_wordmatch
  • +
  • Fixed spelling error in search add words preventing use of stopword list
  • +
  • Fixed issue with search common words not being run
  • +
  • Introduce viewtopic resync patch by Ashe
  • +
  • Replace a for n in templating code
  • +
  • Fixed ordering in memberslist
  • +
  • Fixed group_id sequence issues with pgsql and msaccess
  • +
  • Fixed assumption of word censors in user notification
  • +
  • Fixed incorrect display of quotes in user management fields
  • +
  • Fixed entry of special chars in all profile fields - note this may cause temporary issues
  • +
  • Fixed incorrect display of quotes when using avatar gallery
  • +
  • Fixed missing username in email sent to users when admin activated
  • +
  • Added check for non-empty smiley code and url in smiley admin
  • +
  • Prevent display of -- sig seperator in emails when no board sig exists
  • +
  • Fixed URL propagated sid issues with jumpbox
  • +
  • Fixed wrong mode name check (polldelete) in functions_post
  • +
  • Added missing root path to l10n image path check
  • +
  • Remove validation of fields when deleting a user
  • +
  • Fixed sort mode select box in memberslist to default to current mode
  • +
  • Deny inline topic review listing to users without auth_read permissions
  • +
  • Prevent display of topic notification checkbox if user cannot read forum
  • +
  • Remove incorrect pre-pending of IP to uploaded avatars
  • +
  • Fixed deletion of uploaded avatars when changing to remote/gallery
  • +
  • Added check for non-blank line during install schema/basic sql ops
  • +
  • Added sort ordering to Top Ten poster listing by request
  • +
  • Fixed incorrect error report when altering case of username
  • +
  • Added jumpbox output to modcp {JUMPBOX} will now work
  • +
  • Fixed non-updating of users with MOD levels when deleting a forum
  • +
  • Remove email to group moderator when approving new members
  • +
  • Fixed non-handling of HTML in poll options
  • +
  • Fixed non-deletion of polls when deleting forum and its posts
  • +
  • Fixed moved shadow topic from being bumped upon reply
  • +
  • Changed field size of timezone to decimal(5,2) where applicable
  • +
  • Fixed missing sid append to URL when redirecting to newest reply
  • +
  • Fixed missing slashes in private IP preg check
  • +
  • Fixed session not setting userdata['user_id'] to ANON as appropriate
  • +
  • Added check for non-empty name in disallow admin
  • +
  • Fixed validation of SSL website addresses in profile
  • +
  • Fixed inability of admins to upload avatars via user admin panel
  • +
  • Fixed non-deletion of private message text upon full box overwrite
  • +
  • Fixed incorrect error message in smiley admin
  • +
  • Fixed incorrect alt-text for "Stop Watching Topic" image
  • +
  • Temporary fix for missing lang strings in forum admin - translators should update their packages if not done already
  • +
  • Use selected localisation during later stages of installation
  • +
  • Fixed non-check of permissions when deleting a topic via Moderator Control Panel
  • +
  • Fixed non-update of banlist upon user deletion
  • +
  • Check approved users boxes by default in usergroup approve form
  • +
  • Fixed non-appending of sid to backup meta refresh
  • +
  • Fixed non-notification of no support for certain databases in backup/restore
  • +
  • Added $images var to message die global declaration
  • +
  • Fixed wrong string, Private_message in Private Messaging
  • +
  • Add mail send result to error output
  • +
  • Fixed non-appending of sid to Mozilla nav bar menu items
  • +
  • Fixed incorrect profile linking from MSNM url in private messaging
  • +
  • Grammatical errors in English lang_main fixed - Cluster
  • +
  • Allow deletion of avatar and simultaneous upload/linking/gallery selection
  • +
  • Fixed non-updating of user rank when changing from special to normal rank in rank admin
  • +
  • Changed user topic notification default in schemas to 0 (off)
  • +
  • Fixed non-XHTML compliant img tags in privmsg.php
  • +
  • Fixed non-deletion of announcements and polls when removing forum contents in forum admin
  • +
  • Fixed non-pruning of watched topics table when pruning related topics
  • +
  • Enable GET redirect on logout
  • +
  • Added check for IE6.x to viewtopic ICQ indicator javascript
  • +
  • Fixed empty username quoting with MS-SQL
  • +
  • Fixed BBCode url, magic url and img tags to allow most chars beyond domain names
  • +
  • Prevent parsing of -ve size values in BBCode size tag
  • +
  • Back ported HTML handler from 2.2, this may impact some boards which allow complex HTML - existing parser remains but commented out
  • +
  • Fixed parsing of word censors to not censor words within < and > tag delimiters
  • +
  • Fixed database utilities failing to backup data with MySQL
  • +
  • Fixed signature parsing in User Admin
  • +
  • Fixed missing class="post" tags in subSilver Admin templates
  • +
  • Fixes for paths under Apache2
  • +
  • Added wrap text with tag support for posting in Mozilla 1.1+
  • +
  • Fixed use of missing CSS classes in modcp_split, group_info_body, error_body and agreement
  • +
  • Fixed ability of users to edit polls even after they have received votes
  • +
  • Fixed header Location to be absolute URL as per HTTP 1.1 spec - noted by PhilippK
  • +
  • Added additional session_id checks to MCP, topic subscription, PM and similar items
  • +
  • Fixed colour select box in posting_body to reset to Default colour after selection
  • +
  • Altered PM icon to show new image until messages have been read
  • +
  • Fixed incomplete deletion of PMs when removing the associated user
  • +
  • Fixed unread and new PM user counters to decrement appropriately in all situations
  • +
  • Fixed possible cross-site scripting issue with username search
  • +
  • Fixed some problems with gzip in combination with newer PHP versions and Mozilla
  • +
  • Fixed wrong maxlength in modcp_split.tpl subject field
  • +
  • Fixed inability to edit username of guest poster - vHiker
  • +
  • Fixed ability for guests to post with certain registered usernames
  • +
  • Fixed various HTML issues to improve XHTML compliance - Daz
  • +
  • Fixed missing template var {L_PM} for memberslist - Daz
  • +
  • Fixed wrong key name for $images['Topic_un_watch'] - Daz
  • +
  • Fixed missing template var {S_WATCH_TOPIC_IMG} for viewtopic - Daz
  • +
  • Fixed missing default constraints for post table under MSSQL
  • +
  • Fixed incorrect field size for forum pruning - preventing days > 256
  • +
  • Fixed continuing redirect issues for broken web servers, e.g. IIS+CGI PHP
  • +
  • Fixed inability to use ftp as a protocol for the [img] tag
  • +
  • Fixed incorrect handling of [img] tags containing %20 encoded spaces
  • +
  • Added check for . within cookie_name, change to _ if present
  • +
  • Added SHOW_ONLINE constant to limit "users online" code operation to index and viewforum
  • +
  • Added "temporary" workaround for Apache2 + PHP module ignoring "private" cache header
  • +
  • Added workaround for modcp IP lookup and links to Anonymous user profile
  • +
  • Fixed broken bbcode parsing of quotes containing bbcode in the "username"
  • +
  • Fixed excess slashes in [quote=""] first pass encoding
  • +
  • Fixed rendering issue with quote button under Mozilla - Daz
  • +
  • Grammatical errors in remaining core lang files fixed - Cluster
  • +
  • Fixed bbcode quote breaking when username contained ] before [
  • +
  • Fixed duplicate group_id error during upgrade of users from phpBB 1.x
  • +
  • Fixed stripslashes() problem with the conversion of the config table from phpBB 1.x
  • +
  • Rejiggled validation code, may eliminate "Username disallowed" issues
  • +
  • Fixed differing initial "public" setting of forum permissions between different files
  • +
  • Added check for invalid (non-compliant) email addresses to upgrade script
  • +
  • Further redirect workarounds for broken servers, please direct further issues to the vendors
  • +
  • Added GMT + 13 to English lang_main, all translators are encouraged to do likewise
  • +
  • Added switch to default_lang email template if user lang template no longer exists
  • +
  • Fixed javascript error when selecting smiley containing a single quote
  • +
  • Update users watched topic if a post they made is split into a new topic
  • +
  • Fixed situations where email templates contain incorrect or missing subject lines
  • +
  • Fixed error when searching for posts and no forums exist
  • +
  • Fixed potential SQL vulnerability with marking of private messages - Ulf Harnhammar
  • +
+ +

1.xiii. Changes since 2.0.2

+ +
    +
  • Fixed potential cross-site scripting vulnerability with avatars - Showscout
  • +
  • Fixed potential SQL rewrite issue in page header - missing contrib
  • +
  • Fixed potential CSS/HTML rewrite on viewing in login - Marc Rees
  • +
  • Fixed (hopefully) issue with MS Access and multiple pages
  • +
+ +

1.xiv. Changes since 2.0.1

+ +
    +
  • Fixed missing "username" lang variable in user admin template
  • +
  • Session work around for users behind rotating IPs - vHiker
  • +
  • Fixed potential session user_id re-write - Ashe
  • +
  • Fixed potential cross-browser scripting issue with BBCode URLs
  • +
  • Fixed potential gallery avatar exploit - Ashe
  • +
  • Fix sorting of smileys on each function call - Ashe/psoTFX
  • +
  • Clear topic_mod text output in viewtopic - Lars
  • +
  • Fix regex for avatar remote urls
  • +
  • Fix non-updating of user post counts when deleting whole topics
  • +
  • Increase time limit when sending topic reply notifications
  • +
  • Set default forum when splitting topics
  • +
  • Fix non-deletion of uploaded avatars when switching to gallery
  • +
  • Removed various closing newlines from included files
  • +
  • Add MAX_ROWS to HEAP table alter in install/upgrade - Ashe
  • +
  • Update username maxlength for subSilver templates
  • +
  • Allow ( and ) in BBCode [url] tags
  • +
  • Fix non-quoting of # in username validation regexs
  • +
  • Fix overlooked global var in private messaging
  • +
  • Possible fix for \r\n email templates issues
  • +
  • Fix missing str_replace for category title forum admin SQL
  • +
  • Fix trailing , when sending emails via smtp
  • +
  • Fix avatar issues in user admin
  • +
  • Fix improper checking of email address ban in sessions
  • +
  • Fix use of hard coded language strings in forum admin
  • +
  • Fix missing closing ) in smilies admin
  • +
  • Fix missing Username label in user admin
  • +
  • Fix upgrade.php bug where conversion would not complete (and updated other scripts to match the changes)
  • +
  • Fix problem with redirect and login.php
  • +
  • Fix typo that could cause problems with sorting in the memberlist
  • +
  • Fix emailer to allow sending emails with language-specific character sets
  • +
+ +

1.xv. Changes since 2.0.0

+ +
    +
  • Fixed delete image bug for normal users
  • +
  • Fixed group control panel image links
  • +
  • Fixed missing L_POST variable in group control panel
  • +
  • Fixed missing user id when redirecting to email form after login
  • +
  • Fixed (a)ppend_sid function name error in group control panel
  • +
  • Fixed reset of post type when previewing a post
  • +
  • Fixed mass emailer include path error
  • +
  • Fixed potential SQL exploit
  • +
  • Fixed several minor subSilver issues
  • +
  • Fixed [quote] breaking HTML problem
  • +
  • Fixed problem with unclosed nested quotes
  • +
  • Fixed bad handling of automagic links at end of quotes
  • +
  • Fixed potential BBCode and avatar remote exploit
  • +
  • Altered email validation check to allow + in username as per RFC
  • +
  • Fixed incorrect behaviour with wildcards in disallowed usernames
  • +
  • Added missing append_sid for search view results as posts
  • +
  • Fixed incorrect clearing of current sessions for logged in users
  • +
  • Fixed user_timezone (cannot update user profile) problem
  • +
  • Added correct setting of moderator status for users during upgrade
  • +
  • Fixed handling of uploaded avatars if gallery avatar currently used
  • +
  • Fixed use of existing username for uploaded avatars
  • +
  • Fixed updating of topic reply stats when post is deleted
  • +
  • Fixed irrelevant error message when activating already active account
  • +
  • Fixed gzip compression problems with Netscape and some PHP versions
  • +
  • Fixed MS Access layer errors when using latest PHP versions
  • +
  • Fixed styles admin editing problems with MSSQL Server
  • +
  • Fixed logout issue when cancelling certain actions
  • +
  • Fixed missing text in certain admin links
  • +
  • Fixed opening of frame within frame when logging into admin
  • +
  • Fixed incorrect ordering of search results by time
  • +
  • Fixed fulltext searching failure with MS Access
  • +
  • Hopefully fixed fulltext search with non-latin single byte charsets
  • +
  • Enabled work-around support for some multi-byte charsets - OOHOO
  • +
  • Re-enabled search indexing of all-numeric character sequences
  • +
  • Updated email banning to properly implement wildcards
  • +
  • Fixed missing extension in links from groupcp
  • +
  • Fixed lack of re-validation when changing email address
  • +
  • Added additional IP check when using HTTP_X_FORWARDED_FOR
  • +
  • Fixed non-display of delete icon when on second or greater topic page
  • +
  • Fixed problems with users/groups assigned multiple permissions
  • +
  • Fixed problem with - and + in search words - Matthijs
  • +
  • Fixed improper handling for deletion of words from search table
  • +
  • Fixed support for , in automagic URLs as per RFC
  • +
  • Fixed circular reference SQL errors when deleting posts under MS Access
  • +
  • Fixed nested [code] problems
  • +
  • Added charset encoding headers for emails - romutis
  • +
  • Fixed "Copy to self" emails to use correct language
  • +
  • Fixed pagination error when limiting previous days for viewforum
  • +
  • Decreased minimum search word size to 3 chars
  • +
  • Fixed deletion of one or more options from all polls when editing just one
  • +
  • Fixed checking of group memberships when promoting/demoting group moderators
  • +
  • Added database closure to admin frameset page
  • +
+ +

1.xvi. Changes since RC-4

+ +
    +
  • Fixed improper report of general error when posting messages containing errors
  • +
  • Fixed post text being doubled up if it contained one or more < without closing >
  • +
  • Fixed pruning errors due to search function name change
  • +
  • Hopefully fixed various issues which led to incorrect reply and excess page counts
  • +
  • Fixed groupcp not displaying all email buttons to group moderator or admin
  • +
  • Fixed failure to display error notice when uploading oversized avatars
  • +
  • Hopefully corrected problem with viewonline displaying too few/many users online
  • +
  • Partially addressed issue with activation URLs >76 chars
  • +
  • Fixed additional search facilities failing to work or working incorrectly
  • +
  • Fixed search syntax highlighting
  • +
  • Addressed various webservers handling of page redirects
  • +
  • Fixed word censor not replacing first or last words
  • +
  • Fixed avatar height and width check for locally uploaded images
  • +
  • Hopefully fixed cache control header
  • +
  • Added check for PM box size limit of 0 to prevent div0 error
  • +
  • Fixed failure to fully delete PMs in outbox
  • +
  • Fixed display problem with polls
  • +
  • Fixed problem with guest username not being displayed for topic results in search
  • +
  • Fixed problem with quotes in various profile fields
  • +
  • Fixed schema problem with user_timezone
  • +
  • Fixed page display issue with MS Access
  • +
  • Fixed user level issue when altering user from user to admin and vice versa
  • +
  • Fixed incorrect parseing of some email templates
  • +
  • Reduced size of MS Access primer
  • +
  • Fixed various remaining usergroup display issues
  • +
+ +

1.xvii. Changes since RC-3

+ +
    +
  • Addressed serious security issue with included files
  • +
  • Fixed non-use of database table prefix name during upgrade
  • +
  • Split functions and profile into separate modules
  • +
  • Fixed (hopefully) remaining issues with colourisation of moderator usernames
  • +
  • Updated install to include entry of additional, required, information
  • +
  • Fixed (hopefully) AOL incompatibilities
  • +
  • Fixed non-display of moderators in index/viewforum
  • +
  • Fixed group control panel 'no groups exist' problems
  • +
  • Fix HTTP_X_FORWARDED_FOR spoofing possibility
  • +
  • Fix ignoring of private range IP's in HTTP_X_FORWARDED_FOR
  • +
  • Enable multiple wildcard email banning, eg. *name*@somewhere.tld
  • +
  • Fix problems with posts being truncated if containing < and > characters
  • +
  • Prevent URL, BBCode and most smiley parseing in [code][/code]
  • +
  • Fix problems with use of certain reserved chars in word censor list
  • +
  • Fix default search useage to be as described (was doing AND by default)
  • +
  • Fix various avatar issues with profile, gallery and viewtopic
  • +
  • Enable safe mode support for uploading avatars
  • +
  • Fix broken modcp IP view issue
  • +
  • Fix potential session_id re-write vulnerability
  • +
  • Finish localisation of days and months (AM/PM are not and will not be localised in 2.0)
  • +
  • Remove link to external subSilver stylesheet from default subSilver templates
  • +
  • Handle TRANSACTIONS correctly in MySQL 3.x (by returning correct responses)
  • +
  • Fix checkbox resetting problem while previewing posts
  • +
  • Fix a login redirect issue
  • +
  • Remove some additional unused fields during upgrade
  • +
  • Fix (hopefully) remaining ICQ overlay issue with view profile in subSilver
  • +
+ +

1.xviii. Changes since RC-2

+ +
    +
  • Fixed infamous install parse error
  • +
  • Major update of posting and related search functions (fixing various issues and increasing speed)
  • +
  • Fixed display of author and last poster names when both are different guest users
  • +
  • Fixed upgrade stall issues (hopefully!) and improved output
  • +
  • Fixed highlighting code for viewtopic and search
  • +
  • Reduced size of several files and functions
  • +
  • Moved localised images to sub-directories
  • +
  • Improved user feedback of disallowed usernames
  • +
  • Fixed various MSSQL bugs
  • +
  • Fixed installation of MSSQL/MSSQL-ODBC
  • +
  • Fixed security issue with upgrade.php
  • +
  • Finished implemention of various additional features
  • +
  • Fixed various user, group and forum permissions problems
  • +
  • Fixed issues with BBCode [ and ] (hopefully!)
  • +
  • Fixed autologin problems with MS IIS
  • +
  • Hopefully fixed problems with URIs in emails on some server configs
  • +
  • Fixed 'blank' profile and DB utilities problems on submit
  • +
  • Fixed incorrect language being used in email subjects
  • +
  • Fixed issues with incorrect private message new/unread counts
  • +
  • Fixed various PostgreSQL related errors
  • +
  • Automatically forward users to login screen in more situations
  • +
  • AEnabled (coloured) online indication of moderators and admins
  • +
  • Enabled maximum online user count
  • +
  • Altered online user count to ignore duplicate IPs (will now underestimate rather than overestimate)
  • +
  • Enabled viewing of users browsing each forum
  • +
  • Fixed (hopefully) display of overlayed ICQ icon in Netscape using subSilver
  • +
  • Fixed display of guest usernames for last post and author
  • +
  • Hidden usergroups are now completely hidden from view
  • +
+ +

1.xix. Changes since RC-1

+ +
    +
  • Fixed numerous PostgreSQL related issues
  • +
  • Significant updates and additions to the upgrade script
  • +
  • Various (missed) hard coded language strings fixed
  • +
  • Fixed viewforum error when no forum id specified
  • +
  • Fixed old constant name useage in search system
  • +
  • Fixed display of moved posts when viewing unanswered posts
  • +
  • Fixed failure of search for user and keyword when displaying as posts
  • +
  • Fixed PM popup notification
  • +
  • Fixed view more emoticon session page problem
  • +
  • Fixed view profile email links
  • +
  • Fixed display of websites in profile
  • +
  • Fixed backup database failure
  • +
  • Fixed MS Access schema error when posting topics
  • +
  • Fixed problem with hypenated/dotted DB names in MySQL 3.23.6+
  • +
  • Various other fixes and updates
  • +
+ +

1.xx. Changes since RC-1 (pre)

+ +
    +
  • Upgrade script completed for initial fully functional release
  • +
  • Sessions code updated
  • +
  • Mark read code updated and hopefully fixed
  • +
  • Significant changes to properly deal with \' for non-MySQL boards
  • +
  • mssql, msaccess and mssql-odbc DB classes re-written
  • +
  • Avatar issues addressed and fixed
  • +
  • Search (INSERT) bug using MySQL fixed
  • +
  • Search highlighting issues addressed
  • +
  • Search own/other users posts fixed
  • +
  • BBCode fixes for magic URIs and other issues
  • +
  • Template updates for subSilver
  • +
  • User and group permissions problems fixed
  • +
  • Forum management problems (deletion of forum causing category not to display) fixed
  • +
  • Pagination problem with groupcp fixed
  • +
  • Backslash issues with posting and profile fixed
  • +
  • Backslash issues with emails fixed
  • +
  • preg_quote problems fixed
  • +
  • User management updated with full avatar control and missing fields
  • +
  • Private messaging box limits fixed
  • +
  • Private messaging ?folder= strangeness fixed
  • +
  • Forum pruning code updated to cope with search system
  • +
  • Emoticon system in posting updated
  • +
  • BBCode FAQ link added to posting form
  • +
  • Language file updates to address concerns of translators
  • +
  • Various other bug fixes and updates
  • +
+ +

Note that a full list of fixed bugs can be found at the bug tracker (see section on bug reporting here)

+ +

2. Copyright and disclaimer

+ +

This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

+ + +
+ + + diff --git a/phpBB2/docs/COPYING b/phpBB2/docs/COPYING new file mode 100644 index 0000000..ce992b2 --- /dev/null +++ b/phpBB2/docs/COPYING @@ -0,0 +1,281 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + diff --git a/phpBB2/docs/FAQ.html b/phpBB2/docs/FAQ.html new file mode 100644 index 0000000..80076ee --- /dev/null +++ b/phpBB2/docs/FAQ.html @@ -0,0 +1,206 @@ + + + + + +phpBB 2.0.x :: FAQ + + + + + + + + + +
+ + + +
+ + + + + + +
phpBB 2 : Creating CommunitiesphpBB 2.0.x FAQ
+ + +

This is a very basic Frequently Asked Questions (FAQ) page which attempts to answer some of the more commonly asked questions. It is by no means exhaustive and should be used in combination with the 'built-in' User FAQ within phpBB2, the community forums (particularly the Tutorials forum) and our IRC channel (see README for details).

+ +
    + +
  1. I cannot install this it is too difficult! Will you do it?
  2. + +

    Simple answer, no we will not. We are not being difficult when we say this we are actually trying to help you. phpBB has a reputation for being easy to install, that reputation is we believe well deserved. It is a simple process of unarchiving a single file, uploading the resulting directory/files to their intended location and entering some data in a web based form. The sequence of events, what to type where, etc. is covered in detail in the accompanying INSTALL.html documentation. If you cannot install phpBB 2.0.x the chances are you will be unable to administer or update it.

    + +

    There are people, companies (unrelated to your hosting provider), etc. that will install your forum, either for free or for a payment. We do not recommend you make use of these offers. Unless the service is provided by your hosting company you will have to divulge passwords and other sensitive details. If you did not know how to use an ATM would you give a passer-by your bank card and PIN and ask them to show you what to do? No, probably not! The same applies to your hosting account details!

    + +

    We think a better solution is for you to carefully read the enclosed documentation, read our tutorials forum at www.phpbb.com and if necessary ask for help on any thing you get stuck on. However, the decision is yours but please note we may not offer support if we believe you have had the board installed by a third party. In such cases you should direct your questions to that company or person/s.

    + +
  3. How do I install this board on Lycos/coolfreepages/other free host?
  4. + +

    The old addage "You get what you pay for" is particularly true for hosting services! However if you must use a free service (and recognise its limitations) you will find details on common pitfalls in our tutorials forum at http://www.phpbb.com/phpBB/.

    + +
  5. I am having problems with the admin at a certain board, help!
  6. +
  7. A board has ripped off my graphics/software/etc., stop them!
  8. +
  9. A board is dealing in warez/porn/etc., you need to prevent them doing this!
  10. + +

    We provide the software, we have absolutely nothing to do with any board that runs it (beyond phpbb.com of course!). The GPL grants the user an unlimited right of use subject to their adherence of that licence. Therefore we cannot prevent, dictate, control or otherwise limit the use of phpBB 2 software. So please do not contact us for such matters.

    + +

    If you have a problem with a given board please take it up with them, not us. We are not and cannot be held legally responsible for any third party use of this software (much like Microsoft et al cannot be held responsible for the use of Windows in illegal activities, etc.). Additionally we do not track the use of phpBB software in any way. So please do not ask us for details on a "given" board we will not be able to help you. If any law firms or lawyers out there send us writs, Cease and Desist orders, etc. for third party website use of this software we reserve the right to charge for time wasted dealing with such issues ...

    + +
  11. According to viewonline a user is doing/reading something they should not be able to!
  12. + +

    No, they probably are not. phpBB uses sessions to keep track of users as they move between pages. The session information tells us who this user is. Therefore in order to determine what a user can do on a page we first need the session details. Once this data is available we can check whether the user is permitted to do whatever it is they are trying to do. This can result in it appearing as if a user is reading a topic in a forum they should not be able to access. Or perhaps viewing private messages when they are only guests, etc. In practice the user is not doing these things, they are viewing a "You are not permitted to do this" type message. The session data has simply been updated before we were able to determine what the user could or could not do.

    + +

    Of course this only applies where permissions have been set correctly!

    + +
  13. I keep getting Mail sending errors when I (or my users) post/send PM's/etc.!
  14. + +

    This error will occur if phpBB cannot send mail. phpBB can send email two ways; using the PHP mail() function or directly via SMTP. Some hosting providers limit the mail() function to prevent its use in spamming, others may rename it or limit its functionality. In either case you may need to make use of SMTP. This requires that you have access to such a facility, e.g. your hosting provider may provide one (perhaps requiring specific written authorisation), etc. Note that if your provider requires authorisation we only support the simple AUTH method using plaintext username/password. We do not support secure sockets layer (SSL), POP3 send or any other method. Please see http://www.phpbb.com/phpBB/ for additional help on this matter.

    + +

    If you do require SMTP services please do not ask (on our forums or elsewhere) for someone to provide you with one. Open relays are now things of the past thanks to the unthinking spammers out there. Therefore you are unlikely to find someone willing to offer you (free) services.

    + +
  15. My users are complaining that emails are not in their selected language!
  16. + +

    You must have deleted a language pack or the language pack is incomplete. phpBB will try to send emails in the users selected language. If it cannot find a suitable email template it will switch to the boards default language.

    + +
  17. The first four letters of my text disappeared when I hit submit!
  18. + +

    Some forms in phpBB make use of arrays to "post" or submit data, e.g. polls, forum management, etc. A bug exists in PHP 4.2.3 (and perhaps older versions) which can cause such data to lose the first four characters of text. This bug is related to the presence of the mbstring module and certain compile time parameters (the problem exists for both compiled in and modular version of mbstring). Please see: http://bugs.php.net/bug.php?id=19460 for more details. Note the bug is fixed in PHP CVS and thus future versions should be immune. Remember, this is not a bug in phpBB 2.

    + +
  19. My AOL based users keep getting logged out!
  20. + +

    phpBB2 uses sessions to keep track of users as they browse the board. These sessions use a combination of a unique session id and the users IP to identify each user. We make use of the IP as an extra safe-guard to help prevent sessions being hijacked (by discovering the unique session id).

    + +

    Unfortunately this only works when the users IP is constant as they browse the board. For most users this will be the case. However certain providers route their users via a cluster of proxys. In some cases, particularly AOL this results in different IPs being forwarded as the user moves between pages. We take account of this by not checking the entire IP but only the first "three quads". Again in most cases this will be fine. However again AOL uses IPs which can vary so much that checking only the first two quads results in a fairly static IP being available for session validation.

    + +

    If you are experiencing problems related to this you can make a small change to the code. Please note that reducing the IP validation length does potentially increase the risk of sessions being hijacked (this is something for you to consider, phpBB Group takes no responsibility should anything happen!). The change requires you to open the file sessions.php in the includes/ directory of the distribution. Find line 250, it contains the following

    $ip_check_s = substr($userdata['session_ip'], 0, 6);
    change this to:
    $ip_check_s = substr($userdata['session_ip'], 0, 4);
    You need to make exactly the same change to the number 6 in the next line. Save the file (and upload it if required). This should reduce or eliminate the problem noted.

    + +
  21. I selected X for my timezone but the time is not correct!
  22. + +

    I suspect the time is correct but that you may have switched (locally) to daylight savings time. At present we do not support daylight savings only standard local times. Therefore during summer months (depending on whether your nation/state switches to daylight savings) the board times may appear to be one hour behind the real local time. The solution is to either put up with it (just let your users know) or to move the timezone of everyone who is affected (remember that not all your users may be from nations who have switched to daylight savings) on one hour, eg. GMT becomes GMT+1. This requires running some SQL and you should search our forums for information.

    + +

    If this is not the case then I suspect your servers time is at fault. phpBB 2 stores all times in the form of a unix timestamp. This is a 32bit integer value containing the number of seconds since the unix epoch event, 1st January 1970 00:00:00 GMT. This value is global in nature and will be the same wherever you are in the world. So, if your time is incorrect and you have selected the appropriate timezone chances are your server time is off.

    + +
  23. I am seeing &#nnnn; sequences output instead of what I typed!
  24. + +

    To enable compliance with HTML and XHTML specifications as well as enabling browsers to automatically support a users selected language we enable a charset tag to be output to the browser. This identifies the primary character set the user has selected, eg. iso-8859-1 for Western European languages (English, German, French, etc.), windows-1251 for Cyrillic alphabets (Russian, Bulgarian, etc.) and so on. The downside to doing this is that most modern browsers (such as Internet Explorer) convert any character not present in that character set into what are termed Numerical Character References or NCR's. These take the form of &#nnnn; where nnnn is the hexadecimal number of that characters UNICODE reference.

    + +

    Unfortunately PHP (which effectively supports only iso-8859-1 at this time) does not appear to attempt to process this data back into normal characters. Therefore phpBB treats them as text the user has entered and wishes to see. phpBB enables this by turning the & into &amp;. This results in the characters appearing as they do. Although we could ignore &#nnnn; (there are pro's and of course con's to doing so) at present we don't.

    + +

    If you are finding this to be problem the solution is to remove the

    charset={S_CONTENT_ENCODING}
    text from all the _header.tpl template files in all templates. The downside to this is a users browser will not automatically switch its charset to that selected by the user (however this is unlikely to be a big problem since users typically run their browser by default in the language they wish to use). Alternatively you can modify the $lang['ENCODING'] entry in the appropriate language file. Until PHP (and all browsers!) trully support UNICODE these problems will persist across all boards.

    + +
  25. I cannot search for certain words! + +

    phpBB 2 uses a Fulltext search system, this has both advantages and disadvantages. The advantage is that on large or busy forums it has far less impact on server load than standard search methods as used by many alternative forums (including phpBB 1.x). The disadvantage is that to reduce the size of the database (every post is examined and unique words stored in a table) we have to limit the size and type of words we store. By default words must contain at least three characters but no more than 25, they must be either alpha or combinations of alpha and numerals (numbers alone are not stored). In addition all non-alphanumeric characters are removed, eg. _, +, -, etc. This is standard practice for fulltext search solutions.

    + +

    A further downside is that non-latin alphabets, eg. Cyrillic, Greek, etc. require proper locale support to be compiled in and available on the server your board is running on. If this is not the case it is quite likely that words will not be properly indexed for storage. In many cases this can be recified by altering the setlocale(LC_ALL, '[LOCALE_HERE]'); statement in the appropriate language file. If you are experiencing problems you should change whatever is currently in place of [LOCALE_HERE] with the locale as available on your server. If you do not know this please ask your hosting provider. Some examples may be ru_RU.WIN_CP_1251 for the codepage used for the Russian translation, ko.KOI8 for Korean, etc.

    + +

    Please note that support for multibyte character sets remains very limited in PHP4 and therefore Japanese, Chinese, etc. may have difficulty getting the fulltext search working correctly at all.

    + +
  26. My screen is filled with errors when I try to view the forum! + +

    Are they errors? Are you sure they are not warnings? They probably are ... What you're seeing is PHP warn you about unset variables. Great care has been taken with phpBB 2.0 to ensure it is secure. Unset variables while being a potential security risk really shouldn't be in 2.0. Unfortunately some hosting providers have decided that any unset variables equal security problems and force PHP to output these warnings even though phpBB 2.0 is set to ignore them.

    + +

    We have worked some way toward checking and/or setting all variables before use but this will take time to complete (if it can be). Therefore I am afraid for the time being you will have to manually modify the code or ask your hosting provider to be more realistic with their setup.

  27. + +
  28. How do I use the avatar settings? + +

    There are three types of avatar; upload, remote and local.

    +

      +
    • Upload types require you to create a directory (the default is images/avatars) and to set this to public read/write (ie. chmod a+rw), users can then upload avatars (subject to width, height and size limits definable by you).
    • +
    • Remote avatars allow the user to supply a URI pointing to an image available on the internet, PLEASE NOTE that size limits do not apply to remote avatars!
    • +
    • Local avatars allow you to upload your own avatars to a set directory, users can then pick from this avatar gallery. The default location for this is images/avatars/gallery. PLEASE NOTE that avatars are categorised according to sub-folders in this location! ie. you MUST place your avatars in subdirectories, eg. images/avatars/gallery/cartoons, images/avatars/gallery/real-life, etc.
    • +

  29. + +
  30. No matter what I set the uploadable avatars to I cannot upload one from my computer! + +

    There are two possibilities here, the first is you have not created the directory you specified as the storage location for avatars, ie. as specified in the Admin->General Configuration->Avatars section. If the directory does not exist uploadeable avatars are automatically disabled. You should create the required directory (ensuring it has global write access or other appropriate permissions to allow the webserver to write files to it).

    + +

    The second possibility is that your provider has disabled file_upload support, possibly because of a recently found serious security issue with PHP before version 4.1.2. You should contact your provider and ask them if this is the case. It may be unrelated to the security issue and your provider has simply decided to disable such things in general. In either case I'm afraid there is not a lot you can do, there are still three other avatar settings left to choose from including uploading via a URL which will work fine

  31. + +
  32. I just cannot get gallery avatars to appear! + +

    Chances are you have not followed our instructions above. phpBB 2 categorises gallery avatars and it does this by reading through folders contained in the location you specified as being the gallery path. For example, if you set the gallery path to "images/avatars/gallery" phpBB 2 will expect to find a series of folders within that path, eg. "images/avatars/gallery/moviestars", "images/avatars/gallery/cartoons", "images/avatars/gallery/misc", etc. Placing images directly in "images/avatars/gallery/" will result in nothing being listed in your gallery.

  33. + +
  34. How do I set forum permissions? + +

    You set forum permissions from the administration control panel -> Forums -> Permissions. This system has two modes of operation; Simple and Advanced. Simple uses a set of pre-defined authorisation levels, these set each type of authorisation setting to a specific level. Advanced settings allow you to specify individual levels for each operation in each forum. Experiment!

  35. + +
  36. How do I set user and group permissions? + +

    These are set from Admin -> Users (Groups) -> Permissions. The system may appear strange but it's very powerful. When you look up a user or group it will give you basic information (at the top of the page) followed by the available forum listing and current settings for this user. You can assign moderator status to users and groups and if you have PRIVATE forums (or forums with any of their individual operations set to PRIVATE) you can also assign access.

  37. + +
  38. How do I set a user (group) as moderator? + +

    See above

  39. + +
  40. Why are there no entries in the user (group) permission "Allow Access" column? + +

    You can only allow (or deny) users access to PRIVATE forums, or forums which have one or more operations set to PRIVATE

  41. + +
  42. How come I cannot set "Vote" to ALL?
  43. + +

    phpBB does not by default allow guest voting. This was done to prevent guest users (who cannot be reliably tracked) from voting time and time again in the same poll. There is a Mod available if you really need this feature, please see our Mod forums at http://www.phpbb.com/phpBB/.

    + +
  44. I (or my users) cannot stay logged in to the forum! + +

    If you (or your users) are, after attempting a login, being returned to the index (or other page) without appearing to be logged in the most likely problem is incorrect cookie settings. phpBB 2 uses cookies to store a session id and a small amount of user data. For this data to be stored correctly the cookie domain, path and secure settings must be correct. You can check this in Admin->General Configuration->Cookie settings. Typically the cookie domain can be left blank and the cookie path set to / (a single forward slash). Do not set the cookie as being secure unless your board is running over a secure sockets layer connection, ie. https://

    + +

    If you still have problems try setting the cookie domain to your full domain name, eg. www.mysystem.tld, www.something.mydomain.tld. You must ensure the domain name contains at least two dots or browsers will be unlikely to recognise the cookie, eg. .mydomain.com, mydomain.com. Do not add http:// or anything else to the domain name!

  45. + +
  46. My users are complaining about being logged out too quickly! + +

    You can increase the default length of sessions (ie. how long before a users session is considered 'dead') in Admin->General->Configuration->Cookie Settings->Session Length. Set it to whatever value your users feel comfortable with, remember that security issues may affect your decision (ie. having too long a session may allow non-users to abuse your board should a user forget to logout or otherwise leave a current session on a public workstation).

  47. + +
  48. I am having problems with HTML! + +

    If you want to allow your users to make use of HTML in posts you need to do two things. Firstly enable HTML in Admin -> General -> Configuration. Secondly to need to make sure that the tags your users will post are in the Allowed HTML Tags field (again Admin -> General -> Configuration). If users post using tags not on this list they won't be displayed as HTML! eg. to enable someone to post Flash you could add the embed tag to this field. Be careful which tags you allow, it is very easy to break the boards own output if the wrong tags are used in posts.

  49. + +
  50. Can I suggest a feature for phpBB 2.2? + +

    Yes you most certainly can, phpBB 2.0.0 is now feature frozen and only bug fix releases will be made from this line. However, work has already started on the next release of phpBB, phpBB 2.2. We already have a number of features in mind and these are listed on our task manager:

    + +

    http://sourceforge.net/pm/task.php?group_project_id=13524&group_id=7885&func=browse.

    + +

    Some of these features will also be discussed on forums at http://www.phpbb.com/phpBB/.

    + +

    To suggest a feature first consult the task list mentioned above, if your idea is already listed then the chances are good that it will appear in 2.2. If your suggestion is not listed please submit it to our feature request tracker:

    + +

    http://sourceforge.net/tracker/index.php?group_id=7885&atid=357885.

    + +

    Before submitting please read through the already present suggestions, if one matches or is similar to yours please add to it rather than creating a new entry.

    + +

    We make no promises to the inclusion of features but we will endeavour to introduce the most requested or most interesting ones.

  51. + +
  52. Why is phpBB 1.x faster than phpBB 2.0? + +

    The original phpBB 1.0 saw a very large decrease in page generation times from version 1.0/1.2 to 1.4. This was achieved by rewriting many of the SQL queries and splitting the database. These changes came about from work on phpBB 2.0. With phpBB 2.0 we have introduced numerous additional functions and features, not least of which is full templating (the separation of page design from code). This results in a slowdown from phpBB 1.4, we suspect though that the new features will outweigh the small difference in page generation times.

  53. + + +
  54. My question isn't answered here! + +Feel free to search our community forum for the information you require. PLEASE DO NOT post your question without having first used search, chances are someone has already asked and answered your question. You can find our board here:

    + +

    http://www.phpbb.com/phpBB/

  55. + +
+ +

Copyright and disclaimer

+ +

This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

+ + +
+ + + \ No newline at end of file diff --git a/phpBB2/docs/INSTALL.html b/phpBB2/docs/INSTALL.html new file mode 100644 index 0000000..5986ff4 --- /dev/null +++ b/phpBB2/docs/INSTALL.html @@ -0,0 +1,259 @@ + + + + + +phpBB 2.0.15 :: Install + + + + + + + + + +
+ + + +
+ + + + + + +
phpBB 2 : Creating CommunitiesphpBB 2.0.15 INSTALL
+ + +

Please read this document completely before proceeding with installation.

+ +

Please note these instructions are not fully comprehensive, a more thorough userguide will be available on the phpBB website in the near future. However, this document will walk you through the basics on installing the forum software.

+ +

A basic overview of running phpBB 2.0.15 can be found in the accompanying README documentation. Please ensure you read that document in addition to this! For more detailed information on using phpBB 2 you should read Userguide now available online.

+ +
    +
  1. Quick Install
  2. +
  3. Requirements
  4. +
  5. New Installations
  6. +
      +
    1. Changing the file extension
    2. +
    3. Replacing an old phpBB 1.x install
    4. +
    5. Installing on MySQL 3 and 4, PostgreSQL 7.x, MS SQL 7/2000 (inc. via ODBC)
    6. +
    7. Installing on MS Access 2000/XP
    8. +
    9. Entering required data
    10. +
    11. Completing installation
    12. +
    +
  7. Upgrade from phpBB 1.4.x
  8. +
  9. Upgrade from phpBB 2.0 beta-1
  10. +
  11. Upgrade from previous Release Candidate versions of phpBB 2
  12. +
      +
    1. Changes in language pack format and templates
    2. +
    +
  13. Upgrade from stable releases of phpBB 2.0.x
  14. +
      +
    1. Full package
    2. +
    3. Changed files only
    4. +
    5. Patch file
    6. +
    7. All package types
    8. +
    +
  15. Important (security related) post-Install tasks for all installation methods
  16. +
      +
    1. Uploadable avatars
    2. +
    3. Safe Mode
    4. +
    5. Optional extras
    6. +
    +
  17. Disclaimer
  18. +
+ +

1. Quick Install

+ +

If you have basic knowledge of using FTP and are sure your hosting service or server will run phpBB 2 you can use these steps to quickly get started. For a more detailed explanation you should skip this and go to section 2 below.

+ +
    +
  1. Decompress the phpBB 2 archive to a local directory on your system.
  2. +
  3. Upload all the files contained in this archive (retaining the directory structure) to a web accessible directory on your server or hosting account. +
  4. Change the permissions on config.php to be writeable by all (666 or -rw-rw-rw- within your FTP Client)
  5. +
  6. Using your web browser visit the location you placed phpBB 2 with the addition of install/install.php, e.g. http://www.mydomain.com/phpBB2/install/install.php, http://www.mydomain.com/forum/install/install.php etc. +
  7. Fill out all the requested information and hit Submit
  8. +
  9. Change the permissions on config.php to be writeable only by yourself (644 or -rw-r--r-- within your FTP Client)
  10. +
  11. Click the Complete Installation button or revisit the location you entered above.
  12. +
  13. phpBB 2 should now be available, please MAKE SURE you read at least Section 8 below for important, security related post-installation instructions.
  14. +
+ +

If you experienced problems or do not know how to proceed with any of the steps above please read the rest of this document.

+ +

2. Requirements

+ +

Installation of phpBB2 requires the following:

+
    +
  • A webserver or web hosting account running on any major Operating System
  • +
  • A SQL database system, one of: +
      +
    • MySQL (3.22 or higher)
    • +
    • PostgreSQL 7.0.3 or higher (preferably 7.1.x or 7.2.x)
    • +
    • MS SQL Server (7 or 2000) directly or via ODBC
    • +
    • MS Access (2000 or XP) via ODBC
    • +
    +
  • +
  • PHP (4.0.3 and above) with support for the database you intend to use above
  • +
+ +

If your server or hosting account does not meet the requirements above I am afraid phpBB 2.0 is not for you.

+ +

3. New Installations

+ +

Installation of phpBB 2 will vary according to your server and database. If you have shell access to your account (via telnet or ssh for example) you may want to upload the entire phpBB 2 archive (in binary mode!) to a directory on your host and unarchive it there.

+ +

If you do not have shell access or do not wish to use it you will need to decompress the phpBB 2 archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP ALL the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do NOT force filenames to all lower or upper case doing so will cause errors later.

+ +

All .php, .inc, .sql, .cfg and .htm files should be uploaded in ASCII mode, while all graphics should be uploaded in BINARY mode. If you are unfamiliar with what this means please refer to your FTP client documentation. In most cases this is all handled transparantly by your ftp client but if you encounter problems later you should be sure the files where uploaded correctly as described here.

+ +

phpBB2 comes supplied with English as its standard language. However a number of seperate packs for different languages are available. If you are not a native English speaker you may wish to install one or more of these packages before continuing. The installation process below will allow you to select a default language from those available (you can of course change this default at a later stage). For more details of language packs, where to obtain them and how to install them please see the README.

+ +

Once all the files have been uploaded to your site you should point your browser at this location with the addition of install/install.php (please note that if you changed the extension from php, see Section 3.i below, you should alter install.php appropriately). For example if your domain name is www.mydomain.tld and you placed phpBB 2 in a directory /phpBB2 off your web root you would enter http://www.mydomain.tld/phpBB2/install/install.php into your browser. When you have done this you should see the phpBB 2 Installation screen appear.

+ +

3.i. Changing the file extension

+ +

If the file extension used to execute PHP scripts on your server is NOT .php but for example .php3 or .phtml you should first rename ALL files ending in .php and change the value of $phpEx in extension.inc. In the vast majority of cases this step will be unncessary.

+ +

3.ii. Replacing an old phpBB 1.x install

+ +

NOTE, you should NOT place phpBB 2 files into the same directory as any previous installation of phpBB 1.x! Create a new directory (or move your old phpBB 1.x out of the way), failure to do this will result in runtime errors.

+ +

3.iii. Installing on MySQL 3 and 4, PostgreSQL 7.x, MS SQL 7/2000 (inc. via ODBC)

+ +

Before proceeding with installation you should ensure you have a database available. Most good hosting accounts now come with at least one database as part of the basic package although it may need to be setup before first use. Ask your provider for details if you are unsure whether you do or not. If you are running your own server and are unsure how to create a database you should refer to your SQL servers documentation or website, e.g. http://www.mysql.com/doc/, http://www.postgresql.org/users-lounge/, etc.

+ +

If your database server is MySQL PLEASE ensure you select the appropriate version from the dropdown box. Do NOT select MySQL 4.x if you have MySQL 3.x (the most common type) installed, if in doubt select MySQL 3.x.

+ +

3.iv. Installing on MS Access 2000/XP

+ +

Before you install phpBB 2 you need to create a Data Source Name or DSN. The exact way to do this will depend on your hosting provider, if you are unsure you should check with them before proceeding. In general though you should create a System DSN which points to the location where you have stored an unarchived copy of the ms_access_primer.mdb file (this is contained in the ms_access_primer.zip which can be found in install/schemas/). The name you give this DSN will be used during installation. Do not proceed until this step is complete!

+ +

Please note that MS Access support is not designed for busy boards. If you anticipate more than one or two users being online at any given time you should upgrade to a more robust server solution.

+ +

3.v. Entering required data

+ +

Once you have reached the installation page you need to fill out several fields. Be sure to select the right database type! If you do not have or do not know the database name, database server, etc. please check with your hosting provider. For non-ODBC databases the database server is typically localhost but this is NOT universal! If you are using an ODBC based database (such as MS Access or MSSQL via ODBC) you should enter the DSN here (see 2.iv.).

+ +

The database prefix allows you to enter a few characters, short name, etc. which all tables used by this installation will be prefixed with. The default (phpbb_) will usually be fine. However if you have more than one copy of phpBB 2 using the same database be sure to alter it or you will receive errors during installation.

+ +

The remaining information is personal to you and your site. You will need to enter a username and password for the initial administration account (more administrators can be created later). The server name, server port and script path are essential because all emails containing URLs will use these values. The installer will guess initial values, however they may not be correct so be sure to check them!

+ +

Remember that a domain (or server) name does NOT include http://! Enter just the domain name, eg. www.mydomain.tld and NOT http://www.mydomain.tld/. The server port can, in the great majority of cases be left as 80, this is the standard http port. However if your web server listens to a different port because for example port 80 is blocked then alter this appropriately. The script path is the relative path from your webroot where phpBB 2 is installed, e.g. if you install phpBB 2 into phpBB 2/ in your webroot then enter phpBB 2 (or /phpBB 2/) as the script path.

+ +

3.vi. Completing installation

+ +

Once you have checked all the data press submit. The installation script will create and populate all the necessary tables. It will then attempt to write to the config.php file which will contain the basic configuration data used to run phpBB 2. If the installer cannot write config.php directly you will be given the option of either downloading the file or even FTPing it to the correct location. If you choose to download you should then re-upload the file to your server, overwriting the existing config.php in the process. If you attempt to FTP via the install script you should supply the requested information. Should FTP fail you will be able to download the file and then re-upload as described earlier.

+ +

During the installation procedure phpBB 2 will check to ensure the relevant PHP database module is available and will not proceed if it cannot be found. Should this happen be sure to check you have selected the correct database and/or ask your hosting provider for advice.

+ +

Do not proceed untill the installation is completed and (if necessary) you have uploaded the config.php file.

+ +

4. Upgrade from phpBB 1.4.x

+ +

Before upgrading we heavily recommend you do a full backup of your database! If you are unsure how to achieve this please ask your hosting provider for advice. One you have backed up your database you should follow the basic instructions given for New Installations above. However instead of selecting Install as the Installation Method you should select Upgrade.

+ +

As with install the upgrade is automated. The config.php will be written automatically (if possible, else you will be able to download a copy as with New Installation above). Once the config.php is in place everything should proceed without error. Please note that this upgrading process may take quite some time and depending on your hosting provider this may result in it failing (due to web server or other timeout issues). If this is the case you should ask your provider if they are willing to allow the upgrade script to temporarily exceed their limits (be nice and they will probably be quite helpful).

+ +

Once completed your board should be immediately available. If you encountered errors you should restore your original database and report the problems to our bug tracker or seek help via our forums (see README for details).

+ +

5. Upgrade from phpBB 2.0 beta-1

+ +

Sorry but no direct upgrade is available from beta-1 (we did warn you!). If you are reasonably confident with the use of SQL, etc. you may be able to make the required changes to the database manually. You will need to examine the CVS check-ins to determine what needs changing where.

+ +

6. Upgrade from previous Release Candidate versions of phpBB 2

+ +

Upgrading from these versions is generally quite easy. First you should make a copy of your existing config.php, keep it in a safe place! Next delete all the existing phpBB 2 files, do not leave any in place otherwise you may encounter errors later. You can leave alternative templates in-place but you should note they may not function correctly with the final release. It is therefore recommended you switch back to subSilver if you are currently using a different style. With this complete you can upload the new phpBB 2.0.0 files (see New Installations for details if necessary). Once complete copy back your saved config.php, replacing the new one.

+ +

You should now run install/update_to_latest.php which, depending on your previous version, will make a number of database changes. You may receive FAILURES during this procedure, they should not be a cause for concern unless you see an actual ERROR, in which case the script will stop (in this case you should seek help via our forums or bug tracker).

+ +

RC-2 and below MSSQL users, please note that during the update procedure your existing forums table will be dropped and re-created. All data in standard fields will be retained. However if you have modified the forums table and added additional fields or altered existing ones these changes WILL be lost. If this is a significant issue for you we advise you comment out the "DROP FORUM TABLE" section in update_to_latest.php and instead, manually alter the forum_id column to remove the IDENTITY setting (if it exists).

+ +

Once the update_to_latest.php has completed you MUST proceed to the Administration General Configuration panel and check all the values in General Configuration. This is essential if you were running any version before RC-3 since extra information needs to be entered to enable correct URLs to be output in emails.

+ +

6.i. Changes in language pack format and templates

+ +

Please note that changes have been made to the format of language, image localisations and templates from previous RC's to FINAL. If you were running a release candidate prior to RC-3 you will need to download new language and image localisation packs. You can safely delete any existing *_lang.gif files in the subSilver/images directory since these are no longer utilised. If you are using or have installed any 3rd party template set you must either remove it or update it. Changes have been made to a number of template variables which will result in these not working unless they have been updated to meet phpBB 2.0.x standards.

+ +

7. Upgrade from previous stable (released) versions of phpBB 2

+ +

If you are currently using a stable release of phpBB 2 updating to this version is straightforward. You would have downloaded one of three packages and your choice determines what you need to do. Please Note: That before upgrading we heavily recommend you do a full backup of your database and existing phpBB2 source files! If you are unsure how to achieve this please ask your hosting provider for advice.

+ +

MySQL Users Please Note: Changes introduced in 2.0.4 may increase the size of your database, more specifically the search_wordmatch table. There are other changes in that release which are designed to reduce the database size. However these additional changes may not apply to all types of forum (particularly non-English boards). While any increases will be relatively small compared to the overall database size it may be an issue for some users. In particular users on hosting plans which limit database size and where the database is near that limit.

+ +

Please make sure you update your phpBB2 source files too, even if you run the update_to_latest.php file.

+ +

7.i. Full package

+ +

If you have downloaded the full package you should follow the same general upgrade path as for "Upgrade from previous Release Candidate versions of phpBB 2". The exception to this being the need to switch or update styles. In addition there is generally little need to visit the admin panel (though it is adviseable).

+ +

7.ii. Changed files only

+ +

This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have 2.0.14 you should select the phpBB-2.0.14_to_2.0.15.zip/tar.gz file.

+ +

The directory structure has been preserved enabling you (if you wish) to simply upload the contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any Mods these files will overwrite the originals possibly destroying them in the process. You will need to re-add Mods to any affected file before uploading.

+ +

As for the other upgrade procedures you should run install/update_to_latest.php after you have finished updating the files. This will update your database schema and increment the version number.

+ +

7.iii. Patch file

+ +

The patch file is probably the best solution for those with many Mods or other changes who do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type patch application.

+ +

A number of patch files are provided to allow you to upgrade from previous stable releases. Select the correct patch, e.g. if your current version is 2.0.14 you need the phpBB-2.0.14_to_2.0.15.patch. Place the correct patch in the parent directory containing the phpBB 2 core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME] (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB2, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.

+ +

If you do get failures you should look at using the Changed files only package to replace the files which failed to patch, please note that you will need to manually re-add any Mods to these particular files. Alternatively if you know how you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.

+ +

You should of course delete the patch file (or files) after use. As for the other upgrade procedures you should run install/update_to_latest.php after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.

+ +

7.iv. All package types

+ +

If you have non-English language packs installed you may want to see if a new version has been made available. A number of missing strings have been added which, though not essential, may be beneficial to users. Please note that at this time not all language packs have been updated so you should be prepared to periodically check for updates.

+ +

8. Important (security related) post-Install tasks for all installation methods

+ +

Once you have succssfully installed phpBB 2.0.x you MUST ensure you remove the entire install/ and contrib/ directories. Leaving these in place is a very serious potential security issue which may lead to deletion or alteration of files, etc. Please note that until these directories are remove phpBB2 will not operate and a warning message will be displayed. Beyond these essential deletions you may also wish to delete the docs/ directories if you wish.

+ +

With these directories deleted you should proceed to the administration panel. Depending on how the installation completed you may have been directed there automatically. If not, login as the administrator you specified during install/upgrade and click the "Administration Panel" link at the bottom of any page. Ensure that details specified in General -> Configuration are correct!

+ +

8.i. Uploadable avatars

+ +

phpBB 2 supports several methods for allowing users to select their own avatar (an avatar is a small image generally unique to a user and displayed just below their username in posts).

+ +

Two of these options allow users to upload an avatar from their machine or a remote location (via a URL). If you wish to enable this function you should first ensure the correct paths for uploadeable avatars is set in Admin -> General -> Configuration -> Avatars. By default this is images/avatars but you can set it to whatever you like, just ensure the configuration setting is updated. You must also ensure this directory can be written to by the webserver. Usually this means you have to alter its permissions to allow anyone to read and write to. Exactly how you should do this depends on your ftp client or server operating system.

+ +

On UNIX systems for example you set the directory to a+rwx (or ugo+rwx or even 777). This can be done from a command line on your server using chmod or via your FTP client (using the Change Permissions, chmod or other Permissions dialoge box, see your FTP clients documentation for help). Most FTP clients list permissions in the form of User (Read, Write, Execute), Group (Read, Write, Execute) and Other (Read, Write, Execute). You need to tick all of these boxes to set correct permissions.

+ +

On Windows system you need to ensure the directory is not write-protected and that it has global write permissions (see your servers documentation or contact your hosting provider if you are unsure on how to achieve this).

+ +

Please be aware that setting a directories permissions to global write access is a potential security issue. While it is unlikely that anything nasty will occur (such as all the avatars being deleted) there are always people out there out to cause trouble. Therefore you should monitor this directory and if possible make regular backups.

+ +

8.ii. Safe Mode

+ +

phpBB 2.0.x includes support for using uploadable avatars on systems running PHP in safe mode. If this applies to your hosting service you will need to create a sub-directory called tmp in the directory you specified for storage of uploaded avatars (by default this is images/avatars as explained above). Give it the same access rights as for uploadable avatars above.

+ +

This safe mode support includes compatibility with various directory restrictions your host may impose (assuming they are not too restrictive and that the PHP installed is version 4.0.3 or later). There is generally no need for any manual setup for safe mode support it is typically handled transparantly.

+ +

8.iii. Optional extras

+ +

Included with this package are two extra (optional) files, you will find them in the contrib/ directory. These extras, template_file_cache.php and template_db_cache.php address concerns over server load and page generation times on slower or heavily loaded systems. These updated template modules compile each template and uses this rather than compiling each file everytime it is viewed. Tests seem to indicate a noticeable decrease in page generation times and more importantly a significant decrease in overall server load in virtual hosting environments.

+ +

You should see the README contained within the contrib directory for more details.

+ +

9. Copyright and disclaimer

+ +

This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

+ + +
+ + + diff --git a/phpBB2/docs/README.html b/phpBB2/docs/README.html new file mode 100644 index 0000000..39dfb14 --- /dev/null +++ b/phpBB2/docs/README.html @@ -0,0 +1,224 @@ + + + + + +phpBB 2.0.15 :: Readme + + + + + + + + + +
+ + + +
+ + + + + + +
phpBB 2 : Creating CommunitiesphpBB 2.0.15 README
+ + +

Thank you for downloading phpBB 2, the long awaited re-write of the popular phpBB 1.x online community forum. This README will guide through the basics of installation and operation of phpBB 2. Please ensure you read this and the accompanying documentation fully before proceeding with the installation.

+ +
    +
  1. Installing phpBB 2
  2. +
  3. Running phpBB 2
  4. +
      +
    1. Internationalisation (i18n)
    2. +
    3. Styles
    4. +
    5. Mods
    6. +
    +
  5. Getting help with phpBB 2
  6. +
      +
    1. Userguide
    2. +
    3. Community Forums
    4. +
    5. Internet Relay Chat
    6. +
    +
  7. Status of this version
  8. +
  9. Reporting Bugs
  10. +
      +
    1. Security related bugs
    2. +
    +
  11. Overview of current bug list
  12. +
  13. PHP compatibility issues
  14. +
      +
    1. Notice on PHP security issues
    2. +
    +
  15. Disclaimer
  16. +
+ +

1. Installing phpBB 2

+ +

Installation and upgrade instructions can be found in the INSTALL document contained in this distribution. If you are intending to upgrade from a previous phpBB 1.4.x installation we highly recommend you backup any existing data before proceeding!

+ +

Please note that users of Release Candidate (RC) versions of phpBB 2 should run the update_to_latest.php script BEFORE attempting to access your board. Failing to do so may result in errors and unexpected behaviour! While these won't do any damage they will prevent you using your board.

+ +

If you are using RC-1 (pre) you may find some other DB changes have occured and should examine the schemas to see if your installation requires any modifications (note that most of these have already been discussed on the phpBB 2 forums and are handled by the update script). If you are uncomfortable doing any of this we recommend you re-install (you may backup your existing data if you wish, re-install phpBB 2 and then insert your backup).

+ +

Users of phpBB 2.0 Beta-1 cannot directly upgrade to phpBB 2.0 RC-2, 3 or 4, sorry.

+ +

2. Running phpBB 2

+ +

Once installed phpBB 2.0 is easily managed by both admin and moderator control panels. If you need help or advice with phpBB 2 please see Section 3 below.

+ +

2.i. Internationalisation, i18n

+ +

A number of language packs and subSilver localisations are now available. You can find them on our official download page:

+ +

http://www.phpbb.com/downloads.php

+ +

This is the Official location for all support language sets. If you download a package from a 3rd party site you do so with the understanding that we cannot offer support. So please, do not ask for help in these cases!

+ +

Installation of these packages is straightforward, simply download the required language pack and unarchive it into the languages/ folder. Please ensure you retain the directory structure when doing this! To install the subSilver image packs you should unarchive the file/s into the templates/subSilver/images directory, again you must retain the directory structure. Once installed the languages will become immediately available.

+ +

If your language is not available please visit our forums where you will find a topic listing translations currently available or in preparation. This topic also gives you information should you wish to volunteer to translate a language not currently listed

+ +

Please note that users who have upgraded to the latest version from versions prior to RC-3 should will need to download new versions of the language/subSilver image packs. Any package downloaded prior to the availability of RC-3 will not function correctly with this version of phpBB 2.

+ +

If you have upgraded from 2.0.0 and make use of non-English language packs you will benefit from downloading updated versions which will become available shortly. These introduce a number of strings which went missing from the first version plus a few updates and additions.

+ +

2.ii. Styles

+ +

Although phpBB Group are rather proud of the subSilver style (which has influenced many of our competitors boards updated designs!) we realise that it may not be to everyones tastes. Therefore phpBB 2 allows styles to be switched with relative ease. Firstly you need to locate and download a style you like. We maintain such a site at

+ +

http://www.phpbb.com/styles/

+ +

Please note that 3rd party styles downloaded for versions of phpBB 2 prior to its final (2.0.x) release will not function correctly. You should either remove these styles or (if available) update them to meet changes in 2.0.x.

+ +

Once you have downloaded a style the usual next step is to unarchive (or upload the unarchived contents of) the package into your templates/ directory. You then need to visit Administration -> Styles -> Add, you should see the new style available, click add and it will become available for all your users.

+ +

2.iii. Mods

+ +

Although not officially supported by phpBB Group, phpBB 2 has a thriving mod (formerly known as hacks) scene. These third party modifications to the standard phpBB 2 extend its capabilities still further and can be found at:

+ +

http://www.phpbb.com/mods

+ +

Please remember that any bugs or other issues that occur after you have added any modification should NOT be reported to the bug tracker (see below). First remove the modification and see if the problem is resolved.

+ +

Also remember that any modifications which modify the database in any way may render upgrading your forum to future versions more difficult unless we state otherwise. With all this said many users have and continue to utilise many of the mods already available with great success

+ +

3. Getting help with phpBB 2

+ +

phpBB 2 can seem a little daunting to new users in places, particularly with regard the permission system. The first thing you should do is check the FAQ which covers a few basic getting started questions. If you need additional help there are several places you should look.

+ +

3.i. phpBB 2 Userguide

+ +

A comprehensive userguide is now available online and can be accessed from the following location:

+ +

http://www.phpbb.com/support/guide/

+ +

This covers everything from installation through setting permissions and managing users.

+ +

3.ii. Community Forums

+ +

phpBB Group maintains a thriving community where a number of people have generously decided to donate their time to help support users. This site can be found at:

+ +

http://www.phpbb.com/

+ +

If you do seek help via our forums please be sure to do a Search before posting. This may well save both you and us time and allow the developer, moderator and support groups to spend more time responding to people with unknown issues and problems. Please also remember that phpBB is an entirely volunteer effort, no one receives any compensation for the time they give, this includes moderators as well as developers. So please be respectful and mindful when awaiting responses.

+ +

3.iii Internet Relay Chat

+ +

Another place you may find help is our IRC channel. This operates on the Freenode IRC network, irc.freenode.net and the channel is #phpbb and can be accessed by any good IRC client such as mIRC, XChat, etc. Again, please do not abuse this service and be respectful of other users.

+ +

4. Status of this version

+ +

This is the second stable release of phpBB 2. The 2.0.x line is essentially feature frozen, point releases will see only bugs and such like fixed. Our next major release will be phpBB 3.0 and work is progressing on this (the unstable development version is 2.1). Please do not post questions asking when 3.0 will be available, no release date has been set. phpBB 3.0 is now feature frozen, please feel free to suggest new features for phpBB 3.2 using our feature request tracker. We do not guarantee that all these will appear in 3.2 but we will do our best!:

+ +

http://sourceforge.net/tracker/?atid=580201&group_id=7885&func=browse

+ +

Before submitting your idea please ensure you have read through the entries in that list. If your idea is similar to an existing one please feel free to add a comment to it. Please do not submit duplicate suggestions!

+ +

For some suggestions we may ask for your feedback via our forums. For those interested in the development of phpBB 3.0 you should keep an eye on the community forums (particularly the Feature Discussion forum) where you may be able to influence the direction we take with certain new features. Finally you may like to visit our development forum to see how things are progressing:

+ +

http://area51.phpbb.com/phpBB/

+ +

Please note that this forum should NOT be used to obtain support for or ask questions about phpBB 2.0.x, the main community forums are the place for this. Any such posts will be locked and go unanswered.

+ +

5. Reporting Bugs

+ +

The phpBB Group uses a bug tracking system to store, list and manage all reported bugs, it can be found at the location listed below. Please DO NOT post bug reports to our forums, they will be locked. In addition please DO NOT use the bug tracker for support requests. Posting such a request will only see you directed to the support forums (while taking time away from working on real bugs).

+ +

http://www.phpbb.com/bugs/

+ +

While we very much appreciate receiving bug reports (the more reports the more stable phpBB 2 will be) we ask you carry out a few steps before adding new entries:

+
    +
  • Firstly determine if your bug is reproduceable, how to determine this depends on the bug in question. Only if the bug is reproduceable is it likely to be a problem with phpBB 2.0 (or in some way connected). If something cannot be reproduced it may turn out to have been your hosting provider working on something, a user doing something silly, etc. Bug reports for non-reproduceable events can slow down our attempts to fix real, reproduceable issues

  • +
  • Next please read or search through the existing bug reports (remember to check open AND closed reports!) to see if your bug (or one very similar to it) is already listed. If it is please add to that existing bug rather than creating a new duplicate entry (all this does is slow us down).

  • +
  • Check the forums (use search!) to see if people have discussed anything that sounds similar to what you are seeing. However, as noted above please DO NOT post your particular bug to the forum unless it's non-reproduceable or you are sure it's related to something you have done rather phpBB 2.0

  • +
  • If no existing bug exists then please feel free to add it
  • +
+ +

If you do post a new bug (i.e. one that isn't already listed in the bug tracker) firstly make sure you have logged in (your username and password are the same as for the community forums) then please include the following details:

+
    +
  • Your server type/version, eg. Apache 1.2.22, IIS 4, Sambar, etc.
  • +
  • PHP version and mode of operation, eg. PHP 4.1.1 as a module, PHP 4.0.1 running as CGI, etc.
  • +
  • DB type/version, eg. MySQL 3.23.32, PostgreSQL 7.1.2, MSSQL Server 2000 SP1, etc.
  • +
+ +

Please also be as detailed as you can in your report, if possible list the steps required to duplicate the problem. If you have a fix which you are VERY SURE works (and is consistent with our coding guidelines) and does not introduce further problems or incompatibilities please let us know. However only include it in the bug report if you really must, if we need it we'll ask you for it.

+ +

Once a bug has been submitted you will be emailed any follow up comments added to it. Please if you are requested to supply additional information, do so! It is extremely frustrating for us to receive bug reports, ask for additional information but get nothing. In these cases we have a policy of closing the bug, which may leave a very real problem in place. Obviously we would rather not have this situation arise.

+ +

5.i. Security related bugs

+ +

If you find a potential security related vulnerability in phpBB 2 please DO NOT post it to the bug tracker, public forums, mailing lists, etc.! Doing so may allow unscrupulous users to take advantage of it before we have time to put a fix in place. All security related bugs should be sent to our security tracker:

+ +

http://www.phpbb.com/security/

+ +

6. Overview of current bug list

+ +

This list is not complete (see above link for full list) but does represent those bugs which may effect users on a wider scale. Other bugs listed in the tracker have typically been shown to be limited to certain setups or methods of installation/upgrade.

+ +
    +
  • First four characters of some posted content disappears - this is an issue with PHP not phpBB
  • +
  • Cannot post very large messages when using PostgreSQL 7.0.x (limitation of Postgresql 7.0.x)
  • +
  • By default cannot post very large messages with MSSQL (this can be configured within MSSQL)
  • +
  • Use of non-latin charsets with MSSQL may result in post data being cropped unexpectedly
  • +
  • Upgrade may fail to complete on large boards under some hosts
  • +
  • Case-sensitivity on usernames and emails with PostgreSQL 7.x. A fix is provided by a user within our knowledge base
  • +
+ +

7. PHP compatibility issues

+ +

phpBB is no longer supported on PHP3 due to several compatibility issues and we recommend that you upgrade to the latest stable release of PHP4 to run phpBB.

+ +

Please remember that running any application on a developmental version of PHP can lead to strange/unexpected results which may appear to be bugs in the application (which may not be true). Therefore we recommend you upgrade to the newest stable version of PHP before running phpBB 2. If you are running a developmental version of PHP please check any bugs you find on a system running a stable release before submitting.

+ +

This board has been developed and tested under Linux and Windows (amongst others) running IIS and Apache using MySQL 3.23 and 4.0.0, MSSQL Server 2000, MS Access 2000 and XP and PostgreSQL 7.x. Versions of PHP used range from 4.0.6 to 4.3.8 without problem. There may be unconfirmed issues with PHP 4.0.1 including patch level releases. If you experience problems with phpBB and have this PHP version installed it is recommended you upgrade it before posting bug reports.

+ +

With the recent release of the official version of PHP 5, people and hosts may be switching to the latest PHP version. At this moment, the phpBB Team does not officially support running phpBB on PHP 5, as phpBB2.0.x was not written with PHP 5 in mind. However, many users have reported using it sucessfully on PHP 5 having made a configuration change in PHP to enable support for the deprecated HTTP_*_VARS arrays which is turned off by default in new PHP 5 installations. The relevant configuration option is register_long_arrays and it is decribed in the PHP Manual. phpBB 2.0.x makes use of these arrays in order to maintain backwards compatibility with early versions of PHP 4.x which is part of the original specification.
+For this reason we do not support PHP 5 as platform for phpBB. It has been reported working, so you can try it. It's a risk you will be taking though.

+ +

7.i. Notice on PHP security issues

+ +

At the end of February 2002 a major security issue was found with PHP 3 and 4 which has resulted in many hosting providers disabling file uploads (although patches fixing the security issues are available and new versions of PHP 4 have been released).

+ +

Because of this, and to cope with situations where hosts didn't allow such uploads anyway we have implemented various checks in phpBB 2. These checks prevent you from enabling or making use of functions which will not operate correctly on PHP as installed on your server. At this time this includes locally uploaded avatars and DB restore.

+ +

Third party mods may also be effected but these are outside our control, you should contact the mod writer for more information.

+ +

8. Copyright and disclaimer

+ +

This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

+ + +
+ + + \ No newline at end of file diff --git a/phpBB2/docs/coding-guidelines.txt b/phpBB2/docs/coding-guidelines.txt new file mode 100644 index 0000000..700c9d0 --- /dev/null +++ b/phpBB2/docs/coding-guidelines.txt @@ -0,0 +1,26 @@ +CODING GUIDELINES : Initials by psoTFX (July 2001) +----------------- + +* The coding style is defined in the codingstandards.html file, all attempts should be made to follow it as closely as possible + +* All SQL should be cross-DB compatible, if DB specific SQL is used alternatives must be provided which work on all supported DB's (MySQL, MSSQL (7.0 and 2000), PostgreSQL (7.0+), Oracle8, ODBC (generalised if possible, otherwise MS Access, DB2)) + +* All SQL commands should utilise the DataBase Abstraction Layer (DBAL) + +* All URL's (and form actions) _must_ be wrapped in append_sid, this ensures the session_id is propagated when cookies aren't available + +* The minimum amount of data should be passed via GET or POST, checking should occur within individual scripts (to prevent spoofing of information) + +* The auth function should be used for all authorisation checking + +* Sessions should be initiated on each page, as near the top as possible using the session_pagestart function (userdata should be obtained by calling the init_userprefs immediately after session initialisation) + +* Login checks should be forwarded to the login page (supplying a page to forward onto once check is complete if required) + +* All template variables should be named appropriately (using underscores for spaces), language entries should be prefixed with L_, system data with S_, urls with U_, all other variables should be presented 'as is'. + +* Functions used by more than page should be placed in functions.php, functions specific to one page should be placed on that page (at the top to maintain compatibility with PHP3) surrounded by comments indicating the start and end of the function block + +* All messages/errors should be output by the message_die function using the appropriate message type (see function for details) + +* No attempt should be made to remove any copyright information (either contained within the source or displayed interactively when the source is run/compiled), neither should the copyright information be altered in any way (it may be added to) diff --git a/phpBB2/docs/codingstandards.htm b/phpBB2/docs/codingstandards.htm new file mode 100644 index 0000000..2952c0c --- /dev/null +++ b/phpBB2/docs/codingstandards.htm @@ -0,0 +1,327 @@ + + +phpBB Coding Standard Guidelines + + + +

phpBB Coding Standard Guidelines

Comments or suggestions? email nate@phpbb.com

Editor +Settings
Naming +Conventions
Code Layout
General +Guidelines


top +

Editor Settings

+

Tabs vs Spaces: In order to make this as simple as possible, we will +be using tabs, not spaces. Feel free to set how many spaces your editor uses +when it displays tabs, but make sure that when you save the file, +it's saving tabs and not spaces. This way, we can each have the code be +displayed the way we like it, without breaking the layout of the actual files. +

+

Linefeeds: Ensure that your editor is saving files in the UNIX format. +This means lines are terminated with a newline, not with a CR/LF combo as they +are on Win32, or whatever the Mac uses. Any decent Win32 editor should be able +to do this, but it might not always be the default. Know your editor. If you +want advice on Windows text editors, just ask one of the developers. Some of +them do their editing on Win32.



top +

Naming Conventions

+

We will not be using any form of hungarian notation in our naming +conventions. Many of us believe that hungarian naming is one of the primary code +obfuscation techniques currently in use.

+

Variable Names: Variable names should be in all lowercase, with words +separated by an underscore.

    Example: $current_user is right, but $currentuser and $currentUser are not.

Names should be descriptive, +but concise. We don't want huge sentences as our variable names, but typing an +extra couple of characters is always better than wondering what exactly a +certain variable is for.

+

Loop Indices: The only situation where a one-character variable +name is allowed is when it's the index for some looping construct. In this case, +the index of the outer loop should always be $i. If there's a loop inside that +loop, its index should be $j, followed by $k, and so on. If the loop is being +indexed by some already-existing variable with a meaningful name, this guideline +does not apply.

    Example:


+		for ($i = 0; $i < $outer_size; $i++) 
+		{
+		   for ($j = 0; $j < $inner_size; $j++) 
+		   {
+		      foo($i, $j);
+		   }
+		} 
+

+

Function Names: Functions should also be named descriptively. We're +not programming in C here, we don't want to write functions called things like +"stristr()". Again, all lower-case names with words separated by a single +underscore character. Function names should preferably have a verb in them +somewhere. Good function names are print_login_status(), get_user_data(), etc..

+

Function Arguments: Arguments are subject to the same guidelines as +variable names. We don't want a bunch of functions like: do_stuff($a, $b, $c). In most cases, we'd like to be able +to tell how to use a function by just looking at its declaration.

+

Summary: The basic philosophy here is to not hurt code clarity for the +sake of laziness. This has to be balanced by a little bit of common sense, +though; print_login_status_for_a_given_user() +goes too far, for example -- that function would be better named print_user_login_status() , or just print_login_status().



top +

Code Layout

+

Standard header for new files: Here a template of the header that must +be included at the start of all phpBB files:


+		/***************************************************************************
+		                                filename.php
+		                             -------------------
+		    begin                : Sat June 17 2000
+		    copyright            : (C) 2000 The phpBB Group
+		    email                : support@phpBB.com
+		
+		    $Id: codingstandards.htm,v 1.3 2001/06/09 21:00:12 natec Exp $
+		
+		 ***************************************************************************/
+		
+		/***************************************************************************
+		 *                                         				                                
+		 *   This program is free software; you can redistribute it and/or modify  	
+		 *   it under the terms of the GNU General Public License as published by  
+		 *   the Free Software Foundation; either version 2 of the License, or	    	
+		 *   (at your option) any later version.
+		 *
+		 ***************************************************************************/
+	
+

+

Always include the braces: This is another case of being too lazy to +type 2 extra characters causing problems with code clarity. Even if the body of +some construct is only one line long, do not drop the braces. Just don't. +

   Examples:


+		/* These are all wrong. */
+		if (condition)	do_stuff();
+		if (condition)
+			do_stuff();
+		while (condition) 
+			do_stuff();
+		for ($i = 0; $i < size; $i++)
+			do_stuff($i);
+		
+		/* These are right. */
+		if (condition) 
+		{
+			do_stuff();
+		}
+		while (condition) 
+		{
+			do_stuff();
+		}
+		for ($i = 0; $i < size; $i++) 
+		{
+			do_stuff();
+		}
+	
+

+

Where to put the braces: This one is a bit of a holy war, but we're +going to use a style that can be summed up in one sentence: Braces always go on +their own line. The closing brace should also always be at the same column as +the corresponding opening brace.

   Examples:


+		if (condition) 
+		{
+			while (condition2)
+			{
+				...
+			}
+		}
+		else 
+		{
+			...
+		}
+
+		for ($i = 0; $i < $size; $i++) 
+		{
+			...
+		}
+		
+		while (condition) 
+		{
+			...
+		}
+		
+		function do_stuff() 
+		{
+			...
+		}
+	
+

+

Use spaces between tokens: This is another simple, easy step that +helps keep code readable without much effort. Whenever you write an assignment, +expression, etc.. Always leave one space between the tokens. Basically, +write code as if it was English. Put spaces between variable names and +operators. Don't put spaces just after an opening bracket or before a closing +bracket. Don't put spaces just before a comma or a semicolon. This is best shown +with a few examples.

   Examples:


+		/* Each pair shows the wrong way followed by the right way. */
+		
+		$i=0;
+		$i = 0;
+		
+		if($i<7) ...
+		if ($i < 7) ...
+		
+		if ( ($i < 7)&&($j > 8) ) ...
+		if (($i < 7) && ($j > 8)) ...
+		
+		do_stuff( $i, "foo", $b );
+		do_stuff($i, "foo", $b);
+		
+		for($i=0; $i<$size; $i++) ...
+		for($i = 0; $i < $size; $i++) ... 
+		
+		$i=($j < $size)?0:1;
+		$i = ($j < $size) ? 0 : 1;
+	
+

+

Operator precedence: Do you know the exact precedence of all the +operators in PHP? Neither do I. Don't guess. Always make it obvious by using +brackets to force the precedence of an equation so you know what it does. +

   Examples:


+		/* what's the result? who knows. */
+		$bool = ($i < 7 && $j > 8 || $k == 4);
+		
+		/* now you can be certain what I'm doing here. */
+		$bool = (($i < 7) && (($j < 8) || ($k == 4)))
+		
+

+

SQL code layout: Since we'll all be using different editor settings, +don't try to do anything complex like aligning columns in SQL code. Do, however, +break statements onto their own lines. Here's a sample of how SQL code should +look. Note where the lines break, the capitalization, and the use of brackets. +

   Examples:


+		SELECT field1 AS something, field2, field3
+		FROM table a, table b
+		WHERE (this = that) AND (this2 = that2)
+		
+

+

SQL insert statements: SQL INSERT statements can be written in two +different ways. Either you specify explicitly the columns being inserted, or +you rely on knowing the order of the columns in the database and do not +specify them. We want to use the former approach, where it is explicitly +stated whcih columns are being inserted. This means our application-level code +will not depend on the order of the fields in the database, and will not be broken +if we add additional fields (unless they're specified as NOT NULL, of course). +

   Examples:


+		# This is not what we want.
+		INSERT INTO mytable
+		VALUES ('something', 1, 'else')
+		
+		# This is correct.
+		INSERT INTO mytable (column1, column2, column3)
+		VALUES ('something', 1, 'else')
+		
+



top +

General Guidelines

+

Quoting strings: There are two different ways to quote strings in PHP +- either with single quotes or with double quotes. The main difference is that +the parser does variable interpolation in double-quoted strings, but not in +single quoted strings. Because of this, you should always use single +quotes unless you specifically need variable interpolation to be done on +that string. This way, we can save the parser the trouble of parsing a bunch of +strings where no interpolation needs to be done. Also, if you are using a string +variable as part of a function call, you do not need to enclose that variable in +quotes. Again, this will just make unnecessary work for the parser. Note, +however, that nearly all of the escape sequences that exist for double-quoted +strings will not work with single-quoted strings. Be careful, and feel free to +break this guideline if it's making your code harder to read. +

   Examples:


+		/* wrong */
+		$str = "This is a really long string with no variables for the parser to find.";
+		do_stuff("$str");
+		
+		/* right */
+		$str = 'This is a really long string with no variables for the parser to find.';
+		do_stuff($str);
+		
+

+

Associative array keys: In PHP, it's legal to use a literal string as +a key to an associative array without quoting that string. We don't want to do +this -- the string should always be quoted to avoid confusion. Note that this is +only when we're using a literal, not when we're using a variable. +

   Examples:


+		/* wrong */
+		$foo = $assoc_array[blah];
+		
+		/* right */
+		$foo = $assoc_array['blah'];
+		
+

+

Comments: Each function should be preceded by a comment that tells a +programmer everything they need to know to use that function. The meaning of +every parameter, the expected input, and the output are required as a minimal +comment. The function's behaviour in error conditions (and what those error +conditions are) should also be present. Nobody should have to look at the actual +source of a function in order to be able to call it with confidence in their own +code.

In addition, commenting any tricky, obscure, or otherwise +not-immediately-obvious code is clearly something we should be doing. Especially +important to document are any assumptions your code makes, or preconditions for +its proper operation. Any one of the developers should be able to look at any +part of the application and figure out what's going on in a reasonable amount of +time.

+

Magic numbers: Don't use them. Use named constants for any literal +value other than obvious special cases. Basically, it's OK to check if an array +has 0 elements by using the literal 0. It's not OK to assign some special +meaning to a number and then use it everywhere as a literal. This hurts +readability AND maintainability. Included in this guideline is that we should be +using the constants TRUE and FALSE in place of the literals 1 and 0 -- even +though they have the same values, it's more obvious what the actual logic is +when you use the named constants.

+

Shortcut operators: The only shortcut operators that cause readability +problems are the shortcut increment ($i++) and decrement ($j--) operators. These +operators should not be used as part of an expression. They can, however, be +used on their own line. Using them in expressions is just not worth the +headaches when debugging.

   Examples:


+		/* wrong */
+		$array[++$i] = $j;
+		$array[$i++] = $k;
+		
+		
+		/* right */
+		$i++;
+		$array[$i] = $j;
+		
+		$array[$i] = $k;
+		$i++;
+		
+

+

Inline conditionals: Inline conditionals should only be used to do +very simple things. Preferably, they will only be used to do assignments, and +not for function calls or anything complex at all. They can be harmful to +readability if used incorrectly, so don't fall in love with saving typing by +using them.

   Examples:


+		/* Bad place to use them */
+		(($i < $size) && ($j > $size)) ? do_stuff($foo) : do_stuff($bar);
+		
+		
+		/* OK place to use them */
+		$min = ($i < $j) ? $i : $j;
+		
+

+

Don't use uninitialized variables. for phpBB 2, we intend to use a +higher level of run-time error reporting. This will mean that the use of an +uninitialized variable will be reported as an error. This will come up most +often when checking which HTML form variables were passed. These errors can be +avoided by using the built-in isset() function to check whether a variable has +been set.

   Examples:


+		/* Old way */
+		if ($forum) ...
+		
+		
+		/* New way */
+		if (isset($forum)) ...
+		
+



Return +to top
diff --git a/phpBB2/extension.inc b/phpBB2/extension.inc new file mode 100644 index 0000000..46a742f --- /dev/null +++ b/phpBB2/extension.inc @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/phpBB2/faq.php b/phpBB2/faq.php new file mode 100644 index 0000000..bc760a7 --- /dev/null +++ b/phpBB2/faq.php @@ -0,0 +1,150 @@ +set_filenames(array( + 'body' => 'faq_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_FAQ_TITLE' => $l_title, + 'L_BACK_TO_TOP' => $lang['Back_to_top']) +); + +for($i = 0; $i < count($faq_block); $i++) +{ + if( count($faq_block[$i]) ) + { + $template->assign_block_vars('faq_block', array( + 'BLOCK_TITLE' => $faq_block_titles[$i]) + ); + $template->assign_block_vars('faq_block_link', array( + 'BLOCK_TITLE' => $faq_block_titles[$i]) + ); + + for($j = 0; $j < count($faq_block[$i]); $j++) + { + $row_color = ( !($j % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($j % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('faq_block.faq_row', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FAQ_QUESTION' => $faq_block[$i][$j]['question'], + 'FAQ_ANSWER' => $faq_block[$i][$j]['answer'], + + 'U_FAQ_ID' => $faq_block[$i][$j]['id']) + ); + + $template->assign_block_vars('faq_block_link.faq_row_link', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FAQ_LINK' => $faq_block[$i][$j]['question'], + + 'U_FAQ_LINK' => '#' . $faq_block[$i][$j]['id']) + ); + } + } +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/groupcp.php b/phpBB2/groupcp.php new file mode 100644 index 0000000..a513a57 --- /dev/null +++ b/phpBB2/groupcp.php @@ -0,0 +1,1284 @@ +' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + if ( !empty($row['user_viewemail']) || $group_mod ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $row['user_id']) : 'mailto:' . $row['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ' '; + $email = ' '; + } + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $row['user_id']); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + $www_img = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($row['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']); + $msn_img = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($row['username']) . "&showresults=posts"); + $search_img = '' . sprintf($lang['Search_user_posts'], $row['username']) . ''; + $search = '' . sprintf($lang['Search_user_posts'], $row['username']) . ''; + + return; +} +// +// -------------------------- + +// +// Start session management +// +$userdata = session_pagestart($user_ip, PAGE_GROUPCP); +init_userprefs($userdata); +// +// End session management +// + +$script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path'])); +$script_name = ( $script_name != '' ) ? $script_name . '/groupcp.'.$phpEx : 'groupcp.'.$phpEx; +$server_name = trim($board_config['server_name']); +$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://'; +$server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + +$server_url = $server_protocol . $server_name . $server_port . $script_name; + +if ( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) +{ + $group_id = ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) ? intval($HTTP_POST_VARS[POST_GROUPS_URL]) : intval($HTTP_GET_VARS[POST_GROUPS_URL]); +} +else +{ + $group_id = ''; +} + +if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) ) +{ + $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ''; +} + +$confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : 0; +$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : 0; + +$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0; +$start = ($start < 0) ? 0 : $start; + +// +// Default var values +// +$is_moderator = FALSE; + +if ( isset($HTTP_POST_VARS['groupstatus']) && $group_id ) +{ + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + $sql = "SELECT group_moderator + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['group_moderator'] != $userdata['user_id'] && $userdata['user_level'] != ADMIN ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Not_group_moderator'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_type = " . intval($HTTP_POST_VARS['group_type']) . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Group_type_updated'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + +} +else if ( isset($HTTP_POST_VARS['joingroup']) && $group_id ) +{ + // + // First, joining a group + // If the user isn't logged in redirect them to login + // + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + $sql = "SELECT ug.user_id, g.group_type + FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE g.group_id = $group_id + AND g.group_type <> " . GROUP_HIDDEN . " + AND ug.group_id = g.group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( $row['group_type'] == GROUP_OPEN ) + { + do + { + if ( $userdata['user_id'] == $row['user_id'] ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Already_member_group'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } while ( $row = $db->sql_fetchrow($result) ); + } + else + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['This_closed_group'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_groups_exist']); + } + + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending) + VALUES ($group_id, " . $userdata['user_id'] . ", 1)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Error inserting user group subscription", "", __LINE__, __FILE__, $sql); + } + + $sql = "SELECT u.user_email, u.username, u.user_lang, g.group_name + FROM ".USERS_TABLE . " u, " . GROUPS_TABLE . " g + WHERE u.user_id = g.group_moderator + AND g.group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Error getting group moderator data", "", __LINE__, __FILE__, $sql); + } + + $moderator = $db->sql_fetchrow($result); + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('group_request', $moderator['user_lang']); + $emailer->email_address($moderator['user_email']); + $emailer->set_subject($lang['Group_request']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_MODERATOR' => $moderator['username'], + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id&validate=true") + ); + $emailer->send(); + $emailer->reset(); + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Group_joined'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); +} +else if ( isset($HTTP_POST_VARS['unsub']) || isset($HTTP_POST_VARS['unsubpending']) && $group_id ) +{ + // + // Second, unsubscribing from a group + // Check for confirmation of unsub. + // + if ( $cancel ) + { + redirect(append_sid("groupcp.$phpEx", true)); + } + elseif ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + if ( $confirm ) + { + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = " . $userdata['user_id'] . " + AND group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not delete group memebership data', '', __LINE__, __FILE__, $sql); + } + + if ( $userdata['user_level'] != ADMIN && $userdata['user_level'] == MOD ) + { + $sql = "SELECT COUNT(auth_mod) AS is_auth_mod + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = " . $userdata['user_id'] . " + AND aa.group_id = ug.group_id + AND aa.auth_mod = 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator status', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) || $row['is_auth_mod'] == 0 ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Unsub_success'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $unsub_msg = ( isset($HTTP_POST_VARS['unsub']) ) ? $lang['Confirm_unsub'] : $lang['Confirm_unsub_pending']; + + $s_hidden_fields = ''; + + $page_title = $lang['Group_Control_Panel']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'confirm' => 'confirm_body.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $unsub_msg, + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + 'S_CONFIRM_ACTION' => append_sid("groupcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('confirm'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + +} +else if ( $group_id ) +{ + // + // Did the group moderator get here through an email? + // If so, check to see if they are logged in. + // + if ( isset($HTTP_GET_VARS['validate']) ) + { + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + } + + // + // For security, get the ID of the group moderator. + // + switch(SQL_LAYER) + { + case 'postgresql': + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa + WHERE g.group_id = $group_id + AND aa.group_id = g.group_id + UNION ( + SELECT g.group_moderator, g.group_type, NULL + FROM " . GROUPS_TABLE . " g + WHERE g.group_id = $group_id + AND NOT EXISTS ( + SELECT aa.group_id + FROM " . AUTH_ACCESS_TABLE . " aa + WHERE aa.group_id = g.group_id + ) + ) + ORDER BY aa.auth_mod DESC"; + break; + + case 'oracle': + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa + WHERE g.group_id = $group_id + AND aa.group_id (+) = g.group_id + ORDER BY aa.auth_mod DESC"; + break; + + default: + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM ( " . GROUPS_TABLE . " g + LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id ) + WHERE g.group_id = $group_id + ORDER BY aa.auth_mod DESC"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get moderator information', '', __LINE__, __FILE__, $sql); + } + + if ( $group_info = $db->sql_fetchrow($result) ) + { + $group_moderator = $group_info['group_moderator']; + + if ( $group_moderator == $userdata['user_id'] || $userdata['user_level'] == ADMIN ) + { + $is_moderator = TRUE; + } + + // + // Handle Additions, removals, approvals and denials + // + if ( !empty($HTTP_POST_VARS['add']) || !empty($HTTP_POST_VARS['remove']) || isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) + { + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + if ( !$is_moderator ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Not_group_moderator'] . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + if ( isset($HTTP_POST_VARS['add']) ) + { + $username = ( isset($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : ''; + + $sql = "SELECT user_id, user_email, user_lang, user_level + FROM " . USERS_TABLE . " + WHERE username = '" . str_replace("\'", "''", $username) . "'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Could_not_add_user'] . "

" . sprintf($lang['Click_return_group'], "", "") . "

" . sprintf($lang['Click_return_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + + if ( $row['user_id'] == ANONYMOUS ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Could_not_anon_user'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + $sql = "SELECT ug.user_id, u.user_level + FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE u.user_id = " . $row['user_id'] . " + AND ug.user_id = u.user_id + AND ug.group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE__, __FILE__, $sql); + } + + if ( !($db->sql_fetchrow($result)) ) + { + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) + VALUES (" . $row['user_id'] . ", $group_id, 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not add user to group', '', __LINE__, __FILE__, $sql); + } + + if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id = " . $row['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + // + // Get the group name + // Email the user and tell them they're in the group + // + $group_sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($group_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql); + } + + $group_name_row = $db->sql_fetchrow($result); + + $group_name = $group_name_row['group_name']; + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('group_added', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['Group_added']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_NAME' => $group_name, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") + ); + $emailer->send(); + $emailer->reset(); + } + else + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['User_is_member_group'] . '

' . sprintf($lang['Click_return_group'], '', '') . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + if ( ( ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) && isset($HTTP_POST_VARS['pending_members']) ) || ( isset($HTTP_POST_VARS['remove']) && isset($HTTP_POST_VARS['members']) ) ) + { + + $members = ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) ? $HTTP_POST_VARS['pending_members'] : $HTTP_POST_VARS['members']; + + $sql_in = ''; + for($i = 0; $i < count($members); $i++) + { + $sql_in .= ( ( $sql_in != '' ) ? ', ' : '' ) . intval($members[$i]); + } + + if ( isset($HTTP_POST_VARS['approve']) ) + { + if ( $group_info['auth_mod'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id IN ($sql_in) + AND user_level NOT IN (" . MOD . ", " . ADMIN . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "UPDATE " . USER_GROUP_TABLE . " + SET user_pending = 0 + WHERE user_id IN ($sql_in) + AND group_id = $group_id"; + $sql_select = "SELECT user_email + FROM ". USERS_TABLE . " + WHERE user_id IN ($sql_in)"; + } + else if ( isset($HTTP_POST_VARS['deny']) || isset($HTTP_POST_VARS['remove']) ) + { + if ( $group_info['auth_mod'] ) + { + $sql = "SELECT ug.user_id, ug.group_id + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id IN ($sql_in) + AND aa.group_id = ug.group_id + AND aa.auth_mod = 1 + GROUP BY ug.user_id, ug.group_id + ORDER BY ug.user_id, ug.group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator status', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $group_check = array(); + $remove_mod_sql = ''; + + do + { + $group_check[$row['user_id']][] = $row['group_id']; + } + while ( $row = $db->sql_fetchrow($result) ); + + while( list($user_id, $group_list) = @each($group_check) ) + { + if ( count($group_list) == 1 ) + { + $remove_mod_sql .= ( ( $remove_mod_sql != '' ) ? ', ' : '' ) . $user_id; + } + } + + if ( $remove_mod_sql != '' ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN ($remove_mod_sql) + AND user_level NOT IN (" . ADMIN . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + } + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id IN ($sql_in) + AND group_id = $group_id"; + } + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user group table', '', __LINE__, __FILE__, $sql); + } + + // + // Email users when they are approved + // + if ( isset($HTTP_POST_VARS['approve']) ) + { + if ( !($result = $db->sql_query($sql_select)) ) + { + message_die(GENERAL_ERROR, 'Could not get user email information', '', __LINE__, __FILE__, $sql); + } + + $bcc_list = array(); + while ($row = $db->sql_fetchrow($result)) + { + $bcc_list[] = $row['user_email']; + } + + // + // Get the group name + // + $group_sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($group_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql); + } + + $group_name_row = $db->sql_fetchrow($result); + $group_name = $group_name_row['group_name']; + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + for ($i = 0; $i < count($bcc_list); $i++) + { + $emailer->bcc($bcc_list[$i]); + } + + $emailer->use_template('group_approved'); + $emailer->set_subject($lang['Group_approved']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_NAME' => $group_name, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") + ); + $emailer->send(); + $emailer->reset(); + } + } + } + } + // + // END approve or deny + // + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_groups_exist']); + } + + // + // Get group details + // + $sql = "SELECT * + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id + AND group_single_user = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if ( !($group_info = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); + } + + // + // Get moderator details for this group + // + $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm + FROM " . USERS_TABLE . " + WHERE user_id = " . $group_info['group_moderator']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql); + } + + $group_moderator = $db->sql_fetchrow($result); + + // + // Get user information for this group + // + $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug + WHERE ug.group_id = $group_id + AND u.user_id = ug.user_id + AND ug.user_pending = 0 + AND ug.user_id <> " . $group_moderator['user_id'] . " + ORDER BY u.username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql); + } + + $group_members = $db->sql_fetchrowset($result); + $members_count = count($group_members); + $db->sql_freeresult($result); + + $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm + FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE ug.group_id = $group_id + AND g.group_id = ug.group_id + AND ug.user_pending = 1 + AND u.user_id = ug.user_id + ORDER BY u.username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting user pending information', '', __LINE__, __FILE__, $sql); + } + + $modgroup_pending_list = $db->sql_fetchrowset($result); + $modgroup_pending_count = count($modgroup_pending_list); + $db->sql_freeresult($result); + + $is_group_member = 0; + if ( $members_count ) + { + for($i = 0; $i < $members_count; $i++) + { + if ( $group_members[$i]['user_id'] == $userdata['user_id'] && $userdata['session_logged_in'] ) + { + $is_group_member = TRUE; + } + } + } + + $is_group_pending_member = 0; + if ( $modgroup_pending_count ) + { + for($i = 0; $i < $modgroup_pending_count; $i++) + { + if ( $modgroup_pending_list[$i]['user_id'] == $userdata['user_id'] && $userdata['session_logged_in'] ) + { + $is_group_pending_member = TRUE; + } + } + } + + if ( $userdata['user_level'] == ADMIN ) + { + $is_moderator = TRUE; + } + + if ( $userdata['user_id'] == $group_info['group_moderator'] ) + { + $is_moderator = TRUE; + + $group_details = $lang['Are_group_moderator']; + + $s_hidden_fields = ''; + } + else if ( $is_group_member || $is_group_pending_member ) + { + $template->assign_block_vars('switch_unsubscribe_group_input', array()); + + $group_details = ( $is_group_pending_member ) ? $lang['Pending_this_group'] : $lang['Member_this_group']; + + $s_hidden_fields = ''; + } + else if ( $userdata['user_id'] == ANONYMOUS ) + { + $group_details = $lang['Login_to_join']; + $s_hidden_fields = ''; + } + else + { + if ( $group_info['group_type'] == GROUP_OPEN ) + { + $template->assign_block_vars('switch_subscribe_group_input', array()); + + $group_details = $lang['This_open_group']; + $s_hidden_fields = ''; + } + else if ( $group_info['group_type'] == GROUP_CLOSED ) + { + $group_details = $lang['This_closed_group']; + $s_hidden_fields = ''; + } + else if ( $group_info['group_type'] == GROUP_HIDDEN ) + { + $group_details = $lang['This_hidden_group']; + $s_hidden_fields = ''; + } + } + + $page_title = $lang['Group_Control_Panel']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + // + // Load templates + // + $template->set_filenames(array( + 'info' => 'groupcp_info_body.tpl', + 'pendinginfo' => 'groupcp_pending_info.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + // + // Add the moderator + // + $username = $group_moderator['username']; + $user_id = $group_moderator['user_id']; + + generate_user_info($group_moderator, $board_config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim); + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + 'L_GROUP_INFORMATION' => $lang['Group_Information'], + 'L_GROUP_NAME' => $lang['Group_name'], + 'L_GROUP_DESC' => $lang['Group_description'], + 'L_GROUP_TYPE' => $lang['Group_type'], + 'L_GROUP_MEMBERSHIP' => $lang['Group_membership'], + 'L_SUBSCRIBE' => $lang['Subscribe'], + 'L_UNSUBSCRIBE' => $lang['Unsubscribe'], + 'L_JOIN_GROUP' => $lang['Join_group'], + 'L_UNSUBSCRIBE_GROUP' => $lang['Unsubscribe'], + 'L_GROUP_OPEN' => $lang['Group_open'], + 'L_GROUP_CLOSED' => $lang['Group_closed'], + 'L_GROUP_HIDDEN' => $lang['Group_hidden'], + 'L_UPDATE' => $lang['Update'], + 'L_GROUP_MODERATOR' => $lang['Group_Moderator'], + 'L_GROUP_MEMBERS' => $lang['Group_Members'], + 'L_PENDING_MEMBERS' => $lang['Pending_members'], + 'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'], + 'L_PM' => $lang['Private_Message'], + 'L_EMAIL' => $lang['Email'], + 'L_POSTS' => $lang['Posts'], + 'L_WEBSITE' => $lang['Website'], + 'L_FROM' => $lang['Location'], + 'L_ORDER' => $lang['Order'], + 'L_SORT' => $lang['Sort'], + 'L_SUBMIT' => $lang['Sort'], + 'L_AIM' => $lang['AIM'], + 'L_YIM' => $lang['YIM'], + 'L_MSNM' => $lang['MSNM'], + 'L_ICQ' => $lang['ICQ'], + 'L_SELECT' => $lang['Select'], + 'L_REMOVE_SELECTED' => $lang['Remove_selected'], + 'L_ADD_MEMBER' => $lang['Add_member'], + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'GROUP_NAME' => $group_info['group_name'], + 'GROUP_DESC' => $group_info['group_description'], + 'GROUP_DETAILS' => $group_details, + 'MOD_ROW_COLOR' => '#' . $theme['td_color1'], + 'MOD_ROW_CLASS' => $theme['td_class1'], + 'MOD_USERNAME' => $username, + 'MOD_FROM' => $from, + 'MOD_JOINED' => $joined, + 'MOD_POSTS' => $posts, + 'MOD_AVATAR_IMG' => $poster_avatar, + 'MOD_PROFILE_IMG' => $profile_img, + 'MOD_PROFILE' => $profile, + 'MOD_SEARCH_IMG' => $search_img, + 'MOD_SEARCH' => $search, + 'MOD_PM_IMG' => $pm_img, + 'MOD_PM' => $pm, + 'MOD_EMAIL_IMG' => $email_img, + 'MOD_EMAIL' => $email, + 'MOD_WWW_IMG' => $www_img, + 'MOD_WWW' => $www, + 'MOD_ICQ_STATUS_IMG' => $icq_status_img, + 'MOD_ICQ_IMG' => $icq_img, + 'MOD_ICQ' => $icq, + 'MOD_AIM_IMG' => $aim_img, + 'MOD_AIM' => $aim, + 'MOD_MSN_IMG' => $msn_img, + 'MOD_MSN' => $msn, + 'MOD_YIM_IMG' => $yim_img, + 'MOD_YIM' => $yim, + + 'U_MOD_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"), + 'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"), + + 'S_GROUP_OPEN_TYPE' => GROUP_OPEN, + 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED, + 'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN, + 'S_GROUP_OPEN_CHECKED' => ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : '', + 'S_GROUP_CLOSED_CHECKED' => ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : '', + 'S_GROUP_HIDDEN_CHECKED' => ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : '', + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_MODE_SELECT' => $select_sort_mode, + 'S_ORDER_SELECT' => $select_sort_order, + 'S_GROUPCP_ACTION' => append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id")) + ); + + // + // Dump out the remaining users + // + for($i = $start; $i < min($board_config['topics_per_page'] + $start, $members_count); $i++) + { + $username = $group_members[$i]['username']; + $user_id = $group_members[$i]['user_id']; + + generate_user_info($group_members[$i], $board_config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim); + + if ( $group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator ) + { + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('member_row', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'USER_ID' => $user_id, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) + ); + + if ( $is_moderator ) + { + $template->assign_block_vars('member_row.switch_mod_option', array()); + } + } + } + + if ( !$members_count ) + { + // + // No group members + // + $template->assign_block_vars('switch_no_members', array()); + $template->assign_vars(array( + 'L_NO_MEMBERS' => $lang['No_group_members']) + ); + } + + $current_page = ( !$members_count ) ? 1 : ceil( $members_count / $board_config['topics_per_page'] ); + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id", $members_count, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), $current_page ), + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + + if ( $group_info['group_type'] == GROUP_HIDDEN && !$is_group_member && !$is_moderator ) + { + // + // No group members + // + $template->assign_block_vars('switch_hidden_group', array()); + $template->assign_vars(array( + 'L_HIDDEN_MEMBERS' => $lang['Group_hidden_members']) + ); + } + + // + // We've displayed the members who belong to the group, now we + // do that pending memebers... + // + if ( $is_moderator ) + { + // + // Users pending in ONLY THIS GROUP (which is moderated by this user) + // + if ( $modgroup_pending_count ) + { + for($i = 0; $i < $modgroup_pending_count; $i++) + { + $username = $modgroup_pending_list[$i]['username']; + $user_id = $modgroup_pending_list[$i]['user_id']; + + generate_user_info($modgroup_pending_list[$i], $board_config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $user_select = ''; + + $template->assign_block_vars('pending_members_row', array( + 'ROW_CLASS' => $row_class, + 'ROW_COLOR' => '#' . $row_color, + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'USER_ID' => $user_id, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) + ); + } + + $template->assign_block_vars('switch_pending_members', array() ); + + $template->assign_vars(array( + 'L_SELECT' => $lang['Select'], + 'L_APPROVE_SELECTED' => $lang['Approve_selected'], + 'L_DENY_SELECTED' => $lang['Deny_selected']) + ); + + $template->assign_var_from_handle('PENDING_USER_BOX', 'pendinginfo'); + + } + } + + if ( $is_moderator ) + { + $template->assign_block_vars('switch_mod_option', array()); + $template->assign_block_vars('switch_add_member', array()); + } + + $template->pparse('info'); +} +else +{ + // + // Show the main groupcp.php screen where the user can select a group. + // + // Select all group that the user is a member of or where the user has + // a pending membership. + // + $in_group = array(); + + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT g.group_id, g.group_name, g.group_type, ug.user_pending + FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = " . $userdata['user_id'] . " + AND ug.group_id = g.group_id + AND g.group_single_user <> " . TRUE . " + ORDER BY g.group_name, ug.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $in_group = array(); + $s_member_groups_opt = ''; + $s_pending_groups_opt = ''; + + do + { + $in_group[] = $row['group_id']; + if ( $row['user_pending'] ) + { + $s_pending_groups_opt .= ''; + } + else + { + $s_member_groups_opt .= ''; + } + } + while( $row = $db->sql_fetchrow($result) ); + + $s_pending_groups = '"; + $s_member_groups = '"; + } + } + + // + // Select all other groups i.e. groups that this user is not a member of + // + $ignore_group_sql = ( count($in_group) ) ? "AND group_id NOT IN (" . implode(', ', $in_group) . ")" : ''; + $sql = "SELECT group_id, group_name, group_type + FROM " . GROUPS_TABLE . " g + WHERE group_single_user <> " . TRUE . " + $ignore_group_sql + ORDER BY g.group_name"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + $s_group_list_opt = ''; + while( $row = $db->sql_fetchrow($result) ) + { + if ( $row['group_type'] != GROUP_HIDDEN || $userdata['user_level'] == ADMIN ) + { + $s_group_list_opt .=''; + } + } + $s_group_list = ''; + + if ( $s_group_list_opt != '' || $s_pending_groups_opt != '' || $s_member_groups_opt != '' ) + { + // + // Load and process templates + // + $page_title = $lang['Group_Control_Panel']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'user' => 'groupcp_user_body.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + if ( $s_pending_groups_opt != '' || $s_member_groups_opt != '' ) + { + $template->assign_block_vars('switch_groups_joined', array() ); + } + + if ( $s_member_groups_opt != '' ) + { + $template->assign_block_vars('switch_groups_joined.switch_groups_member', array() ); + } + + if ( $s_pending_groups_opt != '' ) + { + $template->assign_block_vars('switch_groups_joined.switch_groups_pending', array() ); + } + + if ( $s_group_list_opt != '' ) + { + $template->assign_block_vars('switch_groups_remaining', array() ); + } + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'L_GROUP_MEMBERSHIP_DETAILS' => $lang['Group_member_details'], + 'L_JOIN_A_GROUP' => $lang['Group_member_join'], + 'L_YOU_BELONG_GROUPS' => $lang['Current_memberships'], + 'L_SELECT_A_GROUP' => $lang['Non_member_groups'], + 'L_PENDING_GROUPS' => $lang['Memberships_pending'], + 'L_SUBSCRIBE' => $lang['Subscribe'], + 'L_UNSUBSCRIBE' => $lang['Unsubscribe'], + 'L_VIEW_INFORMATION' => $lang['View_Information'], + + 'S_USERGROUP_ACTION' => append_sid("groupcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + + 'GROUP_LIST_SELECT' => $s_group_list, + 'GROUP_PENDING_SELECT' => $s_pending_groups, + 'GROUP_MEMBER_SELECT' => $s_member_groups) + ); + + $template->pparse('user'); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_groups_exist']); + } + +} + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/images/avatars/121332050045bf7306938e9.jpg b/phpBB2/images/avatars/121332050045bf7306938e9.jpg new file mode 100755 index 0000000..7fab83d Binary files /dev/null and b/phpBB2/images/avatars/121332050045bf7306938e9.jpg differ diff --git a/phpBB2/images/avatars/1270772484502a2f2719ca.jpg b/phpBB2/images/avatars/1270772484502a2f2719ca.jpg new file mode 100644 index 0000000..a8002a4 Binary files /dev/null and b/phpBB2/images/avatars/1270772484502a2f2719ca.jpg differ diff --git a/phpBB2/images/avatars/15740475104282316f3fa8b.jpg b/phpBB2/images/avatars/15740475104282316f3fa8b.jpg new file mode 100644 index 0000000..4eabd3e Binary files /dev/null and b/phpBB2/images/avatars/15740475104282316f3fa8b.jpg differ diff --git a/phpBB2/images/avatars/20374341554251108207542.gif b/phpBB2/images/avatars/20374341554251108207542.gif new file mode 100644 index 0000000..688ee0d Binary files /dev/null and b/phpBB2/images/avatars/20374341554251108207542.gif differ diff --git a/phpBB2/images/avatars/255966658459b734b6fd85.gif b/phpBB2/images/avatars/255966658459b734b6fd85.gif new file mode 100755 index 0000000..9fcd131 Binary files /dev/null and b/phpBB2/images/avatars/255966658459b734b6fd85.gif differ diff --git a/phpBB2/images/avatars/68336136145f950d16cfa4.jpg b/phpBB2/images/avatars/68336136145f950d16cfa4.jpg new file mode 100755 index 0000000..4a648f7 Binary files /dev/null and b/phpBB2/images/avatars/68336136145f950d16cfa4.jpg differ diff --git a/phpBB2/images/avatars/avatar1.jpg b/phpBB2/images/avatars/avatar1.jpg new file mode 100644 index 0000000..55e1706 Binary files /dev/null and b/phpBB2/images/avatars/avatar1.jpg differ diff --git a/phpBB2/images/avatars/gallery/index.htm b/phpBB2/images/avatars/gallery/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/images/avatars/gallery/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/images/avatars/index.htm b/phpBB2/images/avatars/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/images/avatars/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/images/index.htm b/phpBB2/images/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/images/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/images/smiles/Valentine.pak b/phpBB2/images/smiles/Valentine.pak new file mode 100644 index 0000000..a5c56d5 --- /dev/null +++ b/phpBB2/images/smiles/Valentine.pak @@ -0,0 +1,17 @@ +valentine_bemine.gif=+:valentine_bemine.gif=+:[valentine_bemine.gif] +valentine_callme.gif=+:valentine_callme.gif=+:[valentine_callme.gif] +valentine_Happy.gif=+:valentine_Happy.gif=+:[valentine_Happy.gif] +valentine_Heartfillwithlove.gif=+:valentine_Heartfillwithlove.gif=+:[valentine_Heartfillwithlove.gif] +valentine_Hiya.gif=+:valentine_Hiya.gif=+:[valentine_Hiya.gif] +valentine_hotoveryou.gif=+:valentine_hotoveryou.gif=+:[valentine_hotoveryou.gif] +valentine_Iloveyou1.gif=+:valentine_Iloveyou1.gif=+:[valentine_Iloveyou1.gif] +valentine_iloveyou2.gif=+:valentine_iloveyou2.gif=+:[valentine_iloveyou2.gif] +valentine_Kissoflove.gif=+:valentine_Kissoflove.gif=+:[valentine_Kissoflove.gif] +valentine_lovesick.gif=+:valentine_lovesick.gif=+:[valentine_lovesick.gif] +valentine_lovetogether.gif=+:valentine_lovetogether.gif=+:[valentine_lovetogether.gif] +valentine_myHeartfireupforyou.gif=+:valentine_myHeartfireupforyou.gif=+:[valentine_myHeartfireupforyou.gif] +valentine_mylove.gif=+:valentine_mylove.gif=+:[valentine_mylove.gif] +valentine_Peekaboo.gif=+:valentine_Peekaboo.gif=+:[valentine_Peekaboo.gif] +valentine_Realmad.gif=+:valentine_Realmad.gif=+:[valentine_Realmad.gif] +valentine_Tofunny.gif=+:valentine_Tofunny.gif=+:[valentine_Tofunny.gif] +valentine_winyourlove.gif=+:valentine_winyourlove.gif=+:[valentine_winyourlove.gif] diff --git a/phpBB2/images/smiles/bigDuhard.gif b/phpBB2/images/smiles/bigDuhard.gif new file mode 100644 index 0000000..7cf6ff5 Binary files /dev/null and b/phpBB2/images/smiles/bigDuhard.gif differ diff --git a/phpBB2/images/smiles/bigblack.gif b/phpBB2/images/smiles/bigblack.gif new file mode 100644 index 0000000..e706511 Binary files /dev/null and b/phpBB2/images/smiles/bigblack.gif differ diff --git a/phpBB2/images/smiles/bigcool.gif b/phpBB2/images/smiles/bigcool.gif new file mode 100644 index 0000000..c48be2c Binary files /dev/null and b/phpBB2/images/smiles/bigcool.gif differ diff --git a/phpBB2/images/smiles/bigcry.gif b/phpBB2/images/smiles/bigcry.gif new file mode 100644 index 0000000..d4eaec0 Binary files /dev/null and b/phpBB2/images/smiles/bigcry.gif differ diff --git a/phpBB2/images/smiles/bigdisgust.gif b/phpBB2/images/smiles/bigdisgust.gif new file mode 100644 index 0000000..e891555 Binary files /dev/null and b/phpBB2/images/smiles/bigdisgust.gif differ diff --git a/phpBB2/images/smiles/bigdisturbed.gif b/phpBB2/images/smiles/bigdisturbed.gif new file mode 100644 index 0000000..e7c1844 Binary files /dev/null and b/phpBB2/images/smiles/bigdisturbed.gif differ diff --git a/phpBB2/images/smiles/bigeek3.gif b/phpBB2/images/smiles/bigeek3.gif new file mode 100644 index 0000000..d8216c7 Binary files /dev/null and b/phpBB2/images/smiles/bigeek3.gif differ diff --git a/phpBB2/images/smiles/bigeyebrow.gif b/phpBB2/images/smiles/bigeyebrow.gif new file mode 100644 index 0000000..8233b25 Binary files /dev/null and b/phpBB2/images/smiles/bigeyebrow.gif differ diff --git a/phpBB2/images/smiles/bigfiremad.gif b/phpBB2/images/smiles/bigfiremad.gif new file mode 100644 index 0000000..37166e3 Binary files /dev/null and b/phpBB2/images/smiles/bigfiremad.gif differ diff --git a/phpBB2/images/smiles/bigformation.gif b/phpBB2/images/smiles/bigformation.gif new file mode 100644 index 0000000..e5dc2af Binary files /dev/null and b/phpBB2/images/smiles/bigformation.gif differ diff --git a/phpBB2/images/smiles/biggrin.gif b/phpBB2/images/smiles/biggrin.gif new file mode 100644 index 0000000..2c2d1ee Binary files /dev/null and b/phpBB2/images/smiles/biggrin.gif differ diff --git a/phpBB2/images/smiles/biggroup.gif b/phpBB2/images/smiles/biggroup.gif new file mode 100644 index 0000000..04a0d03 Binary files /dev/null and b/phpBB2/images/smiles/biggroup.gif differ diff --git a/phpBB2/images/smiles/bigmono.gif b/phpBB2/images/smiles/bigmono.gif new file mode 100644 index 0000000..9a409d2 Binary files /dev/null and b/phpBB2/images/smiles/bigmono.gif differ diff --git a/phpBB2/images/smiles/bigoogle.gif b/phpBB2/images/smiles/bigoogle.gif new file mode 100644 index 0000000..220260e Binary files /dev/null and b/phpBB2/images/smiles/bigoogle.gif differ diff --git a/phpBB2/images/smiles/bigretard.gif b/phpBB2/images/smiles/bigretard.gif new file mode 100644 index 0000000..8d5bd56 Binary files /dev/null and b/phpBB2/images/smiles/bigretard.gif differ diff --git a/phpBB2/images/smiles/bigsleep.gif b/phpBB2/images/smiles/bigsleep.gif new file mode 100644 index 0000000..feb9a86 Binary files /dev/null and b/phpBB2/images/smiles/bigsleep.gif differ diff --git a/phpBB2/images/smiles/bigsmirk4.gif b/phpBB2/images/smiles/bigsmirk4.gif new file mode 100644 index 0000000..f94d412 Binary files /dev/null and b/phpBB2/images/smiles/bigsmirk4.gif differ diff --git a/phpBB2/images/smiles/crazy_2gunsfiring_v1.gif b/phpBB2/images/smiles/crazy_2gunsfiring_v1.gif new file mode 100644 index 0000000..cb5ddef Binary files /dev/null and b/phpBB2/images/smiles/crazy_2gunsfiring_v1.gif differ diff --git a/phpBB2/images/smiles/crazy_321.gif b/phpBB2/images/smiles/crazy_321.gif new file mode 100644 index 0000000..b577c06 Binary files /dev/null and b/phpBB2/images/smiles/crazy_321.gif differ diff --git a/phpBB2/images/smiles/crazy_Eyecrazy.gif b/phpBB2/images/smiles/crazy_Eyecrazy.gif new file mode 100644 index 0000000..487eb01 Binary files /dev/null and b/phpBB2/images/smiles/crazy_Eyecrazy.gif differ diff --git a/phpBB2/images/smiles/crazy_Llol.gif b/phpBB2/images/smiles/crazy_Llol.gif new file mode 100644 index 0000000..faf609c Binary files /dev/null and b/phpBB2/images/smiles/crazy_Llol.gif differ diff --git a/phpBB2/images/smiles/crazy_alien.gif b/phpBB2/images/smiles/crazy_alien.gif new file mode 100644 index 0000000..7b71766 Binary files /dev/null and b/phpBB2/images/smiles/crazy_alien.gif differ diff --git a/phpBB2/images/smiles/crazy_all_coholic.gif b/phpBB2/images/smiles/crazy_all_coholic.gif new file mode 100644 index 0000000..f625b24 Binary files /dev/null and b/phpBB2/images/smiles/crazy_all_coholic.gif differ diff --git a/phpBB2/images/smiles/crazy_angel.gif b/phpBB2/images/smiles/crazy_angel.gif new file mode 100644 index 0000000..3345a6f Binary files /dev/null and b/phpBB2/images/smiles/crazy_angel.gif differ diff --git a/phpBB2/images/smiles/crazy_argue.gif b/phpBB2/images/smiles/crazy_argue.gif new file mode 100644 index 0000000..83f3b0a Binary files /dev/null and b/phpBB2/images/smiles/crazy_argue.gif differ diff --git a/phpBB2/images/smiles/crazy_asthanos.gif b/phpBB2/images/smiles/crazy_asthanos.gif new file mode 100644 index 0000000..ea9b61b Binary files /dev/null and b/phpBB2/images/smiles/crazy_asthanos.gif differ diff --git a/phpBB2/images/smiles/crazy_bat_angel.gif b/phpBB2/images/smiles/crazy_bat_angel.gif new file mode 100644 index 0000000..f9855cd Binary files /dev/null and b/phpBB2/images/smiles/crazy_bat_angel.gif differ diff --git a/phpBB2/images/smiles/crazy_bdaysmile.gif b/phpBB2/images/smiles/crazy_bdaysmile.gif new file mode 100644 index 0000000..c0b3e95 Binary files /dev/null and b/phpBB2/images/smiles/crazy_bdaysmile.gif differ diff --git a/phpBB2/images/smiles/crazy_beammeup.gif b/phpBB2/images/smiles/crazy_beammeup.gif new file mode 100644 index 0000000..027e42c Binary files /dev/null and b/phpBB2/images/smiles/crazy_beammeup.gif differ diff --git a/phpBB2/images/smiles/crazy_bigcrowd.gif b/phpBB2/images/smiles/crazy_bigcrowd.gif new file mode 100644 index 0000000..e9a4bfe Binary files /dev/null and b/phpBB2/images/smiles/crazy_bigcrowd.gif differ diff --git a/phpBB2/images/smiles/crazy_birthday.gif b/phpBB2/images/smiles/crazy_birthday.gif new file mode 100644 index 0000000..1edaa2c Binary files /dev/null and b/phpBB2/images/smiles/crazy_birthday.gif differ diff --git a/phpBB2/images/smiles/crazy_blackey.gif b/phpBB2/images/smiles/crazy_blackey.gif new file mode 100644 index 0000000..a69b44a Binary files /dev/null and b/phpBB2/images/smiles/crazy_blackey.gif differ diff --git a/phpBB2/images/smiles/crazy_blowingup.gif b/phpBB2/images/smiles/crazy_blowingup.gif new file mode 100644 index 0000000..105efbe Binary files /dev/null and b/phpBB2/images/smiles/crazy_blowingup.gif differ diff --git a/phpBB2/images/smiles/crazy_bluegrab.gif b/phpBB2/images/smiles/crazy_bluegrab.gif new file mode 100644 index 0000000..5ebc515 Binary files /dev/null and b/phpBB2/images/smiles/crazy_bluegrab.gif differ diff --git a/phpBB2/images/smiles/crazy_borgsmile.gif b/phpBB2/images/smiles/crazy_borgsmile.gif new file mode 100644 index 0000000..76dd0d7 Binary files /dev/null and b/phpBB2/images/smiles/crazy_borgsmile.gif differ diff --git a/phpBB2/images/smiles/crazy_butterfly.gif b/phpBB2/images/smiles/crazy_butterfly.gif new file mode 100644 index 0000000..1b4b437 Binary files /dev/null and b/phpBB2/images/smiles/crazy_butterfly.gif differ diff --git a/phpBB2/images/smiles/crazy_color_.gif b/phpBB2/images/smiles/crazy_color_.gif new file mode 100644 index 0000000..69ca6bf Binary files /dev/null and b/phpBB2/images/smiles/crazy_color_.gif differ diff --git a/phpBB2/images/smiles/crazy_cussing.gif b/phpBB2/images/smiles/crazy_cussing.gif new file mode 100644 index 0000000..19eb9d8 Binary files /dev/null and b/phpBB2/images/smiles/crazy_cussing.gif differ diff --git a/phpBB2/images/smiles/crazy_eggface.gif b/phpBB2/images/smiles/crazy_eggface.gif new file mode 100644 index 0000000..46dda3d Binary files /dev/null and b/phpBB2/images/smiles/crazy_eggface.gif differ diff --git a/phpBB2/images/smiles/crazy_evil.gif b/phpBB2/images/smiles/crazy_evil.gif new file mode 100644 index 0000000..9440af3 Binary files /dev/null and b/phpBB2/images/smiles/crazy_evil.gif differ diff --git a/phpBB2/images/smiles/crazy_gmorning.gif b/phpBB2/images/smiles/crazy_gmorning.gif new file mode 100644 index 0000000..86ec594 Binary files /dev/null and b/phpBB2/images/smiles/crazy_gmorning.gif differ diff --git a/phpBB2/images/smiles/crazy_icecream.gif b/phpBB2/images/smiles/crazy_icecream.gif new file mode 100644 index 0000000..70843cd Binary files /dev/null and b/phpBB2/images/smiles/crazy_icecream.gif differ diff --git a/phpBB2/images/smiles/crazy_infinity.gif b/phpBB2/images/smiles/crazy_infinity.gif new file mode 100644 index 0000000..aaaf1c8 Binary files /dev/null and b/phpBB2/images/smiles/crazy_infinity.gif differ diff --git a/phpBB2/images/smiles/crazy_kodomagnam.gif b/phpBB2/images/smiles/crazy_kodomagnam.gif new file mode 100644 index 0000000..dbd1e84 Binary files /dev/null and b/phpBB2/images/smiles/crazy_kodomagnam.gif differ diff --git a/phpBB2/images/smiles/crazy_let_it_all_out.gif b/phpBB2/images/smiles/crazy_let_it_all_out.gif new file mode 100644 index 0000000..4d76a52 Binary files /dev/null and b/phpBB2/images/smiles/crazy_let_it_all_out.gif differ diff --git a/phpBB2/images/smiles/crazy_littleangel.gif b/phpBB2/images/smiles/crazy_littleangel.gif new file mode 100644 index 0000000..d82d8e5 Binary files /dev/null and b/phpBB2/images/smiles/crazy_littleangel.gif differ diff --git a/phpBB2/images/smiles/crazy_llying.gif b/phpBB2/images/smiles/crazy_llying.gif new file mode 100644 index 0000000..09159c0 Binary files /dev/null and b/phpBB2/images/smiles/crazy_llying.gif differ diff --git a/phpBB2/images/smiles/crazy_microwave.gif b/phpBB2/images/smiles/crazy_microwave.gif new file mode 100644 index 0000000..06c1e58 Binary files /dev/null and b/phpBB2/images/smiles/crazy_microwave.gif differ diff --git a/phpBB2/images/smiles/crazy_monalisa.gif b/phpBB2/images/smiles/crazy_monalisa.gif new file mode 100644 index 0000000..2980156 Binary files /dev/null and b/phpBB2/images/smiles/crazy_monalisa.gif differ diff --git a/phpBB2/images/smiles/crazy_multi.gif b/phpBB2/images/smiles/crazy_multi.gif new file mode 100644 index 0000000..5c6023e Binary files /dev/null and b/phpBB2/images/smiles/crazy_multi.gif differ diff --git a/phpBB2/images/smiles/crazy_newbie.gif b/phpBB2/images/smiles/crazy_newbie.gif new file mode 100644 index 0000000..8322095 Binary files /dev/null and b/phpBB2/images/smiles/crazy_newbie.gif differ diff --git a/phpBB2/images/smiles/crazy_olympic1.gif b/phpBB2/images/smiles/crazy_olympic1.gif new file mode 100644 index 0000000..a94b97a Binary files /dev/null and b/phpBB2/images/smiles/crazy_olympic1.gif differ diff --git a/phpBB2/images/smiles/crazy_popcornsmiley.gif b/phpBB2/images/smiles/crazy_popcornsmiley.gif new file mode 100644 index 0000000..1414b24 Binary files /dev/null and b/phpBB2/images/smiles/crazy_popcornsmiley.gif differ diff --git a/phpBB2/images/smiles/crazy_puppy_dog_eyes.gif b/phpBB2/images/smiles/crazy_puppy_dog_eyes.gif new file mode 100644 index 0000000..ae49736 Binary files /dev/null and b/phpBB2/images/smiles/crazy_puppy_dog_eyes.gif differ diff --git a/phpBB2/images/smiles/crazy_rainbow.gif b/phpBB2/images/smiles/crazy_rainbow.gif new file mode 100644 index 0000000..390aa2e Binary files /dev/null and b/phpBB2/images/smiles/crazy_rainbow.gif differ diff --git a/phpBB2/images/smiles/crazy_rainfro.gif b/phpBB2/images/smiles/crazy_rainfro.gif new file mode 100644 index 0000000..12be964 Binary files /dev/null and b/phpBB2/images/smiles/crazy_rainfro.gif differ diff --git a/phpBB2/images/smiles/crazy_rofl.gif b/phpBB2/images/smiles/crazy_rofl.gif new file mode 100644 index 0000000..a2c52ed Binary files /dev/null and b/phpBB2/images/smiles/crazy_rofl.gif differ diff --git a/phpBB2/images/smiles/crazy_rotcol.gif b/phpBB2/images/smiles/crazy_rotcol.gif new file mode 100644 index 0000000..df5659f Binary files /dev/null and b/phpBB2/images/smiles/crazy_rotcol.gif differ diff --git a/phpBB2/images/smiles/crazy_scatter.gif b/phpBB2/images/smiles/crazy_scatter.gif new file mode 100644 index 0000000..d8d5409 Binary files /dev/null and b/phpBB2/images/smiles/crazy_scatter.gif differ diff --git a/phpBB2/images/smiles/crazy_scrambles.gif b/phpBB2/images/smiles/crazy_scrambles.gif new file mode 100644 index 0000000..44a3ad7 Binary files /dev/null and b/phpBB2/images/smiles/crazy_scrambles.gif differ diff --git a/phpBB2/images/smiles/crazy_shocked.gif b/phpBB2/images/smiles/crazy_shocked.gif new file mode 100644 index 0000000..2c370cb Binary files /dev/null and b/phpBB2/images/smiles/crazy_shocked.gif differ diff --git a/phpBB2/images/smiles/crazy_silly.gif b/phpBB2/images/smiles/crazy_silly.gif new file mode 100644 index 0000000..4d4b79d Binary files /dev/null and b/phpBB2/images/smiles/crazy_silly.gif differ diff --git a/phpBB2/images/smiles/crazy_sleeping.gif b/phpBB2/images/smiles/crazy_sleeping.gif new file mode 100644 index 0000000..c3386ef Binary files /dev/null and b/phpBB2/images/smiles/crazy_sleeping.gif differ diff --git a/phpBB2/images/smiles/crazy_smile-l.gif b/phpBB2/images/smiles/crazy_smile-l.gif new file mode 100644 index 0000000..80e6af6 Binary files /dev/null and b/phpBB2/images/smiles/crazy_smile-l.gif differ diff --git a/phpBB2/images/smiles/crazy_smileyb.gif b/phpBB2/images/smiles/crazy_smileyb.gif new file mode 100644 index 0000000..b1bbad2 Binary files /dev/null and b/phpBB2/images/smiles/crazy_smileyb.gif differ diff --git a/phpBB2/images/smiles/crazy_smilie_colors1.gif b/phpBB2/images/smiles/crazy_smilie_colors1.gif new file mode 100644 index 0000000..8e8a4a6 Binary files /dev/null and b/phpBB2/images/smiles/crazy_smilie_colors1.gif differ diff --git a/phpBB2/images/smiles/crazy_snipersmilie.gif b/phpBB2/images/smiles/crazy_snipersmilie.gif new file mode 100644 index 0000000..6be1fb6 Binary files /dev/null and b/phpBB2/images/smiles/crazy_snipersmilie.gif differ diff --git a/phpBB2/images/smiles/crazy_spiral.gif b/phpBB2/images/smiles/crazy_spiral.gif new file mode 100644 index 0000000..6acaa77 Binary files /dev/null and b/phpBB2/images/smiles/crazy_spiral.gif differ diff --git a/phpBB2/images/smiles/crazy_squarecycle.gif b/phpBB2/images/smiles/crazy_squarecycle.gif new file mode 100644 index 0000000..8d4e816 Binary files /dev/null and b/phpBB2/images/smiles/crazy_squarecycle.gif differ diff --git a/phpBB2/images/smiles/crazy_squarewink.gif b/phpBB2/images/smiles/crazy_squarewink.gif new file mode 100644 index 0000000..e2610b0 Binary files /dev/null and b/phpBB2/images/smiles/crazy_squarewink.gif differ diff --git a/phpBB2/images/smiles/crazy_terminator.gif b/phpBB2/images/smiles/crazy_terminator.gif new file mode 100644 index 0000000..64423f5 Binary files /dev/null and b/phpBB2/images/smiles/crazy_terminator.gif differ diff --git a/phpBB2/images/smiles/crazy_tomato.gif b/phpBB2/images/smiles/crazy_tomato.gif new file mode 100644 index 0000000..903ec37 Binary files /dev/null and b/phpBB2/images/smiles/crazy_tomato.gif differ diff --git a/phpBB2/images/smiles/crazy_ukliam2.gif b/phpBB2/images/smiles/crazy_ukliam2.gif new file mode 100644 index 0000000..3baaa26 Binary files /dev/null and b/phpBB2/images/smiles/crazy_ukliam2.gif differ diff --git a/phpBB2/images/smiles/crazy_usa.gif b/phpBB2/images/smiles/crazy_usa.gif new file mode 100644 index 0000000..bc866be Binary files /dev/null and b/phpBB2/images/smiles/crazy_usa.gif differ diff --git a/phpBB2/images/smiles/crazy_vampv.gif b/phpBB2/images/smiles/crazy_vampv.gif new file mode 100644 index 0000000..72088ab Binary files /dev/null and b/phpBB2/images/smiles/crazy_vampv.gif differ diff --git a/phpBB2/images/smiles/crazy_xmas.gif b/phpBB2/images/smiles/crazy_xmas.gif new file mode 100644 index 0000000..2691af4 Binary files /dev/null and b/phpBB2/images/smiles/crazy_xmas.gif differ diff --git a/phpBB2/images/smiles/icon_arrow.gif b/phpBB2/images/smiles/icon_arrow.gif new file mode 100644 index 0000000..2880055 Binary files /dev/null and b/phpBB2/images/smiles/icon_arrow.gif differ diff --git a/phpBB2/images/smiles/icon_biggrin.gif b/phpBB2/images/smiles/icon_biggrin.gif new file mode 100644 index 0000000..d352772 Binary files /dev/null and b/phpBB2/images/smiles/icon_biggrin.gif differ diff --git a/phpBB2/images/smiles/icon_confused.gif b/phpBB2/images/smiles/icon_confused.gif new file mode 100644 index 0000000..0c49e06 Binary files /dev/null and b/phpBB2/images/smiles/icon_confused.gif differ diff --git a/phpBB2/images/smiles/icon_cool.gif b/phpBB2/images/smiles/icon_cool.gif new file mode 100644 index 0000000..cead030 Binary files /dev/null and b/phpBB2/images/smiles/icon_cool.gif differ diff --git a/phpBB2/images/smiles/icon_cry.gif b/phpBB2/images/smiles/icon_cry.gif new file mode 100644 index 0000000..7d54b1f Binary files /dev/null and b/phpBB2/images/smiles/icon_cry.gif differ diff --git a/phpBB2/images/smiles/icon_eek.gif b/phpBB2/images/smiles/icon_eek.gif new file mode 100644 index 0000000..5d39781 Binary files /dev/null and b/phpBB2/images/smiles/icon_eek.gif differ diff --git a/phpBB2/images/smiles/icon_evil.gif b/phpBB2/images/smiles/icon_evil.gif new file mode 100644 index 0000000..ab1aa8e Binary files /dev/null and b/phpBB2/images/smiles/icon_evil.gif differ diff --git a/phpBB2/images/smiles/icon_exclaim.gif b/phpBB2/images/smiles/icon_exclaim.gif new file mode 100644 index 0000000..6e50e2e Binary files /dev/null and b/phpBB2/images/smiles/icon_exclaim.gif differ diff --git a/phpBB2/images/smiles/icon_frown.gif b/phpBB2/images/smiles/icon_frown.gif new file mode 100644 index 0000000..d2ac78c Binary files /dev/null and b/phpBB2/images/smiles/icon_frown.gif differ diff --git a/phpBB2/images/smiles/icon_idea.gif b/phpBB2/images/smiles/icon_idea.gif new file mode 100644 index 0000000..a40ae0d Binary files /dev/null and b/phpBB2/images/smiles/icon_idea.gif differ diff --git a/phpBB2/images/smiles/icon_lol.gif b/phpBB2/images/smiles/icon_lol.gif new file mode 100644 index 0000000..374ba15 Binary files /dev/null and b/phpBB2/images/smiles/icon_lol.gif differ diff --git a/phpBB2/images/smiles/icon_mad.gif b/phpBB2/images/smiles/icon_mad.gif new file mode 100644 index 0000000..1f6c3c2 Binary files /dev/null and b/phpBB2/images/smiles/icon_mad.gif differ diff --git a/phpBB2/images/smiles/icon_mrgreen.gif b/phpBB2/images/smiles/icon_mrgreen.gif new file mode 100644 index 0000000..b54cd0f Binary files /dev/null and b/phpBB2/images/smiles/icon_mrgreen.gif differ diff --git a/phpBB2/images/smiles/icon_neutral.gif b/phpBB2/images/smiles/icon_neutral.gif new file mode 100644 index 0000000..4f31156 Binary files /dev/null and b/phpBB2/images/smiles/icon_neutral.gif differ diff --git a/phpBB2/images/smiles/icon_question.gif b/phpBB2/images/smiles/icon_question.gif new file mode 100644 index 0000000..9d07226 Binary files /dev/null and b/phpBB2/images/smiles/icon_question.gif differ diff --git a/phpBB2/images/smiles/icon_razz.gif b/phpBB2/images/smiles/icon_razz.gif new file mode 100644 index 0000000..29da2a2 Binary files /dev/null and b/phpBB2/images/smiles/icon_razz.gif differ diff --git a/phpBB2/images/smiles/icon_redface.gif b/phpBB2/images/smiles/icon_redface.gif new file mode 100644 index 0000000..ad76283 Binary files /dev/null and b/phpBB2/images/smiles/icon_redface.gif differ diff --git a/phpBB2/images/smiles/icon_rolleyes.gif b/phpBB2/images/smiles/icon_rolleyes.gif new file mode 100644 index 0000000..d7f5f2f Binary files /dev/null and b/phpBB2/images/smiles/icon_rolleyes.gif differ diff --git a/phpBB2/images/smiles/icon_sad.gif b/phpBB2/images/smiles/icon_sad.gif new file mode 100644 index 0000000..d2ac78c Binary files /dev/null and b/phpBB2/images/smiles/icon_sad.gif differ diff --git a/phpBB2/images/smiles/icon_smile.gif b/phpBB2/images/smiles/icon_smile.gif new file mode 100644 index 0000000..7b1f6d3 Binary files /dev/null and b/phpBB2/images/smiles/icon_smile.gif differ diff --git a/phpBB2/images/smiles/icon_surprised.gif b/phpBB2/images/smiles/icon_surprised.gif new file mode 100644 index 0000000..cb21424 Binary files /dev/null and b/phpBB2/images/smiles/icon_surprised.gif differ diff --git a/phpBB2/images/smiles/icon_twisted.gif b/phpBB2/images/smiles/icon_twisted.gif new file mode 100644 index 0000000..502fe24 Binary files /dev/null and b/phpBB2/images/smiles/icon_twisted.gif differ diff --git a/phpBB2/images/smiles/icon_wink.gif b/phpBB2/images/smiles/icon_wink.gif new file mode 100644 index 0000000..d148288 Binary files /dev/null and b/phpBB2/images/smiles/icon_wink.gif differ diff --git a/phpBB2/images/smiles/signs_champion.gif b/phpBB2/images/smiles/signs_champion.gif new file mode 100644 index 0000000..2cbe336 Binary files /dev/null and b/phpBB2/images/smiles/signs_champion.gif differ diff --git a/phpBB2/images/smiles/signs_help.gif b/phpBB2/images/smiles/signs_help.gif new file mode 100644 index 0000000..2744db1 Binary files /dev/null and b/phpBB2/images/smiles/signs_help.gif differ diff --git a/phpBB2/images/smiles/signs_hm.gif b/phpBB2/images/smiles/signs_hm.gif new file mode 100644 index 0000000..74c7d92 Binary files /dev/null and b/phpBB2/images/smiles/signs_hm.gif differ diff --git a/phpBB2/images/smiles/signs_lol.gif b/phpBB2/images/smiles/signs_lol.gif new file mode 100644 index 0000000..8197970 Binary files /dev/null and b/phpBB2/images/smiles/signs_lol.gif differ diff --git a/phpBB2/images/smiles/signs_noparking.gif b/phpBB2/images/smiles/signs_noparking.gif new file mode 100644 index 0000000..2ea1883 Binary files /dev/null and b/phpBB2/images/smiles/signs_noparking.gif differ diff --git a/phpBB2/images/smiles/signs_nopass.gif b/phpBB2/images/smiles/signs_nopass.gif new file mode 100644 index 0000000..68f4b78 Binary files /dev/null and b/phpBB2/images/smiles/signs_nopass.gif differ diff --git a/phpBB2/images/smiles/signs_oneway.gif b/phpBB2/images/smiles/signs_oneway.gif new file mode 100644 index 0000000..55bbe69 Binary files /dev/null and b/phpBB2/images/smiles/signs_oneway.gif differ diff --git a/phpBB2/images/smiles/signs_prepare.gif b/phpBB2/images/smiles/signs_prepare.gif new file mode 100644 index 0000000..e5ad304 Binary files /dev/null and b/phpBB2/images/smiles/signs_prepare.gif differ diff --git a/phpBB2/images/smiles/signs_rant.gif b/phpBB2/images/smiles/signs_rant.gif new file mode 100644 index 0000000..15c4dc9 Binary files /dev/null and b/phpBB2/images/smiles/signs_rant.gif differ diff --git a/phpBB2/images/smiles/signs_rantoff.gif b/phpBB2/images/smiles/signs_rantoff.gif new file mode 100644 index 0000000..39e824c Binary files /dev/null and b/phpBB2/images/smiles/signs_rantoff.gif differ diff --git a/phpBB2/images/smiles/signs_ranton.gif b/phpBB2/images/smiles/signs_ranton.gif new file mode 100644 index 0000000..414ff2d Binary files /dev/null and b/phpBB2/images/smiles/signs_ranton.gif differ diff --git a/phpBB2/images/smiles/signs_welcome.gif b/phpBB2/images/smiles/signs_welcome.gif new file mode 100644 index 0000000..b059e78 Binary files /dev/null and b/phpBB2/images/smiles/signs_welcome.gif differ diff --git a/phpBB2/images/smiles/sports_basket.gif b/phpBB2/images/smiles/sports_basket.gif new file mode 100644 index 0000000..2d39735 Binary files /dev/null and b/phpBB2/images/smiles/sports_basket.gif differ diff --git a/phpBB2/images/smiles/sports_boat.gif b/phpBB2/images/smiles/sports_boat.gif new file mode 100644 index 0000000..624cb47 Binary files /dev/null and b/phpBB2/images/smiles/sports_boat.gif differ diff --git a/phpBB2/images/smiles/sports_boxing.gif b/phpBB2/images/smiles/sports_boxing.gif new file mode 100644 index 0000000..8818c3e Binary files /dev/null and b/phpBB2/images/smiles/sports_boxing.gif differ diff --git a/phpBB2/images/smiles/sports_bronze.gif b/phpBB2/images/smiles/sports_bronze.gif new file mode 100644 index 0000000..c0f0867 Binary files /dev/null and b/phpBB2/images/smiles/sports_bronze.gif differ diff --git a/phpBB2/images/smiles/sports_checkeredflag.gif b/phpBB2/images/smiles/sports_checkeredflag.gif new file mode 100644 index 0000000..28582d7 Binary files /dev/null and b/phpBB2/images/smiles/sports_checkeredflag.gif differ diff --git a/phpBB2/images/smiles/sports_cup.gif b/phpBB2/images/smiles/sports_cup.gif new file mode 100644 index 0000000..92eb4ab Binary files /dev/null and b/phpBB2/images/smiles/sports_cup.gif differ diff --git a/phpBB2/images/smiles/sports_cycling.gif b/phpBB2/images/smiles/sports_cycling.gif new file mode 100644 index 0000000..332081e Binary files /dev/null and b/phpBB2/images/smiles/sports_cycling.gif differ diff --git a/phpBB2/images/smiles/sports_diver.gif b/phpBB2/images/smiles/sports_diver.gif new file mode 100644 index 0000000..57da08b Binary files /dev/null and b/phpBB2/images/smiles/sports_diver.gif differ diff --git a/phpBB2/images/smiles/sports_drop.gif b/phpBB2/images/smiles/sports_drop.gif new file mode 100644 index 0000000..9eb2904 Binary files /dev/null and b/phpBB2/images/smiles/sports_drop.gif differ diff --git a/phpBB2/images/smiles/sports_fairplay.jpg b/phpBB2/images/smiles/sports_fairplay.jpg new file mode 100644 index 0000000..ea2aadb Binary files /dev/null and b/phpBB2/images/smiles/sports_fairplay.jpg differ diff --git a/phpBB2/images/smiles/sports_footballhelmet.gif b/phpBB2/images/smiles/sports_footballhelmet.gif new file mode 100644 index 0000000..9ceda34 Binary files /dev/null and b/phpBB2/images/smiles/sports_footballhelmet.gif differ diff --git a/phpBB2/images/smiles/sports_garchery.gif b/phpBB2/images/smiles/sports_garchery.gif new file mode 100644 index 0000000..74dbe4d Binary files /dev/null and b/phpBB2/images/smiles/sports_garchery.gif differ diff --git a/phpBB2/images/smiles/sports_goal.gif b/phpBB2/images/smiles/sports_goal.gif new file mode 100644 index 0000000..52d1dc9 Binary files /dev/null and b/phpBB2/images/smiles/sports_goal.gif differ diff --git a/phpBB2/images/smiles/sports_grouphug.gif b/phpBB2/images/smiles/sports_grouphug.gif new file mode 100644 index 0000000..defa5db Binary files /dev/null and b/phpBB2/images/smiles/sports_grouphug.gif differ diff --git a/phpBB2/images/smiles/sports_jab.gif b/phpBB2/images/smiles/sports_jab.gif new file mode 100644 index 0000000..fc2d889 Binary files /dev/null and b/phpBB2/images/smiles/sports_jab.gif differ diff --git a/phpBB2/images/smiles/sports_keep.gif b/phpBB2/images/smiles/sports_keep.gif new file mode 100644 index 0000000..c9fa6c5 Binary files /dev/null and b/phpBB2/images/smiles/sports_keep.gif differ diff --git a/phpBB2/images/smiles/sports_maillotjaune.gif b/phpBB2/images/smiles/sports_maillotjaune.gif new file mode 100644 index 0000000..21e3016 Binary files /dev/null and b/phpBB2/images/smiles/sports_maillotjaune.gif differ diff --git a/phpBB2/images/smiles/sports_ping.gif b/phpBB2/images/smiles/sports_ping.gif new file mode 100644 index 0000000..407c9ff Binary files /dev/null and b/phpBB2/images/smiles/sports_ping.gif differ diff --git a/phpBB2/images/smiles/sports_podium.gif b/phpBB2/images/smiles/sports_podium.gif new file mode 100644 index 0000000..9079b35 Binary files /dev/null and b/phpBB2/images/smiles/sports_podium.gif differ diff --git a/phpBB2/images/smiles/sports_putgolf.gif b/phpBB2/images/smiles/sports_putgolf.gif new file mode 100644 index 0000000..bb14fd4 Binary files /dev/null and b/phpBB2/images/smiles/sports_putgolf.gif differ diff --git a/phpBB2/images/smiles/sports_skateboard.gif b/phpBB2/images/smiles/sports_skateboard.gif new file mode 100644 index 0000000..40b8aff Binary files /dev/null and b/phpBB2/images/smiles/sports_skateboard.gif differ diff --git a/phpBB2/images/smiles/sports_ski.gif b/phpBB2/images/smiles/sports_ski.gif new file mode 100644 index 0000000..9ac7397 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski.gif differ diff --git a/phpBB2/images/smiles/sports_ski1.gif b/phpBB2/images/smiles/sports_ski1.gif new file mode 100644 index 0000000..5101d60 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski1.gif differ diff --git a/phpBB2/images/smiles/sports_ski2.gif b/phpBB2/images/smiles/sports_ski2.gif new file mode 100644 index 0000000..0971128 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski2.gif differ diff --git a/phpBB2/images/smiles/sports_ski3.gif b/phpBB2/images/smiles/sports_ski3.gif new file mode 100644 index 0000000..bf5f4ea Binary files /dev/null and b/phpBB2/images/smiles/sports_ski3.gif differ diff --git a/phpBB2/images/smiles/sports_ski4.gif b/phpBB2/images/smiles/sports_ski4.gif new file mode 100644 index 0000000..9844a6a Binary files /dev/null and b/phpBB2/images/smiles/sports_ski4.gif differ diff --git a/phpBB2/images/smiles/sports_ski5.gif b/phpBB2/images/smiles/sports_ski5.gif new file mode 100644 index 0000000..83b1116 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski5.gif differ diff --git a/phpBB2/images/smiles/sports_ski6.gif b/phpBB2/images/smiles/sports_ski6.gif new file mode 100644 index 0000000..2ed1c96 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski6.gif differ diff --git a/phpBB2/images/smiles/sports_ski_fallen.gif b/phpBB2/images/smiles/sports_ski_fallen.gif new file mode 100644 index 0000000..9d37f39 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski_fallen.gif differ diff --git a/phpBB2/images/smiles/sports_ski_falling.gif b/phpBB2/images/smiles/sports_ski_falling.gif new file mode 100644 index 0000000..799ed6c Binary files /dev/null and b/phpBB2/images/smiles/sports_ski_falling.gif differ diff --git a/phpBB2/images/smiles/sports_ski_jump.gif b/phpBB2/images/smiles/sports_ski_jump.gif new file mode 100644 index 0000000..7534a66 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski_jump.gif differ diff --git a/phpBB2/images/smiles/sports_ski_jumpintree.gif b/phpBB2/images/smiles/sports_ski_jumpintree.gif new file mode 100644 index 0000000..cd6f963 Binary files /dev/null and b/phpBB2/images/smiles/sports_ski_jumpintree.gif differ diff --git a/phpBB2/images/smiles/sports_ski_slalom.gif b/phpBB2/images/smiles/sports_ski_slalom.gif new file mode 100644 index 0000000..0b255eb Binary files /dev/null and b/phpBB2/images/smiles/sports_ski_slalom.gif differ diff --git a/phpBB2/images/smiles/sports_skismile.gif b/phpBB2/images/smiles/sports_skismile.gif new file mode 100644 index 0000000..2d2a393 Binary files /dev/null and b/phpBB2/images/smiles/sports_skismile.gif differ diff --git a/phpBB2/images/smiles/sports_snorkel.gif b/phpBB2/images/smiles/sports_snorkel.gif new file mode 100644 index 0000000..2a963a2 Binary files /dev/null and b/phpBB2/images/smiles/sports_snorkel.gif differ diff --git a/phpBB2/images/smiles/sports_surfing.gif b/phpBB2/images/smiles/sports_surfing.gif new file mode 100644 index 0000000..d9b3685 Binary files /dev/null and b/phpBB2/images/smiles/sports_surfing.gif differ diff --git a/phpBB2/images/smiles/sports_swinggolf.gif b/phpBB2/images/smiles/sports_swinggolf.gif new file mode 100644 index 0000000..2bd1e24 Binary files /dev/null and b/phpBB2/images/smiles/sports_swinggolf.gif differ diff --git a/phpBB2/images/smiles/sports_target.gif b/phpBB2/images/smiles/sports_target.gif new file mode 100644 index 0000000..d043647 Binary files /dev/null and b/phpBB2/images/smiles/sports_target.gif differ diff --git a/phpBB2/images/smiles/sports_velo.gif b/phpBB2/images/smiles/sports_velo.gif new file mode 100644 index 0000000..a98d044 Binary files /dev/null and b/phpBB2/images/smiles/sports_velo.gif differ diff --git a/phpBB2/images/smiles/sports_waterskiing.gif b/phpBB2/images/smiles/sports_waterskiing.gif new file mode 100644 index 0000000..d735c3f Binary files /dev/null and b/phpBB2/images/smiles/sports_waterskiing.gif differ diff --git a/phpBB2/images/smiles/sports_wave.gif b/phpBB2/images/smiles/sports_wave.gif new file mode 100644 index 0000000..beb46e6 Binary files /dev/null and b/phpBB2/images/smiles/sports_wave.gif differ diff --git a/phpBB2/images/smiles/sports_weightlifter.gif b/phpBB2/images/smiles/sports_weightlifter.gif new file mode 100644 index 0000000..4bdfd6f Binary files /dev/null and b/phpBB2/images/smiles/sports_weightlifter.gif differ diff --git a/phpBB2/images/smiles/valentine_Happy.gif b/phpBB2/images/smiles/valentine_Happy.gif new file mode 100644 index 0000000..5d9b1d7 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Happy.gif differ diff --git a/phpBB2/images/smiles/valentine_Heartfillwithlove.gif b/phpBB2/images/smiles/valentine_Heartfillwithlove.gif new file mode 100644 index 0000000..a86912a Binary files /dev/null and b/phpBB2/images/smiles/valentine_Heartfillwithlove.gif differ diff --git a/phpBB2/images/smiles/valentine_Hiya.gif b/phpBB2/images/smiles/valentine_Hiya.gif new file mode 100644 index 0000000..575f1a2 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Hiya.gif differ diff --git a/phpBB2/images/smiles/valentine_Iloveyou1.gif b/phpBB2/images/smiles/valentine_Iloveyou1.gif new file mode 100644 index 0000000..6b2ded9 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Iloveyou1.gif differ diff --git a/phpBB2/images/smiles/valentine_Kissoflove.gif b/phpBB2/images/smiles/valentine_Kissoflove.gif new file mode 100644 index 0000000..0d83c27 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Kissoflove.gif differ diff --git a/phpBB2/images/smiles/valentine_Peekaboo.gif b/phpBB2/images/smiles/valentine_Peekaboo.gif new file mode 100644 index 0000000..8822714 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Peekaboo.gif differ diff --git a/phpBB2/images/smiles/valentine_Realmad.gif b/phpBB2/images/smiles/valentine_Realmad.gif new file mode 100644 index 0000000..baad2d0 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Realmad.gif differ diff --git a/phpBB2/images/smiles/valentine_Tofunny.gif b/phpBB2/images/smiles/valentine_Tofunny.gif new file mode 100644 index 0000000..7b62901 Binary files /dev/null and b/phpBB2/images/smiles/valentine_Tofunny.gif differ diff --git a/phpBB2/images/smiles/valentine_bemine.gif b/phpBB2/images/smiles/valentine_bemine.gif new file mode 100644 index 0000000..c0b1620 Binary files /dev/null and b/phpBB2/images/smiles/valentine_bemine.gif differ diff --git a/phpBB2/images/smiles/valentine_callme.gif b/phpBB2/images/smiles/valentine_callme.gif new file mode 100644 index 0000000..5d130f4 Binary files /dev/null and b/phpBB2/images/smiles/valentine_callme.gif differ diff --git a/phpBB2/images/smiles/valentine_hotoveryou.gif b/phpBB2/images/smiles/valentine_hotoveryou.gif new file mode 100644 index 0000000..5c4c2e7 Binary files /dev/null and b/phpBB2/images/smiles/valentine_hotoveryou.gif differ diff --git a/phpBB2/images/smiles/valentine_iloveyou2.gif b/phpBB2/images/smiles/valentine_iloveyou2.gif new file mode 100644 index 0000000..e00ae8b Binary files /dev/null and b/phpBB2/images/smiles/valentine_iloveyou2.gif differ diff --git a/phpBB2/images/smiles/valentine_lovesick.gif b/phpBB2/images/smiles/valentine_lovesick.gif new file mode 100644 index 0000000..df98b94 Binary files /dev/null and b/phpBB2/images/smiles/valentine_lovesick.gif differ diff --git a/phpBB2/images/smiles/valentine_lovetogether.gif b/phpBB2/images/smiles/valentine_lovetogether.gif new file mode 100644 index 0000000..bd73373 Binary files /dev/null and b/phpBB2/images/smiles/valentine_lovetogether.gif differ diff --git a/phpBB2/images/smiles/valentine_myHeartfireupforyou.gif b/phpBB2/images/smiles/valentine_myHeartfireupforyou.gif new file mode 100644 index 0000000..db37b5c Binary files /dev/null and b/phpBB2/images/smiles/valentine_myHeartfireupforyou.gif differ diff --git a/phpBB2/images/smiles/valentine_mylove.gif b/phpBB2/images/smiles/valentine_mylove.gif new file mode 100644 index 0000000..9486e4d Binary files /dev/null and b/phpBB2/images/smiles/valentine_mylove.gif differ diff --git a/phpBB2/images/smiles/valentine_winyourlove.gif b/phpBB2/images/smiles/valentine_winyourlove.gif new file mode 100644 index 0000000..4539e22 Binary files /dev/null and b/phpBB2/images/smiles/valentine_winyourlove.gif differ diff --git a/phpBB2/images/spacer.gif b/phpBB2/images/spacer.gif new file mode 100644 index 0000000..cd29009 Binary files /dev/null and b/phpBB2/images/spacer.gif differ diff --git a/phpBB2/includes/auth.php b/phpBB2/includes/auth.php new file mode 100644 index 0000000..80d3e88 --- /dev/null +++ b/phpBB2/includes/auth.php @@ -0,0 +1,328 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Failed obtaining forum access control lists', '', __LINE__, __FILE__, $sql); + } + + $sql_fetchrow = ( $forum_id != AUTH_LIST_ALL ) ? 'sql_fetchrow' : 'sql_fetchrowset'; + + if ( !($f_access = $db->$sql_fetchrow($result)) ) + { + $db->sql_freeresult($result); + return array(); + } + $db->sql_freeresult($result); + } + + // + // If the user isn't logged on then all we need do is check if the forum + // has the type set to ALL, if yes they are good to go, if not then they + // are denied access + // + $u_access = array(); + if ( $userdata['session_logged_in'] ) + { + $forum_match_sql = ( $forum_id != AUTH_LIST_ALL ) ? "AND a.forum_id = $forum_id" : ''; + + $sql = "SELECT a.forum_id, $a_sql, a.auth_mod + FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = ".$userdata['user_id']. " + AND ug.user_pending = 0 + AND a.group_id = ug.group_id + $forum_match_sql"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Failed obtaining forum access control lists', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + if ( $forum_id != AUTH_LIST_ALL) + { + $u_access[] = $row; + } + else + { + $u_access[$row['forum_id']][] = $row; + } + } + while( $row = $db->sql_fetchrow($result) ); + } + $db->sql_freeresult($result); + } + + $is_admin = ( $userdata['user_level'] == ADMIN && $userdata['session_logged_in'] ) ? TRUE : 0; + + $auth_user = array(); + for($i = 0; $i < count($auth_fields); $i++) + { + $key = $auth_fields[$i]; + + // + // If the user is logged on and the forum type is either ALL or REG then the user has access + // + // If the type if ACL, MOD or ADMIN then we need to see if the user has specific permissions + // to do whatever it is they want to do ... to do this we pull relevant information for the + // user (and any groups they belong to) + // + // Now we compare the users access level against the forums. We assume here that a moderator + // and admin automatically have access to an ACL forum, similarly we assume admins meet an + // auth requirement of MOD + // + if ( $forum_id != AUTH_LIST_ALL ) + { + $value = $f_access[$key]; + + switch( $value ) + { + case AUTH_ALL: + $auth_user[$key] = TRUE; + $auth_user[$key . '_type'] = $lang['Auth_Anonymous_Users']; + break; + + case AUTH_REG: + $auth_user[$key] = ( $userdata['session_logged_in'] ) ? TRUE : 0; + $auth_user[$key . '_type'] = $lang['Auth_Registered_Users']; + break; + + case AUTH_ACL: + $auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access, $is_admin) : 0; + $auth_user[$key . '_type'] = $lang['Auth_Users_granted_access']; + break; + + case AUTH_MOD: + $auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0; + $auth_user[$key . '_type'] = $lang['Auth_Moderators']; + break; + + case AUTH_ADMIN: + $auth_user[$key] = $is_admin; + $auth_user[$key . '_type'] = $lang['Auth_Administrators']; + break; + + default: + $auth_user[$key] = 0; + break; + } + } + else + { + for($k = 0; $k < count($f_access); $k++) + { + $value = $f_access[$k][$key]; + $f_forum_id = $f_access[$k]['forum_id']; + $u_access[$f_forum_id] = isset($u_access[$f_forum_id]) ? $u_access[$f_forum_id] : array(); + + switch( $value ) + { + case AUTH_ALL: + $auth_user[$f_forum_id][$key] = TRUE; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Anonymous_Users']; + break; + + case AUTH_REG: + $auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? TRUE : 0; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Registered_Users']; + break; + + case AUTH_ACL: + $auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access[$f_forum_id], $is_admin) : 0; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Users_granted_access']; + break; + + case AUTH_MOD: + $auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Moderators']; + break; + + case AUTH_ADMIN: + $auth_user[$f_forum_id][$key] = $is_admin; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Administrators']; + break; + + default: + $auth_user[$f_forum_id][$key] = 0; + break; + } + } + } + } + + // + // Is user a moderator? + // + if ( $forum_id != AUTH_LIST_ALL ) + { + $auth_user['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0; + } + else + { + for($k = 0; $k < count($f_access); $k++) + { + $f_forum_id = $f_access[$k]['forum_id']; + $u_access[$f_forum_id] = isset($u_access[$f_forum_id]) ? $u_access[$f_forum_id] : array(); + + $auth_user[$f_forum_id]['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0; + } + } + + return $auth_user; +} + +function auth_check_user($type, $key, $u_access, $is_admin) +{ + $auth_user = 0; + + if ( count($u_access) ) + { + for($j = 0; $j < count($u_access); $j++) + { + $result = 0; + switch($type) + { + case AUTH_ACL: + $result = $u_access[$j][$key]; + + case AUTH_MOD: + $result = $result || $u_access[$j]['auth_mod']; + + case AUTH_ADMIN: + $result = $result || $is_admin; + break; + } + + $auth_user = $auth_user || $result; + } + } + else + { + $auth_user = $is_admin; + } + + return $auth_user; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/bbcode.php b/phpBB2/includes/bbcode.php new file mode 100644 index 0000000..2ec4232 --- /dev/null +++ b/phpBB2/includes/bbcode.php @@ -0,0 +1,790 @@ +make_filename('bbcode.tpl'); + $tpl = fread(fopen($tpl_filename, 'r'), filesize($tpl_filename)); + + // replace \ with \\ and then ' with \'. + $tpl = str_replace('\\', '\\\\', $tpl); + $tpl = str_replace('\'', '\\\'', $tpl); + + // strip newlines. + $tpl = str_replace("\n", '', $tpl); + + // Turn template blocks into PHP assignment statements for the values of $bbcode_tpls.. + $tpl = preg_replace('#(.*?)#', "\n" . '$bbcode_tpls[\'\\1\'] = \'\\2\';', $tpl); + + $bbcode_tpls = array(); + + eval($tpl); + + return $bbcode_tpls; +} + + +/** + * Prepares the loaded bbcode templates for insertion into preg_replace() + * or str_replace() calls in the bbencode_second_pass functions. This + * means replacing template placeholders with the appropriate preg backrefs + * or with language vars. NOTE: If you change how the regexps work in + * bbencode_second_pass(), you MUST change this function. + * + * Nathan Codding, Sept 26 2001 + * + */ +function prepare_bbcode_template($bbcode_tpl) +{ + global $lang; + + $bbcode_tpl['olist_open'] = str_replace('{LIST_TYPE}', '\\1', $bbcode_tpl['olist_open']); + + $bbcode_tpl['color_open'] = str_replace('{COLOR}', '\\1', $bbcode_tpl['color_open']); + + $bbcode_tpl['size_open'] = str_replace('{SIZE}', '\\1', $bbcode_tpl['size_open']); + + $bbcode_tpl['quote_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_open']); + + $bbcode_tpl['quote_username_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_username_open']); + $bbcode_tpl['quote_username_open'] = str_replace('{L_WROTE}', $lang['wrote'], $bbcode_tpl['quote_username_open']); + $bbcode_tpl['quote_username_open'] = str_replace('{USERNAME}', '\\1', $bbcode_tpl['quote_username_open']); + + $bbcode_tpl['code_open'] = str_replace('{L_CODE}', $lang['Code'], $bbcode_tpl['code_open']); + + $bbcode_tpl['img'] = str_replace('{URL}', '\\1', $bbcode_tpl['img']); + + // We do URLs in several different ways.. + $bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']); + $bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']); + + $bbcode_tpl['url2'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']); + $bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url2']); + + $bbcode_tpl['url3'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']); + $bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['url3']); + + $bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']); + $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']); + + $bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']); + + define("BBCODE_TPL_READY", true); + + return $bbcode_tpl; +} + + +/** + * Does second-pass bbencoding. This should be used before displaying the message in + * a thread. Assumes the message is already first-pass encoded, and we are given the + * correct UID as used in first-pass encoding. + */ +function bbencode_second_pass($text, $uid) +{ + global $lang, $bbcode_tpl; + + $text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text); + + // pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0). + // This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it. + $text = " " . $text; + + // First: If there isn't a "[" and a "]" in the message, don't bother. + if (! (strpos($text, "[") && strpos($text, "]")) ) + { + // Remove padding, return. + $text = substr($text, 1); + return $text; + } + + // Only load the templates ONCE.. + if (!defined("BBCODE_TPL_READY")) + { + // load templates from file into array. + $bbcode_tpl = load_bbcode_template(); + + // prepare array for use in regexps. + $bbcode_tpl = prepare_bbcode_template($bbcode_tpl); + } + + // [CODE] and [/CODE] for posting code (HTML, PHP, C etc etc) in your posts. + $text = bbencode_second_pass_code($text, $uid, $bbcode_tpl); + + // [QUOTE] and [/QUOTE] for posting replies with quote, or just for quoting stuff. + $text = str_replace("[quote:$uid]", $bbcode_tpl['quote_open'], $text); + $text = str_replace("[/quote:$uid]", $bbcode_tpl['quote_close'], $text); + + // New one liner to deal with opening quotes with usernames... + // replaces the two line version that I had here before.. + $text = preg_replace("/\[quote:$uid=\"(.*?)\"\]/si", $bbcode_tpl['quote_username_open'], $text); + + // [list] and [list=x] for (un)ordered lists. + // unordered lists + $text = str_replace("[list:$uid]", $bbcode_tpl['ulist_open'], $text); + // li tags + $text = str_replace("[*:$uid]", $bbcode_tpl['listitem'], $text); + // ending tags + $text = str_replace("[/list:u:$uid]", $bbcode_tpl['ulist_close'], $text); + $text = str_replace("[/list:o:$uid]", $bbcode_tpl['olist_close'], $text); + // Ordered lists + $text = preg_replace("/\[list=([a1]):$uid\]/si", $bbcode_tpl['olist_open'], $text); + + // colours + $text = preg_replace("/\[color=(\#[0-9A-F]{6}|[a-z]+):$uid\]/si", $bbcode_tpl['color_open'], $text); + $text = str_replace("[/color:$uid]", $bbcode_tpl['color_close'], $text); + + // size + $text = preg_replace("/\[size=([1-2]?[0-9]):$uid\]/si", $bbcode_tpl['size_open'], $text); + $text = str_replace("[/size:$uid]", $bbcode_tpl['size_close'], $text); + + // [b] and [/b] for bolding text. + $text = str_replace("[b:$uid]", $bbcode_tpl['b_open'], $text); + $text = str_replace("[/b:$uid]", $bbcode_tpl['b_close'], $text); + + // [u] and [/u] for underlining text. + $text = str_replace("[u:$uid]", $bbcode_tpl['u_open'], $text); + $text = str_replace("[/u:$uid]", $bbcode_tpl['u_close'], $text); + + // [i] and [/i] for italicizing text. + $text = str_replace("[i:$uid]", $bbcode_tpl['i_open'], $text); + $text = str_replace("[/i:$uid]", $bbcode_tpl['i_close'], $text); + + // Patterns and replacements for URL and email tags.. + $patterns = array(); + $replacements = array(); + + // [img]image_url_here[/img] code.. + // This one gets first-passed.. + $patterns[] = "#\[img:$uid\]([^?](?:[^\[]+|\[(?!url))*?)\[/img:$uid\]#i"; + $replacements[] = $bbcode_tpl['img']; + + // matches a [url]xxxx://www.phpbb.com[/url] code.. + $patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url1']; + + // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix). + $patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url2']; + + // [url=xxxx://www.phpbb.com]phpBB[/url] code.. + $patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url3']; + + // [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix). + $patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url4']; + + // [email]user@domain.tld[/email] code.. + $patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si"; + $replacements[] = $bbcode_tpl['email']; + + $text = preg_replace($patterns, $replacements, $text); + + // Remove our padding from the string.. + $text = substr($text, 1); + + return $text; + +} // bbencode_second_pass() + +// Need to initialize the random numbers only ONCE +mt_srand( (double) microtime() * 1000000); + +function make_bbcode_uid() +{ + // Unique ID for this message.. + + $uid = dss_rand(); + $uid = substr($uid, 0, BBCODE_UID_LEN); + + return $uid; +} + +function bbencode_first_pass($text, $uid) +{ + // pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0). + // This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it. + $text = " " . $text; + + // [CODE] and [/CODE] for posting code (HTML, PHP, C etc etc) in your posts. + $text = bbencode_first_pass_pda($text, $uid, '[code]', '[/code]', '', true, ''); + + // [QUOTE] and [/QUOTE] for posting replies with quote, or just for quoting stuff. + $text = bbencode_first_pass_pda($text, $uid, '[quote]', '[/quote]', '', false, ''); + $text = bbencode_first_pass_pda($text, $uid, '/\[quote=\\\\"(.*?)\\\\"\]/is', '[/quote]', '', false, '', "[quote:$uid=\\\"\\1\\\"]"); + + // [list] and [list=x] for (un)ordered lists. + $open_tag = array(); + $open_tag[0] = "[list]"; + + // unordered.. + $text = bbencode_first_pass_pda($text, $uid, $open_tag, "[/list]", "[/list:u]", false, 'replace_listitems'); + + $open_tag[0] = "[list=1]"; + $open_tag[1] = "[list=a]"; + + // ordered. + $text = bbencode_first_pass_pda($text, $uid, $open_tag, "[/list]", "[/list:o]", false, 'replace_listitems'); + + // [color] and [/color] for setting text color + $text = preg_replace("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "[color=\\1:$uid]\\2[/color:$uid]", $text); + + // [size] and [/size] for setting text size + $text = preg_replace("#\[size=([1-2]?[0-9])\](.*?)\[/size\]#si", "[size=\\1:$uid]\\2[/size:$uid]", $text); + + // [b] and [/b] for bolding text. + $text = preg_replace("#\[b\](.*?)\[/b\]#si", "[b:$uid]\\1[/b:$uid]", $text); + + // [u] and [/u] for underlining text. + $text = preg_replace("#\[u\](.*?)\[/u\]#si", "[u:$uid]\\1[/u:$uid]", $text); + + // [i] and [/i] for italicizing text. + $text = preg_replace("#\[i\](.*?)\[/i\]#si", "[i:$uid]\\1[/i:$uid]", $text); + + // [img]image_url_here[/img] code.. + $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text); + + // Remove our padding from the string.. + return substr($text, 1);; + +} // bbencode_first_pass() + +/** + * $text - The text to operate on. + * $uid - The UID to add to matching tags. + * $open_tag - The opening tag to match. Can be an array of opening tags. + * $close_tag - The closing tag to match. + * $close_tag_new - The closing tag to replace with. + * $mark_lowest_level - boolean - should we specially mark the tags that occur + * at the lowest level of nesting? (useful for [code], because + * we need to match these tags first and transform HTML tags + * in their contents.. + * $func - This variable should contain a string that is the name of a function. + * That function will be called when a match is found, and passed 2 + * parameters: ($text, $uid). The function should return a string. + * This is used when some transformation needs to be applied to the + * text INSIDE a pair of matching tags. If this variable is FALSE or the + * empty string, it will not be executed. + * If open_tag is an array, then the pda will try to match pairs consisting of + * any element of open_tag followed by close_tag. This allows us to match things + * like [list=A]...[/list] and [list=1]...[/list] in one pass of the PDA. + * + * NOTES: - this function assumes the first character of $text is a space. + * - every opening tag and closing tag must be of the [...] format. + */ +function bbencode_first_pass_pda($text, $uid, $open_tag, $close_tag, $close_tag_new, $mark_lowest_level, $func, $open_regexp_replace = false) +{ + $open_tag_count = 0; + + if (!$close_tag_new || ($close_tag_new == '')) + { + $close_tag_new = $close_tag; + } + + $close_tag_length = strlen($close_tag); + $close_tag_new_length = strlen($close_tag_new); + $uid_length = strlen($uid); + + $use_function_pointer = ($func && ($func != '')); + + $stack = array(); + + if (is_array($open_tag)) + { + if (0 == count($open_tag)) + { + // No opening tags to match, so return. + return $text; + } + $open_tag_count = count($open_tag); + } + else + { + // only one opening tag. make it into a 1-element array. + $open_tag_temp = $open_tag; + $open_tag = array(); + $open_tag[0] = $open_tag_temp; + $open_tag_count = 1; + } + + $open_is_regexp = false; + + if ($open_regexp_replace) + { + $open_is_regexp = true; + if (!is_array($open_regexp_replace)) + { + $open_regexp_temp = $open_regexp_replace; + $open_regexp_replace = array(); + $open_regexp_replace[0] = $open_regexp_temp; + } + } + + if ($mark_lowest_level && $open_is_regexp) + { + message_die(GENERAL_ERROR, "Unsupported operation for bbcode_first_pass_pda()."); + } + + // Start at the 2nd char of the string, looking for opening tags. + $curr_pos = 1; + while ($curr_pos && ($curr_pos < strlen($text))) + { + $curr_pos = strpos($text, "[", $curr_pos); + + // If not found, $curr_pos will be 0, and the loop will end. + if ($curr_pos) + { + // We found a [. It starts at $curr_pos. + // check if it's a starting or ending tag. + $found_start = false; + $which_start_tag = ""; + $start_tag_index = -1; + + for ($i = 0; $i < $open_tag_count; $i++) + { + // Grab everything until the first "]"... + $possible_start = substr($text, $curr_pos, strpos($text, ']', $curr_pos + 1) - $curr_pos + 1); + + // + // We're going to try and catch usernames with "[' characters. + // + if( preg_match('#\[quote=\\\"#si', $possible_start, $match) && !preg_match('#\[quote=\\\"(.*?)\\\"\]#si', $possible_start) ) + { + // OK we are in a quote tag that probably contains a ] bracket. + // Grab a bit more of the string to hopefully get all of it.. + if ($close_pos = strpos($text, '"]', $curr_pos + 14)) + { + if (strpos(substr($text, $curr_pos + 14, $close_pos - ($curr_pos + 14)), '[quote') === false) + { + $possible_start = substr($text, $curr_pos, $close_pos - $curr_pos + 7); + } + } + } + + // Now compare, either using regexp or not. + if ($open_is_regexp) + { + $match_result = array(); + if (preg_match($open_tag[$i], $possible_start, $match_result)) + { + $found_start = true; + $which_start_tag = $match_result[0]; + $start_tag_index = $i; + break; + } + } + else + { + // straightforward string comparison. + if (0 == strcasecmp($open_tag[$i], $possible_start)) + { + $found_start = true; + $which_start_tag = $open_tag[$i]; + $start_tag_index = $i; + break; + } + } + } + + if ($found_start) + { + // We have an opening tag. + // Push its position, the text we matched, and its index in the open_tag array on to the stack, and then keep going to the right. + $match = array("pos" => $curr_pos, "tag" => $which_start_tag, "index" => $start_tag_index); + array_push($stack, $match); + // + // Rather than just increment $curr_pos + // Set it to the ending of the tag we just found + // Keeps error in nested tag from breaking out + // of table structure.. + // + $curr_pos += strlen($possible_start); + } + else + { + // check for a closing tag.. + $possible_end = substr($text, $curr_pos, $close_tag_length); + if (0 == strcasecmp($close_tag, $possible_end)) + { + // We have an ending tag. + // Check if we've already found a matching starting tag. + if (sizeof($stack) > 0) + { + // There exists a starting tag. + $curr_nesting_depth = sizeof($stack); + // We need to do 2 replacements now. + $match = array_pop($stack); + $start_index = $match['pos']; + $start_tag = $match['tag']; + $start_length = strlen($start_tag); + $start_tag_index = $match['index']; + + if ($open_is_regexp) + { + $start_tag = preg_replace($open_tag[$start_tag_index], $open_regexp_replace[$start_tag_index], $start_tag); + } + + // everything before the opening tag. + $before_start_tag = substr($text, 0, $start_index); + + // everything after the opening tag, but before the closing tag. + $between_tags = substr($text, $start_index + $start_length, $curr_pos - $start_index - $start_length); + + // Run the given function on the text between the tags.. + if ($use_function_pointer) + { + $between_tags = $func($between_tags, $uid); + } + + // everything after the closing tag. + $after_end_tag = substr($text, $curr_pos + $close_tag_length); + + // Mark the lowest nesting level if needed. + if ($mark_lowest_level && ($curr_nesting_depth == 1)) + { + if ($open_tag[0] == '[code]') + { + $code_entities_match = array('#<#', '#>#', '#"#', '#:#', '#\[#', '#\]#', '#\(#', '#\)#', '#\{#', '#\}#'); + $code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}'); + $between_tags = preg_replace($code_entities_match, $code_entities_replace, $between_tags); + } + $text = $before_start_tag . substr($start_tag, 0, $start_length - 1) . ":$curr_nesting_depth:$uid]"; + $text .= $between_tags . substr($close_tag_new, 0, $close_tag_new_length - 1) . ":$curr_nesting_depth:$uid]"; + } + else + { + if ($open_tag[0] == '[code]') + { + $text = $before_start_tag . '[code]'; + $text .= $between_tags . '[/code]'; + } + else + { + if ($open_is_regexp) + { + $text = $before_start_tag . $start_tag; + } + else + { + $text = $before_start_tag . substr($start_tag, 0, $start_length - 1) . ":$uid]"; + } + $text .= $between_tags . substr($close_tag_new, 0, $close_tag_new_length - 1) . ":$uid]"; + } + } + + $text .= $after_end_tag; + + // Now.. we've screwed up the indices by changing the length of the string. + // So, if there's anything in the stack, we want to resume searching just after it. + // otherwise, we go back to the start. + if (sizeof($stack) > 0) + { + $match = array_pop($stack); + $curr_pos = $match['pos']; +// bbcode_array_push($stack, $match); +// ++$curr_pos; + } + else + { + $curr_pos = 1; + } + } + else + { + // No matching start tag found. Increment pos, keep going. + ++$curr_pos; + } + } + else + { + // No starting tag or ending tag.. Increment pos, keep looping., + ++$curr_pos; + } + } + } + } // while + + return $text; + +} // bbencode_first_pass_pda() + +/** + * Does second-pass bbencoding of the [code] tags. This includes + * running htmlspecialchars() over the text contained between + * any pair of [code] tags that are at the first level of + * nesting. Tags at the first level of nesting are indicated + * by this format: [code:1:$uid] ... [/code:1:$uid] + * Other tags are in this format: [code:$uid] ... [/code:$uid] + */ +function bbencode_second_pass_code($text, $uid, $bbcode_tpl) +{ + global $lang; + + $code_start_html = $bbcode_tpl['code_open']; + $code_end_html = $bbcode_tpl['code_close']; + + // First, do all the 1st-level matches. These need an htmlspecialchars() run, + // so they have to be handled differently. + $match_count = preg_match_all("#\[code:1:$uid\](.*?)\[/code:1:$uid\]#si", $text, $matches); + + for ($i = 0; $i < $match_count; $i++) + { + $before_replace = $matches[1][$i]; + $after_replace = $matches[1][$i]; + + // Replace 2 spaces with "  " so non-tabbed code indents without making huge long lines. + $after_replace = str_replace(" ", "  ", $after_replace); + // now Replace 2 spaces with "  " to catch odd #s of spaces. + $after_replace = str_replace(" ", "  ", $after_replace); + + // Replace tabs with "   " so tabbed code indents sorta right without making huge long lines. + $after_replace = str_replace("\t", "   ", $after_replace); + + // now Replace space occurring at the beginning of a line + $after_replace = preg_replace("/^ {1}/m", ' ', $after_replace); + + $str_to_match = "[code:1:$uid]" . $before_replace . "[/code:1:$uid]"; + + $replacement = $code_start_html; + $replacement .= $after_replace; + $replacement .= $code_end_html; + + $text = str_replace($str_to_match, $replacement, $text); + } + + // Now, do all the non-first-level matches. These are simple. + $text = str_replace("[code:$uid]", $code_start_html, $text); + $text = str_replace("[/code:$uid]", $code_end_html, $text); + + return $text; + +} // bbencode_second_pass_code() + +/** + * Rewritten by Nathan Codding - Feb 6, 2001. + * - Goes through the given string, and replaces xxxx://yyyy with an HTML tag linking + * to that URL + * - Goes through the given string, and replaces www.xxxx.yyyy[zzzz] with an HTML tag linking + * to http://www.xxxx.yyyy[/zzzz] + * - Goes through the given string, and replaces xxxx@yyyy with an HTML mailto: tag linking + * to that email address + * - Only matches these 2 patterns either after a space, or at the beginning of a line + * + * Notes: the email one might get annoying - it's easy to make it more restrictive, though.. maybe + * have it require something like xxxx@yyyy.zzzz or such. We'll see. + */ +function make_clickable($text) +{ + $text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text); + + // pad it with a space so we can match things at the start of the 1st line. + $ret = ' ' . $text; + + // matches an "xxxx://yyyy" URL at the start of a line, or after a space. + // xxxx can only be alpha characters. + // yyyy is anything up to the first space, newline, comma, double quote or < + $ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1\\2", $ret); + + // matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing + // Must contain at least 2 dots. xxxx contains either alphanum, or "-" + // zzzz is optional.. will contain everything up to the first space, newline, + // comma, double quote or <. + $ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1\\2", $ret); + + // matches an email@domain type address at the start of a line, or after a space. + // Note: Only the followed chars are valid; alphanums, "-", "_" and or ".". + $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1\\2@\\3", $ret); + + // Remove our padding.. + $ret = substr($ret, 1); + + return($ret); +} + +/** + * Nathan Codding - Feb 6, 2001 + * Reverses the effects of make_clickable(), for use in editpost. + * - Does not distinguish between "www.xxxx.yyyy" and "http://aaaa.bbbb" type URLs. + * + */ +function undo_make_clickable($text) +{ + $text = preg_replace("#.*?#i", "\\1", $text); + $text = preg_replace("#.*?#i", "\\1", $text); + + return $text; + +} + +/** + * Nathan Codding - August 24, 2000. + * Takes a string, and does the reverse of the PHP standard function + * htmlspecialchars(). + */ +function undo_htmlspecialchars($input) +{ + $input = preg_replace("/>/i", ">", $input); + $input = preg_replace("/</i", "<", $input); + $input = preg_replace("/"/i", "\"", $input); + $input = preg_replace("/&/i", "&", $input); + + return $input; +} + +/** + * This is used to change a [*] tag into a [*:$uid] tag as part + * of the first-pass bbencoding of [list] tags. It fits the + * standard required in order to be passed as a variable + * function into bbencode_first_pass_pda(). + */ +function replace_listitems($text, $uid) +{ + $text = str_replace("[*]", "[*:$uid]", $text); + + return $text; +} + +/** + * Escapes the "/" character with "\/". This is useful when you need + * to stick a runtime string into a PREG regexp that is being delimited + * with slashes. + */ +function escape_slashes($input) +{ + $output = str_replace('/', '\/', $input); + return $output; +} + +/** + * This function does exactly what the PHP4 function array_push() does + * however, to keep phpBB compatable with PHP 3 we had to come up with our own + * method of doing it. + * This function was deprecated in phpBB 2.0.18 + */ +function bbcode_array_push(&$stack, $value) +{ + $stack[] = $value; + return(sizeof($stack)); +} + +/** + * This function does exactly what the PHP4 function array_pop() does + * however, to keep phpBB compatable with PHP 3 we had to come up with our own + * method of doing it. + * This function was deprecated in phpBB 2.0.18 + */ +function bbcode_array_pop(&$stack) +{ + $arrSize = count($stack); + $x = 1; + + while(list($key, $val) = each($stack)) + { + if($x < count($stack)) + { + $tmpArr[] = $val; + } + else + { + $return_val = $val; + } + $x++; + } + $stack = $tmpArr; + + return($return_val); +} + +// +// Smilies code ... would this be better tagged on to the end of bbcode.php? +// Probably so and I'll move it before B2 +// +function smilies_pass($message) +{ + static $orig, $repl; + + if (!isset($orig)) + { + global $db, $board_config; + $orig = $repl = array(); + + $sql = 'SELECT * FROM ' . SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql); + } + $smilies = $db->sql_fetchrowset($result); + + if (count($smilies)) + { + usort($smilies, 'smiley_sort'); + } + + for ($i = 0; $i < count($smilies); $i++) + { + $orig[] = "/(?<=.\W|\W.|^\W)" . preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/"; + $repl[] = '' . $smilies[$i]['emoticon'] . ''; + } + } + + if (count($orig)) + { + $message = preg_replace($orig, $repl, ' ' . $message . ' '); + $message = substr($message, 1, -1); + } + + return $message; +} + +function smiley_sort($a, $b) +{ + if ( strlen($a['code']) == strlen($b['code']) ) + { + return 0; + } + + return ( strlen($a['code']) > strlen($b['code']) ) ? -1 : 1; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/constants.php b/phpBB2/includes/constants.php new file mode 100644 index 0000000..53e4221 --- /dev/null +++ b/phpBB2/includes/constants.php @@ -0,0 +1,183 @@ + \ No newline at end of file diff --git a/phpBB2/includes/db.php b/phpBB2/includes/db.php new file mode 100644 index 0000000..89c18c2 --- /dev/null +++ b/phpBB2/includes/db.php @@ -0,0 +1,66 @@ +db_connect_id) +{ + message_die(CRITICAL_ERROR, "Could not connect to the database"); +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/emailer.php b/phpBB2/includes/emailer.php new file mode 100644 index 0000000..3bde05a --- /dev/null +++ b/phpBB2/includes/emailer.php @@ -0,0 +1,373 @@ +reset(); + $this->use_smtp = $use_smtp; + $this->reply_to = $this->from = ''; + } + + // Resets all the data (address, template file, etc etc to default + function reset() + { + $this->addresses = array(); + $this->vars = $this->msg = $this->extra_headers = ''; + } + + // Sets an email address to send to + function email_address($address) + { + $this->addresses['to'] = trim($address); + } + + function cc($address) + { + $this->addresses['cc'][] = trim($address); + } + + function bcc($address) + { + $this->addresses['bcc'][] = trim($address); + } + + function replyto($address) + { + $this->reply_to = trim($address); + } + + function from($address) + { + $this->from = trim($address); + } + + // set up subject for mail + function set_subject($subject = '') + { + $this->subject = trim(preg_replace('#[\n\r]+#s', '', $subject)); + } + + // set up extra mail headers + function extra_headers($headers) + { + $this->extra_headers .= trim($headers) . "\n"; + } + + function use_template($template_file, $template_lang = '') + { + global $board_config, $phpbb_root_path; + + if (trim($template_file) == '') + { + message_die(GENERAL_ERROR, 'No template file set', '', __LINE__, __FILE__); + } + + if (trim($template_lang) == '') + { + $template_lang = $board_config['default_lang']; + } + + if (empty($this->tpl_msg[$template_lang . $template_file])) + { + $tpl_file = $phpbb_root_path . 'language/lang_' . $template_lang . '/email/' . $template_file . '.tpl'; + + if (!@file_exists(@phpbb_realpath($tpl_file))) + { + $tpl_file = $phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/email/' . $template_file . '.tpl'; + + if (!@file_exists(@phpbb_realpath($tpl_file))) + { + message_die(GENERAL_ERROR, 'Could not find email template file :: ' . $template_file, '', __LINE__, __FILE__); + } + } + + if (!($fd = @fopen($tpl_file, 'r'))) + { + message_die(GENERAL_ERROR, 'Failed opening template file :: ' . $tpl_file, '', __LINE__, __FILE__); + } + + $this->tpl_msg[$template_lang . $template_file] = fread($fd, filesize($tpl_file)); + fclose($fd); + } + + $this->msg = $this->tpl_msg[$template_lang . $template_file]; + + return true; + } + + // assign variables + function assign_vars($vars) + { + $this->vars = (empty($this->vars)) ? $vars : $this->vars . $vars; + } + + // Send the mail out to the recipients set previously in var $this->address + function send() + { + global $board_config, $lang, $phpEx, $phpbb_root_path, $db; + + // Escape all quotes, else the eval will fail. + $this->msg = str_replace ("'", "\'", $this->msg); + $this->msg = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->msg); + + // Set vars + reset ($this->vars); + while (list($key, $val) = each($this->vars)) + { + $$key = $val; + } + + eval("\$this->msg = '$this->msg';"); + + // Clear vars + reset ($this->vars); + while (list($key, $val) = each($this->vars)) + { + unset($$key); + } + + // We now try and pull a subject from the email body ... if it exists, + // do this here because the subject may contain a variable + $drop_header = ''; + $match = array(); + if (preg_match('#^(Subject:(.*?))$#m', $this->msg, $match)) + { + $this->subject = (trim($match[2]) != '') ? trim($match[2]) : (($this->subject != '') ? $this->subject : 'No Subject'); + $drop_header .= '[\r\n]*?' . preg_quote($match[1], '#'); + } + else + { + $this->subject = (($this->subject != '') ? $this->subject : 'No Subject'); + } + + if (preg_match('#^(Charset:(.*?))$#m', $this->msg, $match)) + { + $this->encoding = (trim($match[2]) != '') ? trim($match[2]) : trim($lang['ENCODING']); + $drop_header .= '[\r\n]*?' . preg_quote($match[1], '#'); + } + else + { + $this->encoding = trim($lang['ENCODING']); + } + + if ($drop_header != '') + { + $this->msg = trim(preg_replace('#' . $drop_header . '#s', '', $this->msg)); + } + + $to = $this->addresses['to']; + + $cc = (count($this->addresses['cc'])) ? implode(', ', $this->addresses['cc']) : ''; + $bcc = (count($this->addresses['bcc'])) ? implode(', ', $this->addresses['bcc']) : ''; + + // Build header + $this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $board_config['board_email'] . "\n") . "Return-Path: " . $board_config['board_email'] . "\nMessage-ID: <" . md5(uniqid(time())) . "@" . $board_config['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/plain; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', time()) . "\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\nX-MimeOLE: Produced By phpBB2\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : ''); + + // Send message ... removed $this->encode() from subject for time being + if ( $this->use_smtp ) + { + if ( !defined('SMTP_INCLUDED') ) + { + include($phpbb_root_path . 'includes/smtp.' . $phpEx); + } + + $result = smtpmail($to, $this->subject, $this->msg, $this->extra_headers); + } + else + { + $empty_to_header = ($to == '') ? TRUE : FALSE; + $to = ($to == '') ? (($board_config['sendmail_fix']) ? ' ' : 'Undisclosed-recipients:;') : $to; + + $result = @mail($to, $this->subject, preg_replace("#(?msg), $this->extra_headers); + + if (!$result && !$board_config['sendmail_fix'] && $empty_to_header) + { + $to = ' '; + + $sql = "UPDATE " . CONFIG_TABLE . " + SET config_value = '1' + WHERE config_name = 'sendmail_fix'"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Unable to update config table', '', __LINE__, __FILE__, $sql); + } + + $board_config['sendmail_fix'] = 1; + $result = @mail($to, $this->subject, preg_replace("#(?msg), $this->extra_headers); + } + } + + // Did it work? + if (!$result) + { + message_die(GENERAL_ERROR, 'Failed sending email :: ' . (($this->use_smtp) ? 'SMTP' : 'PHP') . ' :: ' . $result, '', __LINE__, __FILE__); + } + + return true; + } + + // Encodes the given string for proper display for this encoding ... nabbed + // from php.net and modified. There is an alternative encoding method which + // may produce lesd output but it's questionable as to its worth in this + // scenario IMO + function encode($str) + { + if ($this->encoding == '') + { + return $str; + } + + // define start delimimter, end delimiter and spacer + $end = "?="; + $start = "=?$this->encoding?B?"; + $spacer = "$end\r\n $start"; + + // determine length of encoded text within chunks and ensure length is even + $length = 75 - strlen($start) - strlen($end); + $length = floor($length / 2) * 2; + + // encode the string and split it into chunks with spacers after each chunk + $str = chunk_split(base64_encode($str), $length, $spacer); + + // remove trailing spacer and add start and end delimiters + $str = preg_replace('#' . preg_quote($spacer, '#') . '$#', '', $str); + + return $start . $str . $end; + } + + // + // Attach files via MIME. + // + function attachFile($filename, $mimetype = "application/octet-stream", $szFromAddress, $szFilenameToDisplay) + { + global $lang; + $mime_boundary = "--==================_846811060==_"; + + $this->msg = '--' . $mime_boundary . "\nContent-Type: text/plain;\n\tcharset=\"" . $lang['ENCODING'] . "\"\n\n" . $this->msg; + + if ($mime_filename) + { + $filename = $mime_filename; + $encoded = $this->encode_file($filename); + } + + $fd = fopen($filename, "r"); + $contents = fread($fd, filesize($filename)); + + $this->mimeOut = "--" . $mime_boundary . "\n"; + $this->mimeOut .= "Content-Type: " . $mimetype . ";\n\tname=\"$szFilenameToDisplay\"\n"; + $this->mimeOut .= "Content-Transfer-Encoding: quoted-printable\n"; + $this->mimeOut .= "Content-Disposition: attachment;\n\tfilename=\"$szFilenameToDisplay\"\n\n"; + + if ( $mimetype == "message/rfc822" ) + { + $this->mimeOut .= "From: ".$szFromAddress."\n"; + $this->mimeOut .= "To: ".$this->emailAddress."\n"; + $this->mimeOut .= "Date: ".date("D, d M Y H:i:s") . " UT\n"; + $this->mimeOut .= "Reply-To:".$szFromAddress."\n"; + $this->mimeOut .= "Subject: ".$this->mailSubject."\n"; + $this->mimeOut .= "X-Mailer: PHP/".phpversion()."\n"; + $this->mimeOut .= "MIME-Version: 1.0\n"; + } + + $this->mimeOut .= $contents."\n"; + $this->mimeOut .= "--" . $mime_boundary . "--" . "\n"; + + return $out; + // added -- to notify email client attachment is done + } + + function getMimeHeaders($filename, $mime_filename="") + { + $mime_boundary = "--==================_846811060==_"; + + if ($mime_filename) + { + $filename = $mime_filename; + } + + $out = "MIME-Version: 1.0\n"; + $out .= "Content-Type: multipart/mixed;\n\tboundary=\"$mime_boundary\"\n\n"; + $out .= "This message is in MIME format. Since your mail reader does not understand\n"; + $out .= "this format, some or all of this message may not be legible."; + + return $out; + } + + // + // Split string by RFC 2045 semantics (76 chars per line, end with \r\n). + // + function myChunkSplit($str) + { + $stmp = $str; + $len = strlen($stmp); + $out = ""; + + while ($len > 0) + { + if ($len >= 76) + { + $out .= substr($stmp, 0, 76) . "\r\n"; + $stmp = substr($stmp, 76); + $len = $len - 76; + } + else + { + $out .= $stmp . "\r\n"; + $stmp = ""; + $len = 0; + } + } + return $out; + } + + // + // Split the specified file up into a string and return it + // + function encode_file($sourcefile) + { + if (is_readable(phpbb_realpath($sourcefile))) + { + $fd = fopen($sourcefile, "r"); + $contents = fread($fd, filesize($sourcefile)); + $encoded = $this->myChunkSplit(base64_encode($contents)); + fclose($fd); + } + + return $encoded; + } + +} // class emailer + +?> \ No newline at end of file diff --git a/phpBB2/includes/functions.php b/phpBB2/includes/functions.php new file mode 100644 index 0000000..c32c11a --- /dev/null +++ b/phpBB2/includes/functions.php @@ -0,0 +1,945 @@ + " . ANONYMOUS; + break; + + case 'newestuser': + $sql = "SELECT user_id, username + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + ORDER BY user_id DESC + LIMIT 1"; + break; + + case 'postcount': + case 'topiccount': + $sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total + FROM " . FORUMS_TABLE; + break; + } + + if ( !($result = $db->sql_query($sql)) ) + { + return false; + } + + $row = $db->sql_fetchrow($result); + + switch ( $mode ) + { + case 'usercount': + return $row['total']; + break; + case 'newestuser': + return $row; + break; + case 'postcount': + return $row['post_total']; + break; + case 'topiccount': + return $row['topic_total']; + break; + } + + return false; +} + +// added at phpBB 2.0.11 to properly format the username +function phpbb_clean_username($username) +{ + $username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25); + $username = phpbb_rtrim($username, "\\"); + $username = str_replace("'", "\'", $username); + + return $username; +} + +/** +* This function is a wrapper for ltrim, as charlist is only supported in php >= 4.1.0 +* Added in phpBB 2.0.18 +*/ +function phpbb_ltrim($str, $charlist = false) +{ + if ($charlist === false) + { + return ltrim($str); + } + + $php_version = explode('.', PHP_VERSION); + + // php version < 4.1.0 + if ((int) $php_version[0] < 4 || ((int) $php_version[0] == 4 && (int) $php_version[1] < 1)) + { + while ($str{0} == $charlist) + { + $str = substr($str, 1); + } + } + else + { + $str = ltrim($str, $charlist); + } + + return $str; +} + +// added at phpBB 2.0.12 to fix a bug in PHP 4.3.10 (only supporting charlist in php >= 4.1.0) +function phpbb_rtrim($str, $charlist = false) +{ + if ($charlist === false) + { + return rtrim($str); + } + + $php_version = explode('.', PHP_VERSION); + + // php version < 4.1.0 + if ((int) $php_version[0] < 4 || ((int) $php_version[0] == 4 && (int) $php_version[1] < 1)) + { + while ($str{strlen($str)-1} == $charlist) + { + $str = substr($str, 0, strlen($str)-1); + } + } + else + { + $str = rtrim($str, $charlist); + } + + return $str; +} + +/** +* Our own generator of random values +* This uses a constantly changing value as the base for generating the values +* The board wide setting is updated once per page if this code is called +* With thanks to Anthrax101 for the inspiration on this one +* Added in phpBB 2.0.20 +*/ +function dss_rand() +{ + global $db, $board_config, $dss_seeded; + + $val = $board_config['rand_seed'] . microtime(); + $val = md5($val); + $board_config['rand_seed'] = md5($board_config['rand_seed'] . $val . 'a'); + + if($dss_seeded !== true) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET + config_value = '" . $board_config['rand_seed'] . "' + WHERE config_name = 'rand_seed'"; + + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Unable to reseed PRNG", "", __LINE__, __FILE__, $sql); + } + + $dss_seeded = true; + } + + return substr($val, 4, 16); +} +// +// Get Userdata, $user can be username or user_id. If force_str is true, the username will be forced. +// +function get_userdata($user, $force_str = false) +{ + global $db; + + if (!is_numeric($user) || $force_str) + { + $user = phpbb_clean_username($user); + } + else + { + $user = intval($user); + } + + $sql = "SELECT * + FROM " . USERS_TABLE . " + WHERE "; + $sql .= ( ( is_integer($user) ) ? "user_id = $user" : "username = '" . str_replace("\'", "''", $user) . "'" ) . " AND user_id <> " . ANONYMOUS; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Tried obtaining data for a non-existent user', '', __LINE__, __FILE__, $sql); + } + + return ( $row = $db->sql_fetchrow($result) ) ? $row : false; +} + +function make_jumpbox($action, $match_forum_id = 0) +{ + global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID; + +// $is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); + + $sql = "SELECT c.cat_id, c.cat_title, c.cat_order + FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f + WHERE f.cat_id = c.cat_id + GROUP BY c.cat_id, c.cat_title, c.cat_order + ORDER BY c.cat_order"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql); + } + + $category_rows = array(); + while ( $row = $db->sql_fetchrow($result) ) + { + $category_rows[] = $row; + } + + if ( $total_categories = count($category_rows) ) + { + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + ORDER BY cat_id, forum_order"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); + } + + $boxstring = ''; + } + else + { + $boxstring .= ''; + } + + // Let the jumpbox work again in sites having additional session id checks. +// if ( !empty($SID) ) +// { + $boxstring .= ''; +// } + + $template->set_filenames(array( + 'jumpbox' => 'jumpbox.tpl') + ); + $template->assign_vars(array( + 'L_GO' => $lang['Go'], + 'L_JUMP_TO' => $lang['Jump_to'], + 'L_SELECT_FORUM' => $lang['Select_forum'], + + 'S_JUMPBOX_SELECT' => $boxstring, + 'S_JUMPBOX_ACTION' => append_sid($action)) + ); + $template->assign_var_from_handle('JUMPBOX', 'jumpbox'); + + return; +} + +// +// Initialise user settings on page load +function init_userprefs($userdata) +{ + global $board_config, $theme, $images; + global $template, $lang, $phpEx, $phpbb_root_path, $db; + global $nav_links; + + if ( $userdata['user_id'] != ANONYMOUS ) + { + if ( !empty($userdata['user_lang'])) + { + $default_lang = phpbb_ltrim(basename(phpbb_rtrim($userdata['user_lang'])), "'"); + } + + if ( !empty($userdata['user_dateformat']) ) + { + $board_config['default_dateformat'] = $userdata['user_dateformat']; + } + + if ( isset($userdata['user_timezone']) ) + { + $board_config['board_timezone'] = $userdata['user_timezone']; + } + } + else + { + $default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'"); + } + + if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $default_lang . '/lang_main.'.$phpEx)) ) + { + if ( $userdata['user_id'] != ANONYMOUS ) + { + // For logged in users, try the board default language next + $default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'"); + } + else + { + // For guests it means the default language is not present, try english + // This is a long shot since it means serious errors in the setup to reach here, + // but english is part of a new install so it's worth us trying + $default_lang = 'english'; + } + + if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $default_lang . '/lang_main.'.$phpEx)) ) + { + message_die(CRITICAL_ERROR, 'Could not locate valid language pack'); + } + } + + // If we've had to change the value in any way then let's write it back to the database + // before we go any further since it means there is something wrong with it + if ( $userdata['user_id'] != ANONYMOUS && $userdata['user_lang'] !== $default_lang ) + { + $sql = 'UPDATE ' . USERS_TABLE . " + SET user_lang = '" . $default_lang . "' + WHERE user_lang = '" . $userdata['user_lang'] . "'"; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not update user language info'); + } + + $userdata['user_lang'] = $default_lang; + } + elseif ( $userdata['user_id'] === ANONYMOUS && $board_config['default_lang'] !== $default_lang ) + { + $sql = 'UPDATE ' . CONFIG_TABLE . " + SET config_value = '" . $default_lang . "' + WHERE config_name = 'default_lang'"; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not update user language info'); + } + } + + $board_config['default_lang'] = $default_lang; + + include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx); + + if ( defined('IN_ADMIN') ) + { + if( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.'.$phpEx)) ) + { + $board_config['default_lang'] = 'english'; + } + + include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx); + } + + // + // Set up style + // + if ( !$board_config['override_user_style'] ) + { + if ( $userdata['user_id'] != ANONYMOUS && $userdata['user_style'] > 0 ) + { + if ( $theme = setup_style($userdata['user_style']) ) + { + return; + } + } + } + + $theme = setup_style($board_config['default_style']); + + // + // Mozilla navigation bar + // Default items that should be valid on all pages. + // Defined here to correctly assign the Language Variables + // and be able to change the variables within code. + // + $nav_links['top'] = array ( + 'url' => append_sid($phpbb_root_path . 'index.' . $phpEx), + 'title' => sprintf($lang['Forum_Index'], $board_config['sitename']) + ); + $nav_links['search'] = array ( + 'url' => append_sid($phpbb_root_path . 'search.' . $phpEx), + 'title' => $lang['Search'] + ); + $nav_links['help'] = array ( + 'url' => append_sid($phpbb_root_path . 'faq.' . $phpEx), + 'title' => $lang['FAQ'] + ); + $nav_links['author'] = array ( + 'url' => append_sid($phpbb_root_path . 'memberlist.' . $phpEx), + 'title' => $lang['Memberlist'] + ); + + return; +} + +function setup_style($style) +{ + global $db, $board_config, $template, $images, $phpbb_root_path; + + $sql = 'SELECT * + FROM ' . THEMES_TABLE . ' + WHERE themes_id = ' . (int) $style; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not query database for theme info'); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + // We are trying to setup a style which does not exist in the database + // Try to fallback to the board default (if the user had a custom style) + // and then any users using this style to the default if it succeeds + if ( $style != $board_config['default_style']) + { + $sql = 'SELECT * + FROM ' . THEMES_TABLE . ' + WHERE themes_id = ' . (int) $board_config['default_style']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not query database for theme info'); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $db->sql_freeresult($result); + + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_style = ' . (int) $board_config['default_style'] . " + WHERE user_style = $style"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not update user theme info'); + } + } + else + { + message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]"); + } + } + else + { + message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]"); + } + } + + $template_path = 'templates/' ; + $template_name = $row['template_name'] ; + + $template = new Template($phpbb_root_path . $template_path . $template_name); + + if ( $template ) + { + $current_template_path = $template_path . $template_name; + @include($phpbb_root_path . $template_path . $template_name . '/' . $template_name . '.cfg'); + + if ( !defined('TEMPLATE_CONFIG') ) + { + message_die(CRITICAL_ERROR, "Could not open $template_name template config file", '', __LINE__, __FILE__); + } + + $img_lang = ( file_exists(@phpbb_realpath($phpbb_root_path . $current_template_path . '/images/lang_' . $board_config['default_lang'])) ) ? $board_config['default_lang'] : 'english'; + + while( list($key, $value) = @each($images) ) + { + if ( !is_array($value) ) + { + $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value); + } + } + } + + return $row; +} + +function encode_ip($dotquad_ip) +{ + $ip_sep = explode('.', $dotquad_ip); + return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]); +} + +function decode_ip($int_ip) +{ + $hexipbang = explode('.', chunk_split($int_ip, 2, '.')); + return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]); +} + +// +// Create date/time from format and timezone +// +function create_date($format, $gmepoch, $tz) +{ + global $board_config, $lang; + static $translate; + + if ( empty($translate) && $board_config['default_lang'] != 'english' ) + { + @reset($lang['datetime']); + while ( list($match, $replace) = @each($lang['datetime']) ) + { + $translate[$match] = $replace; + } + } + + return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz)); +} + +// +// Pagination routine, generates +// page number sequence +// +function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE) +{ + global $lang; + + $total_pages = ceil($num_items/$per_page); + + if ( $total_pages == 1 ) + { + return ''; + } + + $on_page = floor($start_item / $per_page) + 1; + + $page_string = ''; + if ( $total_pages > 10 ) + { + $init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages; + + for($i = 1; $i < $init_page_max + 1; $i++) + { + $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; + if ( $i < $init_page_max ) + { + $page_string .= ", "; + } + } + + if ( $total_pages > 3 ) + { + if ( $on_page > 1 && $on_page < $total_pages ) + { + $page_string .= ( $on_page > 5 ) ? ' ... ' : ', '; + + $init_page_min = ( $on_page > 4 ) ? $on_page : 5; + $init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4; + + for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++) + { + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + if ( $i < $init_page_max + 1 ) + { + $page_string .= ', '; + } + } + + $page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', '; + } + else + { + $page_string .= ' ... '; + } + + for($i = $total_pages - 2; $i < $total_pages + 1; $i++) + { + $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; + if( $i < $total_pages ) + { + $page_string .= ", "; + } + } + } + } + else + { + for($i = 1; $i < $total_pages + 1; $i++) + { + $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; + if ( $i < $total_pages ) + { + $page_string .= ', '; + } + } + } + + if ( $add_prevnext_text ) + { + if ( $on_page > 1 ) + { + $page_string = ' ' . $lang['Previous'] . '  ' . $page_string; + } + + if ( $on_page < $total_pages ) + { + $page_string .= '  ' . $lang['Next'] . ''; + } + + } + + $page_string = $lang['Goto_page'] . ' ' . $page_string; + + return $page_string; +} + +// +// This does exactly what preg_quote() does in PHP 4-ish +// If you just need the 1-parameter preg_quote call, then don't bother using this. +// +function phpbb_preg_quote($str, $delimiter) +{ + $text = preg_quote($str); + $text = str_replace($delimiter, '\\' . $delimiter, $text); + + return $text; +} + +// +// Obtain list of naughty words and build preg style replacement arrays for use by the +// calling script, note that the vars are passed as references this just makes it easier +// to return both sets of arrays +// +function obtain_word_list(&$orig_word, &$replacement_word) +{ + global $db; + + // + // Define censored word matches + // + $sql = "SELECT word, replacement + FROM " . WORDS_TABLE; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get censored words from database', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + $orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i'; + $replacement_word[] = $row['replacement']; + } + while ( $row = $db->sql_fetchrow($result) ); + } + + return true; +} + +// +// This is general replacement for die(), allows templated +// output in users (or default) language, etc. +// +// $msg_code can be one of these constants: +// +// GENERAL_MESSAGE : Use for any simple text message, eg. results +// of an operation, authorisation failures, etc. +// +// GENERAL ERROR : Use for any error which occurs _AFTER_ the +// common.php include and session code, ie. most errors in +// pages/functions +// +// CRITICAL_MESSAGE : Used when basic config data is available but +// a session may not exist, eg. banned users +// +// CRITICAL_ERROR : Used when config data cannot be obtained, eg +// no database connection. Should _not_ be used in 99.5% of cases +// +function message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '', $err_file = '', $sql = '') +{ + global $db, $template, $board_config, $theme, $lang, $phpEx, $phpbb_root_path, $nav_links, $gen_simple_header, $images; + global $userdata, $user_ip, $session_length; + global $starttime; + + if(defined('HAS_DIED')) + { + die("message_die() was called multiple times. This isn't supposed to happen. Was message_die() used in page_tail.php?"); + } + + define('HAS_DIED', 1); + + + $sql_store = $sql; + + // + // Get SQL error if we are debugging. Do this as soon as possible to prevent + // subsequent queries from overwriting the status of sql_error() + // + if ( DEBUG && ( $msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR ) ) + { + $sql_error = $db->sql_error(); + + $debug_text = ''; + + if ( $sql_error['message'] != '' ) + { + $debug_text .= '

SQL Error : ' . $sql_error['code'] . ' ' . $sql_error['message']; + } + + if ( $sql_store != '' ) + { + $debug_text .= "

$sql_store"; + } + + if ( $err_line != '' && $err_file != '' ) + { + $debug_text .= '

Line : ' . $err_line . '
File : ' . basename($err_file); + } + } + + if( empty($userdata) && ( $msg_code == GENERAL_MESSAGE || $msg_code == GENERAL_ERROR ) ) + { + $userdata = session_pagestart($user_ip, PAGE_INDEX); + init_userprefs($userdata); + } + + // + // If the header hasn't been output then do it + // + if ( !defined('HEADER_INC') && $msg_code != CRITICAL_ERROR ) + { + if ( empty($lang) ) + { + if ( !empty($board_config['default_lang']) ) + { + include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx); + } + else + { + include($phpbb_root_path . 'language/lang_english/lang_main.'.$phpEx); + } + } + + if ( empty($template) || empty($theme) ) + { + $theme = setup_style($board_config['default_style']); + } + + // + // Load the Page Header + // + if ( !defined('IN_ADMIN') ) + { + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + } + else + { + include($phpbb_root_path . 'admin/page_header_admin.'.$phpEx); + } + } + + switch($msg_code) + { + case GENERAL_MESSAGE: + if ( $msg_title == '' ) + { + $msg_title = $lang['Information']; + } + break; + + case CRITICAL_MESSAGE: + if ( $msg_title == '' ) + { + $msg_title = $lang['Critical_Information']; + } + break; + + case GENERAL_ERROR: + if ( $msg_text == '' ) + { + $msg_text = $lang['An_error_occured']; + } + + if ( $msg_title == '' ) + { + $msg_title = $lang['General_Error']; + } + break; + + case CRITICAL_ERROR: + // + // Critical errors mean we cannot rely on _ANY_ DB information being + // available so we're going to dump out a simple echo'd statement + // + include($phpbb_root_path . 'language/lang_english/lang_main.'.$phpEx); + + if ( $msg_text == '' ) + { + $msg_text = $lang['A_critical_error']; + } + + if ( $msg_title == '' ) + { + $msg_title = 'phpBB : ' . $lang['Critical_Error'] . ''; + } + break; + } + + // + // Add on DEBUG info if we've enabled debug mode and this is an error. This + // prevents debug info being output for general messages should DEBUG be + // set TRUE by accident (preventing confusion for the end user!) + // + if ( DEBUG && ( $msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR ) ) + { + if ( $debug_text != '' ) + { + $msg_text = $msg_text . '

DEBUG MODE' . $debug_text; + } + } + + if ( $msg_code != CRITICAL_ERROR ) + { + if ( !empty($lang[$msg_text]) ) + { + $msg_text = $lang[$msg_text]; + } + + if ( !defined('IN_ADMIN') ) + { + $template->set_filenames(array( + 'message_body' => 'message_body.tpl') + ); + } + else + { + $template->set_filenames(array( + 'message_body' => 'admin/admin_message_body.tpl') + ); + } + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $msg_title, + 'MESSAGE_TEXT' => $msg_text) + ); + $template->pparse('message_body'); + + if ( !defined('IN_ADMIN') ) + { + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + include($phpbb_root_path . 'admin/page_footer_admin.'.$phpEx); + } + } + else + { + echo "\n\n" . $msg_title . "\n

\n" . $msg_text . "\n"; + } + + exit; +} + +// +// This function is for compatibility with PHP 4.x's realpath() +// function. In later versions of PHP, it needs to be called +// to do checks with some functions. Older versions of PHP don't +// seem to need this, so we'll just return the original value. +// dougk_ff7 +function phpbb_realpath($path) +{ + global $phpbb_root_path, $phpEx; + + return (!@function_exists('realpath') || !@realpath($phpbb_root_path . 'includes/functions.'.$phpEx)) ? $path : @realpath($path); +} + +function redirect($url) +{ + global $db, $board_config; + + if (!empty($db)) + { + $db->sql_close(); + } + + if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r") || strstr(urldecode($url), ';url')) + { + message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); + } + + $server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://'; + $server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name'])); + $server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : ''; + $script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path'])); + $script_name = ($script_name == '') ? $script_name : '/' . $script_name; + $url = preg_replace('#^\/?(.*?)\/?$#', '/\1', trim($url)); + + // Redirect via an HTML form for PITA webservers + if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE'))) + { + header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url); + echo 'Redirect
If your browser does not support meta redirection please click HERE to be redirected
'; + exit; + } + + // Behave as per HTTP/1.1 spec for others + header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url); + exit; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/functions_admin.php b/phpBB2/includes/functions_admin.php new file mode 100644 index 0000000..d3d83a8 --- /dev/null +++ b/phpBB2/includes/functions_admin.php @@ -0,0 +1,191 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Couldn not obtain forums information', '', __LINE__, __FILE__, $sql); + } + + $forum_list = ''; + while( $row = $db->sql_fetchrow($result) ) + { + if ( $is_auth_ary[$row['forum_id']]['auth_read'] && $ignore_forum != $row['forum_id'] ) + { + $selected = ( $select_forum == $row['forum_id'] ) ? ' selected="selected"' : ''; + $forum_list .= ''; + } + } + + $forum_list = ( $forum_list == '' ) ? '' : ''; + + return $forum_list; +} + +// +// Synchronise functions for forums/topics +// +function sync($type, $id = false) +{ + global $db; + + switch($type) + { + case 'all forums': + $sql = "SELECT forum_id + FROM " . FORUMS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get forum IDs', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + sync('forum', $row['forum_id']); + } + break; + + case 'all topics': + $sql = "SELECT topic_id + FROM " . TOPICS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + sync('topic', $row['topic_id']); + } + break; + + case 'forum': + $sql = "SELECT MAX(post_id) AS last_post, COUNT(post_id) AS total + FROM " . POSTS_TABLE . " + WHERE forum_id = $id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $last_post = ( $row['last_post'] ) ? $row['last_post'] : 0; + $total_posts = ($row['total']) ? $row['total'] : 0; + } + else + { + $last_post = 0; + $total_posts = 0; + } + + $sql = "SELECT COUNT(topic_id) AS total + FROM " . TOPICS_TABLE . " + WHERE forum_id = $id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic count', '', __LINE__, __FILE__, $sql); + } + + $total_topics = ( $row = $db->sql_fetchrow($result) ) ? ( ( $row['total'] ) ? $row['total'] : 0 ) : 0; + + $sql = "UPDATE " . FORUMS_TABLE . " + SET forum_last_post_id = $last_post, forum_posts = $total_posts, forum_topics = $total_topics + WHERE forum_id = $id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update forum', '', __LINE__, __FILE__, $sql); + } + break; + + case 'topic': + $sql = "SELECT MAX(post_id) AS last_post, MIN(post_id) AS first_post, COUNT(post_id) AS total_posts + FROM " . POSTS_TABLE . " + WHERE topic_id = $id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ($row['total_posts']) + { + // Correct the details of this topic + $sql = 'UPDATE ' . TOPICS_TABLE . ' + SET topic_replies = ' . ($row['total_posts'] - 1) . ', topic_first_post_id = ' . $row['first_post'] . ', topic_last_post_id = ' . $row['last_post'] . " + WHERE topic_id = $id"; + + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql); + } + } + else + { + // There are no replies to this topic + // Check if it is a move stub + $sql = 'SELECT topic_moved_id + FROM ' . TOPICS_TABLE . " + WHERE topic_id = $id"; + + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + if (!$row['topic_moved_id']) + { + $sql = 'DELETE FROM ' . TOPICS_TABLE . " WHERE topic_id = $id"; + + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not remove topic', '', __LINE__, __FILE__, $sql); + } + } + } + + $db->sql_freeresult($result); + } + } + break; + } + + return true; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/functions_post.php b/phpBB2/includes/functions_post.php new file mode 100644 index 0000000..49c12c8 --- /dev/null +++ b/phpBB2/includes/functions_post.php @@ -0,0 +1,887 @@ +#', '#"#'); +$html_entities_replace = array('&', '<', '>', '"'); + +$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#'); +$unhtml_specialchars_replace = array('>', '<', '"', '&'); + +// +// This function will prepare a posted message for +// entry into the database. +// +function prepare_message($message, $html_on, $bbcode_on, $smile_on, $bbcode_uid = 0) +{ + global $board_config, $html_entities_match, $html_entities_replace; + + // + // Clean up the message + // + $message = trim($message); + + if ($html_on) + { + // If HTML is on, we try to make it safe + // This approach is quite agressive and anything that does not look like a valid tag + // is going to get converted to HTML entities + $message = stripslashes($message); + $html_match = '#<[^\w<]*(\w+)((?:"[^"]*"|\'[^\']*\'|[^<>\'"])+)?>#'; + $matches = array(); + + $message_split = preg_split($html_match, $message); + preg_match_all($html_match, $message, $matches); + + $message = ''; + + foreach ($message_split as $part) + { + $tag = array(array_shift($matches[0]), array_shift($matches[1]), array_shift($matches[2])); + $message .= preg_replace($html_entities_match, $html_entities_replace, $part) . clean_html($tag); + } + + $message = addslashes($message); + $message = str_replace('"', '\"', $message); + } + else + { + $message = preg_replace($html_entities_match, $html_entities_replace, $message); + } + + if($bbcode_on && $bbcode_uid != '') + { + $message = bbencode_first_pass($message, $bbcode_uid); + } + + return $message; +} + +function unprepare_message($message) +{ + global $unhtml_specialchars_match, $unhtml_specialchars_replace; + + return preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, $message); +} + +// +// Prepare a message for posting +// +function prepare_post(&$mode, &$post_data, &$bbcode_on, &$html_on, &$smilies_on, &$error_msg, &$username, &$bbcode_uid, &$subject, &$message, &$poll_title, &$poll_options, &$poll_length) +{ + global $board_config, $userdata, $lang, $phpEx, $phpbb_root_path; + + // Check username + if (!empty($username)) + { + $username = phpbb_clean_username($username); + + if (!$userdata['session_logged_in'] || ($userdata['session_logged_in'] && $username != $userdata['username'])) + { + include($phpbb_root_path . 'includes/functions_validate.'.$phpEx); + + $result = validate_username($username); + if ($result['error']) + { + $error_msg .= (!empty($error_msg)) ? '
' . $result['error_msg'] : $result['error_msg']; + } + } + else + { + $username = ''; + } + } + + // Check subject + if (!empty($subject)) + { + $subject = htmlspecialchars(trim($subject)); + } + else if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) + { + $error_msg .= (!empty($error_msg)) ? '
' . $lang['Empty_subject'] : $lang['Empty_subject']; + } + + // Check message + if (!empty($message)) + { + $bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : ''; + $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid); + } + else if ($mode != 'delete' && $mode != 'poll_delete') + { + $error_msg .= (!empty($error_msg)) ? '
' . $lang['Empty_message'] : $lang['Empty_message']; + } + + // + // Handle poll stuff + // + if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) + { + $poll_length = (isset($poll_length)) ? max(0, intval($poll_length)) : 0; + + if (!empty($poll_title)) + { + $poll_title = htmlspecialchars(trim($poll_title)); + } + + if(!empty($poll_options)) + { + $temp_option_text = array(); + while(list($option_id, $option_text) = @each($poll_options)) + { + $option_text = trim($option_text); + if (!empty($option_text)) + { + $temp_option_text[intval($option_id)] = htmlspecialchars($option_text); + } + } + $option_text = $temp_option_text; + + if (count($poll_options) < 2) + { + $error_msg .= (!empty($error_msg)) ? '
' . $lang['To_few_poll_options'] : $lang['To_few_poll_options']; + } + else if (count($poll_options) > $board_config['max_poll_options']) + { + $error_msg .= (!empty($error_msg)) ? '
' . $lang['To_many_poll_options'] : $lang['To_many_poll_options']; + } + else if ($poll_title == '') + { + $error_msg .= (!empty($error_msg)) ? '
' . $lang['Empty_poll_title'] : $lang['Empty_poll_title']; + } + } + } + + return; +} + +// +// Post a new topic/reply/poll or edit existing post/poll +// +function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, $post_username, $post_subject, $post_message, $poll_title, &$poll_options, &$poll_length) +{ + global $board_config, $lang, $db, $phpbb_root_path, $phpEx; + global $userdata, $user_ip; + + include($phpbb_root_path . 'includes/functions_search.'.$phpEx); + + $current_time = time(); + + if ($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost') + { + // + // Flood control + // + $where_sql = ($userdata['user_id'] == ANONYMOUS) ? "poster_ip = '$user_ip'" : 'poster_id = ' . $userdata['user_id']; + $sql = "SELECT MAX(post_time) AS last_post_time + FROM " . POSTS_TABLE . " + WHERE $where_sql"; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval'])) + { + message_die(GENERAL_MESSAGE, $lang['Flood_Error']); + } + } + } + } + + if ($mode == 'editpost') + { + remove_search_post($post_id); + } + + if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) + { + $topic_vote = (!empty($poll_title) && count($poll_options) >= 2) ? 1 : 0; + + $sql = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . " WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + if ($mode == 'newtopic') + { + $topic_id = $db->sql_nextid(); + } + } + + $edited_sql = ($mode == 'editpost' && !$post_data['last_post'] && $post_data['poster_post']) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1 " : ""; + $sql = ($mode != "editpost") ? "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig)" : "UPDATE " . POSTS_TABLE . " SET post_username = '$post_username', enable_bbcode = $bbcode_on, enable_html = $html_on, enable_smilies = $smilies_on, enable_sig = $attach_sig" . $edited_sql . " WHERE post_id = $post_id"; + if (!$db->sql_query($sql, BEGIN_TRANSACTION)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + if ($mode != 'editpost') + { + $post_id = $db->sql_nextid(); + } + + $sql = ($mode != 'editpost') ? "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$post_subject', '$bbcode_uid', '$post_message')" : "UPDATE " . POSTS_TEXT_TABLE . " SET post_text = '$post_message', bbcode_uid = '$bbcode_uid', post_subject = '$post_subject' WHERE post_id = $post_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject)); + + // + // Add poll + // + if (($mode == 'newtopic' || ($mode == 'editpost' && $post_data['edit_poll'])) && !empty($poll_title) && count($poll_options) >= 2) + { + $sql = (!$post_data['has_poll']) ? "INSERT INTO " . VOTE_DESC_TABLE . " (topic_id, vote_text, vote_start, vote_length) VALUES ($topic_id, '$poll_title', $current_time, " . ($poll_length * 86400) . ")" : "UPDATE " . VOTE_DESC_TABLE . " SET vote_text = '$poll_title', vote_length = " . ($poll_length * 86400) . " WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + $delete_option_sql = ''; + $old_poll_result = array(); + if ($mode == 'editpost' && $post_data['has_poll']) + { + $sql = "SELECT vote_option_id, vote_result + FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id = $poll_id + ORDER BY vote_option_id ASC"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain vote data results for this topic', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $old_poll_result[$row['vote_option_id']] = $row['vote_result']; + + if (!isset($poll_options[$row['vote_option_id']])) + { + $delete_option_sql .= ($delete_option_sql != '') ? ', ' . $row['vote_option_id'] : $row['vote_option_id']; + } + } + } + else + { + $poll_id = $db->sql_nextid(); + } + + @reset($poll_options); + + $poll_option_id = 1; + while (list($option_id, $option_text) = each($poll_options)) + { + if (!empty($option_text)) + { + $option_text = str_replace("\'", "''", htmlspecialchars($option_text)); + $poll_result = ($mode == "editpost" && isset($old_poll_result[$option_id])) ? $old_poll_result[$option_id] : 0; + + $sql = ($mode != "editpost" || !isset($old_poll_result[$option_id])) ? "INSERT INTO " . VOTE_RESULTS_TABLE . " (vote_id, vote_option_id, vote_option_text, vote_result) VALUES ($poll_id, $poll_option_id, '$option_text', $poll_result)" : "UPDATE " . VOTE_RESULTS_TABLE . " SET vote_option_text = '$option_text', vote_result = $poll_result WHERE vote_option_id = $option_id AND vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + $poll_option_id++; + } + } + + if ($delete_option_sql != '') + { + $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_option_id IN ($delete_option_sql) + AND vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error deleting pruned poll options', '', __LINE__, __FILE__, $sql); + } + } + } + + $meta = ''; + $message = $lang['Stored'] . '

' . sprintf($lang['Click_view_message'], '', '') . '

' . sprintf($lang['Click_return_forum'], '', ''); + + return false; +} + +// +// Update post stats and details +// +function update_post_stats(&$mode, &$post_data, &$forum_id, &$topic_id, &$post_id, &$user_id) +{ + global $db; + + $sign = ($mode == 'delete') ? '- 1' : '+ 1'; + $forum_update_sql = "forum_posts = forum_posts $sign"; + $topic_update_sql = ''; + + if ($mode == 'delete') + { + if ($post_data['last_post']) + { + if ($post_data['first_post']) + { + $forum_update_sql .= ', forum_topics = forum_topics - 1'; + } + else + { + + $topic_update_sql .= 'topic_replies = topic_replies - 1'; + + $sql = "SELECT MAX(post_id) AS last_post_id + FROM " . POSTS_TABLE . " + WHERE topic_id = $topic_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $topic_update_sql .= ', topic_last_post_id = ' . $row['last_post_id']; + } + } + + if ($post_data['last_topic']) + { + $sql = "SELECT MAX(post_id) AS last_post_id + FROM " . POSTS_TABLE . " + WHERE forum_id = $forum_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $forum_update_sql .= ($row['last_post_id']) ? ', forum_last_post_id = ' . $row['last_post_id'] : ', forum_last_post_id = 0'; + } + } + } + else if ($post_data['first_post']) + { + $sql = "SELECT MIN(post_id) AS first_post_id + FROM " . POSTS_TABLE . " + WHERE topic_id = $topic_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $topic_update_sql .= 'topic_replies = topic_replies - 1, topic_first_post_id = ' . $row['first_post_id']; + } + } + else + { + $topic_update_sql .= 'topic_replies = topic_replies - 1'; + } + } + else if ($mode != 'poll_delete') + { + $forum_update_sql .= ", forum_last_post_id = $post_id" . (($mode == 'newtopic') ? ", forum_topics = forum_topics $sign" : ""); + $topic_update_sql = "topic_last_post_id = $post_id" . (($mode == 'reply') ? ", topic_replies = topic_replies $sign" : ", topic_first_post_id = $post_id"); + } + else + { + $topic_update_sql .= 'topic_vote = 0'; + } + + if ($mode != 'poll_delete') + { + $sql = "UPDATE " . FORUMS_TABLE . " SET + $forum_update_sql + WHERE forum_id = $forum_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + } + + if ($topic_update_sql != '') + { + $sql = "UPDATE " . TOPICS_TABLE . " SET + $topic_update_sql + WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + } + + if ($mode != 'poll_delete') + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_posts = user_posts $sign + WHERE user_id = $user_id"; + if (!$db->sql_query($sql, END_TRANSACTION)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + } + + return; +} + +// +// Delete a post/poll +// +function delete_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id) +{ + global $board_config, $lang, $db, $phpbb_root_path, $phpEx; + global $userdata, $user_ip; + + if ($mode != 'poll_delete') + { + include($phpbb_root_path . 'includes/functions_search.'.$phpEx); + + $sql = "DELETE FROM " . POSTS_TABLE . " + WHERE post_id = $post_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . POSTS_TEXT_TABLE . " + WHERE post_id = $post_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($post_data['last_post']) + { + if ($post_data['first_post']) + { + $forum_update_sql .= ', forum_topics = forum_topics - 1'; + $sql = "DELETE FROM " . TOPICS_TABLE . " + WHERE topic_id = $topic_id + OR topic_moved_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + } + } + + remove_search_post($post_id); + } + + if ($mode == 'poll_delete' || ($mode == 'delete' && $post_data['first_post'] && $post_data['last_post']) && $post_data['has_poll'] && $post_data['edit_poll']) + { + $sql = "DELETE FROM " . VOTE_DESC_TABLE . " + WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql); + } + } + + if ($mode == 'delete' && $post_data['first_post'] && $post_data['last_post']) + { + $meta = ''; + $message = $lang['Deleted']; + } + else + { + $meta = ''; + $message = (($mode == 'poll_delete') ? $lang['Poll_delete'] : $lang['Deleted']) . '

' . sprintf($lang['Click_return_topic'], '', ''); + } + + $message .= '

' . sprintf($lang['Click_return_forum'], '', ''); + + return; +} + +// +// Handle user notification on new post +// +function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topic_id, &$post_id, &$notify_user) +{ + global $board_config, $lang, $db, $phpbb_root_path, $phpEx; + global $userdata, $user_ip; + + $current_time = time(); + + if ($mode != 'delete') + { + if ($mode == 'reply') + { + $sql = "SELECT ban_userid + FROM " . BANLIST_TABLE; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain banlist', '', __LINE__, __FILE__, $sql); + } + + $user_id_sql = ''; + while ($row = $db->sql_fetchrow($result)) + { + if (isset($row['ban_userid']) && !empty($row['ban_userid'])) + { + $user_id_sql .= ', ' . $row['ban_userid']; + } + } + + $sql = "SELECT u.user_id, u.user_email, u.user_lang + FROM " . TOPICS_WATCH_TABLE . " tw, " . USERS_TABLE . " u + WHERE tw.topic_id = $topic_id + AND tw.user_id NOT IN (" . $userdata['user_id'] . ", " . ANONYMOUS . $user_id_sql . ") + AND tw.notify_status = " . TOPIC_WATCH_UN_NOTIFIED . " + AND u.user_id = tw.user_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain list of topic watchers', '', __LINE__, __FILE__, $sql); + } + + $update_watched_sql = ''; + $bcc_list_ary = array(); + + if ($row = $db->sql_fetchrow($result)) + { + // Sixty second limit + @set_time_limit(60); + + do + { + if ($row['user_email'] != '') + { + $bcc_list_ary[$row['user_lang']][] = $row['user_email']; + } + $update_watched_sql .= ($update_watched_sql != '') ? ', ' . $row['user_id'] : $row['user_id']; + } + while ($row = $db->sql_fetchrow($result)); + + // + // Let's do some checking to make sure that mass mail functions + // are working in win32 versions of php. + // + if (preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery']) + { + $ini_val = (@phpversion() >= '4.0.0') ? 'ini_get' : 'get_cfg_var'; + + // We are running on windows, force delivery to use our smtp functions + // since php's are broken by default + $board_config['smtp_delivery'] = 1; + $board_config['smtp_host'] = @$ini_val('SMTP'); + } + + if (sizeof($bcc_list_ary)) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path'])); + $script_name = ($script_name != '') ? $script_name . '/viewtopic.'.$phpEx : 'viewtopic.'.$phpEx; + $server_name = trim($board_config['server_name']); + $server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://'; + $server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) . '/' : '/'; + + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $topic_title = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($topic_title)) : unprepare_message($topic_title); + + @reset($bcc_list_ary); + while (list($user_lang, $bcc_list) = each($bcc_list_ary)) + { + $emailer->use_template('topic_notify', $user_lang); + + for ($i = 0; $i < count($bcc_list); $i++) + { + $emailer->bcc($bcc_list[$i]); + } + + // The Topic_reply_notification lang string below will be used + // if for some reason the mail template subject cannot be read + // ... note it will not necessarily be in the posters own language! + $emailer->set_subject($lang['Topic_reply_notification']); + + // This is a nasty kludge to remove the username var ... till (if?) + // translators update their templates + $emailer->msg = preg_replace('#[ ]?{USERNAME}#', '', $emailer->msg); + + $emailer->assign_vars(array( + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + 'SITENAME' => $board_config['sitename'], + 'TOPIC_TITLE' => $topic_title, + + 'U_TOPIC' => $server_protocol . $server_name . $server_port . $script_name . '?' . POST_POST_URL . "=$post_id#$post_id", + 'U_STOP_WATCHING_TOPIC' => $server_protocol . $server_name . $server_port . $script_name . '?' . POST_TOPIC_URL . "=$topic_id&unwatch=topic") + ); + + $emailer->send(); + $emailer->reset(); + } + } + } + $db->sql_freeresult($result); + + if ($update_watched_sql != '') + { + $sql = "UPDATE " . TOPICS_WATCH_TABLE . " + SET notify_status = " . TOPIC_WATCH_NOTIFIED . " + WHERE topic_id = $topic_id + AND user_id IN ($update_watched_sql)"; + $db->sql_query($sql); + } + } + + $sql = "SELECT topic_id + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain topic watch information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if (!$notify_user && !empty($row['topic_id'])) + { + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not delete topic watch information', '', __LINE__, __FILE__, $sql); + } + } + else if ($notify_user && empty($row['topic_id'])) + { + $sql = "INSERT INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status) + VALUES (" . $userdata['user_id'] . ", $topic_id, 0)"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not insert topic watch information', '', __LINE__, __FILE__, $sql); + } + } + } +} + +// +// Fill smiley templates (or just the variables) with smileys +// Either in a window or inline +// +function generate_smilies($mode, $page_id) +{ + global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path; + global $user_ip, $session_length, $starttime; + global $userdata; + + $inline_columns = 4; + $inline_rows = 5; + $window_columns = 8; + + if ($mode == 'window') + { + $userdata = session_pagestart($user_ip, $page_id); + init_userprefs($userdata); + + $gen_simple_header = TRUE; + + $page_title = $lang['Emoticons']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'smiliesbody' => 'posting_smilies.tpl') + ); + } + + $sql = "SELECT emoticon, code, smile_url + FROM " . SMILIES_TABLE . " + ORDER BY smilies_id"; + if ($result = $db->sql_query($sql)) + { + $num_smilies = 0; + $rowset = array(); + while ($row = $db->sql_fetchrow($result)) + { + if (empty($rowset[$row['smile_url']])) + { + $rowset[$row['smile_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code'])); + $rowset[$row['smile_url']]['emoticon'] = $row['emoticon']; + $num_smilies++; + } + } + + if ($num_smilies) + { + $smilies_count = ($mode == 'inline') ? min(19, $num_smilies) : $num_smilies; + $smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1; + + $s_colspan = 0; + $row = 0; + $col = 0; + + while (list($smile_url, $data) = @each($rowset)) + { + if (!$col) + { + $template->assign_block_vars('smilies_row', array()); + } + + $template->assign_block_vars('smilies_row.smilies_col', array( + 'SMILEY_CODE' => $data['code'], + 'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url, + 'SMILEY_DESC' => $data['emoticon']) + ); + + $s_colspan = max($s_colspan, $col + 1); + + if ($col == $smilies_split_row) + { + if ($mode == 'inline' && $row == $inline_rows - 1) + { + break; + } + $col = 0; + $row++; + } + else + { + $col++; + } + } + + if ($mode == 'inline' && $num_smilies > $inline_rows * $inline_columns) + { + $template->assign_block_vars('switch_smilies_extra', array()); + + $template->assign_vars(array( + 'L_MORE_SMILIES' => $lang['More_emoticons'], + 'U_MORE_SMILIES' => append_sid("posting.$phpEx?mode=smilies")) + ); + } + + $template->assign_vars(array( + 'L_EMOTICONS' => $lang['Emoticons'], + 'L_CLOSE_WINDOW' => $lang['Close_window'], + 'S_SMILIES_COLSPAN' => $s_colspan) + ); + } + } + + if ($mode == 'window') + { + $template->pparse('smiliesbody'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } +} + +/** +* Called from within prepare_message to clean included HTML tags if HTML is +* turned on for that post +* @param array $tag Matching text from the message to parse +*/ +function clean_html($tag) +{ + global $board_config; + + if (empty($tag[0])) + { + return ''; + } + + $allowed_html_tags = preg_split('/, */', strtolower($board_config['allow_html_tags'])); + $disallowed_attributes = '/^(?:style|on)/i'; + + // Check if this is an end tag + preg_match('/<[^\w\/]*\/[\W]*(\w+)/', $tag[0], $matches); + if (sizeof($matches)) + { + if (in_array(strtolower($matches[1]), $allowed_html_tags)) + { + return ''; + } + else + { + return htmlspecialchars(''); + } + } + + // Check if this is an allowed tag + if (in_array(strtolower($tag[1]), $allowed_html_tags)) + { + $attributes = ''; + if (!empty($tag[2])) + { + preg_match_all('/[\W]*?(\w+)[\W]*?=[\W]*?(["\'])((?:(?!\2).)*)\2/', $tag[2], $test); + for ($i = 0; $i < sizeof($test[0]); $i++) + { + if (preg_match($disallowed_attributes, $test[1][$i])) + { + continue; + } + $attributes .= ' ' . $test[1][$i] . '=' . $test[2][$i] . str_replace(array('[', ']'), array('[', ']'), htmlspecialchars($test[3][$i])) . $test[2][$i]; + } + } + if (in_array(strtolower($tag[1]), $allowed_html_tags)) + { + return '<' . $tag[1] . $attributes . '>'; + } + else + { + return htmlspecialchars('<' . $tag[1] . $attributes . '>'); + } + } + // Finally, this is not an allowed tag so strip all the attibutes and escape it + else + { + return htmlspecialchars('<' . $tag[1] . '>'); + } +} +?> \ No newline at end of file diff --git a/phpBB2/includes/functions_search.php b/phpBB2/includes/functions_search.php new file mode 100644 index 0000000..3e78fe8 --- /dev/null +++ b/phpBB2/includes/functions_search.php @@ -0,0 +1,498 @@ +', '`', '\'', '"', '|', ',', '@', '_', '?', '%', '-', '~', '+', '.', '[', ']', '{', '}', ':', '\\', '/', '=', '#', '\'', ';', '!'); + static $drop_char_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', '', '', ' ', ' ', ' ', ' ', '', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' , ' ', ' ', ' ', ' ', ' ', ' '); + + $entry = ' ' . strip_tags(strtolower($entry)) . ' '; + + if ( $mode == 'post' ) + { + // Replace line endings by a space + $entry = preg_replace('/[\n\r]/is', ' ', $entry); + // HTML entities like   + $entry = preg_replace('/\b&[a-z]+;\b/', ' ', $entry); + // Remove URL's + $entry = preg_replace('/\b[a-z0-9]+:\/\/[a-z0-9\.\-]+(\/[a-z0-9\?\.%_\-\+=&\/]+)?/', ' ', $entry); + // Quickly remove BBcode. + $entry = preg_replace('/\[img:[a-z0-9]{10,}\].*?\[\/img:[a-z0-9]{10,}\]/', ' ', $entry); + $entry = preg_replace('/\[\/?url(=.*?)?\]/', ' ', $entry); + $entry = preg_replace('/\[\/?[a-z\*=\+\-]+(\:?[0-9a-z]+)?:[a-z0-9]{10,}(\:[a-z0-9]+)?=?.*?\]/', ' ', $entry); + } + else if ( $mode == 'search' ) + { + $entry = str_replace(' +', ' and ', $entry); + $entry = str_replace(' -', ' not ', $entry); + } + + // + // Filter out strange characters like ^, $, &, change "it's" to "its" + // + for($i = 0; $i < count($drop_char_match); $i++) + { + $entry = str_replace($drop_char_match[$i], $drop_char_replace[$i], $entry); + } + + if ( $mode == 'post' ) + { + $entry = str_replace('*', ' ', $entry); + + // 'words' that consist of <3 or >20 characters are removed. + $entry = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $entry); + } + + if ( !empty($stopword_list) ) + { + for ($j = 0; $j < count($stopword_list); $j++) + { + $stopword = trim($stopword_list[$j]); + + if ( $mode == 'post' || ( $stopword != 'not' && $stopword != 'and' && $stopword != 'or' ) ) + { + $entry = str_replace(' ' . trim($stopword) . ' ', ' ', $entry); + } + } + } + + if ( !empty($synonym_list) ) + { + for ($j = 0; $j < count($synonym_list); $j++) + { + list($replace_synonym, $match_synonym) = split(' ', trim(strtolower($synonym_list[$j]))); + if ( $mode == 'post' || ( $match_synonym != 'not' && $match_synonym != 'and' && $match_synonym != 'or' ) ) + { + $entry = str_replace(' ' . trim($match_synonym) . ' ', ' ' . trim($replace_synonym) . ' ', $entry); + } + } + } + + return $entry; +} + +function split_words($entry, $mode = 'post') +{ + // If you experience problems with the new method, uncomment this block. +/* + $rex = ( $mode == 'post' ) ? "/\b([\w±µ-ÿ][\w±µ-ÿ']*[\w±µ-ÿ]+|[\w±µ-ÿ]+?)\b/" : '/(\*?[a-z0-9±µ-ÿ]+\*?)|\b([a-z0-9±µ-ÿ]+)\b/'; + preg_match_all($rex, $entry, $split_entries); + + return $split_entries[1]; +*/ + // Trim 1+ spaces to one space and split this trimmed string into words. + return explode(' ', trim(preg_replace('#\s+#', ' ', $entry))); +} + +function add_search_words($mode, $post_id, $post_text, $post_title = '') +{ + global $db, $phpbb_root_path, $board_config, $lang; + + $stopword_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_stopwords.txt"); + $synonym_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_synonyms.txt"); + + $search_raw_words = array(); + $search_raw_words['text'] = split_words(clean_words('post', $post_text, $stopword_array, $synonym_array)); + $search_raw_words['title'] = split_words(clean_words('post', $post_title, $stopword_array, $synonym_array)); + + @set_time_limit(0); + + $word = array(); + $word_insert_sql = array(); + while ( list($word_in, $search_matches) = @each($search_raw_words) ) + { + $word_insert_sql[$word_in] = ''; + if ( !empty($search_matches) ) + { + for ($i = 0; $i < count($search_matches); $i++) + { + $search_matches[$i] = trim($search_matches[$i]); + + if( $search_matches[$i] != '' ) + { + $word[] = $search_matches[$i]; + if ( !strstr($word_insert_sql[$word_in], "'" . $search_matches[$i] . "'") ) + { + $word_insert_sql[$word_in] .= ( $word_insert_sql[$word_in] != "" ) ? ", '" . $search_matches[$i] . "'" : "'" . $search_matches[$i] . "'"; + } + } + } + } + } + + if ( count($word) ) + { + sort($word); + + $prev_word = ''; + $word_text_sql = ''; + $temp_word = array(); + for($i = 0; $i < count($word); $i++) + { + if ( $word[$i] != $prev_word ) + { + $temp_word[] = $word[$i]; + $word_text_sql .= ( ( $word_text_sql != '' ) ? ', ' : '' ) . "'" . $word[$i] . "'"; + } + $prev_word = $word[$i]; + } + $word = $temp_word; + + $check_words = array(); + switch( SQL_LAYER ) + { + case 'postgresql': + case 'msaccess': + case 'mssql-odbc': + case 'oracle': + case 'db2': + $sql = "SELECT word_id, word_text + FROM " . SEARCH_WORD_TABLE . " + WHERE word_text IN ($word_text_sql)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select words', '', __LINE__, __FILE__, $sql); + } + + while ( $row = $db->sql_fetchrow($result) ) + { + $check_words[$row['word_text']] = $row['word_id']; + } + break; + } + + $value_sql = ''; + $match_word = array(); + for ($i = 0; $i < count($word); $i++) + { + $new_match = true; + if ( isset($check_words[$word[$i]]) ) + { + $new_match = false; + } + + if ( $new_match ) + { + switch( SQL_LAYER ) + { + case 'mysql': + case 'mysql4': + $value_sql .= ( ( $value_sql != '' ) ? ', ' : '' ) . '(\'' . $word[$i] . '\', 0)'; + break; + case 'mssql': + case 'mssql-odbc': + $value_sql .= ( ( $value_sql != '' ) ? ' UNION ALL ' : '' ) . "SELECT '" . $word[$i] . "', 0"; + break; + default: + $sql = "INSERT INTO " . SEARCH_WORD_TABLE . " (word_text, word_common) + VALUES ('" . $word[$i] . "', 0)"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new word', '', __LINE__, __FILE__, $sql); + } + break; + } + } + } + + if ( $value_sql != '' ) + { + switch ( SQL_LAYER ) + { + case 'mysql': + case 'mysql4': + $sql = "INSERT IGNORE INTO " . SEARCH_WORD_TABLE . " (word_text, word_common) + VALUES $value_sql"; + break; + case 'mssql': + case 'mssql-odbc': + $sql = "INSERT INTO " . SEARCH_WORD_TABLE . " (word_text, word_common) + $value_sql"; + break; + } + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new word', '', __LINE__, __FILE__, $sql); + } + } + } + + while( list($word_in, $match_sql) = @each($word_insert_sql) ) + { + $title_match = ( $word_in == 'title' ) ? 1 : 0; + + if ( $match_sql != '' ) + { + $sql = "INSERT INTO " . SEARCH_MATCH_TABLE . " (post_id, word_id, title_match) + SELECT $post_id, word_id, $title_match + FROM " . SEARCH_WORD_TABLE . " + WHERE word_text IN ($match_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new word matches', '', __LINE__, __FILE__, $sql); + } + } + } + + if ($mode == 'single') + { + remove_common('single', 4/10, $word); + } + + return; +} + +// +// Check if specified words are too common now +// +function remove_common($mode, $fraction, $word_id_list = array()) +{ + global $db; + + $sql = "SELECT COUNT(post_id) AS total_posts + FROM " . POSTS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post count', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['total_posts'] >= 100 ) + { + $common_threshold = floor($row['total_posts'] * $fraction); + + if ( $mode == 'single' && count($word_id_list) ) + { + $word_id_sql = ''; + for($i = 0; $i < count($word_id_list); $i++) + { + $word_id_sql .= ( ( $word_id_sql != '' ) ? ', ' : '' ) . "'" . $word_id_list[$i] . "'"; + } + + $sql = "SELECT m.word_id + FROM " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w + WHERE w.word_text IN ($word_id_sql) + AND m.word_id = w.word_id + GROUP BY m.word_id + HAVING COUNT(m.word_id) > $common_threshold"; + } + else + { + $sql = "SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + GROUP BY word_id + HAVING COUNT(word_id) > $common_threshold"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain common word list', '', __LINE__, __FILE__, $sql); + } + + $common_word_id = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $common_word_id .= ( ( $common_word_id != '' ) ? ', ' : '' ) . $row['word_id']; + } + $db->sql_freeresult($result); + + if ( $common_word_id != '' ) + { + $sql = "UPDATE " . SEARCH_WORD_TABLE . " + SET word_common = " . TRUE . " + WHERE word_id IN ($common_word_id)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete word list entry', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . SEARCH_MATCH_TABLE . " + WHERE word_id IN ($common_word_id)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete word match entry', '', __LINE__, __FILE__, $sql); + } + } + } + + return; +} + +function remove_search_post($post_id_sql) +{ + global $db; + + $words_removed = false; + + switch ( SQL_LAYER ) + { + case 'mysql': + case 'mysql4': + $sql = "SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE post_id IN ($post_id_sql) + GROUP BY word_id"; + if ( $result = $db->sql_query($sql) ) + { + $word_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $word_id_sql .= ( $word_id_sql != '' ) ? ', ' . $row['word_id'] : $row['word_id']; + } + + $sql = "SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE word_id IN ($word_id_sql) + GROUP BY word_id + HAVING COUNT(word_id) = 1"; + if ( $result = $db->sql_query($sql) ) + { + $word_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $word_id_sql .= ( $word_id_sql != '' ) ? ', ' . $row['word_id'] : $row['word_id']; + } + + if ( $word_id_sql != '' ) + { + $sql = "DELETE FROM " . SEARCH_WORD_TABLE . " + WHERE word_id IN ($word_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete word list entry', '', __LINE__, __FILE__, $sql); + } + + $words_removed = $db->sql_affectedrows(); + } + } + } + break; + + default: + $sql = "DELETE FROM " . SEARCH_WORD_TABLE . " + WHERE word_id IN ( + SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE word_id IN ( + SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE post_id IN ($post_id_sql) + GROUP BY word_id + ) + GROUP BY word_id + HAVING COUNT(word_id) = 1 + )"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete old words from word table', '', __LINE__, __FILE__, $sql); + } + + $words_removed = $db->sql_affectedrows(); + + break; + } + + $sql = "DELETE FROM " . SEARCH_MATCH_TABLE . " + WHERE post_id IN ($post_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + return $words_removed; +} + +// +// Username search +// +function username_search($search_match) +{ + global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path; + global $starttime, $gen_simple_header; + + $gen_simple_header = TRUE; + + $username_list = ''; + if ( !empty($search_match) ) + { + $username_search = preg_replace('/\*/', '%', phpbb_clean_username($search_match)); + + $sql = "SELECT username + FROM " . USERS_TABLE . " + WHERE username LIKE '" . str_replace("\'", "''", $username_search) . "' AND user_id <> " . ANONYMOUS . " + ORDER BY username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + $username_list .= ''; + } + while ( $row = $db->sql_fetchrow($result) ); + } + else + { + $username_list .= ''; + } + $db->sql_freeresult($result); + } + + $page_title = $lang['Search']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'search_user_body' => 'search_username.tpl') + ); + + $template->assign_vars(array( + 'USERNAME' => (!empty($search_match)) ? phpbb_clean_username($search_match) : '', + + 'L_CLOSE_WINDOW' => $lang['Close_window'], + 'L_SEARCH_USERNAME' => $lang['Find_username'], + 'L_UPDATE_USERNAME' => $lang['Select_username'], + 'L_SELECT' => $lang['Select'], + 'L_SEARCH' => $lang['Search'], + 'L_SEARCH_EXPLAIN' => $lang['Search_author_explain'], + 'L_CLOSE_WINDOW' => $lang['Close_window'], + + 'S_USERNAME_OPTIONS' => $username_list, + 'S_SEARCH_ACTION' => append_sid("search.$phpEx?mode=searchuser")) + ); + + if ( $username_list != '' ) + { + $template->assign_block_vars('switch_select_name', array()); + } + + $template->pparse('search_user_body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/functions_selects.php b/phpBB2/includes/functions_selects.php new file mode 100644 index 0000000..6d184ff --- /dev/null +++ b/phpBB2/includes/functions_selects.php @@ -0,0 +1,111 @@ +'; + while ( list($displayname, $filename) = @each($lang) ) + { + $selected = ( strtolower($default) == strtolower($filename) ) ? ' selected="selected"' : ''; + $lang_select .= ''; + } + $lang_select .= ''; + + return $lang_select; +} + +// +// Pick a template/theme combo, +// +function style_select($default_style, $select_name = "style", $dirname = "templates") +{ + global $db; + + $sql = "SELECT themes_id, style_name + FROM " . THEMES_TABLE . " + ORDER BY template_name, themes_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql); + } + + $style_select = '"; + + return $style_select; +} + +// +// Pick a timezone +// +function tz_select($default, $select_name = 'timezone') +{ + global $sys_timezone, $lang; + + if ( !isset($default) ) + { + $default == $sys_timezone; + } + $tz_select = ''; + + return $tz_select; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/functions_validate.php b/phpBB2/includes/functions_validate.php new file mode 100644 index 0000000..69197a3 --- /dev/null +++ b/phpBB2/includes/functions_validate.php @@ -0,0 +1,205 @@ +sql_query($sql)) + { + while ($row = $db->sql_fetchrow($result)) + { + if (($userdata['session_logged_in'] && $row['username'] != $userdata['username']) || !$userdata['session_logged_in']) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_taken']); + } + } + } + $db->sql_freeresult($result); + + $sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE LOWER(group_name) = '" . strtolower($username) . "'"; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_taken']); + } + } + $db->sql_freeresult($result); + + $sql = "SELECT disallow_username + FROM " . DISALLOW_TABLE; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + do + { + if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($row['disallow_username'], '#')) . ")\b#i", $username)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_disallowed']); + } + } + while($row = $db->sql_fetchrow($result)); + } + } + $db->sql_freeresult($result); + + $sql = "SELECT word + FROM " . WORDS_TABLE; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + do + { + if (preg_match("#\b(" . str_replace("\*", ".*?", preg_quote($row['word'], '#')) . ")\b#i", $username)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_disallowed']); + } + } + while ($row = $db->sql_fetchrow($result)); + } + } + $db->sql_freeresult($result); + + // Don't allow " and ALT-255 in username. + if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160))) + { + return array('error' => true, 'error_msg' => $lang['Username_invalid']); + } + + return array('error' => false, 'error_msg' => ''); +} + +// +// Check to see if email address is banned +// or already present in the DB +// +function validate_email($email) +{ + global $db, $lang; + + if ($email != '') + { + if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email)) + { + $sql = "SELECT ban_email + FROM " . BANLIST_TABLE; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + do + { + $match_email = str_replace('*', '.*?', $row['ban_email']); + if (preg_match('/^' . $match_email . '$/is', $email)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Email_banned']); + } + } + while($row = $db->sql_fetchrow($result)); + } + } + $db->sql_freeresult($result); + + $sql = "SELECT user_email + FROM " . USERS_TABLE . " + WHERE user_email = '" . str_replace("\'", "''", $email) . "'"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, "Couldn't obtain user email information.", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + return array('error' => true, 'error_msg' => $lang['Email_taken']); + } + $db->sql_freeresult($result); + + return array('error' => false, 'error_msg' => ''); + } + } + + return array('error' => true, 'error_msg' => $lang['Email_invalid']); +} + +// +// Does supplementary validation of optional profile fields. This expects common stuff like trim() and strip_tags() +// to have already been run. Params are passed by-ref, so we can set them to the empty string if they fail. +// +function validate_optional_fields(&$icq, &$aim, &$msnm, &$yim, &$website, &$location, &$occupation, &$interests, &$sig) +{ + $check_var_length = array('aim', 'msnm', 'yim', 'location', 'occupation', 'interests', 'sig'); + + for($i = 0; $i < count($check_var_length); $i++) + { + if (strlen($$check_var_length[$i]) < 2) + { + $$check_var_length[$i] = ''; + } + } + + // ICQ number has to be only numbers. + if (!preg_match('/^[0-9]+$/', $icq)) + { + $icq = ''; + } + + // website has to start with http://, followed by something with length at least 3 that + // contains at least one dot. + if ($website != "") + { + if (!preg_match('#^http[s]?:\/\/#i', $website)) + { + $website = 'http://' . $website; + } + + if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $website)) + { + $website = ''; + } + } + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/index.htm b/phpBB2/includes/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/includes/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/includes/page_header.php b/phpBB2/includes/page_header.php new file mode 100644 index 0000000..f9f484d --- /dev/null +++ b/phpBB2/includes/page_header.php @@ -0,0 +1,490 @@ += '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) + { + if ( extension_loaded('zlib') ) + { + ob_start('ob_gzhandler'); + } + } + else if ( $phpver > '4.0' ) + { + if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) + { + if ( extension_loaded('zlib') ) + { + $do_gzip_compress = TRUE; + ob_start(); + ob_implicit_flush(0); + + header('Content-Encoding: gzip'); + } + } + } +} + +// +// Parse and show the overall header. +// +$template->set_filenames(array( + 'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl') +); + +// +// Generate logged in/logged out status +// +if ( $userdata['session_logged_in'] ) +{ + $u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id']; + $l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]'; +} +else +{ + $u_login_logout = 'login.'.$phpEx; + $l_login_logout = $lang['Login']; +} + +$s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config['default_dateformat'], $userdata['user_lastvisit'], $board_config['board_timezone']) : ''; + +// +// Get basic (usernames + totals) online +// situation +// +$logged_visible_online = 0; +$logged_hidden_online = 0; +$guests_online = 0; +$online_userlist = ''; +$l_online_users = ''; + +if (defined('SHOW_ONLINE')) +{ + + $user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : ''; + $sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip + FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s + WHERE u.user_id = s.session_user_id + AND s.session_time >= ".( time() - 300 ) . " + $user_forum_sql + ORDER BY u.username ASC, s.session_ip ASC"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql); + } + + $userlist_ary = array(); + $userlist_visible = array(); + + $prev_user_id = 0; + $prev_user_ip = $prev_session_ip = ''; + + while( $row = $db->sql_fetchrow($result) ) + { + // User is logged in and therefor not a guest + if ( $row['session_logged_in'] ) + { + // Skip multiple sessions for one user + if ( $row['user_id'] != $prev_user_id ) + { + $style_color = ''; + if ( $row['user_level'] == ADMIN ) + { + $row['username'] = '' . $row['username'] . ''; + $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; + } + else if ( $row['user_level'] == MOD ) + { + $row['username'] = '' . $row['username'] . ''; + $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; + } + + if ( $row['user_allow_viewonline'] ) + { + $user_online_link = '' . $row['username'] . ''; + $logged_visible_online++; + } + else + { + $user_online_link = '' . $row['username'] . ''; + $logged_hidden_online++; + } + + if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) + { + $online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link; + } + } + + $prev_user_id = $row['user_id']; + } + else + { + // Skip multiple sessions for one user + if ( $row['session_ip'] != $prev_session_ip ) + { + $guests_online++; + } + } + + $prev_session_ip = $row['session_ip']; + } + $db->sql_freeresult($result); + + if ( empty($online_userlist) ) + { + $online_userlist = $lang['None']; + } + $online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' . $online_userlist; + + $total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online; + + if ( $total_online_users > $board_config['record_online_users']) + { + $board_config['record_online_users'] = $total_online_users; + $board_config['record_online_date'] = time(); + + $sql = "UPDATE " . CONFIG_TABLE . " + SET config_value = '$total_online_users' + WHERE config_name = 'record_online_users'"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . CONFIG_TABLE . " + SET config_value = '" . $board_config['record_online_date'] . "' + WHERE config_name = 'record_online_date'"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql); + } + } + + if ( $total_online_users == 0 ) + { + $l_t_user_s = $lang['Online_users_zero_total']; + } + else if ( $total_online_users == 1 ) + { + $l_t_user_s = $lang['Online_user_total']; + } + else + { + $l_t_user_s = $lang['Online_users_total']; + } + + if ( $logged_visible_online == 0 ) + { + $l_r_user_s = $lang['Reg_users_zero_total']; + } + else if ( $logged_visible_online == 1 ) + { + $l_r_user_s = $lang['Reg_user_total']; + } + else + { + $l_r_user_s = $lang['Reg_users_total']; + } + + if ( $logged_hidden_online == 0 ) + { + $l_h_user_s = $lang['Hidden_users_zero_total']; + } + else if ( $logged_hidden_online == 1 ) + { + $l_h_user_s = $lang['Hidden_user_total']; + } + else + { + $l_h_user_s = $lang['Hidden_users_total']; + } + + if ( $guests_online == 0 ) + { + $l_g_user_s = $lang['Guest_users_zero_total']; + } + else if ( $guests_online == 1 ) + { + $l_g_user_s = $lang['Guest_user_total']; + } + else + { + $l_g_user_s = $lang['Guest_users_total']; + } + + $l_online_users = sprintf($l_t_user_s, $total_online_users); + $l_online_users .= sprintf($l_r_user_s, $logged_visible_online); + $l_online_users .= sprintf($l_h_user_s, $logged_hidden_online); + $l_online_users .= sprintf($l_g_user_s, $guests_online); +} + +// +// Obtain number of new private messages +// if user is logged in +// +if ( ($userdata['session_logged_in']) && (empty($gen_simple_header)) ) +{ + if ( $userdata['user_new_privmsg'] ) + { + $l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms']; + $l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']); + + if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_last_privmsg = " . $userdata['user_lastvisit'] . " + WHERE user_id = " . $userdata['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql); + } + + $s_privmsg_new = 1; + $icon_pm = $images['pm_new_msg']; + } + else + { + $s_privmsg_new = 0; + $icon_pm = $images['pm_new_msg']; + } + } + else + { + $l_privmsgs_text = $lang['No_new_pm']; + + $s_privmsg_new = 0; + $icon_pm = $images['pm_no_new_msg']; + } + + if ( $userdata['user_unread_privmsg'] ) + { + $l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms']; + $l_privmsgs_text_unread = sprintf($l_message_unread, $userdata['user_unread_privmsg']); + } + else + { + $l_privmsgs_text_unread = $lang['No_unread_pm']; + } +} +else +{ + $icon_pm = $images['pm_no_new_msg']; + $l_privmsgs_text = $lang['Login_check_pm']; + $l_privmsgs_text_unread = ''; + $s_privmsg_new = 0; +} + +// +// Generate HTML required for Mozilla Navigation bar +// +if (!isset($nav_links)) +{ + $nav_links = array(); +} + +$nav_links_html = ''; +$nav_link_proto = '' . "\n"; +while( list($nav_item, $nav_array) = @each($nav_links) ) +{ + if ( !empty($nav_array['url']) ) + { + $nav_links_html .= sprintf($nav_link_proto, $nav_item, append_sid($nav_array['url']), $nav_array['title']); + } + else + { + // We have a nested array, used for items like that can occur more than once. + while( list(,$nested_array) = each($nav_array) ) + { + $nav_links_html .= sprintf($nav_link_proto, $nav_item, $nested_array['url'], $nested_array['title']); + } + } +} + +// Format Timezone. We are unable to use array_pop here, because of PHP3 compatibility +$l_timezone = explode('.', $board_config['board_timezone']); +$l_timezone = (count($l_timezone) > 1 && $l_timezone[count($l_timezone)-1] != 0) ? $lang[sprintf('%.1f', $board_config['board_timezone'])] : $lang[number_format($board_config['board_timezone'])]; +// +// The following assigns all _common_ variables that may be used at any point +// in a template. +// +$template->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'SITE_DESCRIPTION' => $board_config['site_desc'], + 'PAGE_TITLE' => $page_title, + 'LAST_VISIT_DATE' => sprintf($lang['You_last_visit'], $s_last_visit), + 'CURRENT_TIME' => sprintf($lang['Current_time'], create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])), + 'TOTAL_USERS_ONLINE' => $l_online_users, + 'LOGGED_IN_USER_LIST' => $online_userlist, + 'RECORD_USERS' => sprintf($lang['Record_online_users'], $board_config['record_online_users'], create_date($board_config['default_dateformat'], $board_config['record_online_date'], $board_config['board_timezone'])), + 'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text, + 'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread, + 'PRIVATE_MESSAGE_NEW_FLAG' => $s_privmsg_new, + + 'PRIVMSG_IMG' => $icon_pm, + + 'L_USERNAME' => $lang['Username'], + 'L_PASSWORD' => $lang['Password'], + 'L_LOGIN_LOGOUT' => $l_login_logout, + 'L_LOGIN' => $lang['Login'], + 'L_LOG_ME_IN' => $lang['Log_me_in'], + 'L_AUTO_LOGIN' => $lang['Log_me_in'], + 'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']), + 'L_REGISTER' => $lang['Register'], + 'L_PROFILE' => $lang['Profile'], + 'L_SEARCH' => $lang['Search'], + 'L_PRIVATEMSGS' => $lang['Private_Messages'], + 'L_WHO_IS_ONLINE' => $lang['Who_is_Online'], + 'L_MEMBERLIST' => $lang['Memberlist'], + 'L_FAQ' => $lang['FAQ'], + 'L_USERGROUPS' => $lang['Usergroups'], + 'L_SEARCH_NEW' => $lang['Search_new'], + 'L_SEARCH_UNANSWERED' => $lang['Search_unanswered'], + 'L_SEARCH_SELF' => $lang['Search_your_posts'], + 'L_WHOSONLINE_ADMIN' => sprintf($lang['Admin_online_color'], '', ''), + 'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '', ''), + + 'U_SEARCH_UNANSWERED' => append_sid('search.'.$phpEx.'?search_id=unanswered'), + 'U_SEARCH_SELF' => append_sid('search.'.$phpEx.'?search_id=egosearch'), + 'U_SEARCH_NEW' => append_sid('search.'.$phpEx.'?search_id=newposts'), + 'U_INDEX' => append_sid('index.'.$phpEx), + 'U_REGISTER' => append_sid('profile.'.$phpEx.'?mode=register'), + 'U_PROFILE' => append_sid('profile.'.$phpEx.'?mode=editprofile'), + 'U_PRIVATEMSGS' => append_sid('privmsg.'.$phpEx.'?folder=inbox'), + 'U_PRIVATEMSGS_POPUP' => append_sid('privmsg.'.$phpEx.'?mode=newpm'), + 'U_SEARCH' => append_sid('search.'.$phpEx), + 'U_MEMBERLIST' => append_sid('memberlist.'.$phpEx), + 'U_MODCP' => append_sid('modcp.'.$phpEx), + 'U_FAQ' => append_sid('faq.'.$phpEx), + 'U_VIEWONLINE' => append_sid('viewonline.'.$phpEx), + 'U_LOGIN_LOGOUT' => append_sid($u_login_logout), + 'U_GROUP_CP' => append_sid('groupcp.'.$phpEx), + + 'S_CONTENT_DIRECTION' => $lang['DIRECTION'], + 'S_CONTENT_ENCODING' => $lang['ENCODING'], + 'S_CONTENT_DIR_LEFT' => $lang['LEFT'], + 'S_CONTENT_DIR_RIGHT' => $lang['RIGHT'], + 'S_TIMEZONE' => sprintf($lang['All_times'], $l_timezone), + 'S_LOGIN_ACTION' => append_sid('login.'.$phpEx), + + 'T_HEAD_STYLESHEET' => $theme['head_stylesheet'], + 'T_BODY_BACKGROUND' => $theme['body_background'], + 'T_BODY_BGCOLOR' => '#'.$theme['body_bgcolor'], + 'T_BODY_TEXT' => '#'.$theme['body_text'], + 'T_BODY_LINK' => '#'.$theme['body_link'], + 'T_BODY_VLINK' => '#'.$theme['body_vlink'], + 'T_BODY_ALINK' => '#'.$theme['body_alink'], + 'T_BODY_HLINK' => '#'.$theme['body_hlink'], + 'T_TR_COLOR1' => '#'.$theme['tr_color1'], + 'T_TR_COLOR2' => '#'.$theme['tr_color2'], + 'T_TR_COLOR3' => '#'.$theme['tr_color3'], + 'T_TR_CLASS1' => $theme['tr_class1'], + 'T_TR_CLASS2' => $theme['tr_class2'], + 'T_TR_CLASS3' => $theme['tr_class3'], + 'T_TH_COLOR1' => '#'.$theme['th_color1'], + 'T_TH_COLOR2' => '#'.$theme['th_color2'], + 'T_TH_COLOR3' => '#'.$theme['th_color3'], + 'T_TH_CLASS1' => $theme['th_class1'], + 'T_TH_CLASS2' => $theme['th_class2'], + 'T_TH_CLASS3' => $theme['th_class3'], + 'T_TD_COLOR1' => '#'.$theme['td_color1'], + 'T_TD_COLOR2' => '#'.$theme['td_color2'], + 'T_TD_COLOR3' => '#'.$theme['td_color3'], + 'T_TD_CLASS1' => $theme['td_class1'], + 'T_TD_CLASS2' => $theme['td_class2'], + 'T_TD_CLASS3' => $theme['td_class3'], + 'T_FONTFACE1' => $theme['fontface1'], + 'T_FONTFACE2' => $theme['fontface2'], + 'T_FONTFACE3' => $theme['fontface3'], + 'T_FONTSIZE1' => $theme['fontsize1'], + 'T_FONTSIZE2' => $theme['fontsize2'], + 'T_FONTSIZE3' => $theme['fontsize3'], + 'T_FONTCOLOR1' => '#'.$theme['fontcolor1'], + 'T_FONTCOLOR2' => '#'.$theme['fontcolor2'], + 'T_FONTCOLOR3' => '#'.$theme['fontcolor3'], + 'T_SPAN_CLASS1' => $theme['span_class1'], + 'T_SPAN_CLASS2' => $theme['span_class2'], + 'T_SPAN_CLASS3' => $theme['span_class3'], + + 'NAV_LINKS' => $nav_links_html) +); + +// +// Login box? +// +if ( !$userdata['session_logged_in'] ) +{ + $template->assign_block_vars('switch_user_logged_out', array()); + // + // Allow autologin? + // + if (!isset($board_config['allow_autologin']) || $board_config['allow_autologin'] ) + { + $template->assign_block_vars('switch_allow_autologin', array()); + $template->assign_block_vars('switch_user_logged_out.switch_allow_autologin', array()); + } +} +else +{ + $template->assign_block_vars('switch_user_logged_in', array()); + + if ( !empty($userdata['user_popup_pm']) ) + { + $template->assign_block_vars('switch_enable_pm_popup', array()); + } +} + +// Add no-cache control for cookies if they are set +//$c_no_cache = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_data'])) ? 'no-cache="set-cookie", ' : ''; + +// Work around for "current" Apache 2 + PHP module which seems to not +// cope with private cache control setting +if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2')) +{ + header ('Cache-Control: no-cache, pre-check=0, post-check=0'); +} +else +{ + header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0'); +} +header ('Expires: 0'); +header ('Pragma: no-cache'); + +$template->pparse('overall_header'); + +?> \ No newline at end of file diff --git a/phpBB2/includes/page_tail.php b/phpBB2/includes/page_tail.php new file mode 100644 index 0000000..af3c06c --- /dev/null +++ b/phpBB2/includes/page_tail.php @@ -0,0 +1,76 @@ +' . $lang['Admin_panel'] . '

' : ''; + +$template->set_filenames(array( + 'overall_footer' => ( empty($gen_simple_header) ) ? 'overall_footer.tpl' : 'simple_footer.tpl') +); + +$template->assign_vars(array( + 'TRANSLATION_INFO' => (isset($lang['TRANSLATION_INFO'])) ? $lang['TRANSLATION_INFO'] : ((isset($lang['TRANSLATION'])) ? $lang['TRANSLATION'] : ''), + 'ADMIN_LINK' => $admin_link) +); + +$template->pparse('overall_footer'); + +// +// Close our DB connection. +// +$db->sql_close(); + +// +// Compress buffered output if required and send to browser +// +if ( $do_gzip_compress ) +{ + // + // Borrowed from php.net! + // + $gzip_contents = ob_get_contents(); + ob_end_clean(); + + $gzip_size = strlen($gzip_contents); + $gzip_crc = crc32($gzip_contents); + + $gzip_contents = gzcompress($gzip_contents, 9); + $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); + + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; + echo $gzip_contents; + echo pack('V', $gzip_crc); + echo pack('V', $gzip_size); +} + +exit; + +?> \ No newline at end of file diff --git a/phpBB2/includes/prune.php b/phpBB2/includes/prune.php new file mode 100644 index 0000000..127533e --- /dev/null +++ b/phpBB2/includes/prune.php @@ -0,0 +1,175 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain lists of topics to sync', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + sync('topic', $row['topic_id']); + } + + $db->sql_freeresult($result); + + $prune_all = ($prune_all) ? '' : 'AND t.topic_vote = 0 AND t.topic_type <> ' . POST_ANNOUNCE; + // + // Those without polls and announcements ... unless told otherwise! + // + $sql = "SELECT t.topic_id + FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t + WHERE t.forum_id = $forum_id + $prune_all + AND p.post_id = t.topic_last_post_id"; + if ( $prune_date != '' ) + { + $sql .= " AND p.post_time < $prune_date"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain lists of topics to prune', '', __LINE__, __FILE__, $sql); + } + + $sql_topics = ''; + while( $row = $db->sql_fetchrow($result) ) + { + $sql_topics .= ( ( $sql_topics != '' ) ? ', ' : '' ) . $row['topic_id']; + } + $db->sql_freeresult($result); + + if( $sql_topics != '' ) + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE forum_id = $forum_id + AND topic_id IN ($sql_topics)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain list of posts to prune', '', __LINE__, __FILE__, $sql); + } + + $sql_post = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $sql_post .= ( ( $sql_post != '' ) ? ', ' : '' ) . $row['post_id']; + } + $db->sql_freeresult($result); + + if ( $sql_post != '' ) + { + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id IN ($sql_topics)"; + if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete watched topics during prune', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($sql_topics)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete topics during prune', '', __LINE__, __FILE__, $sql); + } + + $pruned_topics = $db->sql_affectedrows(); + + $sql = "DELETE FROM " . POSTS_TABLE . " + WHERE post_id IN ($sql_post)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete post_text during prune', '', __LINE__, __FILE__, $sql); + } + + $pruned_posts = $db->sql_affectedrows(); + + $sql = "DELETE FROM " . POSTS_TEXT_TABLE . " + WHERE post_id IN ($sql_post)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete post during prune', '', __LINE__, __FILE__, $sql); + } + + remove_search_post($sql_post); + + return array ('topics' => $pruned_topics, 'posts' => $pruned_posts); + } + } + + return array('topics' => 0, 'posts' => 0); +} + +// +// Function auto_prune(), this function will read the configuration data from +// the auto_prune table and call the prune function with the necessary info. +// +function auto_prune($forum_id = 0) +{ + global $db, $lang; + + $sql = "SELECT * + FROM " . PRUNE_TABLE . " + WHERE forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not read auto_prune table', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( $row['prune_freq'] && $row['prune_days'] ) + { + $prune_date = time() - ( $row['prune_days'] * 86400 ); + $next_prune = time() + ( $row['prune_freq'] * 86400 ); + + prune($forum_id, $prune_date); + sync('forum', $forum_id); + + $sql = "UPDATE " . FORUMS_TABLE . " + SET prune_next = $next_prune + WHERE forum_id = $forum_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update forum table', '', __LINE__, __FILE__, $sql); + } + } + } + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/sessions.php b/phpBB2/includes/sessions.php new file mode 100644 index 0000000..851fae7 --- /dev/null +++ b/phpBB2/includes/sessions.php @@ -0,0 +1,578 @@ +sql_query($sql))) + { + message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); + } + + $userdata = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + $enable_autologin = $login = 1; + } + else if (!$auto_create) + { + $sessiondata['autologinid'] = ''; + $sessiondata['userid'] = $user_id; + + $sql = 'SELECT * + FROM ' . USERS_TABLE . ' + WHERE user_id = ' . (int) $user_id . ' + AND user_active = 1'; + if (!($result = $db->sql_query($sql))) + { + message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); + } + + $userdata = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + $login = 1; + } + } + + // + // At this point either $userdata should be populated or + // one of the below is true + // * Key didn't match one in the DB + // * User does not exist + // * User is inactive + // + if (!sizeof($userdata) || !is_array($userdata) || !$userdata) + { + $sessiondata['autologinid'] = ''; + $sessiondata['userid'] = $user_id = ANONYMOUS; + $enable_autologin = $login = 0; + + $sql = 'SELECT * + FROM ' . USERS_TABLE . ' + WHERE user_id = ' . (int) $user_id; + if (!($result = $db->sql_query($sql))) + { + message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); + } + + $userdata = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + } + + + // + // Initial ban check against user id, IP and email address + // + preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts); + + $sql = "SELECT ban_ip, ban_userid, ban_email + FROM " . BANLIST_TABLE . " + WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff') + OR ban_userid = $user_id"; + if ( $user_id != ANONYMOUS ) + { + $sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "' + OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'"; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql); + } + + if ( $ban_info = $db->sql_fetchrow($result) ) + { + if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] ) + { + message_die(CRITICAL_MESSAGE, 'You_been_banned'); + } + } + + // + // Create or update the session + // + $sql = "UPDATE " . SESSIONS_TABLE . " + SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin + WHERE session_id = '" . $session_id . "' + AND session_ip = '$user_ip'"; + if ( !$db->sql_query($sql) || !$db->sql_affectedrows() ) + { + $session_id = md5(dss_rand()); + + $sql = "INSERT INTO " . SESSIONS_TABLE . " + (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) + VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql); + } + } + + if ( $user_id != ANONYMOUS ) + { + $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; + + if (!$admin) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit + WHERE user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql); + } + } + + $userdata['user_lastvisit'] = $last_visit; + + // + // Regenerate the auto-login key + // + if ($enable_autologin) + { + $auto_login_key = dss_rand() . dss_rand(); + + if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '') + { + $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . " + SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time + WHERE key_id = '" . md5($sessiondata['autologinid']) . "'"; + } + else + { + $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login) + VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)"; + } + + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql); + } + + $sessiondata['autologinid'] = $auto_login_key; + unset($auto_login_key); + } + else + { + $sessiondata['autologinid'] = ''; + } + +// $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologinid']; + $sessiondata['userid'] = $user_id; + } + + $userdata['session_id'] = $session_id; + $userdata['session_ip'] = $user_ip; + $userdata['session_user_id'] = $user_id; + $userdata['session_logged_in'] = $login; + $userdata['session_page'] = $page_id; + $userdata['session_start'] = $current_time; + $userdata['session_time'] = $current_time; + $userdata['session_admin'] = $admin; + $userdata['session_key'] = $sessiondata['autologinid']; + + setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); + setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); + + $SID = 'sid=' . $session_id; + + return $userdata; +} + +// +// Checks for a given user session, tidies session table and updates user +// sessions at each page refresh +// +function session_pagestart($user_ip, $thispage_id) +{ + global $db, $lang, $board_config; + global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID; + + $cookiename = $board_config['cookie_name']; + $cookiepath = $board_config['cookie_path']; + $cookiedomain = $board_config['cookie_domain']; + $cookiesecure = $board_config['cookie_secure']; + + $current_time = time(); + unset($userdata); + + if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ) + { + $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array(); + $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : ''; + $sessionmethod = SESSION_METHOD_COOKIE; + } + else + { + $sessiondata = array(); + $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : ''; + $sessionmethod = SESSION_METHOD_GET; + } + + // + if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) + { + $session_id = ''; + } + + $thispage_id = (int) $thispage_id; + + // + // Does a session exist? + // + if ( !empty($session_id) ) + { + // + // session_id exists so go ahead and attempt to grab all + // data in preparation + // + $sql = "SELECT u.*, s.* + FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u + WHERE s.session_id = '$session_id' + AND u.user_id = s.session_user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); + } + + $userdata = $db->sql_fetchrow($result); + + // + // Did the session exist in the DB? + // + if ( isset($userdata['user_id']) ) + { + // + // Do not check IP assuming equivalence, if IPv4 we'll check only first 24 + // bits ... I've been told (by vHiker) this should alleviate problems with + // load balanced et al proxies while retaining some reliance on IP security. + // + $ip_check_s = substr($userdata['session_ip'], 0, 6); + $ip_check_u = substr($user_ip, 0, 6); + + if ($ip_check_s == $ip_check_u) + { + $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : ''; + + // + // Only update session DB a minute or so after last update + // + if ( $current_time - $userdata['session_time'] > 60 ) + { + // A little trick to reset session_admin on session re-usage + $update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', session_admin = 0' : ''; + + $sql = "UPDATE " . SESSIONS_TABLE . " + SET session_time = $current_time, session_page = $thispage_id$update_admin + WHERE session_id = '" . $userdata['session_id'] . "'"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); + } + + if ( $userdata['user_id'] != ANONYMOUS ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_session_time = $current_time, user_session_page = $thispage_id + WHERE user_id = " . $userdata['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); + } + } + + session_clean($userdata['session_id']); + + setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); + setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); + } + + // Add the session_key to the userdata array if it is set + if ( isset($sessiondata['autologinid']) && $sessiondata['autologinid'] != '' ) + { + $userdata['session_key'] = $sessiondata['autologinid']; + } + + return $userdata; + } + } + } + + // + // If we reach here then no (valid) session exists. So we'll create a new one, + // using the cookie user_id if available to pull basic user prefs. + // + $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS; + + if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) ) + { + message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql); + } + + return $userdata; + +} + +/** +* Terminates the specified session +* It will delete the entry in the sessions table for this session, +* remove the corresponding auto-login key and reset the cookies +*/ +function session_end($session_id, $user_id) +{ + global $db, $lang, $board_config, $userdata; + global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID; + + $cookiename = $board_config['cookie_name']; + $cookiepath = $board_config['cookie_path']; + $cookiedomain = $board_config['cookie_domain']; + $cookiesecure = $board_config['cookie_secure']; + + $current_time = time(); + + if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) + { + return; + } + + // + // Delete existing session + // + $sql = 'DELETE FROM ' . SESSIONS_TABLE . " + WHERE session_id = '$session_id' + AND session_user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql); + } + + // + // Remove this auto-login entry (if applicable) + // + if ( isset($userdata['session_key']) && $userdata['session_key'] != '' ) + { + $autologin_key = md5($userdata['session_key']); + $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . ' + WHERE user_id = ' . (int) $user_id . " + AND key_id = '$autologin_key'"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql); + } + } + + // + // We expect that message_die will be called after this function, + // but just in case it isn't, reset $userdata to the details for a guest + // + $sql = 'SELECT * + FROM ' . USERS_TABLE . ' + WHERE user_id = ' . ANONYMOUS; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql); + } + if ( !($userdata = $db->sql_fetchrow($result)) ) + { + message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql); + } + $db->sql_freeresult($result); + + + setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure); + setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure); + + return true; +} + +/** +* Removes expired sessions and auto-login keys from the database +*/ +function session_clean($session_id) +{ + global $board_config, $db; + + // + // Delete expired sessions + // + $sql = 'DELETE FROM ' . SESSIONS_TABLE . ' + WHERE session_time < ' . (time() - (int) $board_config['session_length']) . " + AND session_id <> '$session_id'"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql); + } + + // + // Delete expired auto-login keys + // If max_autologin_time is not set then keys will never be deleted + // (same behaviour as old 2.0.x session code) + // + if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] > 0) + { + $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . ' + WHERE last_login < ' . (time() - (86400 * (int) $board_config['max_autologin_time'])); + $db->sql_query($sql); + } + + return true; +} + +/** +* Reset all login keys for the specified user +* Called on password changes +*/ +function session_reset_keys($user_id, $user_ip) +{ + global $db, $userdata, $board_config; + + $key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? "AND key_id != '" . md5($userdata['session_key']) . "'" : ''; + + $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . ' + WHERE user_id = ' . (int) $user_id . " + $key_sql"; + + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql); + } + + $where_sql = 'session_user_id = ' . (int) $user_id; + $where_sql .= ($user_id == $userdata['user_id']) ? " AND session_id <> '" . $userdata['session_id'] . "'" : ''; + $sql = 'DELETE FROM ' . SESSIONS_TABLE . " + WHERE $where_sql"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql); + } + + if ( !empty($key_sql) ) + { + $auto_login_key = dss_rand() . dss_rand(); + + $current_time = time(); + + $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . " + SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time + WHERE key_id = '" . md5($userdata['session_key']) . "'"; + + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql); + } + + // And now rebuild the cookie + $sessiondata['userid'] = $user_id; + $sessiondata['autologinid'] = $auto_login_key; + $cookiename = $board_config['cookie_name']; + $cookiepath = $board_config['cookie_path']; + $cookiedomain = $board_config['cookie_domain']; + $cookiesecure = $board_config['cookie_secure']; + + setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); + + $userdata['session_key'] = $auto_login_key; + unset($sessiondata); + unset($auto_login_key); + } +} + +// +// Append $SID to a url. Borrowed from phplib and modified. This is an +// extra routine utilised by the session code above and acts as a wrapper +// around every single URL and form action. If you replace the session +// code you must include this routine, even if it's empty. +// +function append_sid($url, $non_html_amp = false) +{ + global $SID; + + if ( !empty($SID) && !preg_match('#sid=#', $url) ) + { + $url .= ( ( strpos($url, '?') !== false ) ? ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID; + } + + return $url; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/smtp.php b/phpBB2/includes/smtp.php new file mode 100644 index 0000000..b4f1112 --- /dev/null +++ b/phpBB2/includes/smtp.php @@ -0,0 +1,210 @@ + 1) + { + $headers = join("\n", $headers); + } + else + { + $headers = $headers[0]; + } + } + $headers = chop($headers); + + // Make sure there are no bare linefeeds in the headers + $headers = preg_replace('#(?\r\n"); + server_parse($socket, "250", __LINE__); + + // Specify each user to send to and build to header. + $to_header = ''; + + // Add an additional bit of error checking to the To field. + $mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to); + if (preg_match('#[^ ]+\@[^ ]+#', $mail_to)) + { + fputs($socket, "RCPT TO: <$mail_to>\r\n"); + server_parse($socket, "250", __LINE__); + } + + // Ok now do the CC and BCC fields... + @reset($bcc); + while(list(, $bcc_address) = each($bcc)) + { + // Add an additional bit of error checking to bcc header... + $bcc_address = trim($bcc_address); + if (preg_match('#[^ ]+\@[^ ]+#', $bcc_address)) + { + fputs($socket, "RCPT TO: <$bcc_address>\r\n"); + server_parse($socket, "250", __LINE__); + } + } + + @reset($cc); + while(list(, $cc_address) = each($cc)) + { + // Add an additional bit of error checking to cc header + $cc_address = trim($cc_address); + if (preg_match('#[^ ]+\@[^ ]+#', $cc_address)) + { + fputs($socket, "RCPT TO: <$cc_address>\r\n"); + server_parse($socket, "250", __LINE__); + } + } + + // Ok now we tell the server we are ready to start sending data + fputs($socket, "DATA\r\n"); + + // This is the last response code we look for until the end of the message. + server_parse($socket, "354", __LINE__); + + // Send the Subject Line... + fputs($socket, "Subject: $subject\r\n"); + + // Now the To Header. + fputs($socket, "To: $mail_to\r\n"); + + // Now any custom headers.... + fputs($socket, "$headers\r\n\r\n"); + + // Ok now we are ready for the message... + fputs($socket, "$message\r\n"); + + // Ok the all the ingredients are mixed in let's cook this puppy... + fputs($socket, ".\r\n"); + server_parse($socket, "250", __LINE__); + + // Now tell the server we are done and close the socket... + fputs($socket, "QUIT\r\n"); + fclose($socket); + + return TRUE; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/sql_parse.php b/phpBB2/includes/sql_parse.php new file mode 100644 index 0000000..ad27bb3 --- /dev/null +++ b/phpBB2/includes/sql_parse.php @@ -0,0 +1,192 @@ + 0)) + { + if ($lines[$i][0] != "#") + { + $output .= $lines[$i] . "\n"; + } + else + { + $output .= "\n"; + } + // Trading a bit of speed for lower mem. use here. + $lines[$i] = ""; + } + } + + return $output; + +} + +// +// split_sql_file will split an uploaded sql file into single sql statements. +// Note: expects trim() to have already been run on $sql. +// +function split_sql_file($sql, $delimiter) +{ + // Split up our string into "possible" SQL statements. + $tokens = explode($delimiter, $sql); + + // try to save mem. + $sql = ""; + $output = array(); + + // we don't actually care about the matches preg gives us. + $matches = array(); + + // this is faster than calling count($oktens) every time thru the loop. + $token_count = count($tokens); + for ($i = 0; $i < $token_count; $i++) + { + // Don't wanna add an empty string as the last thing in the array. + if (($i != ($token_count - 1)) || (strlen($tokens[$i] > 0))) + { + // This is the total number of single quotes in the token. + $total_quotes = preg_match_all("/'/", $tokens[$i], $matches); + // Counts single quotes that are preceded by an odd number of backslashes, + // which means they're escaped quotes. + $escaped_quotes = preg_match_all("/(? \ No newline at end of file diff --git a/phpBB2/includes/template.php b/phpBB2/includes/template.php new file mode 100644 index 0000000..abb3d8a --- /dev/null +++ b/phpBB2/includes/template.php @@ -0,0 +1,2450 @@ +_tpldata[block.][iteration#][child.][iteration#][child2.][iteration#][variablename] == value + // if it's a root-level variable, it'll be like this: + // $this->vars[varname] == value or $this->_tpldata['.'][0][varname] == value + // array "vars" is added for easier access to data + var $_tpldata = array('.' => array(0 => array())); + var $vars; + + // Hash of filenames for each template handle. + var $files = array(); + var $files_cache = array(); // array of cache files that exists + var $files_cache2 = array(); // array of cache files (exists or not exists) + + // Root template directory. + var $root = ''; + + // Cache directory (compatible with default cache mod) + var $cachedir = ''; + + // Search/replace for unknown files + var $cache_search = array(); + var $cache_replace = array(); + + // Template root directory (generated by set_rootdir) + var $tpldir = ''; + var $tpldir_len = 0; + + // Default template directory. + // If file for default template isn't found file from this template is used. + var $tpldef = 'subSilver'; + + // this will hash handle names to the compiled code for that handle. + var $compiled_code = array(); + + // This will hold the uncompiled code for that handle. + var $uncompiled_code = array(); + + // Cache settings + var $use_cache = 1; + var $cache_writable = 1; + + // Auto-compile setting + var $auto_compile = 1; + + // Current template name + var $tpl = ''; + + // List of replacements. tpl files in this list will be replaced with other tpl files + // according to configuration in xs.cfg + var $replace = array(); + + // counter for include + var $include_count = 0; + + // php extension. will be replaced by $phpEx in Template() function unless you disable it there + var $php = 'php'; + + // True if check switches + var $xs_check_switches = 1; + + // eXtreme Styles variables + var $xs_started = 0; + var $xs_version = 8; // number version. internal. do not change. + var $xs_versiontxt = '2.3.1'; // text version + + // These handles will be parsed if pparse() is executed. + // Can be used to automatically include header/footer if there is any content. + var $preparse = ''; + var $postparse = ''; + + // subtemplates mod detection + var $subtemplates = false; + + // style configuration + var $style_config = array(); + + // list of switches that are known typos in some mods. + // when error checking is enabled these errors will be auto-fixed. + // format: + // array(start_tag, end_tag) + var $bugs = array( + // ezportal typo: + array('fetchpost_row', 'fetch_post_row'), + // mycalendar 2.2.7 typos: + array('date_cell', 'date_cells'), + array('date_row', 'date_rows'), + // history mod typo: + array('site_today', 'site_week'), + ); + + /** + * Constructor. Installs XS mod on first run or updates it and sets the root dir. + */ + function Template($root = '.') + { + // setting pointer "vars" + $this->vars = &$this->_tpldata['.'][0]; + // load configuration + $this->load_config($root, true); + } + + /** + * Load mod configuration + */ + function load_config($root, $edit_db) + { + global $board_config, $phpbb_root_path, $phpEx; + // getting mod version from config and comparing with real data + $ver = isset($board_config['xs_version']) ? $board_config['xs_version'] : 0; + // check configuration + // set config values if there aren't any + $add = array(); + $del = array(); + $up = array(); + // list of outdated variables + $outdated = array( + 'xs_versoin', // was a typo in one of previous versions + 'xs_separator', // no longer used + 'xs_cache_dir_absolute', // no longer used + 'xs_cache_dir', // no longer used + 'xs_use_isset', // no longer used + ); + // list of default values + $default = array( + 'xs_auto_compile' => 1, + 'xs_auto_recompile' => 1, + 'xs_use_cache' => 1, + 'xs_php' => $phpEx, + 'xs_def_template' => 'subSilver', + 'xs_check_switches' => 1, + 'xs_warn_includes' => 1, + 'xs_add_comments' => 0, + 'xs_ftp_host' => '', + 'xs_ftp_login' => '', + 'xs_ftp_path' => '', + 'xs_downloads_count' => '0', + 'xs_downloads_default' => '0', + 'xs_shownav' => '1', + 'xs_template_time' => '0', + ); + // checking if all variables exist + foreach($default as $var => $value) + { + if(!isset($board_config[$var])) + { + $board_config[$var] = $value; + $add[] = $var; + } + } + // checking if there are any outdated variables that should be deleted + for($i=0; $ixs_version; + $add[] = 'xs_version'; + } + elseif($board_config['xs_version'] != $this->xs_version) + { + $board_config['xs_version'] = $this->xs_version; + $up[] = 'xs_version'; + } + // check config + if(!empty($board_config['xs_auto_recompile'])) + { + if(!$board_config['xs_auto_compile']) + { + $board_config['xs_auto_compile'] = 1; + if(!in_array('xs_auto_compile', $up) && !in_array('xs_auto_compile', $add)) + { + $up[] = 'xs_auto_compile'; + } + } + } + // install/upgrade + if($edit_db && ((count($add) > 0) || (count($up) > 0) || (count($del) > 0))) + { + $board_config['xs_template_time'] = time(); + if(!in_array('xs_template_time', $up)) + { + $up[] = 'xs_template_time'; + } + global $db; + if(!empty($db)) + { + // adding new config values + for($i=0; $isql_query($sql); + } + // removing old configuration variables that aren't used + for($i=0; $isql_query($sql); + } + // updating variables that should be overwritten + for($i=0; $isql_query($sql); + } + // recache config table for cat_hierarchy 2.1.0 + global $config; + if(isset($config->data) && $config->data === $board_config && isset($config->data['mod_cat_hierarchy'])) + { + $config->read(true); + } + } + } + $this->php = $board_config['xs_php']; + $this->tpldef = $board_config['xs_def_template']; + $this->use_cache = $board_config['xs_use_cache']; + $this->auto_compile = $board_config['xs_auto_compile']; + $this->xs_check_switches = $board_config['xs_check_switches']; + $this->cache_search = array('.', '\\', '/', '_tpl'); + $this->cache_replace = array('_', XS_SEPARATOR, XS_SEPARATOR, '.'.$this->php); + $old_root = $this->root; + $this->set_rootdir($root); + if(!empty($this->tpl)) + { + $this->load_replacements($this->tpldir . $this->tpl . '/xs.cfg'); + } + if($old_root !== $this->root) + { + $this->clear_files(); + } + } + + /** + * Sets the template root directory for this Template object. + */ + function set_rootdir($dir) + { + global $board_config, $phpbb_root_path; + if (!@is_dir($dir)) + { + return false; + } + $dir = str_replace('\\', '/', $dir); + // creating absolute path for cache + $this->cachedir = $phpbb_root_path . XS_DIR_CACHE . '/'; + // creating absolute path for current template and root dir + $this->tpldir = $phpbb_root_path . 'templates/'; + $this->tpldir_len = strlen($this->tpldir); + $this->root = $dir; + $this->tpl = $this->template_name($dir); + // check configuration + $this->get_config(); + // check subtemplates mod + $sub_templates_cfg = $this->root . '/sub_templates.cfg'; + if(defined('LANG_EXTEND_DONE') && @file_exists($sub_templates_cfg)) + { + $this->subtemplates = true; + } + return true; + } + + /** + * Destroys this template object. Should be called when you're done with it, in order + * to clear out the template data so you can load/parse a new template set. + */ + function destroy() + { + $this->_tpldata = array('.' => array(0 => array())); + $this->vars = &$this->_tpldata['.'][0]; + $this->xs_started = 0; + } + + /** + * Clears list of compiled files. + */ + function clear_files() + { + $this->files = array(); + $this->files_cache = array(); + $this->files_cache2 = array(); + $this->compiled_code = array(); + $this->uncompiled_code = array(); + } + + /** + * Loads replacements from .cfg file + */ + function load_replacements($file) + { + if(@file_exists($file)) + { + $replace = array(); + @include($file); + $this->replace = array_merge($this->replace, $replace); + } + } + + /** + * Extracts template name from path + */ + function template_name($dir) + { + $tpl = XS_TPL_ANY; // can start at any position + $tpl_null = XS_TPL_START; // can start only at zero position + // searching for 'templates/' and removing everything before it + $pos = strpos($dir, $tpl); + if($pos === false) + { + if(substr($dir, 0, strlen($tpl_null)) !== $tpl_null) + { + return ''; + } + $str = substr($dir, strlen($tpl_null), strlen($dir)); + } + else + { + $str = substr($dir, $pos + strlen($tpl), strlen($dir)); + } + // searching for one more 'templates/' + // that can happen if full path is like /home/some_dude/templates/phpbb/templates/subSilver/ + $dir = $this->template_name($str); + if(!$dir) + { + $dir = $str; + } + if(strpos($str, $tpl) !== false) + { + $dir = $this->template_name($str); + } + // check for another subdirectory + $pos = strpos($dir, '/'); + if($pos) + { + $dir = substr($dir, 0, $pos); + } + return $dir; + } + + function subtemplates_make_filename($filename) + { + global $HTTP_GET_VARS, $HTTP_POST_VARS, $db, $board_config, $images, $theme; + global $sub_template_key_image, $sub_templates; + global $tree; + + // initiate the sub-template image pack that will be use + $sub_template_key_image = POST_CAT_URL . '0'; + + // Check if sub_templates are defined for this theme + if ( $board_config['version'] > '.0.5' ) + { + $sub_templates_cfg = @phpbb_realpath($this->root . '/sub_templates.cfg'); + } + else + { + $sub_templates_cfg = $this->root . '/sub_templates.cfg'; + } + @include($sub_templates_cfg); + if ( isset($sub_templates) ) + { + // search an id + $cat_id = 0; + $forum_id = 0; + $topic_id = 0; + $post_id = 0; + + if ( !defined('IN_PRIVMSG') && ( isset($HTTP_GET_VARS[POST_POST_URL]) || isset($HTTP_POST_VARS[POST_POST_URL]) ) ) + { + $post_id = isset($HTTP_GET_VARS[POST_POST_URL]) ? intval($HTTP_GET_VARS[POST_POST_URL]) : intval($HTTP_POST_VARS[POST_POST_URL]); + } + + if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) || isset($HTTP_POST_VARS[POST_TOPIC_URL]) ) + { + $topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]) ? intval($HTTP_GET_VARS[POST_TOPIC_URL]) : intval($HTTP_POST_VARS[POST_TOPIC_URL]); + } + + if ( isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL]) ) + { + $forum_id = isset($HTTP_GET_VARS[POST_FORUM_URL]) ? intval($HTTP_GET_VARS[POST_FORUM_URL]) : intval($HTTP_POST_VARS[POST_FORUM_URL]); + } + + if ( isset($HTTP_GET_VARS[POST_CAT_URL]) || isset($HTTP_POST_VARS[POST_CAT_URL]) ) + { + $cat_id = isset($HTTP_GET_VARS[POST_CAT_URL]) ? intval($HTTP_GET_VARS[POST_CAT_URL]) : intval($HTTP_POST_VARS[POST_CAT_URL]); + } + + if ( isset($HTTP_GET_VARS['selected_id']) || isset($HTTP_POST_VARS['selected_id']) ) + { + $selected_id = isset($HTTP_GET_VARS['selected_id']) ? $HTTP_GET_VARS['selected_id'] : $HTTP_POST_VARS['selected_id']; + $type = substr($selected_id, 0, 1); + $id = intval(substr($selected_id, 1)); + if (!empty($id)) switch ($type) + { + case POST_CAT_URL: + $cat_id = $id; + break; + case POST_FORUM_URL: + $forum_id = $id; + break; + case POST_TOPIC_URL: + $topic_id = $id; + break; + case POST_POST_URL: + if ( !defined('IN_PRIVMSG') ) + { + $post_id = $id; + break; + } + default: + break; + } + } + + // find the forum + if ( ($forum_id <= 0) && ($cat_id <= 0) ) + { + if ($post_id > 0) + { + $sql = "SELECT * FROM " . POSTS_TABLE . " WHERE post_id=$post_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Wasn\'t able to access posts', '', __LINE__, __FILE__, $sql); + } + if ( $row = $db->sql_fetchrow($result) ) + { + $forum_id = $row['forum_id']; + } + } + + if ($topic_id > 0) + { + $sql = "SELECT * FROM " . TOPICS_TABLE . " WHERE topic_id=$topic_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Wasn\'t able to access topics', '', __LINE__, __FILE__, $sql); + } + if ( $row = $db->sql_fetchrow($result) ) + { + $forum_id = $row['forum_id']; + } + } + } + + // is the categories hierarchy v 2 installed ? + $cat_hierarchy = function_exists('get_auth_keys'); + + // get the ids (forums and cats) + $fids = array(); + if (!$cat_hierarchy) + { + if ($forum_id > 0) + { + // add the forum_id + $fids[] = POST_FORUM_URL . $forum_id; + + // get the cat_id + $sql = "SELECT * FROM " . FORUMS_TABLE . " WHERE forum_id=$forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Wasn\'t able to access forums', '', __LINE__, __FILE__, $sql); + } + if ( $row = $db->sql_fetchrow($result) ) + { + $cat_id = $row['cat_id']; + } + } + + // add the cat_id + if ($cat_id > 0) + { + $fids[] = POST_CAT_URL . $cat_id; + } + + // add the root level + $fids[] = 'Root'; + } + else + { + // categories hierarchy v 2 compliancy + $cur = 'Root'; + if ($forum_id > 0) + { + $cur = POST_FORUM_URL . $forum_id; + } + else if ($cat_id > 0) + { + $cur = POST_CAT_URL . $cat_id; + } + + // add start + $fids[] = $cur; + while ( ($cur != 'Root') && !empty($cur) ) + { + // get parent level + $cur = (isset($tree['main'][ $tree['keys'][$cur] ])) ? $tree['main'][ $tree['keys'][$cur] ] : 'Root'; + + // add the parent level + if ( !empty($cur) ) + { + $fids[] = $cur; + } + } + } + + // search if this file is part of a sub-template + $sub_tpl_file = ''; + $sub_css_file = ''; + $sub_img_file = ''; + $sub_img_path = ''; + $template_path = 'templates/'; + $template_name = substr( $this->root, strpos($this->root, $template_path) + strlen($template_path) ); + $real_root = $this->root; + if ( $board_config['version'] > '.0.5' ) + { + $real_root = @phpbb_realpath($this->root); + } + if (substr($filename, 0, 1) != '/') + { + $found = false; + $num_fids = count($fids); + for ($i = 0; !$found && ($i < $num_fids); $i++) + { + $key = $fids[$i]; + + // convert root into c0 category + if ( ($key == 'Root') || empty($key) ) + { + $key = POST_CAT_URL . '0'; + } + + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + + // set the filename + if ( empty($sub_tpl_file) && file_exists($root_template_path . '/' . $filename) ) + { + $found = true; + $sub_tpl_file = $sub_templates[$key]['dir'] . '/' . $filename; + break; + } + } + } + + // set the css file name + $found = false; + $num_fids = count($fids); + for ($i = 0; !$found && ($i < $num_fids); $i++) + { + $key = $fids[$i]; + + // convert root into c0 category + if ( ($key == 'Root') || empty($key) ) + { + $key = POST_CAT_URL . '0'; + } + + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( empty($sub_css_file) && isset($sub_templates[$key]['head_stylesheet']) && file_exists($root_template_path . '/' . $sub_templates[$key]['head_stylesheet']) ) + { + $found = true; + $sub_css_file = $sub_templates[$key]['dir'] . '/' . $sub_templates[$key]['head_stylesheet']; + break; + } + } + } + + // set the img file name + $found = false; + $num_fids = count($fids); + for ($i = 0; !$found && ($i < $num_fids); $i++) + { + $key = $fids[$i]; + + // convert root into c0 category + if ( ($key == 'Root') || empty($key) ) + { + $key = POST_CAT_URL . '0'; + } + + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( isset($sub_templates[$key]['imagefile']) && file_exists($root_template_path . '/' . $sub_templates[$key]['imagefile']) ) + { + $sub_img_path = $sub_templates[$key]['dir']; + $sub_img_file = $sub_templates[$key]['imagefile']; + + // send back the lowest level of the images file + $found = true; + $sub_template_key_image = $key; + break; + } + } + } + } + + // set the tpl file + if ( !empty($sub_tpl_file) ) + { + $filename = $sub_tpl_file; + } + + // set the css file + if ( !empty($sub_css_file) ) + { + $theme['head_stylesheet'] = $sub_css_file; + } + + // get the root level images + $key = POST_CAT_URL . '0'; + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( isset($sub_templates[$key]['imagefile']) && file_exists($root_template_path . '/' . $sub_templates[$key]['imagefile']) ) + { + $sav_images = $images; + $images = array(); + @include($root_template_path . '/' . $sub_templates[$key]['imagefile']); + $img_lang = ( file_exists($root_template_path . '/images/lang_' . $board_config['default_lang']) ) ? $board_config['default_lang'] : 'english'; + foreach($images as $key => $value) + { + if ( !is_array($value) ) + { + $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value); + } + $sav_images[$key] = $images[$key]; + } + $images = $sav_images; + $sav_images = array(); + } + } + + // get the current images + if ( !empty($sub_template_key_image) && ($sub_template_key_image != POST_CAT_URL . '0') ) + { + $key = $sub_template_key_image; + + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( isset($sub_templates[$key]['imagefile']) && file_exists($root_template_path . '/' . $sub_templates[$key]['imagefile']) ) + { + $sav_images = $images; + $images = array(); + @include($root_template_path . '/' . $sub_templates[$key]['imagefile']); + $img_lang = ( file_exists($root_template_path . '/images/lang_' . $board_config['default_lang']) ) ? $board_config['default_lang'] : 'english'; + foreach($images as $key => $value) + { + if ( !is_array($value) ) + { + $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value); + } + $sav_images[$key] = $images[$key]; + } + $images = $sav_images; + $sav_images = array(); + } + } + } + return $filename; + } + + /** + * Generates a full path+filename for the given filename, which can either + * be an absolute name, or a name relative to the rootdir for this Template + * object. + */ + function make_filename($filename, $xs_include = false) + { + if($this->subtemplates) + { + $filename = $this->subtemplates_make_filename($filename); + } + // Check replacements list + if(!$xs_include && isset($this->replace[$filename])) + { + $filename = $this->replace[$filename]; + } + // Check if it's an absolute or relative path. + if ((substr($filename, 0, 1) !== '/') && (substr($filename, 1, 1) !== ':')) + { + return $this->root . '/' . $filename; + } + else + { + return str_replace('\\', '/', $filename); + } + } + + /** + * Converts template filename to cache filename. + * Returns empty string if non-cachable (for tpl files outside of root dir). + * $file should be absolute filename + */ + function make_filename_cache($file) + { + $str = str_replace($this->cache_search, $this->cache_replace, $file); + if(substr($file, 0, $this->tpldir_len) !== $this->tpldir || empty($this->tpl)) + { + return $this->cachedir . XS_TPL_PREFIX2 . $str; + } + // removing not needed part + $file = substr($file, $this->tpldir_len, strlen($file)); + // creating filename + return $this->cachedir . XS_TPL_PREFIX . str_replace($this->cache_search, $this->cache_replace, $file); + } + + /** + * Sets the template filenames for handles. $filename_array + * should be a hash of handle => filename pairs. + */ + function set_filenames($filename_array) + { + if (!is_array($filename_array)) + { + return false; + } + + foreach($filename_array as $handle => $filename) + { + $this->set_filename($handle, $filename); + } + + return true; + } + + + /** + * Assigns template filename for handle. + */ + function set_filename($handle, $filename, $xs_include = false, $quiet = false) + { + global $board_config; + $can_cache = $this->use_cache; + if(strpos($filename, '..') !== false) + { + $can_cache = false; + } + $this->files[$handle] = $this->make_filename($filename, $xs_include); + $this->files_cache[$handle] = ''; + $this->files_cache2[$handle] = ''; + // check if we are in admin control panel and override extreme styles mod controls if needed + if(defined('XS_ADMIN_OVERRIDE') && XS_ADMIN_OVERRIDE === true && @function_exists('xs_admin_override')) + { + xs_admin_override(); + } + // checking if we have valid filename + if(!$this->files[$handle]) + { + if($xs_include || $quiet) + { + return false; + } + else + { + die("Template->make_filename(): Error - invalid template $filename"); + } + } + // creating cache filename + if($can_cache) + { + $this->files_cache2[$handle] = $this->make_filename_cache($this->files[$handle]); + if(@file_exists($this->files_cache2[$handle])) + { + $this->files_cache[$handle] = $this->files_cache2[$handle]; + } + } + // checking if tpl and/or php file exists + if(empty($this->files_cache[$handle]) && !@file_exists($this->files[$handle])) + { + // trying to load alternative filename (usually subSilver) + if(!empty($this->tpldef) && !empty($this->tpl) && ($this->tpldef !== $this->tpl)) + { + $this->files[$handle] = ''; + // save old configuration + $root = $this->root; + $tpl_name = $this->tpl; + // set temporary configuration + $this->root = $this->tpldir . $this->tpldef; + $this->tpl = $this->tpldef; + // recursively run set_filename + $res = $this->set_filename($handle, $filename, $xs_include, $quiet); + // restore old configuration + $this->root = $root; + $this->tpl = $tpl_name; + return $res; + } + if($quiet) + { + return false; + } + if($xs_include) + { + if($board_config['xs_warn_includes']) + { + die('Template->make_filename(): Error - included template file not found: ' . $filename); + } + return false; + } + else + { + die('Template->make_filename(): Error - template file not found: ' . $filename); + } + } + // checking if we should recompile cache + if(!empty($this->files_cache[$handle]) && !empty($board_config['xs_auto_recompile'])) + { + $cache_time = @filemtime($this->files_cache[$handle]); + if(@filemtime($this->files[$handle]) > $cache_time || $board_config['xs_template_time'] > $cache_time) + { + // file was changed. don't use cache file (will be recompled if configuration allowes it) + $this->files_cache[$handle] = ''; + } + } + return true; + } + + /** + * includes file or executes code + */ + function execute($filename, $code, $handle) + { + global $lang, $theme, $board_config; + $template = $theme['template_name']; + global $$template; + $theme_info = &$$template; + if($board_config['xs_add_comments'] && $handle) + { + echo ''; + } + if($filename) + { + include($filename); + } + else + { + eval($code); + } + if($board_config['xs_add_comments'] && $handle) + { + echo ''; + } + return true; + } + + /** + * Load the file for the handle, compile the file, + * and run the compiled code. This will print out + * the results of executing the template. + */ + function pparse($handle) + { + global $board_config; + // parsing header if there is one + if($this->preparse || $this->postparse) + { + $preparse = $this->preparse; + $postparse = $this->postparse; + $this->preparse = ''; + $this->postparse = ''; + if($preparse) + { + $this->pparse($preparse); + } + if($postparse) + { + $str = $handle; + $handle = $postparse; + $this->pparse($str); + } + } + // checking if handle exists + if (empty($this->files[$handle]) && empty($this->files_cache[$handle])) + { + die("Template->loadfile(): No files found for handle $handle"); + } + $this->xs_startup(); + $force_recompile = empty($this->uncompiled_code[$handle]) ? false : true; + // checking if php file exists. + if (!empty($this->files_cache[$handle]) && !$force_recompile) + { + // php file exists - running it instead of tpl + $this->execute($this->files_cache[$handle], '', $handle); + return true; + } + if (!$this->loadfile($handle)) + { + die("Template->pparse(): Couldn't load template file for handle $handle"); + } + // actually compile the template now. + if (empty($this->compiled_code[$handle])) + { + // Actually compile the code now. + if(!empty($this->files_cache2[$handle]) && empty($this->files_cache[$handle]) && !$force_recompile) + { + $this->compiled_code[$handle] = $this->compile2($this->uncompiled_code[$handle], $handle, $this->files_cache2[$handle]); + } + else + { + $this->compiled_code[$handle] = $this->compile2($this->uncompiled_code[$handle], '', ''); + } + } + // Run the compiled code. + if (empty($this->files_cache[$handle]) || $force_recompile) + { + $this->execute('', $this->compiled_code[$handle], $handle); + } + else + { + $this->execute($this->files_cache[$handle], '', $handle); + } + return true; + } + + /** + * Precompile file + */ + function precompile($template, $filename) + { + global $precompile_num, $board_config; + if(empty($precompile_num)) + { + $precompile_num = 0; + } + $precompile_num ++; + $handle = 'precompile_' . $precompile_num; + // save old configuration + $root = $this->root; + $tpl_name = $this->tpl; + $old_config = $this->use_cache; + $old_autosave = $this->auto_compile; + // set temporary configuration + $this->root = $this->tpldir . $template; + $this->tpl = $template; + $this->use_cache = 1; + $this->auto_compile = 1; + // set filename + $res = $this->set_filename($handle, $filename, true, true); + if(!$res || !$this->files_cache2[$handle]) + { + $this->root = $root; + $this->tpl = $tpl_name; + $this->use_cache = $old_config; + $this->auto_compile = $old_autosave; + return false; + } + $this->files_cache[$handle] = ''; + // load template + $res = $this->loadfile($handle); + if(!$res || empty($this->uncompiled_code[$handle])) + { + $this->root = $root; + $this->tpl = $tpl_name; + $this->use_cache = $old_config; + $this->auto_compile = $old_autosave; + return false; + } + // compile the code + $this->compile2($this->uncompiled_code[$handle], $handle, $this->files_cache2[$handle]); + // restore confirugation + $this->root = $root; + $this->tpl = $tpl_name; + $this->use_cache = $old_config; + $this->auto_compile = $old_autosave; + return true; + } + + /** + * Inserts the uncompiled code for $handle as the + * value of $varname in the root-level. This can be used + * to effectively include a template in the middle of another + * template. + * Note that all desired assignments to the variables in $handle should be done + * BEFORE calling this function. + */ + function assign_var_from_handle($varname, $handle) + { + ob_start(); + $res = $this->pparse($handle); + $this->vars[$varname] = ob_get_contents(); + ob_end_clean(); + return $res; + } + + /** + * Block-level variable assignment. Adds a new block iteration with the given + * variable assignments. Note that this should only be called once per block + * iteration. + */ + function assign_block_vars($blockname, $vararray) + { + if (strstr($blockname, '.')) + { + // Nested block. + $blocks = explode('.', $blockname); + $blockcount = sizeof($blocks) - 1; + + $str = &$this->_tpldata; + for($i = 0; $i < $blockcount; $i++) + { + $str = &$str[$blocks[$i].'.']; + $str = &$str[sizeof($str)-1]; + } + // Now we add the block that we're actually assigning to. + // We're adding a new iteration to this block with the given + // variable assignments. + $str[$blocks[$blockcount].'.'][] = $vararray; + } + else + { + // Top-level block. + // Add a new iteration to this block with the variable assignments + // we were given. + $this->_tpldata[$blockname.'.'][] = $vararray; + } + + return true; + } + + /** + * Root-level variable assignment. Adds to current assignments, overriding + * any existing variable assignment with the same name. + */ + function assign_vars($vararray) + { + foreach($vararray as $key => $val) + { + $this->vars[$key] = $val; + } + return true; + } + + /** + * Root-level variable assignment. Adds to current assignments, overriding + * any existing variable assignment with the same name. + */ + function assign_var($varname, $varval) + { + $this->vars[$varname] = $varval; + + return true; + } + + /** + * If not already done, load the file for the given handle and populate + * the uncompiled_code[] hash with its code. Do not compile. + */ + function loadfile($handle) + { + global $board_config; + // If cached file exists do nothing - it will be included via include() + if(!empty($this->files_cache[$handle])) + { + return true; + } + + // If the file for this handle is already loaded and compiled, do nothing. + if (!empty($this->uncompiled_code[$handle])) + { + return true; + } + + // If we don't have a file assigned to this handle, die. + if (empty($this->files[$handle])) + { + die("Template->loadfile(): No file specified for handle $handle"); + } + + $filename = $this->files[$handle]; + + $str = implode('', @file($filename)); + if (empty($str)) + { + die("Template->loadfile(): File $filename for handle $handle is empty"); + } + + $this->uncompiled_code[$handle] = $str; + + return true; + } + + + + /** + * Generates a reference to the given variable inside the given (possibly nested) + * block namespace. This is a string of the form: + * ' . $this->_tpldata['parent.'][$_parent_i]['$child1.'][$_child1_i]['$child2.'][$_child2_i]...['varname'] . ' + * It's ready to be inserted into an "echo" line in one of the templates. + * NOTE: expects a trailing "." on the namespace. + */ + function generate_block_varref($namespace, $varname, $use_isset = true) + { + // Strip the trailing period. + $namespace = substr($namespace, 0, strlen($namespace) - 1); + + // Get a reference to the data block for this namespace. + $varref = $this->generate_block_data_ref($namespace, true); + // Prepend the necessary code to stick this in an echo line. + + // Append the variable reference. + $varref .= '[\'' . $varname . '\']'; + + if($use_isset) + { + $varref = '<'.'?php echo isset(' . $varref . ') ? ' . $varref . ' : \'\'; ?'.'>'; + } + else + { + $varref = '<'.'?php echo ' . $varref . '; ?'.'>'; + } + + return $varref; + + } + + + /** + * Generates a reference to the array of data values for the given + * (possibly nested) block namespace. This is a string of the form: + * $this->_tpldata['parent.'][$_parent_i]['$child1.'][$_child1_i]['$child2.'][$_child2_i]...['$childN.'] + * + * If $include_last_iterator is true, then [$_childN_i] will be appended to the form shown above. + * NOTE: does not expect a trailing "." on the blockname. + */ + function generate_block_data_ref($blockname, $include_last_iterator, $defop = false) + { + // Get an array of the blocks involved. + $blocks = explode('.', $blockname); + $blockcount = sizeof($blocks) - 1; + if($defop) + { + $varref = '$this->_tpldata[\'DEFINE\']'; + // Build up the string with everything but the last child. + for ($i = 0; $i < $blockcount; $i++) + { + $varref .= "['" . $blocks[$i] . ".'][\$" . $blocks[$i] . '_i]'; + } + // Add the block reference for the last child. + $varref .= "['" . $blocks[$blockcount] . ".']"; + // Add the iterator for the last child if requried. + if ($include_last_iterator) + { + $varref .= '[$' . $blocks[$blockcount] . '_i]'; + } + return $varref; + } + if($include_last_iterator) + { + return '$'. $blocks[$blockcount]. '_item'; + } + else + { + return '$'. $blocks[$blockcount-1]. '_item[\''. $blocks[$blockcount]. '.\']'; + } + } + + function compile_code($filename, $code, $use_isset = false) + { + // $filename - file to load code from. used if $code is empty + // $code - tpl code + // $use_isset - if false then compiled code looks more beautiful and easier + // to understand and it adds error_reporting() to supress php warnings. + // if true then isset() is used to check variables instead of supressing + // php warnings. note: for extreme styles mod 2.x it works only for + // block variables and for usual variables its always true. + + // load code from file + if(!$code && !empty($filename)) + { + $code = @implode('', @file($filename)); + } + + // Replace phpBB 2.2 tags + $search = array('', ''); + $replace = array('<'.'?php ', ' ?'.'>'); + $code = str_replace($search, $replace, $code); + + // Break it up into lines and put " -->" back. + $code_lines = explode(' -->', $code); + $count = count($code_lines); + for ($i = 0; $i < ($count - 1); $i++) + { + $code_lines[$i] .= ' -->'; + } + + $block_nesting_level = 0; + $block_names = array(); + $block_names[0] = "."; + $block_items = array(); + $count_if = 0; + + // prepare array for compiled code + $compiled = array(); + $count_bugs = count($this->bugs); + + // array of switches + $sw = array(); + + // replace all short php tags + $new_code = array(); + $line_count = count($code_lines); + for($i=0; $i<$line_count; $i++) + { + $line = $code_lines[$i]; + $pos = strpos($line, ''; + $code_lines[$i] = substr($line, $pos + 2); + $i --; + } + $code_lines = $new_code; + + // main loop + $line_count = count($code_lines); + for($i=0; $i<$line_count; $i++) + { + $line = $code_lines[$i]; + // reset keyword type + $keyword_type = XS_TAG_NONE; + // check if we have valid keyword in current line + $pos1 = strpos($line, '', $pos1); + if($pos2 !== false) + { + // find end of keyword in comment + $pos3 = strpos($line, ' ', $pos1 + 5); + if($pos3 !== false && $pos3 <= $pos2) + { + $keyword = substr($line, $pos1 + 5, $pos3 - $pos1 - 5); + // check keyword against list of supported keywords. case-sensitive + if($keyword === 'BEGIN') + { + $keyword_type = XS_TAG_BEGIN; + } + elseif($keyword === 'END') + { + $keyword_type = XS_TAG_END; + } + elseif($keyword === 'INCLUDE') + { + $keyword_type = XS_TAG_INCLUDE; + } + elseif($keyword === 'IF') + { + $keyword_type = XS_TAG_IF; + } + elseif($keyword === 'ELSE') + { + $keyword_type = XS_TAG_ELSE; + } + elseif($keyword === 'ELSEIF') + { + $keyword_type = XS_TAG_ELSEIF; + } + elseif($keyword === 'ENDIF') + { + $keyword_type = XS_TAG_ENDIF; + } + elseif($keyword === 'DEFINE') + { + $keyword_type = XS_TAG_DEFINE; + } + elseif($keyword === 'UNDEFINE') + { + $keyword_type = XS_TAG_UNDEFINE; + } + elseif($keyword === 'BEGINELSE') + { + $keyword_type = XS_TAG_BEGINELSE; + } + } + } + if(!$keyword_type) + { + // not valid keyword. process the rest of line + $compiled[] = $this->_compile_text(substr($line, 0, $pos1 + 4), $use_isset); + $code_lines[$i] = substr($line, $pos1 + 4); + $i --; + continue; + } + // remove code before keyword + if($pos1 > 0) + { + $compiled[] = $this->_compile_text(substr($line, 0, $pos1), $use_isset); + } + // remove keyword + $keyword_str = substr($line, $pos1, $pos2 - $pos1 + 4); + $params_str = $pos2 == $pos3 ? '' : substr($line, $pos3 + 1, $pos2 - $pos3 - 1); + $code_lines[$i] = substr($line, $pos2 + 4); + $i--; + // Check keywords + + /* + * + */ + if($keyword_type == XS_TAG_BEGIN) + { + $params = explode(' ', $params_str); + $num_params = count($params); + // get variable name + if($num_params == 1) + { + $var = $params[0]; + } + elseif($num_params == 2) + { + if($params[0] === '') + { + $var = $params[1]; + } + elseif($params[1] === '') + { + $var = $params[0]; + } + else + { + // invalid tag + $compiled[] = $keyword_str; + continue; + } + } + else + { + // invalid tag + $compiled[] = $keyword_str; + continue; + } + // check variable for matching end + if($this->xs_check_switches) + { + $found = 0; + $str = ''; + for ($j = $i+1; ($j < $line_count) && !$found; $j++) + { + $pos = strpos($code_lines[$j], $str); + if($pos !== false) + { + $found = 1; + $found_var = $var; + } + } + if(!$found && ($this->xs_check_switches == 1)) + { + // checking list of known buggy switches + $item = -1; + for($j=0; $j<$count_bugs; $j++) + { + if($this->bugs[$j][0] === $var) + { + $item = $j; + } + } + if($item >= 0) + { + $str1 = ''; + for ($j = $i+1; ($j < $line_count) && !$found; $j++) + { + $pos = strpos($code_lines[$j], $str1); + if($pos !== false) + { + $found_var = $this->bugs[$item][1]; + $found = 1; + $code_lines[$j] = str_replace($str, $str1, $code_lines[$j]); + } + } + } + } + if(!$found) + { + $compiled[] = $keyword_str; + continue; + } + // adding to list of switches + if(isset($sw[$found_var])) + { + $sw[$found_var] ++; + } + else + { + $sw[$found_var] = 1; + } + } + // adding code + $block_nesting_level++; + $block_names[$block_nesting_level] = $var; + if(isset($block_items[$var])) + { + $block_items[$var] ++; + } + else + { + $block_items[$var] = 1; + } + if ($block_nesting_level < 2) + { + // Block is not nested. + $line = '<'."?php\n\n"; + if($use_isset) + { + $line .= '$'. $var. '_count = ( isset($this->_tpldata[\''. $var. '.\']) ) ? sizeof($this->_tpldata[\''. $var. '.\']) : 0;'; + } + else + { + $line .= '$'. $var. '_count = sizeof($this->_tpldata[\''. $var. '.\']);'; + } + $line .= "\n" . 'for ($'. $var. '_i = 0; $'. $var. '_i < $'. $var. '_count; $'. $var. '_i++)'; + $line .= "\n". '{'. "\n"; + $line .= ' $'. $var. '_item = &$this->_tpldata[\''. $var. '.\'][$'. $var. '_i];'."\n"; + $line .= " \${$var}_item['S_ROW_COUNT'] = \${$var}_i;\n"; + $line .= " \${$var}_item['S_NUM_ROWS'] = \${$var}_count;\n"; + $line .= "\n?".">"; + } + else + { + // This block is nested. + // Generate a namespace string for this block. + $namespace = implode('.', $block_names); + // strip leading period from root level.. + $namespace = substr($namespace, 2); + // Get a reference to the data array for this block that depends on the + // current indices of all parent blocks. + $varref = $this->generate_block_data_ref($namespace, false); + // Create the for loop code to iterate over this block. + $line = '<'."?php\n\n"; + if($use_isset) + { + $line .= '$'. $var. '_count = ( isset('. $varref. ') ) ? sizeof('. $varref. ') : 0;'; + } + else + { + $line .= '$'. $var. '_count = sizeof('. $varref. ');'; + } + $line .= "\n". 'for ($'. $var. '_i = 0; $'. $var. '_i < $'. $var. '_count; $'. $var. '_i++)'; + $line .= "\n". '{'. "\n"; + $line .= ' $'. $var. '_item = &'. $varref. '[$'. $var. '_i];'."\n"; + $line .= " \${$var}_item['S_ROW_COUNT'] = \${$var}_i;\n"; + $line .= " \${$var}_item['S_NUM_ROWS'] = \${$var}_count;\n"; + $line .= "\n?".">"; + } + $compiled[] = $line; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_END) + { + $params = explode(' ', $params_str); + $num_params = count($params); + if($num_params == 1) + { + $var = $params[0]; + } + elseif($num_params == 2 && $params[0] === '') + { + $var = $params[1]; + } + elseif($num_params == 2 && $params[1] === '') + { + $var = $params[0]; + } + else + { + $compiled[] = $keyword_str; + continue; + } + if($this->xs_check_switches) + { + // checking if this switch was opened + if(!isset($sw[$var]) || ($sw[$var] < 1)) + { + // there is no opening switch + $compiled[] = $keyword_str; + continue; + } + $sw[$var] --; + } + // We have the end of a block. + $line = '<'."?php\n\n"; + $line .= '} // END ' . $var . "\n\n"; + $line .= 'if(isset($' . $var . '_item)) { unset($' . $var . '_item); } '; + $line .= "\n\n?".">"; + if(isset($block_items[$var])) + { + $block_items[$var] --; + } + else + { + $block_items[$var] = -1; + } + unset($block_names[$block_nesting_level]); + $block_nesting_level--; + $compiled[] = $line; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_BEGINELSE) + { + if($block_nesting_level) + { + $var = $block_names[$block_nesting_level]; + $compiled[] = '<' . '?php } if(!$' . $var . '_count) { ?' . '>'; + } + else + { + $compiled[] = $keyword_str; + continue; + } + } + /* + * + */ + if($keyword_type == XS_TAG_INCLUDE) + { + $params = explode(' ', $params_str); + $num_params = count($params); + if($num_params != 1) + { + $compiled[] = $keyword_str; + continue; + } + $line = '<'.'?php '; + $filehash = md5($params_str . $this->include_count . time()); + $line .= ' $this->set_filename(\'xs_include_' . $filehash . '\', \'' . $params_str .'\', true); '; + $line .= ' $this->pparse(\'xs_include_' . $filehash . '\'); '; + $line .= ' ?'.'>'; + $this->include_count ++; + $compiled[] = $line; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_IF || $keyword_type == XS_TAG_ELSEIF) + { + if(!$count_if) + { + $keyword_type = XS_TAG_IF; + } + $str = $this->compile_tag_if($params_str, $keyword_type == XS_TAG_IF ? false : true); + if($str) + { + $compiled[] = ''; + if($keyword_type == XS_TAG_IF) + { + $count_if ++; + } + } + else + { + $compiled[] = $keyword_str; + } + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_ELSE && $count_if > 0) + { + $compiled[] = ''; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_ENDIF && $count_if > 0) + { + $compiled[] = ''; + $count_if --; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_DEFINE) + { + $str = $this->compile_tag_define($params_str); + if($str) + { + $compiled[] = ''; + } + else + { + $compiled[] = $keyword_str; + } + } + /* + * + */ + if($keyword_type == XS_TAG_UNDEFINE) + { + $str = $this->compile_tag_undefine($params_str); + if($str) + { + $compiled[] = ''; + } + else + { + $compiled[] = $keyword_str; + } + } + } + + // bring it back into a single string. + $code_header = ''; + $code_footer = ''; + if(!$use_isset) + { + $code_header = "<". "?php\n\$old_level = @error_reporting(E_ERROR | E_WARNING | E_PARSE); \n?".">"; + $code_footer = '<'."?php @error_reporting(\$old_level); ?".'>'; + } + + return $code_header . implode('', $compiled) . $code_footer; + } + + /* + * Compile code between tags + */ + function _compile_text($code, $use_isset) + { + if(strlen($code) < 3) + { + return $code; + } + // change template varrefs into PHP varrefs + // This one will handle varrefs WITH namespaces + $varrefs = array(); + preg_match_all('#\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}#is', $code, $varrefs); + $varcount = sizeof($varrefs[1]); + $search = array(); + $replace = array(); + for ($i = 0; $i < $varcount; $i++) + { + $namespace = $varrefs[1][$i]; + $varname = $varrefs[3][$i]; + $new = $this->generate_block_varref($namespace, $varname, $use_isset); + $search[] = $varrefs[0][$i]; + $replace[] = $new; + } + if(count($search) > 0) + { + $code = str_replace($search, $replace, $code); + } + // This will handle the remaining root-level varrefs + $code = preg_replace('#\{([a-z0-9\-_]*?)\}#is', '<'.'?php echo isset($this->vars[\'\1\']) ? $this->vars[\'\1\'] : $this->lang(\'\1\'); ?'.'>', $code); + $code = preg_replace('#\{\$([a-z0-9\-_]*?)\}#is', '<'.'?php echo isset($this->_tpldata[\'DEFINE\'][\'.\'][\'\\1\']) ? $this->_tpldata[\'DEFINE\'][\'.\'][\'\\1\'] : \'\'; ?'.'>', $code); + return $code; + } + + // + // Compile IF tags - much of this is from Smarty with + // some adaptions for our block level methods + // + function compile_tag_if($tag_args, $elseif) + { + /* Tokenize args for 'if' tag. */ + preg_match_all('/(?: + "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | + \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | + [(),] | + [^\s(),]+)/x', $tag_args, $match); + + $tokens = $match[0]; + $is_arg_stack = array(); + + for ($i = 0; $i < count($tokens); $i++) + { + $token = &$tokens[$i]; + + switch ($token) + { + case '!': + case '%': + case '!==': + case '==': + case '===': + case '>': + case '<': + case '!=': + case '<>': + case '<<': + case '>>': + case '<=': + case '>=': + case '&&': + case '||': + case '|': + case '^': + case '&': + case '~': + case ')': + case ',': + case '+': + case '-': + case '*': + case '/': + case '@': + break; + + case 'eq': + $token = '=='; + break; + + case 'ne': + case 'neq': + $token = '!='; + break; + + case 'lt': + $token = '<'; + break; + + case 'le': + case 'lte': + $token = '<='; + break; + + case 'gt': + $token = '>'; + break; + + case 'ge': + case 'gte': + $token = '>='; + break; + + case 'and': + $token = '&&'; + break; + + case 'or': + $token = '||'; + break; + + case 'not': + $token = '!'; + break; + + case 'mod': + $token = '%'; + break; + + case '(': + array_push($is_arg_stack, $i); + break; + + case 'is': + $is_arg_start = ($tokens[$i-1] == ')') ? array_pop($is_arg_stack) : $i-1; + $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start)); + + $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i+1)); + + array_splice($tokens, $is_arg_start, count($tokens), $new_tokens); + + $i = $is_arg_start; + + default: + if (preg_match('#^(([a-z0-9\-_]+?\.)+?)?(\$)?([A-Z]+[A-Z0-9\-_]+)$#s', $token, $varrefs)) + { + $token = (!empty($varrefs[1])) ? $this->generate_block_data_ref(substr($varrefs[1], 0, -1), true, $varrefs[3]) . '[\'' . $varrefs[4] . '\']' : (($varrefs[3]) ? '$this->_tpldata[\'DEFINE\'][\'.\'][\'' . $varrefs[4] . '\']' : '$this->vars[\'' . $varrefs[4] . '\']'); + } + break; + } + } + + $code = (($elseif) ? '} elseif (' : 'if (') . (implode(' ', $tokens) . ') { '); + + return $code; + } + + // This is from Smarty + function _parse_is_expr($is_arg, $tokens) + { + $expr_end = 0; + $negate_expr = false; + + if (($first_token = array_shift($tokens)) == 'not') + { + $negate_expr = true; + $expr_type = array_shift($tokens); + } + else + { + $expr_type = $first_token; + } + + switch ($expr_type) + { + case 'even': + if (@$tokens[$expr_end] == 'by') + { + $expr_end++; + $expr_arg = $tokens[$expr_end++]; + $expr = "!(($is_arg / $expr_arg) % $expr_arg)"; + } + else + { + $expr = "!($is_arg % 2)"; + } + break; + + case 'odd': + if (@$tokens[$expr_end] == 'by') + { + $expr_end++; + $expr_arg = $tokens[$expr_end++]; + $expr = "(($is_arg / $expr_arg) % $expr_arg)"; + } + else + { + $expr = "($is_arg % 2)"; + } + break; + + case 'div': + if (@$tokens[$expr_end] == 'by') + { + $expr_end++; + $expr_arg = $tokens[$expr_end++]; + $expr = "!($is_arg % $expr_arg)"; + } + break; + + default: + break; + } + + if ($negate_expr) + { + $expr = "!($expr)"; + } + + array_splice($tokens, 0, $expr_end, $expr); + + return $tokens; + } + + + function compile_tag_define($tag_args) + { + preg_match('#^(([a-z0-9\-_]+?\.)+?)?\$([A-Z][A-Z0-9_\-]*?) = (\'?)(.*?)(\'?)$#', $tag_args, $match); + + if (empty($match[3]) || empty($match[5])) + { + return ''; + } + + // Are we a string? + if ($match[4] && $match[6]) + { + $match[5] = "'" . addslashes(str_replace(array('\\\'', '\\\\'), array('\'', '\\'), $match[5])) . "'"; + } + else + { + preg_match('#(true|false|\.)#i', $match[5], $type); + + switch (strtolower($type[1])) + { + case 'true': + case 'false': + $match[5] = strtoupper($match[5]); + break; + case '.'; + $match[5] = doubleval($match[5]); + break; + default: + $match[5] = intval($match[5]); + break; + } + } + + return (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[3] . '\']' : '$this->_tpldata[\'DEFINE\'][\'.\'][\'' . $match[3] . '\']') . ' = ' . $match[5] . ';'; + } + + function compile_tag_undefine($tag_args) + { + preg_match('#^(([a-z0-9\-_]+?\.)+?)?\$([A-Z][A-Z0-9_\-]*?)$#', $tag_args, $match); + if (empty($match[3])) + { + return ''; + } + return 'unset(' . (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[3] . '\']' : '$this->_tpldata[\'DEFINE\'][\'.\'][\'' . $match[3] . '\']') . ');'; + } + + /** + * Compiles code and writes to cache if needed + */ + function compile2($code, $handle, $cache_file) + { + $code = $this->compile_code('', $code, XS_USE_ISSET); + if($cache_file && !empty($this->use_cache) && !empty($this->auto_compile)) + { + $res = $this->write_cache($cache_file, $code); + if($handle && $res) + { + $this->files_cache[$handle] = $cache_file; + } + } + $code = '?'.'>'.$code.'<'."?php\n"; + return $code; + } + + /** + * Compiles the given string of code, and returns + * the result in a string. + * If "do_not_echo" is true, the returned code will not be directly + * executable, but can be used as part of a variable assignment + * for use in assign_code_from_handle(). + * This function isn't used and kept only for compatibility with original template.php + */ + function compile($code, $do_not_echo = false, $retvar = '') + { + $code = ' ?'.'>' . $this->compile_code('', $code, true) . '<'."?php \n"; + if($do_not_echo) + { + $code = "ob_start();\n". $code. "\n\${$retvar} = ob_get_contents();\nob_end_clean();\n"; + } + return $code; + } + + /** + * Write cache to disk + */ + function write_cache($filename, $code) + { + // check if cache is writable + if(!$this->cache_writable) + { + return false; + } + // check if filename is valid + if(substr($filename, 0, strlen($this->cachedir)) !== $this->cachedir) + { + return false; + } + // try to open file + $file = @fopen($filename, 'w'); + if(!$file) + { + // try to create directories + $dir = substr($filename, strlen($this->cachedir), strlen($filename)); + $dirs = explode('/', $dir); + $path = $this->cachedir; + @umask(0); + if(!@is_dir($path)) + { + if(!@mkdir($path)) + { + $this->cache_writable = 0; + return false; + } + else + { + @chmod($path, 0777); + } + } + $count = count($dirs); + if($count > 0) + for($i=0; $i<$count-1; $i++) + { + if($i>0) + { + $path .= '/'; + } + $path .= $dirs[$i]; + if(!@is_dir($path)) + { + if(!@mkdir($path)) + { + $this->cache_writable = 0; + return false; + } + else + { + @chmod($path, 0777); + } + } + } + // try to open file again after directories were created + $file = @fopen($filename, 'w'); + } + if(!$file) + { + $this->cache_writable = 0; + return false; + } + fputs($file, ""); + fputs($file, $code); + fclose($file); + @chmod($filename, 0777); + return true; + } + + function xs_startup() + { + global $phpEx, $board_config, $phpbb_root_path; + if(empty($this->xs_started)) + { // adding predefined variables + $this->xs_started = 1; + // file extension with session ID (eg: "php?sid=123&" or "php?") + // can be used to make custom URLs without modding phpbb + // contains "&" or "?" at the end so you can easily append paramenters + $php = append_sid($phpEx); + if(strpos($php, '?')) + { + $php .= '&'; + } + else + { + $php .= '?'; + } + $this->vars['PHP'] = isset($this->vars['PHP']) ? $this->vars['PHP'] : $php; + // adding language variable (eg: "english" or "german") + // can be used to make truly multi-lingual templates + $this->vars['LANG'] = isset($this->vars['LANG']) ? $this->vars['LANG'] : $board_config['default_lang']; + // adding current template + $tpl = $this->root . '/'; // $phpbb_root_path . 'templates/' . $this->tpl . '/'; + if(substr($tpl, 0, 2) === './') + { + $tpl = substr($tpl, 2, strlen($tpl)); + } + $this->vars['TEMPLATE'] = isset($this->vars['TEMPLATE']) ? $this->vars['TEMPLATE'] : $tpl; + $this->vars['TEMPLATE_NAME'] = isset($this->vars['TEMPLATE_NAME']) ? $this->vars['TEMPLATE_NAME'] : $this->tpl; + $this->_tpldata['switch_xs_enabled.'] = array(array('version' => $this->xs_versiontxt)); + } + } + + /** + * Checks for empty variable and shows language variable if possible. + */ + function lang($var) + { + global $lang; + if(substr($var, 0, 2) === 'L_') + { + $var = substr($var, 2); + // check variable as it is + if(isset($lang[$var])) + { + return $lang[$var]; + } + // check variable in lower case + if(isset($lang[strtolower($var)])) + { + return $lang[strtolower($var)]; + } + // check variable with first letter in upper case + $str = ucfirst(strtolower($var)); + if(isset($lang[$str])) + { + return $lang[$str]; + } + return ''; //str_replace('_', ' ', $var); + } + return ''; + } + + // + // + // Functions added for USERGROUP MOD (optimized) + // + // + function append_var_from_handle_to_block($blockname, $varname, $handle) + { + $this->assign_var_from_handle('_tmp', $handle); + // assign the value of the generated variable to the given varname. + $this->append_block_vars($blockname, array($varname => $this->vars['_tmp'])); + return true; + } + + function append_block_vars($blockname, $vararray) + { + if(strstr($blockname, '.')) + { + // Nested block. + $blocks = explode('.', $blockname); + $blockcount = sizeof($blocks) - 1; + $str = &$this->_tpldata; + for($i = 0; $i < $blockcount; $i++) + { + $str = &$str[$blocks[$i].'.']; + $str = &$str[sizeof($str)-1]; + } + // Now we add the block that we're actually assigning to. + // We're adding a new iteration to this block with the given + // variable assignments. + $str = &$str[$blocks[$blockcount].'.']; + $count = sizeof($str) - 1; + if($count >= 0) + { + // adding only if there is at least one item + $str[$count] = array_merge($str[$count], $vararray); + } + } + else + { + // Top-level block. + // Add a new iteration to this block with the variable assignments + // we were given. + $str = &$this->_tpldata[$blockname.'.']; + $count = sizeof($str) - 1; + if($count >= 0) + { + // adding only if there is at least one item + $str[$count] = array_merge($str[$count], $vararray); + } + } + return true; + } + + /* + * Flush a root level block, so it becomes empty. + */ + function flush_block_vars($blockname) + { + // Top-level block. + // flush a existing block we were given. + $current_iteration = sizeof($this->_tpldata[$blockname . '.']) - 1; + unset($this->_tpldata[$blockname . '.']); + return true; + } + + /* + * Add style configuration + */ + function _add_config($tpl, $add_vars = true) + { + global $phpbb_root_path; + if(@file_exists($phpbb_root_path . 'templates/' . $tpl . '/xs_config.cfg')) + { + $style_config = array(); + include($phpbb_root_path . 'templates/' . $tpl . '/xs_config.cfg'); + if(count($style_config)) + { + global $board_config, $db; + for($i=0; $istyle_config[$style_config[$i]['var']] = $style_config[$i]['default']; + if($add_vars) + { + $this->vars['TPL_CFG_' . strtoupper($style_config[$i]['var'])] = $style_config[$i]['default']; + } + } + $str = $this->_serialize($this->style_config); + $config_name = 'xs_style_' . $tpl; + $board_config[$config_name] = $str; + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . str_replace('\\\'', '\'\'', addslashes($config_name)) . "', '" . str_replace('\\\'', '\'\'', addslashes($str)) . "')"; + $db->sql_query($sql); + // recache config table for cat_hierarchy 2.1.0 + global $config; + if(isset($config->data) && $config->data === $board_config && isset($config->data['mod_cat_hierarchy'])) + { + $config->read(true); + } + return true; + } + } + return false; + } + + function add_config($tpl) + { + $config_name = 'xs_style_' . $tpl; + global $board_config; + $result = false; + if(empty($board_config[$config_name])) + { + $old = $this->style_config; + $result = $this->_add_config($tpl, false); + $this->style_config = $old; + } + return $result; + } + + /* + * Refresh config data + */ + function _refresh_config($tpl, $add_vars = false) + { + global $phpbb_root_path; + if(@file_exists($phpbb_root_path . 'templates/' . $tpl . '/xs_config.cfg')) + { + $style_config = array(); + include($phpbb_root_path . 'templates/' . $tpl . '/xs_config.cfg'); + if(count($style_config)) + { + global $board_config, $db; + for($i=0; $istyle_config[$style_config[$i]['var']])) + { + $this->style_config[$style_config[$i]['var']] = $style_config[$i]['default']; + if($add_vars) + { + $this->vars['TPL_CFG_' . strtoupper($style_config[$i]['var'])] = $style_config[$i]['default']; + } + } + } + $str = $this->_serialize($this->style_config); + $config_name = 'xs_style_' . $tpl; + if(isset($board_config[$config_name])) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . str_replace('\\\'', '\'\'', addslashes($str)) . "' WHERE config_name='" . str_replace('\\\'', '\'\'', addslashes($config_name)) . "'"; + } + else + { + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . str_replace('\\\'', '\'\'', addslashes($config_name)) . "', '" . str_replace('\\\'', '\'\'', addslashes($str)) . "')"; + } + $db->sql_query($sql); + $board_config[$config_name] = $str; + // recache config table for cat_hierarchy 2.1.0 + global $config; + if(isset($config->data) && $config->data === $board_config && isset($config->data['mod_cat_hierarchy'])) + { + $config->read(true); + } + return true; + } + } + return false; + } + + function refresh_config($tpl = '') + { + if($tpl === '') + { + $tpl = $this->tpl; + } + if($tpl == $this->tpl) + { + $result = $this->_refresh_config($tpl, true); + } + else + { + $old = $this->style_config; + $result = $this->_refresh_config($tpl, false); + $this->style_config = $old; + } + return $result; + } + + /* + * Get style configuration + */ + function _get_config($tpl, $add_config) + { + $this->style_config = array(); + if(empty($tpl)) + { + $tpl = $this->tpl; + } + $config_name = 'xs_style_' . $tpl; + global $board_config; + if(empty($board_config[$config_name])) + { + if($add_config) + { + $this->_add_config($tpl, $tpl === $this->tpl ? true : false); + } + return $this->style_config; + } + $this->style_config = $this->_unserialize($board_config[$config_name]); + if($tpl === $this->tpl) + { + foreach($this->style_config as $var => $value) + { + $this->vars['TPL_CFG_' . strtoupper($var)] = $value; + } + } + return $this->style_config; + } + + function get_config($tpl = '', $add_config = true) + { + if(empty($tpl)) + { + if(empty($this->tpl)) + { + return array(); + } + $this->_get_config($this->tpl, $add_config); + return $this->style_config; + } + else + { + $old_config = $this->style_config; + $result = $this->_get_config($tpl, $add_config); + $this->style_config = $old_config; + return $result; + } + } + + /* + * Split/merge config data. + * Using this function instead of (un)serialize because it generates smaller string so it can be stored in phpbb_config + */ + function _serialize($array) + { + if(!is_array($array)) + { + return ''; + } + $str = ''; + foreach($array as $var => $value) + { + if($str) + { + $str .= '|'; + } + $str .= $var . '=' . str_replace('|', '', $value); + } + return $str; + } + function _unserialize($str) + { + $array = array(); + $list = explode('|', $str); + for($i=0; $i_tpldata[$name.'.']) && count($tpl->_tpldata[$name.'.']) > 0); +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/topic_review.php b/phpBB2/includes/topic_review.php new file mode 100644 index 0000000..aecb9d3 --- /dev/null +++ b/phpBB2/includes/topic_review.php @@ -0,0 +1,228 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); + } + + if ( !($forum_row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); + } + $db->sql_freeresult($result); + + $forum_id = $forum_row['forum_id']; + $topic_title = $forum_row['topic_title']; + + // + // Start session management + // + $userdata = session_pagestart($user_ip, $forum_id); + init_userprefs($userdata); + // + // End session management + // + + $is_auth = array(); + $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row); + + if ( !$is_auth['auth_read'] ) + { + message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type'])); + } + } + + // + // Define censored word matches + // + if ( empty($orig_word) && empty($replacement_word) ) + { + $orig_word = array(); + $replacement_word = array(); + + obtain_word_list($orig_word, $replacement_word); + } + + // + // Dump out the page header and load viewtopic body template + // + if ( !$is_inline_review ) + { + $gen_simple_header = TRUE; + + $page_title = $lang['Topic_review'] . ' - ' . $topic_title; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'reviewbody' => 'posting_topic_review.tpl') + ); + } + + // + // Go ahead and pull all data for this topic + // + $sql = "SELECT u.username, u.user_id, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + AND p.poster_id = u.user_id + AND p.post_id = pt.post_id + ORDER BY p.post_time DESC + LIMIT " . $board_config['posts_per_page']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post/user information', '', __LINE__, __FILE__, $sql); + } + + // + // Okay, let's do the loop, yeah come on baby let's do the loop + // and it goes like this ... + // + if ( $row = $db->sql_fetchrow($result) ) + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + + $i = 0; + do + { + $poster_id = $row['user_id']; + $poster = $row['username']; + + $post_date = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']); + + // + // Handle anon users posting with usernames + // + if( $poster_id == ANONYMOUS && $row['post_username'] != '' ) + { + $poster = $row['post_username']; + $poster_rank = $lang['Guest']; + } + elseif ( $poster_id == ANONYMOUS ) + { + $poster = $lang['Guest']; + $poster_rank = ''; + } + + $post_subject = ( $row['post_subject'] != '' ) ? $row['post_subject'] : ''; + + $message = $row['post_text']; + $bbcode_uid = $row['bbcode_uid']; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] && $row['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $message); + } + + if ( $bbcode_uid != "" ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + + $message = make_clickable($message); + + if ( count($orig_word) ) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + $message = preg_replace($orig_word, $replacement_word, $message); + } + + if ( $board_config['allow_smilies'] && $row['enable_smilies'] ) + { + $message = smilies_pass($message); + } + + $message = str_replace("\n", '
', $message); + + // + // Again this will be handled by the templating + // code at some point + // + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + + 'MINI_POST_IMG' => $mini_post_img, + 'POSTER_NAME' => $poster, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + + 'L_MINI_POST_ALT' => $mini_post_alt) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + } + else + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist', '', __LINE__, __FILE__, $sql); + } + $db->sql_freeresult($result); + + $template->assign_vars(array( + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_POSTED' => $lang['Posted'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_TOPIC_REVIEW' => $lang['Topic_review']) + ); + + if ( !$is_inline_review ) + { + $template->pparse('reviewbody'); + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_activate.php b/phpBB2/includes/usercp_activate.php new file mode 100644 index 0000000..d28f7ce --- /dev/null +++ b/phpBB2/includes/usercp_activate.php @@ -0,0 +1,119 @@ +sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql); +} + +if ( $row = $db->sql_fetchrow($result) ) +{ + if ( $row['user_active'] && trim($row['user_actkey']) == '' ) + { + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Already_activated']); + } + else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != '')) + { + if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $row['user_newpasswd'] == '') + { + if (!$userdata['session_logged_in']) + { + redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . trim($HTTP_GET_VARS['act_key']))); + } + else if ($userdata['user_level'] != ADMIN) + { + message_die(GENERAL_MESSAGE, $lang['Not_Authorised']); + } + } + + $sql_update_pass = ( $row['user_newpasswd'] != '' ) ? ", user_password = '" . str_replace("\'", "''", $row['user_newpasswd']) . "', user_newpasswd = ''" : ''; + + $sql = "UPDATE " . USERS_TABLE . " + SET user_active = 1, user_actkey = ''" . $sql_update_pass . " + WHERE user_id = " . $row['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update); + } + + if ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $sql_update_pass == '' ) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('admin_welcome_activated', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['Account_activated_subject']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => $row['username'], + 'PASSWORD' => $password_confirm, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '') + ); + $emailer->send(); + $emailer->reset(); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Account_active_admin']); + } + else + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = ( $sql_update_pass == '' ) ? $lang['Account_active'] : $lang['Password_activated']; + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + message_die(GENERAL_MESSAGE, $lang['Wrong_activation']); + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['No_such_user']); +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_avatar.php b/phpBB2/includes/usercp_avatar.php new file mode 100644 index 0000000..867edb6 --- /dev/null +++ b/phpBB2/includes/usercp_avatar.php @@ -0,0 +1,406 @@ +' . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + break; + } + + return false; +} + +function user_avatar_delete($avatar_type, $avatar_file) +{ + global $board_config, $userdata; + + $avatar_file = basename($avatar_file); + if ( $avatar_type == USER_AVATAR_UPLOAD && $avatar_file != '' ) + { + if ( @file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $avatar_file)) ) + { + @unlink('./' . $board_config['avatar_path'] . '/' . $avatar_file); + } + } + + return ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE; +} + +function user_avatar_gallery($mode, &$error, &$error_msg, $avatar_filename, $avatar_category) +{ + global $board_config; + + $avatar_filename = phpbb_ltrim(basename($avatar_filename), "'"); + $avatar_category = phpbb_ltrim(basename($avatar_category), "'"); + + if(!preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $avatar_filename)) + { + return ''; + } + + if ($avatar_filename == "" || $avatar_category == "") + { + return ''; + } + + if ( file_exists(@phpbb_realpath($board_config['avatar_gallery_path'] . '/' . $avatar_category . '/' . $avatar_filename)) && ($mode == 'editprofile') ) + { + $return = ", user_avatar = '" . str_replace("\'", "''", $avatar_category . '/' . $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_GALLERY; + } + else + { + $return = ''; + } + return $return; +} + +function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename) +{ + global $lang; + + if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) ) + { + $avatar_filename = 'http://' . $avatar_filename; + } + + $avatar_filename = substr($avatar_filename, 0, 100); + + if ( !preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png))$)#is", $avatar_filename) ) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; + return; + } + + return ( $mode == 'editprofile' ) ? ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_REMOTE : ''; + +} + +function user_avatar_upload($mode, $avatar_mode, &$current_avatar, &$current_type, &$error, &$error_msg, $avatar_filename, $avatar_realname, $avatar_filesize, $avatar_filetype) +{ + global $board_config, $db, $lang; + + $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + + $width = $height = 0; + $type = ''; + + if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))$/', $avatar_filename, $url_ary) ) + { + if ( empty($url_ary[4]) ) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['Incomplete_URL'] : $lang['Incomplete_URL']; + return; + } + + $base_get = '/' . $url_ary[4]; + $port = ( !empty($url_ary[3]) ) ? $url_ary[3] : 80; + + if ( !($fsock = @fsockopen($url_ary[2], $port, $errno, $errstr)) ) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['No_connection_URL'] : $lang['No_connection_URL']; + return; + } + + @fputs($fsock, "GET $base_get HTTP/1.1\r\n"); + @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n"); + @fputs($fsock, "Connection: close\r\n\r\n"); + + unset($avatar_data); + while( !@feof($fsock) ) + { + $avatar_data .= @fread($fsock, $board_config['avatar_filesize']); + } + @fclose($fsock); + + if (!preg_match('#Content-Length\: ([0-9]+)[^ /][\s]+#i', $avatar_data, $file_data1) || !preg_match('#Content-Type\: image/[x\-]*([a-z]+)[\s]+#i', $avatar_data, $file_data2)) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['File_no_data'] : $lang['File_no_data']; + return; + } + + $avatar_filesize = $file_data1[1]; + $avatar_filetype = $file_data2[1]; + + if ( !$error && $avatar_filesize > 0 && $avatar_filesize < $board_config['avatar_filesize'] ) + { + $avatar_data = substr($avatar_data, strlen($avatar_data) - $avatar_filesize, $avatar_filesize); + + $tmp_path = ( !@$ini_val('safe_mode') ) ? '/tmp' : './' . $board_config['avatar_path'] . '/tmp'; + $tmp_filename = tempnam($tmp_path, uniqid(rand()) . '-'); + + $fptr = @fopen($tmp_filename, 'wb'); + $bytes_written = @fwrite($fptr, $avatar_data, $avatar_filesize); + @fclose($fptr); + + if ( $bytes_written != $avatar_filesize ) + { + @unlink($tmp_filename); + message_die(GENERAL_ERROR, 'Could not write avatar file to local storage. Please contact the board administrator with this message', '', __LINE__, __FILE__); + } + + list($width, $height, $type) = @getimagesize($tmp_filename); + } + else + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $l_avatar_size : $l_avatar_size; + } + } + else if ( ( file_exists(@phpbb_realpath($avatar_filename)) ) && preg_match('/\.(jpg|jpeg|gif|png)$/i', $avatar_realname) ) + { + if ( $avatar_filesize <= $board_config['avatar_filesize'] && $avatar_filesize > 0 ) + { + preg_match('#image\/[x\-]*([a-z]+)#', $avatar_filetype, $avatar_filetype); + $avatar_filetype = $avatar_filetype[1]; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $l_avatar_size : $l_avatar_size; + return; + } + + list($width, $height, $type) = @getimagesize($avatar_filename); + } + + if ( !($imgtype = check_image_type($avatar_filetype, $error, $error_msg)) ) + { + return; + } + + switch ($type) + { + // GIF + case 1: + if ($imgtype != '.gif') + { + @unlink($tmp_filename); + message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); + } + break; + + // JPG, JPC, JP2, JPX, JB2 + case 2: + case 9: + case 10: + case 11: + case 12: + if ($imgtype != '.jpg' && $imgtype != '.jpeg') + { + @unlink($tmp_filename); + message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); + } + break; + + // PNG + case 3: + if ($imgtype != '.png') + { + @unlink($tmp_filename); + message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); + } + break; + + default: + @unlink($tmp_filename); + message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); + } + + if ( $width > 0 && $height > 0 && $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) + { + $new_filename = uniqid(rand()) . $imgtype; + + if ( $mode == 'editprofile' && $current_type == USER_AVATAR_UPLOAD && $current_avatar != '' ) + { + user_avatar_delete($current_type, $current_avatar); + } + + if( $avatar_mode == 'remote' ) + { + @copy($tmp_filename, './' . $board_config['avatar_path'] . "/$new_filename"); + @unlink($tmp_filename); + } + else + { + if ( @$ini_val('open_basedir') != '' ) + { + if ( @phpversion() < '4.0.3' ) + { + message_die(GENERAL_ERROR, 'open_basedir is set and your PHP version does not allow move_uploaded_file', '', __LINE__, __FILE__); + } + + $move_file = 'move_uploaded_file'; + } + else + { + $move_file = 'copy'; + } + + if (!is_uploaded_file($avatar_filename)) + { + message_die(GENERAL_ERROR, 'Unable to upload file', '', __LINE__, __FILE__); + } + $move_file($avatar_filename, './' . $board_config['avatar_path'] . "/$new_filename"); + } + + @chmod('./' . $board_config['avatar_path'] . "/$new_filename", 0777); + + $avatar_sql = ( $mode == 'editprofile' ) ? ", user_avatar = '$new_filename', user_avatar_type = " . USER_AVATAR_UPLOAD : "'$new_filename', " . USER_AVATAR_UPLOAD; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $l_avatar_size : $l_avatar_size; + } + + return $avatar_sql; +} + +function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$interests, &$signature, &$viewemail, &$notifypm, &$popup_pm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$dateformat, &$session_id) +{ + global $board_config, $db, $template, $lang, $images, $theme; + global $phpbb_root_path, $phpEx; + + $dir = @opendir($board_config['avatar_gallery_path']); + + $avatar_images = array(); + while( $file = @readdir($dir) ) + { + if( $file != '.' && $file != '..' && !is_file($board_config['avatar_gallery_path'] . '/' . $file) && !is_link($board_config['avatar_gallery_path'] . '/' . $file) ) + { + $sub_dir = @opendir($board_config['avatar_gallery_path'] . '/' . $file); + + $avatar_row_count = 0; + $avatar_col_count = 0; + while( $sub_file = @readdir($sub_dir) ) + { + if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) ) + { + $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $sub_file; + $avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file))); + + $avatar_col_count++; + if( $avatar_col_count == 5 ) + { + $avatar_row_count++; + $avatar_col_count = 0; + } + } + } + } + } + + @closedir($dir); + + @ksort($avatar_images); + @reset($avatar_images); + + if( empty($category) ) + { + list($category, ) = each($avatar_images); + } + @reset($avatar_images); + + $s_categories = ''; + + $s_colspan = 0; + for($i = 0; $i < count($avatar_images[$category]); $i++) + { + $template->assign_block_vars("avatar_row", array()); + + $s_colspan = max($s_colspan, count($avatar_images[$category][$i])); + + for($j = 0; $j < count($avatar_images[$category][$i]); $j++) + { + $template->assign_block_vars('avatar_row.avatar_column', array( + "AVATAR_IMAGE" => $board_config['avatar_gallery_path'] . '/' . $category . '/' . $avatar_images[$category][$i][$j], + "AVATAR_NAME" => $avatar_name[$category][$i][$j]) + ); + + $template->assign_block_vars('avatar_row.avatar_option_column', array( + "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j]) + ); + } + } + + $params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popup_pm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat'); + + $s_hidden_vars = ''; + + for($i = 0; $i < count($params); $i++) + { + $s_hidden_vars .= ''; + } + + $template->assign_vars(array( + 'L_AVATAR_GALLERY' => $lang['Avatar_gallery'], + 'L_SELECT_AVATAR' => $lang['Select_avatar'], + 'L_RETURN_PROFILE' => $lang['Return_profile'], + 'L_CATEGORY' => $lang['Select_category'], + + 'S_CATEGORY_SELECT' => $s_categories, + 'S_COLSPAN' => $s_colspan, + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx?mode=$mode"), + 'S_HIDDEN_FIELDS' => $s_hidden_vars) + ); + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_confirm.php b/phpBB2/includes/usercp_confirm.php new file mode 100644 index 0000000..4a14be3 --- /dev/null +++ b/phpBB2/includes/usercp_confirm.php @@ -0,0 +1,460 @@ +sql_query($sql); + +// If we have a row then grab data else create a new id +if ($row = $db->sql_fetchrow($result)) +{ + $db->sql_freeresult($result); + $code = $row['code']; +} +else +{ + exit; +} + +// We can we will generate a single filtered png +// Thanks to DavidMJ for emulating zlib within the code :) +$_png = define_filtered_pngs(); + +$total_width = 320; +$total_height = 50; +$img_height = 40; +$img_width = 0; +$l = 0; + +list($usec, $sec) = explode(' ', microtime()); +mt_srand($sec * $usec); + +$char_widths = array(); +for ($i = 0; $i < strlen($code); $i++) +{ + $char = $code{$i}; + + $width = mt_rand(0, 4); + $char_widths[] = $width; + $img_width += $_png[$char]['width'] - $width; +} + +$offset_x = mt_rand(0, $total_width - $img_width); +$offset_y = mt_rand(0, $total_height - $img_height); + +$image = ''; +$hold_chars = array(); +for ($i = 0; $i < $total_height; $i++) +{ + $image .= chr(0); + + if ($i > $offset_y && $i < $offset_y + $img_height) + { + $j = 0; + + for ($k = 0; $k < $offset_x; $k++) + { + $image .= chr(mt_rand(140, 255)); + } + + for ($k = 0; $k < strlen($code); $k++) + { + $char = $code{$k}; + + if (empty($hold_chars[$char])) + { + $hold_chars[$char] = explode("\n", chunk_split(base64_decode($_png[$char]['data']), $_png[$char]['width'] + 1, "\n")); + } + $image .= randomise(substr($hold_chars[$char][$l], 1), $char_widths[$j]); + $j++; + } + + for ($k = $offset_x + $img_width; $k < $total_width; $k++) + { + $image .= chr(mt_rand(140, 255)); + } + + $l++; + } + else + { + for ($k = 0; $k < $total_width; $k++) + { + $image .= chr(mt_rand(140, 255)); + } + } + +} +unset($hold); + +$image = create_png($image, $total_width, $total_height); + +// Output image +header('Content-Type: image/png'); +header('Cache-control: no-cache, no-store'); +echo $image; + +unset($image); +unset($_png); +exit; + + +// This is designed to randomise the pixels of the image data within +// certain limits so as to keep it readable. It also varies the image +// width a little +function randomise($scanline, $width) +{ + $new_line = ''; + $start = floor($width/2); + $end = strlen($scanline) - ceil($width/2); + + for ($i = $start; $i < $end; $i++) + { + $pixel = ord($scanline{$i}); + + if ($pixel < 190) + { + $new_line .= chr(mt_rand(0, 205)); + } + else if ($pixel > 190) + { + $new_line .= chr(mt_rand(145, 255)); + } + else + { + $new_line .= $scanline{$i}; + } + } + + return $new_line; +} + +// This creates a chunk of the given type, with the given data +// of the given length adding the relevant crc +function png_chunk($length, $type, $data) +{ + $raw = $type; + $raw .= $data; + $crc = crc32($raw); + $raw .= pack('C4', $crc >> 24, $crc >> 16, $crc >> 8, $crc); + + return pack('C4', $length >> 24, $length >> 16, $length >> 8, $length) . $raw; +} + +// Creates greyscale 8bit png - The PNG spec can be found at +// http://www.libpng.org/pub/png/spec/PNG-Contents.html we use +// png because it's a fully recognised open standard and supported +// by practically all modern browsers and OSs +function create_png($raw_image, $width, $height) +{ + // SIG + $image = pack('C8', 137, 80, 78, 71, 13, 10, 26, 10); + // IHDR + $raw = pack('C4', $width >> 24, $width >> 16, $width >> 8, $width); + $raw .= pack('C4', $height >> 24, $height >> 16, $height >> 8, $height); + $raw .= pack('C5', 8, 0, 0, 0, 0); + $image .= png_chunk(13, 'IHDR', $raw); + + if (@extension_loaded('zlib')) + { + $raw_image = gzcompress($raw_image); + $length = strlen($raw_image); + } + else + { + // The total length of this image, uncompressed, is just a calculation of pixels + $length = ($width + 1) * $height; + + // Adler-32 hash generation + // Optimized Adler-32 loop ported from the GNU Classpath project + $temp_length = $length; + $s1 = 1; + $s2 = $index = 0; + + while ($temp_length > 0) + { + // We can defer the modulo operation: + // s1 maximally grows from 65521 to 65521 + 255 * 3800 + // s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31 + $substract_value = ($temp_length < 3800) ? $temp_length : 3800; + $temp_length -= $substract_value; + + while (--$substract_value >= 0) + { + $s1 += ord($raw_image[$index]); + $s2 += $s1; + + $index++; + } + + $s1 %= 65521; + $s2 %= 65521; + } + $adler_hash = pack('N', ($s2 << 16) | $s1); + + // This is the same thing as gzcompress($raw_image, 0) but does not need zlib + $raw_image = pack('C3v2', 0x78, 0x01, 0x01, $length, ~$length) . $raw_image . $adler_hash; + + // The Zlib header + Adler hash make us add on 11 + $length += 11; + } + + // IDAT + $image .= png_chunk($length, 'IDAT', $raw_image); + // IEND + $image .= png_chunk(0, 'IEND', ''); + + return $image; +} + +// Each 'data' element is base64_encoded uncompressed IDAT +// png image data +function define_filtered_pngs() +{ + $_png = array( + '0' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A///////////////////olFAkBAAAGDyA4P///M31/////////////wD////////////////0dAgAAAAAAAAAAAAEcPipFGHn////////////AP//////////////6DAAAAAAAAAAAAAAAAAALSEAN+T///////////8A//////////////xAAAAAAAAAAAAAAAAAAAAAACPA/////////////wD/////////////oAAAAAAAAAAAAAAAAAAAAAAAev//////////////AP////////////8oAAAAAAAAPNj/zDAAAAAAAABD//////////////8A////////////1AAAAAAAABjw////5BAAAAAAAADo/////////////wD///////////+QAAAAAAAAbP//////QgAAAAAAAKj/////////////AP///////////1wAAAAAAACs/////8AXAAAAAAAAcP////////////8A////////////OAAAAAAAAND////dNwAAAAAAAABI/////////////wD///////////8gAAAAAAAA4P//7koACwAAAAAAACT/////////////AP///////////wgAAAAAAAD///VqAwaPAAAAAAAAEP////////////8A////////////AAAAAAAAAP/8kQYDavUAAAAAAAAA/////////////wD///////////8AAAAAAAAA/6kNAEru/wAAAAAAAAD/////////////AP///////////wAAAAAAAADAIwA33f//AAAAAAAAAP////////////8A////////////FAAAAAAAADYAI8D///8AAAAAAAAQ/////////////wD///////////8kAAAAAAAAAA2p////5AAAAAAAACD/////////////AP///////////0gAAAAAAAAFkfz////UAAAAAAAAQP////////////8A////////////cAAAAAAAAET1/////7AAAAAAAABo/////////////wD///////////+oAAAAAAAAXfX/////sAAAAAAAAGj/////////////AAAAALgAAAAAAAAwAAAAAAAAAAAAAAD////////////oAAAAAAAACOT////oEAAAAAAAAOD/////////////AP////////////8+AAAAAAAAKMz/zDQAAAAAAAA0//////////////8A////////////7jgAAAAAAAAAAAAAAAAAAAAAAKT//////////////wD///////////VqAwIAAAAAAAAAAAAAAAAAAAA8////////////////AP//////////rQcDaVEAAAAAAAAAAAAAAAAAKOj///////////////8A///////////nblnu/IAIAAAAAAAAAAAAAFzw/////////////////wD////////////79////+iITCAAAAAgSITg////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////w==', + 'width' => 40 + ), + '1' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////8BAAAAAAAP//////////////////AP////////////////////////9sAAAAAAAA//////////////////8A////////////////////////pAAAAAAAAAD//////////////////wD//////////////////////6wEAAAAAAAAAP//////////////////AP////////////////////h4AAAAAAAAAAAA//////////////////8A//////////////////ygJAAAAAAAAAAAAAD//////////////////wD//////////////9x8HAAAAAAAAAAAAAAAAP//////////////////AP//////////////AAAAAAAAAAAAAAAAAAAA//////////////////8A//////////////8AAAAAAAAAAAAAAAAAAAD//////////////////wD//////////////wAAAAAAAAR4AAAAAAAAAP//////////////////AP//////////////AAAAAAA4zP8AAAAAAAAA//////////////////8A//////////////8AAAA4sP///wAAAAAAAAD//////////////////wD//////////////yR80P//////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '2' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP/////////////////okFAkCAAABCBIfNT///////////////////8A///////////////8hAgAAAAAAAAAAAAAAFTo/////////////////wD//////////////1QAAAAAAAAAAAAAAAAAACjo////////////////AP////////////+MAAAAAAAAAAAAAAAAAAAAADj///////////////8A////////////9BAAAAAAAAAAAAAAAAAAAAAAALD//////////////wD///////////+gAAAAAAAAAHjs+KwMAAAAAAAAVP//////////////AP///////////1gAAAAAAABM/////6QAAAAAAAAU//////////////8A////////////KAAAAAAAALj/////+AAAAAAAAAD//////////////wD///////////+MfGBMOCAI8P/////wAAAAAAAACP//////////////AP///////////////////////////5wAAAAAAAAw//////////////8A///////////////////////////oFAAAAAAAAHz//////////////wD/////////////////////////6CgAAAAAAAAE3P//////////////AP///////////////////////9ggAAAAAAAAAHT///////////////8A//////////////////////+0DAAAAAAAAAA8+P///////////////wD/////////////////////gAAAAAAAAAAAKOj/////////////////AP//////////////////9FAAAAAAAAAAADzw//////////////////8A/////////////////+g4AAAAAAAAAABk/P///////////////////wD////////////////oKAAAAAAAAAAMqP//////////////////////AP//////////////6CgAAAAAAAAAMNz///////////////////////8A//////////////g4AAAAAAAAAFT0/////////////////////////wD/////////////bAAAAAAAAABU/P//////////////////////////AP///////////8wAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A////////////SAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////9wAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////hAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////9AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////xAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '3' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD////////////////8sGg0FAAAACA4cLz8////////////////////AP//////////////rBgAAAAAAAAAAAAAACTA//////////////////8A/////////////3QAAAAAAAAAAAAAAAAAAASs/////////////////wD///////////+YAAAAAAAAAAAAAAAAAAAAAAjc////////////////AP//////////6AwAAAAAAAAAAAAAAAAAAAAAAGT///////////////8A//////////94AAAAAAAABJDw/8g4AAAAAAAAHP///////////////wD//////////yAAAAAAAACE/////9gAAAAAAAAA////////////////AP///////////NSwiGQ4FOT//////AAAAAAAABD///////////////8A//////////////////////////+YAAAAAAAAVP///////////////wD//////////////////////P/ggAQAAAAAAATM////////////////AP////////////////////9gAAAAAAAAAAAElP////////////////8A/////////////////////0AAAAAAAAAAHLj//////////////////wD/////////////////////OAAAAAAAAAAwkPj/////////////////AP////////////////////8gAAAAAAAAAAAAINj///////////////8A/////////////////////xAAAAAAAAAAAAAAIPD//////////////wD/////////////////////uOz/4HgEAAAAAAAAhP//////////////AP///////////////////////////3wAAAAAAAAw//////////////8A////////////////////////////6AAAAAAAAAj//////////////wD/////////////////////////////AAAAAAAAAP//////////////AP//////////tJh8YEQoDNz//////+AAAAAAAAAY//////////////8A//////////88AAAAAAAAaP//////dAAAAAAAAEz//////////////wD//////////6QAAAAAAAAAdOD/5HQAAAAAAAAApP//////////////AP///////////CgAAAAAAAAAAAAAAAAAAAAAACD4//////////////8A////////////yAQAAAAAAAAAAAAAAAAAAAAEuP///////////////wD/////////////rAQAAAAAAAAAAAAAAAAABJD/////////////////AP//////////////zDQAAAAAAAAAAAAAACTA//////////////////8A/////////////////8BwOCAAAAAUNGi0/P///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '4' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////////////////nAAAAAAAAAD///////////////8A/////////////////////////8AEAAAAAAAAAP///////////////wD////////////////////////gGAAAAAAAAAAA////////////////AP//////////////////////9DAAAAAAAAAAAAD///////////////8A//////////////////////9UAAAAAAAAAAAAAP///////////////wD/////////////////////hAAAAAAAAAAAAAAA////////////////AP///////////////////7QAAAAAAAAAAAAAAAD///////////////8A///////////////////UDAAAAAAUAAAAAAAAAP///////////////wD/////////////////7CQAAAAABMAAAAAAAAAA////////////////AP////////////////xEAAAAAACU/wAAAAAAAAD///////////////8A////////////////cAAAAAAAZP//AAAAAAAAAP///////////////wD//////////////6AAAAAAADz8//8AAAAAAAAA////////////////AP/////////////IBAAAAAAc6P///wAAAAAAAAD///////////////8A////////////5BgAAAAADMz/////AAAAAAAAAP///////////////wD///////////g0AAAAAACk//////8AAAAAAAAA////////////////AP//////////XAAAAAAAfP///////wAAAAAAAAD///////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A////////////////////////////AAAAAAAAAP///////////////wD///////////////////////////8AAAAAAAAA////////////////AP///////////////////////////wAAAAAAAAD///////////////8A////////////////////////////AAAAAAAAAP///////////////wD///////////////////////////8AAAAAAAAA////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '5' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////8AAAAAAAAAAAAAAAAAAAAAAA//////////////8A///////////////MAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////////6wAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////////iAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////////9kAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////////0QAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////////IAAAAAAAYP////////////////////////////8A//////////////wAAAAAAAB8/////////////////////////////wD/////////////3AAAAAAAAIj/////////////////////////////AP////////////+4AAAAAAAAoLRYHAAEKGTE//////////////////8A/////////////5QAAAAAAAAQAAAAAAAAAABY9P///////////////wD/////////////dAAAAAAAAAAAAAAAAAAAAAA89P//////////////AP////////////9QAAAAAAAAAAAAAAAAAAAAAABg//////////////8A/////////////zAAAAAAAAAAAAAAAAAAAAAAAADQ/////////////wD/////////////IAAAAAAAAGjY/+h4BAAAAAAAAGz/////////////AP//////////////9NS0lHSc//////90AAAAAAAALP////////////8A/////////////////////////////9QAAAAAAAAE/////////////wD//////////////////////////////wAAAAAAAAD/////////////AP/////////////////////////////8AAAAAAAAEP////////////8A////////////pIRwWEAgDOD//////8wAAAAAAAA8/////////////wD///////////9EAAAAAAAAaP//////ZAAAAAAAAHz/////////////AP///////////6QAAAAAAAAAaOD/4GQAAAAAAAAE4P////////////8A/////////////CQAAAAAAAAAAAAAAAAAAAAAAGD//////////////wD/////////////yAQAAAAAAAAAAAAAAAAAAAAc7P//////////////AP//////////////rAwAAAAAAAAAAAAAAAAAGNj///////////////8A////////////////0EAAAAAAAAAAAAAAAFTo/////////////////wD//////////////////8h4QCAAAAAcQHzU////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '6' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////////////+0ZCwMAAAUNGjI////////////////////AP/////////////////EMAAAAAAAAAAAAABM6P////////////////8A////////////////lAQAAAAAAAAAAAAAAAAo6P///////////////wD//////////////6wAAAAAAAAAAAAAAAAAAABI////////////////AP/////////////oEAAAAAAAAAAAAAAAAAAAAACw//////////////8A/////////////3AAAAAAAAAoxP/YPAAAAAAAAEj//////////////wD////////////4EAAAAAAACOD////YDCBAVGiAoP//////////////AP///////////7gAAAAAAABY//////////////////////////////8A////////////eAAAAAAAAJT//////////////////////////////wD///////////9MAAAAAAAAvP/IXBgABCx03P//////////////////AP///////////ygAAAAAAADcdAAAAAAAAAAEiP////////////////8A////////////FAAAAAAAAFAAAAAAAAAAAAAAcP///////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAlP//////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAQ8P////////////8A////////////AAAAAAAAAABAyP/kZAAAAAAAAACQ/////////////wD///////////8MAAAAAAAALPj/////WAAAAAAAAET/////////////AP///////////yQAAAAAAACY///////MAAAAAAAAFP////////////8A////////////SAAAAAAAAMD///////wAAAAAAAAA/////////////wD///////////9wAAAAAAAAvP///////wAAAAAAAAD/////////////AP///////////7QAAAAAAACI///////UAAAAAAAAJP////////////8A////////////+AwAAAAAACDw/////2wAAAAAAABY/////////////wD/////////////cAAAAAAAADC8/Ox4AAAAAAAAAKj/////////////AP/////////////oEAAAAAAAAAAAAAAAAAAAAAAk/P////////////8A//////////////+oAAAAAAAAAAAAAAAAAAAABLj//////////////wD///////////////+QAAAAAAAAAAAAAAAAAACQ////////////////AP////////////////+0JAAAAAAAAAAAAAAkuP////////////////8A///////////////////8sGg0FAAADCxgqPz//////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '7' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAABP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAy4/////////////wD//////////////////////////+QUAAAAAAAEuP//////////////AP/////////////////////////8QAAAAAAAAKT///////////////8A/////////////////////////4wAAAAAAAB0/////////////////wD////////////////////////cCAAAAAAANPz/////////////////AP///////////////////////0QAAAAAAATY//////////////////8A//////////////////////+0AAAAAAAAeP///////////////////wD//////////////////////CQAAAAAABTw////////////////////AP////////////////////+gAAAAAAAAkP////////////////////8A/////////////////////ywAAAAAABDw/////////////////////wD///////////////////+4AAAAAAAAbP//////////////////////AP///////////////////1wAAAAAAADQ//////////////////////8A///////////////////4DAAAAAAAMP///////////////////////wD//////////////////7QAAAAAAAB8////////////////////////AP//////////////////aAAAAAAAAMj///////////////////////8A//////////////////8oAAAAAAAM/P///////////////////////wD/////////////////8AAAAAAAAET/////////////////////////AP////////////////+0AAAAAAAAcP////////////////////////8A/////////////////4wAAAAAAACY/////////////////////////wD/////////////////WAAAAAAAAMD/////////////////////////AP////////////////80AAAAAAAA4P////////////////////////8A/////////////////xAAAAAAAAD4/////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '8' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD////////////////////IdDQUAAAEIEiA1P//////////////////AP/////////////////gRAAAAAAAAAAAAAAAROD///////////////8A////////////////0BgAAAAAAAAAAAAAAAAAEMj//////////////wD///////////////AcAAAAAAAAAAAAAAAAAAAAHPD/////////////AP//////////////hAAAAAAAAAAAAAAAAAAAAAAAhP////////////8A//////////////8sAAAAAAAAKMz/zCgAAAAAAAAs/////////////wD//////////////wAAAAAAAADM////zAAAAAAAAAD/////////////AP//////////////BAAAAAAAAP//////AAAAAAAABP////////////8A//////////////8sAAAAAAAAzP///9QAAAAAAAAw/////////////wD//////////////3wAAAAAAAAoyP/YNAAAAAAAAIT/////////////AP//////////////7BgAAAAAAAAAAAAAAAAAAAAc8P////////////8A////////////////xBgAAAAAAAAAAAAAAAAAGNj//////////////wD/////////////////tAQAAAAAAAAAAAAAAACo////////////////AP///////////////HAAAAAAAAAAAAAAAAAAAAB8//////////////8A//////////////9gAAAAAAAAAAAAAAAAAAAAAAB8/////////////wD/////////////wAAAAAAAAABk4P/UWAAAAAAAAATQ////////////AP////////////9UAAAAAAAAaP//////XAAAAAAAAGT///////////8A/////////////xgAAAAAAADg///////cAAAAAAAAJP///////////wD/////////////AAAAAAAAAP////////8AAAAAAAAA////////////AP////////////8AAAAAAAAA4P//////3AAAAAAAAAT///////////8A/////////////ygAAAAAAABg//////9cAAAAAAAALP///////////wD/////////////ZAAAAAAAAABY1P/cXAAAAAAAAABw////////////AP/////////////QAAAAAAAAAAAAAAAAAAAAAAAABNz///////////8A//////////////9gAAAAAAAAAAAAAAAAAAAAAAB0/////////////wD///////////////Q8AAAAAAAAAAAAAAAAAAAAUPz/////////////AP////////////////x4CAAAAAAAAAAAAAAAEIT8//////////////8A///////////////////smFQwGAAAABg0ZKT0/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '9' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////////////ysYCwMAAAUNGiw/P//////////////////AP////////////////+4JAAAAAAAAAAAAAAkuP////////////////8A////////////////lAQAAAAAAAAAAAAAAAAAkP///////////////wD//////////////8AEAAAAAAAAAAAAAAAAAAAAqP//////////////AP/////////////8JAAAAAAAAAAAAAAAAAAAAAAQ7P////////////8A/////////////6wAAAAAAAAAfOz8vCwAAAAAAABw/////////////wD/////////////WAAAAAAAAHD/////7BgAAAAAAAz4////////////AP////////////8kAAAAAAAA1P//////hAAAAAAAALT///////////8A/////////////wAAAAAAAAD///////+4AAAAAAAAcP///////////wD/////////////AAAAAAAAAPz//////8AAAAAAAABI////////////AP////////////8UAAAAAAAAzP//////lAAAAAAAACT///////////8A/////////////0QAAAAAAABY//////gsAAAAAAAADP///////////wD/////////////kAAAAAAAAABw5P/IPAAAAAAAAAAA////////////AP/////////////wEAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A//////////////+UAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD///////////////9wAAAAAAAAAAAAAFAAAAAAAAAU////////////AP////////////////+IBAAAAAAAAABw3AAAAAAAACj///////////8A///////////////////cdCwEABhcxP+8AAAAAAAATP///////////wD//////////////////////////////5AAAAAAAAB4////////////AP//////////////////////////////UAAAAAAAALj///////////8A//////////////+kgGxUQCAM2P///+AIAAAAAAAQ+P///////////wD//////////////0gAAAAAAAA42P/EKAAAAAAAAHD/////////////AP//////////////sAAAAAAAAAAAAAAAAAAAAAAQ6P////////////8A////////////////TAAAAAAAAAAAAAAAAAAAAKz//////////////wD////////////////oKAAAAAAAAAAAAAAAAASU////////////////AP/////////////////sUAAAAAAAAAAAAAAwxP////////////////8A////////////////////yHA0FAAADCxktP///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'A' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////////////////+QAAAAAAAAAAAAAAOT/////////////////AP//////////////////kAAAAAAAAAAAAAAAkP////////////////8A//////////////////88AAAAAAAAAAAAAAA8/////////////////wD/////////////////5AAAAAAAAAAAAAAAAADk////////////////AP////////////////+QAAAAAAAAAAAAAAAAAJD///////////////8A/////////////////zwAAAAAAAAAAAAAAAAAPP///////////////wD////////////////kAAAAAAAAAAgAAAAAAAAA5P//////////////AP///////////////5AAAAAAAAAAgAAAAAAAAACQ//////////////8A////////////////PAAAAAAAAAz8HAAAAAAAADz//////////////wD//////////////+QAAAAAAAAAWP9kAAAAAAAAANz/////////////AP//////////////kAAAAAAAAACk/7wAAAAAAAAAhP////////////8A//////////////88AAAAAAAABOz//BQAAAAAAAAw/////////////wD/////////////4AAAAAAAAAA8////ZAAAAAAAAADc////////////AP////////////+EAAAAAAAAAIj///+8AAAAAAAAAIT///////////8A/////////////zAAAAAAAAAA2P////wQAAAAAAAAMP///////////wD////////////cAAAAAAAAACT//////1wAAAAAAAAA3P//////////AP///////////4QAAAAAAAAAAAAAAAAAAAAAAAAAAACE//////////8A////////////MAAAAAAAAAAAAAAAAAAAAAAAAAAAADD//////////wD//////////9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANz/////////AP//////////hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhP////////8A//////////8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/////////wD/////////3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc////////AP////////+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIT///////8A/////////zAAAAAAAAAAhP///////////2QAAAAAAAAAMP///////wD////////cAAAAAAAAAADM////////////vAAAAAAAAAAA3P//////AP///////4QAAAAAAAAAHP/////////////4DAAAAAAAAACE//////8A////////MAAAAAAAAABk//////////////9cAAAAAAAAADD//////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'B' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAEDh83P///////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAEhP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAeP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAxP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAABY////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAABT///////////8A//////////8AAAAAAAAAAP/////4zEwAAAAAAAAAAP///////////wD//////////wAAAAAAAAAA////////7AAAAAAAAAAQ////////////AP//////////AAAAAAAAAAD////////sAAAAAAAAAEj///////////8A//////////8AAAAAAAAAAP/////4zEQAAAAAAAAAtP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAFz/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAiA/P////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAIjPj//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAGKz/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJT///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAABNz//////////wD//////////wAAAAAAAAAA///////sqCAAAAAAAAAAbP//////////AP//////////AAAAAAAAAAD/////////yAAAAAAAAAAs//////////8A//////////8AAAAAAAAAAP//////////AAAAAAAAAAT//////////wD//////////wAAAAAAAAAA/////////7wAAAAAAAAAAP//////////AP//////////AAAAAAAAAAD//////+ikGAAAAAAAAAAY//////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFT//////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsP//////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAADj///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAc6P///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAATOj/////////////AP//////////AAAAAAAAAAAAAAAAAAAEIEBkkNj///////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'C' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////////5JRULBAAAAgkTIDQ//////////////////8A////////////////1FAAAAAAAAAAAAAAAABAyP///////////////wD//////////////4gEAAAAAAAAAAAAAAAAAAAElP//////////////AP////////////9wAAAAAAAAAAAAAAAAAAAAAAAAlP////////////8A////////////kAAAAAAAAAAAAAAAAAAAAAAAAAAEyP///////////wD//////////9wIAAAAAAAAAAAAAAAAAAAAAAAAAAAw////////////AP//////////WAAAAAAAAAAAWMz/8JwQAAAAAAAAAACw//////////8A/////////+wEAAAAAAAAAID//////9QMAAAAAAAAAET//////////wD/////////nAAAAAAAAAAo/P///////3wAAAAABDBspP//////////AP////////9gAAAAAAAAAIz/////////3BxQjMT0//////////////8A/////////zQAAAAAAAAAzP///////////////////////////////wD/////////GAAAAAAAAADo////////////////////////////////AP////////8AAAAAAAAAAP////////////////////////////////8A/////////wAAAAAAAAAA/////////////////////////////////wD/////////AAAAAAAAAAD/////////////////////////////////AP////////8cAAAAAAAAAOj///////////////////////////////8A/////////zgAAAAAAAAA0P/////////kIGio7P///////////////wD/////////bAAAAAAAAACg/////////5wAAAAAMHS49P//////////AP////////+oAAAAAAAAAEz/////////PAAAAAAAAAAc//////////8A//////////QIAAAAAAAAALz//////6QAAAAAAAAAAGT//////////wD//////////3AAAAAAAAAADIzo/+SEBAAAAAAAAAAAyP//////////AP//////////7BAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A////////////rAAAAAAAAAAAAAAAAAAAAAAAAAAE0P///////////wD/////////////fAAAAAAAAAAAAAAAAAAAAAAAAJz/////////////AP//////////////iAQAAAAAAAAAAAAAAAAAAASY//////////////8A////////////////yEAAAAAAAAAAAAAAAAA8yP///////////////wD//////////////////9yIUCwQAAAAIEB4yP//////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'D' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////8AAAAAAAAAAAAAAAAADChQkOT/////////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAABGjw//////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAACDY/////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAABjk////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKj//////////wD///////////8AAAAAAAAAAP///+isSAAAAAAAAAAANP//////////AP///////////wAAAAAAAAAA////////hAAAAAAAAAAA2P////////8A////////////AAAAAAAAAAD/////////MAAAAAAAAACQ/////////wD///////////8AAAAAAAAAAP////////+MAAAAAAAAAFj/////////AP///////////wAAAAAAAAAA/////////8gAAAAAAAAAMP////////8A////////////AAAAAAAAAAD/////////5AAAAAAAAAAY/////////wD///////////8AAAAAAAAAAP//////////AAAAAAAAAAD/////////AP///////////wAAAAAAAAAA//////////8AAAAAAAAAAP////////8A////////////AAAAAAAAAAD//////////wAAAAAAAAAA/////////wD///////////8AAAAAAAAAAP/////////wAAAAAAAAABD/////////AP///////////wAAAAAAAAAA/////////9QAAAAAAAAAJP////////8A////////////AAAAAAAAAAD/////////qAAAAAAAAABI/////////wD///////////8AAAAAAAAAAP////////9QAAAAAAAAAHj/////////AP///////////wAAAAAAAAAA////////uAAAAAAAAAAAvP////////8A////////////AAAAAAAAAAD////w0HwEAAAAAAAAACT8/////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAADz8//////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAY6P///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAKNz/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAACHT0//////////////8A////////////AAAAAAAAAAAAAAAAABg4bKj0/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'E' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'F' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'G' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////////////////MB8TCgQAAAACCA4YJzs////////////////AP///////////////JQcAAAAAAAAAAAAAAAAAAhw8P////////////8A/////////////9gwAAAAAAAAAAAAAAAAAAAAAAAk2P///////////wD////////////EDAAAAAAAAAAAAAAAAAAAAAAAAAAc7P//////////AP//////////2AwAAAAAAAAAAAAAAAAAAAAAAAAAAABY//////////8A//////////wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/////////wD/////////kAAAAAAAAAAAEHzQ/P/gmCAAAAAAAAAAAFz/////////AP////////wcAAAAAAAAACjg////////8CwAAAAAAAAgWP////////8A////////vAAAAAAAAAAI2P//////////yBRAcJjI8P///////////wD///////94AAAAAAAAAGD/////////////////////////////////AP///////0AAAAAAAAAAsP////////////////////////////////8A////////IAAAAAAAAADc/////////////////////////////////wD///////8AAAAAAAAAAP///////wAAAAAAAAAAAAAAAAD/////////AP///////wAAAAAAAAAA////////AAAAAAAAAAAAAAAAAP////////8A////////AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAA/////////wD///////8gAAAAAAAAAOD//////wAAAAAAAAAAAAAAAAD/////////AP///////0AAAAAAAAAAtP//////AAAAAAAAAAAAAAAAAP////////8A////////cAAAAAAAAABw//////8AAAAAAAAAAAAAAAAA/////////wD///////+8AAAAAAAAABDs////////////AAAAAAAAAAD/////////AP////////wYAAAAAAAAADz0//////////AAAAAAAAAAAP////////8A/////////5AAAAAAAAAAACCY4P//3KhcCAAAAAAAAAAA/////////wD/////////+CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AP//////////xAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIP////////8A////////////rAQAAAAAAAAAAAAAAAAAAAAAAAAAAGTw/////////wD/////////////vBQAAAAAAAAAAAAAAAAAAAAAADjI////////////AP//////////////8HAQAAAAAAAAAAAAAAAAAEiw//////////////8A//////////////////iwcEAgBAAABCA4aKDk/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'H' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'I' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'J' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAj//////////////wD//////////+zMrIxwUDAQ//////wAAAAAAAAAIP//////////////AP//////////DAAAAAAAAADo////2AAAAAAAAAA0//////////////8A//////////8wAAAAAAAAAKj///+YAAAAAAAAAFj//////////////wD//////////2gAAAAAAAAAIND/yBgAAAAAAAAAkP//////////////AP//////////vAAAAAAAAAAAAAAAAAAAAAAAAADc//////////////8A////////////MAAAAAAAAAAAAAAAAAAAAAAAUP///////////////wD////////////EBAAAAAAAAAAAAAAAAAAAABjk////////////////AP////////////+sBAAAAAAAAAAAAAAAAAAY2P////////////////8A///////////////EMAAAAAAAAAAAAAAAVOj//////////////////wD/////////////////vHBAIAAAABg8fNT/////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'K' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////8AAAAAAAAAAP//////////wAQAAAAAAAAAAABw////////AP///////wAAAAAAAAAA/////////9AMAAAAAAAAAAAAcP////////8A////////AAAAAAAAAAD////////cGAAAAAAAAAAAAHD//////////wD///////8AAAAAAAAAAP//////6CgAAAAAAAAAAABs////////////AP///////wAAAAAAAAAA//////Q0AAAAAAAAAAAAVPz///////////8A////////AAAAAAAAAAD////8RAAAAAAAAAAAAFT8/////////////wD///////8AAAAAAAAAAP///1gAAAAAAAAAAABU/P//////////////AP///////wAAAAAAAAAA//9wAAAAAAAAAAAASPz///////////////8A////////AAAAAAAAAAD/jAAAAAAAAAAAADz0/////////////////wD///////8AAAAAAAAAAKQAAAAAAAAAAAA89P//////////////////AP///////wAAAAAAAAAABAAAAAAAAAAAFPT///////////////////8A////////AAAAAAAAAAAAAAAAAAAAAAAApP///////////////////wD///////8AAAAAAAAAAAAAAAAAAAAAAAAU8P//////////////////AP///////wAAAAAAAAAAAAAAAAAAAAAAAABk//////////////////8A////////AAAAAAAAAAAAAAAAAAAAAAAAAADE/////////////////wD///////8AAAAAAAAAAAAAAAAoEAAAAAAAACz8////////////////AP///////wAAAAAAAAAAAAAAGNiAAAAAAAAAAIj///////////////8A////////AAAAAAAAAAAAABjY//gYAAAAAAAACOD//////////////wD///////8AAAAAAAAAAAAY2P///5wAAAAAAAAASP//////////////AP///////wAAAAAAAAAAGNj//////CgAAAAAAAAAqP////////////8A////////AAAAAAAAAADI////////sAAAAAAAAAAc8P///////////wD///////8AAAAAAAAAAP//////////QAAAAAAAAABs////////////AP///////wAAAAAAAAAA///////////IAAAAAAAAAATI//////////8A////////AAAAAAAAAAD///////////9YAAAAAAAAADD8/////////wD///////8AAAAAAAAAAP///////////9wEAAAAAAAAAJD/////////AP///////wAAAAAAAAAA/////////////3AAAAAAAAAADOT///////8A////////AAAAAAAAAAD/////////////7BAAAAAAAAAAUP///////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'L' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'M' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////8AAAAAAAAAAAAAAHz//////3wAAAAAAAAAAAAAAP///////wD//////wAAAAAAAAAAAAAATP//////UAAAAAAAAAAAAAAA////////AP//////AAAAAAAAAAAAAAAc//////8cAAAAAAAAAAAAAAD///////8A//////8AAAAAAAAAAAAAAADw////8AAAAAAAAAAAAAAAAP///////wD//////wAAAAAAAAAAAAAAALz////AAAAAAAAAAAAAAAAA////////AP//////AAAAAAAAAAAAAAAAkP///5AAAAAAAAAAAAAAAAD///////8A//////8AAAAAAAAAAAAAAABc////ZAAAAAAAAAAAAAAAAP///////wD//////wAAAAAAAAAoAAAAADD///8wAAAAACQAAAAAAAAA////////AP//////AAAAAAAAAFwAAAAABPz//AgAAAAAXAAAAAAAAAD///////8A//////8AAAAAAAAAkAAAAAAA0P/UAAAAAACQAAAAAAAAAP///////wD//////wAAAAAAAADMAAAAAACg/6gAAAAAAMQAAAAAAAAA////////AP//////AAAAAAAAAPgEAAAAAHD/dAAAAAAE+AAAAAAAAAD///////8A//////8AAAAAAAAA/zQAAAAAQP9IAAAAADD/AAAAAAAAAP///////wD//////wAAAAAAAAD/bAAAAAAQ/xQAAAAAaP8AAAAAAAAA////////AP//////AAAAAAAAAP+gAAAAAADQAAAAAACc/wAAAAAAAAD///////8A//////8AAAAAAAAA/9QAAAAAAGgAAAAAAND/AAAAAAAAAP///////wD//////wAAAAAAAAD//wwAAAAAFAAAAAAM/P8AAAAAAAAA////////AP//////AAAAAAAAAP//RAAAAAAAAAAAADz//wAAAAAAAAD///////8A//////8AAAAAAAAA//94AAAAAAAAAAAAcP//AAAAAAAAAP///////wD//////wAAAAAAAAD//7AAAAAAAAAAAACo//8AAAAAAAAA////////AP//////AAAAAAAAAP//5AAAAAAAAAAAANz//wAAAAAAAAD///////8A//////8AAAAAAAAA////HAAAAAAAAAAQ////AAAAAAAAAP///////wD//////wAAAAAAAAD///9QAAAAAAAAAEz///8AAAAAAAAA////////AP//////AAAAAAAAAP///4gAAAAAAAAAfP///wAAAAAAAAD///////8A//////8AAAAAAAAA////vAAAAAAAAACw////AAAAAAAAAP///////wD//////wAAAAAAAAD////wAAAAAAAAAOz///8AAAAAAAAA////////AP//////AAAAAAAAAP////8sAAAAAAAc/////wAAAAAAAAD///////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'N' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////AAAAAAAAALD/////////////AAAAAAAAAP//////////AP////////8AAAAAAAAAFOj///////////8AAAAAAAAA//////////8A/////////wAAAAAAAAAASP///////////wAAAAAAAAD//////////wD/////////AAAAAAAAAAAAkP//////////AAAAAAAAAP//////////AP////////8AAAAAAAAAAAAI1P////////8AAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAw+P///////wAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAABw////////AAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAC8//////8AAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAAABzs/////wAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAAAAAFD/////AAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAJz///8AAAAAAAAA//////////8A/////////wAAAAAAAAAUAAAAAAAADNz//wAAAAAAAAD//////////wD/////////AAAAAAAAALQAAAAAAAAANPz/AAAAAAAAAP//////////AP////////8AAAAAAAAA/2wAAAAAAAAAfP8AAAAAAAAA//////////8A/////////wAAAAAAAAD/+CwAAAAAAAAExAAAAAAAAAD//////////wD/////////AAAAAAAAAP//0AQAAAAAAAAgAAAAAAAAAP//////////AP////////8AAAAAAAAA////jAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAD/////RAAAAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAP/////kFAAAAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAA//////+sAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAD///////9kAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAP////////QkAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAA/////////8wEAAAAAAAAAAAA//////////8A/////////wAAAAAAAAD//////////4QAAAAAAAAAAAD//////////wD/////////AAAAAAAAAP///////////DwAAAAAAAAAAP//////////AP////////8AAAAAAAAA////////////4BAAAAAAAAAA//////////8A/////////wAAAAAAAAD/////////////qAAAAAAAAAD//////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'O' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A///////////////////0qGw4HAAAABw4aKT0/////////////////wD////////////////wcAwAAAAAAAAAAAAAAAho6P//////////////AP//////////////uBQAAAAAAAAAAAAAAAAAAAAMoP////////////8A/////////////6AEAAAAAAAAAAAAAAAAAAAAAAAAkP///////////wD///////////+4BAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP//////////8BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAM5P////////8A//////////9wAAAAAAAAAAAsrPD/7KQsAAAAAAAAAABg/////////wD/////////+BAAAAAAAAAAUPj///////hQAAAAAAAAAAjs////////AP////////+sAAAAAAAAABDw//////////AYAAAAAAAAAKD///////8A/////////2wAAAAAAAAAdP///////////3wAAAAAAAAAYP///////wD/////////OAAAAAAAAAC4////////////xAAAAAAAAAAw////////AP////////8cAAAAAAAAAOD////////////oAAAAAAAAABT///////8A/////////wAAAAAAAAAA//////////////8AAAAAAAAAAP///////wD/////////AAAAAAAAAAD//////////////wAAAAAAAAAA////////AP////////8AAAAAAAAAAP/////////////8AAAAAAAAAAD///////8A/////////xwAAAAAAAAA5P///////////+AAAAAAAAAAHP///////wD/////////NAAAAAAAAAC8////////////uAAAAAAAAAA4////////AP////////9oAAAAAAAAAHj///////////98AAAAAAAAAGT///////8A/////////6gAAAAAAAAAGPD/////////+BgAAAAAAAAApP///////wD/////////9AwAAAAAAAAAUPz///////xcAAAAAAAAAAjs////////AP//////////cAAAAAAAAAAALKjs//CwOAAAAAAAAAAAYP////////8A///////////wFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzk/////////wD///////////+4BAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP////////////+QAAAAAAAAAAAAAAAAAAAAAAAAAJD///////////8A//////////////+sEAAAAAAAAAAAAAAAAAAAAAyg/////////////wD////////////////oZAgAAAAAAAAAAAAAAARg4P//////////////AP//////////////////9KhsOCAAAAAUMFyc7P////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'P' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP///////////wAAAAAAAAAAAAAAAAAACCxguP////////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAOOD//////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAGOD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAARP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAxP///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAABo////////////AP///////////wAAAAAAAAAA////6JwMAAAAAAAAADD///////////8A////////////AAAAAAAAAAD//////6AAAAAAAAAADP///////////wD///////////8AAAAAAAAAAP//////9AAAAAAAAAAA////////////AP///////////wAAAAAAAAAA///////0AAAAAAAAAAD///////////8A////////////AAAAAAAAAAD//////5gAAAAAAAAAHP///////////wD///////////8AAAAAAAAAAP///9iICAAAAAAAAABI////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAJD///////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAI6P///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAIT/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAABU/P////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAIhPz//////////////wD///////////8AAAAAAAAAAAAAAAAABCRMkOz/////////////////AP///////////wAAAAAAAAAA//////////////////////////////8A////////////AAAAAAAAAAD//////////////////////////////wD///////////8AAAAAAAAAAP//////////////////////////////AP///////////wAAAAAAAAAA//////////////////////////////8A////////////AAAAAAAAAAD//////////////////////////////wD///////////8AAAAAAAAAAP//////////////////////////////AP///////////wAAAAAAAAAA//////////////////////////////8A////////////AAAAAAAAAAD//////////////////////////////wD///////////8AAAAAAAAAAP//////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'Q' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////SoaDQcAAAAHDhoqPT///////////////////8A//////////////BwDAAAAAAAAAAAAAAACHDo/////////////////wD///////////+4FAAAAAAAAAAAAAAAAAAAABCo////////////////AP//////////nAQAAAAAAAAAAAAAAAAAAAAAAACQ//////////////8A/////////7gEAAAAAAAAAAAAAAAAAAAAAAAAAACg/////////////wD////////wFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzo////////////AP///////3AAAAAAAAAAACyo8P/sqCwAAAAAAAAAAGT///////////8A///////4EAAAAAAAAABM+P///////FQAAAAAAAAACPT//////////wD//////7AAAAAAAAAAFPD/////////9BgAAAAAAAAApP//////////AP//////bAAAAAAAAAB4////////////fAAAAAAAAABk//////////8A//////84AAAAAAAAALz///////////+8AAAAAAAAADT//////////wD//////xwAAAAAAAAA6P///////////+QAAAAAAAAAHP//////////AP//////AAAAAAAAAAD//////////////wAAAAAAAAAA//////////8A//////8AAAAAAAAAAP//////////////AAAAAAAAAAD//////////wD//////wAAAAAAAAAA/P////////////8AAAAAAAAAAP//////////AP//////GAAAAAAAAADg////////////4AAAAAAAAAAc//////////8A//////84AAAAAAAAALT////MJHTo//+8AAAAAAAAADT//////////wD//////2wAAAAAAAAAdP///2AAABCg/3wAAAAAAAAAZP//////////AP//////rAAAAAAAAAAY9P/sCAAAAABMGAAAAAAAAACk//////////8A///////4EAAAAAAAAABU/P+0OAAAAAAAAAAAAAAACPT//////////wD///////94AAAAAAAAAAA4sPD/gAAAAAAAAAAAAABk////////////AP////////AcAAAAAAAAAAAAAAAAAAAAAAAAAAAADOT///////////8A/////////7wEAAAAAAAAAAAAAAAAAAAAAAAAAACQ/////////////wD//////////6wEAAAAAAAAAAAAAAAAAAAAAAAAABSs////////////AP///////////7gUAAAAAAAAAAAAAAAAAAAAAAAAAABAwP////////8A//////////////BwDAAAAAAAAAAAAAAABAgAAAAAAAA8/////////wD////////////////0qGg0GAAAABgwXJjkxBgAAAAAALD/////////AP//////////////////////////////////5DQAAAAk/P////////8A////////////////////////////////////+GwAAJD//////////wD//////////////////////////////////////8A49P//////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'R' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////wAAAAAAAAAAAAAAAAAAAAQgOGSk+P///////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAcuP//////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAEsP////////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ6P///////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD///////////8A/////////wAAAAAAAAAA///////svDgAAAAAAAAACP///////////wD/////////AAAAAAAAAAD/////////7AAAAAAAAAAA////////////AP////////8AAAAAAAAAAP/////////cAAAAAAAAABD///////////8A/////////wAAAAAAAAAA//////DQoCQAAAAAAAAAQP///////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIPj///////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAzU/////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAA02P//////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAxctPz///////////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAEDY/////////////////wD/////////AAAAAAAAAAD/9LAsAAAAAAAAAAzc////////////////AP////////8AAAAAAAAAAP///+wkAAAAAAAAADD8//////////////8A/////////wAAAAAAAAAA/////8QAAAAAAAAAAJD//////////////wD/////////AAAAAAAAAAD//////1QAAAAAAAAAFPD/////////////AP////////8AAAAAAAAAAP//////3AQAAAAAAAAAgP////////////8A/////////wAAAAAAAAAA////////aAAAAAAAAAAM6P///////////wD/////////AAAAAAAAAAD////////oCAAAAAAAAABs////////////AP////////8AAAAAAAAAAP////////+AAAAAAAAAAATc//////////8A/////////wAAAAAAAAAA//////////AUAAAAAAAAAFj//////////wD/////////AAAAAAAAAAD//////////5AAAAAAAAAAAND/////////AP////////8AAAAAAAAAAP//////////+CQAAAAAAAAAQP////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'S' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP/////////////////8vHBEIAgAAAQgQHC8/P////////////////8A////////////////pCQAAAAAAAAAAAAAAAAcoP///////////////wD//////////////FwAAAAAAAAAAAAAAAAAAAAAXP//////////////AP////////////9oAAAAAAAAAAAAAAAAAAAAAAAAhP////////////8A////////////zAAAAAAAAAAAAAAAAAAAAAAAAAAI6P///////////wD///////////9cAAAAAAAAAAAAAAAAAAAAAAAAAACA////////////AP///////////xgAAAAAAAAAUOD/8KwkAAAAAAAAADj///////////8A////////////AAAAAAAAAAD0/////8wABCAgICxASP///////////wD///////////8MAAAAAAAAAMz/////////////////////////////AP///////////0AAAAAAAAAACFiQxPT///////////////////////8A////////////oAAAAAAAAAAAAAAAADBwtPT//////////////////wD////////////8QAAAAAAAAAAAAAAAAAAACFTA////////////////AP/////////////oOAAAAAAAAAAAAAAAAAAAAABM6P////////////8A///////////////4fAgAAAAAAAAAAAAAAAAAAAAY2P///////////wD/////////////////7IwwAAAAAAAAAAAAAAAAAAAo+P//////////AP/////////////////////koGw0BAAAAAAAAAAAAACU//////////8A///////////////////////////4uFgAAAAAAAAAADz//////////wD//////////2BgSEA0IBwA6P///////5QAAAAAAAAADP//////////AP//////////JAAAAAAAAACc/////////AAAAAAAAAAA//////////8A//////////9YAAAAAAAAACDo///////AAAAAAAAAABT//////////wD//////////6QAAAAAAAAAACCk7P/snBQAAAAAAAAAUP//////////AP//////////+BAAAAAAAAAAAAAAAAAAAAAAAAAAAACs//////////8A////////////kAAAAAAAAAAAAAAAAAAAAAAAAAAAOP///////////wD////////////8RAAAAAAAAAAAAAAAAAAAAAAAABjc////////////AP/////////////0PAAAAAAAAAAAAAAAAAAAAAAg2P////////////8A///////////////8hBQAAAAAAAAAAAAAAAAMdPT//////////////wD/////////////////+LRwSCAMAAAAHDhoqPT/////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'T' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'U' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////JAAAAAAAAADk/////////+gAAAAAAAAAHP//////////AP////////9MAAAAAAAAAJz/////////nAAAAAAAAABE//////////8A/////////4gAAAAAAAAAHOj//////+ggAAAAAAAAAHz//////////wD/////////0AAAAAAAAAAAIJzs/+ykIAAAAAAAAAAA0P//////////AP//////////QAAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A///////////IBAAAAAAAAAAAAAAAAAAAAAAAAAAE0P///////////wD///////////+YAAAAAAAAAAAAAAAAAAAAAAAAAJj/////////////AP////////////+UBAAAAAAAAAAAAAAAAAAAAASU//////////////8A///////////////IPAAAAAAAAAAAAAAAAAAwyP///////////////wD/////////////////0IxYOCAIAAAEIEiAyP//////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'V' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////zAAAAAAAAAAYP//////////////ZAAAAAAAAAAw////////AP//////kAAAAAAAAAAU/P////////////8UAAAAAAAAAJD///////8A///////oBAAAAAAAAADE////////////xAAAAAAAAAAE7P///////wD///////9MAAAAAAAAAHD///////////94AAAAAAAAAEz/////////AP///////6gAAAAAAAAAJP///////////yQAAAAAAAAArP////////8A////////+BAAAAAAAAAA1P/////////YAAAAAAAAABT4/////////wD/////////aAAAAAAAAACE/////////4QAAAAAAAAAbP//////////AP/////////EAAAAAAAAADT/////////OAAAAAAAAADM//////////8A//////////8kAAAAAAAAAOT//////+QAAAAAAAAAKP///////////wD//////////4QAAAAAAAAAmP//////nAAAAAAAAACI////////////AP//////////5AAAAAAAAABE//////9EAAAAAAAABOT///////////8A////////////QAAAAAAAAAT0////9AgAAAAAAABI/////////////wD///////////+gAAAAAAAAAKT///+kAAAAAAAAAKj/////////////AP////////////QIAAAAAAAAXP///1wAAAAAAAAM+P////////////8A/////////////1wAAAAAAAAM+P/8DAAAAAAAAGT//////////////wD/////////////vAAAAAAAAAC8/7wAAAAAAAAAxP//////////////AP//////////////HAAAAAAAAGj/aAAAAAAAACT///////////////8A//////////////94AAAAAAAAHP8cAAAAAAAAhP///////////////wD//////////////9gAAAAAAAAAkAAAAAAAAADk////////////////AP///////////////zgAAAAAAAAQAAAAAAAAQP////////////////8A////////////////lAAAAAAAAAAAAAAAAACg/////////////////wD////////////////sCAAAAAAAAAAAAAAADPT/////////////////AP////////////////9QAAAAAAAAAAAAAABg//////////////////8A/////////////////7AAAAAAAAAAAAAAAMD//////////////////wD//////////////////BQAAAAAAAAAAAAc////////////////////AP//////////////////cAAAAAAAAAAAAHz///////////////////8A///////////////////MAAAAAAAAAAAA3P///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'W' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//8cAAAAAAAAALz/////4AAAAAAAAAAA6P////+8AAAAAAAAABz//wD//1QAAAAAAAAAjP////+gAAAAAAAAAACo/////4wAAAAAAAAAUP//AP//jAAAAAAAAABU/////2AAAAAAAAAAAGj/////VAAAAAAAAACM//8A///EAAAAAAAAACT/////IAAAAAAAAAAAKP////8kAAAAAAAAAMT//wD///gEAAAAAAAAAPD//+AAAAAAAAAAAAAA6P//8AAAAAAAAAAE9P//AP///zAAAAAAAAAAvP//oAAAAAAAAAAAAACo//+8AAAAAAAAADD///8A////bAAAAAAAAACM//9gAAAAAAAAAAAAAGT//4wAAAAAAAAAaP///wD///+kAAAAAAAAAFT//yAAAAAAAAAAAAAAIP//VAAAAAAAAACc////AP///9gAAAAAAAAAJP/gAAAAAAAAAAAAAAAA4P8kAAAAAAAAANT///8A/////xAAAAAAAAAA8KAAAAAAAAAAAAAAAACg8AAAAAAAAAAQ/////wD/////TAAAAAAAAAC8YAAAAAAAAAAAAAAAAGC8AAAAAAAAAET/////AP////+AAAAAAAAAAIwgAAAAAAAAAAAAAAAAIIwAAAAAAAAAfP////8A/////7gAAAAAAAAANAAAAAAAACwwAAAAAAAANAAAAAAAAACw/////wD/////8AAAAAAAAAAAAAAAAAAAdHgAAAAAAAAAAAAAAAAAAOz/////AP//////KAAAAAAAAAAAAAAAAAC4vAAAAAAAAAAAAAAAAAAg//////8A//////9gAAAAAAAAAAAAAAAACPj4CAAAAAAAAAAAAAAAAFj//////wD//////5QAAAAAAAAAAAAAAABE//9IAAAAAAAAAAAAAAAAkP//////AP//////0AAAAAAAAAAAAAAAAIj//4wAAAAAAAAAAAAAAADI//////8A///////8DAAAAAAAAAAAAAAAzP//1AAAAAAAAAAAAAAABPj//////wD///////88AAAAAAAAAAAAABT/////GAAAAAAAAAAAAAA0////////AP///////3QAAAAAAAAAAAAAWP////9gAAAAAAAAAAAAAHD///////8A////////sAAAAAAAAAAAAACg/////6QAAAAAAAAAAAAApP///////wD////////kAAAAAAAAAAAAAOT/////6AAAAAAAAAAAAADc////////AP////////8cAAAAAAAAAAAo////////MAAAAAAAAAAAEP////////8A/////////1QAAAAAAAAAAHD///////94AAAAAAAAAABM/////////wD/////////jAAAAAAAAAAAtP///////7wAAAAAAAAAAID/////////AP/////////EAAAAAAAAAAT0////////+AgAAAAAAAAAuP////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'X' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////9UAAAAAAAAAKz///////////+sAAAAAAAAAFD/////////AP///////+QQAAAAAAAAFOT/////////8BwAAAAAAAAM5P////////8A/////////5gAAAAAAAAATP////////9kAAAAAAAAAJD//////////wD//////////0AAAAAAAAAAoP//////wAAAAAAAAAA0/P//////////AP//////////2AgAAAAAAAAQ4P////gkAAAAAAAABMz///////////8A////////////iAAAAAAAAABA////dAAAAAAAAABw/////////////wD////////////8MAAAAAAAAACU/9AEAAAAAAAAHPD/////////////AP/////////////IBAAAAAAAAAzYMAAAAAAAAACs//////////////8A//////////////90AAAAAAAAABAAAAAAAAAATP///////////////wD///////////////QgAAAAAAAAAAAAAAAAAAzg////////////////AP///////////////7wAAAAAAAAAAAAAAAAAjP////////////////8A/////////////////2AAAAAAAAAAAAAAADD8/////////////////wD/////////////////7BQAAAAAAAAAAAAEyP//////////////////AP/////////////////gDAAAAAAAAAAAAAjY//////////////////8A/////////////////0AAAAAAAAAAAAAAADj8/////////////////wD///////////////+UAAAAAAAAAAAAAAAAAJD/////////////////AP//////////////4AwAAAAAAAAAAAAAAAAADOD///////////////8A//////////////9AAAAAAAAAAAAAAAAAAAAAQP///////////////wD/////////////nAAAAAAAAAAAWAAAAAAAAAAAlP//////////////AP///////////+QQAAAAAAAAAGD/YAAAAAAAAAAM4P////////////8A////////////TAAAAAAAAAAs9P/0LAAAAAAAAABM/////////////wD//////////6AAAAAAAAAADNT////UDAAAAAAAAACg////////////AP/////////kEAAAAAAAAACg//////+gAAAAAAAAABDk//////////8A/////////0wAAAAAAAAAYP////////9gAAAAAAAAAEz//////////wD///////+oAAAAAAAAACz0//////////QsAAAAAAAAAKT/////////AP//////7BQAAAAAAAAM1P///////////9QMAAAAAAAAFOz///////8A//////9UAAAAAAAAAKD//////////////6AAAAAAAAAAVP///////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'Y' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP///////1QAAAAAAAAAAGj//////////2gAAAAAAAAAAFT///////8A////////5BAAAAAAAAAAAMT////////EAAAAAAAAAAAQ5P///////wD/////////mAAAAAAAAAAAKPj/////+CgAAAAAAAAAAJj/////////AP//////////PAAAAAAAAAAAgP////+AAAAAAAAAAAA8//////////8A///////////YCAAAAAAAAAAE2P//2AQAAAAAAAAACNj//////////wD///////////+AAAAAAAAAAAA4//84AAAAAAAAAACA////////////AP////////////woAAAAAAAAAACUlAAAAAAAAAAAKPz///////////8A/////////////8gAAAAAAAAAABAQAAAAAAAAAADI/////////////wD//////////////2wAAAAAAAAAAAAAAAAAAAAAbP//////////////AP//////////////8BwAAAAAAAAAAAAAAAAAABzw//////////////8A////////////////tAAAAAAAAAAAAAAAAAAAtP///////////////wD/////////////////VAAAAAAAAAAAAAAAAFT/////////////////AP/////////////////oEAAAAAAAAAAAAAAQ6P////////////////8A//////////////////+cAAAAAAAAAAAAAJz//////////////////wD///////////////////9AAAAAAAAAAABA////////////////////AP///////////////////9gAAAAAAAAAANj///////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////8AAAAAAAAAAP////////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////8AAAAAAAAAAP////////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////8AAAAAAAAAAP////////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'Z' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAQ//////////////8A/////////////////////////1AAAAAAAAAABLz//////////////wD///////////////////////98AAAAAAAAAACY////////////////AP//////////////////////pAAAAAAAAAAAaP////////////////8A/////////////////////8QIAAAAAAAAAET8/////////////////wD////////////////////gGAAAAAAAAAAo9P//////////////////AP//////////////////9CwAAAAAAAAAFNz///////////////////8A//////////////////xMAAAAAAAAAATA/////////////////////wD/////////////////eAAAAAAAAAAAnP//////////////////////AP///////////////5wAAAAAAAAAAHT///////////////////////8A///////////////ABAAAAAAAAABM/P///////////////////////wD/////////////3BQAAAAAAAAALPT/////////////////////////AP////////////QoAAAAAAAAABjg//////////////////////////8A///////////8SAAAAAAAAAAExP///////////////////////////wD//////////2wAAAAAAAAAAKD/////////////////////////////AP////////+YAAAAAAAAAAB8//////////////////////////////8A/////////wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + ); + + return $_png; +} + +// These define base64_encoded raw png image data used +// when we cannot generate our own single png image +function define_raw_pngs() +{ + $_png = array( + '0' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QKCNGXKO6AAAAB3RJTUUH0wUOEDQ6EUG1VwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAXNJREFUeNpj/M9AHGAiUt2wVvhyaqAqKyOjpG3jQwaGv+e+IUn9RwJfSjjg4iwFP1aKJD6HyyErfGGAYrquIoP5E2wK/zigu0v5wH9sChdgeKDqP1aFGhBZmxv/z0Dd4IxV4RWIpMQHIPuJAITzAqEQETx7IFQIP5CQNoJwDmALxzMQCuyjg1chnBPYwtECwr8AZN41h0p6YHOjAkTuwf//77wYuCEcFWwKOWA2fM1iZuuHcASwKYQ55c9ENuasrxgRjKlwJS+D17v/hBUeUGYwv/sfn0IRiJQZJIbxuFEFagjvSlDUQNgK2GIGqpC1JRhIfoAqxBYz0DRhn8IMJO+giKEqhMaMJBeI3AHhIKdkRPqG8DlAifqFADyasKRHO6h1Z/6fMYEwTbCmx3cWGCl8CTaFwBhGz+M2/7EpXMvOnBmIok7jBVaFz/Mi3/1pQORrhpgPyOr+M8IL0j9/gKpeLjhy5QEwoDVsYuRR3cE4IktcAJNx8cJaZBeQAAAAAElFTkSuQmCC', + '1' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMi//xxVKAAAAB3RJTUUH0wUOEDYLcqnX7wAAAAlwSFlzAAALEgAACxIB0t1+/AAAAHpJREFUeNpj/M9AHGAiUh1WhR8FGUGAsMKaD9iM/I8BlmCVwVS4hoUohT8qcNiFyv2zQIWBCIV3amRwu54RKcDRAgQ1KigIcJYK7CqR3QsCFmf+Y8qgeQakbANMAz6FKjUXECbj8zWa76nm61GFw1UhI10KqVGFNFQIADdK9Zj7PsV9AAAAAElFTkSuQmCC', + '2' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMwPUBEjoAAAAB3RJTUUH0wUOEDUqFe2UcgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAQxJREFUeNpj/M9AHGAiUt2owkGrkAWF93LFgStPfjCwyGiYRGijqfyPAH9aOJAkQl78RwbICkNQjdB4gUNhD7qzLLAr/CKA4YENSAoRvl7zAUJXvPmxhgfCXILVMxEQvg+IDVUhgtVqDYjkDhD7B2aQIMIx5cOTN29evLAAsaEKObBajQzmQOQMcIQjHLwQgSisIaDwBdS5LHfwK7yhAHVVyX+8CrdAA5HB5gdehQ3Yoxpd4ZcAmDqbD//xKISEIjhU//zHoxDmXQaeFRhOZ8CmzuDOf3wKf8DsDfnyH6/CHJi6P//xKjyDJethVehBpMI7DPgVwrPCCgb8AK5wDwGFcNMF8EkCASOx1QcAGUxu1untnFIAAAAASUVORK5CYII=', + '3' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMxBQugk2AAAAB3RJTUUH0wUOEDU3duv4qwAAAAlwSFlzAAALEgAACxIB0t1+/AAAATdJREFUeNpj/M9AHGAiUt0IVciCzPm7ZceZB28YGBQkLHwcmNFU/keANRJI4ioH/qMAJIUlaHatwaFwBrqrOO5gVfiCB8P9KVgVVkAtnPDh/wkLCFsGq0IFiGQLiH0D06P/GWHJ7O+NOzfuXLlzQRrEhgSawHscwYPurxAcwQMBf/4/aIAYyHIGr8IEeDhO+Y9XoQNUncwOVHGMRPEDSovc+IkzrpGDCQgUbuC1WgBhhsIHfAp3vPn/oIIFKfRxKQSDGohCA4IKX0DTD7YoRAWMUJ9iyQpbn4DBBWUQ5yFEDDnFw622gXAzwBxoYvfB5sYlUI0lD/4/gWWKJdgU/tHAcKjCD6y+PsGCpo4FJbaRgmcNqkqWCThTzxkTJHXo+Ro1HA9uOPHiATDlKJj4eKCVFIzDqWgGAK7GW/haPS+zAAAAAElFTkSuQmCC', + '4' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMyqWttCEAAAAB3RJTUUH0wUOEDUxn4hdngAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKBJREFUeNpj/M9AHGAiUh2FCucyQgCK4H9McIAFixwWhQ8kGIhS+MWAgTiFIQzEKWxhIE7hFgbiFF7hASkQIajwjQpInuUAIYV/XMDyU/4TUlgAlk75T0jhArCszR9CCk+AY07mxX8CCp+AY47nzH8CCn+YgOWW/CekMAYsVfMfl0JGmCBq4kNEDp2zAn0UMmItABjRvDykPTO43DgyFQIANP6pTFLWAdoAAAAASUVORK5CYII=', + '5' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMzPy3XhEAAAAB3RJTUUH0wUOEDUk8lW5dQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAQpJREFUeNpj/M9AHGAiUt2oQuIVfmREBzgU3iHWxAfEKiTaRFpZnfAfAbAr/AsxUYagiVCbeQgqhPpFYmukLCOrZupRNJUIB02BCAjAZCK+/Ed2LoJZgm6bzRfsCgMw3JWAXaEBpg8uIGSRPPMBQmXc+P+iggXCnoOQZUQK1K8PgEAjGcQs7QGL6FzG5mtkcAUiyYIQYcRRUkDTLEIWR1b4ixamQMPhrKUP3rx48eDNFXmwdyFiOthixgXqaTAnBcKpwRaOS6A6Mx78fwBVx/IAm8I/KsTGzAkWNHUyb7Ar/L8GNSlK3MCRev7/v+CApC7kBUoUoAX4yQ0nHjwAWqpiE6GNFgNDoAwHAKC2Q2lMNcCmAAAAAElFTkSuQmCC', + '6' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNAObRd4vAAAAB3RJTUUH0wUOEDUc2lcB6wAAAAlwSFlzAAALEgAACxIB0t1+/AAAATtJREFUeNpj/M9AHGAiUh2Gwq2puryMjKKmmSfRVf5HBkcMEBI+L1CkUBROYUE2QuMFLoVr0CzzwKHwhQC6szZgV1gAtfHI/xs2mEYywsPxp8QHEMVxQ56B4aaJiIKIiIRCPDZf74DwI/5jB4hwPAChbAgG+BWoExlOxkoysuqW3sUV4BoQ/p0SqARLB44AF4HIByDMKMCuEIu7phCrUOADNl/DgMOJ/09SIMwPC7B5hgfC1/kB4kRAOC7YrFaByM0Ac85AOCLYrFaBhSMIQNPlG2wBDg3HP2CSGU/MuEAoiKVXUWxB9cwPiG8UwEGSg5FCMNOjwZ4/byqgpqwgMoWr/MGeZ1agqWPZgSNz/Z+AqnDCf1wK/29B8qbKDhQpRtTE8HfLjjMP3jDwKJh4hKCGJSPNC6lRhTRWCABWpdoxd/bZ4QAAAABJRU5ErkJggg==', + '7' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNA18/fMoAAAAB3RJTUUH0wUOEDUVo4u5TwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAM9JREFUeNpj/M9AHGAiUt2oQnorZIGzGLFJIyJ40HqGhUiFPFuQ/YUFPBGBmLcDSQybwj8OEDOW/CegsAeiruQ/AYV3OMDqTP4QUugCceCN/wQUQn1a8Z+Awj8qYHUiHwgpXAAxcMJ/Qgp1wOoEPhBSuANiYM5/QgpjIAovEFL4gweszgAz0NASxZ4vYMqHYDKDBiIWhWhWa0CS1x9CVn+8AaYsmAlZfQRC6RDMChADGTQIKjxDrMI7EEoBi0JGlMJe8AOY+sFOSCEeQHQBAABCZ7xyT9fJhwAAAABJRU5ErkJggg==', + '8' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNBeBnwpSAAAAB3RJTUUH0wUOEDUOKe5wowAAAAlwSFlzAAALEgAACxIB0t1+/AAAATVJREFUeNpj/M9AHGAiUt1AKmRB459cc+DBGwYWGQ2LEG1Umf/I4IELkozLA2QpFIUXJFDMEDiBQ+EHGTR3yHzArrAFwwct2BXqQGQ1zvw/owFh6mBXCDXmDJB5BsOrjEhxzfoHIgkiGCGB9xtrgEPtOwvEV6FWY4+ZAAgVc5LhZgKEGYI9wN+gBiPu4Pl/BFWlxA1cMfN/C0rUr8AVhX8K0KyuwaEwASNmarAqPACVTXnw/0oENBFewKYQGhYZYE4MVBM2hVAvQ1LhHQhHBVsUMjIgYhCdhy3PPASTd6GOxBYz0KhOQHajDjY3pkC1Rlz5fweqjqEAm8ILGK5gYLlDZICXYI+ZLzZo6gL+4EgUfyo4kJQJtCCpQ8kKQPB2zZ47L14AU5iMgUMAN7IM43AqHwdQIQAhMPz6Gz5V/wAAAABJRU5ErkJggg==', + '9' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNCQ+T2tEAAAAB3RJTUUH0wUOEDUHUDLIBwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAUZJREFUeNpj/M9AHGAiUh26wr9rE3V5GRlFTTM3/kVT+R8Z7FBBSKjsQJFCUTiFBcWMCbgUHmBBs20FdoV/VNDUMQi8wapwDVS65s2fPToQZgFWhRFIkm8kwGyeH9gUQm2+Aua0QDhb4LJI4XgHQmmDSRMIZw+emIEENAeEcwObQhEIdQHiABRbUGPGBSIQAWL/gHqbB5tnJkC1Fjz5f8IGwxwkhR8EsCQarFE4hViF/wsQCgKgHsSu8H8HLFkUQL2rgUPh/zslOiwMEjFH/kND2geXQvQgqMAWhSjgAIRygAswIuXCpXfevHjz4M0ZdQaGhxo/wAnyBTuWmPnvARGxuPH/iAa+9Ph/A7r9Ai+wK/zvg6ZwzX8cCl9oICtjmfIfl8L/bwIQ6gyO/Met8P//EwUmwHTJo5OyBU2CkdaF1KhCWisEAM/sJxmZkdWnAAAAAElFTkSuQmCC', + 'A' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QFwy1U7TfAAAAB3RJTUUH0wUOEC0ZKCZtPQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAO1JREFUeNrt1LERwiAUBuAHZ2GRwsIypQMwQEZwgBQpM4QDZBSLFI7gCA5gQWGRdA5gkTuMSh48eMTUnq96wH98B+QiDCwruTD3D76qF676ueAp0Y9lSBXeSkFWaLAje3T+kkzK4SgpBzZw8pqxJWcdOJuRsyGPbWDk0tS20zw9SXsobdfytJVXdzNsP61i6Zt3K7Ht0UeUgbPdjsrOXMd+2IS2C2qb271HVWi7YANcNXFQsUEVBTXwNdl46jYRxPl52dnwRUZbhkLSDmS8DnxFRWiULxg8UxvobefuRR8ZQYDKtffVVcQWv/RrfgJC4bd0upw4MQAAAABJRU5ErkJggg==', + 'B' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGAusrz2zAAAAB3RJTUUH0wUOEC01Gv4B3gAAAAlwSFlzAAALEgAACxIB0t1+/AAAANJJREFUeNpj/M9AHGAiUh0tFTKiAUHL2rsoKv9DARZDWFr+IwA+hQwMFcQqZDhCrMIIYhWK4FYIYv8444PuV+wK//9/A+UJwBUSCHAL3OEIsdoFyttCpGdiiAtHjoY/RCnk6PlBbBRKrCE6CqcQq5DlDs5whIT3CgUI788EvOEIBCegXB2YPCNMBSNMISqf5TeUjysK90LpP/itfrFEAhZCMHkWdKMYUbk2MAah7BqD02pUYEFkgMu8IE6hD0IdpmegwSejoKLjoY7syaFU7A0HhQA2e4cJytImvAAAAABJRU5ErkJggg==', + 'C' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGBbPqVFqAAAAB3RJTUUH0wUOEC4BEGemqAAAAAlwSFlzAAALEgAACxIB0t1+/AAAASlJREFUeNpj/M9AHGAiUt2owkGrkAWV+3TDgRtPPjBwyGiYBOijSv1HAlcCkGUcTiDLISvsQDOeZQp2hQWYDpuCTeEEbD44ganwDgc2vxpgKoyAyUWc+f9hjgCMtwFd4RuYRxog/ueBcl3QFc6BSmj8gfBrwE40yFmCrjABqrAH5mSZgJ4jX7AEjwlU4Zn/OAAsrp9AaRlccc0IzdeMsBilOPWQrBDmtpfEKnwBpZ8qZq58i6IS6vscKHcBcgQYlOz4gh6OK6AKfaB8G5hN6Aq/wBLPHjB3CczCFIzUA0u2PD0v/j9pgaf1ExgK3wgwYAEOWFL4GizqWC5gyzM1mArnEJkLZ2DPhf//n3BAVmeDkq8ZUZPL3TUn7gBLCgYFBYsAcxQZRmKrDwABNsv9SJSDwwAAAABJRU5ErkJggg==', + 'D' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGC1+orhOAAAAB3RJTUUH0wUOEC4yr7fHvgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAM9JREFUeNpj/M9AHGAiUt1AKmSBsxiRhXlkNBxCpFFU/ocBTDMyPvxHADwKGRgUbhCpkEHiCZEKGRyIVciwArdCIPPFGg8YzwSvQiBogXFvEFD43wDKnQDl44yZGCh9glAU2sCsJqRQBkq/gMUw3G2wuP6PnU/H9PgRSgsQUvgESosQUngFSqsQUrgCSsNiCFcU7oBx9+CL6w8XamB5SeUPkelxAZEJ1+YPcQolXhCXFTTuEJULOUq+IOVrFgasQELBxMaHG1mEcTiVjwOoEADAIkCnGpmJKgAAAABJRU5ErkJggg==', + 'E' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGDeDwEE0AAAAB3RJTUUH0wUOEC8CkHXGUwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAD5JREFUeNpj/M9AHGAiUt2owkGrkAXGYMQqjUgJQ8EzpPsa05+D140oMYTk4KEQ4MMqZqgUhcM1czESW30AABfqB1XDnLzcAAAAAElFTkSuQmCC', + 'F' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGQe8AkDZAAAAB3RJTUUH0wUOEC8JB6cf2wAAAAlwSFlzAAALEgAACxIB0t1+/AAAADlJREFUeNpj/M9AHGAiUt3wUsiCYDJikUYE3lDwDDm+xvTp4HUjIoaQXTsUAnxYxcyoQryAcUSWuAAW/gZTg/yEMAAAAABJRU5ErkJggg==', + 'G' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGRFI1vWIAAAAB3RJTUUH0wUOEC8QY8y3GwAAAAlwSFlzAAALEgAACxIB0t1+/AAAASZJREFUeNpj/M9AHGAiUt0IVciCwvt7ZM+FOy8+MDBwSEho2AQII8v9R4A/U2RQtHEUfEBIIim8YYBhn8oNLAqP8GBxmcwbDIU3sKljYIhAV/jHgAE7uICmcAJMQqDmwp//D2YowPgxqAr/wPyr8QAi8EEHwleIQFW4BxYicG+eEHEomHECET5QhRVQhQn/cQFoFJ6AKgwgFNcPoFwdnAoZIXmGERahKDwkIdqlR1j4PiRW4RVCCmExvQenQrSYEXiDiAoUBfC4loAK23yBSnzArhCRehRmAJPFnRUxHDgU/lDA7zZECj/Cgl2dAkaeWYNVZcoHDIX/94hgKLM4gS27/v9QIICizGMDkiQjSon7c8eBCw+e/GFgkZEwsHCRRpZiHE5FMwCa2YE+WcAOUwAAAABJRU5ErkJggg==', + 'H' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGRw2Z4k1AAAAB3RJTUUH0wUOEC8agxleBQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAD1JREFUeNpj/M9AHGAiUt2oQvyABUozQml4+KMLDAXPDAWFLGh8RlwKh4JnaB88GOlxELhxVCFewDgEynAAN2sFVHAvevkAAAAASUVORK5CYII=', + 'I' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGSlg1E0WAAAAB3RJTUUH0wUOEC86uHd+zQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAD5JREFUeNpj/M9AHGAiUt1AKmRBMBkxJJE9OhQ8Q32FjGhxDQsjjCQwFDwzqnCwKkRKZqO5EBMwDqcSl2iFAMMeB0s/kLo2AAAAAElFTkSuQmCC', + 'J' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGywiiNsbAAAAB3RJTUUH0wUOEDAFw0tdbgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKdJREFUeNpj/M9AHGAiUh3xClmwijJCaSR3Ud/qUYWjCklTyIHEhifctw8ePHgCxO+B7L9QMQlsChW+QOiX4gwMd6BiItisVoHSB6AYWQwM/kNBBszkC/9PwKyc8B8B4Ar3YPHMHWwK/xtgqAv4j1XhEfScK/EEu8L/a1BVStz4j0Ph/yPItoe8QFH3nxGlkNq75cKDB0DDVBwitNEcwjhwpdmoQrwAAN6ioiFapgUdAAAAAElFTkSuQmCC', + 'K' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHAEoFhGpAAAAB3RJTUUH0wUOEDANzZDVXAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAPZJREFUeNpj/M9AHGAiUt2owgFSyAgFMOGDrDARxkKo0H8wYEDh/b/AAzepACqEVeEdCQx1WBW+0ICry/mPR+EXE7i6kD94FP5xwaYOi8IIrOowFRbA1Xkgq8NQ2ANXZ/PlPx6FS3CpQ1fIAmOIoKn7jxbXf2CMNxvQIxvVRAQQ+YDXaiSQQqxChiOEFGoIQGidP/gVStxogLI68CqUuPH/BzSVcTzAoxCo7v//ObBIxK0QrO7/H1iCXIFT4QkIFxbaMh9wKYQJO0D5OYQUnoDF/QkCCuHJ1+APAYV3YOloAgGF8JTO84SAwjfQiGQIgPAZqV4rAACnKSarzdlc4gAAAABJRU5ErkJggg==', + 'L' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHA64qQw4AAAAB3RJTUUH0wUOEDAXMPIsJgAAAAlwSFlzAAALEgAACxIB0t1+/AAAADlJREFUeNpj/M9AHGAiUt2QUMiCYDJCaezhMBQ8M6pwVCEdFLJgCjEisRH5Zyh4hvoKGUdkQUq0QgARaARRV9jUFQAAAABJRU5ErkJggg==', + 'M' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHBhMfblpAAAAB3RJTUUH0wUOEDAqaJpgNwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAPNJREFUeNrdlK0OgzAUhS8bCQYxMYmcmEAgEAgejQfZQyG2pAIxOYlATkAu691o2tvSYia2iv7lyzn3NG0jhG1tt5H7Aggom7ZuaKPhBFqKV+pFWDGjjcxStEAYXuvBkrKtoVX+gdRiK9i6sxjgeVGUMJzWwZLACaZOTqoAOAronmrlBuvPkQsIgHn8BqnE2AMmhaaYJ57jqTRFMwsDyW249XaJLhAujizm7UFM5XCUXTqiTvBLQYWRc7H3WWt+3NmlyGbOGh9q/45mjQxUb+CA6A2jSqu5MweX0ooQWLJxLYx6fz0GwmBOsww5GP3At/dX4Ayb7qpFI9y5ygAAAABJRU5ErkJggg==', + 'N' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHC6DxyzwAAAAB3RJTUUH0wUOEDAye/b4YQAAAAlwSFlzAAALEgAACxIB0t1+/AAAALRJREFUeNpj/M9AHGAiUt0IV8gIARsRMlAROP8/BEB5Ii/+/0cVgXNRhRk8iFXIMIFYhRxXiFTIYPCDSIUMBcQqZNhDrEKZN0QqZAggViHDHIIKRSAUzx1CCrdAaZM/BBT+z4Eyaggp/KEDYbAcIaDw/wUWCEuBkML/PagBgFvhfxdiFT4RIVLh/zXEKvyfQqzCLypEKvx/hoVIhf9biFX4x4ZIhf8fCBCp8P8KNBHG4VQ0AwDEOyeZhO5p1AAAAABJRU5ErkJggg==', + 'O' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHQExDSDoAAAAB3RJTUUH0wUOEDA4myMRfwAAAAlwSFlzAAALEgAACxIB0t1+/AAAATtJREFUeNpj/M9AHGAiUt3wUsiCyv265ciZJ08YGGRkDGwCuFGk/iOBDwU8SDIcGS+Q5JAV7hBBs45nAVaFC1gwXTYBi8IdWNQxMCzAUPhBBJs6Bp4n6AoLYFI6az78f7NEB8ZNQFP4QwAqEfADwg+A+f0NqsI1UHGBDzCnSKC6EhYzB6B0Cj+UwZ+CKgNTeAZKu8C94QGlL6DGjAyU+wAeXC+gIiIQLiM0KzDC9CFCBlWICsnsL3aFMDc+hcs8QZWBKYSF2g24whvYFZpA6T1whUegNCwyoYGxAmYyLGZ+wOxYghqFX2BpO+APmP8nBspHj2uk1LPizf8PGyxgXPTUQ3x6JDqF//8/AYs6bHkGmCYF0O3FnguBCSaFA0kZS8IDJDlG1IIUVFK8eABMWzI6DgHCyDKMI7LEBQCD5YgI9wbKGgAAAABJRU5ErkJggg==', + 'P' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHQvR2Mn2AAAAB3RJTUUH0wUOEDEDMzPJGgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKVJREFUeNpj/M9AHGAiUh05ChlRAKdu4k5Ulf9hANMQiwf/EQCfQgaJB0QqZHAhViHDEbg0AV8vwRM8QN0v5vBAOSfw+BrMWQDl8MClGeEKGGEKQcRXHmQemTGD1RMy+N14o4MDyvGAS7NgGMaIzPHAYyIy4HhBZMy0EBmFIX+IUsjRgqQOi2fAgEVBwyVGGEUEQw2O3EbLzDWSFDIOhtJsVCEWAAC/Yt2X+2PYcgAAAABJRU5ErkJggg==', + 'Q' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHRxSC0wxAAAAB3RJTUUH0wUOEDEKSu9xvgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAW1JREFUeNpj/M9AHGAiUt2QUMiCzPm65cCZF08YGGRkDBx8uNFU/oeDDwU8SOIcBS/+IwOEwh0iaEYIrMCqcA4LprsmYFG4A4s6BoYFGAo/iGBTx8DzAl1hAUxKZ8WH/29W6MC4KWgKfwhAJXx+gPl/QmB+/4KqcANUXOQDVPiLBFRkCUwhJGb2wGzihzK4U6CMA6hReAbKc4F7wwFKX0CNGRkoB+HJJ1ARGZgAIziFM8J0IUIGXYjMZPaXkEJYYDyBiz+EuRFVoQKUdwWIz6qWvmRguAMVkUBVaIIUalPu9GgshIefAWrwrIHp//L/DQc4KjFiBi2uQ/7832KB5AX0uP5fAZOx2PDhfwNCIXrq+f9BhgEb4HmCkcL3YE3hSHkBnmfWYFMpsoaYXAgGDgcwFKLlaxYOCG2DqRCYrldkmIACUMIgZsaTI5Cg3IBNISp4AoovlT+EFf7/kYPkb3wK//8/YAGPGcYhUIYDAHBC9Yak1w7iAAAAAElFTkSuQmCC', + 'R' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHSkEuIgSAAAAB3RJTUUH0wUOEDEUsOBM3QAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOZJREFUeNpj/M9AHGAiUh0NFLJAaUY0YRkJHYcQdmSh/xCAzRCZHf8RAJ9CBpYNRCpkEHgBV4jfMx+mEOVGIDDAaTWY82aPBZTLgV8hUCkaH6cbP8B8gxHgyODjgwstMDfiVIgWQyFE+lrhB3EBznOFuJgxuUFMXPPEbPmDpA53FH55osKMIoAe4F826MDMvPMfj9WgWFGBBeIf/Ar/H4FxJhBQ+B8WzCIfCCi8A4uvBgIK/2fA/POCgMIXHFBuDqH02ABLM3cIKPwgAuVHEFD4fwJM4AIBhT9goe4AFWAcAsXesFIIAEvJyZHTCSiTAAAAAElFTkSuQmCC', + 'S' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHTRnvuTLAAAAB3RJTUUH0wUOEDEbIF9RTAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAVZJREFUeNpj/M9AHGAiUt2oQvyABYX398CWK3de/GBgkVEw8HFgRpH7jwSWqCDLyCxAlkNS+CcG3boY7AozMB3Wgk3hGSw+4HgBl0b4egIWhT9mYPGMBFQg4MH/D2tgvrKASzPC0yMjlP7CDSTOmrDIMDDwiHBsxzSRBypw5j9WgFDoAPNAxIQjX/ApXIDsC4OCLV9wKfzjwIACOEIO4IiZFxbooePzAqvC/z9qONBUStzAqvD//zc9BqgqNX5gVwgETxbkmCClvSk4FYLdsCMCptAGI2YSGV78+PLmz5MX4mDu1ByIMM9n9JiBxe4caGChy8MZMMsUIEFyAMoVwVC4BGaEwpI3/9/MEYGlJQyFPwQYsIE1mL7GlnCR0iNSXLtgqpO4gy1mvtigq1NAxCBKgP9pEUFWxlOCnNIYUYrmn3v23Ljx5gsw88sYOPhwI0sxDoEyHAABtSc836a1EQAAAABJRU5ErkJggg==', + 'T' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHgUdTbcyAAAAB3RJTUUH0wUOEDEgkVS4aAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADdJREFUeNpj/M9AHGAiUt0IVcgCpRlxyMODeSh4hmiFjGipB+Z7jEQ1FDwzqnBU4WBSyDicimYAb/AFTaJpyH8AAAAASUVORK5CYII=', + 'U' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHhEHl2NPAAAAB3RJTUUH0wUOEDEon48wWgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKlJREFUeNpj/M9AHGAiUh3xClmgNCOUhrsEXYD6Vo8qHFVIuUIVKP0USr+E0jLoCjWg9A4ovQVNHJjUIaADZsILMPeFApRfA5X/D1N4AaZRYc6b/2+WwNQxXEBX+N8Bqxcc/mMoPMGCRR3LBUyF/2dgUTjjPxaF/6egm8ky5T9Whf9P2KCoMziBJPefEaWQurjnzIMXL34wsMhoWHiYo2hjHLjSbFQhXgAAKzejCLAOcVMAAAAASUVORK5CYII=', + 'V' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHh/gL05IAAAAB3RJTUUH0wUOEDEuduyVbwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAVNJREFUeNpj/M9AHGAiUt2owoFRaMgIAYlIMqlQMUMo/z8ITIByRP78hwMRqNgECBei8AULVPQIXN0RqAjLGwgfYrW4B1R4DdzmLVDaQxjZ6v8roDwVuIkqMK3/ka3+/0MAKn4FKn4D5uof/5GtZmCPgEpsQHNDBDsDitVwt5tA+RZQ/pn/qFYj3PQEzHsC5WnA3QyPmQQU3+5AE0VYDTfDBcxzgQbik/8YVv93gMp9AbK/cEAD8T+m1TBb/oD8veEHhs0IE2GmxADZMRAmz4//WKxGkv3DA2Gm/MeqcA/Ujj1w1hHsCv/LQKQz/megRzyawgqIvAxMRwsuhbCEAEvGT3AphEUwNCU5IEv9R8lcUH9/wAxE5HAEgjccSBI8X3CbKOyBxAnhxm3i/w1IEgdQZFA98/+PCFydDKo6VKsZmGPQ0wgOq/+fgYvfQTORkeq1AgCIAvD7+THsDgAAAABJRU5ErkJggg==', + 'W' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QFhZRKnzkAAAAB3RJTUUH0wUOEDIR66frkQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAXNJREFUeNrtlK1ywkAUhZdMZsJMKyIqKhAIBAKBiEBEVCDyCJV9iIo+Do9QGRERgUBEVCAqKhAIREVERURnTvfn3t27xSA6g+kOQ/ZkP/aec5NlBHXZSC7k/sE/AhUwoVkDPQ58/2RUQ2IC6B1XpN7MV8tg62/pUdjSDO7OwR2J0pbekpqZYlMG50bNSGwBDQ4pyV5YtCZ7mqZf1mO2IN2Jynba0XRx49pThjQCbEKWFfVRpIlBzlK4PuLdpxEWlTr4LHvYMEDOaTYS3HCW3DAJt8mmaSXYchZbOfEzkyYGZRbrEbX8qe7GMpLqFeyxV9F4fon1pwcxjxbqJpJTBPBJLoyHYSz1I3xq78aOMssepHZZHFjKhbX9/AZd6e9bsdABeyHTQXiE2PLO6PugCwiP/r1QVLYSlpXwKE1Wno7b7jY+hoWj0aegPyA9+jPrzgqwZJ0j8hhMVtElmDoD19FFPAvamc+sOXBm+KdYEzC63p/9D7Tr72kj/8qjAAAAAElFTkSuQmCC', + 'X' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHi/G9n7kAAAAB3RJTUUH0wUOEDIXAsROpAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAT9JREFUeNpj/M9AHGAiUt3IVhjKCAFr4RJroSKBMIH/YPBEAMITeQLh//8gAxHggQlAFf6fAdXnA+WnQPkT/qMp/O8AlVkA5h2A8kz+YCi8wQGREngA5PxQgXBYzvzHUPi/A2qIA5BdAmUX/Mei8I8BVHbK/wssEJbMB2wK/5+ASvPcgGlZ8x+rQriFAmghgKHwiwJKXPA8wKXw/x4UhT3/cSr8n4CkzuAPHoVvRODqWE6gyPxHTT1ffiAUCjCgAhRtDkgSFnisnoJixAScCh/wEBk8DmiucsChcA5MQQSMMQWrQlgiZ0iAByey5QiFPlBZnS//v+hgxjZc4QKYKVeAnCswby3AUAi3eAGKNoEn6Ap94A5EjXUfNIUrEA6EALgzl6AohCUGsAMhAOZMkTfICkMw3I5wZgiEyzicimYAFRFkVwgDfJ0AAAAASUVORK5CYII=', + 'Y' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHjkyIsu1AAAAB3RJTUUH0wUOEDIkvRQvsgAAAAlwSFlzAAALEgAACxIB0t1+/AAAANJJREFUeNrt1L0NgzAQBWAcUVB6AAZgBAoKhmAICoZgCAoKxmAECkbwABSUlBRILwF8duwYhFJEihJ37+6T5T9g8K6N20X3FdDDNjKKOeTIqZLtWcKBU73bCx1lPhgQNTWieY1zRLmGCZFQp1xTSSmBDUUgW754BF+GQLxAPUkMxMb0FlzUsqpKLXhxQPRqo+oIerggCvuMC7jhFJounA4gWhO2OIL6Jp/uzglHrh0fTyAaDRucQaTkUpxDQVBYDWZ/hYze6bsv/A8/DNlP/kgvwzuer4kCMGPZDgAAAABJRU5ErkJggg==', + 'Z' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHwfqWOdfAAAAB3RJTUUH0wUOEDIrLasyIwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAL5JREFUeNrl1C0OwkAQBWCWQIJEVPQIFT0GAlHBMRBIBKIHqahAIDlERY9R0UOs3ORh5qVLunmp5GfUZvczbzKzDqtltV7ofgtueHCp16h33xBGwn0KYqoTO/J868Csaj418e0cPujOkLDfmTsECcfcXOGhoC/NZQMUDBUDd5DwxiAtJGzprpCw48xVQcIhM1d6KOgLc/kIBcORgXtIeGGQOyRs6Oq0g7P92YbkRE7bRZhcwhh+6nLF5f7yx30B8Z7FgxzMWtEAAAAASUVORK5CYII=', + ); + + return $_png; +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_email.php b/phpBB2/includes/usercp_email.php new file mode 100644 index 0000000..a21e14c --- /dev/null +++ b/phpBB2/includes/usercp_email.php @@ -0,0 +1,216 @@ +sql_query($sql) ) +{ + if ( $row = $db->sql_fetchrow($result) ) + { + + $username = $row['username']; + $user_email = $row['user_email']; + $user_lang = $row['user_lang']; + + if ( $row['user_viewemail'] || $userdata['user_level'] == ADMIN ) + { + if ( time() - $userdata['user_emailtime'] < $board_config['flood_interval'] ) + { + message_die(GENERAL_MESSAGE, $lang['Flood_email_limit']); + } + + if ( isset($HTTP_POST_VARS['submit']) ) + { + $error = FALSE; + + if ( !empty($HTTP_POST_VARS['subject']) ) + { + $subject = trim(stripslashes($HTTP_POST_VARS['subject'])); + } + else + { + $error = TRUE; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['Empty_subject_email'] : $lang['Empty_subject_email']; + } + + if ( !empty($HTTP_POST_VARS['message']) ) + { + $message = trim(stripslashes($HTTP_POST_VARS['message'])); + } + else + { + $error = TRUE; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
' . $lang['Empty_message_email'] : $lang['Empty_message_email']; + } + + if ( !$error ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_emailtime = " . time() . " + WHERE user_id = " . $userdata['user_id']; + if ( $result = $db->sql_query($sql) ) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($userdata['user_email']); + $emailer->replyto($userdata['user_email']); + + $email_headers = 'X-AntiAbuse: Board servername - ' . $server_name . "\n"; + $email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n"; + $email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n"; + $email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n"; + + $emailer->use_template('profile_send_email', $user_lang); + $emailer->email_address($user_email); + $emailer->set_subject($subject); + $emailer->extra_headers($email_headers); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'BOARD_EMAIL' => $board_config['board_email'], + 'FROM_USERNAME' => $userdata['username'], + 'TO_USERNAME' => $username, + 'MESSAGE' => $message) + ); + $emailer->send(); + $emailer->reset(); + + if ( !empty($HTTP_POST_VARS['cc_email']) ) + { + $emailer->from($userdata['user_email']); + $emailer->replyto($userdata['user_email']); + $emailer->use_template('profile_send_email'); + $emailer->email_address($userdata['user_email']); + $emailer->set_subject($subject); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'BOARD_EMAIL' => $board_config['board_email'], + 'FROM_USERNAME' => $userdata['username'], + 'TO_USERNAME' => $username, + 'MESSAGE' => $message) + ); + $emailer->send(); + $emailer->reset(); + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Email_sent'] . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + message_die(GENERAL_ERROR, 'Could not update last email time', '', __LINE__, __FILE__, $sql); + } + } + } + + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'profile_send_email.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + if ( $error ) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } + + $template->assign_vars(array( + 'USERNAME' => $username, + + 'S_HIDDEN_FIELDS' => '', + 'S_POST_ACTION' => append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL . "=$user_id"), + + 'L_SEND_EMAIL_MSG' => $lang['Send_email_msg'], + 'L_RECIPIENT' => $lang['Recipient'], + 'L_SUBJECT' => $lang['Subject'], + 'L_MESSAGE_BODY' => $lang['Message_body'], + 'L_MESSAGE_BODY_DESC' => $lang['Email_message_desc'], + 'L_EMPTY_SUBJECT_EMAIL' => $lang['Empty_subject_email'], + 'L_EMPTY_MESSAGE_EMAIL' => $lang['Empty_message_email'], + 'L_OPTIONS' => $lang['Options'], + 'L_CC_EMAIL' => $lang['CC_email'], + 'L_SPELLCHECK' => $lang['Spellcheck'], + 'L_SEND_EMAIL' => $lang['Send_email']) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + message_die(GENERAL_MESSAGE, $lang['User_prevent_email']); + } + } + else + { + message_die(GENERAL_MESSAGE, $lang['User_not_exist']); + } +} +else +{ + message_die(GENERAL_ERROR, 'Could not select user data', '', __LINE__, __FILE__, $sql); +} + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_register.php b/phpBB2/includes/usercp_register.php new file mode 100644 index 0000000..8804723 --- /dev/null +++ b/phpBB2/includes/usercp_register.php @@ -0,0 +1,1180 @@ +', '<', '"', '&'); + +// --------------------------------------- +// Load agreement template since user has not yet +// agreed to registration conditions/coppa +// +function show_coppa() +{ + global $userdata, $template, $lang, $phpbb_root_path, $phpEx; + + $template->set_filenames(array( + 'body' => 'agreement.tpl') + ); + + $template->assign_vars(array( + 'REGISTRATION' => $lang['Registration'], + 'AGREEMENT' => $lang['Reg_agreement'], + "AGREE_OVER_13" => $lang['Agree_over_13'], + "AGREE_UNDER_13" => $lang['Agree_under_13'], + 'DO_NOT_AGREE' => $lang['Agree_not'], + + "U_AGREE_OVER13" => append_sid("profile.$phpEx?mode=register&agreed=true"), + "U_AGREE_UNDER13" => append_sid("profile.$phpEx?mode=register&agreed=true&coppa=true")) + ); + + $template->pparse('body'); + +} +// +// --------------------------------------- + +$error = FALSE; +$error_msg = ''; +$page_title = ( $mode == 'editprofile' ) ? $lang['Edit_profile'] : $lang['Register']; + +if ( $mode == 'register' && !isset($HTTP_POST_VARS['agreed']) && !isset($HTTP_GET_VARS['agreed']) ) +{ + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + show_coppa(); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); +} + +$coppa = ( empty($HTTP_POST_VARS['coppa']) && empty($HTTP_GET_VARS['coppa']) ) ? 0 : TRUE; + +// +// Check and initialize some variables if needed +// +if ( + isset($HTTP_POST_VARS['submit']) || + isset($HTTP_POST_VARS['avatargallery']) || + isset($HTTP_POST_VARS['submitavatar']) || + isset($HTTP_POST_VARS['cancelavatar']) || + $mode == 'register' ) +{ + include($phpbb_root_path . 'includes/functions_validate.'.$phpEx); + include($phpbb_root_path . 'includes/bbcode.'.$phpEx); + include($phpbb_root_path . 'includes/functions_post.'.$phpEx); + + if ( $mode == 'editprofile' ) + { + $user_id = intval($HTTP_POST_VARS['user_id']); + $current_email = trim(htmlspecialchars($HTTP_POST_VARS['current_email'])); + } + + $strip_var_list = array('email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests', 'confirm_code' => 'confirm_code'); + + // Strip all tags from data ... may p**s some people off, bah, strip_tags is + // doing the job but can still break HTML output ... have no choice, have + // to use htmlspecialchars ... be prepared to be moaned at. + while( list($var, $param) = @each($strip_var_list) ) + { + if ( !empty($HTTP_POST_VARS[$param]) ) + { + $$var = trim(htmlspecialchars($HTTP_POST_VARS[$param])); + } + } + + $username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : ''; + + $trim_var_list = array('cur_password' => 'cur_password', 'new_password' => 'new_password', 'password_confirm' => 'password_confirm', 'signature' => 'signature'); + + while( list($var, $param) = @each($trim_var_list) ) + { + if ( !empty($HTTP_POST_VARS[$param]) ) + { + $$var = trim($HTTP_POST_VARS[$param]); + } + } + + $signature = (isset($signature)) ? str_replace('
', "\n", $signature) : ''; + $signature_bbcode_uid = ''; + + // Run some validation on the optional fields. These are pass-by-ref, so they'll be changed to + // empty strings if they fail. + validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature); + + $viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : 0; + $allowviewonline = ( isset($HTTP_POST_VARS['hideonline']) ) ? ( ($HTTP_POST_VARS['hideonline']) ? 0 : TRUE ) : TRUE; + $notifyreply = ( isset($HTTP_POST_VARS['notifyreply']) ) ? ( ($HTTP_POST_VARS['notifyreply']) ? TRUE : 0 ) : 0; + $notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE : 0 ) : TRUE; + $popup_pm = ( isset($HTTP_POST_VARS['popup_pm']) ) ? ( ($HTTP_POST_VARS['popup_pm']) ? TRUE : 0 ) : TRUE; + $sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0; + + if ( $mode == 'register' ) + { + $attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( ($HTTP_POST_VARS['attachsig']) ? TRUE : 0 ) : $board_config['allow_sig']; + + $allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $board_config['allow_html']; + $allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $board_config['allow_bbcode']; + $allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $board_config['allow_smilies']; + } + else + { + $attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( ($HTTP_POST_VARS['attachsig']) ? TRUE : 0 ) : $userdata['user_attachsig']; + + $allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $userdata['user_allowhtml']; + $allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $userdata['user_allowbbcode']; + $allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $userdata['user_allowsmile']; + } + + $user_style = ( isset($HTTP_POST_VARS['style']) ) ? intval($HTTP_POST_VARS['style']) : $board_config['default_style']; + + if ( !empty($HTTP_POST_VARS['language']) ) + { + if ( preg_match('/^[a-z_]+$/i', $HTTP_POST_VARS['language']) ) + { + $user_lang = htmlspecialchars($HTTP_POST_VARS['language']); + } + else + { + $error = true; + $error_msg = $lang['Fields_empty']; + } + } + else + { + $user_lang = $board_config['default_lang']; + } + + $user_timezone = ( isset($HTTP_POST_VARS['timezone']) ) ? doubleval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone']; + + $sql = "SELECT config_value + FROM " . CONFIG_TABLE . " + WHERE config_name = 'default_dateformat'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select default dateformat', '', __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + $board_config['default_dateformat'] = $row['config_value']; + $user_dateformat = ( !empty($HTTP_POST_VARS['dateformat']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['dateformat'])) : $board_config['default_dateformat']; + + $user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarselect']) : ( ( isset($HTTP_POST_VARS['avatarlocal']) ) ? htmlspecialchars($HTTP_POST_VARS['avatarlocal']) : '' ); + $user_avatar_category = ( isset($HTTP_POST_VARS['avatarcatname']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarcatname']) : '' ; + + $user_avatar_remoteurl = ( !empty($HTTP_POST_VARS['avatarremoteurl']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['avatarremoteurl'])) : ''; + $user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' ); + $user_avatar_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : ''; + $user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0; + $user_avatar_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : ''; + + $user_avatar = ( empty($user_avatar_local) && $mode == 'editprofile' ) ? $userdata['user_avatar'] : ''; + $user_avatar_type = ( empty($user_avatar_local) && $mode == 'editprofile' ) ? $userdata['user_avatar_type'] : ''; + + if ( (isset($HTTP_POST_VARS['avatargallery']) || isset($HTTP_POST_VARS['submitavatar']) || isset($HTTP_POST_VARS['cancelavatar'])) && (!isset($HTTP_POST_VARS['submit'])) ) + { + $username = stripslashes($username); + $email = stripslashes($email); + $cur_password = htmlspecialchars(stripslashes($cur_password)); + $new_password = htmlspecialchars(stripslashes($new_password)); + $password_confirm = htmlspecialchars(stripslashes($password_confirm)); + + $icq = stripslashes($icq); + $aim = stripslashes($aim); + $msn = stripslashes($msn); + $yim = stripslashes($yim); + + $website = stripslashes($website); + $location = stripslashes($location); + $occupation = stripslashes($occupation); + $interests = stripslashes($interests); + $signature = htmlspecialchars(stripslashes($signature)); + + $user_lang = stripslashes($user_lang); + $user_dateformat = stripslashes($user_dateformat); + + if ( !isset($HTTP_POST_VARS['cancelavatar'])) + { + $user_avatar = $user_avatar_category . '/' . $user_avatar_local; + $user_avatar_type = USER_AVATAR_GALLERY; + } + } +} + +// +// Let's make sure the user isn't logged in while registering, +// and ensure that they were trying to register a second time +// (Prevents double registrations) +// +if ($mode == 'register' && ($userdata['session_logged_in'] || $username == $userdata['username'])) +{ + message_die(GENERAL_MESSAGE, $lang['Username_taken'], '', __LINE__, __FILE__); +} + +// +// Did the user submit? In this case build a query to update the users profile in the DB +// +if ( isset($HTTP_POST_VARS['submit']) ) +{ + include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx); + + // session id check + if ($sid == '' || $sid != $userdata['session_id']) + { + $error = true; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Session_invalid']; + } + + $passwd_sql = ''; + if ( $mode == 'editprofile' ) + { + if ( $user_id != $userdata['user_id'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Wrong_Profile']; + } + } + else if ( $mode == 'register' ) + { + if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Fields_empty']; + } + } + + if ($board_config['enable_confirm'] && $mode == 'register') + { + if (empty($HTTP_POST_VARS['confirm_id'])) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Confirm_code_wrong']; + } + else + { + $confirm_id = htmlspecialchars($HTTP_POST_VARS['confirm_id']); + if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id)) + { + $confirm_id = ''; + } + + $sql = 'SELECT code + FROM ' . CONFIRM_TABLE . " + WHERE confirm_id = '$confirm_id' + AND session_id = '" . $userdata['session_id'] . "'"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain confirmation code', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + if ($row['code'] != $confirm_code) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Confirm_code_wrong']; + } + else + { + $sql = 'DELETE FROM ' . CONFIRM_TABLE . " + WHERE confirm_id = '$confirm_id' + AND session_id = '" . $userdata['session_id'] . "'"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not delete confirmation code', '', __LINE__, __FILE__, $sql); + } + } + } + else + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Confirm_code_wrong']; + } + $db->sql_freeresult($result); + } + } + + $passwd_sql = ''; + if ( !empty($new_password) && !empty($password_confirm) ) + { + if ( $new_password != $password_confirm ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Password_mismatch']; + } + else if ( strlen($new_password) > 32 ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Password_long']; + } + else + { + if ( $mode == 'editprofile' ) + { + $sql = "SELECT user_password + FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['user_password'] != md5($cur_password) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Current_password_mismatch']; + } + } + + if ( !$error ) + { + $new_password = md5($new_password); + $passwd_sql = "user_password = '$new_password', "; + } + } + } + else if ( ( empty($new_password) && !empty($password_confirm) ) || ( !empty($new_password) && empty($password_confirm) ) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Password_mismatch']; + } + + // + // Do a ban check on this email address + // + if ( $email != $userdata['user_email'] || $mode == 'register' ) + { + $result = validate_email($email); + if ( $result['error'] ) + { + $email = $userdata['user_email']; + + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $result['error_msg']; + } + + if ( $mode == 'editprofile' ) + { + $sql = "SELECT user_password + FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['user_password'] != md5($cur_password) ) + { + $email = $userdata['user_email']; + + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Current_password_mismatch']; + } + } + } + + $username_sql = ''; + if ( $board_config['allow_namechange'] || $mode == 'register' ) + { + if ( empty($username) ) + { + // Error is already triggered, since one field is empty. + $error = TRUE; + } + else if ( $username != $userdata['username'] || $mode == 'register') + { + if (strtolower($username) != strtolower($userdata['username']) || $mode == 'register') + { + $result = validate_username($username); + if ( $result['error'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $result['error_msg']; + } + } + + if (!$error) + { + $username_sql = "username = '" . str_replace("\'", "''", $username) . "', "; + } + } + } + + if ( $signature != '' ) + { + if ( strlen($signature) > $board_config['max_sig_chars'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
' : '' ) . $lang['Signature_too_long']; + } + + if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' ) + { + $signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : ''; + } + $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid); + } + + if ( $website != '' ) + { + rawurlencode($website); + } + + $avatar_sql = ''; + + if ( isset($HTTP_POST_VARS['avatardel']) && $mode == 'editprofile' ) + { + $avatar_sql = user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']); + } + else + if ( ( !empty($user_avatar_upload) || !empty($user_avatar_name) ) && $board_config['allow_avatar_upload'] ) + { + if ( !empty($user_avatar_upload) ) + { + $avatar_mode = (empty($user_avatar_name)) ? 'remote' : 'local'; + $avatar_sql = user_avatar_upload($mode, $avatar_mode, $userdata['user_avatar'], $userdata['user_avatar_type'], $error, $error_msg, $user_avatar_upload, $user_avatar_name, $user_avatar_size, $user_avatar_filetype); + } + else if ( !empty($user_avatar_name) ) + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg .= ( ( !empty($error_msg) ) ? '
' : '' ) . $l_avatar_size; + } + } + else if ( $user_avatar_remoteurl != '' && $board_config['allow_avatar_remote'] ) + { + user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']); + $avatar_sql = user_avatar_url($mode, $error, $error_msg, $user_avatar_remoteurl); + } + else if ( $user_avatar_local != '' && $board_config['allow_avatar_local'] ) + { + user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']); + $avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local, $user_avatar_category); + } + + if ( !$error ) + { + if ( $avatar_sql == '' ) + { + $avatar_sql = ( $mode == 'editprofile' ) ? '' : "'', " . USER_AVATAR_NONE; + } + + if ( $mode == 'editprofile' ) + { + if ( $email != $userdata['user_email'] && $board_config['require_activation'] != USER_ACTIVATION_NONE && $userdata['user_level'] != ADMIN ) + { + $user_active = 0; + + $user_actkey = gen_rand_string(true); + $key_len = 54 - ( strlen($server_url) ); + $key_len = ( $key_len > 6 ) ? $key_len : 6; + $user_actkey = substr($user_actkey, 0, $key_len); + + if ( $userdata['session_logged_in'] ) + { + session_end($userdata['session_id'], $userdata['user_id']); + } + } + else + { + $user_active = 1; + $user_actkey = ''; + } + + $sql = "UPDATE " . USERS_TABLE . " + SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql); + } + + // We remove all stored login keys since the password has been updated + // and change the current one (if applicable) + if ( !empty($passwd_sql) ) + { + session_reset_keys($user_id, $user_ip); + } + + if ( !$user_active ) + { + // + // The users account has been deactivated, send them an email with a new activation key + // + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + if ( $board_config['require_activation'] != USER_ACTIVATION_ADMIN ) + { + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('user_activate', stripslashes($user_lang)); + $emailer->email_address($email); + $emailer->set_subject($lang['Reactivate']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + } + else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) + { + $sql = 'SELECT user_email, user_lang + FROM ' . USERS_TABLE . ' + WHERE user_level = ' . ADMIN; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->email_address(trim($row['user_email'])); + $emailer->use_template("admin_activate", $row['user_lang']); + $emailer->set_subject($lang['Reactivate']); + + $emailer->assign_vars(array( + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + } + $db->sql_freeresult($result); + } + + $message = $lang['Profile_updated_inactive'] . '

' . sprintf($lang['Click_return_index'], '', ''); + } + else + { + $message = $lang['Profile_updated'] . '

' . sprintf($lang['Click_return_index'], '', ''); + } + + $template->assign_vars(array( + "META" => '') + ); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $sql = "SELECT MAX(user_id) AS total + FROM " . USERS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain next user_id information', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain next user_id information', '', __LINE__, __FILE__, $sql); + } + $user_id = $row['total'] + 1; + + // + // Get current date + // + $sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey) + VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popup_pm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, 0, 1, "; + if ( $board_config['require_activation'] == USER_ACTIVATION_SELF || $board_config['require_activation'] == USER_ACTIVATION_ADMIN || $coppa ) + { + $user_actkey = gen_rand_string(true); + $key_len = 54 - (strlen($server_url)); + $key_len = ( $key_len > 6 ) ? $key_len : 6; + $user_actkey = substr($user_actkey, 0, $key_len); + $sql .= "0, '" . str_replace("\'", "''", $user_actkey) . "')"; + } + else + { + $sql .= "1, '')"; + } + + if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, 'Could not insert data into users table', '', __LINE__, __FILE__, $sql); + } + + $sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user, group_moderator) + VALUES ('', 'Personal User', 1, 0)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql); + } + + $group_id = $db->sql_nextid(); + + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) + VALUES ($user_id, $group_id, 0)"; + if( !($result = $db->sql_query($sql, END_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql); + } + + if ( $coppa ) + { + $message = $lang['COPPA']; + $email_template = 'coppa_welcome_inactive'; + } + else if ( $board_config['require_activation'] == USER_ACTIVATION_SELF ) + { + $message = $lang['Account_inactive']; + $email_template = 'user_welcome_inactive'; + } + else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) + { + $message = $lang['Account_inactive_admin']; + $email_template = 'admin_welcome_inactive'; + } + else + { + $message = $lang['Account_added']; + $email_template = 'user_welcome'; + } + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template($email_template, stripslashes($user_lang)); + $emailer->email_address($email); + $emailer->set_subject(sprintf($lang['Welcome_subject'], $board_config['sitename'])); + + if( $coppa ) + { + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']), + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'PASSWORD' => $password_confirm, + 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + + 'FAX_INFO' => $board_config['coppa_fax'], + 'MAIL_INFO' => $board_config['coppa_mail'], + 'EMAIL_ADDRESS' => $email, + 'ICQ' => $icq, + 'AIM' => $aim, + 'YIM' => $yim, + 'MSN' => $msn, + 'WEB_SITE' => $website, + 'FROM' => $location, + 'OCC' => $occupation, + 'INTERESTS' => $interests, + 'SITENAME' => $board_config['sitename'])); + } + else + { + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']), + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'PASSWORD' => $password_confirm, + 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + } + + $emailer->send(); + $emailer->reset(); + + if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) + { + $sql = "SELECT user_email, user_lang + FROM " . USERS_TABLE . " + WHERE user_level = " . ADMIN; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->email_address(trim($row['user_email'])); + $emailer->use_template("admin_activate", $row['user_lang']); + $emailer->set_subject($lang['New_account_subject']); + + $emailer->assign_vars(array( + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + } + $db->sql_freeresult($result); + } + + $message = $message . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } // if mode == register + } +} // End of submit + + +if ( $error ) +{ + // + // If an error occured we need to stripslashes on returned data + // + $username = stripslashes($username); + $email = stripslashes($email); + $cur_password = ''; + $new_password = ''; + $password_confirm = ''; + + $icq = stripslashes($icq); + $aim = str_replace('+', ' ', stripslashes($aim)); + $msn = stripslashes($msn); + $yim = stripslashes($yim); + + $website = stripslashes($website); + $location = stripslashes($location); + $occupation = stripslashes($occupation); + $interests = stripslashes($interests); + $signature = stripslashes($signature); + $signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $signature) : $signature; + + $user_lang = stripslashes($user_lang); + $user_dateformat = stripslashes($user_dateformat); + +} +else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) ) +{ + $user_id = $userdata['user_id']; + $username = $userdata['username']; + $email = $userdata['user_email']; + $cur_password = ''; + $new_password = ''; + $password_confirm = ''; + + $icq = $userdata['user_icq']; + $aim = str_replace('+', ' ', $userdata['user_aim']); + $msn = $userdata['user_msnm']; + $yim = $userdata['user_yim']; + + $website = $userdata['user_website']; + $location = $userdata['user_from']; + $occupation = $userdata['user_occ']; + $interests = $userdata['user_interests']; + $signature_bbcode_uid = $userdata['user_sig_bbcode_uid']; + $signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $userdata['user_sig']) : $userdata['user_sig']; + + $viewemail = $userdata['user_viewemail']; + $notifypm = $userdata['user_notify_pm']; + $popup_pm = $userdata['user_popup_pm']; + $notifyreply = $userdata['user_notify']; + $attachsig = $userdata['user_attachsig']; + $allowhtml = $userdata['user_allowhtml']; + $allowbbcode = $userdata['user_allowbbcode']; + $allowsmilies = $userdata['user_allowsmile']; + $allowviewonline = $userdata['user_allow_viewonline']; + + $user_avatar = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar'] : ''; + $user_avatar_type = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar_type'] : USER_AVATAR_NONE; + + $user_style = $userdata['user_style']; + $user_lang = $userdata['user_lang']; + $user_timezone = $userdata['user_timezone']; + $user_dateformat = $userdata['user_dateformat']; +} + +// +// Default pages +// +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +make_jumpbox('viewforum.'.$phpEx); + +if ( $mode == 'editprofile' ) +{ + if ( $user_id != $userdata['user_id'] ) + { + $error = TRUE; + $error_msg = $lang['Wrong_Profile']; + } +} + +if( isset($HTTP_POST_VARS['avatargallery']) && !$error ) +{ + include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx); + + $avatar_category = ( !empty($HTTP_POST_VARS['avatarcategory']) ) ? htmlspecialchars($HTTP_POST_VARS['avatarcategory']) : ''; + + $template->set_filenames(array( + 'body' => 'profile_avatar_gallery.tpl') + ); + + $allowviewonline = !$allowviewonline; + + display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, $new_password, $cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popup_pm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']); +} +else +{ + include($phpbb_root_path . 'includes/functions_selects.'.$phpEx); + + if ( !isset($coppa) ) + { + $coppa = FALSE; + } + + if ( !isset($user_style) ) + { + $user_style = $board_config['default_style']; + } + + $avatar_img = ''; + if ( $user_avatar_type ) + { + switch( $user_avatar_type ) + { + case USER_AVATAR_UPLOAD: + $avatar_img = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $avatar_img = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $avatar_img = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + if( $mode == 'editprofile' ) + { + $s_hidden_fields .= ''; + // + // Send the users current email address. If they change it, and account activation is turned on + // the user account will be disabled and the user will have to reactivate their account. + // + $s_hidden_fields .= ''; + } + + if ( !empty($user_avatar_local) ) + { + $s_hidden_fields .= ''; + } + + $html_status = ( $userdata['user_allowhtml'] && $board_config['allow_html'] ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; + $bbcode_status = ( $userdata['user_allowbbcode'] && $board_config['allow_bbcode'] ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; + $smilies_status = ( $userdata['user_allowsmile'] && $board_config['allow_smilies'] ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; + + if ( $error ) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } + + $template->set_filenames(array( + 'body' => 'profile_add_body.tpl') + ); + + if ( $mode == 'editprofile' ) + { + $template->assign_block_vars('switch_edit_profile', array()); + } + + if ( ($mode == 'register') || ($board_config['allow_namechange']) ) + { + $template->assign_block_vars('switch_namechange_allowed', array()); + } + else + { + $template->assign_block_vars('switch_namechange_disallowed', array()); + } + + + // Visual Confirmation + $confirm_image = ''; + if (!empty($board_config['enable_confirm']) && $mode == 'register') + { + $sql = 'SELECT session_id + FROM ' . SESSIONS_TABLE; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $confirm_sql = ''; + do + { + $confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'"; + } + while ($row = $db->sql_fetchrow($result)); + + $sql = 'DELETE FROM ' . CONFIRM_TABLE . " + WHERE session_id NOT IN ($confirm_sql)"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql); + } + } + $db->sql_freeresult($result); + + $sql = 'SELECT COUNT(session_id) AS attempts + FROM ' . CONFIRM_TABLE . " + WHERE session_id = '" . $userdata['session_id'] . "'"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain confirm code count', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + if ($row['attempts'] > 3) + { + message_die(GENERAL_MESSAGE, $lang['Too_many_registers']); + } + } + $db->sql_freeresult($result); + + // Generate the required confirmation code + // NB 0 (zero) could get confused with O (the letter) so we make change it + $code = dss_rand(); + $code = substr(str_replace('0', 'Z', strtoupper(base_convert($code, 16, 35))), 2, 6); + + $confirm_id = md5(uniqid($user_ip)); + + $sql = 'INSERT INTO ' . CONFIRM_TABLE . " (confirm_id, session_id, code) + VALUES ('$confirm_id', '". $userdata['session_id'] . "', '$code')"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not insert new confirm code information', '', __LINE__, __FILE__, $sql); + } + + unset($code); + + $confirm_image = ''; + $s_hidden_fields .= ''; + + $template->assign_block_vars('switch_confirm', array()); + } + + + // + // Let's do an overall check for settings/versions which would prevent + // us from doing file uploads.... + // + $ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + $form_enctype = ( @$ini_val('file_uploads') == '0' || strtolower(@$ini_val('file_uploads') == 'off') || phpversion() == '4.0.4pl1' || !$board_config['allow_avatar_upload'] || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"'; + + $template->assign_vars(array( + 'USERNAME' => isset($username) ? $username : '', + 'CUR_PASSWORD' => isset($cur_password) ? $cur_password : '', + 'NEW_PASSWORD' => isset($new_password) ? $new_password : '', + 'PASSWORD_CONFIRM' => isset($password_confirm) ? $password_confirm : '', + 'EMAIL' => isset($email) ? $email : '', + 'CONFIRM_IMG' => $confirm_image, + 'YIM' => $yim, + 'ICQ' => $icq, + 'MSN' => $msn, + 'AIM' => $aim, + 'OCCUPATION' => $occupation, + 'INTERESTS' => $interests, + 'LOCATION' => $location, + 'WEBSITE' => $website, + 'SIGNATURE' => str_replace('
', "\n", $signature), + 'VIEW_EMAIL_YES' => ( $viewemail ) ? 'checked="checked"' : '', + 'VIEW_EMAIL_NO' => ( !$viewemail ) ? 'checked="checked"' : '', + 'HIDE_USER_YES' => ( !$allowviewonline ) ? 'checked="checked"' : '', + 'HIDE_USER_NO' => ( $allowviewonline ) ? 'checked="checked"' : '', + 'NOTIFY_PM_YES' => ( $notifypm ) ? 'checked="checked"' : '', + 'NOTIFY_PM_NO' => ( !$notifypm ) ? 'checked="checked"' : '', + 'POPUP_PM_YES' => ( $popup_pm ) ? 'checked="checked"' : '', + 'POPUP_PM_NO' => ( !$popup_pm ) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_YES' => ( $attachsig ) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_NO' => ( !$attachsig ) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_YES' => ( $notifyreply ) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_YES' => ( $allowbbcode ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_NO' => ( !$allowbbcode ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_YES' => ( $allowhtml ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_NO' => ( !$allowhtml ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_YES' => ( $allowsmilies ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_NO' => ( !$allowsmilies ) ? 'checked="checked"' : '', + 'ALLOW_AVATAR' => $board_config['allow_avatar_upload'], + 'AVATAR' => $avatar_img, + 'AVATAR_SIZE' => $board_config['avatar_filesize'], + 'LANGUAGE_SELECT' => language_select($user_lang, 'language'), + 'STYLE_SELECT' => style_select($user_style, 'style'), + 'TIMEZONE_SELECT' => tz_select($user_timezone, 'timezone'), + 'DATE_FORMAT' => $user_dateformat, + 'HTML_STATUS' => $html_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'SMILIES_STATUS' => $smilies_status, + + 'L_CURRENT_PASSWORD' => $lang['Current_password'], + 'L_NEW_PASSWORD' => ( $mode == 'register' ) ? $lang['Password'] : $lang['New_password'], + 'L_CONFIRM_PASSWORD' => $lang['Confirm_password'], + 'L_CONFIRM_PASSWORD_EXPLAIN' => ( $mode == 'editprofile' ) ? $lang['Confirm_password_explain'] : '', + 'L_PASSWORD_IF_CHANGED' => ( $mode == 'editprofile' ) ? $lang['password_if_changed'] : '', + 'L_PASSWORD_CONFIRM_IF_CHANGED' => ( $mode == 'editprofile' ) ? $lang['password_confirm_if_changed'] : '', + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_ICQ_NUMBER' => $lang['ICQ'], + 'L_MESSENGER' => $lang['MSNM'], + 'L_YAHOO' => $lang['YIM'], + 'L_WEBSITE' => $lang['Website'], + 'L_AIM' => $lang['AIM'], + 'L_LOCATION' => $lang['Location'], + 'L_OCCUPATION' => $lang['Occupation'], + 'L_BOARD_LANGUAGE' => $lang['Board_lang'], + 'L_BOARD_STYLE' => $lang['Board_style'], + 'L_TIMEZONE' => $lang['Timezone'], + 'L_DATE_FORMAT' => $lang['Date_format'], + 'L_DATE_FORMAT_EXPLAIN' => $lang['Date_format_explain'], + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + 'L_INTERESTS' => $lang['Interests'], + 'L_ALWAYS_ALLOW_SMILIES' => $lang['Always_smile'], + 'L_ALWAYS_ALLOW_BBCODE' => $lang['Always_bbcode'], + 'L_ALWAYS_ALLOW_HTML' => $lang['Always_html'], + 'L_HIDE_USER' => $lang['Hide_user'], + 'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'], + + 'L_AVATAR_PANEL' => $lang['Avatar_panel'], + 'L_AVATAR_EXPLAIN' => sprintf($lang['Avatar_explain'], $board_config['avatar_max_width'], $board_config['avatar_max_height'], (round($board_config['avatar_filesize'] / 1024))), + 'L_UPLOAD_AVATAR_FILE' => $lang['Upload_Avatar_file'], + 'L_UPLOAD_AVATAR_URL' => $lang['Upload_Avatar_URL'], + 'L_UPLOAD_AVATAR_URL_EXPLAIN' => $lang['Upload_Avatar_URL_explain'], + 'L_AVATAR_GALLERY' => $lang['Select_from_gallery'], + 'L_SHOW_GALLERY' => $lang['View_avatar_gallery'], + 'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'], + 'L_LINK_REMOTE_AVATAR_EXPLAIN' => $lang['Link_remote_Avatar_explain'], + 'L_DELETE_AVATAR' => $lang['Delete_Image'], + 'L_CURRENT_IMAGE' => $lang['Current_Image'], + + 'L_SIGNATURE' => $lang['Signature'], + 'L_SIGNATURE_EXPLAIN' => sprintf($lang['Signature_explain'], $board_config['max_sig_chars']), + 'L_NOTIFY_ON_REPLY' => $lang['Always_notify'], + 'L_NOTIFY_ON_REPLY_EXPLAIN' => $lang['Always_notify_explain'], + 'L_NOTIFY_ON_PRIVMSG' => $lang['Notify_on_privmsg'], + 'L_POPUP_ON_PRIVMSG' => $lang['Popup_on_privmsg'], + 'L_POPUP_ON_PRIVMSG_EXPLAIN' => $lang['Popup_on_privmsg_explain'], + 'L_PREFERENCES' => $lang['Preferences'], + 'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'], + 'L_ITEMS_REQUIRED' => $lang['Items_required'], + 'L_REGISTRATION_INFO' => $lang['Registration_info'], + 'L_PROFILE_INFO' => $lang['Profile_info'], + 'L_PROFILE_INFO_NOTICE' => $lang['Profile_info_warn'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + + 'L_CONFIRM_CODE_IMPAIRED' => sprintf($lang['Confirm_code_impaired'], '', ''), + 'L_CONFIRM_CODE' => $lang['Confirm_code'], + 'L_CONFIRM_CODE_EXPLAIN' => $lang['Confirm_code_explain'], + + 'S_ALLOW_AVATAR_UPLOAD' => $board_config['allow_avatar_upload'], + 'S_ALLOW_AVATAR_LOCAL' => $board_config['allow_avatar_local'], + 'S_ALLOW_AVATAR_REMOTE' => $board_config['allow_avatar_remote'], + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_FORM_ENCTYPE' => $form_enctype, + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx")) + ); + + // + // This is another cheat using the block_var capability + // of the templates to 'fake' an IF...ELSE...ENDIF solution + // it works well :) + // + if ( $mode != 'register' ) + { + if ( $userdata['user_allowavatar'] && ( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] ) ) + { + $template->assign_block_vars('switch_avatar_block', array() ); + + if ( $board_config['allow_avatar_upload'] && file_exists(@phpbb_realpath('./' . $board_config['avatar_path'])) ) + { + if ( $form_enctype != '' ) + { + $template->assign_block_vars('switch_avatar_block.switch_avatar_local_upload', array() ); + } + $template->assign_block_vars('switch_avatar_block.switch_avatar_remote_upload', array() ); + } + + if ( $board_config['allow_avatar_remote'] ) + { + $template->assign_block_vars('switch_avatar_block.switch_avatar_remote_link', array() ); + } + + if ( $board_config['allow_avatar_local'] && file_exists(@phpbb_realpath('./' . $board_config['avatar_gallery_path'])) ) + { + $template->assign_block_vars('switch_avatar_block.switch_avatar_local_gallery', array() ); + } + } + } +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_sendpasswd.php b/phpBB2/includes/usercp_sendpasswd.php new file mode 100644 index 0000000..b048ad5 --- /dev/null +++ b/phpBB2/includes/usercp_sendpasswd.php @@ -0,0 +1,138 @@ +sql_query($sql) ) + { + if ( $row = $db->sql_fetchrow($result) ) + { + if ( !$row['user_active'] ) + { + message_die(GENERAL_MESSAGE, $lang['No_send_account_inactive']); + } + + $username = $row['username']; + $user_id = $row['user_id']; + + $user_actkey = gen_rand_string(true); + $key_len = 54 - strlen($server_url); + $key_len = ($key_len > 6) ? $key_len : 6; + $user_actkey = substr($user_actkey, 0, $key_len); + $user_password = gen_rand_string(false); + + $sql = "UPDATE " . USERS_TABLE . " + SET user_newpasswd = '" . md5($user_password) . "', user_actkey = '$user_actkey' + WHERE user_id = " . $row['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update new password information', '', __LINE__, __FILE__, $sql); + } + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('user_activate_passwd', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['New_password_activation']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => $username, + 'PASSWORD' => $user_password, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Password_updated'] . '

' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_email_match']); + } + } + else + { + message_die(GENERAL_ERROR, 'Could not obtain user information for sendpassword', '', __LINE__, __FILE__, $sql); + } +} +else +{ + $username = ''; + $email = ''; +} + +// +// Output basic page +// +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'profile_send_pass.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'USERNAME' => $username, + 'EMAIL' => $email, + + 'L_SEND_PASSWORD' => $lang['Send_password'], + 'L_ITEMS_REQUIRED' => $lang['Items_required'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + + 'S_HIDDEN_FIELDS' => '', + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx?mode=sendpassword")) +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/includes/usercp_viewprofile.php b/phpBB2/includes/usercp_viewprofile.php new file mode 100644 index 0000000..14a5a2f --- /dev/null +++ b/phpBB2/includes/usercp_viewprofile.php @@ -0,0 +1,249 @@ +sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain ranks information', '', __LINE__, __FILE__, $sql); +} + +$ranksrow = array(); +while ( $row = $db->sql_fetchrow($result) ) +{ + $ranksrow[] = $row; +} +$db->sql_freeresult($result); + +// +// Output page header and profile_view template +// +$template->set_filenames(array( + 'body' => 'profile_view_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +// +// Calculate the number of days this user has been a member ($memberdays) +// Then calculate their posts per day +// +$regdate = $profiledata['user_regdate']; +$memberdays = max(1, round( ( time() - $regdate ) / 86400 )); +$posts_per_day = $profiledata['user_posts'] / $memberdays; + +// Get the users percentage of total posts +if ( $profiledata['user_posts'] != 0 ) +{ + $total_posts = get_db_stat('postcount'); + $percentage = ( $total_posts ) ? min(100, ($profiledata['user_posts'] / $total_posts) * 100) : 0; +} +else +{ + $percentage = 0; +} + +$avatar_img = ''; +if ( $profiledata['user_avatar_type'] && $profiledata['user_allowavatar'] ) +{ + switch( $profiledata['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $avatar_img = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $avatar_img = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $avatar_img = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } +} + +$poster_rank = ''; +$rank_image = ''; +if ( $profiledata['user_rank'] ) +{ + for($i = 0; $i < count($ranksrow); $i++) + { + if ( $profiledata['user_rank'] == $ranksrow[$i]['rank_id'] && $ranksrow[$i]['rank_special'] ) + { + $poster_rank = $ranksrow[$i]['rank_title']; + $rank_image = ( $ranksrow[$i]['rank_image'] ) ? '' . $poster_rank . '
' : ''; + } + } +} +else +{ + for($i = 0; $i < count($ranksrow); $i++) + { + if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] ) + { + $poster_rank = $ranksrow[$i]['rank_title']; + $rank_image = ( $ranksrow[$i]['rank_image'] ) ? '' . $poster_rank . '
' : ''; + } + } +} + +$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $profiledata['user_id']); +$pm_img = '' . $lang['Send_private_message'] . ''; +$pm = '' . $lang['Send_private_message'] . ''; + +if ( !empty($profiledata['user_viewemail']) || $userdata['user_level'] == ADMIN ) +{ + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $profiledata['user_id']) : 'mailto:' . $profiledata['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; +} +else +{ + $email_img = ' '; + $email = ' '; +} + +$www_img = ( $profiledata['user_website'] ) ? '' . $lang['Visit_website'] . '' : ' '; +$www = ( $profiledata['user_website'] ) ? '' . $profiledata['user_website'] . '' : ' '; + +if ( !empty($profiledata['user_icq']) ) +{ + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; +} +else +{ + $icq_status_img = ' '; + $icq_img = ' '; + $icq = ' '; +} + +$aim_img = ( $profiledata['user_aim'] ) ? '' . $lang['AIM'] . '' : ' '; +$aim = ( $profiledata['user_aim'] ) ? '' . $lang['AIM'] . '' : ' '; + +$msn_img = ( $profiledata['user_msnm'] ) ? $profiledata['user_msnm'] : ' '; +$msn = $msn_img; + +$yim_img = ( $profiledata['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; +$yim = ( $profiledata['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + +$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($profiledata['username']) . "&showresults=posts"); +$search_img = '' . sprintf($lang['Search_user_posts'], $profiledata['username']) . ''; +$search = '' . sprintf($lang['Search_user_posts'], $profiledata['username']) . ''; + +// +// Generate page +// +$page_title = $lang['Viewing_profile']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +if (function_exists('get_html_translation_table')) +{ + $u_search_author = urlencode(strtr($profiledata['username'], array_flip(get_html_translation_table(HTML_ENTITIES)))); +} +else +{ + $u_search_author = urlencode(str_replace(array('&', ''', '"', '<', '>'), array('&', "'", '"', '<', '>'), $profiledata['username'])); +} + +$template->assign_vars(array( + 'USERNAME' => $profiledata['username'], + 'JOINED' => create_date($lang['DATE_FORMAT'], $profiledata['user_regdate'], $board_config['board_timezone']), + 'POSTER_RANK' => $poster_rank, + 'RANK_IMAGE' => $rank_image, + 'POSTS_PER_DAY' => $posts_per_day, + 'POSTS' => $profiledata['user_posts'], + 'PERCENTAGE' => $percentage . '%', + 'POST_DAY_STATS' => sprintf($lang['User_post_day_stats'], $posts_per_day), + 'POST_PERCENT_STATS' => sprintf($lang['User_post_pct_stats'], $percentage), + + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'LOCATION' => ( $profiledata['user_from'] ) ? $profiledata['user_from'] : ' ', + 'OCCUPATION' => ( $profiledata['user_occ'] ) ? $profiledata['user_occ'] : ' ', + 'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ', + 'AVATAR_IMG' => $avatar_img, + + 'L_VIEWING_PROFILE' => sprintf($lang['Viewing_user_profile'], $profiledata['username']), + 'L_ABOUT_USER' => sprintf($lang['About_user'], $profiledata['username']), + 'L_AVATAR' => $lang['Avatar'], + 'L_POSTER_RANK' => $lang['Poster_rank'], + 'L_JOINED' => $lang['Joined'], + 'L_TOTAL_POSTS' => $lang['Total_posts'], + 'L_SEARCH_USER_POSTS' => sprintf($lang['Search_user_posts'], $profiledata['username']), + 'L_CONTACT' => $lang['Contact'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'L_EMAIL' => $lang['Email'], + 'L_PM' => $lang['Private_Message'], + 'L_ICQ_NUMBER' => $lang['ICQ'], + 'L_YAHOO' => $lang['YIM'], + 'L_AIM' => $lang['AIM'], + 'L_MESSENGER' => $lang['MSNM'], + 'L_WEBSITE' => $lang['Website'], + 'L_LOCATION' => $lang['Location'], + 'L_OCCUPATION' => $lang['Occupation'], + 'L_INTERESTS' => $lang['Interests'], + + 'U_SEARCH_USER' => append_sid("search.$phpEx?search_author=" . $u_search_author), + + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx")) +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/index.php b/phpBB2/index.php new file mode 100644 index 0000000..a7bcaeb --- /dev/null +++ b/phpBB2/index.php @@ -0,0 +1,470 @@ +assign_vars(array( + "META" => '') + ); + + $message = $lang['Forums_marked_read'] . '

' . sprintf($lang['Click_return_index'], '', ' '); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End handle marking posts +// + +$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_t"]) : array(); +$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_f"]) : array(); + +// +// If you don't use these stats on your index you may want to consider +// removing them +// +$total_posts = get_db_stat('postcount'); +$total_users = get_db_stat('usercount'); +$newest_userdata = get_db_stat('newestuser'); +$newest_user = $newest_userdata['username']; +$newest_uid = $newest_userdata['user_id']; + +if( $total_posts == 0 ) +{ + $l_total_post_s = $lang['Posted_articles_zero_total']; +} +else if( $total_posts == 1 ) +{ + $l_total_post_s = $lang['Posted_article_total']; +} +else +{ + $l_total_post_s = $lang['Posted_articles_total']; +} + +if( $total_users == 0 ) +{ + $l_total_user_s = $lang['Registered_users_zero_total']; +} +else if( $total_users == 1 ) +{ + $l_total_user_s = $lang['Registered_user_total']; +} +else +{ + $l_total_user_s = $lang['Registered_users_total']; +} + + +// +// Start page proper +// +$sql = "SELECT c.cat_id, c.cat_title, c.cat_order + FROM " . CATEGORIES_TABLE . " c + ORDER BY c.cat_order"; +if( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql); +} + +$category_rows = array(); +while ($row = $db->sql_fetchrow($result)) +{ + $category_rows[] = $row; +} +$db->sql_freeresult($result); + +if( ( $total_categories = count($category_rows) ) ) +{ + // + // Define appropriate SQL + // + switch(SQL_LAYER) + { + case 'postgresql': + $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id + FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u + WHERE p.post_id = f.forum_last_post_id + AND u.user_id = p.poster_id + UNION ( + SELECT f.*, NULL, NULL, NULL, NULL + FROM " . FORUMS_TABLE . " f + WHERE NOT EXISTS ( + SELECT p.post_time + FROM " . POSTS_TABLE . " p + WHERE p.post_id = f.forum_last_post_id + ) + ) + ORDER BY cat_id, forum_order"; + break; + + case 'oracle': + $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id + FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u + WHERE p.post_id = f.forum_last_post_id(+) + AND u.user_id = p.poster_id(+) + ORDER BY f.cat_id, f.forum_order"; + break; + + default: + $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id + FROM (( " . FORUMS_TABLE . " f + LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id ) + LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) + ORDER BY f.cat_id, f.forum_order"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql); + } + + $forum_data = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_data[] = $row; + } + $db->sql_freeresult($result); + + if ( !($total_forums = count($forum_data)) ) + { + message_die(GENERAL_MESSAGE, $lang['No_forums']); + } + + // + // Obtain a list of topic ids which contain + // posts made since user last visited + // + if ($userdata['session_logged_in']) + { + // 60 days limit + if ($userdata['user_lastvisit'] < (time() - 5184000)) + { + $userdata['user_lastvisit'] = time() - 5184000; + } + + $sql = "SELECT t.forum_id, t.topic_id, p.post_time + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE p.post_id = t.topic_last_post_id + AND p.post_time > " . $userdata['user_lastvisit'] . " + AND t.topic_moved_id = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql); + } + + $new_topic_data = array(); + while( $topic_data = $db->sql_fetchrow($result) ) + { + $new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time']; + } + $db->sql_freeresult($result); + } + + // + // Obtain list of moderators of each forum + // First users, then groups ... broken into two queries + // + $sql = "SELECT aa.forum_id, u.user_id, u.username + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u + WHERE aa.auth_mod = " . TRUE . " + AND g.group_single_user = 1 + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + AND u.user_id = ug.user_id + GROUP BY u.user_id, u.username, aa.forum_id + ORDER BY aa.forum_id, u.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); + } + + $forum_moderators = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_moderators[$row['forum_id']][] = '' . $row['username'] . ''; + } + $db->sql_freeresult($result); + + $sql = "SELECT aa.forum_id, g.group_id, g.group_name + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE aa.auth_mod = " . TRUE . " + AND g.group_single_user = 0 + AND g.group_type <> " . GROUP_HIDDEN . " + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + GROUP BY g.group_id, g.group_name, aa.forum_id + ORDER BY aa.forum_id, g.group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + $forum_moderators[$row['forum_id']][] = '' . $row['group_name'] . ''; + } + $db->sql_freeresult($result); + + // + // Find which forums are visible for this user + // + $is_auth_ary = array(); + $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data); + + // + // Start output of page + // + define('SHOW_ONLINE', true); + $page_title = $lang['Index']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'index_body.tpl') + ); + + $template->assign_vars(array( + 'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts), + 'TOTAL_USERS' => sprintf($l_total_user_s, $total_users), + 'NEWEST_USER' => sprintf($lang['Newest_user'], '', $newest_user, ''), + + 'FORUM_IMG' => $images['forum'], + 'FORUM_NEW_IMG' => $images['forum_new'], + 'FORUM_LOCKED_IMG' => $images['forum_locked'], + + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_VIEWS' => $lang['Views'], + 'L_POSTS' => $lang['Posts'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_NO_NEW_POSTS' => $lang['No_new_posts'], + 'L_NEW_POSTS' => $lang['New_posts'], + 'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], + 'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], + 'L_ONLINE_EXPLAIN' => $lang['Online_explain'], + + 'L_MODERATOR' => $lang['Moderators'], + 'L_FORUM_LOCKED' => $lang['Forum_is_locked'], + 'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'], + + 'U_MARK_READ' => append_sid("index.$phpEx?mark=forums")) + ); + + // + // Let's decide which categories we should display + // + $display_categories = array(); + + for ($i = 0; $i < $total_forums; $i++ ) + { + if ($is_auth_ary[$forum_data[$i]['forum_id']]['auth_view']) + { + $display_categories[$forum_data[$i]['cat_id']] = true; + } + } + + // + // Okay, let's build the index + // + for($i = 0; $i < $total_categories; $i++) + { + $cat_id = $category_rows[$i]['cat_id']; + + // + // Yes, we should, so first dump out the category + // title, then, if appropriate the forum list + // + if (isset($display_categories[$cat_id]) && $display_categories[$cat_id]) + { + $template->assign_block_vars('catrow', array( + 'CAT_ID' => $cat_id, + 'CAT_DESC' => $category_rows[$i]['cat_title'], + 'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id")) + ); + + if ( $viewcat == $cat_id || $viewcat == -1 ) + { + for($j = 0; $j < $total_forums; $j++) + { + if ( $forum_data[$j]['cat_id'] == $cat_id ) + { + $forum_id = $forum_data[$j]['forum_id']; + + if ( $is_auth_ary[$forum_id]['auth_view'] ) + { + if ( $forum_data[$j]['forum_status'] == FORUM_LOCKED ) + { + $folder_image = $images['forum_locked']; + $folder_alt = $lang['Forum_locked']; + } + else + { + $unread_topics = false; + if ( $userdata['session_logged_in'] ) + { + if ( !empty($new_topic_data[$forum_id]) ) + { + $forum_last_post_time = 0; + + while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$forum_id]) ) + { + if ( empty($tracking_topics[$check_topic_id]) ) + { + $unread_topics = true; + $forum_last_post_time = max($check_post_time, $forum_last_post_time); + + } + else + { + if ( $tracking_topics[$check_topic_id] < $check_post_time ) + { + $unread_topics = true; + $forum_last_post_time = max($check_post_time, $forum_last_post_time); + } + } + } + + if ( !empty($tracking_forums[$forum_id]) ) + { + if ( $tracking_forums[$forum_id] > $forum_last_post_time ) + { + $unread_topics = false; + } + } + + if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $forum_last_post_time ) + { + $unread_topics = false; + } + } + + } + } + + $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum']; + $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts']; + } + + $posts = $forum_data[$j]['forum_posts']; + $topics = $forum_data[$j]['forum_topics']; + + if ( $forum_data[$j]['forum_last_post_id'] ) + { + $last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']); + + $last_post = $last_post_time . '
'; + + $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '' . $forum_data[$j]['username'] . ' '; + + $last_post .= '' . $lang['View_latest_post'] . ''; + } + else + { + $last_post = $lang['No_Posts']; + } + + if ( count($forum_moderators[$forum_id]) > 0 ) + { + $l_moderators = ( count($forum_moderators[$forum_id]) == 1 ) ? $lang['Moderator'] : $lang['Moderators']; + $moderator_list = implode(', ', $forum_moderators[$forum_id]); + } + else + { + $l_moderators = ' '; + $moderator_list = ' '; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('catrow.forumrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_FOLDER_IMG' => $folder_image, + 'FORUM_NAME' => $forum_data[$j]['forum_name'], + 'FORUM_DESC' => $forum_data[$j]['forum_desc'], + 'POSTS' => $forum_data[$j]['forum_posts'], + 'TOPICS' => $forum_data[$j]['forum_topics'], + 'LAST_POST' => $last_post, + 'MODERATORS' => $moderator_list, + + 'L_MODERATOR' => $l_moderators, + 'L_FORUM_FOLDER_ALT' => $folder_alt, + + 'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id")) + ); + } + } + } + } + } + } // for ... categories + +}// if ... total_categories +else +{ + message_die(GENERAL_MESSAGE, $lang['No_forums']); +} + +// +// Generate the page +// +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/install.txt b/phpBB2/install.txt new file mode 100644 index 0000000..ad5ba08 --- /dev/null +++ b/phpBB2/install.txt @@ -0,0 +1,244 @@ +################################################################# +## MOD Title: eXtreme Styles mod 2 +## MOD Author: CyberAlien (CyberAlien) http://www.phpbbstyles.com +## MOD Description: +## This mod is heavily optimized version of phpBB templates system +## and has some additional features. It compiles and executes +## files much faster, has cache system that speeds up templates +## many times, allowes to use php in templates and few other new +## features to style designers. Also it has huge control panel +## that replaces phpBB styles management with more efficient +## easy to use functions. It also allowes to quickly import/export +## styles using .style format. +## MOD Version: 2.2.1 +## +## Installation Level: Easy +## Installation Time: 1-2 Minutes +## Files To Edit (0): +## Included Files (64): admin/admin_xs.php, +## admin/xs_cache.php +## admin/xs_chmod.php +## admin/xs_clone.php +## admin/xs_config.php +## admin/xs_download.php +## admin/xs_edit.php +## admin/xs_edit_data.php +## admin/xs_export.php +## admin/xs_export_data.php +## admin/xs_frame_top.php +## admin/xs_frameset.php +## admin/xs_import.php +## admin/xs_include.php +## admin/xs_include_import.php +## admin/xs_include_import2.php +## admin/xs_index.php +## admin/xs_install.php +## admin/xs_style_config.php +## admin/xs_styles.php +## admin/xs_uninstall.php +## admin/xs_update.php +## admin/xs_main.cfg +## language/lang_english/lang_xs.php +## xs_mod/formIE.css +## xs_mod/images/button.gif +## xs_mod/images/cellpic1.gif +## xs_mod/images/cellpic2.jpg +## xs_mod/images/cellpic3.gif +## xs_mod/images/cellpic4.gif +## xs_mod/images/dot.gif +## xs_mod/images/spacer.gif +## xs_mod/images/top_bg.gif +## xs_mod/images/top_bg2.gif +## xs_mod/images/top_logo.jpg +## xs_mod/style.css +## xs_mod/tpl/cache.tpl +## xs_mod/tpl/clone.tpl +## xs_mod/tpl/clone2.tpl +## xs_mod/tpl/config.tpl +## xs_mod/tpl/downloads.tpl +## xs_mod/tpl/edit.tpl +## xs_mod/tpl/edit_data.tpl +## xs_mod/tpl/edit_data_list.tpl +## xs_mod/tpl/edit_file.tpl +## xs_mod/tpl/export.tpl +## xs_mod/tpl/export2.tpl +## xs_mod/tpl/export_data.tpl +## xs_mod/tpl/export_data2.tpl +## xs_mod/tpl/frame_top.tpl +## xs_mod/tpl/frameset.tpl +## xs_mod/tpl/ftp.tpl +## xs_mod/tpl/import.tpl +## xs_mod/tpl/import2.tpl +## xs_mod/tpl/index.tpl +## xs_mod/tpl/install.tpl +## xs_mod/tpl/message.tpl +## xs_mod/tpl/style_config.tpl +## xs_mod/tpl/styles.tpl +## xs_mod/tpl/uninstall.tpl +## xs_mod/tpl/update.tpl +## xs_mod/tpl/update2.tpl +## xs_mod/tpl/xs_footer.tpl +## xs_mod/tpl/xs_header.tpl +## Files To Overwrite (1): includes/template.php +############################################################## +## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the +## latest version of this MOD. Downloading this MOD from other sites could cause malicious code +## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered +## in our MOD-Database, located at: http://www.phpbb.com/mods/ +############################################################## +## Author Notes: +## +## +## Important: +## +## Create directory "cache" within your phpBB2 root folder (if it isn't created +## yet) and chmod it to 777 (or change the owner to you httpd-servers owner). +## +## If you do not know how to CHMOD this article should help you: +## http://www.phpbb.com/kb/article.php?article_id=22 +## +## +## Important: +## +## When upgrading from mod version 1.19 or older version you MUST delete all +## files of old mod from directory "admin". +## +## Latest version of this mod can be found at this url: +## http://www.phpbbstyles.com +## +## Additional documentation for this mod can be found at this url: +## http://www.phpbbstyles.com/viewforum.php?f=6 +## +## +## MOD Features: +## - Fast templates compilation algorythm +## - Fast templates execution (even if not cached) +## - Cache system that doesn't use database +## - Auto-check errors in templates while compiling +## - Almost all features of this mod can be configured in acp +## - PHP code in templates. PHP code should start with +## and end with ?> or +## Short tags are not allowed. See manual for examples of code. +## - Unlimited switches in one line. +## - Include other tpl files with +## - You can configure separate .tpl files for usual template.php +## and eXtreme Styles template.php. It can be configured in xs.cfg +## (like jumpbox.tpl for usual phpbb and jumpbox_xs.tpl for xs mod +## that is included with this mod) +## - Variable {LANG} that corresponds to current language. Can be +## used to create truly multi-lingual templates (you can use this +## in urls: "images/lang_{LANG}/icon_blah.gif"). +## - Variable {PHP} that corresponds to file extension with session +## data. Can be used to avoid modding when you need to add some +## url (like "somescript.{PHP}" or "script.{PHP}test=1") +## Variable contains "?" or "&" at the end so you could easily +## add arguments to url. +## - Variable {TEMPLATE} that corresponds to current template +## directory (like "templates/subSilver/"). Can be used to avoid +## filenames case confusion and to fix phpBB path error when +## confirm_body.tpl and message_body.tpl are used in acp. +## - In admin control panel you can switch all users from one style +## to another and easily change default style. +## New Features in 2.0: +## - Faster template compilation +## - Mod has its own interface independant from current style +## - Mod completely replaces phpBB styles management +## - Cache management +## - Import/Export styles +## - Clone templates and styles +## - Better install/uninstall for styles +## - Templates editor. Can also edit text files and .htaccess +## - Tokens IF, ELSEIF, ELSE, ENDIF, DEFINE, UNDEFINE +## New Features in 2.1: +## - Built-in support for Category Hierarchy mod 2.1.x +## - Style configuration (applies only to complex configurable styles) +## New Features in 2.2: +## - Support for BEGINELSE command +## +## /*************************************************************************** +## * +## * This program is free software; you can redistribute it and/or modify +## * it under the terms of the GNU General Public License as published by +## * the Free Software Foundation; either version 2 of the License, or +## * (at your option) any later version. +## * +## ***************************************************************************/ +## +############################################################## +## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD +############################################################## + +# +#-----[ COPY ]------------------------------------------ +# + +copy root/admin/admin_xs.php to admin/admin_xs.php +copy root/admin/xs_cache.php to admin/xs_cache.php +copy root/admin/xs_chmod.php to admin/xs_chmod.php +copy root/admin/xs_clone.php to admin/xs_clone.php +copy root/admin/xs_config.php to admin/xs_config.php +copy root/admin/xs_download.php to admin/xs_download.php +copy root/admin/xs_edit.php to admin/xs_edit.php +copy root/admin/xs_edit_data.php to admin/xs_edit_data.php +copy root/admin/xs_export.php to admin/xs_export.php +copy root/admin/xs_export_data.php to admin/xs_export_data.php +copy root/admin/xs_frame_top.php to admin/xs_frame_top.php +copy root/admin/xs_frameset.php to admin/xs_frameset.php +copy root/admin/xs_import.php to admin/xs_import.php +copy root/admin/xs_include.php to admin/xs_include.php +copy root/admin/xs_include_import.php to admin/xs_include_import.php +copy root/admin/xs_include_import2.php to admin/xs_include_import2.php +copy root/admin/xs_index.php to admin/xs_index.php +copy root/admin/xs_install.php to admin/xs_install.php +copy root/admin/xs_style_config.php to admin/xs_style_config.php +copy root/admin/xs_styles.php to admin/xs_styles.php +copy root/admin/xs_uninstall.php to admin/xs_uninstall.php +copy root/admin/xs_update.php to admin/xs_update.php +copy root/admin/xs_main.cfg to admin/xs_main.cfg +copy root/includes/template.php to includes/template.php +copy root/language/lang_english/lang_xs.php to language/lang_english/lang_xs.php +copy root/xs_mod/formIE.css to xs_mod/formIE.css +copy root/xs_mod/images/button.gif to xs_mod/images/button.gif +copy root/xs_mod/images/cellpic1.gif to xs_mod/images/cellpic1.gif +copy root/xs_mod/images/cellpic2.jpg to xs_mod/images/cellpic2.jpg +copy root/xs_mod/images/cellpic3.gif to xs_mod/images/cellpic3.gif +copy root/xs_mod/images/cellpic4.gif to xs_mod/images/cellpic4.gif +copy root/xs_mod/images/dot.gif to xs_mod/images/dot.gif +copy root/xs_mod/images/spacer.gif to xs_mod/images/spacer.gif +copy root/xs_mod/images/top_bg.gif to xs_mod/images/top_bg.gif +copy root/xs_mod/images/top_bg2.gif to xs_mod/images/top_bg2.gif +copy root/xs_mod/images/top_logo.jpg to xs_mod/images/top_logo.jpg +copy root/xs_mod/style.css to xs_mod/style.css +copy root/xs_mod/tpl/cache.tpl to xs_mod/tpl/cache.tpl +copy root/xs_mod/tpl/clone.tpl to xs_mod/tpl/clone.tpl +copy root/xs_mod/tpl/clone2.tpl to xs_mod/tpl/clone2.tpl +copy root/xs_mod/tpl/config.tpl to xs_mod/tpl/config.tpl +copy root/xs_mod/tpl/downloads.tpl to xs_mod/tpl/downloads.tpl +copy root/xs_mod/tpl/edit.tpl to xs_mod/tpl/edit.tpl +copy root/xs_mod/tpl/edit_data.tpl to xs_mod/tpl/edit_data.tpl +copy root/xs_mod/tpl/edit_data_list.tpl to xs_mod/tpl/edit_data_list.tpl +copy root/xs_mod/tpl/edit_file.tpl to xs_mod/tpl/edit_file.tpl +copy root/xs_mod/tpl/export.tpl to xs_mod/tpl/export.tpl +copy root/xs_mod/tpl/export2.tpl to xs_mod/tpl/export2.tpl +copy root/xs_mod/tpl/export_data.tpl to xs_mod/tpl/export_data.tpl +copy root/xs_mod/tpl/export_data2.tpl to xs_mod/tpl/export_data2.tpl +copy root/xs_mod/tpl/frame_top.tpl to xs_mod/tpl/frame_top.tpl +copy root/xs_mod/tpl/frameset.tpl to xs_mod/tpl/frameset.tpl +copy root/xs_mod/tpl/ftp.tpl to xs_mod/tpl/ftp.tpl +copy root/xs_mod/tpl/import.tpl to xs_mod/tpl/import.tpl +copy root/xs_mod/tpl/import2.tpl to xs_mod/tpl/import2.tpl +copy root/xs_mod/tpl/index.tpl to xs_mod/tpl/index.tpl +copy root/xs_mod/tpl/install.tpl to xs_mod/tpl/install.tpl +copy root/xs_mod/tpl/message.tpl to xs_mod/tpl/message.tpl +copy root/xs_mod/tpl/style_config.tpl to xs_mod/tpl/style_config.tpl +copy root/xs_mod/tpl/styles.tpl to xs_mod/tpl/styles.tpl +copy root/xs_mod/tpl/uninstall.tpl to xs_mod/tpl/uninstall.tpl +copy root/xs_mod/tpl/update.tpl to xs_mod/tpl/update.tpl +copy root/xs_mod/tpl/update2.tpl to xs_mod/tpl/update2.tpl +copy root/xs_mod/tpl/xs_footer.tpl to xs_mod/tpl/xs_footer.tpl +copy root/xs_mod/tpl/xs_header.tpl to xs_mod/tpl/xs_header.tpl + +# +#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ +# +# EoM \ No newline at end of file diff --git a/phpBB2/language/index.htm b/phpBB2/language/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/language/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/language/lang_english/email/admin_activate.tpl b/phpBB2/language/lang_english/email/admin_activate.tpl new file mode 100644 index 0000000..ea0af53 --- /dev/null +++ b/phpBB2/language/lang_english/email/admin_activate.tpl @@ -0,0 +1,10 @@ +Subject: New user account +Charset: iso-8859-1 + +Hello, + +The account owned by "{USERNAME}" has been deactivated or newly created, you should check the details of this user (if required) and activate it using the following link: + +{U_ACTIVATE} + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/admin_send_email.tpl b/phpBB2/language/lang_english/email/admin_send_email.tpl new file mode 100644 index 0000000..234f61d --- /dev/null +++ b/phpBB2/language/lang_english/email/admin_send_email.tpl @@ -0,0 +1,12 @@ +Charset: iso-8859-1 + +The following is an email sent to you by an administrator of "{SITENAME}". If this message is spam, contains abusive or other comments you find offensive please contact the webmaster of the board at the following address: + +{BOARD_EMAIL} + +Include this full email (particularly the headers). + +Message sent to you follows: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/phpBB2/language/lang_english/email/admin_welcome_activated.tpl b/phpBB2/language/lang_english/email/admin_welcome_activated.tpl new file mode 100644 index 0000000..3b7aa48 --- /dev/null +++ b/phpBB2/language/lang_english/email/admin_welcome_activated.tpl @@ -0,0 +1,8 @@ +Subject: Account Activated +Charset: iso-8859-1 + +Hello {USERNAME}, + +Your account on "{SITENAME}" has now been activated, you may login using the username and password you received in a previous email. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/admin_welcome_inactive.tpl b/phpBB2/language/lang_english/email/admin_welcome_inactive.tpl new file mode 100644 index 0000000..905e716 --- /dev/null +++ b/phpBB2/language/lang_english/email/admin_welcome_inactive.tpl @@ -0,0 +1,19 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Your account is currently inactive, the administrator of the board will need to activate it before you can log in. You will receive another email when this has occured. + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/coppa_welcome_inactive.tpl b/phpBB2/language/lang_english/email/coppa_welcome_inactive.tpl new file mode 100644 index 0000000..5d9b250 --- /dev/null +++ b/phpBB2/language/lang_english/email/coppa_welcome_inactive.tpl @@ -0,0 +1,53 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +In compliance with the COPPA act your account is currently inactive. + +Please print this message out and have your parent or guardian sign and date it. Then fax it to: + +{FAX_INFO} + +OR mail it to: + +{MAIL_INFO} + +------------------------------ CUT HERE ------------------------------ +Permission to Participate at {SITENAME} + +Username: {USERNAME} +Password: {PASSWORD} +Email: {EMAIL_ADDRESS} + +ICQ Number: {ICQ} +AIM Address: {AIM} +MSN Messenger: {MSN} +Yahoo Messenger: {YIM} +Web Site: {WEB_SITE} +From: {FROM} +Occupation: {OCC} +Interests: {INTERESTS} + +I HAVE REVIEWED THE INFORMATION PROVIDED BY MY CHILD AND HEREBY GRANT PERMISSION TO {SITENAME} TO STORE THIS INFORMATION. +I UNDERSTAND THIS INFORMATION CAN BE CHANGED AT ANY TIME BY ENTERING A PASSWORD. +I UNDERSTAND THAT I MAY REQUEST FOR THIS INFORMATION TO BE REMOVED FROM {SITENAME} AT ANY TIME. + + +Parent or Guardian +(print your name here): _____________________ + +(sign here): __________________ + +Date: _______________ + +------------------------------ CUT HERE ------------------------------ + + +Once the administrator has received the above form via fax or regular mail your account will be activated. + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} diff --git a/phpBB2/language/lang_english/email/group_added.tpl b/phpBB2/language/lang_english/email/group_added.tpl new file mode 100644 index 0000000..5707da9 --- /dev/null +++ b/phpBB2/language/lang_english/email/group_added.tpl @@ -0,0 +1,12 @@ +Subject: You have been added to this usergroup +Charset: iso-8859-1 + +Congratulations, + +You have been added to the "{GROUP_NAME}" group on {SITENAME}. +This action was done by the group moderator or the site administrator, contact them for more information. + +You can view your groups information here: +{U_GROUPCP} + +{EMAIL_SIG} diff --git a/phpBB2/language/lang_english/email/group_approved.tpl b/phpBB2/language/lang_english/email/group_approved.tpl new file mode 100644 index 0000000..38773c5 --- /dev/null +++ b/phpBB2/language/lang_english/email/group_approved.tpl @@ -0,0 +1,11 @@ +Subject: Your request has been approved +Charset: iso-8859-1 + +Congratulations, + +Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. +Click on the following link to see your group membership. + +{U_GROUPCP} + +{EMAIL_SIG} diff --git a/phpBB2/language/lang_english/email/group_request.tpl b/phpBB2/language/lang_english/email/group_request.tpl new file mode 100644 index 0000000..4b0d129 --- /dev/null +++ b/phpBB2/language/lang_english/email/group_request.tpl @@ -0,0 +1,11 @@ +Subject: A request to join your group has been made +Charset: iso-8859-1 + +Dear {GROUP_MODERATOR}, + +A user has requested to join a group you moderate on {SITENAME}. +To approve or deny this request for group membership please visit the following link: + +{U_GROUPCP} + +{EMAIL_SIG} diff --git a/phpBB2/language/lang_english/email/index.htm b/phpBB2/language/lang_english/email/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/language/lang_english/email/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/language/lang_english/email/privmsg_notify.tpl b/phpBB2/language/lang_english/email/privmsg_notify.tpl new file mode 100644 index 0000000..2a96ee8 --- /dev/null +++ b/phpBB2/language/lang_english/email/privmsg_notify.tpl @@ -0,0 +1,12 @@ +Subject: New Private Message has arrived +Charset: iso-8859-1 + +Hello {USERNAME}, + +You have received a new private message to your account on "{SITENAME}" and you have requested that you be notified on this event. You can view your new message by clicking on the following link: + +{U_INBOX} + +Remember that you can always choose not to be notified of new messages by changing the appropriate setting in your profile. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/profile_send_email.tpl b/phpBB2/language/lang_english/email/profile_send_email.tpl new file mode 100644 index 0000000..00dcde1 --- /dev/null +++ b/phpBB2/language/lang_english/email/profile_send_email.tpl @@ -0,0 +1,14 @@ +Charset: iso-8859-1 + +Hello {TO_USERNAME}, + +The following is an email sent to you by {FROM_USERNAME} via your account on {SITENAME}. If this message is spam, contains abusive or other comments you find offensive please contact the webmaster of the board at the following address: + +{BOARD_EMAIL} + +Include this full email (particularly the headers). Please note that the reply address to this email has been set to that of {FROM_USERNAME}. + +Message sent to you follows +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/phpBB2/language/lang_english/email/topic_notify.tpl b/phpBB2/language/lang_english/email/topic_notify.tpl new file mode 100644 index 0000000..574f955 --- /dev/null +++ b/phpBB2/language/lang_english/email/topic_notify.tpl @@ -0,0 +1,14 @@ +Subject: Topic Reply Notification - {TOPIC_TITLE} +Charset: iso-8859-1 + +Hello, + +You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. This topic has received a reply since your last visit. You can use the following link to view the replies made, no more notifications will be sent until you visit the topic. + +{U_TOPIC} + +If you no longer wish to watch this topic you can either click the "Stop watching this topic link" found at the bottom of the topic above, or by clicking the following link: + +{U_STOP_WATCHING_TOPIC} + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/user_activate.tpl b/phpBB2/language/lang_english/email/user_activate.tpl new file mode 100644 index 0000000..0adeb5b --- /dev/null +++ b/phpBB2/language/lang_english/email/user_activate.tpl @@ -0,0 +1,10 @@ +Subject: Reactivate your account +Charset: iso-8859-1 + +Hello {USERNAME}, + +Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. In order to reactivate your account you must click on the link below: + +{U_ACTIVATE} + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/user_activate_passwd.tpl b/phpBB2/language/lang_english/email/user_activate_passwd.tpl new file mode 100644 index 0000000..0c2adc8 --- /dev/null +++ b/phpBB2/language/lang_english/email/user_activate_passwd.tpl @@ -0,0 +1,18 @@ +Subject: New password activation +Charset: iso-8859-1 + +Hello {USERNAME} + +You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account on {SITENAME}. If you did not request this email then please ignore it, if you keep receiving it please contact the board administrator. + +To use the new password you need to activate it. To do this click the link provided below. + +{U_ACTIVATE} + +If successful you will be able to login using the following password: + +Password: {PASSWORD} + +You can of course change this password yourself via the profile page. If you have any difficulties please contact the board administrator. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/user_welcome.tpl b/phpBB2/language/lang_english/email/user_welcome.tpl new file mode 100644 index 0000000..42dc56d --- /dev/null +++ b/phpBB2/language/lang_english/email/user_welcome.tpl @@ -0,0 +1,17 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/email/user_welcome_inactive.tpl b/phpBB2/language/lang_english/email/user_welcome_inactive.tpl new file mode 100644 index 0000000..6ece2d4 --- /dev/null +++ b/phpBB2/language/lang_english/email/user_welcome_inactive.tpl @@ -0,0 +1,21 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Your account is currently inactive. You cannot use it until you visit the following link: + +{U_ACTIVATE} + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2/language/lang_english/index.htm b/phpBB2/language/lang_english/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/language/lang_english/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/language/lang_english/lang_admin.php b/phpBB2/language/lang_english/lang_admin.php new file mode 100644 index 0000000..affe972 --- /dev/null +++ b/phpBB2/language/lang_english/lang_admin.php @@ -0,0 +1,811 @@ +Admin Index
link in the left pane. To return to the index of your board, click the phpBB logo also in the left pane. The other links on the left hand side of this screen will allow you to control every aspect of your forum experience. Each screen will have instructions on how to use the tools.'; +$lang['Main_index'] = 'Forum Index'; +$lang['Forum_stats'] = 'Forum Statistics'; +$lang['Admin_Index'] = 'Admin Index'; +$lang['Preview_forum'] = 'Preview Forum'; + +$lang['Click_return_admin_index'] = 'Click %sHere%s to return to the Admin Index'; + +$lang['Statistic'] = 'Statistic'; +$lang['Value'] = 'Value'; +$lang['Number_posts'] = 'Number of posts'; +$lang['Posts_per_day'] = 'Posts per day'; +$lang['Number_topics'] = 'Number of topics'; +$lang['Topics_per_day'] = 'Topics per day'; +$lang['Number_users'] = 'Number of users'; +$lang['Users_per_day'] = 'Users per day'; +$lang['Board_started'] = 'Board started'; +$lang['Avatar_dir_size'] = 'Avatar directory size'; +$lang['Database_size'] = 'Database size'; +$lang['Gzip_compression'] ='Gzip compression'; +$lang['Not_available'] = 'Not available'; + +$lang['ON'] = 'ON'; // This is for GZip compression +$lang['OFF'] = 'OFF'; + + +// +// DB Utils +// +$lang['Database_Utilities'] = 'Database Utilities'; + +$lang['Restore'] = 'Restore'; +$lang['Backup'] = 'Backup'; +$lang['Restore_explain'] = 'This will perform a full restore of all phpBB tables from a saved file. If your server supports it, you may upload a gzip-compressed text file and it will automatically be decompressed. WARNING: This will overwrite any existing data. The restore may take a long time to process, so please do not move from this page until it is complete.'; +$lang['Backup_explain'] = 'Here you can back up all your phpBB-related data. If you have any additional custom tables in the same database with phpBB that you would like to back up as well, please enter their names, separated by commas, in the Additional Tables textbox below. If your server supports it you may also gzip-compress the file to reduce its size before download.'; + +$lang['Backup_options'] = 'Backup options'; +$lang['Start_backup'] = 'Start Backup'; +$lang['Full_backup'] = 'Full backup'; +$lang['Structure_backup'] = 'Structure-Only backup'; +$lang['Data_backup'] = 'Data only backup'; +$lang['Additional_tables'] = 'Additional tables'; +$lang['Gzip_compress'] = 'Gzip compress file'; +$lang['Select_file'] = 'Select a file'; +$lang['Start_Restore'] = 'Start Restore'; + +$lang['Restore_success'] = 'The Database has been successfully restored.

Your board should be back to the state it was when the backup was made.'; +$lang['Backup_download'] = 'Your download will start shortly; please wait until it begins.'; +$lang['Backups_not_supported'] = 'Sorry, but database backups are not currently supported for your database system.'; + +$lang['Restore_Error_uploading'] = 'Error in uploading the backup file'; +$lang['Restore_Error_filename'] = 'Filename problem; please try an alternative file'; +$lang['Restore_Error_decompress'] = 'Cannot decompress a gzip file; please upload a plain text version'; +$lang['Restore_Error_no_file'] = 'No file was uploaded'; + + +// +// Auth pages +// +$lang['Select_a_User'] = 'Select a User'; +$lang['Select_a_Group'] = 'Select a Group'; +$lang['Select_a_Forum'] = 'Select a Forum'; +$lang['Auth_Control_User'] = 'User Permissions Control'; +$lang['Auth_Control_Group'] = 'Group Permissions Control'; +$lang['Auth_Control_Forum'] = 'Forum Permissions Control'; +$lang['Look_up_User'] = 'Look up User'; +$lang['Look_up_Group'] = 'Look up Group'; +$lang['Look_up_Forum'] = 'Look up Forum'; + +$lang['Group_auth_explain'] = 'Here you can alter the permissions and moderator status assigned to each user group. Do not forget when changing group permissions that individual user permissions may still allow the user entry to forums, etc. You will be warned if this is the case.'; +$lang['User_auth_explain'] = 'Here you can alter the permissions and moderator status assigned to each individual user. Do not forget when changing user permissions that group permissions may still allow the user entry to forums, etc. You will be warned if this is the case.'; +$lang['Forum_auth_explain'] = 'Here you can alter the authorisation levels of each forum. You will have both a simple and advanced method for doing this, where advanced offers greater control of each forum operation. Remember that changing the permission level of forums will affect which users can carry out the various operations within them.'; + +$lang['Simple_mode'] = 'Simple Mode'; +$lang['Advanced_mode'] = 'Advanced Mode'; +$lang['Moderator_status'] = 'Moderator status'; + +$lang['Allowed_Access'] = 'Allowed Access'; +$lang['Disallowed_Access'] = 'Disallowed Access'; +$lang['Is_Moderator'] = 'Is Moderator'; +$lang['Not_Moderator'] = 'Not Moderator'; + +$lang['Conflict_warning'] = 'Authorisation Conflict Warning'; +$lang['Conflict_access_userauth'] = 'This user still has access rights to this forum via group membership. You may want to alter the group permissions or remove this user the group to fully prevent them having access rights. The groups granting rights (and the forums involved) are noted below.'; +$lang['Conflict_mod_userauth'] = 'This user still has moderator rights to this forum via group membership. You may want to alter the group permissions or remove this user the group to fully prevent them having moderator rights. The groups granting rights (and the forums involved) are noted below.'; + +$lang['Conflict_access_groupauth'] = 'The following user (or users) still have access rights to this forum via their user permission settings. You may want to alter the user permissions to fully prevent them having access rights. The users granted rights (and the forums involved) are noted below.'; +$lang['Conflict_mod_groupauth'] = 'The following user (or users) still have moderator rights to this forum via their user permissions settings. You may want to alter the user permissions to fully prevent them having moderator rights. The users granted rights (and the forums involved) are noted below.'; + +$lang['Public'] = 'Public'; +$lang['Private'] = 'Private'; +$lang['Registered'] = 'Registered'; +$lang['Administrators'] = 'Administrators'; +$lang['Hidden'] = 'Hidden'; + +// These are displayed in the drop down boxes for advanced +// mode forum auth, try and keep them short! +$lang['Forum_ALL'] = 'ALL'; +$lang['Forum_REG'] = 'REG'; +$lang['Forum_PRIVATE'] = 'PRIVATE'; +$lang['Forum_MOD'] = 'MOD'; +$lang['Forum_ADMIN'] = 'ADMIN'; + +$lang['View'] = 'View'; +$lang['Read'] = 'Read'; +$lang['Post'] = 'Post'; +$lang['Reply'] = 'Reply'; +$lang['Edit'] = 'Edit'; +$lang['Delete'] = 'Delete'; +$lang['Sticky'] = 'Sticky'; +$lang['Announce'] = 'Announce'; +$lang['Vote'] = 'Vote'; +$lang['Pollcreate'] = 'Poll create'; + +$lang['Permissions'] = 'Permissions'; +$lang['Simple_Permission'] = 'Simple Permissions'; + +$lang['User_Level'] = 'User Level'; +$lang['Auth_User'] = 'User'; +$lang['Auth_Admin'] = 'Administrator'; +$lang['Group_memberships'] = 'Usergroup memberships'; +$lang['Usergroup_members'] = 'This group has the following members'; + +$lang['Forum_auth_updated'] = 'Forum permissions updated'; +$lang['User_auth_updated'] = 'User permissions updated'; +$lang['Group_auth_updated'] = 'Group permissions updated'; + +$lang['Auth_updated'] = 'Permissions have been updated'; +$lang['Click_return_userauth'] = 'Click %sHere%s to return to User Permissions'; +$lang['Click_return_groupauth'] = 'Click %sHere%s to return to Group Permissions'; +$lang['Click_return_forumauth'] = 'Click %sHere%s to return to Forum Permissions'; + + +// +// Banning +// +$lang['Ban_control'] = 'Ban Control'; +$lang['Ban_explain'] = 'Here you can control the banning of users. You can achieve this by banning either or both of a specific user or an individual or range of IP addresses or hostnames. These methods prevent a user from even reaching the index page of your board. To prevent a user from registering under a different username you can also specify a banned email address. Please note that banning an email address alone will not prevent that user from being able to log on or post to your board. You should use one of the first two methods to achieve this.'; +$lang['Ban_explain_warn'] = 'Please note that entering a range of IP addresses results in all the addresses between the start and end being added to the banlist. Attempts will be made to minimise the number of addresses added to the database by introducing wildcards automatically where appropriate. If you really must enter a range, try to keep it small or better yet state specific addresses.'; + +$lang['Select_username'] = 'Select a Username'; +$lang['Select_ip'] = 'Select an IP address'; +$lang['Select_email'] = 'Select an Email address'; + +$lang['Ban_username'] = 'Ban one or more specific users'; +$lang['Ban_username_explain'] = 'You can ban multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Ban_IP'] = 'Ban one or more IP addresses or hostnames'; +$lang['IP_hostname'] = 'IP addresses or hostnames'; +$lang['Ban_IP_explain'] = 'To specify several different IP addresses or hostnames separate them with commas. To specify a range of IP addresses, separate the start and end with a hyphen (-); to specify a wildcard, use an asterisk (*).'; + +$lang['Ban_email'] = 'Ban one or more email addresses'; +$lang['Ban_email_explain'] = 'To specify more than one email address, separate them with commas. To specify a wildcard username, use * like *@hotmail.com'; + +$lang['Unban_username'] = 'Un-ban one more specific users'; +$lang['Unban_username_explain'] = 'You can unban multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Unban_IP'] = 'Un-ban one or more IP addresses'; +$lang['Unban_IP_explain'] = 'You can unban multiple IP addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Unban_email'] = 'Un-ban one or more email addresses'; +$lang['Unban_email_explain'] = 'You can unban multiple email addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['No_banned_users'] = 'No banned usernames'; +$lang['No_banned_ip'] = 'No banned IP addresses'; +$lang['No_banned_email'] = 'No banned email addresses'; + +$lang['Ban_update_sucessful'] = 'The banlist has been updated successfully'; +$lang['Click_return_banadmin'] = 'Click %sHere%s to return to Ban Control'; + + +// +// Configuration +// +$lang['General_Config'] = 'General Configuration'; +$lang['Config_explain'] = 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side.'; + +$lang['Click_return_config'] = 'Click %sHere%s to return to General Configuration'; + +$lang['General_settings'] = 'General Board Settings'; +$lang['Server_name'] = 'Domain Name'; +$lang['Server_name_explain'] = 'The domain name from which this board runs'; +$lang['Script_path'] = 'Script path'; +$lang['Script_path_explain'] = 'The path where phpBB2 is located relative to the domain name'; +$lang['Server_port'] = 'Server Port'; +$lang['Server_port_explain'] = 'The port your server is running on, usually 80. Only change if different'; +$lang['Site_name'] = 'Site name'; +$lang['Site_desc'] = 'Site description'; +$lang['Board_disable'] = 'Disable board'; +$lang['Board_disable_explain'] = 'This will make the board unavailable to users. Administrators are able to access the Administration Panel while the board is disabled.'; +$lang['Acct_activation'] = 'Enable account activation'; +$lang['Acc_None'] = 'None'; // These three entries are the type of activation +$lang['Acc_User'] = 'User'; +$lang['Acc_Admin'] = 'Admin'; + +$lang['Abilities_settings'] = 'User and Forum Basic Settings'; +$lang['Max_poll_options'] = 'Max number of poll options'; +$lang['Flood_Interval'] = 'Flood Interval'; +$lang['Flood_Interval_explain'] = 'Number of seconds a user must wait between posts'; +$lang['Board_email_form'] = 'User email via board'; +$lang['Board_email_form_explain'] = 'Users send email to each other via this board'; +$lang['Topics_per_page'] = 'Topics Per Page'; +$lang['Posts_per_page'] = 'Posts Per Page'; +$lang['Hot_threshold'] = 'Posts for Popular Threshold'; +$lang['Default_style'] = 'Default Style'; +$lang['Override_style'] = 'Override user style'; +$lang['Override_style_explain'] = 'Replaces users style with the default'; +$lang['Default_language'] = 'Default Language'; +$lang['Date_format'] = 'Date Format'; +$lang['System_timezone'] = 'System Timezone'; +$lang['Enable_gzip'] = 'Enable GZip Compression'; +$lang['Enable_prune'] = 'Enable Forum Pruning'; +$lang['Allow_HTML'] = 'Allow HTML'; +$lang['Allow_BBCode'] = 'Allow BBCode'; +$lang['Allowed_tags'] = 'Allowed HTML tags'; +$lang['Allowed_tags_explain'] = 'Separate tags with commas'; +$lang['Allow_smilies'] = 'Allow Smilies'; +$lang['Smilies_path'] = 'Smilies Storage Path'; +$lang['Smilies_path_explain'] = 'Path under your phpBB root dir, e.g. images/smiles'; +$lang['Allow_sig'] = 'Allow Signatures'; +$lang['Max_sig_length'] = 'Maximum signature length'; +$lang['Max_sig_length_explain'] = 'Maximum number of characters in user signatures'; +$lang['Allow_name_change'] = 'Allow Username changes'; + +$lang['Avatar_settings'] = 'Avatar Settings'; +$lang['Allow_local'] = 'Enable gallery avatars'; +$lang['Allow_remote'] = 'Enable remote avatars'; +$lang['Allow_remote_explain'] = 'Avatars linked to from another website'; +$lang['Allow_upload'] = 'Enable avatar uploading'; +$lang['Max_filesize'] = 'Maximum Avatar File Size'; +$lang['Max_filesize_explain'] = 'For uploaded avatar files'; +$lang['Max_avatar_size'] = 'Maximum Avatar Dimensions'; +$lang['Max_avatar_size_explain'] = '(Height x Width in pixels)'; +$lang['Avatar_storage_path'] = 'Avatar Storage Path'; +$lang['Avatar_storage_path_explain'] = 'Path under your phpBB root dir, e.g. images/avatars'; +$lang['Avatar_gallery_path'] = 'Avatar Gallery Path'; +$lang['Avatar_gallery_path_explain'] = 'Path under your phpBB root dir for pre-loaded images, e.g. images/avatars/gallery'; + +$lang['COPPA_settings'] = 'COPPA Settings'; +$lang['COPPA_fax'] = 'COPPA Fax Number'; +$lang['COPPA_mail'] = 'COPPA Mailing Address'; +$lang['COPPA_mail_explain'] = 'This is the mailing address to which parents will send COPPA registration forms'; + +$lang['Email_settings'] = 'Email Settings'; +$lang['Admin_email'] = 'Admin Email Address'; +$lang['Email_sig'] = 'Email Signature'; +$lang['Email_sig_explain'] = 'This text will be attached to all emails the board sends'; +$lang['Use_SMTP'] = 'Use SMTP Server for email'; +$lang['Use_SMTP_explain'] = 'Say yes if you want or have to send email via a named server instead of the local mail function'; +$lang['SMTP_server'] = 'SMTP Server Address'; +$lang['SMTP_username'] = 'SMTP Username'; +$lang['SMTP_username_explain'] = 'Only enter a username if your SMTP server requires it'; +$lang['SMTP_password'] = 'SMTP Password'; +$lang['SMTP_password_explain'] = 'Only enter a password if your SMTP server requires it'; + +$lang['Disable_privmsg'] = 'Private Messaging'; +$lang['Inbox_limits'] = 'Max posts in Inbox'; +$lang['Sentbox_limits'] = 'Max posts in Sentbox'; +$lang['Savebox_limits'] = 'Max posts in Savebox'; + +$lang['Cookie_settings'] = 'Cookie settings'; +$lang['Cookie_settings_explain'] = 'These details define how cookies are sent to your users\' browsers. In most cases the default values for the cookie settings should be sufficient, but if you need to change them do so with care -- incorrect settings can prevent users from logging in'; +$lang['Cookie_domain'] = 'Cookie domain'; +$lang['Cookie_name'] = 'Cookie name'; +$lang['Cookie_path'] = 'Cookie path'; +$lang['Cookie_secure'] = 'Cookie secure'; +$lang['Cookie_secure_explain'] = 'If your server is running via SSL, set this to enabled, else leave as disabled'; +$lang['Session_length'] = 'Session length [ seconds ]'; + +// Visual Confirmation +$lang['Visual_confirm'] = 'Enable Visual Confirmation'; +$lang['Visual_confirm_explain'] = 'Requires users enter a code defined by an image when registering.'; + +// Autologin Keys - added 2.0.18 +$lang['Allow_autologin'] = 'Allow automatic logins'; +$lang['Allow_autologin_explain'] = 'Determines whether users are allowed to select to be automatically logged in when visiting the forum'; +$lang['Autologin_time'] = 'Automatic login key expiry'; +$lang['Autologin_time_explain'] = 'How long a autologin key is valid for in days if the user does not visit the board. Set to zero to disable expiry.'; + +// Search Flood Control - added 2.0.20 +$lang['Search_Flood_Interval'] = 'Search Flood Interval'; +$lang['Search_Flood_Interval_explain'] = 'Number of seconds a user must wait between search requests'; + +// +// Forum Management +// +$lang['Forum_admin'] = 'Forum Administration'; +$lang['Forum_admin_explain'] = 'From this panel you can add, delete, edit, re-order and re-synchronise categories and forums'; +$lang['Edit_forum'] = 'Edit forum'; +$lang['Create_forum'] = 'Create new forum'; +$lang['Create_category'] = 'Create new category'; +$lang['Remove'] = 'Remove'; +$lang['Action'] = 'Action'; +$lang['Update_order'] = 'Update Order'; +$lang['Config_updated'] = 'Forum Configuration Updated Successfully'; +$lang['Edit'] = 'Edit'; +$lang['Delete'] = 'Delete'; +$lang['Move_up'] = 'Move up'; +$lang['Move_down'] = 'Move down'; +$lang['Resync'] = 'Resync'; +$lang['No_mode'] = 'No mode was set'; +$lang['Forum_edit_delete_explain'] = 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side'; + +$lang['Move_contents'] = 'Move all contents'; +$lang['Forum_delete'] = 'Delete Forum'; +$lang['Forum_delete_explain'] = 'The form below will allow you to delete a forum (or category) and decide where you want to put all topics (or forums) it contained.'; + +$lang['Status_locked'] = 'Locked'; +$lang['Status_unlocked'] = 'Unlocked'; +$lang['Forum_settings'] = 'General Forum Settings'; +$lang['Forum_name'] = 'Forum name'; +$lang['Forum_desc'] = 'Description'; +$lang['Forum_status'] = 'Forum status'; +$lang['Forum_pruning'] = 'Auto-pruning'; + +$lang['prune_freq'] = 'Check for topic age every'; +$lang['prune_days'] = 'Remove topics that have not been posted to in'; +$lang['Set_prune_data'] = 'You have turned on auto-prune for this forum but did not set a frequency or number of days to prune. Please go back and do so.'; + +$lang['Move_and_Delete'] = 'Move and Delete'; + +$lang['Delete_all_posts'] = 'Delete all posts'; +$lang['Nowhere_to_move'] = 'Nowhere to move to'; + +$lang['Edit_Category'] = 'Edit Category'; +$lang['Edit_Category_explain'] = 'Use this form to modify a category\'s name.'; + +$lang['Forums_updated'] = 'Forum and Category information updated successfully'; + +$lang['Must_delete_forums'] = 'You need to delete all forums before you can delete this category'; + +$lang['Click_return_forumadmin'] = 'Click %sHere%s to return to Forum Administration'; + + +// +// Smiley Management +// +$lang['smiley_title'] = 'Smiles Editing Utility'; +$lang['smile_desc'] = 'From this page you can add, remove and edit the emoticons or smileys that your users can use in their posts and private messages.'; + +$lang['smiley_config'] = 'Smiley Configuration'; +$lang['smiley_code'] = 'Smiley Code'; +$lang['smiley_url'] = 'Smiley Image File'; +$lang['smiley_emot'] = 'Smiley Emotion'; +$lang['smile_add'] = 'Add a new Smiley'; +$lang['Smile'] = 'Smile'; +$lang['Emotion'] = 'Emotion'; + +$lang['Select_pak'] = 'Select Pack (.pak) File'; +$lang['replace_existing'] = 'Replace Existing Smiley'; +$lang['keep_existing'] = 'Keep Existing Smiley'; +$lang['smiley_import_inst'] = 'You should unzip the smiley package and upload all files to the appropriate Smiley directory for your installation. Then select the correct information in this form to import the smiley pack.'; +$lang['smiley_import'] = 'Smiley Pack Import'; +$lang['choose_smile_pak'] = 'Choose a Smile Pack .pak file'; +$lang['import'] = 'Import Smileys'; +$lang['smile_conflicts'] = 'What should be done in case of conflicts'; +$lang['del_existing_smileys'] = 'Delete existing smileys before import'; +$lang['import_smile_pack'] = 'Import Smiley Pack'; +$lang['export_smile_pack'] = 'Create Smiley Pack'; +$lang['export_smiles'] = 'To create a smiley pack from your currently installed smileys, click %sHere%s to download the smiles.pak file. Name this file appropriately making sure to keep the .pak file extension. Then create a zip file containing all of your smiley images plus this .pak configuration file.'; + +$lang['smiley_add_success'] = 'The Smiley was successfully added'; +$lang['smiley_edit_success'] = 'The Smiley was successfully updated'; +$lang['smiley_import_success'] = 'The Smiley Pack was imported successfully!'; +$lang['smiley_del_success'] = 'The Smiley was successfully removed'; +$lang['Click_return_smileadmin'] = 'Click %sHere%s to return to Smiley Administration'; + +$lang['Confirm_delete_smiley'] = 'Are you sure you want to delete this Smiley?'; + +// +// User Management +// +$lang['User_admin'] = 'User Administration'; +$lang['User_admin_explain'] = 'Here you can change your users\' information and certain options. To modify the users\' permissions, please use the user and group permissions system.'; + +$lang['Look_up_user'] = 'Look up user'; + +$lang['Admin_user_fail'] = 'Couldn\'t update the user\'s profile.'; +$lang['Admin_user_updated'] = 'The user\'s profile was successfully updated.'; +$lang['Click_return_useradmin'] = 'Click %sHere%s to return to User Administration'; + +$lang['User_delete'] = 'Delete this user'; +$lang['User_delete_explain'] = 'Click here to delete this user; this cannot be undone.'; +$lang['User_deleted'] = 'User was successfully deleted.'; + +$lang['User_status'] = 'User is active'; +$lang['User_allowpm'] = 'Can send Private Messages'; +$lang['User_allowavatar'] = 'Can display avatar'; + +$lang['Admin_avatar_explain'] = 'Here you can see and delete the user\'s current avatar.'; + +$lang['User_special'] = 'Special admin-only fields'; +$lang['User_special_explain'] = 'These fields are not able to be modified by the users. Here you can set their status and other options that are not given to users.'; + + +// +// Group Management +// +$lang['Group_administration'] = 'Group Administration'; +$lang['Group_admin_explain'] = 'From this panel you can administer all your usergroups. You can delete, create and edit existing groups. You may choose moderators, toggle open/closed group status and set the group name and description'; +$lang['Error_updating_groups'] = 'There was an error while updating the groups'; +$lang['Updated_group'] = 'The group was successfully updated'; +$lang['Added_new_group'] = 'The new group was successfully created'; +$lang['Deleted_group'] = 'The group was successfully deleted'; +$lang['New_group'] = 'Create new group'; +$lang['Edit_group'] = 'Edit group'; +$lang['group_name'] = 'Group name'; +$lang['group_description'] = 'Group description'; +$lang['group_moderator'] = 'Group moderator'; +$lang['group_status'] = 'Group status'; +$lang['group_open'] = 'Open group'; +$lang['group_closed'] = 'Closed group'; +$lang['group_hidden'] = 'Hidden group'; +$lang['group_delete'] = 'Delete group'; +$lang['group_delete_check'] = 'Delete this group'; +$lang['submit_group_changes'] = 'Submit Changes'; +$lang['reset_group_changes'] = 'Reset Changes'; +$lang['No_group_name'] = 'You must specify a name for this group'; +$lang['No_group_moderator'] = 'You must specify a moderator for this group'; +$lang['No_group_mode'] = 'You must specify a mode for this group, open or closed'; +$lang['No_group_action'] = 'No action was specified'; +$lang['delete_group_moderator'] = 'Delete the old group moderator?'; +$lang['delete_moderator_explain'] = 'If you\'re changing the group moderator, check this box to remove the old moderator from the group. Otherwise, do not check it, and the user will become a regular member of the group.'; +$lang['Click_return_groupsadmin'] = 'Click %sHere%s to return to Group Administration.'; +$lang['Select_group'] = 'Select a group'; +$lang['Look_up_group'] = 'Look up group'; + + +// +// Prune Administration +// +$lang['Forum_Prune'] = 'Forum Prune'; +$lang['Forum_Prune_explain'] = 'This will delete any topic which has not been posted to within the number of days you select. If you do not enter a number then all topics will be deleted. It will not remove topics in which polls are still running nor will it remove announcements. You will need to remove those topics manually.'; +$lang['Do_Prune'] = 'Do Prune'; +$lang['All_Forums'] = 'All Forums'; +$lang['Prune_topics_not_posted'] = 'Prune topics with no replies in this many days'; +$lang['Topics_pruned'] = 'Topics pruned'; +$lang['Posts_pruned'] = 'Posts pruned'; +$lang['Prune_success'] = 'Pruning of forums was successful'; + + +// +// Word censor +// +$lang['Words_title'] = 'Word Censoring'; +$lang['Words_explain'] = 'From this control panel you can add, edit, and remove words that will be automatically censored on your forums. In addition people will not be allowed to register with usernames containing these words. Wildcards (*) are accepted in the word field. For example, *test* will match detestable, test* would match testing, *test would match detest.'; +$lang['Word'] = 'Word'; +$lang['Edit_word_censor'] = 'Edit word censor'; +$lang['Replacement'] = 'Replacement'; +$lang['Add_new_word'] = 'Add new word'; +$lang['Update_word'] = 'Update word censor'; + +$lang['Must_enter_word'] = 'You must enter a word and its replacement'; +$lang['No_word_selected'] = 'No word selected for editing'; + +$lang['Word_updated'] = 'The selected word censor has been successfully updated'; +$lang['Word_added'] = 'The word censor has been successfully added'; +$lang['Word_removed'] = 'The selected word censor has been successfully removed'; + +$lang['Click_return_wordadmin'] = 'Click %sHere%s to return to Word Censor Administration'; + +$lang['Confirm_delete_word'] = 'Are you sure you want to delete this word censor?'; + + +// +// Mass Email +// +$lang['Mass_email_explain'] = 'Here you can email a message to either all of your users or all users of a specific group. To do this, an email will be sent out to the administrative email address supplied, with a blind carbon copy sent to all recipients. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time and you will be notified when the script has completed'; +$lang['Compose'] = 'Compose'; + +$lang['Recipients'] = 'Recipients'; +$lang['All_users'] = 'All Users'; + +$lang['Email_successfull'] = 'Your message has been sent'; +$lang['Click_return_massemail'] = 'Click %sHere%s to return to the Mass Email form'; + + +// +// Ranks admin +// +$lang['Ranks_title'] = 'Rank Administration'; +$lang['Ranks_explain'] = 'Using this form you can add, edit, view and delete ranks. You can also create custom ranks which can be applied to a user via the user management facility'; + +$lang['Add_new_rank'] = 'Add new rank'; + +$lang['Rank_title'] = 'Rank Title'; +$lang['Rank_special'] = 'Set as Special Rank'; +$lang['Rank_minimum'] = 'Minimum Posts'; +$lang['Rank_maximum'] = 'Maximum Posts'; +$lang['Rank_image'] = 'Rank Image (Relative to phpBB2 root path)'; +$lang['Rank_image_explain'] = 'Use this to define a small image associated with the rank'; + +$lang['Must_select_rank'] = 'You must select a rank'; +$lang['No_assigned_rank'] = 'No special rank assigned'; + +$lang['Rank_updated'] = 'The rank was successfully updated'; +$lang['Rank_added'] = 'The rank was successfully added'; +$lang['Rank_removed'] = 'The rank was successfully deleted'; +$lang['No_update_ranks'] = 'The rank was successfully deleted. However, user accounts using this rank were not updated. You will need to manually reset the rank on these accounts'; + +$lang['Click_return_rankadmin'] = 'Click %sHere%s to return to Rank Administration'; + +$lang['Confirm_delete_rank'] = 'Are you sure you want to delete this rank?'; + +// +// Disallow Username Admin +// +$lang['Disallow_control'] = 'Username Disallow Control'; +$lang['Disallow_explain'] = 'Here you can control usernames which will not be allowed to be used. Disallowed usernames are allowed to contain a wildcard character of *. Please note that you will not be allowed to specify any username that has already been registered. You must first delete that name then disallow it.'; + +$lang['Delete_disallow'] = 'Delete'; +$lang['Delete_disallow_title'] = 'Remove a Disallowed Username'; +$lang['Delete_disallow_explain'] = 'You can remove a disallowed username by selecting the username from this list and clicking submit'; + +$lang['Add_disallow'] = 'Add'; +$lang['Add_disallow_title'] = 'Add a disallowed username'; +$lang['Add_disallow_explain'] = 'You can disallow a username using the wildcard character * to match any character'; + +$lang['No_disallowed'] = 'No Disallowed Usernames'; + +$lang['Disallowed_deleted'] = 'The disallowed username has been successfully removed'; +$lang['Disallow_successful'] = 'The disallowed username has been successfully added'; +$lang['Disallowed_already'] = 'The name you entered could not be disallowed. It either already exists in the list, exists in the word censor list, or a matching username is present.'; + +$lang['Click_return_disallowadmin'] = 'Click %sHere%s to return to Disallow Username Administration'; + + +// +// Styles Admin +// +$lang['Styles_admin'] = 'Styles Administration'; +$lang['Styles_explain'] = 'Using this facility you can add, remove and manage styles (templates and themes) available to your users'; +$lang['Styles_addnew_explain'] = 'The following list contains all the themes that are available for the templates you currently have. The items on this list have not yet been installed into the phpBB database. To install a theme, simply click the install link beside an entry.'; + +$lang['Select_template'] = 'Select a Template'; + +$lang['Style'] = 'Style'; +$lang['Template'] = 'Template'; +$lang['Install'] = 'Install'; +$lang['Download'] = 'Download'; + +$lang['Edit_theme'] = 'Edit Theme'; +$lang['Edit_theme_explain'] = 'In the form below you can edit the settings for the selected theme'; + +$lang['Create_theme'] = 'Create Theme'; +$lang['Create_theme_explain'] = 'Use the form below to create a new theme for a selected template. When entering colours (for which you should use hexadecimal notation) you must not include the initial #, i.e.. CCCCCC is valid, #CCCCCC is not'; + +$lang['Export_themes'] = 'Export Themes'; +$lang['Export_explain'] = 'In this panel you will be able to export the theme data for a selected template. Select the template from the list below and the script will create the theme configuration file and attempt to save it to the selected template directory. If it cannot save the file itself it will give you the option to download it. In order for the script to save the file you must give write access to the webserver for the selected template dir. For more information on this see the phpBB 2 users guide.'; + +$lang['Theme_installed'] = 'The selected theme has been installed successfully'; +$lang['Style_removed'] = 'The selected style has been removed from the database. To fully remove this style from your system you must delete the appropriate style from your templates directory.'; +$lang['Theme_info_saved'] = 'The theme information for the selected template has been saved. You should now return the permissions on the theme_info.cfg (and if applicable the selected template directory) to read-only'; +$lang['Theme_updated'] = 'The selected theme has been updated. You should now export the new theme settings'; +$lang['Theme_created'] = 'Theme created. You should now export the theme to the theme configuration file for safe keeping or use elsewhere'; + +$lang['Confirm_delete_style'] = 'Are you sure you want to delete this style?'; + +$lang['Download_theme_cfg'] = 'The exporter could not write the theme information file. Click the button below to download this file with your browser. Once you have downloaded it you can transfer it to the directory containing the template files. You can then package the files for distribution or use elsewhere if you desire'; +$lang['No_themes'] = 'The template you selected has no themes attached to it. To create a new theme click the Create New link on the left hand panel'; +$lang['No_template_dir'] = 'Could not open the template directory. It may be unreadable by the webserver or may not exist'; +$lang['Cannot_remove_style'] = 'You cannot remove the style selected since it is currently the forum default. Please change the default style and try again.'; +$lang['Style_exists'] = 'The style name to selected already exists, please go back and choose a different name.'; + +$lang['Click_return_styleadmin'] = 'Click %sHere%s to return to Style Administration'; + +$lang['Theme_settings'] = 'Theme Settings'; +$lang['Theme_element'] = 'Theme Element'; +$lang['Simple_name'] = 'Simple Name'; +$lang['Value'] = 'Value'; +$lang['Save_Settings'] = 'Save Settings'; + +$lang['Stylesheet'] = 'CSS Stylesheet'; +$lang['Stylesheet_explain'] = 'Filename for CSS stylesheet to use for this theme.'; +$lang['Background_image'] = 'Background Image'; +$lang['Background_color'] = 'Background Colour'; +$lang['Theme_name'] = 'Theme Name'; +$lang['Link_color'] = 'Link Colour'; +$lang['Text_color'] = 'Text Colour'; +$lang['VLink_color'] = 'Visited Link Colour'; +$lang['ALink_color'] = 'Active Link Colour'; +$lang['HLink_color'] = 'Hover Link Colour'; +$lang['Tr_color1'] = 'Table Row Colour 1'; +$lang['Tr_color2'] = 'Table Row Colour 2'; +$lang['Tr_color3'] = 'Table Row Colour 3'; +$lang['Tr_class1'] = 'Table Row Class 1'; +$lang['Tr_class2'] = 'Table Row Class 2'; +$lang['Tr_class3'] = 'Table Row Class 3'; +$lang['Th_color1'] = 'Table Header Colour 1'; +$lang['Th_color2'] = 'Table Header Colour 2'; +$lang['Th_color3'] = 'Table Header Colour 3'; +$lang['Th_class1'] = 'Table Header Class 1'; +$lang['Th_class2'] = 'Table Header Class 2'; +$lang['Th_class3'] = 'Table Header Class 3'; +$lang['Td_color1'] = 'Table Cell Colour 1'; +$lang['Td_color2'] = 'Table Cell Colour 2'; +$lang['Td_color3'] = 'Table Cell Colour 3'; +$lang['Td_class1'] = 'Table Cell Class 1'; +$lang['Td_class2'] = 'Table Cell Class 2'; +$lang['Td_class3'] = 'Table Cell Class 3'; +$lang['fontface1'] = 'Font Face 1'; +$lang['fontface2'] = 'Font Face 2'; +$lang['fontface3'] = 'Font Face 3'; +$lang['fontsize1'] = 'Font Size 1'; +$lang['fontsize2'] = 'Font Size 2'; +$lang['fontsize3'] = 'Font Size 3'; +$lang['fontcolor1'] = 'Font Colour 1'; +$lang['fontcolor2'] = 'Font Colour 2'; +$lang['fontcolor3'] = 'Font Colour 3'; +$lang['span_class1'] = 'Span Class 1'; +$lang['span_class2'] = 'Span Class 2'; +$lang['span_class3'] = 'Span Class 3'; +$lang['img_poll_size'] = 'Polling Image Size [px]'; +$lang['img_pm_size'] = 'Private Message Status size [px]'; + + +// +// Install Process +// +$lang['Welcome_install'] = 'Welcome to phpBB 2 Installation'; +$lang['Initial_config'] = 'Basic Configuration'; +$lang['DB_config'] = 'Database Configuration'; +$lang['Admin_config'] = 'Admin Configuration'; +$lang['continue_upgrade'] = 'Once you have downloaded your config file to your local machine you may\'Continue Upgrade\' button below to move forward with the upgrade process. Please wait to upload the config file until the upgrade process is complete.'; +$lang['upgrade_submit'] = 'Continue Upgrade'; + +$lang['Installer_Error'] = 'An error has occurred during installation'; +$lang['Previous_Install'] = 'A previous installation has been detected'; +$lang['Install_db_error'] = 'An error occurred trying to update the database'; + +$lang['Re_install'] = 'Your previous installation is still active.

If you would like to re-install phpBB 2 you should click the Yes button below. Please be aware that doing so will destroy all existing data and no backups will be made! The administrator username and password you have used to login in to the board will be re-created after the re-installation and no other settings will be retained.

Think carefully before pressing Yes!'; + +$lang['Inst_Step_0'] = 'Thank you for choosing phpBB 2. In order to complete this install please fill out the details requested below. Please note that the database you install into should already exist. If you are installing to a database that uses ODBC, e.g. MS Access you should first create a DSN for it before proceeding.'; + +$lang['Start_Install'] = 'Start Install'; +$lang['Finish_Install'] = 'Finish Installation'; + +$lang['Default_lang'] = 'Default board language'; +$lang['DB_Host'] = 'Database Server Hostname / DSN'; +$lang['DB_Name'] = 'Your Database Name'; +$lang['DB_Username'] = 'Database Username'; +$lang['DB_Password'] = 'Database Password'; +$lang['Database'] = 'Your Database'; +$lang['Install_lang'] = 'Choose Language for Installation'; +$lang['dbms'] = 'Database Type'; +$lang['Table_Prefix'] = 'Prefix for tables in database'; +$lang['Admin_Username'] = 'Administrator Username'; +$lang['Admin_Password'] = 'Administrator Password'; +$lang['Admin_Password_confirm'] = 'Administrator Password [ Confirm ]'; + +$lang['Inst_Step_2'] = 'Your admin username has been created. At this point your basic installation is complete. You will now be taken to a screen which will allow you to administer your new installation. Please be sure to check the General Configuration details and make any required changes. Thank you for choosing phpBB 2.'; + +$lang['Unwriteable_config'] = 'Your config file is un-writeable at present. A copy of the config file will be downloaded to your computer when you click the button below. You should upload this file to the same directory as phpBB 2. Once this is done you should log in using the administrator name and password you provided on the previous form and visit the admin control center (a link will appear at the bottom of each screen once logged in) to check the general configuration. Thank you for choosing phpBB 2.'; +$lang['Download_config'] = 'Download Config'; + +$lang['ftp_choose'] = 'Choose Download Method'; +$lang['ftp_option'] = '
Since FTP extensions are enabled in this version of PHP you may also be given the option of first trying to automatically FTP the config file into place.'; +$lang['ftp_instructs'] = 'You have chosen to FTP the file to the account containing phpBB 2 automatically. Please enter the information below to facilitate this process. Note that the FTP path should be the exact path via FTP to your phpBB2 installation as if you were FTPing to it using any normal client.'; +$lang['ftp_info'] = 'Enter Your FTP Information'; +$lang['Attempt_ftp'] = 'Attempt to FTP config file into place'; +$lang['Send_file'] = 'Just send the file to me and I\'ll FTP it manually'; +$lang['ftp_path'] = 'FTP path to phpBB 2'; +$lang['ftp_username'] = 'Your FTP Username'; +$lang['ftp_password'] = 'Your FTP Password'; +$lang['Transfer_config'] = 'Start Transfer'; +$lang['NoFTP_config'] = 'The attempt to FTP the config file into place failed. Please download the config file and FTP it into place manually.'; + +$lang['Install'] = 'Install'; +$lang['Upgrade'] = 'Upgrade'; + + +$lang['Install_Method'] = 'Choose your installation method'; + +$lang['Install_No_Ext'] = 'The PHP configuration on your server doesn\'t support the database type that you chose'; + +$lang['Install_No_PCRE'] = 'phpBB2 Requires the Perl-Compatible Regular Expressions Module for PHP which your PHP configuration doesn\'t appear to support!'; + +// +// Admin Userlist Start +// +$lang['Userlist'] = 'User list'; +$lang['Userlist_description'] = 'View a complete list of your users and perform various actions on them'; + +$lang['Add_group'] = 'Add to a Group'; +$lang['Add_group_explain'] = 'Select which group to add the selected users to'; + +$lang['Open_close'] = 'Open/Close'; +$lang['Active'] = 'Active'; +$lang['Group'] = 'Group(s)'; +$lang['Rank'] = 'Rank'; +$lang['Last_activity'] = 'Last Activity'; +$lang['Never'] = 'Never'; +$lang['User_manage'] = 'Manage'; +$lang['Find_all_posts'] = 'Find All Posts'; + +$lang['Select_one'] = 'Select One'; +$lang['Ban'] = 'Ban'; +$lang['Activate_deactivate'] = 'Activate/De-activate'; + +$lang['User_id'] = 'User id'; +$lang['User_level'] = 'User Level'; +$lang['Ascending'] = 'Ascending'; +$lang['Descending'] = 'Descending'; +$lang['Show'] = 'Show'; +$lang['All'] = 'All'; + +$lang['Member'] = 'Member'; +$lang['Pending'] = 'Pending'; + +$lang['Confirm_user_ban'] = 'Are you sure you want to ban the selected user(s)?'; +$lang['Confirm_user_deleted'] = 'Are you sure you want to detele the selected user(s)?'; + +$lang['User_status_updated'] = 'User(s) status updated successfully!'; +$lang['User_banned_successfully'] = 'User(s) banned successfully!'; +$lang['User_deleted_successfully'] = 'User(s) deleted successfully!'; +$lang['User_add_group_successfully'] = 'User(s) added to group successfully!'; + +$lang['Click_return_userlist'] = 'Click %shere%s to return to the User List'; +// +// Admin Userlist End +// + +// +// Version Check +// +$lang['Version_up_to_date'] = 'Your installation is up to date, no updates are available for your version of phpBB.'; +$lang['Version_not_up_to_date'] = 'Your installation does not seem to be up to date. Updates are available for your version of phpBB, please visit http://www.phpbb.com/downloads.php to obtain the latest version.'; +$lang['Latest_version_info'] = 'The latest available version is phpBB %s.'; +$lang['Current_version_info'] = 'You are running phpBB %s.'; +$lang['Connect_socket_error'] = 'Unable to open connection to phpBB Server, reported error is:
%s'; +$lang['Socket_functions_disabled'] = 'Unable to use socket functions.'; +$lang['Mailing_list_subscribe_reminder'] = 'For the latest information on updates to phpBB, why not subscribe to our mailing list.'; +$lang['Version_information'] = 'Version Information'; + +// +// Login attempts configuration +// +$lang['Max_login_attempts'] = 'Allowed login attempts'; +$lang['Max_login_attempts_explain'] = 'The number of allowed board login attempts.'; +$lang['Login_reset_time'] = 'Login lock time'; +$lang['Login_reset_time_explain'] = 'Time in minutes the user have to wait until he is allowed to login again after exceeding the number of allowed login attempts.'; + +// +// That's all Folks! +// ------------------------------------------------- + +?> diff --git a/phpBB2/language/lang_english/lang_admin.php.orig b/phpBB2/language/lang_english/lang_admin.php.orig new file mode 100644 index 0000000..4c720b8 --- /dev/null +++ b/phpBB2/language/lang_english/lang_admin.php.orig @@ -0,0 +1,788 @@ +Admin Index link in the left pane. To return to the index of your board, click the phpBB logo also in the left pane. The other links on the left hand side of this screen will allow you to control every aspect of your forum experience. Each screen will have instructions on how to use the tools.'; +$lang['Main_index'] = 'Forum Index'; +$lang['Forum_stats'] = 'Forum Statistics'; +$lang['Admin_Index'] = 'Admin Index'; +$lang['Preview_forum'] = 'Preview Forum'; + +$lang['Click_return_admin_index'] = 'Click %sHere%s to return to the Admin Index'; + +$lang['Statistic'] = 'Statistic'; +$lang['Value'] = 'Value'; +$lang['Number_posts'] = 'Number of posts'; +$lang['Posts_per_day'] = 'Posts per day'; +$lang['Number_topics'] = 'Number of topics'; +$lang['Topics_per_day'] = 'Topics per day'; +$lang['Number_users'] = 'Number of users'; +$lang['Users_per_day'] = 'Users per day'; +$lang['Board_started'] = 'Board started'; +$lang['Avatar_dir_size'] = 'Avatar directory size'; +$lang['Database_size'] = 'Database size'; +$lang['Gzip_compression'] ='Gzip compression'; +$lang['Not_available'] = 'Not available'; + +$lang['ON'] = 'ON'; // This is for GZip compression +$lang['OFF'] = 'OFF'; + + +// +// DB Utils +// +$lang['Database_Utilities'] = 'Database Utilities'; + +$lang['Restore'] = 'Restore'; +$lang['Backup'] = 'Backup'; +$lang['Restore_explain'] = 'This will perform a full restore of all phpBB tables from a saved file. If your server supports it, you may upload a gzip-compressed text file and it will automatically be decompressed. WARNING: This will overwrite any existing data. The restore may take a long time to process, so please do not move from this page until it is complete.'; +$lang['Backup_explain'] = 'Here you can back up all your phpBB-related data. If you have any additional custom tables in the same database with phpBB that you would like to back up as well, please enter their names, separated by commas, in the Additional Tables textbox below. If your server supports it you may also gzip-compress the file to reduce its size before download.'; + +$lang['Backup_options'] = 'Backup options'; +$lang['Start_backup'] = 'Start Backup'; +$lang['Full_backup'] = 'Full backup'; +$lang['Structure_backup'] = 'Structure-Only backup'; +$lang['Data_backup'] = 'Data only backup'; +$lang['Additional_tables'] = 'Additional tables'; +$lang['Gzip_compress'] = 'Gzip compress file'; +$lang['Select_file'] = 'Select a file'; +$lang['Start_Restore'] = 'Start Restore'; + +$lang['Restore_success'] = 'The Database has been successfully restored.

Your board should be back to the state it was when the backup was made.'; +$lang['Backup_download'] = 'Your download will start shortly; please wait until it begins.'; +$lang['Backups_not_supported'] = 'Sorry, but database backups are not currently supported for your database system.'; + +$lang['Restore_Error_uploading'] = 'Error in uploading the backup file'; +$lang['Restore_Error_filename'] = 'Filename problem; please try an alternative file'; +$lang['Restore_Error_decompress'] = 'Cannot decompress a gzip file; please upload a plain text version'; +$lang['Restore_Error_no_file'] = 'No file was uploaded'; + + +// +// Auth pages +// +$lang['Select_a_User'] = 'Select a User'; +$lang['Select_a_Group'] = 'Select a Group'; +$lang['Select_a_Forum'] = 'Select a Forum'; +$lang['Auth_Control_User'] = 'User Permissions Control'; +$lang['Auth_Control_Group'] = 'Group Permissions Control'; +$lang['Auth_Control_Forum'] = 'Forum Permissions Control'; +$lang['Look_up_User'] = 'Look up User'; +$lang['Look_up_Group'] = 'Look up Group'; +$lang['Look_up_Forum'] = 'Look up Forum'; + +$lang['Group_auth_explain'] = 'Here you can alter the permissions and moderator status assigned to each user group. Do not forget when changing group permissions that individual user permissions may still allow the user entry to forums, etc. You will be warned if this is the case.'; +$lang['User_auth_explain'] = 'Here you can alter the permissions and moderator status assigned to each individual user. Do not forget when changing user permissions that group permissions may still allow the user entry to forums, etc. You will be warned if this is the case.'; +$lang['Forum_auth_explain'] = 'Here you can alter the authorisation levels of each forum. You will have both a simple and advanced method for doing this, where advanced offers greater control of each forum operation. Remember that changing the permission level of forums will affect which users can carry out the various operations within them.'; + +$lang['Simple_mode'] = 'Simple Mode'; +$lang['Advanced_mode'] = 'Advanced Mode'; +$lang['Moderator_status'] = 'Moderator status'; + +$lang['Allowed_Access'] = 'Allowed Access'; +$lang['Disallowed_Access'] = 'Disallowed Access'; +$lang['Is_Moderator'] = 'Is Moderator'; +$lang['Not_Moderator'] = 'Not Moderator'; + +$lang['Conflict_warning'] = 'Authorisation Conflict Warning'; +$lang['Conflict_access_userauth'] = 'This user still has access rights to this forum via group membership. You may want to alter the group permissions or remove this user the group to fully prevent them having access rights. The groups granting rights (and the forums involved) are noted below.'; +$lang['Conflict_mod_userauth'] = 'This user still has moderator rights to this forum via group membership. You may want to alter the group permissions or remove this user the group to fully prevent them having moderator rights. The groups granting rights (and the forums involved) are noted below.'; + +$lang['Conflict_access_groupauth'] = 'The following user (or users) still have access rights to this forum via their user permission settings. You may want to alter the user permissions to fully prevent them having access rights. The users granted rights (and the forums involved) are noted below.'; +$lang['Conflict_mod_groupauth'] = 'The following user (or users) still have moderator rights to this forum via their user permissions settings. You may want to alter the user permissions to fully prevent them having moderator rights. The users granted rights (and the forums involved) are noted below.'; + +$lang['Public'] = 'Public'; +$lang['Private'] = 'Private'; +$lang['Registered'] = 'Registered'; +$lang['Administrators'] = 'Administrators'; +$lang['Hidden'] = 'Hidden'; + +// These are displayed in the drop down boxes for advanced +// mode forum auth, try and keep them short! +$lang['Forum_ALL'] = 'ALL'; +$lang['Forum_REG'] = 'REG'; +$lang['Forum_PRIVATE'] = 'PRIVATE'; +$lang['Forum_MOD'] = 'MOD'; +$lang['Forum_ADMIN'] = 'ADMIN'; + +$lang['View'] = 'View'; +$lang['Read'] = 'Read'; +$lang['Post'] = 'Post'; +$lang['Reply'] = 'Reply'; +$lang['Edit'] = 'Edit'; +$lang['Delete'] = 'Delete'; +$lang['Sticky'] = 'Sticky'; +$lang['Announce'] = 'Announce'; +$lang['Vote'] = 'Vote'; +$lang['Pollcreate'] = 'Poll create'; + +$lang['Permissions'] = 'Permissions'; +$lang['Simple_Permission'] = 'Simple Permissions'; + +$lang['User_Level'] = 'User Level'; +$lang['Auth_User'] = 'User'; +$lang['Auth_Admin'] = 'Administrator'; +$lang['Group_memberships'] = 'Usergroup memberships'; +$lang['Usergroup_members'] = 'This group has the following members'; + +$lang['Forum_auth_updated'] = 'Forum permissions updated'; +$lang['User_auth_updated'] = 'User permissions updated'; +$lang['Group_auth_updated'] = 'Group permissions updated'; + +$lang['Auth_updated'] = 'Permissions have been updated'; +$lang['Click_return_userauth'] = 'Click %sHere%s to return to User Permissions'; +$lang['Click_return_groupauth'] = 'Click %sHere%s to return to Group Permissions'; +$lang['Click_return_forumauth'] = 'Click %sHere%s to return to Forum Permissions'; + + +// +// Banning +// +$lang['Ban_control'] = 'Ban Control'; +$lang['Ban_explain'] = 'Here you can control the banning of users. You can achieve this by banning either or both of a specific user or an individual or range of IP addresses or hostnames. These methods prevent a user from even reaching the index page of your board. To prevent a user from registering under a different username you can also specify a banned email address. Please note that banning an email address alone will not prevent that user from being able to log on or post to your board. You should use one of the first two methods to achieve this.'; +$lang['Ban_explain_warn'] = 'Please note that entering a range of IP addresses results in all the addresses between the start and end being added to the banlist. Attempts will be made to minimise the number of addresses added to the database by introducing wildcards automatically where appropriate. If you really must enter a range, try to keep it small or better yet state specific addresses.'; + +$lang['Select_username'] = 'Select a Username'; +$lang['Select_ip'] = 'Select an IP address'; +$lang['Select_email'] = 'Select an Email address'; + +$lang['Ban_username'] = 'Ban one or more specific users'; +$lang['Ban_username_explain'] = 'You can ban multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Ban_IP'] = 'Ban one or more IP addresses or hostnames'; +$lang['IP_hostname'] = 'IP addresses or hostnames'; +$lang['Ban_IP_explain'] = 'To specify several different IP addresses or hostnames separate them with commas. To specify a range of IP addresses, separate the start and end with a hyphen (-); to specify a wildcard, use an asterisk (*).'; + +$lang['Ban_email'] = 'Ban one or more email addresses'; +$lang['Ban_email_explain'] = 'To specify more than one email address, separate them with commas. To specify a wildcard username, use * like *@hotmail.com'; + +$lang['Unban_username'] = 'Un-ban one more specific users'; +$lang['Unban_username_explain'] = 'You can unban multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Unban_IP'] = 'Un-ban one or more IP addresses'; +$lang['Unban_IP_explain'] = 'You can unban multiple IP addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Unban_email'] = 'Un-ban one or more email addresses'; +$lang['Unban_email_explain'] = 'You can unban multiple email addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['No_banned_users'] = 'No banned usernames'; +$lang['No_banned_ip'] = 'No banned IP addresses'; +$lang['No_banned_email'] = 'No banned email addresses'; + +$lang['Ban_update_sucessful'] = 'The banlist has been updated successfully'; +$lang['Click_return_banadmin'] = 'Click %sHere%s to return to Ban Control'; + + +// +// Configuration +// +$lang['General_Config'] = 'General Configuration'; +$lang['Config_explain'] = 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side.'; + +$lang['Click_return_config'] = 'Click %sHere%s to return to General Configuration'; + +$lang['General_settings'] = 'General Board Settings'; +$lang['Server_name'] = 'Domain Name'; +$lang['Server_name_explain'] = 'The domain name from which this board runs'; +$lang['Script_path'] = 'Script path'; +$lang['Script_path_explain'] = 'The path where phpBB2 is located relative to the domain name'; +$lang['Server_port'] = 'Server Port'; +$lang['Server_port_explain'] = 'The port your server is running on, usually 80. Only change if different'; +$lang['Site_name'] = 'Site name'; +$lang['Site_desc'] = 'Site description'; +$lang['Board_disable'] = 'Disable board'; +$lang['Board_disable_explain'] = 'This will make the board unavailable to users. Administrators are able to access the Administration Panel while the board is disabled.'; +$lang['Acct_activation'] = 'Enable account activation'; +$lang['Acc_None'] = 'None'; // These three entries are the type of activation +$lang['Acc_User'] = 'User'; +$lang['Acc_Admin'] = 'Admin'; + +$lang['Abilities_settings'] = 'User and Forum Basic Settings'; +$lang['Max_poll_options'] = 'Max number of poll options'; +$lang['Flood_Interval'] = 'Flood Interval'; +$lang['Flood_Interval_explain'] = 'Number of seconds a user must wait between posts'; +$lang['Board_email_form'] = 'User email via board'; +$lang['Board_email_form_explain'] = 'Users send email to each other via this board'; +$lang['Topics_per_page'] = 'Topics Per Page'; +$lang['Posts_per_page'] = 'Posts Per Page'; +$lang['Hot_threshold'] = 'Posts for Popular Threshold'; +$lang['Default_style'] = 'Default Style'; +$lang['Override_style'] = 'Override user style'; +$lang['Override_style_explain'] = 'Replaces users style with the default'; +$lang['Default_language'] = 'Default Language'; +$lang['Date_format'] = 'Date Format'; +$lang['System_timezone'] = 'System Timezone'; +$lang['Enable_gzip'] = 'Enable GZip Compression'; +$lang['Enable_prune'] = 'Enable Forum Pruning'; +$lang['Allow_HTML'] = 'Allow HTML'; +$lang['Allow_BBCode'] = 'Allow BBCode'; +$lang['Allowed_tags'] = 'Allowed HTML tags'; +$lang['Allowed_tags_explain'] = 'Separate tags with commas'; +$lang['Allow_smilies'] = 'Allow Smilies'; +$lang['Smilies_path'] = 'Smilies Storage Path'; +$lang['Smilies_path_explain'] = 'Path under your phpBB root dir, e.g. images/smiles'; +$lang['Allow_sig'] = 'Allow Signatures'; +$lang['Max_sig_length'] = 'Maximum signature length'; +$lang['Max_sig_length_explain'] = 'Maximum number of characters in user signatures'; +$lang['Allow_name_change'] = 'Allow Username changes'; + +$lang['Avatar_settings'] = 'Avatar Settings'; +$lang['Allow_local'] = 'Enable gallery avatars'; +$lang['Allow_remote'] = 'Enable remote avatars'; +$lang['Allow_remote_explain'] = 'Avatars linked to from another website'; +$lang['Allow_upload'] = 'Enable avatar uploading'; +$lang['Max_filesize'] = 'Maximum Avatar File Size'; +$lang['Max_filesize_explain'] = 'For uploaded avatar files'; +$lang['Max_avatar_size'] = 'Maximum Avatar Dimensions'; +$lang['Max_avatar_size_explain'] = '(Height x Width in pixels)'; +$lang['Avatar_storage_path'] = 'Avatar Storage Path'; +$lang['Avatar_storage_path_explain'] = 'Path under your phpBB root dir, e.g. images/avatars'; +$lang['Avatar_gallery_path'] = 'Avatar Gallery Path'; +$lang['Avatar_gallery_path_explain'] = 'Path under your phpBB root dir for pre-loaded images, e.g. images/avatars/gallery'; + +$lang['COPPA_settings'] = 'COPPA Settings'; +$lang['COPPA_fax'] = 'COPPA Fax Number'; +$lang['COPPA_mail'] = 'COPPA Mailing Address'; +$lang['COPPA_mail_explain'] = 'This is the mailing address to which parents will send COPPA registration forms'; + +$lang['Email_settings'] = 'Email Settings'; +$lang['Admin_email'] = 'Admin Email Address'; +$lang['Email_sig'] = 'Email Signature'; +$lang['Email_sig_explain'] = 'This text will be attached to all emails the board sends'; +$lang['Use_SMTP'] = 'Use SMTP Server for email'; +$lang['Use_SMTP_explain'] = 'Say yes if you want or have to send email via a named server instead of the local mail function'; +$lang['SMTP_server'] = 'SMTP Server Address'; +$lang['SMTP_username'] = 'SMTP Username'; +$lang['SMTP_username_explain'] = 'Only enter a username if your SMTP server requires it'; +$lang['SMTP_password'] = 'SMTP Password'; +$lang['SMTP_password_explain'] = 'Only enter a password if your SMTP server requires it'; + +$lang['Disable_privmsg'] = 'Private Messaging'; +$lang['Inbox_limits'] = 'Max posts in Inbox'; +$lang['Sentbox_limits'] = 'Max posts in Sentbox'; +$lang['Savebox_limits'] = 'Max posts in Savebox'; + +$lang['Cookie_settings'] = 'Cookie settings'; +$lang['Cookie_settings_explain'] = 'These details define how cookies are sent to your users\' browsers. In most cases the default values for the cookie settings should be sufficient, but if you need to change them do so with care -- incorrect settings can prevent users from logging in'; +$lang['Cookie_domain'] = 'Cookie domain'; +$lang['Cookie_name'] = 'Cookie name'; +$lang['Cookie_path'] = 'Cookie path'; +$lang['Cookie_secure'] = 'Cookie secure'; +$lang['Cookie_secure_explain'] = 'If your server is running via SSL, set this to enabled, else leave as disabled'; +$lang['Session_length'] = 'Session length [ seconds ]'; + +// Visual Confirmation +$lang['Visual_confirm'] = 'Enable Visual Confirmation'; +$lang['Visual_confirm_explain'] = 'Requires users enter a code defined by an image when registering.'; + +// +// Forum Management +// +$lang['Forum_admin'] = 'Forum Administration'; +$lang['Forum_admin_explain'] = 'From this panel you can add, delete, edit, re-order and re-synchronise categories and forums'; +$lang['Edit_forum'] = 'Edit forum'; +$lang['Create_forum'] = 'Create new forum'; +$lang['Create_category'] = 'Create new category'; +$lang['Remove'] = 'Remove'; +$lang['Action'] = 'Action'; +$lang['Update_order'] = 'Update Order'; +$lang['Config_updated'] = 'Forum Configuration Updated Successfully'; +$lang['Edit'] = 'Edit'; +$lang['Delete'] = 'Delete'; +$lang['Move_up'] = 'Move up'; +$lang['Move_down'] = 'Move down'; +$lang['Resync'] = 'Resync'; +$lang['No_mode'] = 'No mode was set'; +$lang['Forum_edit_delete_explain'] = 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side'; + +$lang['Move_contents'] = 'Move all contents'; +$lang['Forum_delete'] = 'Delete Forum'; +$lang['Forum_delete_explain'] = 'The form below will allow you to delete a forum (or category) and decide where you want to put all topics (or forums) it contained.'; + +$lang['Status_locked'] = 'Locked'; +$lang['Status_unlocked'] = 'Unlocked'; +$lang['Forum_settings'] = 'General Forum Settings'; +$lang['Forum_name'] = 'Forum name'; +$lang['Forum_desc'] = 'Description'; +$lang['Forum_status'] = 'Forum status'; +$lang['Forum_pruning'] = 'Auto-pruning'; + +$lang['prune_freq'] = 'Check for topic age every'; +$lang['prune_days'] = 'Remove topics that have not been posted to in'; +$lang['Set_prune_data'] = 'You have turned on auto-prune for this forum but did not set a frequency or number of days to prune. Please go back and do so.'; + +$lang['Move_and_Delete'] = 'Move and Delete'; + +$lang['Delete_all_posts'] = 'Delete all posts'; +$lang['Nowhere_to_move'] = 'Nowhere to move to'; + +$lang['Edit_Category'] = 'Edit Category'; +$lang['Edit_Category_explain'] = 'Use this form to modify a category\'s name.'; + +$lang['Forums_updated'] = 'Forum and Category information updated successfully'; + +$lang['Must_delete_forums'] = 'You need to delete all forums before you can delete this category'; + +$lang['Click_return_forumadmin'] = 'Click %sHere%s to return to Forum Administration'; + + +// +// Smiley Management +// +$lang['smiley_title'] = 'Smiles Editing Utility'; +$lang['smile_desc'] = 'From this page you can add, remove and edit the emoticons or smileys that your users can use in their posts and private messages.'; + +$lang['smiley_config'] = 'Smiley Configuration'; +$lang['smiley_code'] = 'Smiley Code'; +$lang['smiley_url'] = 'Smiley Image File'; +$lang['smiley_emot'] = 'Smiley Emotion'; +$lang['smile_add'] = 'Add a new Smiley'; +$lang['Smile'] = 'Smile'; +$lang['Emotion'] = 'Emotion'; + +$lang['Select_pak'] = 'Select Pack (.pak) File'; +$lang['replace_existing'] = 'Replace Existing Smiley'; +$lang['keep_existing'] = 'Keep Existing Smiley'; +$lang['smiley_import_inst'] = 'You should unzip the smiley package and upload all files to the appropriate Smiley directory for your installation. Then select the correct information in this form to import the smiley pack.'; +$lang['smiley_import'] = 'Smiley Pack Import'; +$lang['choose_smile_pak'] = 'Choose a Smile Pack .pak file'; +$lang['import'] = 'Import Smileys'; +$lang['smile_conflicts'] = 'What should be done in case of conflicts'; +$lang['del_existing_smileys'] = 'Delete existing smileys before import'; +$lang['import_smile_pack'] = 'Import Smiley Pack'; +$lang['export_smile_pack'] = 'Create Smiley Pack'; +$lang['export_smiles'] = 'To create a smiley pack from your currently installed smileys, click %sHere%s to download the smiles.pak file. Name this file appropriately making sure to keep the .pak file extension. Then create a zip file containing all of your smiley images plus this .pak configuration file.'; + +$lang['smiley_add_success'] = 'The Smiley was successfully added'; +$lang['smiley_edit_success'] = 'The Smiley was successfully updated'; +$lang['smiley_import_success'] = 'The Smiley Pack was imported successfully!'; +$lang['smiley_del_success'] = 'The Smiley was successfully removed'; +$lang['Click_return_smileadmin'] = 'Click %sHere%s to return to Smiley Administration'; + + +// +// User Management +// +$lang['User_admin'] = 'User Administration'; +$lang['User_admin_explain'] = 'Here you can change your users\' information and certain options. To modify the users\' permissions, please use the user and group permissions system.'; + +$lang['Look_up_user'] = 'Look up user'; + +$lang['Admin_user_fail'] = 'Couldn\'t update the user\'s profile.'; +$lang['Admin_user_updated'] = 'The user\'s profile was successfully updated.'; +$lang['Click_return_useradmin'] = 'Click %sHere%s to return to User Administration'; + +$lang['User_delete'] = 'Delete this user'; +$lang['User_delete_explain'] = 'Click here to delete this user; this cannot be undone.'; +$lang['User_deleted'] = 'User was successfully deleted.'; + +$lang['User_status'] = 'User is active'; +$lang['User_allowpm'] = 'Can send Private Messages'; +$lang['User_allowavatar'] = 'Can display avatar'; + +$lang['Admin_avatar_explain'] = 'Here you can see and delete the user\'s current avatar.'; + +$lang['User_special'] = 'Special admin-only fields'; +$lang['User_special_explain'] = 'These fields are not able to be modified by the users. Here you can set their status and other options that are not given to users.'; + + +// +// Group Management +// +$lang['Group_administration'] = 'Group Administration'; +$lang['Group_admin_explain'] = 'From this panel you can administer all your usergroups. You can delete, create and edit existing groups. You may choose moderators, toggle open/closed group status and set the group name and description'; +$lang['Error_updating_groups'] = 'There was an error while updating the groups'; +$lang['Updated_group'] = 'The group was successfully updated'; +$lang['Added_new_group'] = 'The new group was successfully created'; +$lang['Deleted_group'] = 'The group was successfully deleted'; +$lang['New_group'] = 'Create new group'; +$lang['Edit_group'] = 'Edit group'; +$lang['group_name'] = 'Group name'; +$lang['group_description'] = 'Group description'; +$lang['group_moderator'] = 'Group moderator'; +$lang['group_status'] = 'Group status'; +$lang['group_open'] = 'Open group'; +$lang['group_closed'] = 'Closed group'; +$lang['group_hidden'] = 'Hidden group'; +$lang['group_delete'] = 'Delete group'; +$lang['group_delete_check'] = 'Delete this group'; +$lang['submit_group_changes'] = 'Submit Changes'; +$lang['reset_group_changes'] = 'Reset Changes'; +$lang['No_group_name'] = 'You must specify a name for this group'; +$lang['No_group_moderator'] = 'You must specify a moderator for this group'; +$lang['No_group_mode'] = 'You must specify a mode for this group, open or closed'; +$lang['No_group_action'] = 'No action was specified'; +$lang['delete_group_moderator'] = 'Delete the old group moderator?'; +$lang['delete_moderator_explain'] = 'If you\'re changing the group moderator, check this box to remove the old moderator from the group. Otherwise, do not check it, and the user will become a regular member of the group.'; +$lang['Click_return_groupsadmin'] = 'Click %sHere%s to return to Group Administration.'; +$lang['Select_group'] = 'Select a group'; +$lang['Look_up_group'] = 'Look up group'; + + +// +// Prune Administration +// +$lang['Forum_Prune'] = 'Forum Prune'; +$lang['Forum_Prune_explain'] = 'This will delete any topic which has not been posted to within the number of days you select. If you do not enter a number then all topics will be deleted. It will not remove topics in which polls are still running nor will it remove announcements. You will need to remove those topics manually.'; +$lang['Do_Prune'] = 'Do Prune'; +$lang['All_Forums'] = 'All Forums'; +$lang['Prune_topics_not_posted'] = 'Prune topics with no replies in this many days'; +$lang['Topics_pruned'] = 'Topics pruned'; +$lang['Posts_pruned'] = 'Posts pruned'; +$lang['Prune_success'] = 'Pruning of forums was successful'; + + +// +// Word censor +// +$lang['Words_title'] = 'Word Censoring'; +$lang['Words_explain'] = 'From this control panel you can add, edit, and remove words that will be automatically censored on your forums. In addition people will not be allowed to register with usernames containing these words. Wildcards (*) are accepted in the word field. For example, *test* will match detestable, test* would match testing, *test would match detest.'; +$lang['Word'] = 'Word'; +$lang['Edit_word_censor'] = 'Edit word censor'; +$lang['Replacement'] = 'Replacement'; +$lang['Add_new_word'] = 'Add new word'; +$lang['Update_word'] = 'Update word censor'; + +$lang['Must_enter_word'] = 'You must enter a word and its replacement'; +$lang['No_word_selected'] = 'No word selected for editing'; + +$lang['Word_updated'] = 'The selected word censor has been successfully updated'; +$lang['Word_added'] = 'The word censor has been successfully added'; +$lang['Word_removed'] = 'The selected word censor has been successfully removed'; + +$lang['Click_return_wordadmin'] = 'Click %sHere%s to return to Word Censor Administration'; + + +// +// Mass Email +// +$lang['Mass_email_explain'] = 'Here you can email a message to either all of your users or all users of a specific group. To do this, an email will be sent out to the administrative email address supplied, with a blind carbon copy sent to all recipients. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time and you will be notified when the script has completed'; +$lang['Compose'] = 'Compose'; + +$lang['Recipients'] = 'Recipients'; +$lang['All_users'] = 'All Users'; + +$lang['Email_successfull'] = 'Your message has been sent'; +$lang['Click_return_massemail'] = 'Click %sHere%s to return to the Mass Email form'; + + +// +// Ranks admin +// +$lang['Ranks_title'] = 'Rank Administration'; +$lang['Ranks_explain'] = 'Using this form you can add, edit, view and delete ranks. You can also create custom ranks which can be applied to a user via the user management facility'; + +$lang['Add_new_rank'] = 'Add new rank'; + +$lang['Rank_title'] = 'Rank Title'; +$lang['Rank_special'] = 'Set as Special Rank'; +$lang['Rank_minimum'] = 'Minimum Posts'; +$lang['Rank_maximum'] = 'Maximum Posts'; +$lang['Rank_image'] = 'Rank Image (Relative to phpBB2 root path)'; +$lang['Rank_image_explain'] = 'Use this to define a small image associated with the rank'; + +$lang['Must_select_rank'] = 'You must select a rank'; +$lang['No_assigned_rank'] = 'No special rank assigned'; + +$lang['Rank_updated'] = 'The rank was successfully updated'; +$lang['Rank_added'] = 'The rank was successfully added'; +$lang['Rank_removed'] = 'The rank was successfully deleted'; +$lang['No_update_ranks'] = 'The rank was successfully deleted. However, user accounts using this rank were not updated. You will need to manually reset the rank on these accounts'; + +$lang['Click_return_rankadmin'] = 'Click %sHere%s to return to Rank Administration'; + + +// +// Disallow Username Admin +// +$lang['Disallow_control'] = 'Username Disallow Control'; +$lang['Disallow_explain'] = 'Here you can control usernames which will not be allowed to be used. Disallowed usernames are allowed to contain a wildcard character of *. Please note that you will not be allowed to specify any username that has already been registered. You must first delete that name then disallow it.'; + +$lang['Delete_disallow'] = 'Delete'; +$lang['Delete_disallow_title'] = 'Remove a Disallowed Username'; +$lang['Delete_disallow_explain'] = 'You can remove a disallowed username by selecting the username from this list and clicking submit'; + +$lang['Add_disallow'] = 'Add'; +$lang['Add_disallow_title'] = 'Add a disallowed username'; +$lang['Add_disallow_explain'] = 'You can disallow a username using the wildcard character * to match any character'; + +$lang['No_disallowed'] = 'No Disallowed Usernames'; + +$lang['Disallowed_deleted'] = 'The disallowed username has been successfully removed'; +$lang['Disallow_successful'] = 'The disallowed username has been successfully added'; +$lang['Disallowed_already'] = 'The name you entered could not be disallowed. It either already exists in the list, exists in the word censor list, or a matching username is present.'; + +$lang['Click_return_disallowadmin'] = 'Click %sHere%s to return to Disallow Username Administration'; + + +// +// Styles Admin +// +$lang['Styles_admin'] = 'Styles Administration'; +$lang['Styles_explain'] = 'Using this facility you can add, remove and manage styles (templates and themes) available to your users'; +$lang['Styles_addnew_explain'] = 'The following list contains all the themes that are available for the templates you currently have. The items on this list have not yet been installed into the phpBB database. To install a theme, simply click the install link beside an entry.'; + +$lang['Select_template'] = 'Select a Template'; + +$lang['Style'] = 'Style'; +$lang['Template'] = 'Template'; +$lang['Install'] = 'Install'; +$lang['Download'] = 'Download'; + +$lang['Edit_theme'] = 'Edit Theme'; +$lang['Edit_theme_explain'] = 'In the form below you can edit the settings for the selected theme'; + +$lang['Create_theme'] = 'Create Theme'; +$lang['Create_theme_explain'] = 'Use the form below to create a new theme for a selected template. When entering colours (for which you should use hexadecimal notation) you must not include the initial #, i.e.. CCCCCC is valid, #CCCCCC is not'; + +$lang['Export_themes'] = 'Export Themes'; +$lang['Export_explain'] = 'In this panel you will be able to export the theme data for a selected template. Select the template from the list below and the script will create the theme configuration file and attempt to save it to the selected template directory. If it cannot save the file itself it will give you the option to download it. In order for the script to save the file you must give write access to the webserver for the selected template dir. For more information on this see the phpBB 2 users guide.'; + +$lang['Theme_installed'] = 'The selected theme has been installed successfully'; +$lang['Style_removed'] = 'The selected style has been removed from the database. To fully remove this style from your system you must delete the appropriate style from your templates directory.'; +$lang['Theme_info_saved'] = 'The theme information for the selected template has been saved. You should now return the permissions on the theme_info.cfg (and if applicable the selected template directory) to read-only'; +$lang['Theme_updated'] = 'The selected theme has been updated. You should now export the new theme settings'; +$lang['Theme_created'] = 'Theme created. You should now export the theme to the theme configuration file for safe keeping or use elsewhere'; + +$lang['Confirm_delete_style'] = 'Are you sure you want to delete this style?'; + +$lang['Download_theme_cfg'] = 'The exporter could not write the theme information file. Click the button below to download this file with your browser. Once you have downloaded it you can transfer it to the directory containing the template files. You can then package the files for distribution or use elsewhere if you desire'; +$lang['No_themes'] = 'The template you selected has no themes attached to it. To create a new theme click the Create New link on the left hand panel'; +$lang['No_template_dir'] = 'Could not open the template directory. It may be unreadable by the webserver or may not exist'; +$lang['Cannot_remove_style'] = 'You cannot remove the style selected since it is currently the forum default. Please change the default style and try again.'; +$lang['Style_exists'] = 'The style name to selected already exists, please go back and choose a different name.'; + +$lang['Click_return_styleadmin'] = 'Click %sHere%s to return to Style Administration'; + +$lang['Theme_settings'] = 'Theme Settings'; +$lang['Theme_element'] = 'Theme Element'; +$lang['Simple_name'] = 'Simple Name'; +$lang['Value'] = 'Value'; +$lang['Save_Settings'] = 'Save Settings'; + +$lang['Stylesheet'] = 'CSS Stylesheet'; +$lang['Background_image'] = 'Background Image'; +$lang['Background_color'] = 'Background Colour'; +$lang['Theme_name'] = 'Theme Name'; +$lang['Link_color'] = 'Link Colour'; +$lang['Text_color'] = 'Text Colour'; +$lang['VLink_color'] = 'Visited Link Colour'; +$lang['ALink_color'] = 'Active Link Colour'; +$lang['HLink_color'] = 'Hover Link Colour'; +$lang['Tr_color1'] = 'Table Row Colour 1'; +$lang['Tr_color2'] = 'Table Row Colour 2'; +$lang['Tr_color3'] = 'Table Row Colour 3'; +$lang['Tr_class1'] = 'Table Row Class 1'; +$lang['Tr_class2'] = 'Table Row Class 2'; +$lang['Tr_class3'] = 'Table Row Class 3'; +$lang['Th_color1'] = 'Table Header Colour 1'; +$lang['Th_color2'] = 'Table Header Colour 2'; +$lang['Th_color3'] = 'Table Header Colour 3'; +$lang['Th_class1'] = 'Table Header Class 1'; +$lang['Th_class2'] = 'Table Header Class 2'; +$lang['Th_class3'] = 'Table Header Class 3'; +$lang['Td_color1'] = 'Table Cell Colour 1'; +$lang['Td_color2'] = 'Table Cell Colour 2'; +$lang['Td_color3'] = 'Table Cell Colour 3'; +$lang['Td_class1'] = 'Table Cell Class 1'; +$lang['Td_class2'] = 'Table Cell Class 2'; +$lang['Td_class3'] = 'Table Cell Class 3'; +$lang['fontface1'] = 'Font Face 1'; +$lang['fontface2'] = 'Font Face 2'; +$lang['fontface3'] = 'Font Face 3'; +$lang['fontsize1'] = 'Font Size 1'; +$lang['fontsize2'] = 'Font Size 2'; +$lang['fontsize3'] = 'Font Size 3'; +$lang['fontcolor1'] = 'Font Colour 1'; +$lang['fontcolor2'] = 'Font Colour 2'; +$lang['fontcolor3'] = 'Font Colour 3'; +$lang['span_class1'] = 'Span Class 1'; +$lang['span_class2'] = 'Span Class 2'; +$lang['span_class3'] = 'Span Class 3'; +$lang['img_poll_size'] = 'Polling Image Size [px]'; +$lang['img_pm_size'] = 'Private Message Status size [px]'; + + +// +// Install Process +// +$lang['Welcome_install'] = 'Welcome to phpBB 2 Installation'; +$lang['Initial_config'] = 'Basic Configuration'; +$lang['DB_config'] = 'Database Configuration'; +$lang['Admin_config'] = 'Admin Configuration'; +$lang['continue_upgrade'] = 'Once you have downloaded your config file to your local machine you may\'Continue Upgrade\' button below to move forward with the upgrade process. Please wait to upload the config file until the upgrade process is complete.'; +$lang['upgrade_submit'] = 'Continue Upgrade'; + +$lang['Installer_Error'] = 'An error has occurred during installation'; +$lang['Previous_Install'] = 'A previous installation has been detected'; +$lang['Install_db_error'] = 'An error occurred trying to update the database'; + +$lang['Re_install'] = 'Your previous installation is still active.

If you would like to re-install phpBB 2 you should click the Yes button below. Please be aware that doing so will destroy all existing data and no backups will be made! The administrator username and password you have used to login in to the board will be re-created after the re-installation and no other settings will be retained.

Think carefully before pressing Yes!'; + +$lang['Inst_Step_0'] = 'Thank you for choosing phpBB 2. In order to complete this install please fill out the details requested below. Please note that the database you install into should already exist. If you are installing to a database that uses ODBC, e.g. MS Access you should first create a DSN for it before proceeding.'; + +$lang['Start_Install'] = 'Start Install'; +$lang['Finish_Install'] = 'Finish Installation'; + +$lang['Default_lang'] = 'Default board language'; +$lang['DB_Host'] = 'Database Server Hostname / DSN'; +$lang['DB_Name'] = 'Your Database Name'; +$lang['DB_Username'] = 'Database Username'; +$lang['DB_Password'] = 'Database Password'; +$lang['Database'] = 'Your Database'; +$lang['Install_lang'] = 'Choose Language for Installation'; +$lang['dbms'] = 'Database Type'; +$lang['Table_Prefix'] = 'Prefix for tables in database'; +$lang['Admin_Username'] = 'Administrator Username'; +$lang['Admin_Password'] = 'Administrator Password'; +$lang['Admin_Password_confirm'] = 'Administrator Password [ Confirm ]'; + +$lang['Inst_Step_2'] = 'Your admin username has been created. At this point your basic installation is complete. You will now be taken to a screen which will allow you to administer your new installation. Please be sure to check the General Configuration details and make any required changes. Thank you for choosing phpBB 2.'; + +$lang['Unwriteable_config'] = 'Your config file is un-writeable at present. A copy of the config file will be downloaded to your computer when you click the button below. You should upload this file to the same directory as phpBB 2. Once this is done you should log in using the administrator name and password you provided on the previous form and visit the admin control center (a link will appear at the bottom of each screen once logged in) to check the general configuration. Thank you for choosing phpBB 2.'; +$lang['Download_config'] = 'Download Config'; + +$lang['ftp_choose'] = 'Choose Download Method'; +$lang['ftp_option'] = '
Since FTP extensions are enabled in this version of PHP you may also be given the option of first trying to automatically FTP the config file into place.'; +$lang['ftp_instructs'] = 'You have chosen to FTP the file to the account containing phpBB 2 automatically. Please enter the information below to facilitate this process. Note that the FTP path should be the exact path via FTP to your phpBB2 installation as if you were FTPing to it using any normal client.'; +$lang['ftp_info'] = 'Enter Your FTP Information'; +$lang['Attempt_ftp'] = 'Attempt to FTP config file into place'; +$lang['Send_file'] = 'Just send the file to me and I\'ll FTP it manually'; +$lang['ftp_path'] = 'FTP path to phpBB 2'; +$lang['ftp_username'] = 'Your FTP Username'; +$lang['ftp_password'] = 'Your FTP Password'; +$lang['Transfer_config'] = 'Start Transfer'; +$lang['NoFTP_config'] = 'The attempt to FTP the config file into place failed. Please download the config file and FTP it into place manually.'; + +$lang['Install'] = 'Install'; +$lang['Upgrade'] = 'Upgrade'; + + +$lang['Install_Method'] = 'Choose your installation method'; + +$lang['Install_No_Ext'] = 'The PHP configuration on your server doesn\'t support the database type that you chose'; + +$lang['Install_No_PCRE'] = 'phpBB2 Requires the Perl-Compatible Regular Expressions Module for PHP which your PHP configuration doesn\'t appear to support!'; + +// +// Admin Userlist Start +// +$lang['Userlist'] = 'User list'; +$lang['Userlist_description'] = 'View a complete list of your users and perform various actions on them'; + +$lang['Add_group'] = 'Add to a Group'; +$lang['Add_group_explain'] = 'Select which group to add the selected users to'; + +$lang['Open_close'] = 'Open/Close'; +$lang['Active'] = 'Active'; +$lang['Group'] = 'Group(s)'; +$lang['Rank'] = 'Rank'; +$lang['Last_activity'] = 'Last Activity'; +$lang['Never'] = 'Never'; +$lang['User_manage'] = 'Manage'; +$lang['Find_all_posts'] = 'Find All Posts'; + +$lang['Select_one'] = 'Select One'; +$lang['Ban'] = 'Ban'; +$lang['Activate_deactivate'] = 'Activate/De-activate'; + +$lang['User_id'] = 'User id'; +$lang['User_level'] = 'User Level'; +$lang['Ascending'] = 'Ascending'; +$lang['Descending'] = 'Descending'; +$lang['Show'] = 'Show'; +$lang['All'] = 'All'; + +$lang['Member'] = 'Member'; +$lang['Pending'] = 'Pending'; + +$lang['Confirm_user_ban'] = 'Are you sure you want to ban the selected user(s)?'; +$lang['Confirm_user_deleted'] = 'Are you sure you want to detele the selected user(s)?'; + +$lang['User_status_updated'] = 'User(s) status updated successfully!'; +$lang['User_banned_successfully'] = 'User(s) banned successfully!'; +$lang['User_deleted_successfully'] = 'User(s) deleted successfully!'; +$lang['User_add_group_successfully'] = 'User(s) added to group successfully!'; + +$lang['Click_return_userlist'] = 'Click %shere%s to return to the User List'; +// +// Admin Userlist End +// + +// +// Version Check +// +$lang['Version_up_to_date'] = 'Your installation is up to date, no updates are available for your version of phpBB.'; +$lang['Version_not_up_to_date'] = 'Your installation does not seem to be up to date. Updates are available for your version of phpBB, please visit http://www.phpbb.com/downloads.php to obtain the latest version.'; +$lang['Latest_version_info'] = 'The latest available version is phpBB %s.'; +$lang['Current_version_info'] = 'You are running phpBB %s.'; +$lang['Connect_socket_error'] = 'Unable to open connection to phpBB Server, reported error is:
%s'; +$lang['Socket_functions_disabled'] = 'Unable to use socket functions.'; +$lang['Mailing_list_subscribe_reminder'] = 'For the latest information on updates to phpBB, why not subscribe to our mailing list.'; +$lang['Version_information'] = 'Version Information'; + +// +// That's all Folks! +// ------------------------------------------------- + +?> diff --git a/phpBB2/language/lang_english/lang_bbcode.php b/phpBB2/language/lang_english/lang_bbcode.php new file mode 100644 index 0000000..8ee19b0 --- /dev/null +++ b/phpBB2/language/lang_english/lang_bbcode.php @@ -0,0 +1,75 @@ +
  • To make a piece of text bold enclose it in [b][/b], eg.

    [b]Hello[/b]

    will become Hello
  • For underlining use [u][/u], for example:

    [u]Good Morning[/u]

    becomes Good Morning
  • To italicise text use [i][/i], eg.

    This is [i]Great![/i]

    would give This is Great!
  • "); +$faq[] = array("How to change the text colour or size", "To alter the color or size of your text the following tags can be used. Keep in mind that how the output appears will depend on the viewers browser and system:
    • Changing the colour of text is achieved by wrapping it in [color=][/color]. You can specify either a recognised colour name (eg. red, blue, yellow, etc.) or the hexadecimal triplet alternative, eg. #FFFFFF, #000000. For example, to create red text you could use:

      [color=red]Hello![/color]

      or

      [color=#FF0000]Hello![/color]

      will both output Hello!
    • Changing the text size is achieved in a similar way using [size=][/size]. This tag is dependent on the template you are using but the recommended format is a numerical value representing the text size in pixels, starting at 1 (so tiny you will not see it) through to 29 (very large). For example:

      [size=9]SMALL[/size]

      will generally be SMALL

      whereas:

      [size=24]HUGE![/size]

      will be HUGE!
    "); +$faq[] = array("Can I combine formatting tags?", "Yes, of course you can; for example to get someones attention you may write:

    [size=18][color=red][b]LOOK AT ME![/b][/color][/size]

    this would output LOOK AT ME!

    We don't recommend you output lots of text that looks like this, though! Remember that it is up to you, the poster, to ensure that tags are closed correctly. For example, the following is incorrect:

    [b][u]This is wrong[/b][/u]"); + +$faq[] = array("--","Quoting and outputting fixed-width text"); +$faq[] = array("Quoting text in replies", "There are two ways you can quote text: with a reference or without.
    • When you utilise the Quote function to reply to a post on the board you should notice that the post text is added to the message window enclosed in a [quote=\"\"][/quote] block. This method allows you to quote with a reference to a person or whatever else you choose to put. For example, to quote a piece of text Mr. Blobby wrote, you would enter:

      [quote=\"Mr. Blobby\"]The text Mr. Blobby wrote would go here[/quote]

      The resulting output will automatically add: Mr. Blobby wrote: before the actual text. Remember that you must include the quotation marks \"\" around the name you are quoting -- they are not optional.
    • The second method allows you to blindly quote something. To utilise this enclose the text in [quote][/quote] tags. When you view the message it will simply show: Quote: before the text itself.
    "); +$faq[] = array("Outputting code or fixed width data", "If you want to output a piece of code or in fact anything that requires a fixed width with a Courier-type font, you should enclose the text in [code][/code] tags, eg.

    [code]echo \"This is some code\";[/code]

    All formatting used within [code][/code] tags is retained when you later view it."); + +$faq[] = array("--","Generating lists"); +$faq[] = array("Creating an Un-ordered list", "BBCode supports two types of lists, unordered and ordered. They are essentially the same as their HTML equivalents. An unordered list ouputs each item in your list sequentially one after the other indenting each with a bullet character. To create an unordered list you use [list][/list] and define each item within the list using [*]. For example, to list your favorite colours you could use:

    [list]
    [*]Red
    [*]Blue
    [*]Yellow
    [/list]

    This would generate the following list:
    • Red
    • Blue
    • Yellow
    "); +$faq[] = array("Creating an Ordered list", "The second type of list, an ordered list gives you control over what is output before each item. To create an ordered list you use [list=1][/list] to create a numbered list or alternatively [list=a][/list] for an alphabetical list. As with the unordered list items are specified using [*]. For example:

    [list=1]
    [*]Go to the shops
    [*]Buy a new computer
    [*]Swear at computer when it crashes
    [/list]

    will generate the following:
    1. Go to the shops
    2. Buy a new computer
    3. Swear at computer when it crashes
    Whereas for an alphabetical list you would use:

    [list=a]
    [*]The first possible answer
    [*]The second possible answer
    [*]The third possible answer
    [/list]

    giving
    1. The first possible answer
    2. The second possible answer
    3. The third possible answer
    "); + +$faq[] = array("--", "Creating Links"); +$faq[] = array("Linking to another site", "phpBB BBCode supports a number of ways of creating URIs, Uniform Resource Indicators better known as URLs.
    • The first of these uses the [url=][/url] tag; whatever you type after the = sign will cause the contents of that tag to act as a URL. For example, to link to phpBB.com you could use:

      [url=http://www.phpbb.com/]Visit phpBB![/url]

      This would generate the following link, Visit phpBB! You will notice the link opens in a new window so the user can continue browsing the forums if they wish.
    • If you want the URL itself displayed as the link you can do this by simply using:

      [url]http://www.phpbb.com/[/url]

      This would generate the following link: http://www.phpbb.com/
    • Additionally phpBB features something called Magic Linkswhich will turn any syntatically correct URL into a link without you needing to specify any tags or even the leading http://. For example typing www.phpbb.com into your message will automatically lead to www.phpbb.com being output when you view the message.
    • The same thing applies equally to email addresses; you can either specify an address explicitly, like:

      [email]no.one@domain.adr[/email]

      which will output no.one@domain.adr or you can just type no.one@domain.adr into your message and it will be automatically converted when you view.
    As with all the BBCode tags you can wrap URLs around any of the other tags such as [img][/img] (see next entry), [b][/b], etc. As with the formatting tags it is up to you to ensure the correct open and close order is following. For example:

    [url=http://www.phpbb.com/][img]http://www.phpbb.com/images/phplogo.gif[/url][/img]

    is not correct which may lead to your post being deleted so take care."); + +$faq[] = array("--", "Showing images in posts"); +$faq[] = array("Adding an image to a post", "phpBB BBCode incorporates a tag for including images in your posts. Two very important things to remember when using this tag are: many users do not appreciate lots of images being shown in posts and second, the image you display must already be available on the Internet (it cannot exist only on your computer, for example, unless you run a webserver!). There is currently no way of storing images locally with phpBB (all these issues are expected to be addressed in the next release of phpBB). To display an image, you must surround the URL pointing to the image with [img][/img] tags. For example:

    [img]http://www.phpbb.com/images/phplogo.gif[/img]

    As noted in the URL section above you can wrap an image in a [url][/url] tag if you wish, eg.

    [url=http://www.phpbb.com/][img]http://www.phpbb.com/images/phplogo.gif[/img][/url]

    would generate:

    \"\"
    "); + +$faq[] = array("--", "Other matters"); +$faq[] = array("Can I add my own tags?", "No, I am afraid not directly in phpBB 2.0. We are looking at offering customisable BBCode tags for the next major version."); + +// +// This ends the BBCode guide entries +// + +?> \ No newline at end of file diff --git a/phpBB2/language/lang_english/lang_faq.php b/phpBB2/language/lang_english/lang_faq.php new file mode 100644 index 0000000..608d3f7 --- /dev/null +++ b/phpBB2/language/lang_english/lang_faq.php @@ -0,0 +1,106 @@ +Log me in automatically
    box when you log in, the board will only keep you logged in for a preset time. This prevents misuse of your account by anyone else. To stay logged in, check the box during login. This is not recommended if you access the board from a shared computer, e.g. library, internet cafe, university cluster, etc."); +$faq[] = array("How do I prevent my username from appearing in the online user listings?", "In your profile you will find an option Hide your online status; if you switch this on you'll only appear to board administrators or to yourself. You will be counted as a hidden user."); +$faq[] = array("I've lost my password!", "Don't panic! While your password cannot be retrieved it can be reset. To do this go to the login page and click I've forgotten my password. Follow the instructions and you should be back online in no time."); +$faq[] = array("I registered but cannot log in!", "First check that you are entering the correct username and password. If they are okay then one of two things may have happened: if COPPA support is enabled and you clicked the I am under 13 years old link while registering then you will have to follow the instructions you received. If this is not the case then maybe your account need activating. Some boards will require all new registrations be activated, either by yourself or by the administrator before you can log on. When you registered it would have told you whether activation was required. If you were sent an email then follow the instructions; if you did not receive the email then check that your email address is valid. One reason activation is used is to reduce the possibility of rogue users abusing the board anonymously. If you are sure the email address you used is valid then try contacting the board administrator."); +$faq[] = array("I registered in the past but cannot log in anymore!", "The most likely reasons for this are: you entered an incorrect username or password (check the email you were sent when you first registered) or the administrator has deleted your account for some reason. If it is the latter case then perhaps you did not post anything? It is usual for boards to periodically remove users who have not posted anything so as to reduce the size of the database. Try registering again and get involved in discussions."); + + +$faq[] = array("--","User Preferences and settings"); +$faq[] = array("How do I change my settings?", "All your settings (if you are registered) are stored in the database. To alter them click the Profile link (generally shown at the top of pages but this may not be the case). This will allow you to change all your settings."); +$faq[] = array("The times are not correct!", "The times are almost certainly correct; however, what you may be seeing are times displayed in a timezone different from the one you are in. If this is the case, you should change your profile setting for the timezone to match your particular area, e.g. London, Paris, New York, Sydney, etc. Please note that changing the timezone, like most settings, can only be done by registered users. So if you are not registered, this is a good time to do so, if you pardon the pun!"); +$faq[] = array("I changed the timezone and the time is still wrong!", "If you are sure you have set the timezone correctly and the time is still different, the most likely answer is daylight savings time (or summer time as it is known in the UK and other places). The board is not designed to handle the changeovers between standard and daylight time so during summer months the time may be an hour different from the real local time."); +$faq[] = array("My language is not in the list!", "The most likely reasons for this are either the administrator did not install your language or someone has not translated this board into your language. Try asking the board administrator if they can install the language pack you need or if it does not exist, please feel free to create a new translation. More information can be found at the phpBB Group website (see link at bottom of pages)"); +$faq[] = array("How do I show an image below my username?", "There may be two images below a username when viewing posts. The first is an image associated with your rank; generally these take the form of stars or blocks indicating how many posts you have made or your status on the forums. Below this may be a larger image known as an avatar; this is generally unique or personal to each user. It is up to the board administrator to enable avatars and they have a choice over the way in which avatars can be made available. If you are unable to use avatars then this is the decision of the board admin and you should ask them their reasons (we're sure they'll be good!)"); +$faq[] = array("How do I change my rank?", "In general you cannot directly change the wording of any rank (ranks appear below your username in topics and on your profile depending on the style used). Most boards use ranks to indicate the number of posts you have made and to identify certain users. For example, moderators and administrators may have a special rank. Please do not abuse the board by posting unnecessarily just to increase your rank -- you will probably find the moderator or administrator will simply lower your post count."); +$faq[] = array("When I click the email link for a user it asks me to log in.", "Sorry, but only registered users can send email to people via the built-in email form (if the admin has enabled this feature). This is to prevent malicious use of the email system by anonymous users."); + + +$faq[] = array("--","Posting Issues"); +$faq[] = array("How do I post a topic in a forum?", "Easy -- click the relevant button on either the forum or topic screens. You may need to register before you can post a message. The facilities available to you are listed at the bottom of the forum and topic screens (the You can post new topics, You can vote in polls, etc. list)"); +$faq[] = array("How do I edit or delete a post?", "Unless you are the board admin or forum moderator you can only edit or delete your own posts. You can edit a post (sometimes for only a limited time after it was made) by clicking the edit button for the relevant post. If someone has already replied to the post, you will find a small piece of text output below the post when you return to the topic that lists the number of times you edited it. This will only appear if no one has replied; it also will not appear if moderators or administrators edit the post (they should leave a message saying what they altered and why). Please note that normal users cannot delete a post once someone has replied."); +$faq[] = array("How do I add a signature to my post?", "To add a signature to a post you must first create one; this is done via your profile. Once created you can check the Add Signature box on the posting form to add your signature. You can also add a signature by default to all your posts by checking the appropriate radio box in your profile. You can still prevent a signature being added to individual posts by un-checking the add signature box on the posting form."); +$faq[] = array("How do I create a poll?", "Creating a poll is easy -- when you post a new topic (or edit the first post of a topic, if you have permission) you should see a Add Poll form below the main posting box. If you cannot see this then you probably do not have rights to create polls. You should enter a title for the poll and then at least two options -- to set an option type in the poll question and click the Add option button. You can also set a time limit for the poll, 0 being an infinite amount. There will be a limit to the number of options you can list, which is set by the board administrator"); +$faq[] = array("How do I edit or delete a poll?", "As with posts, polls can only be edited by the original poster, a moderator, or board administrator. To edit a poll, click the first post in the topic, which always has the poll associated with it. If no one has cast a vote then users can delete the poll or edit any poll option. However, if people have already placed votes only moderators or administrators can edit or delete it; this is to prevent people rigging polls by changing options mid-way through a poll"); +$faq[] = array("Why can't I access a forum?", "Some forums may be limited to certain users or groups. To view, read, post, etc. you may need special authorization which only the forum moderator and board administrator can grant, so you should contact them."); +$faq[] = array("Why can't I vote in polls?", "Only registered users can vote in polls so as to prevent spoofing of results. If you have registered and still cannot vote then you probably do not have appropriate access rights."); + + +$faq[] = array("--","Formatting and Topic Types"); +$faq[] = array("What is BBCode?", "BBCode is a special implementation of HTML. Whether you can use BBCode is determined by the administrator. You can also disable it on a per post basis from the posting form. BBCode itself is similar in style to HTML: tags are enclosed in square braces [ and ] rather than < and > and it offers greater control over what and how something is displayed. For more information on BBCode see the guide which can be accessed from the posting page."); +$faq[] = array("Can I use HTML?", "That depends on whether the administrator allows you to; they have complete control over it. If you are allowed to use it, you will probably find only certain tags work. This is a safety feature to prevent people from abusing the board by using tags which may destroy the layout or cause other problems. If HTML is enabled you can disable it on a per post basis from the posting form."); +$faq[] = array("What are Smileys?", "Smileys, or Emoticons, are small graphical images which can be used to express some feeling using a short code, e.g. :) means happy, :( means sad. The full list of emoticons can be seen via the posting form. Try not to overuse smileys, though, as they can quickly render a post unreadable and a moderator may decide to edit them out or remove the post altogether."); +$faq[] = array("Can I post Images?", "Images can indeed be shown in your posts. However, there is no facility at present for uploading images directly to this board. Therefore you must link to an image stored on a publicly accessible web server, e.g. http://www.some-unknown-place.net/my-picture.gif. You cannot link to pictures stored on your own PC (unless it is a publicly accessible server) nor to images stored behind authentication mechanisms such as Hotmail or Yahoo mailboxes, password-protected sites, etc. To display the image use either the BBCode [img] tag or appropriate HTML (if allowed)."); +$faq[] = array("What are Announcements?", "Announcements often contain important information and you should read them as soon as possible. Announcements appear at the top of every page in the forum to which they are posted. Whether or not you can post an announcement depends on the permissions required, which are set by the administrator."); +$faq[] = array("What are Sticky topics?", "Sticky topics appear below any announcements in viewforum and only on the first page. They are often quite important so you should read them where possible. As with announcements the board administrator determines what permissions are required to post sticky topics in each forum."); +$faq[] = array("What are Locked topics?", "Locked topics are set this way by either the forum moderator or board administrator. You cannot reply to locked topics and any poll contained inside is automatically ended. Topics may be locked for many reasons."); + + +$faq[] = array("--","User Levels and Groups"); +$faq[] = array("What are Administrators?", "Administrators are people assigned the highest level of control over the entire board. These people can control all facets of board operation which include setting permissions, banning users, creating usergroups or moderators, etc. They also have full moderator capabilities in all the forums."); +$faq[] = array("What are Moderators?", "Moderators are individuals (or groups of individuals) whose job it is to look after the running of the forums from day to day. They have the power to edit or delete posts and lock, unlock, move, delete and split topics in the forum they moderate. Generally moderators are there to prevent people going off-topic or posting abusive or offensive material."); +$faq[] = array("What are Usergroups?", "Usergroups are a way in which board administrators can group users. Each user can belong to several groups (this differs from most other boards) and each group can be assigned individual access rights. This makes it easy for administrators to set up several users as moderators of a forum, or to give them access to a private forum, etc."); +$faq[] = array("How do I join a Usergroup?", "To join a usergroup click the usergroup link on the page header (dependent on template design) and you can then view all usergroups. Not all groups are open access -- some are closed and some may even have hidden memberships. If the board is open then you can request to join it by clicking the appropriate button. The user group moderator will need to approve your request; they may ask why you want to join the group. Please do not pester a group moderator if they turn your request down -- they will have their reasons."); +$faq[] = array("How do I become a Usergroup Moderator?", "Usergroups are initially created by the board administrator who also assigns a board moderator. If you are interested in creating a usergroup then your first point of contact should be the administrator, so try dropping them a private message."); + + +$faq[] = array("--","Private Messaging"); +$faq[] = array("I cannot send private messages!", "There are three reasons for this; you are not registered and/or not logged on, the board administrator has disabled private messaging for the entire board, or the board administrator has prevented you individually from sending messages. If it is the latter case you should try asking the administrator why."); +$faq[] = array("I keep getting unwanted private messages!", "In the future we will be adding an ignore list to the private messaging system. For now, though, if you keep receiving unwanted private messages from someone, inform the board administrator -- they have the power to prevent a user from sending private messages at all."); +$faq[] = array("I have received a spamming or abusive email from someone on this board!", "We are sorry to hear that. The email form feature of this board includes safeguards to try to track users who send such posts. You should email the board administrator with a full copy of the email you received and it is very important this include the headers (these list details of the user that sent the email). They can then take action."); + +// +// These entries should remain in all languages and for all modifications +// +$faq[] = array("--","phpBB 2 Issues"); +$faq[] = array("Who wrote this bulletin board?", "This software (in its unmodified form) is produced, released and is copyrighted phpBB Group. It is made available under the GNU General Public License and may be freely distributed; see link for more details"); +$faq[] = array("Why isn't X feature available?", "This software was written by and licensed through phpBB Group. If you believe a feature needs to be added then please visit the phpbb.com website and see what the phpBB Group has to say. Please do not post feature requests to the board at phpbb.com, as the Group uses sourceforge to handle tasking of new features. Please read through the forums and see what, if any, our position may already be for features and then follow the procedure given there."); +$faq[] = array("Whom do I contact about abusive and/or legal matters related to this board?", "You should contact the administrator of this board. If you cannot find who that is, you should first contact one of the forum moderators and ask them who you should in turn contact. If still get no response you should contact the owner of the domain (do a whois lookup) or, if this is running on a free service (e.g. yahoo, free.fr, f2s.com, etc.), the management or abuse department of that service. Please note that phpBB Group has absolutely no control and cannot in any way be held liable over how, where or by whom this board is used. It is absolutely pointless contacting phpBB Group in relation to any legal (cease and desist, liable, defamatory comment, etc.) matter not directly related to the phpbb.com website or the discrete software of phpBB itself. If you do email phpBB Group about any third party use of this software then you should expect a terse response or no response at all."); + +// +// This ends the FAQ entries +// + +?> \ No newline at end of file diff --git a/phpBB2/language/lang_english/lang_main.php b/phpBB2/language/lang_english/lang_main.php new file mode 100644 index 0000000..98f7c37 --- /dev/null +++ b/phpBB2/language/lang_english/lang_main.php @@ -0,0 +1,1027 @@ + $lang['message'] = 'text'; +// +// You should also try to set a locale and a character encoding (plus direction). The encoding and direction +// will be sent to the template. The locale may or may not work, it's dependent on OS support and the syntax +// varies ... give it your best guess! +// + +$lang['ENCODING'] = 'iso-8859-1'; +$lang['DIRECTION'] = 'ltr'; +$lang['LEFT'] = 'left'; +$lang['RIGHT'] = 'right'; +$lang['DATE_FORMAT'] = 'd M Y'; // This should be changed to the default date format for your language, php date() format + +// This is optional, if you would like a _SHORT_ message output +// along with our copyright message indicating you are the translator +// please add it here. +// $lang['TRANSLATION'] = ''; + +// +// Common, these terms are used +// extensively on several pages +// +$lang['Forum'] = 'Forum'; +$lang['Category'] = 'Category'; +$lang['Topic'] = 'Topic'; +$lang['Topics'] = 'Topics'; +$lang['Replies'] = 'Replies'; +$lang['Views'] = 'Views'; +$lang['Post'] = 'Post'; +$lang['Posts'] = 'Posts'; +$lang['Posted'] = 'Posted'; +$lang['Username'] = 'Username'; +$lang['Password'] = 'Password'; +$lang['Email'] = 'Email'; +$lang['Poster'] = 'Poster'; +$lang['Author'] = 'Author'; +$lang['Time'] = 'Time'; +$lang['Hours'] = 'Hours'; +$lang['Message'] = 'Message'; + +$lang['1_Day'] = '1 Day'; +$lang['7_Days'] = '7 Days'; +$lang['2_Weeks'] = '2 Weeks'; +$lang['1_Month'] = '1 Month'; +$lang['3_Months'] = '3 Months'; +$lang['6_Months'] = '6 Months'; +$lang['1_Year'] = '1 Year'; + +$lang['Go'] = 'Go'; +$lang['Jump_to'] = 'Jump to'; +$lang['Submit'] = 'Submit'; +$lang['Reset'] = 'Reset'; +$lang['Cancel'] = 'Cancel'; +$lang['Preview'] = 'Preview'; +$lang['Confirm'] = 'Confirm'; +$lang['Spellcheck'] = 'Spellcheck'; +$lang['Yes'] = 'Yes'; +$lang['No'] = 'No'; +$lang['Enabled'] = 'Enabled'; +$lang['Disabled'] = 'Disabled'; +$lang['Error'] = 'Error'; + +$lang['Next'] = 'Next'; +$lang['Previous'] = 'Previous'; +$lang['Goto_page'] = 'Goto page'; +$lang['Joined'] = 'Joined'; +$lang['IP_Address'] = 'IP Address'; + +$lang['Select_forum'] = 'Select a forum'; +$lang['View_latest_post'] = 'View latest post'; +$lang['View_newest_post'] = 'View newest post'; +$lang['Page_of'] = 'Page %d of %d'; // Replaces with: Page 1 of 2 for example + +$lang['ICQ'] = 'ICQ Number'; +$lang['AIM'] = 'AIM Address'; +$lang['MSNM'] = 'MSN Messenger'; +$lang['YIM'] = 'Yahoo Messenger'; + +$lang['Forum_Index'] = '%s Forum Index'; // eg. sitename Forum Index, %s can be removed if you prefer + +$lang['Post_new_topic'] = 'Post new topic'; +$lang['Reply_to_topic'] = 'Reply to topic'; +$lang['Reply_with_quote'] = 'Reply with quote'; + +$lang['Click_return_topic'] = 'Click %sHere%s to return to the topic'; // %s's here are for uris, do not remove! +$lang['Click_return_login'] = 'Click %sHere%s to try again'; +$lang['Click_return_forum'] = 'Click %sHere%s to return to the forum'; +$lang['Click_view_message'] = 'Click %sHere%s to view your message'; +$lang['Click_return_modcp'] = 'Click %sHere%s to return to the Moderator Control Panel'; +$lang['Click_return_group'] = 'Click %sHere%s to return to group information'; + +$lang['Admin_panel'] = 'Go to Administration Panel'; + +$lang['Board_disable'] = 'Gone surfing. Try again in 2 weeks! Masu.'; + + +// +// Global Header strings +// +$lang['Registered_users'] = 'Registered Users:'; +$lang['Browsing_forum'] = 'Users browsing this forum:'; +$lang['Online_users_zero_total'] = 'In total there are 0 users online :: '; +$lang['Online_users_total'] = 'In total there are %d users online :: '; +$lang['Online_user_total'] = 'In total there is %d user online :: '; +$lang['Reg_users_zero_total'] = '0 Registered, '; +$lang['Reg_users_total'] = '%d Registered, '; +$lang['Reg_user_total'] = '%d Registered, '; +$lang['Hidden_users_zero_total'] = '0 Hidden and '; +$lang['Hidden_user_total'] = '%d Hidden and '; +$lang['Hidden_users_total'] = '%d Hidden and '; +$lang['Guest_users_zero_total'] = '0 Guests'; +$lang['Guest_users_total'] = '%d Guests'; +$lang['Guest_user_total'] = '%d Guest'; +$lang['Record_online_users'] = 'Most users ever online was %s on %s'; // first %s = number of users, second %s is the date. + +$lang['Admin_online_color'] = '%sAdministrator%s'; +$lang['Mod_online_color'] = '%sModerator%s'; + +$lang['You_last_visit'] = 'You last visited on %s'; // %s replaced by date/time +$lang['Current_time'] = 'The time now is %s'; // %s replaced by time + +$lang['Search_new'] = 'View posts since last visit'; +$lang['Search_your_posts'] = 'View your posts'; +$lang['Search_unanswered'] = 'View unanswered posts'; + +$lang['Register'] = 'Register'; +$lang['Profile'] = 'Profile'; +$lang['Edit_profile'] = 'Edit your profile'; +$lang['Search'] = 'Search'; +$lang['Memberlist'] = 'Memberlist'; +$lang['FAQ'] = 'FAQ'; +$lang['BBCode_guide'] = 'BBCode Guide'; +$lang['Usergroups'] = 'Usergroups'; +$lang['Last_Post'] = 'Last Post'; +$lang['Moderator'] = 'Moderator'; +$lang['Moderators'] = 'Moderators'; + + +// +// Stats block text +// +$lang['Posted_articles_zero_total'] = 'Our users have posted a total of 0 articles'; // Number of posts +$lang['Posted_articles_total'] = 'Our users have posted a total of %d articles'; // Number of posts +$lang['Posted_article_total'] = 'Our users have posted a total of %d article'; // Number of posts +$lang['Registered_users_zero_total'] = 'We have 0 registered users'; // # registered users +$lang['Registered_users_total'] = 'We have %d registered users'; // # registered users +$lang['Registered_user_total'] = 'We have %d registered user'; // # registered users +$lang['Newest_user'] = 'The newest registered user is %s%s%s'; // a href, username, /a + +$lang['No_new_posts_last_visit'] = 'No new posts since your last visit'; +$lang['No_new_posts'] = 'No new posts'; +$lang['New_posts'] = 'New posts'; +$lang['New_post'] = 'New post'; +$lang['No_new_posts_hot'] = 'No new posts [ Popular ]'; +$lang['New_posts_hot'] = 'New posts [ Popular ]'; +$lang['No_new_posts_locked'] = 'No new posts [ Locked ]'; +$lang['New_posts_locked'] = 'New posts [ Locked ]'; +$lang['Forum_is_locked'] = 'Forum is locked'; + + +// +// Login +// +$lang['Enter_password'] = 'Please enter your username and password to log in.'; +$lang['Login'] = 'Log in'; +$lang['Logout'] = 'Log out'; + +$lang['Forgotten_password'] = 'I forgot my password'; + +$lang['Log_me_in'] = 'Log me on automatically each visit'; + +$lang['Error_login'] = 'You have specified an incorrect or inactive username, or an invalid password.'; + + +// +// Index page +// +$lang['Index'] = 'Index'; +$lang['No_Posts'] = 'No Posts'; +$lang['No_forums'] = 'This board has no forums'; + +$lang['Private_Message'] = 'Private Message'; +$lang['Private_Messages'] = 'Private Messages'; +$lang['Who_is_Online'] = 'Who is Online'; + +$lang['Mark_all_forums'] = 'Mark all forums read'; +$lang['Forums_marked_read'] = 'All forums have been marked read'; + + +// +// Viewforum +// +$lang['View_forum'] = 'View Forum'; + +$lang['Forum_not_exist'] = 'The forum you selected does not exist.'; +$lang['Reached_on_error'] = 'You have reached this page in error.'; + +$lang['Display_topics'] = 'Display topics from previous'; +$lang['All_Topics'] = 'All Topics'; + +$lang['Topic_Announcement'] = 'Announcement:'; +$lang['Topic_Sticky'] = 'Sticky:'; +$lang['Topic_Moved'] = 'Moved:'; +$lang['Topic_Poll'] = '[ Poll ]'; + +$lang['Mark_all_topics'] = 'Mark all topics read'; +$lang['Topics_marked_read'] = 'The topics for this forum have now been marked read'; + +$lang['Rules_post_can'] = 'You can post new topics in this forum'; +$lang['Rules_post_cannot'] = 'You cannot post new topics in this forum'; +$lang['Rules_reply_can'] = 'You can reply to topics in this forum'; +$lang['Rules_reply_cannot'] = 'You cannot reply to topics in this forum'; +$lang['Rules_edit_can'] = 'You can edit your posts in this forum'; +$lang['Rules_edit_cannot'] = 'You cannot edit your posts in this forum'; +$lang['Rules_delete_can'] = 'You can delete your posts in this forum'; +$lang['Rules_delete_cannot'] = 'You cannot delete your posts in this forum'; +$lang['Rules_vote_can'] = 'You can vote in polls in this forum'; +$lang['Rules_vote_cannot'] = 'You cannot vote in polls in this forum'; +$lang['Rules_moderate'] = 'You can %smoderate this forum%s'; // %s replaced by a href links, do not remove! + +$lang['No_topics_post_one'] = 'There are no posts in this forum.
    Click on the Post New Topic link on this page to post one.'; + + +// +// Viewtopic +// +$lang['View_topic'] = 'View topic'; + +$lang['Guest'] = 'Guest'; +$lang['Post_subject'] = 'Post subject'; +$lang['View_next_topic'] = 'View next topic'; +$lang['View_previous_topic'] = 'View previous topic'; +$lang['Submit_vote'] = 'Submit Vote'; +$lang['View_results'] = 'View Results'; + +$lang['No_newer_topics'] = 'There are no newer topics in this forum'; +$lang['No_older_topics'] = 'There are no older topics in this forum'; +$lang['Topic_post_not_exist'] = 'The topic or post you requested does not exist'; +$lang['No_posts_topic'] = 'No posts exist for this topic'; + +$lang['Display_posts'] = 'Display posts from previous'; +$lang['All_Posts'] = 'All Posts'; +$lang['Newest_First'] = 'Newest First'; +$lang['Oldest_First'] = 'Oldest First'; + +$lang['Back_to_top'] = 'Back to top'; + +$lang['Read_profile'] = 'View user\'s profile'; +$lang['Visit_website'] = 'Visit poster\'s website'; +$lang['ICQ_status'] = 'ICQ Status'; +$lang['Edit_delete_post'] = 'Edit/Delete this post'; +$lang['View_IP'] = 'View IP address of poster'; +$lang['Delete_post'] = 'Delete this post'; + +$lang['wrote'] = 'wrote'; // proceeds the username and is followed by the quoted text +$lang['Quote'] = 'Quote'; // comes before bbcode quote output. +$lang['Code'] = 'Code'; // comes before bbcode code output. + +$lang['Edited_time_total'] = 'Last edited by %s on %s; edited %d time in total'; // Last edited by me on 12 Oct 2001; edited 1 time in total +$lang['Edited_times_total'] = 'Last edited by %s on %s; edited %d times in total'; // Last edited by me on 12 Oct 2001; edited 2 times in total + +$lang['Lock_topic'] = 'Lock this topic'; +$lang['Unlock_topic'] = 'Unlock this topic'; +$lang['Move_topic'] = 'Move this topic'; +$lang['Delete_topic'] = 'Delete this topic'; +$lang['Split_topic'] = 'Split this topic'; + +$lang['Stop_watching_topic'] = 'Stop watching this topic'; +$lang['Start_watching_topic'] = 'Watch this topic for replies'; +$lang['No_longer_watching'] = 'You are no longer watching this topic'; +$lang['You_are_watching'] = 'You are now watching this topic'; + +$lang['Total_votes'] = 'Total Votes'; + +// +// Posting/Replying (Not private messaging!) +// +$lang['Message_body'] = 'Message body'; +$lang['Topic_review'] = 'Topic review'; + +$lang['No_post_mode'] = 'No post mode specified'; // If posting.php is called without a mode (newtopic/reply/delete/etc, shouldn't be shown normaly) + +$lang['Post_a_new_topic'] = 'Post a new topic'; +$lang['Post_a_reply'] = 'Post a reply'; +$lang['Post_topic_as'] = 'Post topic as'; +$lang['Edit_Post'] = 'Edit post'; +$lang['Options'] = 'Options'; + +$lang['Post_Announcement'] = 'Announcement'; +$lang['Post_Sticky'] = 'Sticky'; +$lang['Post_Normal'] = 'Normal'; + +$lang['Confirm_delete'] = 'Are you sure you want to delete this post?'; +$lang['Confirm_delete_poll'] = 'Are you sure you want to delete this poll?'; + +$lang['Flood_Error'] = 'You cannot make another post so soon after your last; please try again in a short while.'; +$lang['Empty_subject'] = 'You must specify a subject when posting a new topic.'; +$lang['Empty_message'] = 'You must enter a message when posting.'; +$lang['Forum_locked'] = 'This forum is locked: you cannot post, reply to, or edit topics.'; +$lang['Topic_locked'] = 'This topic is locked: you cannot edit posts or make replies.'; +$lang['No_post_id'] = 'You must select a post to edit'; +$lang['No_topic_id'] = 'You must select a topic to reply to'; +$lang['No_valid_mode'] = 'You can only post, reply, edit, or quote messages. Please return and try again.'; +$lang['No_such_post'] = 'There is no such post. Please return and try again.'; +$lang['Edit_own_posts'] = 'Sorry, but you can only edit your own posts.'; +$lang['Delete_own_posts'] = 'Sorry, but you can only delete your own posts.'; +$lang['Cannot_delete_replied'] = 'Sorry, but you may not delete posts that have been replied to.'; +$lang['Cannot_delete_poll'] = 'Sorry, but you cannot delete an active poll.'; +$lang['Empty_poll_title'] = 'You must enter a title for your poll.'; +$lang['To_few_poll_options'] = 'You must enter at least two poll options.'; +$lang['To_many_poll_options'] = 'You have tried to enter too many poll options.'; +$lang['Post_has_no_poll'] = 'This post has no poll.'; +$lang['Already_voted'] = 'You have already voted in this poll.'; +$lang['No_vote_option'] = 'You must specify an option when voting.'; + +$lang['Add_poll'] = 'Add a Poll'; +$lang['Add_poll_explain'] = 'If you do not want to add a poll to your topic, leave the fields blank.'; +$lang['Poll_question'] = 'Poll question'; +$lang['Poll_option'] = 'Poll option'; +$lang['Add_option'] = 'Add option'; +$lang['Update'] = 'Update'; +$lang['Delete'] = 'Delete'; +$lang['Poll_for'] = 'Run poll for'; +$lang['Days'] = 'Days'; // This is used for the Run poll for ... Days + in admin_forums for pruning +$lang['Poll_for_explain'] = '[ Enter 0 or leave blank for a never-ending poll ]'; +$lang['Delete_poll'] = 'Delete Poll'; + +$lang['Disable_HTML_post'] = 'Disable HTML in this post'; +$lang['Disable_BBCode_post'] = 'Disable BBCode in this post'; +$lang['Disable_Smilies_post'] = 'Disable Smilies in this post'; + +$lang['HTML_is_ON'] = 'HTML is ON'; +$lang['HTML_is_OFF'] = 'HTML is OFF'; +$lang['BBCode_is_ON'] = '%sBBCode%s is ON'; // %s are replaced with URI pointing to FAQ +$lang['BBCode_is_OFF'] = '%sBBCode%s is OFF'; +$lang['Smilies_are_ON'] = 'Smilies are ON'; +$lang['Smilies_are_OFF'] = 'Smilies are OFF'; + +$lang['Attach_signature'] = 'Attach signature (signatures can be changed in profile)'; +$lang['Notify'] = 'Notify me when a reply is posted'; + +$lang['Stored'] = 'Your message has been entered successfully.'; +$lang['Deleted'] = 'Your message has been deleted successfully.'; +$lang['Poll_delete'] = 'Your poll has been deleted successfully.'; +$lang['Vote_cast'] = 'Your vote has been cast.'; + +$lang['Topic_reply_notification'] = 'Topic Reply Notification'; + +$lang['bbcode_b_help'] = 'Bold text: [b]text[/b] (alt+b)'; +$lang['bbcode_i_help'] = 'Italic text: [i]text[/i] (alt+i)'; +$lang['bbcode_u_help'] = 'Underline text: [u]text[/u] (alt+u)'; +$lang['bbcode_q_help'] = 'Quote text: [quote]text[/quote] (alt+q)'; +$lang['bbcode_c_help'] = 'Code display: [code]code[/code] (alt+c)'; +$lang['bbcode_l_help'] = 'List: [list]text[/list] (alt+l)'; +$lang['bbcode_o_help'] = 'Ordered list: [list=]text[/list] (alt+o)'; +$lang['bbcode_p_help'] = 'Insert image: [img]http://image_url[/img] (alt+p)'; +$lang['bbcode_w_help'] = 'Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url] (alt+w)'; +$lang['bbcode_a_help'] = 'Close all open bbCode tags'; +$lang['bbcode_s_help'] = 'Font color: [color=red]text[/color] Tip: you can also use color=#FF0000'; +$lang['bbcode_f_help'] = 'Font size: [size=x-small]small text[/size]'; + +$lang['Emoticons'] = 'Emoticons'; +$lang['More_emoticons'] = 'View more Emoticons'; + +$lang['Font_color'] = 'Font colour'; +$lang['color_default'] = 'Default'; +$lang['color_dark_red'] = 'Dark Red'; +$lang['color_red'] = 'Red'; +$lang['color_orange'] = 'Orange'; +$lang['color_brown'] = 'Brown'; +$lang['color_yellow'] = 'Yellow'; +$lang['color_green'] = 'Green'; +$lang['color_olive'] = 'Olive'; +$lang['color_cyan'] = 'Cyan'; +$lang['color_blue'] = 'Blue'; +$lang['color_dark_blue'] = 'Dark Blue'; +$lang['color_indigo'] = 'Indigo'; +$lang['color_violet'] = 'Violet'; +$lang['color_white'] = 'White'; +$lang['color_black'] = 'Black'; + +$lang['Font_size'] = 'Font size'; +$lang['font_tiny'] = 'Tiny'; +$lang['font_small'] = 'Small'; +$lang['font_normal'] = 'Normal'; +$lang['font_large'] = 'Large'; +$lang['font_huge'] = 'Huge'; + +$lang['Close_Tags'] = 'Close Tags'; +$lang['Styles_tip'] = 'Tip: Styles can be applied quickly to selected text.'; + + +// +// Private Messaging +// +$lang['Private_Messaging'] = 'Private Messaging'; + +$lang['Login_check_pm'] = 'Log in to check your private messages'; +$lang['New_pms'] = 'You have %d new messages'; // You have 2 new messages +$lang['New_pm'] = 'You have %d new message'; // You have 1 new message +$lang['No_new_pm'] = 'You have no new messages'; +$lang['Unread_pms'] = 'You have %d unread messages'; +$lang['Unread_pm'] = 'You have %d unread message'; +$lang['No_unread_pm'] = 'You have no unread messages'; +$lang['You_new_pm'] = 'A new private message is waiting for you in your Inbox'; +$lang['You_new_pms'] = 'New private messages are waiting for you in your Inbox'; +$lang['You_no_new_pm'] = 'No new private messages are waiting for you'; + +$lang['Unread_message'] = 'Unread message'; +$lang['Read_message'] = 'Read message'; + +$lang['Read_pm'] = 'Read message'; +$lang['Post_new_pm'] = 'Post message'; +$lang['Post_reply_pm'] = 'Reply to message'; +$lang['Post_quote_pm'] = 'Quote message'; +$lang['Edit_pm'] = 'Edit message'; + +$lang['Inbox'] = 'Inbox'; +$lang['Outbox'] = 'Outbox'; +$lang['Savebox'] = 'Savebox'; +$lang['Sentbox'] = 'Sentbox'; +$lang['Flag'] = 'Flag'; +$lang['Subject'] = 'Subject'; +$lang['From'] = 'From'; +$lang['To'] = 'To'; +$lang['Date'] = 'Date'; +$lang['Mark'] = 'Mark'; +$lang['Sent'] = 'Sent'; +$lang['Saved'] = 'Saved'; +$lang['Delete_marked'] = 'Delete Marked'; +$lang['Delete_all'] = 'Delete All'; +$lang['Save_marked'] = 'Save Marked'; +$lang['Save_message'] = 'Save Message'; +$lang['Delete_message'] = 'Delete Message'; + +$lang['Display_messages'] = 'Display messages from previous'; // Followed by number of days/weeks/months +$lang['All_Messages'] = 'All Messages'; + +$lang['No_messages_folder'] = 'You have no messages in this folder'; + +$lang['PM_disabled'] = 'Private messaging has been disabled on this board.'; +$lang['Cannot_send_privmsg'] = 'Sorry, but the administrator has prevented you from sending private messages.'; +$lang['No_to_user'] = 'You must specify a username to whom to send this message.'; +$lang['No_such_user'] = 'Sorry, but no such user exists.'; + +$lang['Disable_HTML_pm'] = 'Disable HTML in this message'; +$lang['Disable_BBCode_pm'] = 'Disable BBCode in this message'; +$lang['Disable_Smilies_pm'] = 'Disable Smilies in this message'; + +$lang['Message_sent'] = 'Your message has been sent.'; + +$lang['Click_return_inbox'] = 'Click %sHere%s to return to your Inbox'; +$lang['Click_return_index'] = 'Click %sHere%s to return to the Index'; + +$lang['Send_a_new_message'] = 'Send a new private message'; +$lang['Send_a_reply'] = 'Reply to a private message'; +$lang['Edit_message'] = 'Edit private message'; + +$lang['Notification_subject'] = 'New Private Message has arrived!'; + +$lang['Find_username'] = 'Find a username'; +$lang['Find'] = 'Find'; +$lang['No_match'] = 'No matches found.'; + +$lang['No_post_id'] = 'No post ID was specified'; +$lang['No_such_folder'] = 'No such folder exists'; +$lang['No_folder'] = 'No folder specified'; + +$lang['Mark_all'] = 'Mark all'; +$lang['Unmark_all'] = 'Unmark all'; + +$lang['Confirm_delete_pm'] = 'Are you sure you want to delete this message?'; +$lang['Confirm_delete_pms'] = 'Are you sure you want to delete these messages?'; + +$lang['Inbox_size'] = 'Your Inbox is %d%% full'; // eg. Your Inbox is 50% full +$lang['Sentbox_size'] = 'Your Sentbox is %d%% full'; +$lang['Savebox_size'] = 'Your Savebox is %d%% full'; + +$lang['Click_view_privmsg'] = 'Click %sHere%s to visit your Inbox'; + + +// +// Profiles/Registration +// +$lang['Viewing_user_profile'] = 'Viewing profile :: %s'; // %s is username +$lang['About_user'] = 'All about %s'; // %s is username + +$lang['Preferences'] = 'Preferences'; +$lang['Items_required'] = 'Items marked with a * are required unless stated otherwise.'; +$lang['Registration_info'] = 'Registration Information'; +$lang['Profile_info'] = 'Profile Information'; +$lang['Profile_info_warn'] = 'This information will be publicly viewable'; +$lang['Avatar_panel'] = 'Avatar control panel'; +$lang['Avatar_gallery'] = 'Avatar gallery'; + +$lang['Website'] = 'Website'; +$lang['Location'] = 'Location'; +$lang['Contact'] = 'Contact'; +$lang['Email_address'] = 'E-mail address'; +$lang['Send_private_message'] = 'Send private message'; +$lang['Hidden_email'] = '[ Hidden ]'; +$lang['Interests'] = 'Interests'; +$lang['Occupation'] = 'Occupation'; +$lang['Poster_rank'] = 'Poster rank'; + +$lang['Total_posts'] = 'Total posts'; +$lang['User_post_pct_stats'] = '%.2f%% of total'; // 1.25% of total +$lang['User_post_day_stats'] = '%.2f posts per day'; // 1.5 posts per day +$lang['Search_user_posts'] = 'Find all posts by %s'; // Find all posts by username + +$lang['No_user_id_specified'] = 'Sorry, but that user does not exist.'; +$lang['Wrong_Profile'] = 'You cannot modify a profile that is not your own.'; + +$lang['Only_one_avatar'] = 'Only one type of avatar can be specified'; +$lang['File_no_data'] = 'The file at the URL you gave contains no data'; +$lang['No_connection_URL'] = 'A connection could not be made to the URL you gave'; +$lang['Incomplete_URL'] = 'The URL you entered is incomplete'; +$lang['Wrong_remote_avatar_format'] = 'The URL of the remote avatar is not valid'; +$lang['No_send_account_inactive'] = 'Sorry, but your password cannot be retrieved because your account is currently inactive. Please contact the forum administrator for more information.'; + +$lang['Always_smile'] = 'Always enable Smilies'; +$lang['Always_html'] = 'Always allow HTML'; +$lang['Always_bbcode'] = 'Always allow BBCode'; +$lang['Always_add_sig'] = 'Always attach my signature'; +$lang['Always_notify'] = 'Always notify me of replies'; +$lang['Always_notify_explain'] = 'Sends an e-mail when someone replies to a topic you have posted in. This can be changed whenever you post.'; + +$lang['Board_style'] = 'Board Style'; +$lang['Board_lang'] = 'Board Language'; +$lang['No_themes'] = 'No Themes In database'; +$lang['Timezone'] = 'Timezone'; +$lang['Date_format'] = 'Date format'; +$lang['Date_format_explain'] = 'The syntax used is identical to the PHP date() function.'; +$lang['Signature'] = 'Signature'; +$lang['Signature_explain'] = 'This is a block of text that can be added to posts you make. There is a %d character limit'; +$lang['Public_view_email'] = 'Always show my e-mail address'; + +$lang['Current_password'] = 'Current password'; +$lang['New_password'] = 'New password'; +$lang['Confirm_password'] = 'Confirm password'; +$lang['Confirm_password_explain'] = 'You must confirm your current password if you wish to change it or alter your e-mail address'; +$lang['password_if_changed'] = 'You only need to supply a password if you want to change it'; +$lang['password_confirm_if_changed'] = 'You only need to confirm your password if you changed it above'; + +$lang['Avatar'] = 'Avatar'; +$lang['Avatar_explain'] = 'Displays a small graphic image below your details in posts. Only one image can be displayed at a time, its width can be no greater than %d pixels, the height no greater than %d pixels, and the file size no more than %d KB.'; +$lang['Upload_Avatar_file'] = 'Upload Avatar from your machine'; +$lang['Upload_Avatar_URL'] = 'Upload Avatar from a URL'; +$lang['Upload_Avatar_URL_explain'] = 'Enter the URL of the location containing the Avatar image, it will be copied to this site.'; +$lang['Pick_local_Avatar'] = 'Select Avatar from the gallery'; +$lang['Link_remote_Avatar'] = 'Link to off-site Avatar'; +$lang['Link_remote_Avatar_explain'] = 'Enter the URL of the location containing the Avatar image you wish to link to.'; +$lang['Avatar_URL'] = 'URL of Avatar Image'; +$lang['Select_from_gallery'] = 'Select Avatar from gallery'; +$lang['View_avatar_gallery'] = 'Show gallery'; + +$lang['Select_avatar'] = 'Select avatar'; +$lang['Return_profile'] = 'Cancel avatar'; +$lang['Select_category'] = 'Select category'; + +$lang['Delete_Image'] = 'Delete Image'; +$lang['Current_Image'] = 'Current Image'; + +$lang['Notify_on_privmsg'] = 'Notify on new Private Message'; +$lang['Popup_on_privmsg'] = 'Pop up window on new Private Message'; +$lang['Popup_on_privmsg_explain'] = 'Some templates may open a new window to inform you when new private messages arrive.'; +$lang['Hide_user'] = 'Hide your online status'; + +$lang['Profile_updated'] = 'Your profile has been updated'; +$lang['Profile_updated_inactive'] = 'Your profile has been updated. However, you have changed vital details, thus your account is now inactive. Check your e-mail to find out how to reactivate your account, or if admin activation is required, wait for the administrator to reactivate it.'; + +$lang['Password_mismatch'] = 'The passwords you entered did not match.'; +$lang['Current_password_mismatch'] = 'The current password you supplied does not match that stored in the database.'; +$lang['Password_long'] = 'Your password must be no more than 32 characters.'; +$lang['Username_taken'] = 'Sorry, but this username has already been taken.'; +$lang['Username_invalid'] = 'Sorry, but this username contains an invalid character such as \'.'; +$lang['Username_disallowed'] = 'Sorry, but this username has been disallowed.'; +$lang['Email_taken'] = 'Sorry, but that e-mail address is already registered to a user.'; +$lang['Email_banned'] = 'Sorry, but this e-mail address has been banned.'; +$lang['Email_invalid'] = 'Sorry, but this e-mail address is invalid.'; +$lang['Signature_too_long'] = 'Your signature is too long.'; +$lang['Fields_empty'] = 'You must fill in the required fields.'; +$lang['Avatar_filetype'] = 'The avatar filetype must be .jpg, .gif or .png'; +$lang['Avatar_filesize'] = 'The avatar image file size must be less than %d KB'; // The avatar image file size must be less than 6 KB +$lang['Avatar_imagesize'] = 'The avatar must be less than %d pixels wide and %d pixels high'; + +$lang['Welcome_subject'] = 'Welcome to %s Forums'; // Welcome to my.com forums +$lang['New_account_subject'] = 'New user account'; +$lang['Account_activated_subject'] = 'Account Activated'; + +$lang['Account_added'] = 'Thank you for registering. Your account has been created. You may now log in with your username and password'; +$lang['Account_inactive'] = 'Your account has been created. However, this forum requires account activation. An activation key has been sent to the e-mail address you provided. Please check your e-mail for further information'; +$lang['Account_inactive_admin'] = 'Your account has been created. However, this forum requires account activation by the administrator. An e-mail has been sent to them and you will be informed when your account has been activated'; +$lang['Account_active'] = 'Your account has now been activated. Thank you for registering'; +$lang['Account_active_admin'] = 'The account has now been activated'; +$lang['Reactivate'] = 'Reactivate your account!'; +$lang['Already_activated'] = 'You have already activated your account'; +$lang['COPPA'] = 'Your account has been created but has to be approved. Please check your e-mail for details.'; + +$lang['Registration'] = 'Registration Agreement Terms'; +$lang['Reg_agreement'] = 'While the administrators and moderators of this forum will attempt to remove or edit any generally objectionable material as quickly as possible, it is impossible to review every message. Therefore you acknowledge that all posts made to these forums express the views and opinions of the author and not the administrators, moderators or webmaster (except for posts by these people) and hence will not be held liable.

    You agree not to post any abusive, obscene, vulgar, slanderous, hateful, threatening, sexually-oriented or any other material that may violate any applicable laws. Doing so may lead to you being immediately and permanently banned (and your service provider being informed). The IP address of all posts is recorded to aid in enforcing these conditions. You agree that the webmaster, administrator and moderators of this forum have the right to remove, edit, move or close any topic at any time should they see fit. As a user you agree to any information you have entered above being stored in a database. While this information will not be disclosed to any third party without your consent the webmaster, administrator and moderators cannot be held responsible for any hacking attempt that may lead to the data being compromised.

    This forum system uses cookies to store information on your local computer. These cookies do not contain any of the information you have entered above; they serve only to improve your viewing pleasure. The e-mail address is used only for confirming your registration details and password (and for sending new passwords should you forget your current one).

    By clicking Register below you agree to be bound by these conditions.'; + +$lang['Agree_under_13'] = 'I Agree to these terms and am under 13 years of age'; +$lang['Agree_over_13'] = 'I Agree to these terms and am over or exactly 13 years of age'; +$lang['Agree_not'] = 'I do not agree to these terms'; + +$lang['Wrong_activation'] = 'The activation key you supplied does not match any in the database.'; +$lang['Send_password'] = 'Send me a new password'; +$lang['Password_updated'] = 'A new password has been created; please check your e-mail for details on how to activate it.'; +$lang['No_email_match'] = 'The e-mail address you supplied does not match the one listed for that username.'; +$lang['New_password_activation'] = 'New password activation'; +$lang['Password_activated'] = 'Your account has been re-activated. To log in, please use the password supplied in the e-mail you received.'; + +$lang['Send_email_msg'] = 'Send an e-mail message'; +$lang['No_user_specified'] = 'No user was specified'; +$lang['User_prevent_email'] = 'This user does not wish to receive e-mail. Try sending them a private message.'; +$lang['User_not_exist'] = 'That user does not exist'; +$lang['CC_email'] = 'Send a copy of this e-mail to yourself'; +$lang['Email_message_desc'] = 'This message will be sent as plain text, so do not include any HTML or BBCode. The return address for this message will be set to your e-mail address.'; +$lang['Flood_email_limit'] = 'You cannot send another e-mail at this time. Try again later.'; +$lang['Recipient'] = 'Recipient'; +$lang['Email_sent'] = 'The e-mail has been sent.'; +$lang['Send_email'] = 'Send e-mail'; +$lang['Empty_subject_email'] = 'You must specify a subject for the e-mail.'; +$lang['Empty_message_email'] = 'You must enter a message to be e-mailed.'; + + +// +// Visual confirmation system strings +// +$lang['Confirm_code_wrong'] = 'The confirmation code you entered was incorrect'; +$lang['Too_many_registers'] = 'You have exceeded the number of registration attempts for this session. Please try again later.'; +$lang['Confirm_code_impaired'] = 'If you are visually impaired or cannot otherwise read this code please contact the %sAdministrator%s for help.'; +$lang['Confirm_code'] = 'Confirmation code'; +$lang['Confirm_code_explain'] = 'Enter the code exactly as you see it. The code is case sensitive and zero has a diagonal line through it.'; + + + +// +// Memberslist +// +$lang['Select_sort_method'] = 'Select sort method'; +$lang['Sort'] = 'Sort'; +$lang['Sort_Top_Ten'] = 'Top Ten Posters'; +$lang['Sort_Joined'] = 'Joined Date'; +$lang['Sort_Username'] = 'Username'; +$lang['Sort_Location'] = 'Location'; +$lang['Sort_Posts'] = 'Total posts'; +$lang['Sort_Email'] = 'Email'; +$lang['Sort_Website'] = 'Website'; +$lang['Sort_Ascending'] = 'Ascending'; +$lang['Sort_Descending'] = 'Descending'; +$lang['Order'] = 'Order'; + + +// +// Group control panel +// +$lang['Group_Control_Panel'] = 'Group Control Panel'; +$lang['Group_member_details'] = 'Group Membership Details'; +$lang['Group_member_join'] = 'Join a Group'; + +$lang['Group_Information'] = 'Group Information'; +$lang['Group_name'] = 'Group name'; +$lang['Group_description'] = 'Group description'; +$lang['Group_membership'] = 'Group membership'; +$lang['Group_Members'] = 'Group Members'; +$lang['Group_Moderator'] = 'Group Moderator'; +$lang['Pending_members'] = 'Pending Members'; + +$lang['Group_type'] = 'Group type'; +$lang['Group_open'] = 'Open group'; +$lang['Group_closed'] = 'Closed group'; +$lang['Group_hidden'] = 'Hidden group'; + +$lang['Current_memberships'] = 'Current memberships'; +$lang['Non_member_groups'] = 'Non-member groups'; +$lang['Memberships_pending'] = 'Memberships pending'; + +$lang['No_groups_exist'] = 'No Groups Exist'; +$lang['Group_not_exist'] = 'That user group does not exist'; + +$lang['Join_group'] = 'Join Group'; +$lang['No_group_members'] = 'This group has no members'; +$lang['Group_hidden_members'] = 'This group is hidden; you cannot view its membership'; +$lang['No_pending_group_members'] = 'This group has no pending members'; +$lang['Group_joined'] = 'You have successfully subscribed to this group.
    You will be notified when your subscription is approved by the group moderator.'; +$lang['Group_request'] = 'A request to join your group has been made.'; +$lang['Group_approved'] = 'Your request has been approved.'; +$lang['Group_added'] = 'You have been added to this usergroup.'; +$lang['Already_member_group'] = 'You are already a member of this group'; +$lang['User_is_member_group'] = 'User is already a member of this group'; +$lang['Group_type_updated'] = 'Successfully updated group type.'; + +$lang['Could_not_add_user'] = 'The user you selected does not exist.'; +$lang['Could_not_anon_user'] = 'You cannot make Anonymous a group member.'; + +$lang['Confirm_unsub'] = 'Are you sure you want to unsubscribe from this group?'; +$lang['Confirm_unsub_pending'] = 'Your subscription to this group has not yet been approved; are you sure you want to unsubscribe?'; + +$lang['Unsub_success'] = 'You have been un-subscribed from this group.'; + +$lang['Approve_selected'] = 'Approve Selected'; +$lang['Deny_selected'] = 'Deny Selected'; +$lang['Not_logged_in'] = 'You must be logged in to join a group.'; +$lang['Remove_selected'] = 'Remove Selected'; +$lang['Add_member'] = 'Add Member'; +$lang['Not_group_moderator'] = 'You are not this group\'s moderator, therefore you cannot perform that action.'; + +$lang['Login_to_join'] = 'Log in to join or manage group memberships'; +$lang['This_open_group'] = 'This is an open group: click to request membership'; +$lang['This_closed_group'] = 'This is a closed group: no more users accepted'; +$lang['This_hidden_group'] = 'This is a hidden group: automatic user addition is not allowed'; +$lang['Member_this_group'] = 'You are a member of this group'; +$lang['Pending_this_group'] = 'Your membership of this group is pending'; +$lang['Are_group_moderator'] = 'You are the group moderator'; +$lang['None'] = 'None'; + +$lang['Subscribe'] = 'Subscribe'; +$lang['Unsubscribe'] = 'Unsubscribe'; +$lang['View_Information'] = 'View Information'; + + +// +// Search +// +$lang['Search_query'] = 'Search Query'; +$lang['Search_options'] = 'Search Options'; + +$lang['Search_keywords'] = 'Search for Keywords'; +$lang['Search_keywords_explain'] = 'You can use AND to define words which must be in the results, OR to define words which may be in the result and NOT to define words which should not be in the result. Use * as a wildcard for partial matches'; +$lang['Search_author'] = 'Search for Author'; +$lang['Search_author_explain'] = 'Use * as a wildcard for partial matches'; + +$lang['Search_for_any'] = 'Search for any terms or use query as entered'; +$lang['Search_for_all'] = 'Search for all terms'; +$lang['Search_title_msg'] = 'Search topic title and message text'; +$lang['Search_msg_only'] = 'Search message text only'; + +$lang['Return_first'] = 'Return first'; // followed by xxx characters in a select box +$lang['characters_posts'] = 'characters of posts'; + +$lang['Search_previous'] = 'Search previous'; // followed by days, weeks, months, year, all in a select box + +$lang['Sort_by'] = 'Sort by'; +$lang['Sort_Time'] = 'Post Time'; +$lang['Sort_Post_Subject'] = 'Post Subject'; +$lang['Sort_Topic_Title'] = 'Topic Title'; +$lang['Sort_Author'] = 'Author'; +$lang['Sort_Forum'] = 'Forum'; + +$lang['Display_results'] = 'Display results as'; +$lang['All_available'] = 'All available'; +$lang['No_searchable_forums'] = 'You do not have permissions to search any forum on this site.'; + +$lang['No_search_match'] = 'No topics or posts met your search criteria'; +$lang['Found_search_match'] = 'Search found %d match'; // eg. Search found 1 match +$lang['Found_search_matches'] = 'Search found %d matches'; // eg. Search found 24 matches +$lang['Search_Flood_Error'] = 'You cannot make another search so soon after your last; please try again in a short while.'; + +$lang['Close_window'] = 'Close Window'; + + +// +// Auth related entries +// +// Note the %s will be replaced with one of the following 'user' arrays +$lang['Sorry_auth_announce'] = 'Sorry, but only %s can post announcements in this forum.'; +$lang['Sorry_auth_sticky'] = 'Sorry, but only %s can post sticky messages in this forum.'; +$lang['Sorry_auth_read'] = 'Sorry, but only %s can read topics in this forum.'; +$lang['Sorry_auth_post'] = 'Sorry, but only %s can post topics in this forum.'; +$lang['Sorry_auth_reply'] = 'Sorry, but only %s can reply to posts in this forum.'; +$lang['Sorry_auth_edit'] = 'Sorry, but only %s can edit posts in this forum.'; +$lang['Sorry_auth_delete'] = 'Sorry, but only %s can delete posts in this forum.'; +$lang['Sorry_auth_vote'] = 'Sorry, but only %s can vote in polls in this forum.'; + +// These replace the %s in the above strings +$lang['Auth_Anonymous_Users'] = 'anonymous users'; +$lang['Auth_Registered_Users'] = 'registered users'; +$lang['Auth_Users_granted_access'] = 'users granted special access'; +$lang['Auth_Moderators'] = 'moderators'; +$lang['Auth_Administrators'] = 'administrators'; + +$lang['Not_Moderator'] = 'You are not a moderator of this forum.'; +$lang['Not_Authorised'] = 'Not Authorised'; + +$lang['You_been_banned'] = 'You have been banned from this forum.
    Please contact the webmaster or board administrator for more information.'; + + +// +// Viewonline +// +$lang['Reg_users_zero_online'] = 'There are 0 Registered users and '; // There are 5 Registered and +$lang['Reg_users_online'] = 'There are %d Registered users and '; // There are 5 Registered and +$lang['Reg_user_online'] = 'There is %d Registered user and '; // There is 1 Registered and +$lang['Hidden_users_zero_online'] = '0 Hidden users online'; // 6 Hidden users online +$lang['Hidden_users_online'] = '%d Hidden users online'; // 6 Hidden users online +$lang['Hidden_user_online'] = '%d Hidden user online'; // 6 Hidden users online +$lang['Guest_users_online'] = 'There are %d Guest users online'; // There are 10 Guest users online +$lang['Guest_users_zero_online'] = 'There are 0 Guest users online'; // There are 10 Guest users online +$lang['Guest_user_online'] = 'There is %d Guest user online'; // There is 1 Guest user online +$lang['No_users_browsing'] = 'There are no users currently browsing this forum'; + +$lang['Online_explain'] = 'This data is based on users active over the past five minutes'; + +$lang['Forum_Location'] = 'Forum Location'; +$lang['Last_updated'] = 'Last Updated'; + +$lang['Forum_index'] = 'Forum index'; +$lang['Logging_on'] = 'Logging on'; +$lang['Posting_message'] = 'Posting a message'; +$lang['Searching_forums'] = 'Searching forums'; +$lang['Viewing_profile'] = 'Viewing profile'; +$lang['Viewing_online'] = 'Viewing who is online'; +$lang['Viewing_member_list'] = 'Viewing member list'; +$lang['Viewing_priv_msgs'] = 'Viewing Private Messages'; +$lang['Viewing_FAQ'] = 'Viewing FAQ'; + + +// +// Moderator Control Panel +// +$lang['Mod_CP'] = 'Moderator Control Panel'; +$lang['Mod_CP_explain'] = 'Using the form below you can perform mass moderation operations on this forum. You can lock, unlock, move or delete any number of topics.'; + +$lang['Select'] = 'Select'; +$lang['Delete'] = 'Delete'; +$lang['Move'] = 'Move'; +$lang['Lock'] = 'Lock'; +$lang['Unlock'] = 'Unlock'; + +$lang['Topics_Removed'] = 'The selected topics have been successfully removed from the database.'; +$lang['Topics_Locked'] = 'The selected topics have been locked.'; +$lang['Topics_Moved'] = 'The selected topics have been moved.'; +$lang['Topics_Unlocked'] = 'The selected topics have been unlocked.'; +$lang['No_Topics_Moved'] = 'No topics were moved.'; + +$lang['Confirm_delete_topic'] = 'Are you sure you want to remove the selected topic/s?'; +$lang['Confirm_lock_topic'] = 'Are you sure you want to lock the selected topic/s?'; +$lang['Confirm_unlock_topic'] = 'Are you sure you want to unlock the selected topic/s?'; +$lang['Confirm_move_topic'] = 'Are you sure you want to move the selected topic/s?'; + +$lang['Move_to_forum'] = 'Move to forum'; +$lang['Leave_shadow_topic'] = 'Leave shadow topic in old forum.'; + +$lang['Split_Topic'] = 'Split Topic Control Panel'; +$lang['Split_Topic_explain'] = 'Using the form below you can split a topic in two, either by selecting the posts individually or by splitting at a selected post'; +$lang['Split_title'] = 'New topic title'; +$lang['Split_forum'] = 'Forum for new topic'; +$lang['Split_posts'] = 'Split selected posts'; +$lang['Split_after'] = 'Split from selected post'; +$lang['Topic_split'] = 'The selected topic has been split successfully'; + +$lang['Too_many_error'] = 'You have selected too many posts. You can only select one post to split a topic after!'; + +$lang['None_selected'] = 'You have not selected any topics to perform this operation on. Please go back and select at least one.'; +$lang['New_forum'] = 'New forum'; + +$lang['This_posts_IP'] = 'IP address for this post'; +$lang['Other_IP_this_user'] = 'Other IP addresses this user has posted from'; +$lang['Users_this_IP'] = 'Users posting from this IP address'; +$lang['IP_info'] = 'IP Information'; +$lang['Lookup_IP'] = 'Look up IP address'; + + +// +// Timezones ... for display on each page +// +$lang['All_times'] = 'All times are %s'; // eg. All times are GMT - 12 Hours (times from next block) + +$lang['-12'] = 'GMT - 12 Hours'; +$lang['-11'] = 'GMT - 11 Hours'; +$lang['-10'] = 'GMT - 10 Hours'; +$lang['-9'] = 'GMT - 9 Hours'; +$lang['-8'] = 'GMT - 8 Hours'; +$lang['-7'] = 'GMT - 7 Hours'; +$lang['-6'] = 'GMT - 6 Hours'; +$lang['-5'] = 'GMT - 5 Hours'; +$lang['-4'] = 'GMT - 4 Hours'; +$lang['-3.5'] = 'GMT - 3.5 Hours'; +$lang['-3'] = 'GMT - 3 Hours'; +$lang['-2'] = 'GMT - 2 Hours'; +$lang['-1'] = 'GMT - 1 Hours'; +$lang['0'] = 'GMT'; +$lang['1'] = 'GMT + 1 Hour'; +$lang['2'] = 'GMT + 2 Hours'; +$lang['3'] = 'GMT + 3 Hours'; +$lang['3.5'] = 'GMT + 3.5 Hours'; +$lang['4'] = 'GMT + 4 Hours'; +$lang['4.5'] = 'GMT + 4.5 Hours'; +$lang['5'] = 'GMT + 5 Hours'; +$lang['5.5'] = 'GMT + 5.5 Hours'; +$lang['6'] = 'GMT + 6 Hours'; +$lang['6.5'] = 'GMT + 6.5 Hours'; +$lang['7'] = 'GMT + 7 Hours'; +$lang['8'] = 'GMT + 8 Hours'; +$lang['9'] = 'GMT + 9 Hours'; +$lang['9.5'] = 'GMT + 9.5 Hours'; +$lang['10'] = 'GMT + 10 Hours'; +$lang['11'] = 'GMT + 11 Hours'; +$lang['12'] = 'GMT + 12 Hours'; +$lang['13'] = 'GMT + 13 Hours'; + +// These are displayed in the timezone select box +$lang['tz']['-12'] = 'GMT - 12 Hours'; +$lang['tz']['-11'] = 'GMT - 11 Hours'; +$lang['tz']['-10'] = 'GMT - 10 Hours'; +$lang['tz']['-9'] = 'GMT - 9 Hours'; +$lang['tz']['-8'] = 'GMT - 8 Hours'; +$lang['tz']['-7'] = 'GMT - 7 Hours'; +$lang['tz']['-6'] = 'GMT - 6 Hours'; +$lang['tz']['-5'] = 'GMT - 5 Hours'; +$lang['tz']['-4'] = 'GMT - 4 Hours'; +$lang['tz']['-3.5'] = 'GMT - 3.5 Hours'; +$lang['tz']['-3'] = 'GMT - 3 Hours'; +$lang['tz']['-2'] = 'GMT - 2 Hours'; +$lang['tz']['-1'] = 'GMT - 1 Hours'; +$lang['tz']['0'] = 'GMT'; +$lang['tz']['1'] = 'GMT + 1 Hour'; +$lang['tz']['2'] = 'GMT + 2 Hours'; +$lang['tz']['3'] = 'GMT + 3 Hours'; +$lang['tz']['3.5'] = 'GMT + 3.5 Hours'; +$lang['tz']['4'] = 'GMT + 4 Hours'; +$lang['tz']['4.5'] = 'GMT + 4.5 Hours'; +$lang['tz']['5'] = 'GMT + 5 Hours'; +$lang['tz']['5.5'] = 'GMT + 5.5 Hours'; +$lang['tz']['6'] = 'GMT + 6 Hours'; +$lang['tz']['6.5'] = 'GMT + 6.5 Hours'; +$lang['tz']['7'] = 'GMT + 7 Hours'; +$lang['tz']['8'] = 'GMT + 8 Hours'; +$lang['tz']['9'] = 'GMT + 9 Hours'; +$lang['tz']['9.5'] = 'GMT + 9.5 Hours'; +$lang['tz']['10'] = 'GMT + 10 Hours'; +$lang['tz']['11'] = 'GMT + 11 Hours'; +$lang['tz']['12'] = 'GMT + 12 Hours'; +$lang['tz']['13'] = 'GMT + 13 Hours'; + +$lang['datetime']['Sunday'] = 'Sunday'; +$lang['datetime']['Monday'] = 'Monday'; +$lang['datetime']['Tuesday'] = 'Tuesday'; +$lang['datetime']['Wednesday'] = 'Wednesday'; +$lang['datetime']['Thursday'] = 'Thursday'; +$lang['datetime']['Friday'] = 'Friday'; +$lang['datetime']['Saturday'] = 'Saturday'; +$lang['datetime']['Sun'] = 'Sun'; +$lang['datetime']['Mon'] = 'Mon'; +$lang['datetime']['Tue'] = 'Tue'; +$lang['datetime']['Wed'] = 'Wed'; +$lang['datetime']['Thu'] = 'Thu'; +$lang['datetime']['Fri'] = 'Fri'; +$lang['datetime']['Sat'] = 'Sat'; +$lang['datetime']['January'] = 'January'; +$lang['datetime']['February'] = 'February'; +$lang['datetime']['March'] = 'March'; +$lang['datetime']['April'] = 'April'; +$lang['datetime']['May'] = 'May'; +$lang['datetime']['June'] = 'June'; +$lang['datetime']['July'] = 'July'; +$lang['datetime']['August'] = 'August'; +$lang['datetime']['September'] = 'September'; +$lang['datetime']['October'] = 'October'; +$lang['datetime']['November'] = 'November'; +$lang['datetime']['December'] = 'December'; +$lang['datetime']['Jan'] = 'Jan'; +$lang['datetime']['Feb'] = 'Feb'; +$lang['datetime']['Mar'] = 'Mar'; +$lang['datetime']['Apr'] = 'Apr'; +$lang['datetime']['May'] = 'May'; +$lang['datetime']['Jun'] = 'Jun'; +$lang['datetime']['Jul'] = 'Jul'; +$lang['datetime']['Aug'] = 'Aug'; +$lang['datetime']['Sep'] = 'Sep'; +$lang['datetime']['Oct'] = 'Oct'; +$lang['datetime']['Nov'] = 'Nov'; +$lang['datetime']['Dec'] = 'Dec'; + +// +// Errors (not related to a +// specific failure on a page) +// +$lang['Information'] = 'Information'; +$lang['Critical_Information'] = 'Critical Information'; + +$lang['General_Error'] = 'General Error'; +$lang['Critical_Error'] = 'Critical Error'; +$lang['An_error_occured'] = 'An Error Occurred'; +$lang['A_critical_error'] = 'A Critical Error Occurred'; + +$lang['Admin_reauthenticate'] = 'To administer the board you must re-authenticate yourself.'; +$lang['Login_attempts_exceeded'] = 'The maximum number of %s login attempts has been exceeded. You are not allowed to login for the next %s minutes.'; +$lang['Please_remove_install_contrib'] = 'Please ensure both the install/ and contrib/ directories are deleted'; + +$lang['Session_invalid'] = 'Invalid Session. Please resubmit the form.'; + +// +// That's all, Folks! +// ------------------------------------------------- + +?> diff --git a/phpBB2/language/lang_english/lang_xs.php b/phpBB2/language/lang_english/lang_xs.php new file mode 100644 index 0000000..aeabf6d --- /dev/null +++ b/phpBB2/language/lang_english/lang_xs.php @@ -0,0 +1,613 @@ +
    Note: This mod replaces the phpBB styles management. You will find the default phpBB functions in this list, but these functions are now optimized and have extra features.

    If you have any questions please visit support forum where you can get assistance for this mod.'; +$lang['xs_main_comment2'] = 'The eXtreme Styles mod allows an admin to store entire styles in .style files. Styles are stored in a small compressed file and by doing so this saves the trouble of downloading/uploading many files. Style files are compressed so download/upload is much more efficient than downloading/uploading usual style files.'; +$lang['xs_main_comment3'] = 'All functions of phpBB styles management are replaced with eXtreme Styles mod.

    Click here to see menu.'; +$lang['xs_main_title'] = 'eXtreme Styles Navigation Menu'; +$lang['xs_menu'] = 'eXtreme Styles Menu'; + +$lang['xs_manage_styles'] = 'Manage Styles'; +$lang['xs_import_export_styles'] = 'Import/Export Styles'; +$lang['xs_install_uninstall_styles'] = 'Install/Uninstall Styles'; +$lang['xs_edit_templates'] = 'Edit Templates'; +$lang['xs_other_functions'] = 'Other Functions'; + +$lang['xs_configuration'] = 'Configuration'; +$lang['xs_configuration_explain'] = 'This feature allows you to change the eXtreme Styles configuration.'; +$lang['xs_default_style'] = 'Default Style'; +$lang['xs_default_style_explain'] = 'This feature allows you to change the default forum style and switch users from one style to another.'; +$lang['xs_manage_cache'] = 'Manage Cache'; +$lang['xs_manage_cache_explain'] = 'This feature allows you to manage cached files.'; +$lang['xs_import_styles'] = 'Import Styles'; +$lang['xs_import_styles_explain'] = 'This feature allows you to download and install .style files.'; +$lang['xs_export_styles'] = 'Export Styles'; +$lang['xs_export_styles_explain'] = 'This feature allows you to save a style from your forum as a .style file and then easily transfer it to another forum or another website.'; +$lang['xs_clone_styles'] = 'Clone Styles'; +$lang['xs_clone_styles_explain'] = 'This feature allows you to quickly clone styles or a whole template.'; +$lang['xs_download_styles'] = 'Download Styles'; +$lang['xs_download_styles_explain'] = 'This feature allows you to quickly download and install styles from websites. You can configure a list of websites yourself.'; +$lang['xs_install_styles'] = 'Install Styles'; +$lang['xs_install_styles_explain'] = 'This feature allows you to install styles that are already uploaded to your forum.'; +$lang['xs_uninstall_styles'] = 'Uninstall Styles'; +$lang['xs_uninstall_styles_explain'] = 'This feature allows you to remove styles from your forum.'; +$lang['xs_edit_templates_explain'] = 'This feature allows you to edit tpl files online.'; +$lang['xs_edit_styles_data'] = 'Edit Styles Data'; +$lang['xs_edit_styles_data_explain'] = 'This feature allows you to edit style variables. It is used by some styles, but most styles don\'t use it and use a css file instead.'; +$lang['xs_export_styles_data'] = 'Export Styles Data'; +$lang['xs_export_styles_data_explain'] = 'This feature allows you to save style variables to theme_info.cfg.'; +$lang['xs_check_for_updates'] = 'Check for Updates'; +$lang['xs_check_for_updates_explain'] = 'This feature allows you to check for updated versions of styles and mods installed on your forum.'; + +$lang['xs_set_configuration_lc'] = 'set configuration'; +$lang['xs_set_default_style_lc'] = 'set default style'; +$lang['xs_manage_cache_lc'] = 'manage cache'; +$lang['xs_import_styles_lc'] = 'import styles'; +$lang['xs_export_styles_lc'] = 'export styles'; +$lang['xs_clone_styles_lc'] = 'clone styles'; +$lang['xs_uninstall_styles_lc'] = 'uninstall styles'; +$lang['xs_edit_templates_lc'] = 'edit templates'; +$lang['xs_edit_styles_data_lc'] = 'edit styles data'; +$lang['xs_export_styles_data_lc'] = 'export styles data'; +$lang['xs_check_for_updates_lc'] = 'check for updates'; + +/* +* ftp.tpl, ftp functions +*/ + +$lang['xs_ftp_comment1'] = 'To use this feature you must select the file upload method. If you select FTP, then a password will not be stored and eXtreme Styles will ask you for a password every time you select functions that requires FTP access. If you select local file system then make sure all required directories are writeable.'; +$lang['xs_ftp_comment2'] = 'To use this feature you must set FTP settings. A password will not be stored and eXtreme Styles will ask you for a password every time you select functions that requires FTP access.'; +$lang['xs_ftp_comment3'] = 'Warning: FTP functions are disabled on this server. You will not be able to use eXtreme Styles functionality that require FTP access.'; + +$lang['xs_ftp_title'] = 'FTP Configuration'; + +$lang['xs_ftp_explain'] = 'FTP is used to upload new styles. If you want to use the import styles feature then you should configure FTP settings accordingly. eXtreme Styles tries to auto-detect settings if and when possible.'; + +$lang['xs_ftp_error_fatal'] = 'FTP functions are disabled on this server. Cannot continue.'; +$lang['xs_ftp_error_connect'] = 'FTP error: cannot connect to {HOST}'; +$lang['xs_ftp_error_login'] = 'FTP error: cannot login'; +$lang['xs_ftp_error_chdir'] = 'FTP error: cannot change directory to {DIR}'; +$lang['xs_ftp_error_nonphpbbdir'] = 'FTP error: you have set invalid directory. There are no phpBB files in that directory'; +$lang['xs_ftp_error_noconnect'] = 'Cannot connect to ftp server'; +$lang['xs_ftp_error_login2'] = 'Invalid ftp login or password'; + +$lang['xs_ftp_log_disabled'] = 'ftp functions are disabled on this server. script cannot continue.'; +$lang['xs_ftp_log_connecting'] = 'connecting to {HOST}'; +$lang['xs_ftp_log_noconnect'] = 'cannot connect to {HOST}'; +$lang['xs_ftp_log_connected'] = 'connected. loggin in...'; +$lang['xs_ftp_log_nologin'] = 'cannot login as {USER}'; +$lang['xs_ftp_log_loggedin'] = 'logged in'; +$lang['xs_ftp_log_end'] = 'finished executing script'; +$lang['xs_ftp_log_nopwd'] = 'error: cannot retrieve current directory'; +$lang['xs_ftp_log_nomkdir'] = 'error: cannot create directory {DIR}'; +$lang['xs_ftp_log_mkdir'] = 'created directory {DIR}'; +$lang['xs_ftp_log_nochdir'] = 'error: cannot change directory to {DIR}'; +$lang['xs_ftp_log_normdir'] = 'error: cannot remove directory {DIR}'; +$lang['xs_ftp_log_rmdir'] = 'removed directory {DIR}'; +$lang['xs_ftp_log_chdir'] = 'changed directory to {DIR}'; +$lang['xs_ftp_log_noupload'] = 'error: cannot upload file {FILE}'; +$lang['xs_ftp_log_upload'] = 'uploaded file {FILE}'; +$lang['xs_ftp_log_nochmod'] = 'warning: cannot chmod file {FILE}'; +$lang['xs_ftp_log_chmod'] = 'chmod file {FILE} to {MODE}'; +$lang['xs_ftp_log_invalidcommand'] = 'error: unknown command: {COMMAND}'; +$lang['xs_ftp_log_chdir2'] = 'changing current directory back to {DIR}'; +$lang['xs_ftp_log_nochdir2'] = 'cannot change directory to {DIR}'; + +$lang['xs_ftp_config'] = 'FTP Configuration'; +$lang['xs_ftp_select_method'] = 'Select upload method'; +$lang['xs_ftp_select_local'] = 'Use local file system (no configuration required)'; +$lang['xs_ftp_select_ftp'] = 'Use FTP (set ftp settings below)'; + +$lang['xs_ftp_settings'] = 'FTP Settings'; +$lang['xs_ftp_host'] = 'FTP Host'; +$lang['xs_ftp_login'] = 'FTP Login'; +$lang['xs_ftp_path'] = 'FTP Path to phpBB'; +$lang['xs_ftp_pass'] = 'FTP Password'; +$lang['xs_ftp_remotedir'] = 'Remote Directory'; + +$lang['xs_ftp_host_guess'] = ' (probably "{HOST}" [set host])'; +$lang['xs_ftp_login_guess'] = ' (probably "{LOGIN}" [set host])'; +$lang['xs_ftp_path_guess'] = ' (probably "{PATH}" [set path])'; + + +/* +* config.tpl +*/ + +$lang['xs_config_updated'] = 'Configuration updated.'; +$lang['xs_config_updated_explain'] = 'You need to refresh this page before the new configuration can take effect. Click here to refresh page.'; +$lang['xs_config_warning'] = 'Warning: cache cannot be written.'; +$lang['xs_config_warning_explain'] = 'Cache directory is not writeable. eXtreme Styles can attempt to fix this problem.
    Click here to try to change access mode to cache directory.

    If cache doesn\'t work on your server for some reason don\'t worry - eXtreme Styles
    increases forum speed many times even without cache.'; + +$lang['xs_config_maintitle'] = 'eXtreme Styles mod Configuration'; +$lang['xs_config_subtitle'] = 'This is the configuration for eXtreme Styles. If you don\'t understand what certain variables do then don\'t change it.'; +$lang['xs_config_title'] = 'eXtreme Styles mod v{VERSION} settings'; +$lang['xs_config_cache'] = 'Cache configuration'; + +$lang['xs_config_navbar'] = 'Show on left frame:'; +$lang['xs_config_navbar_explain'] = 'You can select what items to show on left frame in admin control panel.'; + +$lang['xs_config_def_template'] = 'Default template directory'; +$lang['xs_config_def_template_explain'] = 'If a required tpl file is not found in current template directory (that might happen if you modded phpBB incorrectly) then template system will look for same file in a related directory (like if current template is "myTemplate" and script requires file "myTemplate/myfile.tpl" and that file isn\'t there template system will look for that file as "subSilver/myfile.tpl"). Set to empty to disable this feature.'; + +$lang['xs_config_check_switches'] = 'Check switches while compiling'; +$lang['xs_config_check_switches_explain'] = 'This feature checks for errors in templates. Turning it off will speed up compilation, but the compiler might skip some errors in templates if it contains errors.

    Smart check will check templates for errors and automatically fix all known errors (there are few known typos in different mods). Works little bit slower than simple check.

    But sometimes template looks proper only when error check is disabled; this happens because of bad html coding - contact whoever wrote the tpl file if you want to fix errors.

    If cache feature is disabled, then turn this off for faster compilation.'; +$lang['xs_config_check_switches_0'] = 'Off'; +$lang['xs_config_check_switches_1'] = 'Smart check'; +$lang['xs_config_check_switches_2'] = 'Simple check'; + +$lang['xs_config_show_errors'] = 'Shows errors when files are incorrectly included in tpl files'; +$lang['xs_config_show_error_explain'] = 'This feature enables/disables errors in tpl files that the user used incorrectly <!-- INCLUDE filename -->'; + +$lang['xs_config_tpl_comments'] = 'Add tpl filenames in html'; +$lang['xs_config_tpl_comments_explain'] = 'This feature adds comments to html code that allow style designers to detect which tpl file is displayed.'; + +$lang['xs_config_use_cache'] = 'Use cache'; +$lang['xs_config_use_cache_explain'] = 'Cache is saved to disk and it will accelerate templates system because there would be no need to compile template every time it is shown.'; + +$lang['xs_config_auto_compile'] = 'Automatically save cache'; +$lang['xs_config_auto_compile_explain'] = 'This will automatically compile templates that are not cached and save to cache directory.'; + +$lang['xs_config_auto_recompile'] = 'Automatically re-compile cache'; +$lang['xs_config_auto_recompile_explain'] = 'This will automatically re-compile templates if a template was changed.'; + +$lang['xs_config_php'] = 'Extension of cache filenames'; +$lang['xs_config_php_explain'] = 'This is extension of cached files. Files are stored in php format so default extension is "php". Do not include dot'; + +$lang['xs_config_back'] = 'Click here to return to configuration.'; +$lang['xs_config_sql_error'] = 'Failed to update general configuration for {VAR}'; + +// Debug info +$lang['xs_debug_header'] = 'Debug info'; +$lang['xs_debug_explain'] = 'This is debug info. Used to find/fix problems when configuring cache.'; +$lang['xs_debug_vars'] = 'Template variables'; +$lang['xs_debug_tpl_name'] = 'Template filename:'; +$lang['xs_debug_cache_filename'] = 'Cache filename:'; +$lang['xs_debug_data'] = 'Debug data:'; + +$lang['xs_check_hdr'] = 'Checking cache for %s'; +$lang['xs_check_filename'] = 'Error: invalid filename'; +$lang['xs_check_openfile1'] = 'Error: cannot open file "%s". Will try to create directories...'; +$lang['xs_check_openfile2'] = 'Error: cannot open file "%s" for the second time. Giving up...'; +$lang['xs_check_nodir'] = 'Checking "%s" - no such directory.'; +$lang['xs_check_nodir2'] = 'Error: cannot create directory "%s" - you might need to check permissions.'; +$lang['xs_check_createddir'] = 'Created directory "%s"'; +$lang['xs_check_dir'] = 'Checking "%s" - directory exists.'; +$lang['xs_check_ok'] = 'Opened file "%s" for writing. Everything seems to be ok.'; +$lang['xs_error_demo_edit'] = 'you cannot edit file in demo mode'; +$lang['xs_error_not_installed'] = 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'; + +/* +* chmod +*/ + +$lang['xs_chmod'] = 'CHMOD'; +$lang['xs_chmod_return'] = '

    Click here to return to configuration.'; +$lang['xs_chmod_message1'] = 'Configuration changed.'; +$lang['xs_chmod_error1'] = 'Cannot change access mode to cache directory'; + + +/* +* default style +*/ + +$lang['xs_def_title'] = 'Set Default Style'; +$lang['xs_def_explain'] = 'This feature allows you to quickly change default forum style and also switch users from one style to another.'; + +$lang['xs_styles_set_default'] = 'set default'; +$lang['xs_styles_no_override'] = 'do not override user settings'; +$lang['xs_styles_do_override'] = 'override user settings'; +$lang['xs_styles_switch_all'] = 'switch all users to this style'; +$lang['xs_styles_switch_all2'] = 'switch all users to:'; +$lang['xs_styles_defstyle'] = 'default style'; +$lang['xs_styles_available'] = 'Available styles'; +$lang['xs_styles_make_public'] = 'make style public'; +$lang['xs_styles_make_admin'] = 'make style admin-only'; +$lang['xs_styles_users'] = 'Users List'; + + +/* +* cache management +*/ + +$lang['xs_manage_cache_explain2'] = 'This feature allows you to compile or remove cached files for styles.'; +$lang['xs_clear_all_lc'] = 'clear all'; +$lang['xs_compile_all_lc'] = 'compile all'; +$lang['xs_clear_cache_lc'] = 'clear cache'; +$lang['xs_compile_cache_lc'] = 'compile cache'; +$lang['xs_cache_confirm'] = 'If you have many styles it might cause huge server load. Are you sure you want to continue?'; + +$lang['xs_cache_nowrite'] = 'Error: cannot access cache directory'; +$lang['xs_cache_log_deleted'] = 'Deleted {FILE}'; +$lang['xs_cache_log_nodelete'] = 'Error: cannot delete file {FILE}'; +$lang['xs_cache_log_nothing'] = 'Nothing to delete for template {TPL}'; +$lang['xs_cache_log_nothing2'] = 'Nothing to delete in cache directory'; +$lang['xs_cache_log_count'] = 'Successfully deleted {NUM} files'; +$lang['xs_cache_log_count2'] = 'Error deleting {NUM} files'; +$lang['xs_cache_log_compiled'] = 'Compiled: {NUM} files'; +$lang['xs_cache_log_errors'] = 'Errors: {NUM}'; +$lang['xs_cache_log_noaccess'] = 'Error: cannot access directory {DIR}'; +$lang['xs_cache_log_compiled2'] = 'Compiled: {FILE}'; +$lang['xs_cache_log_nocompile'] = 'Error compiling: {FILE}'; + +/* +* export/import/download/clone +*/ + +$lang['xs_import_explain'] = 'This feature allows you to import styles. It can also automatically install and update styles.

    Note: If you have added any mods (except for eXtreme Styles mod) on this forum then you should be careful when importing styles because styles might not be compatible with your forum. You can only install styles that have the same modifications as the other styles that you\'ve configured on your forums.'; + +$lang['xs_import_lc'] = 'import'; +$lang['xs_list_files_lc'] = 'list files'; +$lang['xs_delete_file_lc'] = 'delete file'; +$lang['xs_export_style_lc'] = 'export style'; + +$lang['xs_import_no_cached'] = 'There are no cached styles to import'; +$lang['xs_add_styles'] = 'Add Styles'; +$lang['xs_add_styles_web'] = 'Download from web'; +$lang['xs_add_styles_web_get'] = 'Get it'; +$lang['xs_add_styles_copy'] = 'Copy from local file'; +$lang['xs_add_styles_copy_get'] = 'Copy'; +$lang['xs_add_styles_upload'] = 'Upload from computer'; +$lang['xs_add_styles_upload_get'] = 'Upload'; + +$lang['xs_export_style'] = 'Export Style'; +$lang['xs_export_style_explain'] = 'This feature allows you to export a style as a single file. This single file is very small - smaller than a .zip file (because it is compressed with gzip, which works better than zip) and all styles inside is a single file. In turn, it is very easy to transfer styles from one forum to another.

    This feature also allows you to upload exported styles using ftp to a server. This system allows you to transfer a style to another forum quickly without manually copying it.'; + +$lang['xs_export_style_title'] = 'Export Template "{TPL}"'; +$lang['xs_export_tpl_name'] = 'Export as (template name)'; +$lang['xs_export_style_names'] = 'Select style(s) to export'; +$lang['xs_export_style_name'] = 'Style to export (style name)'; +$lang['xs_export_style_comment'] = 'Comment'; +$lang['xs_export_where'] = 'Where to export'; +$lang['xs_export_where_download'] = 'Download as file'; +$lang['xs_export_where_store'] = 'Store as file on server'; +$lang['xs_export_where_store_dir'] = 'Directory'; +$lang['xs_export_where_ftp'] = 'Upload via FTP'; +$lang['xs_export_filename'] = 'Export filename'; + +$lang['xs_download_explain2'] = 'This feature allows you to quickly download and install styles directly from different websites. Click on the link near the website name and you will be redirected to a style downloads page.

    You can also manage the list of websites.'; + +$lang['xs_download_locations'] = 'Download Locations'; +$lang['xs_edit_link'] = 'Edit Link'; +$lang['xs_add_link'] = 'Add Link'; +$lang['xs_link_title'] = 'Link Title'; +$lang['xs_link_url'] = 'Link URL'; +$lang['xs_delete'] = 'Delete'; + +$lang['xs_style_header_error_file'] = 'Cannot open local file'; +$lang['xs_style_header_error_server'] = 'Error on server: '; +$lang['xs_style_header_error_invalid'] = 'Invalid file header'; +$lang['xs_style_header_error_reason'] = 'Error reading file header: '; +$lang['xs_style_header_error_incomplete'] = 'File is incomplete'; +$lang['xs_style_header_error_incomplete2'] = 'Invalid file size. Probably file is incomplete.'; +$lang['xs_style_header_error_invalid2'] = 'Invalid file. Presumeably, the file is not an eXtreme Styles mod-compatible style or invalid version.'; +$lang['xs_error_cannot_open'] = 'Cannot open file.'; +$lang['xs_error_decompress_style'] = 'Error decompressing file. Probably file is corrupted.'; +$lang['xs_error_cannot_create_file'] = 'Cannot create file "{FILE}"'; +$lang['xs_error_cannot_create_tmp'] = 'Cannot create temporary file "{FILE}"'; +$lang['xs_import_invalid_file'] = 'Invalid file'; +$lang['xs_import_incomplete_file'] = 'Incomplete file'; +$lang['xs_import_uploaded'] = 'Style uploaded.'; +$lang['xs_import_installed'] = 'Style uploaded and installed.'; +$lang['xs_import_notinstall'] = 'Style uploaded, but error installing style (sql error).'; +$lang['xs_import_notinstall2'] = 'Style uploaded, but error installing style: no styles found in theme_info.cfg'; +$lang['xs_import_notinstall3'] = 'Style uploaded, but error installing style: no entry for "{STYLE}" found in theme_info.cfg'; +$lang['xs_import_notinstall4'] = 'Style uploaded, but error installing style: could not obtain next themes_id information'; +$lang['xs_import_notinstall5'] = 'Style uploaded, but error installing style: could not update styles table'; +$lang['xs_import_nodownload'] = 'Cannot download style from {URL}'; +$lang['xs_import_nodownload2'] = 'Cannot copy style from {URL}'; +$lang['xs_import_nodownload3'] = 'File not uploaded.'; +$lang['xs_import_uploaded2'] = 'Style downloaded. You can now import it.

    Click here to import style.'; +$lang['xs_import_uploaded3'] = 'Style copied. You can now import it.

    Click here to import style.'; +$lang['xs_import_uploaded4'] = 'Style uploaded. You can now import it.

    Click here to import style.'; +$lang['xs_export_no_open_dir'] = 'Cannot open directory {DIR}'; +$lang['xs_export_no_open_file'] = 'Cannot open file {FILE}'; +$lang['xs_export_no_read_file'] = 'Error reading file {FILE}'; +$lang['xs_no_theme_data'] = 'Could not get style data for selected template'; +$lang['xs_no_style_info'] = 'Could not get style information'; +$lang['xs_export_noselect_themes'] = 'You should select at least one style'; +$lang['xs_export_error'] = 'Cannot export template "{TPL}": '; +$lang['xs_export_error2'] = 'Cannot export template "{TPL}": style is empty'; +$lang['xs_export_saved'] = 'Style is saved as "{FILE}"'; +$lang['xs_export_error_uploading'] = 'Error uploading file'; +$lang['xs_export_uploaded'] = 'File uploaded.'; +$lang['xs_clone_taken'] = 'This style name is already used.'; +$lang['xs_error_new_row'] = 'Could not insert new row in table.'; +$lang['xs_theme_cloned'] = 'Style cloned.'; +$lang['xs_invalid_style_name'] = 'Invalid style name.'; +$lang['xs_clone_style_exists'] = 'That template already exists'; +$lang['xs_clone_no_select'] = 'You should select at least one style to clone.'; +$lang['xs_no_themes'] = 'Style not found in database.'; + +$lang['xs_import_back'] = 'Click here to return to import styles page.'; +$lang['xs_import_back_download'] = 'Click here to return to downloads.'; +$lang['xs_export_back'] = 'Click here to return to export styles page.'; +$lang['xs_clone_back'] = 'Click here to return to clone styles page.'; +$lang['xs_download_back'] = 'Click here to return to downloads page.'; + +$lang['xs_import_tpl'] = 'Import Template "{TPL}"'; +$lang['xs_import_tpl_comment'] = 'This feature will upload template to your forum. If template with this name already exists on your forum this feature will automatically overwrite old files so it can also be used to update styles.

    This feature can also automatically install styles. If you want to install style after importing it then select one or more styles below.'; +$lang['xs_import_tpl_filename'] = 'Filename:'; +$lang['xs_import_tpl_tplname'] = 'Template name:'; +$lang['xs_import_tpl_comment2'] = 'Comment:'; +$lang['xs_import_select_styles'] = 'Select style(s) to install:'; +$lang['xs_import_install_def_lc'] = 'make default forum style'; +$lang['xs_import_install_style'] = 'Install style:'; +$lang['xs_import'] = 'Import'; + +$lang['xs_import_list_contents'] = 'Contents of file: '; +$lang['xs_import_list_filename'] = 'Filename: '; +$lang['xs_import_list_template'] = 'Template: '; +$lang['xs_import_list_comment'] = 'Comment: '; +$lang['xs_import_list_styles'] = 'Style(s): '; +$lang['xs_import_list_files'] = 'Files ({NUM}):'; +$lang['xs_import_download_lc'] = 'download file'; +$lang['xs_import_view_lc'] = 'view file'; +$lang['xs_import_file_size'] = '({NUM} bytes)'; + +$lang['xs_import_nogzip'] = 'This function requires gz compression, and apparently that isn\'t supported on this server.'; +$lang['xs_import_nowrite_cache'] = 'Cannot write to cache. This function requires cache to be writable. Check mod configuration.

    Click here to make cache writable.

    Click here to return to import page.'; + +$lang['xs_import_download_warning'] = 'This will take you to an external website where you can quickly download styles with a few simple clicks using the eXtreme Styles import feature.'; + +$lang['xs_clone_style'] = 'Clone Style'; +$lang['xs_clone_style_explain'] = 'This feature allows you to quickly clone style or whole template.

    Warning: If you are copying template make sure author of original template allows you to do this (unless it is subSilver - you can do whatever you want with subSilver). Usually authors allow to modify their styles, but modified style should not be distributed.'; +$lang['xs_clone_style_explain2'] = 'This feature allows you to create new style for a template. This feature will not copy any files - it will add entry in database for your new style. Both old and new style will share same templates.'; +$lang['xs_clone_style_explain3'] = 'Enter name for new style that you are going to create and click "clone" button.'; +$lang['xs_clone_style_explain4'] = 'This feature allows you to clone template. You can also copy all styles associated with that template. Later you can safely edit tpl files for new template and old template will not be affected.'; + +$lang['xs_clone_style_lc'] = 'clone style'; +$lang['xs_clone_style2'] = 'Clone style "{STYLE}":'; +$lang['xs_clone_style3'] = 'Clone Template "{STYLE}"'; +$lang['xs_clone_newdir_name'] = 'New template (directory) name:'; +$lang['xs_clone_select'] = 'Select style(s) to clone:'; +$lang['xs_clone_select_explain'] = 'You should select at least one style.'; +$lang['xs_clone_newname'] = 'New style name:'; + + +/* +* install/uninstall +*/ +$lang['xs_install_styles_explain2'] = 'This is a list of styles that are uploaded on your forum, but aren\'t installed. Click on the "install" link for the style that you want to install, or select several styles and click submit button.'; +$lang['xs_uninstall_styles_explain2'] = 'This is a list of styles that are installed on your forum. Click on the "uninstall" link to remove some styles from the forum. Uninstalling is safe - all users who employ the style that is being uninstalled will be switched to the default forum style. Also, uninstalling will automatically delete cache for that style.'; + +$lang['xs_install'] = 'Install'; +$lang['xs_install_lc'] = 'install'; +$lang['xs_uninstall'] = 'Uninstall'; +$lang['xs_remove_files'] = 'Remove Files'; +$lang['xs_style_removed'] = 'Style removed.'; +$lang['xs_uninstall_lc'] = 'uninstall'; +$lang['xs_uninstall2_lc'] = 'uninstall and delete files'; + +$lang['xs_install_back'] = 'Click here to return to styles installation.'; +$lang['xs_uninstall_back'] = 'Click here to return to styles uninstallation.'; +$lang['xs_goto_default'] = 'Click here to change default style.'; + +$lang['xs_install_installed'] = 'Style(s) installed.'; +$lang['xs_install_error'] = 'Error installing style.'; +$lang['xs_install_none'] = 'There are no new styles to install. All available styles are already installed.'; + +$lang['xs_uninstall_default'] = 'You cannot remove default style. To change default style click here.'; + +/* +* export theme_info.cfg +*/ +$lang['xs_export_styles_data_explain2'] = 'This feature saves style data in theme_info.cfg. It can be used to save database information before transferring styles from one forum to another.

    Note: If you are using the eXtreme Styles export feature to move a style to another forum you don\'t need to save theme_info.cfg - it is done automatically by the style export feature.'; +$lang['xs_export_styles_data_explain3'] = 'Select styles that you want to export.'; + +$lang['xs_export_data_back'] = 'Click here to return to export style data page.'; +$lang['xs_export_style_data_lc'] = 'export style data'; + +$lang['xs_export_data_saved'] = 'Data exported.'; + +/* +* edit templates (file manager) +*/ +$lang['xs_edit_template_comment1'] = 'This feature allows you to edit templates. File browser shows only editable files.'; +$lang['xs_edit_template_comment2'] = 'This feature allows you to edit templates.'; +$lang['xs_edit_file_saved'] = 'File is saved.'; +$lang['xs_edit_not_found'] = 'File not found.'; +$lang['xs_edittpl_back_dir'] = 'Click here to return to file manager.'; + +$lang['xs_fileman_browser'] = 'File Browser'; +$lang['xs_fileman_directory'] = 'Directory:'; +$lang['xs_fileman_dircount'] = 'Directories ({COUNT}):'; +$lang['xs_fileman_filter'] = 'Filter'; +$lang['xs_fileman_filter_ext'] = 'Show only files with extension:'; +$lang['xs_fileman_filter_content'] = 'Show only files that contain:'; +$lang['xs_fileman_filter_clear'] = 'Clear Filter'; +$lang['xs_fileman_filename'] = 'Filename'; +$lang['xs_fileman_filesize'] = 'Size'; +$lang['xs_fileman_filetime'] = 'Modification'; +$lang['xs_fileman_options'] = 'Options'; +$lang['xs_fileman_time_today'] = '(today)'; +$lang['xs_fileman_edit_lc'] = 'edit'; + +$lang['xs_fileedit_search_nomatch'] = 'Match not found'; +$lang['xs_fileedit_search_match1'] = 'Replaced 1 match'; +$lang['xs_fileedit_search_matches'] = "Replaced ' + count + ' matches"; +$lang['xs_fileedit_noundo'] = 'There is nothing to undo'; +$lang['xs_fileedit_undo_complete'] = 'Old content restored'; +$lang['xs_fileedit_edit_name'] = 'Edit file:'; +$lang['xs_fileedit_location'] = 'Location:'; +$lang['xs_fileedit_reload_lc'] = 'reload file'; +$lang['xs_fileedit_download_lc'] = 'download file'; +$lang['xs_fileedit_trim'] = 'Automatically trim spaces at beginning and end of file.'; +$lang['xs_fileedit_functions'] = 'Edit Functions'; +$lang['xs_fileedit_replace1'] = 'Replace '; +$lang['xs_fileedit_replace2'] = ' with '; +$lang['xs_fileedit_replace_first_lc'] = 'replace first match'; +$lang['xs_fileedit_replace_all_lc'] = 'replace all matches'; +$lang['xs_fileedit_replace_undo_lc'] = 'undo replacement'; +$lang['xs_fileedit_backups'] = 'Backups'; +$lang['xs_fileedit_backups_save_lc'] = 'save backup'; +$lang['xs_fileedit_backups_show_lc'] = 'show contents'; +$lang['xs_fileedit_backups_restore_lc'] = 'restore'; +$lang['xs_fileedit_backups_download_lc'] = 'download'; +$lang['xs_fileedit_backups_delete_lc'] = 'delete'; +$lang['xs_fileedit_upload'] = 'Upload'; +$lang['xs_fileedit_upload_file'] = 'Upload file:'; + +/* +* edit styles data (theme_info) +*/ +$lang['xs_data_head_stylesheet'] = 'CSS Stylesheet'; +$lang['xs_data_body_background'] = 'Background Image'; +$lang['xs_data_body_bgcolor'] = 'Background Colour'; +$lang['xs_data_style_name'] = 'Style Name'; +$lang['xs_data_body_link'] = 'Link Colour'; +$lang['xs_data_body_text'] = 'Text Colour'; +$lang['xs_data_body_vlink'] = 'Visited Link Colour'; +$lang['xs_data_body_alink'] = 'Active Link Colour'; +$lang['xs_data_body_hlink'] = 'Hover Link Colour'; +$lang['xs_data_tr_color'] = 'Table Row Colour %s'; +$lang['xs_data_tr_class'] = 'Table Row Class %s'; +$lang['xs_data_th_color'] = 'Table Header Colour %s'; +$lang['xs_data_th_class'] = 'Table Header Class %s'; +$lang['xs_data_td_color'] = 'Table Cell Colour %s'; +$lang['xs_data_td_class'] = 'Table Cell Class %s'; +$lang['xs_data_fontface'] = 'Font Face %s'; +$lang['xs_data_fontsize'] = 'Font Size %s'; +$lang['xs_data_fontcolor'] = 'Font Colour %s'; +$lang['xs_data_span_class'] = 'Span Class %s'; +$lang['xs_data_img_size_poll'] = 'Polling Image Size [px]'; +$lang['xs_data_img_size_privmsg'] = 'Private Message Status size [px]'; +$lang['xs_data_theme_public'] = 'Public Style (1 or 0)'; +$lang['xs_data_unknown'] = 'Description is not available (%s)'; + +$lang['xs_edittpl_error_updating'] = 'Error updating style.'; +$lang['xs_edittpl_style_updated'] = 'Style updated.'; +$lang['xs_invalid_style_id'] = 'Invalid style id.'; + +$lang['xs_edittpl_back_edit'] = 'Click here to return to editing.'; +$lang['xs_edittpl_back_list'] = 'Click here to return to styles list.'; + +$lang['xs_editdata_explain'] = 'This feature allows you to edit database data for installed styles. Some styles ignore database values and use css files instead, and some styles use only some of database values.'; +$lang['xs_editdata_var'] = 'Variable'; +$lang['xs_editdata_value'] = 'Value'; +$lang['xs_editdata_comment'] = 'Comment'; + +/* +* updates +*/ + +$lang['xs_updates'] = 'Updates'; +$lang['xs_updates_comment'] = 'This feature checks for updates of some styles and mods. It works only with items that have relevant update information.'; +$lang['xs_updates_comment2'] = 'This is result of version check.'; +$lang['xs_update_total1'] = 'Total: {NUM} items'; +$lang['xs_update_info1'] = 'This administrator feature will check for available updates of phpBB, certain mods, and some styles installed on your forum. When it finds available updates it shows you the link where you can download the updated file.

    This function requires sockets to be enabled. Most free web hosts do not have this feature so if this forum is on free host (like lycos) then you cannot use update feature, but if this forum is on normal server then everything should be okay.

    When you click "continue", the script will check all software installed on forum. If your website is slow it might take some time. Be patient and don\'t click "stop" in your browser if process is delayed. If this server is slow or update website is slow then script might timeout - if this happens you should increase timeout value.'; +$lang['xs_update_name'] = 'Name'; +$lang['xs_update_type'] = 'Type'; +$lang['xs_update_current_version'] = 'Your version'; +$lang['xs_update_latest_version'] = 'Latest version'; +$lang['xs_update_downloadinfo'] = 'Download URL'; +$lang['xs_update_timeout'] = 'Update script timeout (seconds):'; +$lang['xs_update_continue'] = 'Continue'; + + +$lang['xs_update_total2'] = 'Errors: {NUM}'; +$lang['xs_update_total3'] = 'Updates available: {NUM} items'; +$lang['xs_update_select1'] = 'Select items to update'; +$lang['xs_update_types'] = array( + 0 => 'Unknown', + 1 => 'Style', + 2 => 'Mod', + 3 => 'phpBB' + ); +$lang['xs_update_fileinfo'] = 'More info'; +$lang['xs_update_nothing'] = 'There is nothing to update.'; +$lang['xs_update_noupdate'] = 'You are using the latest version.'; + +$lang['xs_update_error_url'] = 'Error: cannot retrieve url %s'; +$lang['xs_update_error_noitem'] = 'Error: No update information available'; +$lang['xs_update_error_noconnect'] = 'Error: Cannot connect to update server'; + +$lang['xs_update_download'] = 'download'; +$lang['xs_update_downloadinfo2'] = 'download/info'; +$lang['xs_update_info'] = 'website'; + +$lang['xs_permission_denied'] = 'Permission Denied'; + +$lang['xs_download_lc'] = 'download'; +$lang['xs_info_lc'] = 'info'; + +/* +* style configuration +*/ +$lang['Template_Config'] = 'Template Config'; +$lang['xs_style_configuration'] = 'Template Configuration'; + +?> \ No newline at end of file diff --git a/phpBB2/language/lang_english/search_stopwords.txt b/phpBB2/language/lang_english/search_stopwords.txt new file mode 100644 index 0000000..5629d9a --- /dev/null +++ b/phpBB2/language/lang_english/search_stopwords.txt @@ -0,0 +1,251 @@ +a +about +after +ago +all +almost +along +alot +also +am +an +and +answer +any +anybody +anybodys +anywhere +are +arent +around +as +ask +askd +at +bad +be +because +been +before +being +best +better +between +big +btw +but +by +can +cant +come +could +couldnt +day +days +days +did +didnt +do +does +doesnt +dont +down +each +etc +either +else +even +ever +every +everybody +everybodys +everyone +far +find +for +found +from +get +go +going +gone +good +got +gotten +had +has +have +havent +having +her +here +hers +him +his +home +how +hows +href +I +Ive +if +in +ini +into +is +isnt +it +its +its +just +know +large +less +like +liked +little +looking +look +looked +looking +lot +maybe +many +me +more +most +much +must +mustnt +my +near +need +never +new +news +no +none +not +nothing +now +of +off +often +old +on +once +only +oops +or +other +our +ours +out +over +page +please +put +question +questions +questioned +quote +rather +really +recent +said +saw +say +says +she +see +sees +should +sites +small +so +some +something +sometime +somewhere +soon +take +than +true +thank +that +thatd +thats +the +their +theirs +theres +theirs +them +then +there +these +they +theyll +theyd +theyre +this +those +though +through +thus +time +times +to +too +under +until +untrue +up +upon +use +users +version +very +via +want +was +way +we +well +went +were +werent +what +when +where +which +who +whom +whose +why +wide +will +with +within +without +wont +world +worse +worst +would +wrote +www +yes +yet +you +youd +youll +your +youre +yours +AFAIK +IIRC +LOL +ROTF +ROTFLMAO +YMMV diff --git a/phpBB2/language/lang_english/search_synonyms.txt b/phpBB2/language/lang_english/search_synonyms.txt new file mode 100644 index 0000000..0359039 --- /dev/null +++ b/phpBB2/language/lang_english/search_synonyms.txt @@ -0,0 +1,149 @@ +abcense absence +abridgement abridgment +accomodate accommodate +acknowledgment acknowledgement +airplane aeroplane +allright alright +andy andrew +anemia anaemia +anemic anaemic +anesthesia anaesthesia +appologize appologise +archean archaean +archeology archaeology +archeozoic archaeozoic +armor armour +artic arctic +attachment attachement +attendence attendance +barbecue barbeque +behavior behaviour +biassed biased +biol biology +buletin bulletin +calender calendar +canceled cancelled +car automobile +catalog catalogue +cenozoic caenozoic +center centre +check cheque +color colour +comission commission +comittee committee +commitee committee +conceed concede +creating createing +curiculum curriculum +defense defence +develope develop +discription description +dulness dullness +encyclopedia encyclopaedia +enroll enrol +esthetic aesthetic +etiology aetiology +exhorbitant exorbitant +exhuberant exuberant +existance existence +favorite favourite +fetus foetus +ficticious fictitious +flavor flavour +flourescent fluorescent +foriegn foreign +fourty forty +gage guage +geneology genealogy +grammer grammar +gray grey +guerilla guerrilla +gynecology gynaecology +harbor harbour +heighth height +hemaglobin haemaglobin +hematin haematin +hematite haematite +hematology haematology +honor honour +innoculate inoculate +installment instalment +irrelevent irrelevant +irrevelant irrelevant +jeweler jeweller +judgement judgment +labeled labelled +labor labour +laborer labourer +laborers labourers +laboring labouring +licence license +liesure leisure +liquify liquefy +maintainance maintenance +maintenence maintenance +medieval mediaeval +meter metre +milage mileage +millipede millepede +miscelaneous miscellaneous +morgage mortgage +noticable noticeable +occurence occurrence +offense offence +ommision omission +ommission omission +optimize optimize +organise organize +pajamas pyjamas +paleography palaeography +paleolithic palaeolithic +paleontological palaeontological +paleontologist palaeontologist +paleontology palaeontology +paleozoic palaeozoic +pamplet pamphlet +paralell parallel +parl parliament +parlt parliament +pediatric paediatric +pediatrician paediatrician +pediatrics paediatrics +pedodontia paedodontia +pedodontics paedodontics +personel personnel +practise practice +program programme +psych psychology +questionaire questionnaire +rarify rarefy +reccomend recommend +recieve receive +resistence resistance +restaraunt restaurant +savior saviour +sep september +seperate separate +sept september +sieze seize +summarize summarise +summerize summarise +superceed supercede +superintendant superintendent +supersede supercede +suprise surprise +surprize surprise +synchronise synchronize +temperary temporary +theater theatre +threshhold threshold +transfered transferred +truely truly +truley truly +useable usable +valor valour +vigor vigour +vol volume +whack wack +withold withhold +yeild yield diff --git a/phpBB2/login.php b/phpBB2/login.php new file mode 100644 index 0000000..9a97a51 --- /dev/null +++ b/phpBB2/login.php @@ -0,0 +1,265 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql); + } + + if( $row = $db->sql_fetchrow($result) ) + { + if( $row['user_level'] != ADMIN && $board_config['board_disable'] ) + { + redirect(append_sid("index.$phpEx", true)); + } + else + { + // If the last login is more than x minutes ago, then reset the login tries/time + if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $row['user_last_login_try'] < (time() - ($board_config['login_reset_time'] * 60))) + { + $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']); + $row['user_last_login_try'] = $row['user_login_tries'] = 0; + } + + // Check to see if user is allowed to login again... if his tries are exceeded + if ($row['user_last_login_try'] && $board_config['login_reset_time'] && $board_config['max_login_attempts'] && + $row['user_last_login_try'] >= (time() - ($board_config['login_reset_time'] * 60)) && $row['user_login_tries'] >= $board_config['max_login_attempts'] && $userdata['user_level'] != ADMIN) + { + message_die(GENERAL_MESSAGE, sprintf($lang['Login_attempts_exceeded'], $board_config['max_login_attempts'], $board_config['login_reset_time'])); + } + + if( md5($password) == $row['user_password'] && $row['user_active'] ) + { + $autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0; + + $admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0; + $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin); + + // Reset login tries + $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_login_tries = 0, user_last_login_try = 0 WHERE user_id = ' . $row['user_id']); + + if( $session_id ) + { + $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; + redirect(append_sid($url, true)); + } + else + { + message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__); + } + } + // Only store a failed login attempt for an active user - inactive users can't login even with a correct password + elseif( $row['user_active'] ) + { + // Save login tries and last login + if ($row['user_id'] != ANONYMOUS) + { + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_login_tries = user_login_tries + 1, user_last_login_try = ' . time() . ' + WHERE user_id = ' . $row['user_id']; + $db->sql_query($sql); + } + } + + $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ''; + $redirect = str_replace('?', '&', $redirect); + + if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r") || strstr(urldecode($redirect), ';url')) + { + message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); + } + + $template->assign_vars(array( + 'META' => "") + ); + + $message = $lang['Error_login'] . '

    ' . sprintf($lang['Click_return_login'], "", '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ""; + $redirect = str_replace("?", "&", $redirect); + + if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r") || strstr(urldecode($redirect), ';url')) + { + message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); + } + + $template->assign_vars(array( + 'META' => "") + ); + + $message = $lang['Error_login'] . '

    ' . sprintf($lang['Click_return_login'], "", '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] ) + { + // session id check + if ($sid == '' || $sid != $userdata['session_id']) + { + message_die(GENERAL_ERROR, 'Invalid_session'); + } + + if( $userdata['session_logged_in'] ) + { + session_end($userdata['session_id'], $userdata['user_id']); + } + + if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect'])) + { + $url = (!empty($HTTP_POST_VARS['redirect'])) ? htmlspecialchars($HTTP_POST_VARS['redirect']) : htmlspecialchars($HTTP_GET_VARS['redirect']); + $url = str_replace('&', '&', $url); + redirect(append_sid($url, true)); + } + else + { + redirect(append_sid("index.$phpEx", true)); + } + } + else + { + $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; + redirect(append_sid($url, true)); + } +} +else +{ + // + // Do a full login page dohickey if + // user not already logged in + // + if( !$userdata['session_logged_in'] || (isset($HTTP_GET_VARS['admin']) && $userdata['session_logged_in'] && $userdata['user_level'] == ADMIN)) + { + $page_title = $lang['Login']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'login_body.tpl') + ); + + $forward_page = ''; + + if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) ) + { + $forward_to = $HTTP_SERVER_VARS['QUERY_STRING']; + + if( preg_match("/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si", $forward_to, $forward_matches) ) + { + $forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1]; + $forward_match = explode('&', $forward_to); + + if(count($forward_match) > 1) + { + for($i = 1; $i < count($forward_match); $i++) + { + if( !ereg("sid=", $forward_match[$i]) ) + { + if( $forward_page != '' ) + { + $forward_page .= '&'; + } + $forward_page .= $forward_match[$i]; + } + } + $forward_page = $forward_match[0] . '?' . $forward_page; + } + else + { + $forward_page = $forward_match[0]; + } + } + } + + $username = ( $userdata['user_id'] != ANONYMOUS ) ? $userdata['username'] : ''; + + $s_hidden_fields = ''; + $s_hidden_fields .= (isset($HTTP_GET_VARS['admin'])) ? '' : ''; + + make_jumpbox('viewforum.'.$phpEx); + $template->assign_vars(array( + 'USERNAME' => $username, + + 'L_ENTER_PASSWORD' => (isset($HTTP_GET_VARS['admin'])) ? $lang['Admin_reauthenticate'] : $lang['Enter_password'], + 'L_SEND_PASSWORD' => $lang['Forgotten_password'], + + 'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"), + + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + redirect(append_sid("index.$phpEx", true)); + } + +} + +?> \ No newline at end of file diff --git a/phpBB2/memberlist.php b/phpBB2/memberlist.php new file mode 100644 index 0000000..2f19fde --- /dev/null +++ b/phpBB2/memberlist.php @@ -0,0 +1,312 @@ +'; +for($i = 0; $i < count($mode_types_text); $i++) +{ + $selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : ''; + $select_sort_mode .= ''; +} +$select_sort_mode .= ''; + +$select_sort_order = ''; + +// +// Generate page +// +$page_title = $lang['Memberlist']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'memberlist_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'], + 'L_EMAIL' => $lang['Email'], + 'L_WEBSITE' => $lang['Website'], + 'L_FROM' => $lang['Location'], + 'L_ORDER' => $lang['Order'], + 'L_SORT' => $lang['Sort'], + 'L_SUBMIT' => $lang['Sort'], + 'L_AIM' => $lang['AIM'], + 'L_YIM' => $lang['YIM'], + 'L_MSNM' => $lang['MSNM'], + 'L_ICQ' => $lang['ICQ'], + 'L_JOINED' => $lang['Joined'], + 'L_POSTS' => $lang['Posts'], + 'L_PM' => $lang['Private_Message'], + + 'S_MODE_SELECT' => $select_sort_mode, + 'S_ORDER_SELECT' => $select_sort_order, + 'S_MODE_ACTION' => append_sid("memberlist.$phpEx")) +); + +switch( $mode ) +{ + case 'joined': + $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'username': + $order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'location': + $order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'posts': + $order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'email': + $order_by = "user_email $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'website': + $order_by = "user_website $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'topten': + $order_by = "user_posts $sort_order LIMIT 10"; + break; + default: + $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; +} + +$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + ORDER BY $order_by"; +if( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql); +} + +if ( $row = $db->sql_fetchrow($result) ) +{ + $i = 0; + do + { + $username = $row['username']; + $user_id = $row['user_id']; + + $from = ( !empty($row['user_from']) ) ? $row['user_from'] : ' '; + $joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']); + $posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0; + + $poster_avatar = ''; + if ( $row['user_avatar_type'] && $user_id != ANONYMOUS && $row['user_allowavatar'] ) + { + switch( $row['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + if ( !empty($row['user_viewemail']) || $userdata['user_level'] == ADMIN ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id) : 'mailto:' . $row['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ' '; + $email = ' '; + } + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + $www_img = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($row['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); + $msn_img = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts"); + $search_img = '' . sprintf($lang['Search_user_posts'], $username) . ''; + $search = '' . sprintf($lang['Search_user_posts'], $username) . ''; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('memberrow', array( + 'ROW_NUMBER' => $i + ( $start + 1 ), + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + $db->sql_freeresult($result); +} + +if ( $mode != 'topten' || $board_config['topics_per_page'] < 10 ) +{ + $sql = "SELECT count(*) AS total + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql); + } + + if ( $total = $db->sql_fetchrow($result) ) + { + $total_members = $total['total']; + + $pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order", $total_members, $board_config['topics_per_page'], $start). ' '; + } + $db->sql_freeresult($result); +} +else +{ + $pagination = ' '; + $total_members = 10; +} + +$template->assign_vars(array( + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $total_members / $board_config['topics_per_page'] )), + + 'L_GOTO_PAGE' => $lang['Goto_page']) +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/modcp.php b/phpBB2/modcp.php new file mode 100644 index 0000000..e4fbd1c --- /dev/null +++ b/phpBB2/modcp.php @@ -0,0 +1,1256 @@ +sql_query($sql)) ) + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); + } + $topic_row = $db->sql_fetchrow($result); + + if (!$topic_row) + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); + } + + $forum_topics = ( $topic_row['forum_topics'] == 0 ) ? 1 : $topic_row['forum_topics']; + $forum_id = $topic_row['forum_id']; + $forum_name = $topic_row['forum_name']; +} +else if ( !empty($forum_id) ) +{ + $sql = "SELECT forum_name, forum_topics + FROM " . FORUMS_TABLE . " + WHERE forum_id = " . $forum_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); + } + $topic_row = $db->sql_fetchrow($result); + + if (!$topic_row) + { + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); + } + + $forum_topics = ( $topic_row['forum_topics'] == 0 ) ? 1 : $topic_row['forum_topics']; + $forum_name = $topic_row['forum_name']; +} +else +{ + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// session id check +if ($sid == '' || $sid != $userdata['session_id']) +{ + message_die(GENERAL_ERROR, 'Invalid_session'); +} + +// +// Check if user did or did not confirm +// If they did not, forward them to the last page they were on +// +if ( isset($HTTP_POST_VARS['cancel']) ) +{ + if ( $topic_id ) + { + $redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"; + } + else if ( $forum_id ) + { + $redirect = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"; + } + else + { + $redirect = "index.$phpEx"; + } + + redirect(append_sid($redirect, true)); +} + +// +// Start auth check +// +$is_auth = auth(AUTH_ALL, $forum_id, $userdata); + +if ( !$is_auth['auth_mod'] ) +{ + message_die(GENERAL_MESSAGE, $lang['Not_Moderator'], $lang['Not_Authorised']); +} +// +// End Auth Check +// + +// +// Do major work ... +// +switch( $mode ) +{ + case 'delete': + if (!$is_auth['auth_delete']) + { + message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type'])); + } + + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $confirm ) + { + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + include($phpbb_root_path . 'includes/functions_search.'.$phpEx); + + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_id_sql = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "SELECT topic_id + FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($topic_id_sql) + AND forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic id information', '', __LINE__, __FILE__, $sql); + } + + $topic_id_sql = ''; + while ($row = $db->sql_fetchrow($result)) + { + $topic_id_sql .= (($topic_id_sql != '') ? ', ' : '') . intval($row['topic_id']); + } + $db->sql_freeresult($result); + + if ( $topic_id_sql == '') + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $sql = "SELECT poster_id, COUNT(post_id) AS posts + FROM " . POSTS_TABLE . " + WHERE topic_id IN ($topic_id_sql) + GROUP BY poster_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get poster id information', '', __LINE__, __FILE__, $sql); + } + + $count_sql = array(); + while ( $row = $db->sql_fetchrow($result) ) + { + $count_sql[] = "UPDATE " . USERS_TABLE . " + SET user_posts = user_posts - " . $row['posts'] . " + WHERE user_id = " . $row['poster_id']; + } + $db->sql_freeresult($result); + + if ( sizeof($count_sql) ) + { + for($i = 0; $i < sizeof($count_sql); $i++) + { + if ( !$db->sql_query($count_sql[$i]) ) + { + message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql); + } + } + } + + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE topic_id IN ($topic_id_sql)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post id information', '', __LINE__, __FILE__, $sql); + } + + $post_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $post_id_sql .= ( ( $post_id_sql != '' ) ? ', ' : '' ) . intval($row['post_id']); + } + $db->sql_freeresult($result); + + $sql = "SELECT vote_id + FROM " . VOTE_DESC_TABLE . " + WHERE topic_id IN ($topic_id_sql)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get vote id information', '', __LINE__, __FILE__, $sql); + } + + $vote_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $vote_id_sql .= ( ( $vote_id_sql != '' ) ? ', ' : '' ) . $row['vote_id']; + } + $db->sql_freeresult($result); + + // + // Got all required info so go ahead and start deleting everything + // + $sql = "DELETE + FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($topic_id_sql) + OR topic_moved_id IN ($topic_id_sql)"; + if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete topics', '', __LINE__, __FILE__, $sql); + } + + if ( $post_id_sql != '' ) + { + $sql = "DELETE + FROM " . POSTS_TABLE . " + WHERE post_id IN ($post_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete posts', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE + FROM " . POSTS_TEXT_TABLE . " + WHERE post_id IN ($post_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete posts text', '', __LINE__, __FILE__, $sql); + } + + remove_search_post($post_id_sql); + } + + if ( $vote_id_sql != '' ) + { + $sql = "DELETE + FROM " . VOTE_DESC_TABLE . " + WHERE vote_id IN ($vote_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete vote descriptions', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE + FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id IN ($vote_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete vote results', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id IN ($vote_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete vote users', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id IN ($topic_id_sql)"; + if ( !$db->sql_query($sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete watched post list', '', __LINE__, __FILE__, $sql); + } + + sync('forum', $forum_id); + + if ( !empty($topic_id) ) + { + $redirect_page = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $l_redirect = sprintf($lang['Click_return_forum'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $l_redirect = sprintf($lang['Click_return_modcp'], '', ''); + } + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Topics_Removed'] . '

    ' . $l_redirect); + } + else + { + // Not confirmed, show confirmation message + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $hidden_fields = ''; + + if ( isset($HTTP_POST_VARS['topic_id_list']) ) + { + $topics = $HTTP_POST_VARS['topic_id_list']; + for($i = 0; $i < count($topics); $i++) + { + $hidden_fields .= ''; + } + } + else + { + $hidden_fields .= ''; + } + + // + // Set template files + // + $template->set_filenames(array( + 'confirm' => 'confirm_body.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_delete_topic'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("modcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + + $template->pparse('confirm'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + break; + + case 'move': + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $confirm ) + { + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $new_forum_id = intval($HTTP_POST_VARS['new_forum']); + $old_forum_id = $forum_id; + + $sql = 'SELECT forum_id FROM ' . FORUMS_TABLE . ' + WHERE forum_id = ' . $new_forum_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select from forums table', '', __LINE__, __FILE__, $sql); + } + + if (!$db->sql_fetchrow($result)) + { + message_die(GENERAL_MESSAGE, 'New forum does not exist'); + } + + $db->sql_freeresult($result); + + if ( $new_forum_id != $old_forum_id ) + { + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_list = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_list .= ( ( $topic_list != '' ) ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "SELECT * + FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($topic_list) + AND forum_id = $old_forum_id + AND topic_status <> " . TOPIC_MOVED; + if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, 'Could not select from topic table', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + for($i = 0; $i < count($row); $i++) + { + $topic_id = $row[$i]['topic_id']; + + if ( isset($HTTP_POST_VARS['move_leave_shadow']) ) + { + // Insert topic in the old forum that indicates that the forum has moved. + $sql = "INSERT INTO " . TOPICS_TABLE . " (forum_id, topic_title, topic_poster, topic_time, topic_status, topic_type, topic_vote, topic_views, topic_replies, topic_first_post_id, topic_last_post_id, topic_moved_id) + VALUES ($old_forum_id, '" . addslashes(str_replace("\'", "''", $row[$i]['topic_title'])) . "', '" . str_replace("\'", "''", $row[$i]['topic_poster']) . "', " . $row[$i]['topic_time'] . ", " . TOPIC_MOVED . ", " . POST_NORMAL . ", " . $row[$i]['topic_vote'] . ", " . $row[$i]['topic_views'] . ", " . $row[$i]['topic_replies'] . ", " . $row[$i]['topic_first_post_id'] . ", " . $row[$i]['topic_last_post_id'] . ", $topic_id)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert shadow topic', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET forum_id = $new_forum_id + WHERE topic_id = $topic_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update old topic', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . POSTS_TABLE . " + SET forum_id = $new_forum_id + WHERE topic_id = $topic_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update post topic ids', '', __LINE__, __FILE__, $sql); + } + } + + // Sync the forum indexes + sync('forum', $new_forum_id); + sync('forum', $old_forum_id); + + $message = $lang['Topics_Moved'] . '

    '; + + } + else + { + $message = $lang['No_Topics_Moved'] . '

    '; + } + + if ( !empty($topic_id) ) + { + $redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $message .= sprintf($lang['Click_return_topic'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $message .= sprintf($lang['Click_return_modcp'], '', ''); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $hidden_fields = ''; + + if ( isset($HTTP_POST_VARS['topic_id_list']) ) + { + $topics = $HTTP_POST_VARS['topic_id_list']; + + for($i = 0; $i < count($topics); $i++) + { + $hidden_fields .= ''; + } + } + else + { + $hidden_fields .= ''; + } + + // + // Set template files + // + $template->set_filenames(array( + 'movetopic' => 'modcp_move.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_move_topic'], + + 'L_MOVE_TO_FORUM' => $lang['Move_to_forum'], + 'L_LEAVESHADOW' => $lang['Leave_shadow_topic'], + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_FORUM_SELECT' => make_forum_select('new_forum', $forum_id), + 'S_MODCP_ACTION' => append_sid("modcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + + $template->pparse('movetopic'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + break; + + case 'lock': + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_id_sql = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_status = " . TOPIC_LOCKED . " + WHERE topic_id IN ($topic_id_sql) + AND forum_id = $forum_id + AND topic_moved_id = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update topics table', '', __LINE__, __FILE__, $sql); + } + + if ( !empty($topic_id) ) + { + $redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_topic'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_modcp'], '', ''); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Topics_Locked'] . '

    ' . $message); + + break; + + case 'unlock': + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_id_sql = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_id_sql .= ( ( $topic_id_sql != "") ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_status = " . TOPIC_UNLOCKED . " + WHERE topic_id IN ($topic_id_sql) + AND forum_id = $forum_id + AND topic_moved_id = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update topics table', '', __LINE__, __FILE__, $sql); + } + + if ( !empty($topic_id) ) + { + $redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_topic'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_modcp'], '', ''); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Topics_Unlocked'] . '

    ' . $message); + + break; + + case 'split': + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $post_id_sql = ''; + + if (isset($HTTP_POST_VARS['split_type_all']) || isset($HTTP_POST_VARS['split_type_beyond'])) + { + $posts = $HTTP_POST_VARS['post_id_list']; + + for ($i = 0; $i < count($posts); $i++) + { + $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($posts[$i]); + } + } + + if ($post_id_sql != '') + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE post_id IN ($post_id_sql) + AND forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post id information', '', __LINE__, __FILE__, $sql); + } + + $post_id_sql = ''; + while ($row = $db->sql_fetchrow($result)) + { + $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($row['post_id']); + } + $db->sql_freeresult($result); + + if ($post_id_sql == '') + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $sql = "SELECT post_id, poster_id, topic_id, post_time + FROM " . POSTS_TABLE . " + WHERE post_id IN ($post_id_sql) + ORDER BY post_time ASC"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not get post information', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $first_poster = $row['poster_id']; + $topic_id = $row['topic_id']; + $post_time = $row['post_time']; + + $user_id_sql = ''; + $post_id_sql = ''; + do + { + $user_id_sql .= (($user_id_sql != '') ? ', ' : '') . intval($row['poster_id']); + $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($row['post_id']);; + } + while ($row = $db->sql_fetchrow($result)); + + $post_subject = trim(htmlspecialchars($HTTP_POST_VARS['subject'])); + if (empty($post_subject)) + { + message_die(GENERAL_MESSAGE, $lang['Empty_subject']); + } + + $new_forum_id = intval($HTTP_POST_VARS['new_forum_id']); + $topic_time = time(); + + $sql = 'SELECT forum_id FROM ' . FORUMS_TABLE . ' + WHERE forum_id = ' . $new_forum_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select from forums table', '', __LINE__, __FILE__, $sql); + } + + if (!$db->sql_fetchrow($result)) + { + message_die(GENERAL_MESSAGE, 'New forum does not exist'); + } + + $db->sql_freeresult($result); + + $sql = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type) + VALUES ('" . str_replace("\'", "''", $post_subject) . "', $first_poster, " . $topic_time . ", $new_forum_id, " . TOPIC_UNLOCKED . ", " . POST_NORMAL . ")"; + if (!($db->sql_query($sql, BEGIN_TRANSACTION))) + { + message_die(GENERAL_ERROR, 'Could not insert new topic', '', __LINE__, __FILE__, $sql); + } + + $new_topic_id = $db->sql_nextid(); + + // Update topic watch table, switch users whose posts + // have moved, over to watching the new topic + $sql = "UPDATE " . TOPICS_WATCH_TABLE . " + SET topic_id = $new_topic_id + WHERE topic_id = $topic_id + AND user_id IN ($user_id_sql)"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not update topics watch table', '', __LINE__, __FILE__, $sql); + } + + $sql_where = (!empty($HTTP_POST_VARS['split_type_beyond'])) ? " post_time >= $post_time AND topic_id = $topic_id" : "post_id IN ($post_id_sql)"; + + $sql = "UPDATE " . POSTS_TABLE . " + SET topic_id = $new_topic_id, forum_id = $new_forum_id + WHERE $sql_where"; + if (!$db->sql_query($sql, END_TRANSACTION)) + { + message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql); + } + + sync('topic', $new_topic_id); + sync('topic', $topic_id); + sync('forum', $new_forum_id); + sync('forum', $forum_id); + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Topic_split'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + // + // Set template files + // + $template->set_filenames(array( + 'split_body' => 'modcp_split.tpl') + ); + + $sql = "SELECT u.username, p.*, pt.post_text, pt.bbcode_uid, pt.post_subject, p.post_username + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + AND p.poster_id = u.user_id + AND p.post_id = pt.post_id + ORDER BY p.post_time ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic/post information', '', __LINE__, __FILE__, $sql); + } + + $s_hidden_fields = ''; + + if( ( $total_posts = $db->sql_numrows($result) ) > 0 ) + { + $postrow = $db->sql_fetchrowset($result); + + $template->assign_vars(array( + 'L_SPLIT_TOPIC' => $lang['Split_Topic'], + 'L_SPLIT_TOPIC_EXPLAIN' => $lang['Split_Topic_explain'], + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_SELECT' => $lang['Select'], + 'L_SPLIT_SUBJECT' => $lang['Split_title'], + 'L_SPLIT_FORUM' => $lang['Split_forum'], + 'L_POSTED' => $lang['Posted'], + 'L_SPLIT_POSTS' => $lang['Split_posts'], + 'L_SUBMIT' => $lang['Submit'], + 'L_SPLIT_AFTER' => $lang['Split_after'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_MARK_ALL' => $lang['Mark_all'], + 'L_UNMARK_ALL' => $lang['Unmark_all'], + 'L_POST' => $lang['Post'], + + 'FORUM_NAME' => $forum_name, + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + + 'S_SPLIT_ACTION' => append_sid("modcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_FORUM_SELECT' => make_forum_select("new_forum_id", false, $forum_id)) + ); + + // + // Define censored word matches + // + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + for($i = 0; $i < $total_posts; $i++) + { + $post_id = $postrow[$i]['post_id']; + $poster_id = $postrow[$i]['poster_id']; + $poster = $postrow[$i]['username']; + + $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']); + + $bbcode_uid = $postrow[$i]['bbcode_uid']; + $message = $postrow[$i]['post_text']; + $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : $topic_title; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] ) + { + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\\2>', $message); + } + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + + if ( count($orig_word) ) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + $message = preg_replace($orig_word, $replacement_word, $message); + } + + $message = make_clickable($message); + + if ( $board_config['allow_smilies'] && $postrow[$i]['enable_smilies'] ) + { + $message = smilies_pass($message); + } + + $message = str_replace("\n", '
    ', $message); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $checkbox = ( $i > 0 ) ? '' : ' '; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'POSTER_NAME' => $poster, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + 'POST_ID' => $post_id, + + 'S_SPLIT_CHECKBOX' => $checkbox) + ); + } + + $template->pparse('split_body'); + } + } + break; + + case 'ip': + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $rdns_ip_num = ( isset($HTTP_GET_VARS['rdns']) ) ? $HTTP_GET_VARS['rdns'] : ""; + + if ( !$post_id ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_post']); + } + + // + // Set template files + // + $template->set_filenames(array( + 'viewip' => 'modcp_viewip.tpl') + ); + + // Look up relevent data for this post + $sql = "SELECT poster_ip, poster_id + FROM " . POSTS_TABLE . " + WHERE post_id = $post_id + AND forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get poster IP information', '', __LINE__, __FILE__, $sql); + } + + if ( !($post_row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_post']); + } + + $ip_this_post = decode_ip($post_row['poster_ip']); + $ip_this_post = ( $rdns_ip_num == $ip_this_post ) ? htmlspecialchars(gethostbyaddr($ip_this_post)) : $ip_this_post; + + $poster_id = $post_row['poster_id']; + + $template->assign_vars(array( + 'L_IP_INFO' => $lang['IP_info'], + 'L_THIS_POST_IP' => $lang['This_posts_IP'], + 'L_OTHER_IPS' => $lang['Other_IP_this_user'], + 'L_OTHER_USERS' => $lang['Users_this_IP'], + 'L_LOOKUP_IP' => $lang['Lookup_IP'], + 'L_SEARCH' => $lang['Search'], + + 'SEARCH_IMG' => $images['icon_search'], + + 'IP' => $ip_this_post, + + 'U_LOOKUP_IP' => "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=$post_id&" . POST_TOPIC_URL . "=$topic_id&rdns=$ip_this_post&sid=" . $userdata['session_id']) + ); + + // + // Get other IP's this user has posted under + // + $sql = "SELECT poster_ip, COUNT(*) AS postings + FROM " . POSTS_TABLE . " + WHERE poster_id = $poster_id + GROUP BY poster_ip + ORDER BY " . (( SQL_LAYER == 'msaccess' ) ? 'COUNT(*)' : 'postings' ) . " DESC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get IP information for this user', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $i = 0; + do + { + if ( $row['poster_ip'] == $post_row['poster_ip'] ) + { + $template->assign_vars(array( + 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] )) + ); + continue; + } + + $ip = decode_ip($row['poster_ip']); + $ip = ( $rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') ? htmlspecialchars(gethostbyaddr($ip)) : $ip; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('iprow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'IP' => $ip, + 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ), + + 'U_LOOKUP_IP' => "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=$post_id&" . POST_TOPIC_URL . "=$topic_id&rdns=" . $row['poster_ip'] . "&sid=" . $userdata['session_id']) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + } + + // + // Get other users who've posted under this IP + // + $sql = "SELECT u.user_id, u.username, COUNT(*) as postings + FROM " . USERS_TABLE ." u, " . POSTS_TABLE . " p + WHERE p.poster_id = u.user_id + AND p.poster_ip = '" . $post_row['poster_ip'] . "' + GROUP BY u.user_id, u.username + ORDER BY " . (( SQL_LAYER == 'msaccess' ) ? 'COUNT(*)' : 'postings' ) . " DESC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get posters information based on IP', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $i = 0; + do + { + $id = $row['user_id']; + $username = ( $id == ANONYMOUS ) ? $lang['Guest'] : $row['username']; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('userrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ), + 'L_SEARCH_POSTS' => sprintf($lang['Search_user_posts'], $username), + + 'U_PROFILE' => ($id == ANONYMOUS) ? "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $post_id . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'] : append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$id"), + 'U_SEARCHPOSTS' => append_sid("search.$phpEx?search_author=" . (($id == ANONYMOUS) ? 'Anonymous' : urlencode($username)) . "&showresults=topics")) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + } + + $template->pparse('viewip'); + + break; + + default: + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + + 'L_MOD_CP' => $lang['Mod_CP'], + 'L_MOD_CP_EXPLAIN' => $lang['Mod_CP_explain'], + 'L_SELECT' => $lang['Select'], + 'L_DELETE' => $lang['Delete'], + 'L_MOVE' => $lang['Move'], + 'L_LOCK' => $lang['Lock'], + 'L_UNLOCK' => $lang['Unlock'], + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_SELECT' => $lang['Select'], + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + 'S_HIDDEN_FIELDS' => '', + 'S_MODCP_ACTION' => append_sid("modcp.$phpEx")) + ); + + $template->set_filenames(array( + 'body' => 'modcp_body.tpl') + ); + make_jumpbox('modcp.'.$phpEx); + + // + // Define censored word matches + // + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $sql = "SELECT t.*, u.username, u.user_id, p.post_time + FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p + WHERE t.forum_id = $forum_id + AND t.topic_poster = u.user_id + AND p.post_id = t.topic_last_post_id + ORDER BY t.topic_type DESC, p.post_time DESC + LIMIT $start, " . $board_config['topics_per_page']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); + } + + while ( $row = $db->sql_fetchrow($result) ) + { + $topic_title = ''; + + if ( $row['topic_status'] == TOPIC_LOCKED ) + { + $folder_img = $images['folder_locked']; + $folder_alt = $lang['Topic_locked']; + } + else + { + if ( $row['topic_type'] == POST_ANNOUNCE ) + { + $folder_img = $images['folder_announce']; + $folder_alt = $lang['Topic_Announcement']; + } + else if ( $row['topic_type'] == POST_STICKY ) + { + $folder_img = $images['folder_sticky']; + $folder_alt = $lang['Topic_Sticky']; + } + else + { + $folder_img = $images['folder']; + $folder_alt = $lang['No_new_posts']; + } + } + + $topic_id = $row['topic_id']; + $topic_type = $row['topic_type']; + $topic_status = $row['topic_status']; + + if ( $topic_type == POST_ANNOUNCE ) + { + $topic_type = $lang['Topic_Announcement'] . ' '; + } + else if ( $topic_type == POST_STICKY ) + { + $topic_type = $lang['Topic_Sticky'] . ' '; + } + else if ( $topic_status == TOPIC_MOVED ) + { + $topic_type = $lang['Topic_Moved'] . ' '; + } + else + { + $topic_type = ''; + } + + if ( $row['topic_vote'] ) + { + $topic_type .= $lang['Topic_Poll'] . ' '; + } + + $topic_title = $row['topic_title']; + if ( count($orig_word) ) + { + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); + } + + $u_view_topic = "modcp.$phpEx?mode=split&" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $topic_replies = $row['topic_replies']; + + $last_post_time = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']); + + $template->assign_block_vars('topicrow', array( + 'U_VIEW_TOPIC' => $u_view_topic, + + 'TOPIC_FOLDER_IMG' => $folder_img, + 'TOPIC_TYPE' => $topic_type, + 'TOPIC_TITLE' => $topic_title, + 'REPLIES' => $topic_replies, + 'LAST_POST_TIME' => $last_post_time, + 'TOPIC_ID' => $topic_id, + + 'L_TOPIC_FOLDER_ALT' => $folder_alt) + ); + } + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'], $forum_topics, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $forum_topics / $board_config['topics_per_page'] )), + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + + $template->pparse('body'); + + break; +} + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/phpBB-2.0.22-patch.tar.gz b/phpBB2/phpBB-2.0.22-patch.tar.gz new file mode 100644 index 0000000..8c43bfa Binary files /dev/null and b/phpBB2/phpBB-2.0.22-patch.tar.gz differ diff --git a/phpBB2/posting.php b/phpBB2/posting.php new file mode 100644 index 0000000..f8e7595 --- /dev/null +++ b/phpBB2/posting.php @@ -0,0 +1,1132 @@ + 'post', 'preview' => 'preview', 'delete' => 'delete', 'poll_delete' => 'poll_delete', 'poll_add' => 'add_poll_option', 'poll_edit' => 'edit_poll_option', 'mode' => 'mode'); +while( list($var, $param) = @each($params) ) +{ + if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) ) + { + $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? htmlspecialchars($HTTP_POST_VARS[$param]) : htmlspecialchars($HTTP_GET_VARS[$param]); + } + else + { + $$var = ''; + } +} + +$confirm = isset($HTTP_POST_VARS['confirm']) ? true : false; +$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0; + +$params = array('forum_id' => POST_FORUM_URL, 'topic_id' => POST_TOPIC_URL, 'post_id' => POST_POST_URL); +while( list($var, $param) = @each($params) ) +{ + if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) ) + { + $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? intval($HTTP_POST_VARS[$param]) : intval($HTTP_GET_VARS[$param]); + } + else + { + $$var = ''; + } +} + +$refresh = $preview || $poll_add || $poll_edit || $poll_delete; +$orig_word = $replacement_word = array(); + +// +// Set topic type +// +$topic_type = ( !empty($HTTP_POST_VARS['topictype']) ) ? intval($HTTP_POST_VARS['topictype']) : POST_NORMAL; +$topic_type = ( in_array($topic_type, array(POST_NORMAL, POST_STICKY, POST_ANNOUNCE)) ) ? $topic_type : POST_NORMAL; + +// +// If the mode is set to topic review then output +// that review ... +// +if ( $mode == 'topicreview' ) +{ + require($phpbb_root_path . 'includes/topic_review.'.$phpEx); + + topic_review($topic_id, false); + exit; +} +else if ( $mode == 'smilies' ) +{ + generate_smilies('window', PAGE_POSTING); + exit; +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, PAGE_POSTING); +init_userprefs($userdata); +// +// End session management +// + +// +// Was cancel pressed? If so then redirect to the appropriate +// page, no point in continuing with any further checks +// +if ( isset($HTTP_POST_VARS['cancel']) ) +{ + if ( $post_id ) + { + $redirect = "viewtopic.$phpEx?" . POST_POST_URL . "=$post_id"; + $post_append = "#$post_id"; + } + else if ( $topic_id ) + { + $redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"; + $post_append = ''; + } + else if ( $forum_id ) + { + $redirect = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"; + $post_append = ''; + } + else + { + $redirect = "index.$phpEx"; + $post_append = ''; + } + + redirect(append_sid($redirect, true) . $post_append); +} + +// +// What auth type do we need to check? +// +$is_auth = array(); +switch( $mode ) +{ + case 'newtopic': + if ( $topic_type == POST_ANNOUNCE ) + { + $is_auth_type = 'auth_announce'; + } + else if ( $topic_type == POST_STICKY ) + { + $is_auth_type = 'auth_sticky'; + } + else + { + $is_auth_type = 'auth_post'; + } + break; + case 'reply': + case 'quote': + $is_auth_type = 'auth_reply'; + break; + case 'editpost': + $is_auth_type = 'auth_edit'; + break; + case 'delete': + case 'poll_delete': + $is_auth_type = 'auth_delete'; + break; + case 'vote': + $is_auth_type = 'auth_vote'; + break; + case 'topicreview': + $is_auth_type = 'auth_read'; + break; + default: + message_die(GENERAL_MESSAGE, $lang['No_post_mode']); + break; +} + +// +// Here we do various lookups to find topic_id, forum_id, post_id etc. +// Doing it here prevents spoofing (eg. faking forum_id, topic_id or post_id +// +$error_msg = ''; +$post_data = array(); +switch ( $mode ) +{ + case 'newtopic': + if ( empty($forum_id) ) + { + message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']); + } + + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + WHERE forum_id = $forum_id"; + break; + + case 'reply': + case 'vote': + if ( empty( $topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['No_topic_id']); + } + + $sql = "SELECT f.*, t.topic_status, t.topic_title, t.topic_type + FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t + WHERE t.topic_id = $topic_id + AND f.forum_id = t.forum_id"; + break; + + case 'quote': + case 'editpost': + case 'delete': + case 'poll_delete': + if ( empty($post_id) ) + { + message_die(GENERAL_MESSAGE, $lang['No_post_id']); + } + + $select_sql = (!$submit) ? ', t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid' : ''; + $from_sql = ( !$submit ) ? ", " . POSTS_TEXT_TABLE . " pt, " . USERS_TABLE . " u" : ''; + $where_sql = ( !$submit ) ? "AND pt.post_id = p.post_id AND u.user_id = p.poster_id" : ''; + + $sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . " + FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . " + WHERE p.post_id = $post_id + AND t.topic_id = p.topic_id + AND f.forum_id = p.forum_id + $where_sql"; + break; + + default: + message_die(GENERAL_MESSAGE, $lang['No_valid_mode']); +} + +if ( ($result = $db->sql_query($sql)) && ($post_info = $db->sql_fetchrow($result)) ) +{ + $db->sql_freeresult($result); + + $forum_id = $post_info['forum_id']; + $forum_name = $post_info['forum_name']; + + $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info); + + if ( $post_info['forum_status'] == FORUM_LOCKED && !$is_auth['auth_mod']) + { + message_die(GENERAL_MESSAGE, $lang['Forum_locked']); + } + else if ( $mode != 'newtopic' && $post_info['topic_status'] == TOPIC_LOCKED && !$is_auth['auth_mod']) + { + message_die(GENERAL_MESSAGE, $lang['Topic_locked']); + } + + if ( $mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete' ) + { + $topic_id = $post_info['topic_id']; + + $post_data['poster_post'] = ( $post_info['poster_id'] == $userdata['user_id'] ) ? true : false; + $post_data['first_post'] = ( $post_info['topic_first_post_id'] == $post_id ) ? true : false; + $post_data['last_post'] = ( $post_info['topic_last_post_id'] == $post_id ) ? true : false; + $post_data['last_topic'] = ( $post_info['forum_last_post_id'] == $post_id ) ? true : false; + $post_data['has_poll'] = ( $post_info['topic_vote'] ) ? true : false; + $post_data['topic_type'] = $post_info['topic_type']; + $post_data['poster_id'] = $post_info['poster_id']; + + if ( $post_data['first_post'] && $post_data['has_poll'] ) + { + $sql = "SELECT * + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + ORDER BY vr.vote_option_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql); + } + + $poll_options = array(); + $poll_results_sum = 0; + if ( $row = $db->sql_fetchrow($result) ) + { + $poll_title = $row['vote_text']; + $poll_id = $row['vote_id']; + $poll_length = $row['vote_length'] / 86400; + + do + { + $poll_options[$row['vote_option_id']] = $row['vote_option_text']; + $poll_results_sum += $row['vote_result']; + } + while ( $row = $db->sql_fetchrow($result) ); + } + $db->sql_freeresult($result); + + $post_data['edit_poll'] = ( ( !$poll_results_sum || $is_auth['auth_mod'] ) && $post_data['first_post'] ) ? true : 0; + } + else + { + $post_data['edit_poll'] = ($post_data['first_post'] && $is_auth['auth_pollcreate']) ? true : false; + } + + // + // Can this user edit/delete the post/poll? + // + if ( $post_info['poster_id'] != $userdata['user_id'] && !$is_auth['auth_mod'] ) + { + $message = ( $delete || $mode == 'delete' ) ? $lang['Delete_own_posts'] : $lang['Edit_own_posts']; + $message .= '

    ' . sprintf($lang['Click_return_topic'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else if ( !$post_data['last_post'] && !$is_auth['auth_mod'] && ( $mode == 'delete' || $delete ) ) + { + message_die(GENERAL_MESSAGE, $lang['Cannot_delete_replied']); + } + else if ( !$post_data['edit_poll'] && !$is_auth['auth_mod'] && ( $mode == 'poll_delete' || $poll_delete ) ) + { + message_die(GENERAL_MESSAGE, $lang['Cannot_delete_poll']); + } + } + else + { + if ( $mode == 'quote' ) + { + $topic_id = $post_info['topic_id']; + } + if ( $mode == 'newtopic' ) + { + $post_data['topic_type'] = POST_NORMAL; + } + + $post_data['first_post'] = ( $mode == 'newtopic' ) ? true : 0; + $post_data['last_post'] = false; + $post_data['has_poll'] = false; + $post_data['edit_poll'] = false; + } + if ( $mode == 'poll_delete' && !isset($poll_id) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_post']); + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['No_such_post']); +} + +// +// The user is not authed, if they're not logged in then redirect +// them, else show them an error message +// +if ( !$is_auth[$is_auth_type] ) +{ + if ( $userdata['session_logged_in'] ) + { + message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_' . $is_auth_type], $is_auth[$is_auth_type . "_type"])); + } + + switch( $mode ) + { + case 'newtopic': + $redirect = "mode=newtopic&" . POST_FORUM_URL . "=" . $forum_id; + break; + case 'reply': + case 'topicreview': + $redirect = "mode=reply&" . POST_TOPIC_URL . "=" . $topic_id; + break; + case 'quote': + case 'editpost': + $redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id; + break; + } + + redirect(append_sid("login.$phpEx?redirect=posting.$phpEx&" . $redirect, true)); +} + +// +// Set toggles for various options +// +if ( !$board_config['allow_html'] ) +{ + $html_on = 0; +} +else +{ + $html_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_html']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_html'] : $userdata['user_allowhtml'] ); +} + +if ( !$board_config['allow_bbcode'] ) +{ + $bbcode_on = 0; +} +else +{ + $bbcode_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_bbcode']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_bbcode'] : $userdata['user_allowbbcode'] ); +} + +if ( !$board_config['allow_smilies'] ) +{ + $smilies_on = 0; +} +else +{ + $smilies_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_smilies']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_smilies'] : $userdata['user_allowsmile'] ); +} + +if ( ($submit || $refresh) && $is_auth['auth_read']) +{ + $notify_user = ( !empty($HTTP_POST_VARS['notify']) ) ? TRUE : 0; +} +else +{ + if ( $mode != 'newtopic' && $userdata['session_logged_in'] && $is_auth['auth_read'] ) + { + $sql = "SELECT topic_id + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic watch information', '', __LINE__, __FILE__, $sql); + } + + $notify_user = ( $db->sql_fetchrow($result) ) ? TRUE : $userdata['user_notify']; + $db->sql_freeresult($result); + } + else + { + $notify_user = ( $userdata['session_logged_in'] && $is_auth['auth_read'] ) ? $userdata['user_notify'] : 0; + } +} + +$attach_sig = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['attach_sig']) ) ? TRUE : 0 ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? 0 : $userdata['user_attachsig'] ); + +// -------------------- +// What shall we do? +// +if ( ( $delete || $poll_delete || $mode == 'delete' ) && !$confirm ) +{ + // + // Confirm deletion + // + $s_hidden_fields = ''; + $s_hidden_fields .= ( $delete || $mode == "delete" ) ? '' : ''; + $s_hidden_fields .= ''; + + $l_confirm = ( $delete || $mode == 'delete' ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll']; + + // + // Output confirmation page + // + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'confirm_body' => 'confirm_body.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Information'], + 'MESSAGE_TEXT' => $l_confirm, + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("posting.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('confirm_body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); +} +else if ( $mode == 'vote' ) +{ + // + // Vote in a poll + // + if ( !empty($HTTP_POST_VARS['vote_id']) ) + { + $vote_option_id = intval($HTTP_POST_VARS['vote_id']); + + $sql = "SELECT vd.vote_id + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + AND vr.vote_option_id = $vote_option_id + GROUP BY vd.vote_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql); + } + + if ( $vote_info = $db->sql_fetchrow($result) ) + { + $vote_id = $vote_info['vote_id']; + + $sql = "SELECT * + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $vote_id + AND vote_user_id = " . $userdata['user_id']; + if ( !($result2 = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user vote data for this topic', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result2)) ) + { + $sql = "UPDATE " . VOTE_RESULTS_TABLE . " + SET vote_result = vote_result + 1 + WHERE vote_id = $vote_id + AND vote_option_id = $vote_option_id"; + if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql); + } + + $sql = "INSERT INTO " . VOTE_USERS_TABLE . " (vote_id, vote_user_id, vote_user_ip) + VALUES ($vote_id, " . $userdata['user_id'] . ", '$user_ip')"; + if ( !$db->sql_query($sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, "Could not insert user_id for poll", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Vote_cast']; + } + else + { + $message = $lang['Already_voted']; + } + $db->sql_freeresult($result2); + } + else + { + $message = $lang['No_vote_option']; + } + $db->sql_freeresult($result); + + $template->assign_vars(array( + 'META' => '') + ); + $message .= '

    ' . sprintf($lang['Click_view_message'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true)); + } +} +else if ( $submit || $confirm ) +{ + // + // Submit post/vote (newtopic, edit, reply, etc.) + // + $return_message = ''; + $return_meta = ''; + + // session id check + if ($sid == '' || $sid != $userdata['session_id']) + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $lang['Session_invalid'] : $lang['Session_invalid']; + } + + switch ( $mode ) + { + case 'editpost': + case 'newtopic': + case 'reply': + $username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : ''; + $subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : ''; + $message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : ''; + $poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : ''; + $poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : ''; + $poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : ''; + $bbcode_uid = ''; + + prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length); + + if ( $error_msg == '' ) + { + $topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type; + + submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length); + } + break; + + case 'delete': + case 'poll_delete': + if ($error_msg != '') + { + message_die(GENERAL_MESSAGE, $error_msg); + } + + delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id); + break; + } + + if ( $error_msg == '' ) + { + if ( $mode != 'editpost' ) + { + $user_id = ( $mode == 'reply' || $mode == 'newtopic' ) ? $userdata['user_id'] : $post_data['poster_id']; + update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id); + } + + if ($error_msg == '' && $mode != 'poll_delete') + { + user_notification($mode, $post_data, $post_info['topic_title'], $forum_id, $topic_id, $post_id, $notify_user); + } + + if ( $mode == 'newtopic' || $mode == 'reply' ) + { + $tracking_topics = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + if ( count($tracking_topics) + count($tracking_forums) == 100 && empty($tracking_topics[$topic_id]) ) + { + asort($tracking_topics); + unset($tracking_topics[key($tracking_topics)]); + } + + $tracking_topics[$topic_id] = time(); + + setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); + } + + $template->assign_vars(array( + 'META' => $return_meta) + ); + message_die(GENERAL_MESSAGE, $return_message); + } +} + +if( $refresh || isset($HTTP_POST_VARS['del_poll_option']) || $error_msg != '' ) +{ + $username = ( !empty($HTTP_POST_VARS['username']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['username']))) : ''; + $subject = ( !empty($HTTP_POST_VARS['subject']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['subject']))) : ''; + $message = ( !empty($HTTP_POST_VARS['message']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['message']))) : ''; + + $poll_title = ( !empty($HTTP_POST_VARS['poll_title']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['poll_title']))) : ''; + $poll_length = ( isset($HTTP_POST_VARS['poll_length']) ) ? max(0, intval($HTTP_POST_VARS['poll_length'])) : 0; + + $poll_options = array(); + if ( !empty($HTTP_POST_VARS['poll_option_text']) ) + { + while( list($option_id, $option_text) = @each($HTTP_POST_VARS['poll_option_text']) ) + { + if( isset($HTTP_POST_VARS['del_poll_option'][$option_id]) ) + { + unset($poll_options[$option_id]); + } + else if ( !empty($option_text) ) + { + $poll_options[intval($option_id)] = htmlspecialchars(trim(stripslashes($option_text))); + } + } + } + + if ( isset($poll_add) && !empty($HTTP_POST_VARS['add_poll_option_text']) ) + { + $poll_options[] = htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['add_poll_option_text']))); + } + + if ( $mode == 'newtopic' || $mode == 'reply') + { + $user_sig = ( $userdata['user_sig'] != '' && $board_config['allow_sig'] ) ? $userdata['user_sig'] : ''; + } + else if ( $mode == 'editpost' ) + { + $user_sig = ( $post_info['user_sig'] != '' && $board_config['allow_sig'] ) ? $post_info['user_sig'] : ''; + $userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid']; + } + + if( $preview ) + { + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : ''; + $preview_message = stripslashes(prepare_message(addslashes(unprepare_message($message)), $html_on, $bbcode_on, $smilies_on, $bbcode_uid)); + $preview_subject = $subject; + $preview_username = $username; + + // + // Finalise processing as per viewtopic + // + if( !$html_on ) + { + if( $user_sig != '' || !$userdata['user_allowhtml'] ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $user_sig); + } + } + + if( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] ) + { + $user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']); + } + + if( $bbcode_on ) + { + $preview_message = bbencode_second_pass($preview_message, $bbcode_uid); + } + + if( !empty($orig_word) ) + { + $preview_username = ( !empty($username) ) ? preg_replace($orig_word, $replacement_word, $preview_username) : ''; + $preview_subject = ( !empty($subject) ) ? preg_replace($orig_word, $replacement_word, $preview_subject) : ''; + $preview_message = ( !empty($preview_message) ) ? preg_replace($orig_word, $replacement_word, $preview_message) : ''; + } + + if( $user_sig != '' ) + { + $user_sig = make_clickable($user_sig); + } + $preview_message = make_clickable($preview_message); + + if( $smilies_on ) + { + if( $userdata['user_allowsmile'] && $user_sig != '' ) + { + $user_sig = smilies_pass($user_sig); + } + + $preview_message = smilies_pass($preview_message); + } + + if( $attach_sig && $user_sig != '' ) + { + $preview_message = $preview_message . '

    _________________
    ' . $user_sig; + } + + $preview_message = str_replace("\n", '
    ', $preview_message); + + $template->set_filenames(array( + 'preview' => 'posting_preview.tpl') + ); + + $template->assign_vars(array( + 'TOPIC_TITLE' => $preview_subject, + 'POST_SUBJECT' => $preview_subject, + 'POSTER_NAME' => $preview_username, + 'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']), + 'MESSAGE' => $preview_message, + + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_PREVIEW' => $lang['Preview'], + 'L_POSTED' => $lang['Posted'], + 'L_POST' => $lang['Post']) + ); + $template->assign_var_from_handle('POST_PREVIEW_BOX', 'preview'); + } + else if( $error_msg != '' ) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } +} +else +{ + // + // User default entry point + // + if ( $mode == 'newtopic' ) + { + $user_sig = ( $userdata['user_sig'] != '' ) ? $userdata['user_sig'] : ''; + + $username = ($userdata['session_logged_in']) ? $userdata['username'] : ''; + $poll_title = ''; + $poll_length = ''; + $subject = ''; + $message = ''; + } + else if ( $mode == 'reply' ) + { + $user_sig = ( $userdata['user_sig'] != '' ) ? $userdata['user_sig'] : ''; + + $username = ( $userdata['session_logged_in'] ) ? $userdata['username'] : ''; + $subject = ''; + $message = ''; + + } + else if ( $mode == 'quote' || $mode == 'editpost' ) + { + $subject = ( $post_data['first_post'] ) ? $post_info['topic_title'] : $post_info['post_subject']; + $message = $post_info['post_text']; + + if ( $mode == 'editpost' ) + { + $attach_sig = ( $post_info['enable_sig'] && $post_info['user_sig'] != '' ) ? TRUE : 0; + $user_sig = $post_info['user_sig']; + + $html_on = ( $post_info['enable_html'] ) ? true : false; + $bbcode_on = ( $post_info['enable_bbcode'] ) ? true : false; + $smilies_on = ( $post_info['enable_smilies'] ) ? true : false; + } + else + { + $attach_sig = ( $userdata['user_attachsig'] ) ? TRUE : 0; + $user_sig = $userdata['user_sig']; + } + + if ( $post_info['bbcode_uid'] != '' ) + { + $message = preg_replace('/\:(([a-z0-9]:)?)' . $post_info['bbcode_uid'] . '/s', '', $message); + } + + $message = str_replace('<', '<', $message); + $message = str_replace('>', '>', $message); + $message = str_replace('
    ', "\n", $message); + + if ( $mode == 'quote' ) + { + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replace_word); + + $msg_date = create_date($board_config['default_dateformat'], $postrow['post_time'], $board_config['board_timezone']); + + // Use trim to get rid of spaces placed there by MS-SQL 2000 + $quote_username = ( trim($post_info['post_username']) != '' ) ? $post_info['post_username'] : $post_info['username']; + $message = '[quote="' . $quote_username . '"]' . $message . '[/quote]'; + + if ( !empty($orig_word) ) + { + $subject = ( !empty($subject) ) ? preg_replace($orig_word, $replace_word, $subject) : ''; + $message = ( !empty($message) ) ? preg_replace($orig_word, $replace_word, $message) : ''; + } + + if ( !preg_match('/^Re:/', $subject) && strlen($subject) > 0 ) + { + $subject = 'Re: ' . $subject; + } + + $mode = 'reply'; + } + else + { + $username = ( $post_info['user_id'] == ANONYMOUS && !empty($post_info['post_username']) ) ? $post_info['post_username'] : ''; + } + } +} + +// +// Signature toggle selection +// +if( $user_sig != '' ) +{ + $template->assign_block_vars('switch_signature_checkbox', array()); +} + +// +// HTML toggle selection +// +if ( $board_config['allow_html'] ) +{ + $html_status = $lang['HTML_is_ON']; + $template->assign_block_vars('switch_html_checkbox', array()); +} +else +{ + $html_status = $lang['HTML_is_OFF']; +} + +// +// BBCode toggle selection +// +if ( $board_config['allow_bbcode'] ) +{ + $bbcode_status = $lang['BBCode_is_ON']; + $template->assign_block_vars('switch_bbcode_checkbox', array()); +} +else +{ + $bbcode_status = $lang['BBCode_is_OFF']; +} + +// +// Smilies toggle selection +// +if ( $board_config['allow_smilies'] ) +{ + $smilies_status = $lang['Smilies_are_ON']; + $template->assign_block_vars('switch_smilies_checkbox', array()); +} +else +{ + $smilies_status = $lang['Smilies_are_OFF']; +} + +if( !$userdata['session_logged_in'] || ( $mode == 'editpost' && $post_info['poster_id'] == ANONYMOUS ) ) +{ + $template->assign_block_vars('switch_username_select', array()); +} + +// +// Notify checkbox - only show if user is logged in +// +if ( $userdata['session_logged_in'] && $is_auth['auth_read'] ) +{ + if ( $mode != 'editpost' || ( $mode == 'editpost' && $post_info['poster_id'] != ANONYMOUS ) ) + { + $template->assign_block_vars('switch_notify_checkbox', array()); + } +} + +// +// Delete selection +// +if ( $mode == 'editpost' && ( ( $is_auth['auth_delete'] && $post_data['last_post'] && ( !$post_data['has_poll'] || $post_data['edit_poll'] ) ) || $is_auth['auth_mod'] ) ) +{ + $template->assign_block_vars('switch_delete_checkbox', array()); +} + +// +// Topic type selection +// +$topic_type_toggle = ''; +if ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['first_post'] ) ) +{ + $template->assign_block_vars('switch_type_toggle', array()); + + if( $is_auth['auth_sticky'] ) + { + $topic_type_toggle .= ' ' . $lang['Post_Normal'] . '  ' . $topic_type_toggle; + } +} + +$hidden_form_fields = ''; +$hidden_form_fields .= ''; + +switch( $mode ) +{ + case 'newtopic': + $page_title = $lang['Post_a_new_topic']; + $hidden_form_fields .= ''; + break; + + case 'reply': + $page_title = $lang['Post_a_reply']; + $hidden_form_fields .= ''; + break; + + case 'editpost': + $page_title = $lang['Edit_Post']; + $hidden_form_fields .= ''; + break; +} + +// Generate smilies listing for page output +generate_smilies('inline', PAGE_POSTING); + +// +// Include page header +// +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'posting_body.tpl', + 'pollbody' => 'posting_poll_body.tpl', + 'reviewbody' => 'posting_topic_review.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + 'L_POST_A' => $page_title, + 'L_POST_SUBJECT' => $lang['Post_subject'], + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id")) +); + +// +// This enables the forum/topic title to be output for posting +// but not for privmsg (where it makes no sense) +// +$template->assign_block_vars('switch_not_privmsg', array()); + +// +// Output the data to the template +// +$template->assign_vars(array( + 'USERNAME' => $username, + 'SUBJECT' => $subject, + 'MESSAGE' => $message, + 'HTML_STATUS' => $html_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'SMILIES_STATUS' => $smilies_status, + + 'L_SUBJECT' => $lang['Subject'], + 'L_MESSAGE_BODY' => $lang['Message_body'], + 'L_OPTIONS' => $lang['Options'], + 'L_PREVIEW' => $lang['Preview'], + 'L_SPELLCHECK' => $lang['Spellcheck'], + 'L_SUBMIT' => $lang['Submit'], + 'L_CANCEL' => $lang['Cancel'], + 'L_CONFIRM_DELETE' => $lang['Confirm_delete'], + 'L_DISABLE_HTML' => $lang['Disable_HTML_post'], + 'L_DISABLE_BBCODE' => $lang['Disable_BBCode_post'], + 'L_DISABLE_SMILIES' => $lang['Disable_Smilies_post'], + 'L_ATTACH_SIGNATURE' => $lang['Attach_signature'], + 'L_NOTIFY_ON_REPLY' => $lang['Notify'], + 'L_DELETE_POST' => $lang['Delete_post'], + + 'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], + 'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], + 'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], + 'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], + 'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], + 'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], + 'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], + 'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], + 'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], + 'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], + 'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], + 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], + 'L_EMPTY_MESSAGE' => $lang['Empty_message'], + + 'L_FONT_COLOR' => $lang['Font_color'], + 'L_COLOR_DEFAULT' => $lang['color_default'], + 'L_COLOR_DARK_RED' => $lang['color_dark_red'], + 'L_COLOR_RED' => $lang['color_red'], + 'L_COLOR_ORANGE' => $lang['color_orange'], + 'L_COLOR_BROWN' => $lang['color_brown'], + 'L_COLOR_YELLOW' => $lang['color_yellow'], + 'L_COLOR_GREEN' => $lang['color_green'], + 'L_COLOR_OLIVE' => $lang['color_olive'], + 'L_COLOR_CYAN' => $lang['color_cyan'], + 'L_COLOR_BLUE' => $lang['color_blue'], + 'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], + 'L_COLOR_INDIGO' => $lang['color_indigo'], + 'L_COLOR_VIOLET' => $lang['color_violet'], + 'L_COLOR_WHITE' => $lang['color_white'], + 'L_COLOR_BLACK' => $lang['color_black'], + + 'L_FONT_SIZE' => $lang['Font_size'], + 'L_FONT_TINY' => $lang['font_tiny'], + 'L_FONT_SMALL' => $lang['font_small'], + 'L_FONT_NORMAL' => $lang['font_normal'], + 'L_FONT_LARGE' => $lang['font_large'], + 'L_FONT_HUGE' => $lang['font_huge'], + + 'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], + 'L_STYLES_TIP' => $lang['Styles_tip'], + + 'U_VIEWTOPIC' => ( $mode == 'reply' ) ? append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postorder=desc") : '', + 'U_REVIEW_TOPIC' => ( $mode == 'reply' ) ? append_sid("posting.$phpEx?mode=topicreview&" . POST_TOPIC_URL . "=$topic_id") : '', + + 'S_HTML_CHECKED' => ( !$html_on ) ? 'checked="checked"' : '', + 'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? 'checked="checked"' : '', + 'S_SMILIES_CHECKED' => ( !$smilies_on ) ? 'checked="checked"' : '', + 'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? 'checked="checked"' : '', + 'S_NOTIFY_CHECKED' => ( $notify_user ) ? 'checked="checked"' : '', + 'S_TYPE_TOGGLE' => $topic_type_toggle, + 'S_TOPIC_ID' => $topic_id, + 'S_POST_ACTION' => append_sid("posting.$phpEx"), + 'S_HIDDEN_FORM_FIELDS' => $hidden_form_fields) +); + +// +// Poll entry switch/output +// +if( ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['edit_poll']) ) && $is_auth['auth_pollcreate'] ) +{ + $template->assign_vars(array( + 'L_ADD_A_POLL' => $lang['Add_poll'], + 'L_ADD_POLL_EXPLAIN' => $lang['Add_poll_explain'], + 'L_POLL_QUESTION' => $lang['Poll_question'], + 'L_POLL_OPTION' => $lang['Poll_option'], + 'L_ADD_OPTION' => $lang['Add_option'], + 'L_UPDATE_OPTION' => $lang['Update'], + 'L_DELETE_OPTION' => $lang['Delete'], + 'L_POLL_LENGTH' => $lang['Poll_for'], + 'L_DAYS' => $lang['Days'], + 'L_POLL_LENGTH_EXPLAIN' => $lang['Poll_for_explain'], + 'L_POLL_DELETE' => $lang['Delete_poll'], + + 'POLL_TITLE' => $poll_title, + 'POLL_LENGTH' => $poll_length) + ); + + if( $mode == 'editpost' && $post_data['edit_poll'] && $post_data['has_poll']) + { + $template->assign_block_vars('switch_poll_delete_toggle', array()); + } + + if( !empty($poll_options) ) + { + while( list($option_id, $option_text) = each($poll_options) ) + { + $template->assign_block_vars('poll_option_rows', array( + 'POLL_OPTION' => str_replace('"', '"', $option_text), + + 'S_POLL_OPTION_NUM' => $option_id) + ); + } + } + + $template->assign_var_from_handle('POLLBOX', 'pollbody'); +} + +// +// Topic review +// +if( $mode == 'reply' && $is_auth['auth_read'] ) +{ + require($phpbb_root_path . 'includes/topic_review.'.$phpEx); + topic_review($topic_id, true); + + $template->assign_block_vars('switch_inline_mode', array()); + $template->assign_var_from_handle('TOPIC_REVIEW_BOX', 'reviewbody'); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/privmsg.php b/phpBB2/privmsg.php new file mode 100644 index 0000000..655d601 --- /dev/null +++ b/phpBB2/privmsg.php @@ -0,0 +1,2210 @@ +#', '#"#'); +$html_entities_replace = array('&', '<', '>', '"'); + +// +// Parameters +// +$submit = ( isset($HTTP_POST_VARS['post']) ) ? TRUE : 0; +$submit_search = ( isset($HTTP_POST_VARS['usersubmit']) ) ? TRUE : 0; +$submit_msgdays = ( isset($HTTP_POST_VARS['submit_msgdays']) ) ? TRUE : 0; +$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : 0; +$preview = ( isset($HTTP_POST_VARS['preview']) ) ? TRUE : 0; +$confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : 0; +$delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : 0; +$delete_all = ( isset($HTTP_POST_VARS['deleteall']) ) ? TRUE : 0; +$save = ( isset($HTTP_POST_VARS['save']) ) ? TRUE : 0; +$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0; + +$refresh = $preview || $submit_search; + +$mark_list = ( !empty($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : 0; + +if ( isset($HTTP_POST_VARS['folder']) || isset($HTTP_GET_VARS['folder']) ) +{ + $folder = ( isset($HTTP_POST_VARS['folder']) ) ? $HTTP_POST_VARS['folder'] : $HTTP_GET_VARS['folder']; + $folder = htmlspecialchars($folder); + + if ( $folder != 'inbox' && $folder != 'outbox' && $folder != 'sentbox' && $folder != 'savebox' ) + { + $folder = 'inbox'; + } +} +else +{ + $folder = 'inbox'; +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, PAGE_PRIVMSGS); +init_userprefs($userdata); +// +// End session management +// + +// +// Cancel +// +if ( $cancel ) +{ + redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); +} + +// +// Var definitions +// +if ( !empty($HTTP_POST_VARS['mode']) || !empty($HTTP_GET_VARS['mode']) ) +{ + $mode = ( !empty($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ''; +} + +$start = ( !empty($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0; +$start = ($start < 0) ? 0 : $start; + +if ( isset($HTTP_POST_VARS[POST_POST_URL]) || isset($HTTP_GET_VARS[POST_POST_URL]) ) +{ + $privmsg_id = ( isset($HTTP_POST_VARS[POST_POST_URL]) ) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]); +} +else +{ + $privmsg_id = ''; +} + +$error = FALSE; + +// +// Define the box image links +// +$inbox_img = ( $folder != 'inbox' || $mode != '' ) ? '' . $lang['Inbox'] . '' : '' . $lang['Inbox'] . ''; +$inbox_url = ( $folder != 'inbox' || $mode != '' ) ? '' . $lang['Inbox'] . '' : $lang['Inbox']; + +$outbox_img = ( $folder != 'outbox' || $mode != '' ) ? '' . $lang['Outbox'] . '' : '' . $lang['Outbox'] . ''; +$outbox_url = ( $folder != 'outbox' || $mode != '' ) ? '' . $lang['Outbox'] . '' : $lang['Outbox']; + +$sentbox_img = ( $folder != 'sentbox' || $mode != '' ) ? '' . $lang['Sentbox'] . '' : '' . $lang['Sentbox'] . ''; +$sentbox_url = ( $folder != 'sentbox' || $mode != '' ) ? '' . $lang['Sentbox'] . '' : $lang['Sentbox']; + +$savebox_img = ( $folder != 'savebox' || $mode != '' ) ? '' . $lang['Savebox'] . '' : '' . $lang['Savebox'] . ''; +$savebox_url = ( $folder != 'savebox' || $mode != '' ) ? '' . $lang['Savebox'] . '' : $lang['Savebox']; + +// ---------- +// Start main +// +if ( $mode == 'newpm' ) +{ + $gen_simple_header = TRUE; + + $page_title = $lang['Private_Messaging']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'privmsgs_popup.tpl') + ); + + if ( $userdata['session_logged_in'] ) + { + if ( $userdata['user_new_privmsg'] ) + { + $l_new_message = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['You_new_pm'] : $lang['You_new_pms']; + } + else + { + $l_new_message = $lang['You_no_new_pm']; + } + + $l_new_message .= '

    ' . sprintf($lang['Click_view_privmsg'], '', ''); + } + else + { + $l_new_message = $lang['Login_check_pm']; + } + + $template->assign_vars(array( + 'L_CLOSE_WINDOW' => $lang['Close_window'], + 'L_MESSAGE' => $l_new_message) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +} +else if ( $mode == 'read' ) +{ + if ( !empty($HTTP_GET_VARS[POST_POST_URL]) ) + { + $privmsgs_id = intval($HTTP_GET_VARS[POST_POST_URL]); + } + else + { + message_die(GENERAL_ERROR, $lang['No_post_id']); + } + + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=$folder&mode=$mode&" . POST_POST_URL . "=$privmsgs_id", true)); + } + + // + // SQL to pull appropriate message, prevents nosey people + // reading other peoples messages ... hopefully! + // + switch( $folder ) + { + case 'inbox': + $l_box_name = $lang['Inbox']; + $pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + case 'outbox': + $l_box_name = $lang['Outbox']; + $pm_sql_user = "AND pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) "; + break; + case 'sentbox': + $l_box_name = $lang['Sentbox']; + $pm_sql_user = "AND pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + case 'savebox': + $l_box_name = $lang['Savebox']; + $pm_sql_user = "AND ( ( pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) + )"; + break; + default: + message_die(GENERAL_ERROR, $lang['No_such_folder']); + break; + } + + // + // Major query obtains the message ... + // + $sql = "SELECT u.username AS username_1, u.user_id AS user_id_1, u2.username AS username_2, u2.user_id AS user_id_2, u.user_sig_bbcode_uid, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_avatar, pm.*, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text + FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u, " . USERS_TABLE . " u2 + WHERE pm.privmsgs_id = $privmsgs_id + AND pmt.privmsgs_text_id = pm.privmsgs_id + $pm_sql_user + AND u.user_id = pm.privmsgs_from_userid + AND u2.user_id = pm.privmsgs_to_userid"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query private message post information', '', __LINE__, __FILE__, $sql); + } + + // + // Did the query return any data? + // + if ( !($privmsg = $db->sql_fetchrow($result)) ) + { + redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); + } + + $privmsg_id = $privmsg['privmsgs_id']; + + // + // Is this a new message in the inbox? If it is then save + // a copy in the posters sent box + // + if (($privmsg['privmsgs_type'] == PRIVMSGS_NEW_MAIL || $privmsg['privmsgs_type'] == PRIVMSGS_UNREAD_MAIL) && $folder == 'inbox') + { + // Update appropriate counter + switch ($privmsg['privmsgs_type']) + { + case PRIVMSGS_NEW_MAIL: + $sql = "user_new_privmsg = user_new_privmsg - 1"; + break; + case PRIVMSGS_UNREAD_MAIL: + $sql = "user_unread_privmsg = user_unread_privmsg - 1"; + break; + } + + $sql = "UPDATE " . USERS_TABLE . " + SET $sql + WHERE user_id = " . $userdata['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message read status for user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . PRIVMSGS_TABLE . " + SET privmsgs_type = " . PRIVMSGS_READ_MAIL . " + WHERE privmsgs_id = " . $privmsg['privmsgs_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message read status', '', __LINE__, __FILE__, $sql); + } + + // Check to see if the poster has a 'full' sent box + $sql = "SELECT COUNT(privmsgs_id) AS sent_items, MIN(privmsgs_date) AS oldest_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " + AND privmsgs_from_userid = " . $privmsg['privmsgs_from_userid']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain sent message info for sendee', '', __LINE__, __FILE__, $sql); + } + + $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; + + if ( $sent_info = $db->sql_fetchrow($result) ) + { + if ($board_config['max_sentbox_privmsgs'] && $sent_info['sent_items'] >= $board_config['max_sentbox_privmsgs']) + { + $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " + AND privmsgs_date = " . $sent_info['oldest_post_time'] . " + AND privmsgs_from_userid = " . $privmsg['privmsgs_from_userid']; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not find oldest privmsgs', '', __LINE__, __FILE__, $sql); + } + $old_privmsgs_id = $db->sql_fetchrow($result); + $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (sent)', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (sent)', '', __LINE__, __FILE__, $sql); + } + } + } + + // + // This makes a copy of the post and stores it as a SENT message from the sendee. Perhaps + // not the most DB friendly way but a lot easier to manage, besides the admin will be able to + // set limits on numbers of storable posts for users ... hopefully! + // + $sql = "INSERT $sql_priority INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig) + VALUES (" . PRIVMSGS_SENT_MAIL . ", '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_subject'])) . "', " . $privmsg['privmsgs_from_userid'] . ", " . $privmsg['privmsgs_to_userid'] . ", " . $privmsg['privmsgs_date'] . ", '" . $privmsg['privmsgs_ip'] . "', " . $privmsg['privmsgs_enable_html'] . ", " . $privmsg['privmsgs_enable_bbcode'] . ", " . $privmsg['privmsgs_enable_smilies'] . ", " . $privmsg['privmsgs_attach_sig'] . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert private message sent info', '', __LINE__, __FILE__, $sql); + } + + $privmsg_sent_id = $db->sql_nextid(); + + $sql = "INSERT $sql_priority INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text) + VALUES ($privmsg_sent_id, '" . $privmsg['privmsgs_bbcode_uid'] . "', '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_text'])) . "')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert private message sent text', '', __LINE__, __FILE__, $sql); + } + } + + // + // Pick a folder, any folder, so long as it's one below ... + // + $post_urls = array( + 'post' => append_sid("privmsg.$phpEx?mode=post"), + 'reply' => append_sid("privmsg.$phpEx?mode=reply&" . POST_POST_URL . "=$privmsg_id"), + 'quote' => append_sid("privmsg.$phpEx?mode=quote&" . POST_POST_URL . "=$privmsg_id"), + 'edit' => append_sid("privmsg.$phpEx?mode=edit&" . POST_POST_URL . "=$privmsg_id") + ); + $post_icons = array( + 'post_img' => '' . $lang['Post_new_pm'] . '', + 'post' => '' . $lang['Post_new_pm'] . '', + 'reply_img' => '' . $lang['Post_reply_pm'] . '', + 'reply' => '' . $lang['Post_reply_pm'] . '', + 'quote_img' => '' . $lang['Post_quote_pm'] . '', + 'quote' => '' . $lang['Post_quote_pm'] . '', + 'edit_img' => '' . $lang['Edit_pm'] . '', + 'edit' => '' . $lang['Edit_pm'] . '' + ); + + if ( $folder == 'inbox' ) + { + $post_img = $post_icons['post_img']; + $reply_img = $post_icons['reply_img']; + $quote_img = $post_icons['quote_img']; + $edit_img = ''; + $post = $post_icons['post']; + $reply = $post_icons['reply']; + $quote = $post_icons['quote']; + $edit = ''; + $l_box_name = $lang['Inbox']; + } + else if ( $folder == 'outbox' ) + { + $post_img = $post_icons['post_img']; + $reply_img = ''; + $quote_img = ''; + $edit_img = $post_icons['edit_img']; + $post = $post_icons['post']; + $reply = ''; + $quote = ''; + $edit = $post_icons['edit']; + $l_box_name = $lang['Outbox']; + } + else if ( $folder == 'savebox' ) + { + if ( $privmsg['privmsgs_type'] == PRIVMSGS_SAVED_IN_MAIL ) + { + $post_img = $post_icons['post_img']; + $reply_img = $post_icons['reply_img']; + $quote_img = $post_icons['quote_img']; + $edit_img = ''; + $post = $post_icons['post']; + $reply = $post_icons['reply']; + $quote = $post_icons['quote']; + $edit = ''; + } + else + { + $post_img = $post_icons['post_img']; + $reply_img = ''; + $quote_img = ''; + $edit_img = ''; + $post = $post_icons['post']; + $reply = ''; + $quote = ''; + $edit = ''; + } + $l_box_name = $lang['Saved']; + } + else if ( $folder == 'sentbox' ) + { + $post_img = $post_icons['post_img']; + $reply_img = ''; + $quote_img = ''; + $edit_img = ''; + $post = $post_icons['post']; + $reply = ''; + $quote = ''; + $edit = ''; + $l_box_name = $lang['Sent']; + } + + $s_hidden_fields = ''; + + $page_title = $lang['Read_pm']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + // + // Load templates + // + $template->set_filenames(array( + 'body' => 'privmsgs_read_body.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + $template->assign_vars(array( + 'INBOX_IMG' => $inbox_img, + 'SENTBOX_IMG' => $sentbox_img, + 'OUTBOX_IMG' => $outbox_img, + 'SAVEBOX_IMG' => $savebox_img, + 'INBOX' => $inbox_url, + + 'POST_PM_IMG' => $post_img, + 'REPLY_PM_IMG' => $reply_img, + 'EDIT_PM_IMG' => $edit_img, + 'QUOTE_PM_IMG' => $quote_img, + 'POST_PM' => $post, + 'REPLY_PM' => $reply, + 'EDIT_PM' => $edit, + 'QUOTE_PM' => $quote, + + 'SENTBOX' => $sentbox_url, + 'OUTBOX' => $outbox_url, + 'SAVEBOX' => $savebox_url, + + 'BOX_NAME' => $l_box_name, + + 'L_MESSAGE' => $lang['Message'], + 'L_INBOX' => $lang['Inbox'], + 'L_OUTBOX' => $lang['Outbox'], + 'L_SENTBOX' => $lang['Sent'], + 'L_SAVEBOX' => $lang['Saved'], + 'L_FLAG' => $lang['Flag'], + 'L_SUBJECT' => $lang['Subject'], + 'L_POSTED' => $lang['Posted'], + 'L_DATE' => $lang['Date'], + 'L_FROM' => $lang['From'], + 'L_TO' => $lang['To'], + 'L_SAVE_MSG' => $lang['Save_message'], + 'L_DELETE_MSG' => $lang['Delete_message'], + + 'S_PRIVMSGS_ACTION' => append_sid("privmsg.$phpEx?folder=$folder"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $username_from = $privmsg['username_1']; + $user_id_from = $privmsg['user_id_1']; + $username_to = $privmsg['username_2']; + $user_id_to = $privmsg['user_id_2']; + + $post_date = create_date($board_config['default_dateformat'], $privmsg['privmsgs_date'], $board_config['board_timezone']); + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id_from); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id_from"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + if ( !empty($privmsg['user_viewemail']) || $userdata['user_level'] == ADMIN ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id_from) : 'mailto:' . $privmsg['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ''; + $email = ''; + } + + $www_img = ( $privmsg['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $privmsg['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($privmsg['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $privmsg['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $privmsg['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id_from"); + $msn_img = ( $privmsg['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $privmsg['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $privmsg['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $privmsg['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username_from) . "&showresults=posts"); + $search_img = '' . sprintf($lang['Search_user_posts'], $username_from) . ''; + $search = '' . sprintf($lang['Search_user_posts'], $username_from) . ''; + + // + // Processing of post + // + $post_subject = $privmsg['privmsgs_subject']; + + $private_message = $privmsg['privmsgs_text']; + $bbcode_uid = $privmsg['privmsgs_bbcode_uid']; + + if ( $board_config['allow_sig'] ) + { + $user_sig = ( $privmsg['privmsgs_from_userid'] == $userdata['user_id'] ) ? $userdata['user_sig'] : $privmsg['user_sig']; + } + else + { + $user_sig = ''; + } + + $user_sig_bbcode_uid = ( $privmsg['privmsgs_from_userid'] == $userdata['user_id'] ) ? $userdata['user_sig_bbcode_uid'] : $privmsg['user_sig_bbcode_uid']; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] || !$userdata['user_allowhtml']) + { + if ( $user_sig != '') + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + + if ( $privmsg['privmsgs_enable_html'] ) + { + $private_message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $private_message); + } + } + + if ( $user_sig != '' && $privmsg['privmsgs_attach_sig'] && $user_sig_bbcode_uid != '' ) + { + $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig); + } + + if ( $bbcode_uid != '' ) + { + $private_message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($private_message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $private_message); + } + + $private_message = make_clickable($private_message); + + if ( $privmsg['privmsgs_attach_sig'] && $user_sig != '' ) + { + $private_message .= '

    _________________
    ' . make_clickable($user_sig); + } + + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + if ( count($orig_word) ) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + $private_message = preg_replace($orig_word, $replacement_word, $private_message); + } + + if ( $board_config['allow_smilies'] && $privmsg['privmsgs_enable_smilies'] ) + { + $private_message = smilies_pass($private_message); + } + + $private_message = str_replace("\n", '
    ', $private_message); + + // + // Dump it to the templating engine + // + $template->assign_vars(array( + 'MESSAGE_TO' => $username_to, + 'MESSAGE_FROM' => $username_from, + 'RANK_IMAGE' => $rank_image, + 'POSTER_JOINED' => $poster_joined, + 'POSTER_POSTS' => $poster_posts, + 'POSTER_FROM' => $poster_from, + 'POSTER_AVATAR' => $poster_avatar, + 'POST_SUBJECT' => $post_subject, + 'POST_DATE' => $post_date, + 'MESSAGE' => $private_message, + + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +} +else if ( ( $delete && $mark_list ) || $delete_all ) +{ + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true)); + } + + if ( isset($mark_list) && !is_array($mark_list) ) + { + // Set to empty array instead of '0' if nothing is selected. + $mark_list = array(); + } + + if ( !$confirm ) + { + $s_hidden_fields = ''; + $s_hidden_fields .= ( isset($HTTP_POST_VARS['delete']) ) ? '' : ''; + + for($i = 0; $i < count($mark_list); $i++) + { + $s_hidden_fields .= ''; + } + + // + // Output confirmation page + // + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'confirm_body' => 'confirm_body.tpl') + ); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Information'], + 'MESSAGE_TEXT' => ( count($mark_list) == 1 ) ? $lang['Confirm_delete_pm'] : $lang['Confirm_delete_pms'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("privmsg.$phpEx?folder=$folder"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('confirm_body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + + } + else if ( $confirm ) + { + $delete_sql_id = ''; + + if (!$delete_all) + { + for ($i = 0; $i < count($mark_list); $i++) + { + $delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]); + } + $delete_sql_id = "AND privmsgs_id IN ($delete_sql_id)"; + } + + switch($folder) + { + case 'inbox': + $delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND ( + privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'outbox': + $delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'sentbox': + $delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + + case 'savebox': + $delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) + OR ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )"; + break; + } + + $sql = "SELECT privmsgs_id + FROM " . PRIVMSGS_TABLE . " + WHERE $delete_type $delete_sql_id"; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain id list to delete messages', '', __LINE__, __FILE__, $sql); + } + + $mark_list = array(); + while ( $row = $db->sql_fetchrow($result) ) + { + $mark_list[] = $row['privmsgs_id']; + } + + unset($delete_type); + + if ( count($mark_list) ) + { + $delete_sql_id = ''; + for ($i = 0; $i < sizeof($mark_list); $i++) + { + $delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]); + } + + if ($folder == 'inbox' || $folder == 'outbox') + { + switch ($folder) + { + case 'inbox': + $sql = "privmsgs_to_userid = " . $userdata['user_id']; + break; + case 'outbox': + $sql = "privmsgs_from_userid = " . $userdata['user_id']; + break; + } + + // Get information relevant to new or unread mail + // so we can adjust users counters appropriately + $sql = "SELECT privmsgs_to_userid, privmsgs_type + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id) + AND $sql + AND privmsgs_type IN (" . PRIVMSGS_NEW_MAIL . ", " . PRIVMSGS_UNREAD_MAIL . ")"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user id list for outbox messages', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result)) + { + $update_users = $update_list = array(); + + do + { + switch ($row['privmsgs_type']) + { + case PRIVMSGS_NEW_MAIL: + $update_users['new'][$row['privmsgs_to_userid']]++; + break; + + case PRIVMSGS_UNREAD_MAIL: + $update_users['unread'][$row['privmsgs_to_userid']]++; + break; + } + } + while ($row = $db->sql_fetchrow($result)); + + if (sizeof($update_users)) + { + while (list($type, $users) = each($update_users)) + { + while (list($user_id, $dec) = each($users)) + { + $update_list[$type][$dec][] = $user_id; + } + } + unset($update_users); + + while (list($type, $dec_ary) = each($update_list)) + { + switch ($type) + { + case 'new': + $type = "user_new_privmsg"; + break; + + case 'unread': + $type = "user_unread_privmsg"; + break; + } + + while (list($dec, $user_ary) = each($dec_ary)) + { + $user_ids = implode(', ', $user_ary); + + $sql = "UPDATE " . USERS_TABLE . " + SET $type = $type - $dec + WHERE user_id IN ($user_ids)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user pm counters', '', __LINE__, __FILE__, $sql); + } + } + } + unset($update_list); + } + } + $db->sql_freeresult($result); + } + + // Delete the messages + $delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id IN ($delete_sql_id)"; + $delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id) + AND "; + + switch( $folder ) + { + case 'inbox': + $delete_sql .= "privmsgs_to_userid = " . $userdata['user_id'] . " AND ( + privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'outbox': + $delete_sql .= "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( + privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'sentbox': + $delete_sql .= "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + + case 'savebox': + $delete_sql .= "( ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) + OR ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )"; + break; + } + + if ( !$db->sql_query($delete_sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql); + } + + if ( !$db->sql_query($delete_text_sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql); + } + } + } +} +else if ( $save && $mark_list && $folder != 'savebox' && $folder != 'outbox' ) +{ + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true)); + } + + if (sizeof($mark_list)) + { + // See if recipient is at their savebox limit + $sql = "SELECT COUNT(privmsgs_id) AS savebox_items, MIN(privmsgs_date) AS oldest_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") )"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain sent message info for sendee', '', __LINE__, __FILE__, $sql); + } + + $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; + + if ( $saved_info = $db->sql_fetchrow($result) ) + { + if ($board_config['max_savebox_privmsgs'] && $saved_info['savebox_items'] >= $board_config['max_savebox_privmsgs'] ) + { + $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " + WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") ) + AND privmsgs_date = " . $saved_info['oldest_post_time']; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not find oldest privmsgs (save)', '', __LINE__, __FILE__, $sql); + } + $old_privmsgs_id = $db->sql_fetchrow($result); + $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (save)', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (save)', '', __LINE__, __FILE__, $sql); + } + } + } + + $saved_sql_id = ''; + for ($i = 0; $i < sizeof($mark_list); $i++) + { + $saved_sql_id .= (($saved_sql_id != '') ? ', ' : '') . intval($mark_list[$i]); + } + + // Process request + $saved_sql = "UPDATE " . PRIVMSGS_TABLE; + + // Decrement read/new counters if appropriate + if ($folder == 'inbox' || $folder == 'outbox') + { + switch ($folder) + { + case 'inbox': + $sql = "privmsgs_to_userid = " . $userdata['user_id']; + break; + case 'outbox': + $sql = "privmsgs_from_userid = " . $userdata['user_id']; + break; + } + + // Get information relevant to new or unread mail + // so we can adjust users counters appropriately + $sql = "SELECT privmsgs_to_userid, privmsgs_type + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($saved_sql_id) + AND $sql + AND privmsgs_type IN (" . PRIVMSGS_NEW_MAIL . ", " . PRIVMSGS_UNREAD_MAIL . ")"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user id list for outbox messages', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result)) + { + $update_users = $update_list = array(); + + do + { + switch ($row['privmsgs_type']) + { + case PRIVMSGS_NEW_MAIL: + $update_users['new'][$row['privmsgs_to_userid']]++; + break; + + case PRIVMSGS_UNREAD_MAIL: + $update_users['unread'][$row['privmsgs_to_userid']]++; + break; + } + } + while ($row = $db->sql_fetchrow($result)); + + if (sizeof($update_users)) + { + while (list($type, $users) = each($update_users)) + { + while (list($user_id, $dec) = each($users)) + { + $update_list[$type][$dec][] = $user_id; + } + } + unset($update_users); + + while (list($type, $dec_ary) = each($update_list)) + { + switch ($type) + { + case 'new': + $type = "user_new_privmsg"; + break; + + case 'unread': + $type = "user_unread_privmsg"; + break; + } + + while (list($dec, $user_ary) = each($dec_ary)) + { + $user_ids = implode(', ', $user_ary); + + $sql = "UPDATE " . USERS_TABLE . " + SET $type = $type - $dec + WHERE user_id IN ($user_ids)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user pm counters', '', __LINE__, __FILE__, $sql); + } + } + } + unset($update_list); + } + } + $db->sql_freeresult($result); + } + + switch ($folder) + { + case 'inbox': + $saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " + WHERE privmsgs_to_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . ")"; + break; + + case 'outbox': + $saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " + WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) "; + break; + + case 'sentbox': + $saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " + WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + } + + $saved_sql .= " AND privmsgs_id IN ($saved_sql_id)"; + + if ( !$db->sql_query($saved_sql) ) + { + message_die(GENERAL_ERROR, 'Could not save private messages', '', __LINE__, __FILE__, $saved_sql); + } + + redirect(append_sid("privmsg.$phpEx?folder=savebox", true)); + } +} +else if ( $submit || $refresh || $mode != '' ) +{ + if ( !$userdata['session_logged_in'] ) + { + $user_id = ( isset($HTTP_GET_VARS[POST_USERS_URL]) ) ? '&' . POST_USERS_URL . '=' . intval($HTTP_GET_VARS[POST_USERS_URL]) : ''; + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=$folder&mode=$mode" . $user_id, true)); + } + + // + // Toggles + // + if ( !$board_config['allow_html'] ) + { + $html_on = 0; + } + else + { + $html_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_html']) ) ? 0 : TRUE ) : $userdata['user_allowhtml']; + } + + if ( !$board_config['allow_bbcode'] ) + { + $bbcode_on = 0; + } + else + { + $bbcode_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_bbcode']) ) ? 0 : TRUE ) : $userdata['user_allowbbcode']; + } + + if ( !$board_config['allow_smilies'] ) + { + $smilies_on = 0; + } + else + { + $smilies_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_smilies']) ) ? 0 : TRUE ) : $userdata['user_allowsmile']; + } + + $attach_sig = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['attach_sig']) ) ? TRUE : 0 ) : $userdata['user_attachsig']; + $user_sig = ( $userdata['user_sig'] != '' && $board_config['allow_sig'] ) ? $userdata['user_sig'] : ""; + + if ( $submit && $mode != 'edit' ) + { + // + // Flood control + // + $sql = "SELECT MAX(privmsgs_date) AS last_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_from_userid = " . $userdata['user_id']; + if ( $result = $db->sql_query($sql) ) + { + $db_row = $db->sql_fetchrow($result); + + $last_post_time = $db_row['last_post_time']; + $current_time = time(); + + if ( ( $current_time - $last_post_time ) < $board_config['flood_interval']) + { + message_die(GENERAL_MESSAGE, $lang['Flood_Error']); + } + } + // + // End Flood control + // + } + + if ($submit && $mode == 'edit') + { + $sql = 'SELECT privmsgs_from_userid + FROM ' . PRIVMSGS_TABLE . ' + WHERE privmsgs_id = ' . (int) $privmsg_id . ' + AND privmsgs_from_userid = ' . $userdata['user_id']; + + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, "Could not obtain message details", "", __LINE__, __FILE__, $sql); + } + + if (!($row = $db->sql_fetchrow($result))) + { + message_die(GENERAL_MESSAGE, $lang['No_such_post']); + } + $db->sql_freeresult($result); + + unset($row); + } + + if ( $submit ) + { + // session id check + if ($sid == '' || $sid != $userdata['session_id']) + { + $error = true; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['Session_invalid']; + } + + if ( !empty($HTTP_POST_VARS['username']) ) + { + $to_username = phpbb_clean_username($HTTP_POST_VARS['username']); + + $sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active + FROM " . USERS_TABLE . " + WHERE username = '" . str_replace("\'", "''", $to_username) . "' + AND user_id <> " . ANONYMOUS; + if ( !($result = $db->sql_query($sql)) ) + { + $error = TRUE; + $error_msg = $lang['No_such_user']; + } + + if (!($to_userdata = $db->sql_fetchrow($result))) + { + $error = TRUE; + $error_msg = $lang['No_such_user']; + } + } + else + { + $error = TRUE; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['No_to_user']; + } + + $privmsg_subject = trim(htmlspecialchars($HTTP_POST_VARS['subject'])); + if ( empty($privmsg_subject) ) + { + $error = TRUE; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['Empty_subject']; + } + + if ( !empty($HTTP_POST_VARS['message']) ) + { + if ( !$error ) + { + if ( $bbcode_on ) + { + $bbcode_uid = make_bbcode_uid(); + } + + $privmsg_message = prepare_message($HTTP_POST_VARS['message'], $html_on, $bbcode_on, $smilies_on, $bbcode_uid); + + } + } + else + { + $error = TRUE; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['Empty_message']; + } + } + + if ( $submit && !$error ) + { + // + // Has admin prevented user from sending PM's? + // + if ( !$userdata['user_allow_pm'] ) + { + $message = $lang['Cannot_send_privmsg']; + message_die(GENERAL_MESSAGE, $message); + } + + $msg_time = time(); + + if ( $mode != 'edit' ) + { + // + // See if recipient is at their inbox limit + // + $sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) + AND privmsgs_to_userid = " . $to_userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_user']); + } + + $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; + + if ( $inbox_info = $db->sql_fetchrow($result) ) + { + if ($board_config['max_inbox_privmsgs'] && $inbox_info['inbox_items'] >= $board_config['max_inbox_privmsgs']) + { + $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " + WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) + AND privmsgs_date = " . $inbox_info['oldest_post_time'] . " + AND privmsgs_to_userid = " . $to_userdata['user_id']; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not find oldest privmsgs (inbox)', '', __LINE__, __FILE__, $sql); + } + $old_privmsgs_id = $db->sql_fetchrow($result); + $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (inbox)'.$sql, '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (inbox)', '', __LINE__, __FILE__, $sql); + } + } + } + + $sql_info = "INSERT INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig) + VALUES (" . PRIVMSGS_NEW_MAIL . ", '" . str_replace("\'", "''", $privmsg_subject) . "', " . $userdata['user_id'] . ", " . $to_userdata['user_id'] . ", $msg_time, '$user_ip', $html_on, $bbcode_on, $smilies_on, $attach_sig)"; + } + else + { + $sql_info = "UPDATE " . PRIVMSGS_TABLE . " + SET privmsgs_type = " . PRIVMSGS_NEW_MAIL . ", privmsgs_subject = '" . str_replace("\'", "''", $privmsg_subject) . "', privmsgs_from_userid = " . $userdata['user_id'] . ", privmsgs_to_userid = " . $to_userdata['user_id'] . ", privmsgs_date = $msg_time, privmsgs_ip = '$user_ip', privmsgs_enable_html = $html_on, privmsgs_enable_bbcode = $bbcode_on, privmsgs_enable_smilies = $smilies_on, privmsgs_attach_sig = $attach_sig + WHERE privmsgs_id = $privmsg_id"; + } + + if ( !($result = $db->sql_query($sql_info, BEGIN_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, "Could not insert/update private message sent info.", "", __LINE__, __FILE__, $sql_info); + } + + if ( $mode != 'edit' ) + { + $privmsg_sent_id = $db->sql_nextid(); + + $sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text) + VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . str_replace("\'", "''", $privmsg_message) . "')"; + } + else + { + $sql = "UPDATE " . PRIVMSGS_TEXT_TABLE . " + SET privmsgs_text = '" . str_replace("\'", "''", $privmsg_message) . "', privmsgs_bbcode_uid = '$bbcode_uid' + WHERE privmsgs_text_id = $privmsg_id"; + } + + if ( !$db->sql_query($sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql); + } + + if ( $mode != 'edit' ) + { + // + // Add to the users new pm counter + // + $sql = "UPDATE " . USERS_TABLE . " + SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . " + WHERE user_id = " . $to_userdata['user_id']; + if ( !$status = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql); + } + + if ( $to_userdata['user_notify_pm'] && !empty($to_userdata['user_email']) && $to_userdata['user_active'] ) + { + $script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path'])); + $script_name = ( $script_name != '' ) ? $script_name . '/privmsg.'.$phpEx : 'privmsg.'.$phpEx; + $server_name = trim($board_config['server_name']); + $server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://'; + $server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('privmsg_notify', $to_userdata['user_lang']); + $emailer->email_address($to_userdata['user_email']); + $emailer->set_subject($lang['Notification_subject']); + + $emailer->assign_vars(array( + 'USERNAME' => stripslashes($to_username), + 'SITENAME' => $board_config['sitename'], + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_INBOX' => $server_protocol . $server_name . $server_port . $script_name . '?folder=inbox') + ); + + $emailer->send(); + $emailer->reset(); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $msg = $lang['Message_sent'] . '

    ' . sprintf($lang['Click_return_inbox'], '', ' ') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $msg); + } + else if ( $preview || $refresh || $error ) + { + + // + // If we're previewing or refreshing then obtain the data + // passed to the script, process it a little, do some checks + // where neccessary, etc. + // + $to_username = (isset($HTTP_POST_VARS['username']) ) ? trim(htmlspecialchars(stripslashes($HTTP_POST_VARS['username']))) : ''; + + $privmsg_subject = ( isset($HTTP_POST_VARS['subject']) ) ? trim(htmlspecialchars(stripslashes($HTTP_POST_VARS['subject']))) : ''; + $privmsg_message = ( isset($HTTP_POST_VARS['message']) ) ? trim($HTTP_POST_VARS['message']) : ''; + // $privmsg_message = preg_replace('##si', '</textarea>', $privmsg_message); + + $user_sig = ( $board_config['allow_sig'] ) ? (($privmsg['privmsgs_type'] == PRIVMSGS_NEW_MAIL) ? $user_sig : $privmsg['user_sig']) : ''; + + $to_username = $privmsg['username']; + $to_userid = $privmsg['user_id']; + + } + else if ( $mode == 'reply' || $mode == 'quote' ) + { + + $sql = "SELECT pm.privmsgs_subject, pm.privmsgs_date, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text, u.username, u.user_id + FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u + WHERE pm.privmsgs_id = $privmsg_id + AND pmt.privmsgs_text_id = pm.privmsgs_id + AND pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_from_userid"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain private message for editing', '', __LINE__, __FILE__, $sql); + } + + if ( !($privmsg = $db->sql_fetchrow($result)) ) + { + redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); + } + + $orig_word = $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $privmsg_subject = ( ( !preg_match('/^Re:/', $privmsg['privmsgs_subject']) ) ? 'Re: ' : '' ) . $privmsg['privmsgs_subject']; + $privmsg_subject = preg_replace($orig_word, $replacement_word, $privmsg_subject); + + $to_username = $privmsg['username']; + $to_userid = $privmsg['user_id']; + + if ( $mode == 'quote' ) + { + $privmsg_message = $privmsg['privmsgs_text']; + $privmsg_bbcode_uid = $privmsg['privmsgs_bbcode_uid']; + + $privmsg_message = preg_replace("/\:(([a-z0-9]:)?)$privmsg_bbcode_uid/si", '', $privmsg_message); + $privmsg_message = str_replace('
    ', "\n", $privmsg_message); + // $privmsg_message = preg_replace('##si', '</textarea>', $privmsg_message); + $privmsg_message = preg_replace($orig_word, $replacement_word, $privmsg_message); + + $msg_date = create_date($board_config['default_dateformat'], $privmsg['privmsgs_date'], $board_config['board_timezone']); + + $privmsg_message = '[quote="' . $to_username . '"]' . $privmsg_message . '[/quote]'; + + $mode = 'reply'; + } + } + else + { + $privmsg_subject = $privmsg_message = $to_username = ''; + } + } + + // + // Has admin prevented user from sending PM's? + // + if ( !$userdata['user_allow_pm'] && $mode != 'edit' ) + { + $message = $lang['Cannot_send_privmsg']; + message_die(GENERAL_MESSAGE, $message); + } + + // + // Start output, first preview, then errors then post form + // + $page_title = $lang['Send_private_message']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $preview && !$error ) + { + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + if ( $bbcode_on ) + { + $bbcode_uid = make_bbcode_uid(); + } + + $preview_message = stripslashes(prepare_message($privmsg_message, $html_on, $bbcode_on, $smilies_on, $bbcode_uid)); + $privmsg_message = stripslashes(preg_replace($html_entities_match, $html_entities_replace, $privmsg_message)); + + // + // Finalise processing as per viewtopic + // + if ( !$html_on || !$board_config['allow_html'] || !$userdata['user_allowhtml'] ) + { + if ( $user_sig != '' ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + } + + if ( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] ) + { + $user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']); + } + + if ( $bbcode_on ) + { + $preview_message = bbencode_second_pass($preview_message, $bbcode_uid); + } + + if ( $attach_sig && $user_sig != '' ) + { + $preview_message = $preview_message . '

    _________________
    ' . $user_sig; + } + + if ( count($orig_word) ) + { + $preview_subject = preg_replace($orig_word, $replacement_word, $privmsg_subject); + $preview_message = preg_replace($orig_word, $replacement_word, $preview_message); + } + else + { + $preview_subject = $privmsg_subject; + } + + if ( $smilies_on ) + { + $preview_message = smilies_pass($preview_message); + } + + $preview_message = make_clickable($preview_message); + $preview_message = str_replace("\n", '
    ', $preview_message); + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + if ( isset($privmsg_id) ) + { + $s_hidden_fields .= ''; + } + + $template->set_filenames(array( + "preview" => 'privmsgs_preview.tpl') + ); + + $template->assign_vars(array( + 'TOPIC_TITLE' => $preview_subject, + 'POST_SUBJECT' => $preview_subject, + 'MESSAGE_TO' => $to_username, + 'MESSAGE_FROM' => $userdata['username'], + 'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']), + 'MESSAGE' => $preview_message, + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + + 'L_SUBJECT' => $lang['Subject'], + 'L_DATE' => $lang['Date'], + 'L_FROM' => $lang['From'], + 'L_TO' => $lang['To'], + 'L_PREVIEW' => $lang['Preview'], + 'L_POSTED' => $lang['Posted']) + ); + + $template->assign_var_from_handle('POST_PREVIEW_BOX', 'preview'); + } + + // + // Start error handling + // + if ($error) + { + $privmsg_message = htmlspecialchars($privmsg_message); + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } + + // + // Load templates + // + $template->set_filenames(array( + 'body' => 'posting_body.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + // + // Enable extensions in posting_body + // + $template->assign_block_vars('switch_privmsg', array()); + + // + // HTML toggle selection + // + if ( $board_config['allow_html'] ) + { + $html_status = $lang['HTML_is_ON']; + $template->assign_block_vars('switch_html_checkbox', array()); + } + else + { + $html_status = $lang['HTML_is_OFF']; + } + + // + // BBCode toggle selection + // + if ( $board_config['allow_bbcode'] ) + { + $bbcode_status = $lang['BBCode_is_ON']; + $template->assign_block_vars('switch_bbcode_checkbox', array()); + } + else + { + $bbcode_status = $lang['BBCode_is_OFF']; + } + + // + // Smilies toggle selection + // + if ( $board_config['allow_smilies'] ) + { + $smilies_status = $lang['Smilies_are_ON']; + $template->assign_block_vars('switch_smilies_checkbox', array()); + } + else + { + $smilies_status = $lang['Smilies_are_OFF']; + } + + // + // Signature toggle selection - only show if + // the user has a signature + // + if ( $user_sig != '' ) + { + $template->assign_block_vars('switch_signature_checkbox', array()); + } + + if ( $mode == 'post' ) + { + $post_a = $lang['Send_a_new_message']; + } + else if ( $mode == 'reply' ) + { + $post_a = $lang['Send_a_reply']; + $mode = 'post'; + } + else if ( $mode == 'edit' ) + { + $post_a = $lang['Edit_message']; + } + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + if ( $mode == 'edit' ) + { + $s_hidden_fields .= ''; + } + + // + // Send smilies to template + // + generate_smilies('inline', PAGE_PRIVMSGS); + + $template->assign_vars(array( + 'SUBJECT' => $privmsg_subject, + 'USERNAME' => $to_username, + 'MESSAGE' => $privmsg_message, + 'HTML_STATUS' => $html_status, + 'SMILIES_STATUS' => $smilies_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'FORUM_NAME' => $lang['Private_Message'], + + 'BOX_NAME' => $l_box_name, + 'INBOX_IMG' => $inbox_img, + 'SENTBOX_IMG' => $sentbox_img, + 'OUTBOX_IMG' => $outbox_img, + 'SAVEBOX_IMG' => $savebox_img, + 'INBOX' => $inbox_url, + 'SENTBOX' => $sentbox_url, + 'OUTBOX' => $outbox_url, + 'SAVEBOX' => $savebox_url, + + 'L_SUBJECT' => $lang['Subject'], + 'L_MESSAGE_BODY' => $lang['Message_body'], + 'L_OPTIONS' => $lang['Options'], + 'L_SPELLCHECK' => $lang['Spellcheck'], + 'L_PREVIEW' => $lang['Preview'], + 'L_SUBMIT' => $lang['Submit'], + 'L_CANCEL' => $lang['Cancel'], + 'L_POST_A' => $post_a, + 'L_FIND_USERNAME' => $lang['Find_username'], + 'L_FIND' => $lang['Find'], + 'L_DISABLE_HTML' => $lang['Disable_HTML_pm'], + 'L_DISABLE_BBCODE' => $lang['Disable_BBCode_pm'], + 'L_DISABLE_SMILIES' => $lang['Disable_Smilies_pm'], + 'L_ATTACH_SIGNATURE' => $lang['Attach_signature'], + + 'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], + 'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], + 'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], + 'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], + 'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], + 'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], + 'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], + 'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], + 'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], + 'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], + 'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], + 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], + 'L_EMPTY_MESSAGE' => $lang['Empty_message'], + + 'L_FONT_COLOR' => $lang['Font_color'], + 'L_COLOR_DEFAULT' => $lang['color_default'], + 'L_COLOR_DARK_RED' => $lang['color_dark_red'], + 'L_COLOR_RED' => $lang['color_red'], + 'L_COLOR_ORANGE' => $lang['color_orange'], + 'L_COLOR_BROWN' => $lang['color_brown'], + 'L_COLOR_YELLOW' => $lang['color_yellow'], + 'L_COLOR_GREEN' => $lang['color_green'], + 'L_COLOR_OLIVE' => $lang['color_olive'], + 'L_COLOR_CYAN' => $lang['color_cyan'], + 'L_COLOR_BLUE' => $lang['color_blue'], + 'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], + 'L_COLOR_INDIGO' => $lang['color_indigo'], + 'L_COLOR_VIOLET' => $lang['color_violet'], + 'L_COLOR_WHITE' => $lang['color_white'], + 'L_COLOR_BLACK' => $lang['color_black'], + + 'L_FONT_SIZE' => $lang['Font_size'], + 'L_FONT_TINY' => $lang['font_tiny'], + 'L_FONT_SMALL' => $lang['font_small'], + 'L_FONT_NORMAL' => $lang['font_normal'], + 'L_FONT_LARGE' => $lang['font_large'], + 'L_FONT_HUGE' => $lang['font_huge'], + + 'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], + 'L_STYLES_TIP' => $lang['Styles_tip'], + + 'S_HTML_CHECKED' => ( !$html_on ) ? ' checked="checked"' : '', + 'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? ' checked="checked"' : '', + 'S_SMILIES_CHECKED' => ( !$smilies_on ) ? ' checked="checked"' : '', + 'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? ' checked="checked"' : '', + 'S_HIDDEN_FORM_FIELDS' => $s_hidden_fields, + 'S_POST_ACTION' => append_sid("privmsg.$phpEx"), + + 'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"), + 'U_VIEW_FORUM' => append_sid("privmsg.$phpEx")) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); +} + +// +// Default page +// +if ( !$userdata['session_logged_in'] ) +{ + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true)); +} + +// +// Update unread status +// +$sql = "UPDATE " . USERS_TABLE . " + SET user_unread_privmsg = user_unread_privmsg + user_new_privmsg, user_new_privmsg = 0, user_last_privmsg = " . $userdata['session_start'] . " + WHERE user_id = " . $userdata['user_id']; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql); +} + +$sql = "UPDATE " . PRIVMSGS_TABLE . " + SET privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " + WHERE privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + AND privmsgs_to_userid = " . $userdata['user_id']; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, 'Could not update private message new/read status (2) for user', '', __LINE__, __FILE__, $sql); +} + +// +// Reset PM counters +// +$userdata['user_new_privmsg'] = 0; +$userdata['user_unread_privmsg'] = ( $userdata['user_new_privmsg'] + $userdata['user_unread_privmsg'] ); + +// +// Generate page +// +$page_title = $lang['Private_Messaging']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +// +// Load templates +// +$template->set_filenames(array( + 'body' => 'privmsgs_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// New message +// +$post_new_mesg_url = '' . $lang['Send_a_new_message'] . ''; + +// +// General SQL to obtain messages +// +$sql_tot = "SELECT COUNT(privmsgs_id) AS total + FROM " . PRIVMSGS_TABLE . " "; +$sql = "SELECT pm.privmsgs_type, pm.privmsgs_id, pm.privmsgs_date, pm.privmsgs_subject, u.user_id, u.username + FROM " . PRIVMSGS_TABLE . " pm, " . USERS_TABLE . " u "; +switch( $folder ) +{ + case 'inbox': + $sql_tot .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + + $sql .= "WHERE pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_from_userid + AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'outbox': + $sql_tot .= "WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + + $sql .= "WHERE pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_to_userid + AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'sentbox': + $sql_tot .= "WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + + $sql .= "WHERE pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_to_userid + AND pm.privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + + case 'savebox': + $sql_tot .= "WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") )"; + + $sql .= "WHERE u.user_id = pm.privmsgs_from_userid + AND ( ( pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) )"; + break; + + default: + message_die(GENERAL_MESSAGE, $lang['No_such_folder']); + break; +} + +// +// Show messages over previous x days/months +// +if ( $submit_msgdays && ( !empty($HTTP_POST_VARS['msgdays']) || !empty($HTTP_GET_VARS['msgdays']) ) ) +{ + $msg_days = ( !empty($HTTP_POST_VARS['msgdays']) ) ? intval($HTTP_POST_VARS['msgdays']) : intval($HTTP_GET_VARS['msgdays']); + $min_msg_time = time() - ($msg_days * 86400); + + $limit_msg_time_total = " AND privmsgs_date > $min_msg_time"; + $limit_msg_time = " AND pm.privmsgs_date > $min_msg_time "; + + if ( !empty($HTTP_POST_VARS['msgdays']) ) + { + $start = 0; + } +} +else +{ + $limit_msg_time = $limit_msg_time_total = ''; + $msg_days = 0; +} + +$sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . $board_config['topics_per_page']; +$sql_all_tot = $sql_tot; +$sql_tot .= $limit_msg_time_total; + +// +// Get messages +// +if ( !($result = $db->sql_query($sql_tot)) ) +{ + message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql_tot); +} + +$pm_total = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0; + +if ( !($result = $db->sql_query($sql_all_tot)) ) +{ + message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql_tot); +} + +$pm_all_total = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0; + +// +// Build select box +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +$select_msg_days = ''; +for($i = 0; $i < count($previous_days); $i++) +{ + $selected = ( $msg_days == $previous_days[$i] ) ? ' selected="selected"' : ''; + $select_msg_days .= ''; +} + +// +// Define correct icons +// +switch ( $folder ) +{ + case 'inbox': + $l_box_name = $lang['Inbox']; + break; + case 'outbox': + $l_box_name = $lang['Outbox']; + break; + case 'savebox': + $l_box_name = $lang['Savebox']; + break; + case 'sentbox': + $l_box_name = $lang['Sentbox']; + break; +} +$post_pm = append_sid("privmsg.$phpEx?mode=post"); +$post_pm_img = '' . $lang['Post_new_pm'] . ''; +$post_pm = '' . $lang['Post_new_pm'] . ''; + +// +// Output data for inbox status +// +if ( $folder != 'outbox' ) +{ + $inbox_limit_pct = ( $board_config['max_' . $folder . '_privmsgs'] > 0 ) ? round(( $pm_all_total / $board_config['max_' . $folder . '_privmsgs'] ) * 100) : 100; + $inbox_limit_img_length = ( $board_config['max_' . $folder . '_privmsgs'] > 0 ) ? round(( $pm_all_total / $board_config['max_' . $folder . '_privmsgs'] ) * $board_config['privmsg_graphic_length']) : $board_config['privmsg_graphic_length']; + $inbox_limit_remain = ( $board_config['max_' . $folder . '_privmsgs'] > 0 ) ? $board_config['max_' . $folder . '_privmsgs'] - $pm_all_total : 0; + + $template->assign_block_vars('switch_box_size_notice', array()); + + switch( $folder ) + { + case 'inbox': + $l_box_size_status = sprintf($lang['Inbox_size'], $inbox_limit_pct); + break; + case 'sentbox': + $l_box_size_status = sprintf($lang['Sentbox_size'], $inbox_limit_pct); + break; + case 'savebox': + $l_box_size_status = sprintf($lang['Savebox_size'], $inbox_limit_pct); + break; + default: + $l_box_size_status = ''; + break; + } +} +else +{ + $inbox_limit_img_length = $inbox_limit_pct = $l_box_size_status = ''; +} + +// +// Dump vars to template +// +$template->assign_vars(array( + 'BOX_NAME' => $l_box_name, + 'INBOX_IMG' => $inbox_img, + 'SENTBOX_IMG' => $sentbox_img, + 'OUTBOX_IMG' => $outbox_img, + 'SAVEBOX_IMG' => $savebox_img, + 'INBOX' => $inbox_url, + 'SENTBOX' => $sentbox_url, + 'OUTBOX' => $outbox_url, + 'SAVEBOX' => $savebox_url, + + 'POST_PM_IMG' => $post_pm_img, + 'POST_PM' => $post_pm, + + 'INBOX_LIMIT_IMG_WIDTH' => $inbox_limit_img_length, + 'INBOX_LIMIT_PERCENT' => $inbox_limit_pct, + + 'BOX_SIZE_STATUS' => $l_box_size_status, + + 'L_INBOX' => $lang['Inbox'], + 'L_OUTBOX' => $lang['Outbox'], + 'L_SENTBOX' => $lang['Sent'], + 'L_SAVEBOX' => $lang['Saved'], + 'L_MARK' => $lang['Mark'], + 'L_FLAG' => $lang['Flag'], + 'L_SUBJECT' => $lang['Subject'], + 'L_DATE' => $lang['Date'], + 'L_DISPLAY_MESSAGES' => $lang['Display_messages'], + 'L_FROM_OR_TO' => ( $folder == 'inbox' || $folder == 'savebox' ) ? $lang['From'] : $lang['To'], + 'L_MARK_ALL' => $lang['Mark_all'], + 'L_UNMARK_ALL' => $lang['Unmark_all'], + 'L_DELETE_MARKED' => $lang['Delete_marked'], + 'L_DELETE_ALL' => $lang['Delete_all'], + 'L_SAVE_MARKED' => $lang['Save_marked'], + + 'S_PRIVMSGS_ACTION' => append_sid("privmsg.$phpEx?folder=$folder"), + 'S_HIDDEN_FIELDS' => '', + 'S_POST_NEW_MSG' => $post_new_mesg_url, + 'S_SELECT_MSG_DAYS' => $select_msg_days, + + 'U_POST_NEW_TOPIC' => append_sid("privmsg.$phpEx?mode=post")) +); + +// +// Okay, let's build the correct folder +// +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query private messages', '', __LINE__, __FILE__, $sql); +} + +if ( $row = $db->sql_fetchrow($result) ) +{ + $i = 0; + do + { + $privmsg_id = $row['privmsgs_id']; + + $flag = $row['privmsgs_type']; + + $icon_flag = ( $flag == PRIVMSGS_NEW_MAIL || $flag == PRIVMSGS_UNREAD_MAIL ) ? $images['pm_unreadmsg'] : $images['pm_readmsg']; + $icon_flag_alt = ( $flag == PRIVMSGS_NEW_MAIL || $flag == PRIVMSGS_UNREAD_MAIL ) ? $lang['Unread_message'] : $lang['Read_message']; + + $msg_userid = $row['user_id']; + $msg_username = $row['username']; + + $u_from_user_profile = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$msg_userid"); + + $msg_subject = $row['privmsgs_subject']; + + if ( count($orig_word) ) + { + $msg_subject = preg_replace($orig_word, $replacement_word, $msg_subject); + } + + $u_subject = append_sid("privmsg.$phpEx?folder=$folder&mode=read&" . POST_POST_URL . "=$privmsg_id"); + + $msg_date = create_date($board_config['default_dateformat'], $row['privmsgs_date'], $board_config['board_timezone']); + + if ( $flag == PRIVMSGS_NEW_MAIL && $folder == 'inbox' ) + { + $msg_subject = '' . $msg_subject . ''; + $msg_date = '' . $msg_date . ''; + $msg_username = '' . $msg_username . ''; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + $i++; + + $template->assign_block_vars('listrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FROM' => $msg_username, + 'SUBJECT' => $msg_subject, + 'DATE' => $msg_date, + 'PRIVMSG_FOLDER_IMG' => $icon_flag, + + 'L_PRIVMSG_FOLDER_ALT' => $icon_flag_alt, + + 'S_MARK_ID' => $privmsg_id, + + 'U_READ' => $u_subject, + 'U_FROM_USER_PROFILE' => $u_from_user_profile) + ); + } + while( $row = $db->sql_fetchrow($result) ); + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("privmsg.$phpEx?folder=$folder", $pm_total, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $pm_total / $board_config['topics_per_page'] )), + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + +} +else +{ + $template->assign_vars(array( + 'L_NO_MESSAGES' => $lang['No_messages_folder']) + ); + + $template->assign_block_vars("switch_no_messages", array() ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/profile.php b/phpBB2/profile.php new file mode 100644 index 0000000..749c3ff --- /dev/null +++ b/phpBB2/profile.php @@ -0,0 +1,124 @@ + 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + +$server_url = $server_protocol . $server_name . $server_port . $script_name; + +// ----------------------- +// Page specific functions +// +function gen_rand_string($hash) +{ + $rand_str = dss_rand(); + + return ( $hash ) ? md5($rand_str) : substr($rand_str, 0, 8); +} +// +// End page specific functions +// --------------------------- + +// +// Start of program proper +// +if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ) +{ + $mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']; + $mode = htmlspecialchars($mode); + + if ( $mode == 'viewprofile' ) + { + include($phpbb_root_path . 'includes/usercp_viewprofile.'.$phpEx); + exit; + } + else if ( $mode == 'editprofile' || $mode == 'reg' ) + { + if ( !$userdata['session_logged_in'] && $mode == 'editprofile' ) + { + redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true)); + } + + include($phpbb_root_path . 'includes/usercp_register.'.$phpEx); + exit; + } + else if ( $mode == 'conf' ) + { + // Visual Confirmation + if ( $userdata['session_logged_in'] ) + { + exit; + } + + include($phpbb_root_path . 'includes/usercp_confirm.'.$phpEx); + exit; + } + else if ( $mode == 'sendpassword' ) + { + include($phpbb_root_path . 'includes/usercp_sendpasswd.'.$phpEx); + exit; + } + else if ( $mode == 'activate' ) + { + include($phpbb_root_path . 'includes/usercp_activate.'.$phpEx); + exit; + } + else if ( $mode == 'email' ) + { + include($phpbb_root_path . 'includes/usercp_email.'.$phpEx); + exit; + } +} + +redirect(append_sid("index.$phpEx", true)); + +?> diff --git a/phpBB2/profile_normal.php b/phpBB2/profile_normal.php new file mode 100644 index 0000000..a5a677d --- /dev/null +++ b/phpBB2/profile_normal.php @@ -0,0 +1,124 @@ + 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + +$server_url = $server_protocol . $server_name . $server_port . $script_name; + +// ----------------------- +// Page specific functions +// +function gen_rand_string($hash) +{ + $rand_str = dss_rand(); + + return ( $hash ) ? md5($rand_str) : substr($rand_str, 0, 8); +} +// +// End page specific functions +// --------------------------- + +// +// Start of program proper +// +if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ) +{ + $mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']; + $mode = htmlspecialchars($mode); + + if ( $mode == 'viewprofile' ) + { + include($phpbb_root_path . 'includes/usercp_viewprofile.'.$phpEx); + exit; + } + else if ( $mode == 'editprofile' || $mode == 'register' ) + { + if ( !$userdata['session_logged_in'] && $mode == 'editprofile' ) + { + redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true)); + } + + include($phpbb_root_path . 'includes/usercp_register.'.$phpEx); + exit; + } + else if ( $mode == 'confirm' ) + { + // Visual Confirmation + if ( $userdata['session_logged_in'] ) + { + exit; + } + + include($phpbb_root_path . 'includes/usercp_confirm.'.$phpEx); + exit; + } + else if ( $mode == 'sendpassword' ) + { + include($phpbb_root_path . 'includes/usercp_sendpasswd.'.$phpEx); + exit; + } + else if ( $mode == 'activate' ) + { + include($phpbb_root_path . 'includes/usercp_activate.'.$phpEx); + exit; + } + else if ( $mode == 'email' ) + { + include($phpbb_root_path . 'includes/usercp_email.'.$phpEx); + exit; + } +} + +redirect(append_sid("index.$phpEx", true)); + +?> \ No newline at end of file diff --git a/phpBB2/readme.txt b/phpBB2/readme.txt new file mode 100644 index 0000000..bff5644 --- /dev/null +++ b/phpBB2/readme.txt @@ -0,0 +1,29 @@ +Installation Instructions: + +This is Version 2.2.1 of the eXtreme Styles mod. + +For Installation Instructions, please read install.txt. + +Warning: if you are updating from version 1.19 or older then you MUST delete old mod files in directory "admin" + +--- + +Some Informations on the contrib and scripts directory. + +For Informations what is placed into the contrib directory, please read: contrib/readme.txt + +--- + +For latest version of mod check out http://www.phpbbstyles.com +For documentation for this mod check out http://www.phpbbstyles.com/viewforum.php?f=6 + +Included translations for admin control panel: + - English + +--- + +Installation: + +Upload contents of directory "root" including all subdirectories to your forum. +When uploading files overwrite existing includes/template.php +Then CHMOD directory "cache" to 777 to make it writable. diff --git a/phpBB2/search.php b/phpBB2/search.php new file mode 100644 index 0000000..43a7a45 --- /dev/null +++ b/phpBB2/search.php @@ -0,0 +1,1434 @@ +sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + if (intval($row['last_search_time']) > 0 && ($current_time - intval($row['last_search_time'])) < intval($board_config['search_flood_interval'])) + { + message_die(GENERAL_MESSAGE, $lang['Search_Flood_Error']); + } + } + } + if ( $search_id == 'newposts' || $search_id == 'egosearch' || ( $search_author != '' && $search_keywords == '' ) ) + { + if ( $search_id == 'newposts' ) + { + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE post_time >= " . $userdata['user_lastvisit']; + } + else + { + redirect(append_sid("login.$phpEx?redirect=search.$phpEx&search_id=newposts", true)); + } + + $show_results = 'topics'; + $sort_by = 0; + $sort_dir = 'DESC'; + } + else if ( $search_id == 'egosearch' ) + { + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE poster_id = " . $userdata['user_id']; + } + else + { + redirect(append_sid("login.$phpEx?redirect=search.$phpEx&search_id=egosearch", true)); + } + + $show_results = 'topics'; + $sort_by = 0; + $sort_dir = 'DESC'; + } + else + { + $search_author = str_replace('*', '%', trim($search_author)); + + if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < $board_config['search_min_chars'] ) ) + { + $search_author = ''; + } + + $sql = "SELECT user_id + FROM " . USERS_TABLE . " + WHERE username LIKE '" . str_replace("\'", "''", $search_author) . "'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain list of matching users (searching for: $search_author)", "", __LINE__, __FILE__, $sql); + } + + $matching_userids = ''; + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + $matching_userids .= ( ( $matching_userids != '' ) ? ', ' : '' ) . $row['user_id']; + } + while( $row = $db->sql_fetchrow($result) ); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } + + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE poster_id IN ($matching_userids)"; + + if ($search_time) + { + $sql .= " AND post_time >= " . $search_time; + } + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql); + } + + $search_ids = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $search_ids[] = $row['post_id']; + } + $db->sql_freeresult($result); + + $total_match_count = count($search_ids); + + } + else if ( $search_keywords != '' ) + { + $stopword_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/search_stopwords.txt'); + $synonym_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/search_synonyms.txt'); + + $split_search = array(); + $stripped_keywords = stripslashes($search_keywords); + $split_search = ( !strstr($multibyte_charset, $lang['ENCODING']) ) ? split_words(clean_words('search', $stripped_keywords, $stopword_array, $synonym_array), 'search') : split(' ', $search_keywords); + unset($stripped_keywords); + + $search_msg_only = ( !$search_fields ) ? "AND m.title_match = 0" : ( ( strstr($multibyte_charset, $lang['ENCODING']) ) ? '' : '' ); + + $word_count = 0; + $current_match_type = 'or'; + + $word_match = array(); + $result_list = array(); + + for($i = 0; $i < count($split_search); $i++) + { + if ( strlen(str_replace(array('*', '%'), '', trim($split_search[$i]))) < $board_config['search_min_chars'] ) + { + $split_search[$i] = ''; + continue; + } + + switch ( $split_search[$i] ) + { + case 'and': + $current_match_type = 'and'; + break; + + case 'or': + $current_match_type = 'or'; + break; + + case 'not': + $current_match_type = 'not'; + break; + + default: + if ( !empty($search_terms) ) + { + $current_match_type = 'and'; + } + + if ( !strstr($multibyte_charset, $lang['ENCODING']) ) + { + $match_word = str_replace('*', '%', $split_search[$i]); + $sql = "SELECT m.post_id + FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m + WHERE w.word_text LIKE '$match_word' + AND m.word_id = w.word_id + AND w.word_common <> 1 + $search_msg_only"; + } + else + { + $match_word = addslashes('%' . str_replace('*', '', $split_search[$i]) . '%'); + $search_msg_only = ( $search_fields ) ? "OR post_subject LIKE '$match_word'" : ''; + $sql = "SELECT post_id + FROM " . POSTS_TEXT_TABLE . " + WHERE post_text LIKE '$match_word' + $search_msg_only"; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql); + } + + $row = array(); + while( $temp_row = $db->sql_fetchrow($result) ) + { + $row[$temp_row['post_id']] = 1; + + if ( !$word_count ) + { + $result_list[$temp_row['post_id']] = 1; + } + else if ( $current_match_type == 'or' ) + { + $result_list[$temp_row['post_id']] = 1; + } + else if ( $current_match_type == 'not' ) + { + $result_list[$temp_row['post_id']] = 0; + } + } + + if ( $current_match_type == 'and' && $word_count ) + { + @reset($result_list); + while( list($post_id, $match_count) = @each($result_list) ) + { + if ( !$row[$post_id] ) + { + $result_list[$post_id] = 0; + } + } + } + + $word_count++; + + $db->sql_freeresult($result); + } + } + + @reset($result_list); + + $search_ids = array(); + while( list($post_id, $matches) = each($result_list) ) + { + if ( $matches ) + { + $search_ids[] = $post_id; + } + } + + unset($result_list); + $total_match_count = count($search_ids); + } + + // + // If user is logged in then we'll check to see which (if any) private + // forums they are allowed to view and include them in the search. + // + // If not logged in we explicitly prevent searching of private forums + // + $auth_sql = ''; + if ( $search_forum != -1 ) + { + $is_auth = auth(AUTH_READ, $search_forum, $userdata); + + if ( !$is_auth['auth_read'] ) + { + message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']); + } + + $auth_sql = "f.forum_id = $search_forum"; + } + else + { + $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata); + + if ( $search_cat != -1 ) + { + $auth_sql = "f.cat_id = $search_cat"; + } + + $ignore_forum_sql = ''; + while( list($key, $value) = each($is_auth_ary) ) + { + if ( !$value['auth_read'] ) + { + $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key; + } + } + + if ( $ignore_forum_sql != '' ) + { + $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) "; + } + } + + // + // Author name search + // + if ( $search_author != '' ) + { + $search_author = str_replace('*', '%', trim($search_author)); + + if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < $board_config['search_min_chars'] ) ) + { + $search_author = ''; + } + } + + if ( $total_match_count ) + { + if ( $show_results == 'topics' ) + { + // + // This one is a beast, try to seperate it a bit (workaround for connection timeouts) + // + $search_id_chunks = array(); + $count = 0; + $chunk = 0; + + if (count($search_ids) > $limiter) + { + for ($i = 0; $i < count($search_ids); $i++) + { + if ($count == $limiter) + { + $chunk++; + $count = 0; + } + + $search_id_chunks[$chunk][$count] = $search_ids[$i]; + $count++; + } + } + else + { + $search_id_chunks[0] = $search_ids; + } + + $search_ids = array(); + + for ($i = 0; $i < count($search_id_chunks); $i++) + { + $where_sql = ''; + + if ( $search_time ) + { + $where_sql .= ( $search_author == '' && $auth_sql == '' ) ? " AND post_time >= $search_time " : " AND p.post_time >= $search_time "; + } + + if ( $search_author == '' && $auth_sql == '' ) + { + $sql = "SELECT topic_id + FROM " . POSTS_TABLE . " + WHERE post_id IN (" . implode(", ", $search_id_chunks[$i]) . ") + $where_sql + GROUP BY topic_id"; + } + else + { + $from_sql = POSTS_TABLE . " p"; + + if ( $search_author != '' ) + { + $from_sql .= ", " . USERS_TABLE . " u"; + $where_sql .= " AND u.user_id = p.poster_id AND u.username LIKE '$search_author' "; + } + + if ( $auth_sql != '' ) + { + $from_sql .= ", " . FORUMS_TABLE . " f"; + $where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql"; + } + + $sql = "SELECT p.topic_id + FROM $from_sql + WHERE p.post_id IN (" . implode(", ", $search_id_chunks[$i]) . ") + $where_sql + GROUP BY p.topic_id"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic ids', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $search_ids[] = $row['topic_id']; + } + $db->sql_freeresult($result); + } + + $total_match_count = sizeof($search_ids); + + } + else if ( $search_author != '' || $search_time || $auth_sql != '' ) + { + $search_id_chunks = array(); + $count = 0; + $chunk = 0; + + if (count($search_ids) > $limiter) + { + for ($i = 0; $i < count($search_ids); $i++) + { + if ($count == $limiter) + { + $chunk++; + $count = 0; + } + + $search_id_chunks[$chunk][$count] = $search_ids[$i]; + $count++; + } + } + else + { + $search_id_chunks[0] = $search_ids; + } + + $search_ids = array(); + + for ($i = 0; $i < count($search_id_chunks); $i++) + { + $where_sql = ( $search_author == '' && $auth_sql == '' ) ? 'post_id IN (' . implode(', ', $search_id_chunks[$i]) . ')' : 'p.post_id IN (' . implode(', ', $search_id_chunks[$i]) . ')'; + $select_sql = ( $search_author == '' && $auth_sql == '' ) ? 'post_id' : 'p.post_id'; + $from_sql = ( $search_author == '' && $auth_sql == '' ) ? POSTS_TABLE : POSTS_TABLE . ' p'; + + if ( $search_time ) + { + $where_sql .= ( $search_author == '' && $auth_sql == '' ) ? " AND post_time >= $search_time " : " AND p.post_time >= $search_time"; + } + + if ( $auth_sql != '' ) + { + $from_sql .= ", " . FORUMS_TABLE . " f"; + $where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql"; + } + + if ( $search_author != '' ) + { + $from_sql .= ", " . USERS_TABLE . " u"; + $where_sql .= " AND u.user_id = p.poster_id AND u.username LIKE '$search_author'"; + } + + $sql = "SELECT " . $select_sql . " + FROM $from_sql + WHERE $where_sql"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post ids', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + $search_ids[] = $row['post_id']; + } + $db->sql_freeresult($result); + } + + $total_match_count = count($search_ids); + } + } + else if ( $search_id == 'unanswered' ) + { + if ( $auth_sql != '' ) + { + $sql = "SELECT t.topic_id, f.forum_id + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f + WHERE t.topic_replies = 0 + AND t.forum_id = f.forum_id + AND t.topic_moved_id = 0 + AND $auth_sql"; + } + else + { + $sql = "SELECT topic_id + FROM " . TOPICS_TABLE . " + WHERE topic_replies = 0 + AND topic_moved_id = 0"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post ids', '', __LINE__, __FILE__, $sql); + } + + $search_ids = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $search_ids[] = $row['topic_id']; + } + $db->sql_freeresult($result); + + $total_match_count = count($search_ids); + + // + // Basic requirements + // + $show_results = 'topics'; + $sort_by = 0; + $sort_dir = 'DESC'; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } + + // + // Delete old data from the search result table + // + $sql = 'DELETE FROM ' . SEARCH_TABLE . ' + WHERE search_time < ' . ($current_time - (int) $board_config['session_length']); + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql); + } + + // + // Store new result data + // + $search_results = implode(', ', $search_ids); + $per_page = ( $show_results == 'posts' ) ? $board_config['posts_per_page'] : $board_config['topics_per_page']; + + // + // Combine both results and search data (apart from original query) + // so we can serialize it and place it in the DB + // + $store_search_data = array(); + + // + // Limit the character length (and with this the results displayed at all following pages) to prevent + // truncated result arrays. Normally, search results above 12000 are affected. + // - to include or not to include + /* + $max_result_length = 60000; + if (strlen($search_results) > $max_result_length) + { + $search_results = substr($search_results, 0, $max_result_length); + $search_results = substr($search_results, 0, strrpos($search_results, ',')); + $total_match_count = count(explode(', ', $search_results)); + } + */ + + for($i = 0; $i < count($store_vars); $i++) + { + $store_search_data[$store_vars[$i]] = $$store_vars[$i]; + } + + $result_array = serialize($store_search_data); + unset($store_search_data); + + mt_srand ((double) microtime() * 1000000); + $search_id = mt_rand(); + + $sql = "UPDATE " . SEARCH_TABLE . " + SET search_id = $search_id, search_time = $current_time, search_array = '" . str_replace("\'", "''", $result_array) . "' + WHERE session_id = '" . $userdata['session_id'] . "'"; + if ( !($result = $db->sql_query($sql)) || !$db->sql_affectedrows() ) + { + $sql = "INSERT INTO " . SEARCH_TABLE . " (search_id, session_id, search_time, search_array) + VALUES($search_id, '" . $userdata['session_id'] . "', $current_time, '" . str_replace("\'", "''", $result_array) . "')"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not insert search results', '', __LINE__, __FILE__, $sql); + } + } + } + else + { + $search_id = intval($search_id); + if ( $search_id ) + { + $sql = "SELECT search_array + FROM " . SEARCH_TABLE . " + WHERE search_id = $search_id + AND session_id = '". $userdata['session_id'] . "'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $search_data = unserialize($row['search_array']); + for($i = 0; $i < count($store_vars); $i++) + { + $$store_vars[$i] = $search_data[$store_vars[$i]]; + } + } + } + } + + // + // Look up data ... + // + if ( $search_results != '' ) + { + if ( $show_results == 'posts' ) + { + $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid + FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt + WHERE p.post_id IN ($search_results) + AND pt.post_id = p.post_id + AND f.forum_id = p.forum_id + AND p.topic_id = t.topic_id + AND p.poster_id = u.user_id"; + } + else + { + $sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2 + WHERE t.topic_id IN ($search_results) + AND t.topic_poster = u.user_id + AND f.forum_id = t.forum_id + AND p.post_id = t.topic_first_post_id + AND p2.post_id = t.topic_last_post_id + AND u2.user_id = p2.poster_id"; + } + + $per_page = ( $show_results == 'posts' ) ? $board_config['posts_per_page'] : $board_config['topics_per_page']; + + $sql .= " ORDER BY "; + switch ( $sort_by ) + { + case 1: + $sql .= ( $show_results == 'posts' ) ? 'pt.post_subject' : 't.topic_title'; + break; + case 2: + $sql .= 't.topic_title'; + break; + case 3: + $sql .= 'u.username'; + break; + case 4: + $sql .= 'f.forum_id'; + break; + default: + $sql .= ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time'; + break; + } + $sql .= " $sort_dir LIMIT $start, " . $per_page; + + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql); + } + + $searchset = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $searchset[] = $row; + } + + $db->sql_freeresult($result); + + // + // Define censored word matches + // + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + // + // Output header + // + $page_title = $lang['Search']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $show_results == 'posts' ) + { + $template->set_filenames(array( + 'body' => 'search_results_posts.tpl') + ); + } + else + { + $template->set_filenames(array( + 'body' => 'search_results_topics.tpl') + ); + } + make_jumpbox('viewforum.'.$phpEx); + + $l_search_matches = ( $total_match_count == 1 ) ? sprintf($lang['Found_search_match'], $total_match_count) : sprintf($lang['Found_search_matches'], $total_match_count); + + $template->assign_vars(array( + 'L_SEARCH_MATCHES' => $l_search_matches, + 'L_TOPIC' => $lang['Topic']) + ); + + $highlight_active = ''; + $highlight_match = array(); + for($j = 0; $j < count($split_search); $j++ ) + { + $split_word = $split_search[$j]; + + if ( $split_word != 'and' && $split_word != 'or' && $split_word != 'not' ) + { + $highlight_match[] = '#\b(' . str_replace("*", "([\w]+)?", $split_word) . ')\b#is'; + $highlight_active .= " " . $split_word; + + for ($k = 0; $k < count($synonym_array); $k++) + { + list($replace_synonym, $match_synonym) = split(' ', trim(strtolower($synonym_array[$k]))); + + if ( $replace_synonym == $split_word ) + { + $highlight_match[] = '#\b(' . str_replace("*", "([\w]+)?", $replace_synonym) . ')\b#is'; + $highlight_active .= ' ' . $match_synonym; + } + } + } + } + + $highlight_active = urlencode(trim($highlight_active)); + + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + for($i = 0; $i < count($searchset); $i++) + { + $forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $searchset[$i]['forum_id']); + $topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&highlight=$highlight_active"); + $post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $searchset[$i]['post_id'] . "&highlight=$highlight_active") . '#' . $searchset[$i]['post_id']; + + $post_date = create_date($board_config['default_dateformat'], $searchset[$i]['post_time'], $board_config['board_timezone']); + + $message = $searchset[$i]['post_text']; + $topic_title = $searchset[$i]['topic_title']; + + $forum_id = $searchset[$i]['forum_id']; + $topic_id = $searchset[$i]['topic_id']; + + if ( $show_results == 'posts' ) + { + if ( isset($return_chars) ) + { + $bbcode_uid = $searchset[$i]['bbcode_uid']; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( $return_chars != -1 ) + { + $message = strip_tags($message); + $message = preg_replace("/\[.*?:$bbcode_uid:?.*?\]/si", '', $message); + $message = preg_replace('/\[url\]|\[\/url\]/si', '', $message); + $message = ( strlen($message) > $return_chars ) ? substr($message, 0, $return_chars) . ' ...' : $message; + } + else + { + if ( !$board_config['allow_html'] ) + { + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\\2>', $message); + } + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + + $message = make_clickable($message); + + if ( $highlight_active ) + { + if ( preg_match('/<.*>/', $message) ) + { + $message = preg_replace($highlight_match, '\1', $message); + + $end_html = 0; + $start_html = 1; + $temp_message = ''; + $message = ' ' . $message . ' '; + + while( $start_html = strpos($message, '<', $start_html) ) + { + $grab_length = $start_html - $end_html - 1; + $temp_message .= substr($message, $end_html + 1, $grab_length); + + if ( $end_html = strpos($message, '>', $start_html) ) + { + $length = $end_html - $start_html + 1; + $hold_string = substr($message, $start_html, $length); + + if ( strrpos(' ' . $hold_string, '<') != 1 ) + { + $end_html = $start_html + 1; + $end_counter = 1; + + while ( $end_counter && $end_html < strlen($message) ) + { + if ( substr($message, $end_html, 1) == '>' ) + { + $end_counter--; + } + else if ( substr($message, $end_html, 1) == '<' ) + { + $end_counter++; + } + + $end_html++; + } + + $length = $end_html - $start_html + 1; + $hold_string = substr($message, $start_html, $length); + $hold_string = str_replace('', '', $hold_string); + $hold_string = str_replace('', '', $hold_string); + } + else if ( $hold_string == '' ) + { + $hold_string = str_replace('', '', $hold_string); + } + else if ( $hold_string == '' ) + { + $hold_string = str_replace('', '', $hold_string); + } + + $temp_message .= $hold_string; + + $start_html += $length; + } + else + { + $start_html = strlen($message); + } + } + + $grab_length = strlen($message) - $end_html - 1; + $temp_message .= substr($message, $end_html + 1, $grab_length); + + $message = trim($temp_message); + } + else + { + $message = preg_replace($highlight_match, '\1', $message); + } + } + } + + if ( count($orig_word) ) + { + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); + $post_subject = ( $searchset[$i]['post_subject'] != "" ) ? preg_replace($orig_word, $replacement_word, $searchset[$i]['post_subject']) : $topic_title; + + $message = preg_replace($orig_word, $replacement_word, $message); + } + else + { + $post_subject = ( $searchset[$i]['post_subject'] != '' ) ? $searchset[$i]['post_subject'] : $topic_title; + } + + if ($board_config['allow_smilies'] && $searchset[$i]['enable_smilies']) + { + $message = smilies_pass($message); + } + + $message = str_replace("\n", '
    ', $message); + + } + + $poster = ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + $poster .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? $searchset[$i]['username'] : ( ( $searchset[$i]['post_username'] != "" ) ? $searchset[$i]['post_username'] : $lang['Guest'] ); + $poster .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + + if ( $userdata['session_logged_in'] && $searchset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + + if ( $searchset[$i]['post_time'] > $topic_last_read ) + { + $mini_post_img = $images['icon_minipost_new']; + $mini_post_alt = $lang['New_post']; + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + + $template->assign_block_vars("searchresults", array( + 'TOPIC_TITLE' => $topic_title, + 'FORUM_NAME' => $searchset[$i]['forum_name'], + 'POST_SUBJECT' => $post_subject, + 'POST_DATE' => $post_date, + 'POSTER_NAME' => $poster, + 'TOPIC_REPLIES' => $searchset[$i]['topic_replies'], + 'TOPIC_VIEWS' => $searchset[$i]['topic_views'], + 'MESSAGE' => $message, + 'MINI_POST_IMG' => $mini_post_img, + + 'L_MINI_POST_ALT' => $mini_post_alt, + + 'U_POST' => $post_url, + 'U_TOPIC' => $topic_url, + 'U_FORUM' => $forum_url) + ); + } + else + { + $message = ''; + + if ( count($orig_word) ) + { + $topic_title = preg_replace($orig_word, $replacement_word, $searchset[$i]['topic_title']); + } + + $topic_type = $searchset[$i]['topic_type']; + + if ($topic_type == POST_ANNOUNCE) + { + $topic_type = $lang['Topic_Announcement'] . ' '; + } + else if ($topic_type == POST_STICKY) + { + $topic_type = $lang['Topic_Sticky'] . ' '; + } + else + { + $topic_type = ''; + } + + if ( $searchset[$i]['topic_vote'] ) + { + $topic_type .= $lang['Topic_Poll'] . ' '; + } + + $views = $searchset[$i]['topic_views']; + $replies = $searchset[$i]['topic_replies']; + + if ( ( $replies + 1 ) > $board_config['posts_per_page'] ) + { + $total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] ); + $goto_page = ' [ ' . $lang['Goto_page'] . '' . $lang['Goto_page'] . ': '; + + $times = 1; + for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page']) + { + $goto_page .= '' . $times . ''; + if ( $times == 1 && $total_pages > 4 ) + { + $goto_page .= ' ... '; + $times = $total_pages - 3; + $j += ( $total_pages - 4 ) * $board_config['posts_per_page']; + } + else if ( $times < $total_pages ) + { + $goto_page .= ', '; + } + $times++; + } + $goto_page .= ' ] '; + } + else + { + $goto_page = ''; + } + + if ( $searchset[$i]['topic_status'] == TOPIC_MOVED ) + { + $topic_type = $lang['Topic_Moved'] . ' '; + $topic_id = $searchset[$i]['topic_moved_id']; + + $folder_image = '' . $lang['No_new_posts'] . ''; + $newest_post_img = ''; + } + else + { + if ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) + { + $folder = $images['folder_locked']; + $folder_new = $images['folder_locked_new']; + } + else if ( $searchset[$i]['topic_type'] == POST_ANNOUNCE ) + { + $folder = $images['folder_announce']; + $folder_new = $images['folder_announce_new']; + } + else if ( $searchset[$i]['topic_type'] == POST_STICKY ) + { + $folder = $images['folder_sticky']; + $folder_new = $images['folder_sticky_new']; + } + else + { + if ( $replies >= $board_config['hot_threshold'] ) + { + $folder = $images['folder_hot']; + $folder_new = $images['folder_hot_new']; + } + else + { + $folder = $images['folder']; + $folder_new = $images['folder_new']; + } + } + + if ( $userdata['session_logged_in'] ) + { + if ( $searchset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + if ( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + + $unread_topics = true; + + if ( !empty($tracking_topics[$topic_id]) ) + { + if ( $tracking_topics[$topic_id] > $searchset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if ( !empty($tracking_forums[$forum_id]) ) + { + if ( $tracking_forums[$forum_id] > $searchset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $searchset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if ( $unread_topics ) + { + $folder_image = $folder_new; + $folder_alt = $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + else + { + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $folder_image = $folder; + $folder_alt = $folder_alt; + $newest_post_img = ''; + } + + } + else if ( $searchset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + $folder_image = $folder_new; + $folder_alt = $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + else + { + $folder_image = $folder; + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + $newest_post_img = ''; + } + } + + + $topic_author = ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + $topic_author .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? $searchset[$i]['username'] : ( ( $searchset[$i]['post_username'] != '' ) ? $searchset[$i]['post_username'] : $lang['Guest'] ); + + $topic_author .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + + $first_post_time = create_date($board_config['default_dateformat'], $searchset[$i]['topic_time'], $board_config['board_timezone']); + + $last_post_time = create_date($board_config['default_dateformat'], $searchset[$i]['post_time'], $board_config['board_timezone']); + + $last_post_author = ( $searchset[$i]['id2'] == ANONYMOUS ) ? ( ($searchset[$i]['post_username2'] != '' ) ? $searchset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '' . $searchset[$i]['user2'] . ''; + + $last_post_url = '' . $lang['View_latest_post'] . ''; + + $template->assign_block_vars('searchresults', array( + 'FORUM_NAME' => $searchset[$i]['forum_name'], + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, + 'FOLDER' => $folder_image, + 'NEWEST_POST_IMG' => $newest_post_img, + 'TOPIC_FOLDER_IMG' => $folder_image, + 'GOTO_PAGE' => $goto_page, + 'REPLIES' => $replies, + 'TOPIC_TITLE' => $topic_title, + 'TOPIC_TYPE' => $topic_type, + 'VIEWS' => $views, + 'TOPIC_AUTHOR' => $topic_author, + 'FIRST_POST_TIME' => $first_post_time, + 'LAST_POST_TIME' => $last_post_time, + 'LAST_POST_AUTHOR' => $last_post_author, + 'LAST_POST_IMG' => $last_post_url, + + 'L_TOPIC_FOLDER_ALT' => $folder_alt, + + 'U_VIEW_FORUM' => $forum_url, + 'U_VIEW_TOPIC' => $topic_url) + ); + } + } + + $base_url = "search.$phpEx?search_id=$search_id"; + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination($base_url, $total_match_count, $per_page, $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $per_page ) + 1 ), ceil( $total_match_count / $per_page )), + + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_VIEWS' => $lang['Views'], + 'L_POSTS' => $lang['Posts'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_POSTED' => $lang['Posted'], + 'L_SUBJECT' => $lang['Subject'], + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } +} + +// +// Search forum +// +$sql = "SELECT c.cat_title, c.cat_id, f.forum_name, f.forum_id + FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f + WHERE f.cat_id = c.cat_id + ORDER BY c.cat_order, f.forum_order"; +$result = $db->sql_query($sql); +if ( !$result ) +{ + message_die(GENERAL_ERROR, 'Could not obtain forum_name/forum_id', '', __LINE__, __FILE__, $sql); +} + +$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata); + +$s_forums = ''; +while( $row = $db->sql_fetchrow($result) ) +{ + if ( $is_auth_ary[$row['forum_id']]['auth_read'] ) + { + $s_forums .= ''; + if ( empty($list_cat[$row['cat_id']]) ) + { + $list_cat[$row['cat_id']] = $row['cat_title']; + } + } +} + +if ( $s_forums != '' ) +{ + $s_forums = '' . $s_forums; + + // + // Category to search + // + $s_categories = ''; + while( list($cat_id, $cat_title) = @each($list_cat)) + { + $s_categories .= ''; + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']); +} + +// +// Number of chars returned +// +$s_characters = ''; +$s_characters .= ''; +$s_characters .= ''; +$s_characters .= ''; + +for($i = 100; $i < 1100 ; $i += 100) +{ + $selected = ( $i == 200 ) ? ' selected="selected"' : ''; + $s_characters .= ''; +} + +// +// Sorting +// +$s_sort_by = ""; +for($i = 0; $i < count($sort_by_types); $i++) +{ + $s_sort_by .= ''; +} + +// +// Search time +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +$s_time = ''; +for($i = 0; $i < count($previous_days); $i++) +{ + $selected = ( $topic_days == $previous_days[$i] ) ? ' selected="selected"' : ''; + $s_time .= ''; +} + +// +// Output the basic page +// +$page_title = $lang['Search']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'search_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_SEARCH_QUERY' => $lang['Search_query'], + 'L_SEARCH_OPTIONS' => $lang['Search_options'], + 'L_SEARCH_KEYWORDS' => $lang['Search_keywords'], + 'L_SEARCH_KEYWORDS_EXPLAIN' => $lang['Search_keywords_explain'], + 'L_SEARCH_AUTHOR' => $lang['Search_author'], + 'L_SEARCH_AUTHOR_EXPLAIN' => $lang['Search_author_explain'], + 'L_SEARCH_ANY_TERMS' => $lang['Search_for_any'], + 'L_SEARCH_ALL_TERMS' => $lang['Search_for_all'], + 'L_SEARCH_MESSAGE_ONLY' => $lang['Search_msg_only'], + 'L_SEARCH_MESSAGE_TITLE' => $lang['Search_title_msg'], + 'L_CATEGORY' => $lang['Category'], + 'L_RETURN_FIRST' => $lang['Return_first'], + 'L_CHARACTERS' => $lang['characters_posts'], + 'L_SORT_BY' => $lang['Sort_by'], + 'L_SORT_ASCENDING' => $lang['Sort_Ascending'], + 'L_SORT_DESCENDING' => $lang['Sort_Descending'], + 'L_SEARCH_PREVIOUS' => $lang['Search_previous'], + 'L_DISPLAY_RESULTS' => $lang['Display_results'], + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS' => $lang['Topics'], + 'L_POSTS' => $lang['Posts'], + + 'S_SEARCH_ACTION' => append_sid("search.$phpEx?mode=results"), + 'S_CHARACTER_OPTIONS' => $s_characters, + 'S_FORUM_OPTIONS' => $s_forums, + 'S_CATEGORY_OPTIONS' => $s_categories, + 'S_TIME_OPTIONS' => $s_time, + 'S_SORT_OPTIONS' => $s_sort_by, + 'S_HIDDEN_FIELDS' => '') +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/templates/Helius/Helius.cfg b/phpBB2/templates/Helius/Helius.cfg new file mode 100644 index 0000000..1408ceb --- /dev/null +++ b/phpBB2/templates/Helius/Helius.cfg @@ -0,0 +1,137 @@ + 0) && (substr($template_dir, 0, strlen($phpbb_root_path)) !== $phpbb_root_path)) +{ + $template_dir = $phpbb_root_path . $template_dir; +} + +// +// testing if image exists +// +$test_file = $template_dir . '/images/lang_{LANG}/btn_login.gif'; +$lang = 'english'; +if(@file_exists(str_replace('{LANG}', $board_config['default_lang'], $test_file))) +{ + // image exists, setting language variable to correct url + $lang = $board_config['default_lang']; +} +elseif($board_config['default_lang'] !== 'english') +{ + // image doesn't exist, testing if there is english version + if(!@file_exists(str_replace('{LANG}', 'english', $test_file))) + { + // nothing found. setting to default language + $lang = $board_config['default_lang']; + } +} + +// +// adding custom template variables +// +$template->assign_vars(array( + 'LANG' => $lang, + 'T_TEMPLATE_PATH' => $template_dir, + 'C_ROW1' => '#EDEFF2', + 'C_ROW1_OVER' => '#F8F9FA', + 'C_ROW2' => '#DDE2EC', + 'C_ROW2_OVER' => '#EBEEF3', + 'C_ROW3' => '#E2E6EE', + 'C_ROW3_OVER' => '#ECEFF4', + 'C_VERSION' => '1.91', + 'TPL_FORUM_URL' => urlencode($board_config['server_name'] . $board_config['script_path']), + 'TPL_HDR1' => '
    ', + 'TPL_HDR2' => '
    ', + 'TPL_FTR' => '
    ' + )); + +$images['icon_quote'] = "$current_template_images/{LANG}/icon_quote.gif"; +$images['icon_edit'] = "$current_template_images/{LANG}/icon_edit.gif"; +$images['icon_search'] = "$current_template_images/{LANG}/icon_search.gif"; +$images['icon_profile'] = "$current_template_images/{LANG}/icon_profile.gif"; +$images['icon_pm'] = "$current_template_images/{LANG}/icon_pm.gif"; +$images['icon_email'] = "$current_template_images/{LANG}/icon_email.gif"; +$images['icon_delpost'] = "$current_template_images/icon_delete.gif"; +$images['icon_ip'] = "$current_template_images/icon_ip.gif"; +$images['icon_www'] = "$current_template_images/{LANG}/icon_www.gif"; +$images['icon_icq'] = "$current_template_images/icon_icq_add.gif"; +$images['icon_aim'] = "$current_template_images/icon_aim.gif"; +$images['icon_yim'] = "$current_template_images/icon_yim.gif"; +$images['icon_msnm'] = "$current_template_images/icon_msnm.gif"; +$images['icon_minipost'] = "$current_template_images/icon_minipost.gif"; +$images['icon_gotopost'] = "$current_template_images/icon_minipost.gif"; +$images['icon_minipost_new'] = "$current_template_images/icon_minipost_new.gif"; +$images['icon_latest_reply'] = "$current_template_images/icon_latest_reply.gif"; +$images['icon_newest_reply'] = "$current_template_images/icon_newest_reply.gif"; + +$images['forum'] = "$current_template_images/folder_big.gif"; +$images['forum_new'] = "$current_template_images/folder_new_big.gif"; +$images['forum_locked'] = "$current_template_images/folder_locked_big.gif"; + +$images['folder'] = "$current_template_images/folder.gif"; +$images['folder_new'] = "$current_template_images/folder_new.gif"; +$images['folder_hot'] = "$current_template_images/folder_hot.gif"; +$images['folder_hot_new'] = "$current_template_images/folder_new_hot.gif"; +$images['folder_locked'] = "$current_template_images/folder_lock.gif"; +$images['folder_locked_new'] = "$current_template_images/folder_lock_new.gif"; +$images['folder_sticky'] = "$current_template_images/folder_sticky.gif"; +$images['folder_sticky_new'] = "$current_template_images/folder_sticky_new.gif"; +$images['folder_announce'] = "$current_template_images/folder_announce.gif"; +$images['folder_announce_new'] = "$current_template_images/folder_announce_new.gif"; + +$images['post_new'] = "$current_template_images/{LANG}/post.gif"; +$images['post_locked'] = "$current_template_images/{LANG}/reply-locked.gif"; +$images['reply_new'] = "$current_template_images/{LANG}/reply.gif"; +$images['reply_locked'] = "$current_template_images/{LANG}/reply-locked.gif"; + +$images['pm_inbox'] = "$current_template_images/msg_inbox.gif"; +$images['pm_outbox'] = "$current_template_images/msg_outbox.gif"; +$images['pm_savebox'] = "$current_template_images/msg_savebox.gif"; +$images['pm_sentbox'] = "$current_template_images/msg_sentbox.gif"; +$images['pm_readmsg'] = "$current_template_images/folder.gif"; +$images['pm_unreadmsg'] = "$current_template_images/folder_new.gif"; +$images['pm_replymsg'] = "$current_template_images/{LANG}/reply.gif"; +$images['pm_postmsg'] = "$current_template_images/{LANG}/msg_newpost.gif"; +$images['pm_quotemsg'] = "$current_template_images/{LANG}/icon_quote.gif"; +$images['pm_editmsg'] = "$current_template_images/{LANG}/icon_edit.gif"; +$images['pm_new_msg'] = ""; +$images['pm_no_new_msg'] = ""; + +$images['Topic_watch'] = ""; +$images['topic_un_watch'] = ""; +$images['topic_mod_lock'] = "$current_template_images/topic_lock.gif"; +$images['topic_mod_unlock'] = "$current_template_images/topic_unlock.gif"; +$images['topic_mod_split'] = "$current_template_images/topic_split.gif"; +$images['topic_mod_move'] = "$current_template_images/topic_move.gif"; +$images['topic_mod_delete'] = "$current_template_images/topic_delete.gif"; + +$images['voting_graphic'][0] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][1] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][2] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][3] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][4] = "$current_template_images/voting_bar.gif"; + +// +// Vote graphic length defines the maximum length of a vote result +// graphic, ie. 100% = this length +// +$board_config['vote_graphic_length'] = 300; +$board_config['privmsg_graphic_length'] = 175; + +?> \ No newline at end of file diff --git a/phpBB2/templates/Helius/Helius.css b/phpBB2/templates/Helius/Helius.css new file mode 100644 index 0000000..f109f6e --- /dev/null +++ b/phpBB2/templates/Helius/Helius.css @@ -0,0 +1,209 @@ +/* + Helius Theme for phpBB version 2+ + Created by Vjacheslav Trushkin + http://www.trushkin.net +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #E5E8EE; + scrollbar-arrow-color: #1D2938; + scrollbar-face-color: #9DB3CC; + scrollbar-track-color: #D6DEE9; + scrollbar-highlight-color: #C8D3E1; + scrollbar-3dlight-color: #EAEFF4; + scrollbar-shadow-color: #7492B6; + scrollbar-darkshadow-color: #3A5370; +} + +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } +a { text-decoration: underline; color: #364D67; } +a:visited { text-decoration: underline; color: #2C3E52; } +a:hover { text-decoration: underline; color: #FF6600; } +a:active { text-decoration: underline; color: #FF0000; } +hr { height: 0px; border: solid #364D67 0px; border-top-width: 1px;} + + +/* This is the outline round the main forum tables */ +.forumline { background-color: #525E6E; } + + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #EDEFF2; } +td.row1_over { background-color: #F8F9FA; } +td.row2 { background-color: #DDE2EC; } +td.row2_over { background-color: #EBEEF3; } +td.row3, td.row3Right { background-color: #E2E6EE; } +td.row3_over { background-color: #ECEFF4; } +td.row4 { background-color: #CED5E2; } + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic { + background-color: #FFFFFF; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th, td.th { + color: #3A5370; font-size: 12px; font-weight: bold; + background-color: #FFCC00; height: 26px; +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-color:#D1D7DC; height: 28px; +} + +td.th2 {background-color:#D1D7DC; height: 20px; color: #FFFFFF; } + +td.spaceRow { + background-color: #D1D7DC; } + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ + +/* The largest text used in the index page title and toptic title etc. */ +h1,h2 { + font-weight: bold; font-size: 18px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color: #000000; +} +.maintitle { + font-weight: bold; font-size: 18px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color: #364D67; +} +.subtitle { + font-size: 16px; font-family: Arial, Helvetica, sans-serif; + text-decoration: none; font-weight: bold; color: #FFFFFF; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall, .gensmall2 { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #364D67; text-decoration: underline; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #FF6600; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size: 11px; color: #000000 } +a.mainmenu { text-decoration: underline; color: #364D67; } +a.mainmenu:hover{ text-decoration: underline; color: #FF6600; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color: #364D67} +a.cattitle, .cattitle a { text-decoration: underline; color: #364D67; } +a.cattitle:visited, .cattitle a:visited { text-decoration: underline; color: #2C3E52; } +a.cattitle:hover, .cattitle a:hover { text-decoration: underline; color: #FF6600; } +a.cattitle:active, .cattitle a:active { text-decoration: underline; color: #FF0000; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color: #364D67; } +a.forumlink { text-decoration: underline; color: #364D67; } +a.forumlink:hover{ text-decoration: underline; color: #FF6600; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: underline; color: #364D67; } +a.nav:hover { text-decoration: underline; color: #FF6600; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: underline; color: #364D67; } +a.topictitle:visited { text-decoration: underline; color: #2C3E52; } +a.topictitle:hover { text-decoration: underline; color: #FF6600; } +a.topictitle:active { text-decoration: underline; color: #FF0000; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size: 11px; color: #000000;} +a.name:link { text-decoration: underline; color: #364D67; } +a.name:visited { text-decoration: underline; color: #2C3E52; } +a.name:hover { text-decoration: underline; color: #FF6600; } +a.name:active { text-decoration: underline; color: #FF0000; } + +/* Location, number of posts, post date etc */ +.postdetails { font-size: 10px; color: #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size: 12px;} +a.postlink:link { text-decoration: underline; color: #364D67; } +a.postlink:visited { text-decoration: underline; color: #2C3E52; } +a.postlink:hover { text-decoration: underline; color: #FF6600; } +a.postlink:active { text-decoration: underline; color: #FF0000; } + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #F1F4F8; border: #525E6E; border-style: dashed; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #3A5370; line-height: 125%; + background-color: #F1F4F8; border: #525E6E; border-style: dotted; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright, a.copyright:visited, .copyright a, .copyright a:visited { color: #444444; text-decoration: none;} +a.copyright:hover, a.copyright:active, .copyright a:hover, .copyright a:active { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; +} + +form { display: inline; } + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #FFFFFF; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color: #EAEFF4; + color: #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +input.helpline { background-color: #DDE2EC; border: solid 1px #DDE2EC; } diff --git a/phpBB2/templates/Helius/_extra/btn_about.gif b/phpBB2/templates/Helius/_extra/btn_about.gif new file mode 100644 index 0000000..4abe1da Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_about.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_about_on.gif b/phpBB2/templates/Helius/_extra/btn_about_on.gif new file mode 100644 index 0000000..28effad Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_about_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_album.gif b/phpBB2/templates/Helius/_extra/btn_album.gif new file mode 100644 index 0000000..3d39890 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_album.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_album_on.gif b/phpBB2/templates/Helius/_extra/btn_album_on.gif new file mode 100644 index 0000000..3a174f9 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_album_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_boardrules.gif b/phpBB2/templates/Helius/_extra/btn_boardrules.gif new file mode 100644 index 0000000..79e6897 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_boardrules.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_boardrules_on.gif b/phpBB2/templates/Helius/_extra/btn_boardrules_on.gif new file mode 100644 index 0000000..e1a8718 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_boardrules_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_calendar.gif b/phpBB2/templates/Helius/_extra/btn_calendar.gif new file mode 100644 index 0000000..806c194 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_calendar.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_calendar_on.gif b/phpBB2/templates/Helius/_extra/btn_calendar_on.gif new file mode 100644 index 0000000..72e8f63 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_calendar_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_calender.gif b/phpBB2/templates/Helius/_extra/btn_calender.gif new file mode 100644 index 0000000..5fcbce1 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_calender.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_calender_on.gif b/phpBB2/templates/Helius/_extra/btn_calender_on.gif new file mode 100644 index 0000000..06db81a Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_calender_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_chat.gif b/phpBB2/templates/Helius/_extra/btn_chat.gif new file mode 100644 index 0000000..933dd91 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_chat.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_chat_on.gif b/phpBB2/templates/Helius/_extra/btn_chat_on.gif new file mode 100644 index 0000000..07637c3 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_chat_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_chatbox.gif b/phpBB2/templates/Helius/_extra/btn_chatbox.gif new file mode 100644 index 0000000..ff2eaf1 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_chatbox.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_chatbox_on.gif b/phpBB2/templates/Helius/_extra/btn_chatbox_on.gif new file mode 100644 index 0000000..ac6c3b6 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_chatbox_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_contact.gif b/phpBB2/templates/Helius/_extra/btn_contact.gif new file mode 100644 index 0000000..795b4b0 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_contact.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_contact_on.gif b/phpBB2/templates/Helius/_extra/btn_contact_on.gif new file mode 100644 index 0000000..9b07824 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_contact_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_download.gif b/phpBB2/templates/Helius/_extra/btn_download.gif new file mode 100644 index 0000000..a6f2568 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_download.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_download_on.gif b/phpBB2/templates/Helius/_extra/btn_download_on.gif new file mode 100644 index 0000000..25a22fd Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_download_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_downloads.gif b/phpBB2/templates/Helius/_extra/btn_downloads.gif new file mode 100644 index 0000000..85e6aa6 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_downloads.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_downloads_on.gif b/phpBB2/templates/Helius/_extra/btn_downloads_on.gif new file mode 100644 index 0000000..5710a1d Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_downloads_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_favorieten.gif b/phpBB2/templates/Helius/_extra/btn_favorieten.gif new file mode 100644 index 0000000..02e2d14 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_favorieten.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_favorieten_on.gif b/phpBB2/templates/Helius/_extra/btn_favorieten_on.gif new file mode 100644 index 0000000..289e5f3 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_favorieten_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_favorites.gif b/phpBB2/templates/Helius/_extra/btn_favorites.gif new file mode 100644 index 0000000..17d46de Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_favorites.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_favorites_on.gif b/phpBB2/templates/Helius/_extra/btn_favorites_on.gif new file mode 100644 index 0000000..bdbd1d8 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_favorites_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_files.gif b/phpBB2/templates/Helius/_extra/btn_files.gif new file mode 100644 index 0000000..f56ca9a Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_files.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_files_on.gif b/phpBB2/templates/Helius/_extra/btn_files_on.gif new file mode 100644 index 0000000..4369cea Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_files_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_forum.gif b/phpBB2/templates/Helius/_extra/btn_forum.gif new file mode 100644 index 0000000..3fdcbbb Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_forum.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_forum_on.gif b/phpBB2/templates/Helius/_extra/btn_forum_on.gif new file mode 100644 index 0000000..fae29c0 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_forum_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_forumrules.gif b/phpBB2/templates/Helius/_extra/btn_forumrules.gif new file mode 100644 index 0000000..5f259e7 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_forumrules.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_forumrules_on.gif b/phpBB2/templates/Helius/_extra/btn_forumrules_on.gif new file mode 100644 index 0000000..e4a3dab Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_forumrules_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_gallery.gif b/phpBB2/templates/Helius/_extra/btn_gallery.gif new file mode 100644 index 0000000..c576fbb Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_gallery.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_gallery_on.gif b/phpBB2/templates/Helius/_extra/btn_gallery_on.gif new file mode 100644 index 0000000..c7d0a7b Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_gallery_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_home.gif b/phpBB2/templates/Helius/_extra/btn_home.gif new file mode 100644 index 0000000..a72dfd3 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_home.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_home_on.gif b/phpBB2/templates/Helius/_extra/btn_home_on.gif new file mode 100644 index 0000000..e39084a Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_home_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_info.gif b/phpBB2/templates/Helius/_extra/btn_info.gif new file mode 100644 index 0000000..1883f67 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_info.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_info_on.gif b/phpBB2/templates/Helius/_extra/btn_info_on.gif new file mode 100644 index 0000000..e79f097 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_info_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_kalender.gif b/phpBB2/templates/Helius/_extra/btn_kalender.gif new file mode 100644 index 0000000..80b756c Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_kalender.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_kalender_on.gif b/phpBB2/templates/Helius/_extra/btn_kalender_on.gif new file mode 100644 index 0000000..0fa70ed Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_kalender_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_links.gif b/phpBB2/templates/Helius/_extra/btn_links.gif new file mode 100644 index 0000000..e265a1f Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_links.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_links_on.gif b/phpBB2/templates/Helius/_extra/btn_links_on.gif new file mode 100644 index 0000000..79472f8 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_links_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_main.gif b/phpBB2/templates/Helius/_extra/btn_main.gif new file mode 100644 index 0000000..d18ff19 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_main.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_main_on.gif b/phpBB2/templates/Helius/_extra/btn_main_on.gif new file mode 100644 index 0000000..d6b7a52 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_main_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_mainpage.gif b/phpBB2/templates/Helius/_extra/btn_mainpage.gif new file mode 100644 index 0000000..b879a28 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_mainpage.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_mainpage_on.gif b/phpBB2/templates/Helius/_extra/btn_mainpage_on.gif new file mode 100644 index 0000000..405bcec Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_mainpage_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_news.gif b/phpBB2/templates/Helius/_extra/btn_news.gif new file mode 100644 index 0000000..8ce2dd0 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_news.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_news_on.gif b/phpBB2/templates/Helius/_extra/btn_news_on.gif new file mode 100644 index 0000000..1c39a03 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_news_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_portal.gif b/phpBB2/templates/Helius/_extra/btn_portal.gif new file mode 100644 index 0000000..bf59649 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_portal.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_portal_on.gif b/phpBB2/templates/Helius/_extra/btn_portal_on.gif new file mode 100644 index 0000000..597a036 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_portal_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_profiel.gif b/phpBB2/templates/Helius/_extra/btn_profiel.gif new file mode 100644 index 0000000..e0da00e Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_profiel.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_profiel_on.gif b/phpBB2/templates/Helius/_extra/btn_profiel_on.gif new file mode 100644 index 0000000..e391e59 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_profiel_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_statistic.gif b/phpBB2/templates/Helius/_extra/btn_statistic.gif new file mode 100644 index 0000000..94ccd6d Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_statistic.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_statistic_on.gif b/phpBB2/templates/Helius/_extra/btn_statistic_on.gif new file mode 100644 index 0000000..461ab88 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_statistic_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_statistics.gif b/phpBB2/templates/Helius/_extra/btn_statistics.gif new file mode 100644 index 0000000..2296f2a Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_statistics.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_statistics_on.gif b/phpBB2/templates/Helius/_extra/btn_statistics_on.gif new file mode 100644 index 0000000..bb536e4 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_statistics_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_statistik.gif b/phpBB2/templates/Helius/_extra/btn_statistik.gif new file mode 100644 index 0000000..5dcf587 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_statistik.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_statistik_on.gif b/phpBB2/templates/Helius/_extra/btn_statistik_on.gif new file mode 100644 index 0000000..7d04245 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_statistik_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_stats.gif b/phpBB2/templates/Helius/_extra/btn_stats.gif new file mode 100644 index 0000000..145c63e Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_stats.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_stats_on.gif b/phpBB2/templates/Helius/_extra/btn_stats_on.gif new file mode 100644 index 0000000..ccb8e92 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_stats_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_store.gif b/phpBB2/templates/Helius/_extra/btn_store.gif new file mode 100644 index 0000000..dcf7715 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_store.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_store_on.gif b/phpBB2/templates/Helius/_extra/btn_store_on.gif new file mode 100644 index 0000000..e6c9056 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_store_on.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_website.gif b/phpBB2/templates/Helius/_extra/btn_website.gif new file mode 100644 index 0000000..75978e3 Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_website.gif differ diff --git a/phpBB2/templates/Helius/_extra/btn_website_on.gif b/phpBB2/templates/Helius/_extra/btn_website_on.gif new file mode 100644 index 0000000..4026ccd Binary files /dev/null and b/phpBB2/templates/Helius/_extra/btn_website_on.gif differ diff --git a/phpBB2/templates/Helius/_logo_src/logo_bg.bmp b/phpBB2/templates/Helius/_logo_src/logo_bg.bmp new file mode 100644 index 0000000..bae060b Binary files /dev/null and b/phpBB2/templates/Helius/_logo_src/logo_bg.bmp differ diff --git a/phpBB2/templates/Helius/_logo_src/readme.txt b/phpBB2/templates/Helius/_logo_src/readme.txt new file mode 100644 index 0000000..60ce29e --- /dev/null +++ b/phpBB2/templates/Helius/_logo_src/readme.txt @@ -0,0 +1,15 @@ +Theme is created with Macromedia Fireworks MX, but almost noone has it so +i exported logo background to bmp file that can be used with any editor. + +After you create logo it should be splitted in 2 images: +logo1.gif and logo2.gif + +width of logo1.gif should be the same as width of logo2.gif +height of logo1.gif is 23px +height of logo2.gif is 30px + +if width of image will be different from "130" then open overall_header.tpl +with notepad (or any other text editor) and replace all "130" width width of +your logo. + +html code for header is in overall_header.tpl file (tpl files are usual html files) diff --git a/phpBB2/templates/Helius/admin/admin_message_body.tpl b/phpBB2/templates/Helius/admin/admin_message_body.tpl new file mode 100644 index 0000000..7431f09 --- /dev/null +++ b/phpBB2/templates/Helius/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2/templates/Helius/admin/auth_forum_body.tpl b/phpBB2/templates/Helius/admin/auth_forum_body.tpl new file mode 100644 index 0000000..c013a2a --- /dev/null +++ b/phpBB2/templates/Helius/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/Helius/admin/auth_select_body.tpl b/phpBB2/templates/Helius/admin/auth_select_body.tpl new file mode 100644 index 0000000..80ebd36 --- /dev/null +++ b/phpBB2/templates/Helius/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2/templates/Helius/admin/auth_ug_body.tpl b/phpBB2/templates/Helius/admin/auth_ug_body.tpl new file mode 100644 index 0000000..69e4bab --- /dev/null +++ b/phpBB2/templates/Helius/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/Helius/admin/board_config_body.tpl b/phpBB2/templates/Helius/admin/board_config_body.tpl new file mode 100644 index 0000000..2b474f2 --- /dev/null +++ b/phpBB2/templates/Helius/admin/board_config_body.tpl @@ -0,0 +1,272 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_VISUAL_CONFIRM}
    {L_VISUAL_CONFIRM_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_AUTOLOGIN}
    {L_ALLOW_AUTOLOGIN_EXPLAIN}
    {L_YES}   {L_NO}
    {L_AUTOLOGIN_TIME}
    {L_AUTOLOGIN_TIME_EXPLAIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_SEARCH_FLOOD_INTERVAL}
    {L_SEARCH_FLOOD_INTERVAL_EXPLAIN}
    {L_MAX_LOGIN_ATTEMPTS}
    {L_MAX_LOGIN_ATTEMPTS_EXPLAIN}
    {L_LOGIN_RESET_TIME}
    {L_LOGIN_RESET_TIME_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2/templates/Helius/admin/category_edit_body.tpl b/phpBB2/templates/Helius/admin/category_edit_body.tpl new file mode 100644 index 0000000..b159a10 --- /dev/null +++ b/phpBB2/templates/Helius/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/Helius/admin/confirm_body.tpl b/phpBB2/templates/Helius/admin/confirm_body.tpl new file mode 100644 index 0000000..376480c --- /dev/null +++ b/phpBB2/templates/Helius/admin/confirm_body.tpl @@ -0,0 +1,11 @@ + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/Helius/admin/db_utils_backup_body.tpl b/phpBB2/templates/Helius/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..208624f --- /dev/null +++ b/phpBB2/templates/Helius/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/db_utils_restore_body.tpl b/phpBB2/templates/Helius/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..6c87461 --- /dev/null +++ b/phpBB2/templates/Helius/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2/templates/Helius/admin/disallow_body.tpl b/phpBB2/templates/Helius/admin/disallow_body.tpl new file mode 100644 index 0000000..c518e66 --- /dev/null +++ b/phpBB2/templates/Helius/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2/templates/Helius/admin/forum_admin_body.tpl b/phpBB2/templates/Helius/admin/forum_admin_body.tpl new file mode 100644 index 0000000..f62582f --- /dev/null +++ b/phpBB2/templates/Helius/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2/templates/Helius/admin/forum_delete_body.tpl b/phpBB2/templates/Helius/admin/forum_delete_body.tpl new file mode 100644 index 0000000..8151718 --- /dev/null +++ b/phpBB2/templates/Helius/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2/templates/Helius/admin/forum_edit_body.tpl b/phpBB2/templates/Helius/admin/forum_edit_body.tpl new file mode 100644 index 0000000..0fca787 --- /dev/null +++ b/phpBB2/templates/Helius/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/Helius/admin/forum_prune_body.tpl b/phpBB2/templates/Helius/admin/forum_prune_body.tpl new file mode 100644 index 0000000..fcd5fe7 --- /dev/null +++ b/phpBB2/templates/Helius/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2/templates/Helius/admin/forum_prune_result_body.tpl b/phpBB2/templates/Helius/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..42fc100 --- /dev/null +++ b/phpBB2/templates/Helius/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2/templates/Helius/admin/forum_prune_select_body.tpl b/phpBB2/templates/Helius/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..95787d8 --- /dev/null +++ b/phpBB2/templates/Helius/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2/templates/Helius/admin/group_edit_body.tpl b/phpBB2/templates/Helius/admin/group_edit_body.tpl new file mode 100644 index 0000000..864b951 --- /dev/null +++ b/phpBB2/templates/Helius/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/group_select_body.tpl b/phpBB2/templates/Helius/admin/group_select_body.tpl new file mode 100644 index 0000000..62e5139 --- /dev/null +++ b/phpBB2/templates/Helius/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/index.htm b/phpBB2/templates/Helius/admin/index.htm new file mode 100644 index 0000000..7575902 --- /dev/null +++ b/phpBB2/templates/Helius/admin/index.htm @@ -0,0 +1,13 @@ + + +Style by phpBBStyles.com + + + + + +This phpBB style is designed by phpBBStyles.com.
    +See readme.txt for details. + + + \ No newline at end of file diff --git a/phpBB2/templates/Helius/admin/index_body.tpl b/phpBB2/templates/Helius/admin/index_body.tpl new file mode 100644 index 0000000..f7ede53 --- /dev/null +++ b/phpBB2/templates/Helius/admin/index_body.tpl @@ -0,0 +1,86 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    + +

    {L_VERSION_INFORMATION}

    + +{VERSION_INFO} + +
    + +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2/templates/Helius/admin/index_frameset.tpl b/phpBB2/templates/Helius/admin/index_frameset.tpl new file mode 100644 index 0000000..c3c734a --- /dev/null +++ b/phpBB2/templates/Helius/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2/templates/Helius/admin/index_navigate.tpl b/phpBB2/templates/Helius/admin/index_navigate.tpl new file mode 100644 index 0000000..f1aa03a --- /dev/null +++ b/phpBB2/templates/Helius/admin/index_navigate.tpl @@ -0,0 +1,34 @@ + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2/templates/Helius/admin/page_footer.tpl b/phpBB2/templates/Helius/admin/page_footer.tpl new file mode 100644 index 0000000..55a8470 --- /dev/null +++ b/phpBB2/templates/Helius/admin/page_footer.tpl @@ -0,0 +1,34 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001-2004 phpBB Group
    Style by phpBBStyles.com
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2/templates/Helius/admin/page_header.tpl b/phpBB2/templates/Helius/admin/page_header.tpl new file mode 100644 index 0000000..968143d --- /dev/null +++ b/phpBB2/templates/Helius/admin/page_header.tpl @@ -0,0 +1,21 @@ + + + +{META} + + + +{SITENAME} - {L_PHPBB_ADMIN} + + + +
    For support for this phpBB Style visit phpBBStyles.com

    diff --git a/phpBB2/templates/Helius/admin/ranks_edit_body.tpl b/phpBB2/templates/Helius/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..0296ddb --- /dev/null +++ b/phpBB2/templates/Helius/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/ranks_list_body.tpl b/phpBB2/templates/Helius/admin/ranks_list_body.tpl new file mode 100644 index 0000000..3444a24 --- /dev/null +++ b/phpBB2/templates/Helius/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/Helius/admin/smile_edit_body.tpl b/phpBB2/templates/Helius/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b9a7bcd --- /dev/null +++ b/phpBB2/templates/Helius/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/smile_import_body.tpl b/phpBB2/templates/Helius/admin/smile_import_body.tpl new file mode 100644 index 0000000..dcea5dc --- /dev/null +++ b/phpBB2/templates/Helius/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/smile_list_body.tpl b/phpBB2/templates/Helius/admin/smile_list_body.tpl new file mode 100644 index 0000000..4f644df --- /dev/null +++ b/phpBB2/templates/Helius/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2/templates/Helius/admin/styles_addnew_body.tpl b/phpBB2/templates/Helius/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..80f5df1 --- /dev/null +++ b/phpBB2/templates/Helius/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2/templates/Helius/admin/styles_edit_body.tpl b/phpBB2/templates/Helius/admin/styles_edit_body.tpl new file mode 100644 index 0000000..0198c0e --- /dev/null +++ b/phpBB2/templates/Helius/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    {L_STYLESHEET_EXPLAIN}
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2/templates/Helius/admin/styles_exporter.tpl b/phpBB2/templates/Helius/admin/styles_exporter.tpl new file mode 100644 index 0000000..1a34342 --- /dev/null +++ b/phpBB2/templates/Helius/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2/templates/Helius/admin/styles_list_body.tpl b/phpBB2/templates/Helius/admin/styles_list_body.tpl new file mode 100644 index 0000000..1c7afa5 --- /dev/null +++ b/phpBB2/templates/Helius/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/Helius/admin/user_avatar_gallery.tpl b/phpBB2/templates/Helius/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..e68c795 --- /dev/null +++ b/phpBB2/templates/Helius/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/Helius/admin/user_ban_body.tpl b/phpBB2/templates/Helius/admin/user_ban_body.tpl new file mode 100644 index 0000000..f520ec6 --- /dev/null +++ b/phpBB2/templates/Helius/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2/templates/Helius/admin/user_edit_body.tpl b/phpBB2/templates/Helius/admin/user_edit_body.tpl new file mode 100644 index 0000000..e50a6d0 --- /dev/null +++ b/phpBB2/templates/Helius/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2/templates/Helius/admin/user_email_body.tpl b/phpBB2/templates/Helius/admin/user_email_body.tpl new file mode 100644 index 0000000..11914e8 --- /dev/null +++ b/phpBB2/templates/Helius/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2/templates/Helius/admin/user_select_body.tpl b/phpBB2/templates/Helius/admin/user_select_body.tpl new file mode 100644 index 0000000..d19cec5 --- /dev/null +++ b/phpBB2/templates/Helius/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/words_edit_body.tpl b/phpBB2/templates/Helius/admin/words_edit_body.tpl new file mode 100644 index 0000000..48fe3b2 --- /dev/null +++ b/phpBB2/templates/Helius/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/admin/words_list_body.tpl b/phpBB2/templates/Helius/admin/words_list_body.tpl new file mode 100644 index 0000000..710bd04 --- /dev/null +++ b/phpBB2/templates/Helius/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/Helius/agreement.tpl b/phpBB2/templates/Helius/agreement.tpl new file mode 100644 index 0000000..a5b9fed --- /dev/null +++ b/phpBB2/templates/Helius/agreement.tpl @@ -0,0 +1,17 @@ + + + + + +
    {L_INDEX}
    + + +{TPL_HDR1}{SITENAME} - {REGISTRATION}{TPL_HDR2} + + + +
    + + + +

    {AGREEMENT}



    {TPL_FTR} \ No newline at end of file diff --git a/phpBB2/templates/Helius/bbcode.tpl b/phpBB2/templates/Helius/bbcode.tpl new file mode 100644 index 0000000..38e13ad --- /dev/null +++ b/phpBB2/templates/Helius/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2/templates/Helius/confirm_body.tpl b/phpBB2/templates/Helius/confirm_body.tpl new file mode 100644 index 0000000..096c3ac --- /dev/null +++ b/phpBB2/templates/Helius/confirm_body.tpl @@ -0,0 +1,13 @@ + + + + + +
    + +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/error_body.tpl b/phpBB2/templates/Helius/error_body.tpl new file mode 100644 index 0000000..fbf69f4 --- /dev/null +++ b/phpBB2/templates/Helius/error_body.tpl @@ -0,0 +1,17 @@ + +{TPL_HDR1} {TPL_HDR2} + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/faq_body.tpl b/phpBB2/templates/Helius/faq_body.tpl new file mode 100644 index 0000000..5f23aa1 --- /dev/null +++ b/phpBB2/templates/Helius/faq_body.tpl @@ -0,0 +1,41 @@ + + + + + +
    + +{TPL_HDR1}{L_FAQ_TITLE}{TPL_HDR2} + + + +
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
    {TPL_FTR} +
    + + +{TPL_HDR1}{faq_block.BLOCK_TITLE}{TPL_HDR2} + + + + + + + + +
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/formIE.css b/phpBB2/templates/Helius/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2/templates/Helius/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2/templates/Helius/groupcp_info_body.tpl b/phpBB2/templates/Helius/groupcp_info_body.tpl new file mode 100644 index 0000000..c616efb --- /dev/null +++ b/phpBB2/templates/Helius/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + +{TPL_HDR1}{L_GROUP_INFORMATION}{TPL_HDR2} + + + + + + + + + + + + + + + + + + +
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    {TPL_FTR} +
    +{S_HIDDEN_FIELDS} +
    + + +
    +{TPL_HDR1}{L_GROUP_MODERATOR}{TPL_HDR2} + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {TPL_FTR} +
    + +{TPL_HDR1}{L_GROUP_MEMBERS}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM}{member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    {TPL_FTR} + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/groupcp_pending_info.tpl b/phpBB2/templates/Helius/groupcp_pending_info.tpl new file mode 100644 index 0000000..59b7714 --- /dev/null +++ b/phpBB2/templates/Helius/groupcp_pending_info.tpl @@ -0,0 +1,31 @@ + +{TPL_HDR1}{L_PENDING_MEMBERS}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {pending_members_row.PM_IMG} {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/groupcp_user_body.tpl b/phpBB2/templates/Helius/groupcp_user_body.tpl new file mode 100644 index 0000000..f4a8e29 --- /dev/null +++ b/phpBB2/templates/Helius/groupcp_user_body.tpl @@ -0,0 +1,73 @@ + + + + + +
    {L_INDEX}
    + + +{TPL_HDR1}{L_GROUP_MEMBERSHIP_DETAILS}{TPL_HDR2} + + + + + + + + + + + + +
    {L_YOU_BELONG_GROUPS} + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {TPL_FTR} +
    + + + +{TPL_HDR1}{L_JOIN_A_GROUP}{TPL_HDR2} + + + + +
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {TPL_FTR} +
    + + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/images/addform.html b/phpBB2/templates/Helius/images/addform.html new file mode 100644 index 0000000..8903207 --- /dev/null +++ b/phpBB2/templates/Helius/images/addform.html @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/phpBB2/templates/Helius/images/bg_cat.gif b/phpBB2/templates/Helius/images/bg_cat.gif new file mode 100644 index 0000000..ffdc0ee Binary files /dev/null and b/phpBB2/templates/Helius/images/bg_cat.gif differ diff --git a/phpBB2/templates/Helius/images/bg_cat2.gif b/phpBB2/templates/Helius/images/bg_cat2.gif new file mode 100644 index 0000000..d142e2d Binary files /dev/null and b/phpBB2/templates/Helius/images/bg_cat2.gif differ diff --git a/phpBB2/templates/Helius/images/bg_cat4.gif b/phpBB2/templates/Helius/images/bg_cat4.gif new file mode 100644 index 0000000..7034856 Binary files /dev/null and b/phpBB2/templates/Helius/images/bg_cat4.gif differ diff --git a/phpBB2/templates/Helius/images/bg_main.gif b/phpBB2/templates/Helius/images/bg_main.gif new file mode 100644 index 0000000..3f65ef4 Binary files /dev/null and b/phpBB2/templates/Helius/images/bg_main.gif differ diff --git a/phpBB2/templates/Helius/images/bottom_center.gif b/phpBB2/templates/Helius/images/bottom_center.gif new file mode 100644 index 0000000..db623cc Binary files /dev/null and b/phpBB2/templates/Helius/images/bottom_center.gif differ diff --git a/phpBB2/templates/Helius/images/bottom_left.gif b/phpBB2/templates/Helius/images/bottom_left.gif new file mode 100644 index 0000000..72708e6 Binary files /dev/null and b/phpBB2/templates/Helius/images/bottom_left.gif differ diff --git a/phpBB2/templates/Helius/images/bottom_right.gif b/phpBB2/templates/Helius/images/bottom_right.gif new file mode 100644 index 0000000..bb20603 Binary files /dev/null and b/phpBB2/templates/Helius/images/bottom_right.gif differ diff --git a/phpBB2/templates/Helius/images/btn_bg.gif b/phpBB2/templates/Helius/images/btn_bg.gif new file mode 100644 index 0000000..f8e2ee2 Binary files /dev/null and b/phpBB2/templates/Helius/images/btn_bg.gif differ diff --git a/phpBB2/templates/Helius/images/btn_left.gif b/phpBB2/templates/Helius/images/btn_left.gif new file mode 100644 index 0000000..c7ec2a1 Binary files /dev/null and b/phpBB2/templates/Helius/images/btn_left.gif differ diff --git a/phpBB2/templates/Helius/images/btn_right.gif b/phpBB2/templates/Helius/images/btn_right.gif new file mode 100644 index 0000000..d3202c5 Binary files /dev/null and b/phpBB2/templates/Helius/images/btn_right.gif differ diff --git a/phpBB2/templates/Helius/images/cellpic.gif b/phpBB2/templates/Helius/images/cellpic.gif new file mode 100644 index 0000000..47457ef Binary files /dev/null and b/phpBB2/templates/Helius/images/cellpic.gif differ diff --git a/phpBB2/templates/Helius/images/cellpic1.gif b/phpBB2/templates/Helius/images/cellpic1.gif new file mode 100644 index 0000000..715b8d4 Binary files /dev/null and b/phpBB2/templates/Helius/images/cellpic1.gif differ diff --git a/phpBB2/templates/Helius/images/cellpic2.jpg b/phpBB2/templates/Helius/images/cellpic2.jpg new file mode 100644 index 0000000..a0ca7e8 Binary files /dev/null and b/phpBB2/templates/Helius/images/cellpic2.jpg differ diff --git a/phpBB2/templates/Helius/images/cellpic3.gif b/phpBB2/templates/Helius/images/cellpic3.gif new file mode 100644 index 0000000..ecf70e1 Binary files /dev/null and b/phpBB2/templates/Helius/images/cellpic3.gif differ diff --git a/phpBB2/templates/Helius/images/folder.gif b/phpBB2/templates/Helius/images/folder.gif new file mode 100644 index 0000000..ad8af67 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder.gif differ diff --git a/phpBB2/templates/Helius/images/folder_announce.gif b/phpBB2/templates/Helius/images/folder_announce.gif new file mode 100644 index 0000000..ad8af67 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_announce.gif differ diff --git a/phpBB2/templates/Helius/images/folder_announce_new.gif b/phpBB2/templates/Helius/images/folder_announce_new.gif new file mode 100644 index 0000000..6276c26 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_announce_new.gif differ diff --git a/phpBB2/templates/Helius/images/folder_big.gif b/phpBB2/templates/Helius/images/folder_big.gif new file mode 100644 index 0000000..2946e65 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_big.gif differ diff --git a/phpBB2/templates/Helius/images/folder_hot.gif b/phpBB2/templates/Helius/images/folder_hot.gif new file mode 100644 index 0000000..7d307f1 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_hot.gif differ diff --git a/phpBB2/templates/Helius/images/folder_lock.gif b/phpBB2/templates/Helius/images/folder_lock.gif new file mode 100644 index 0000000..1b477ce Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_lock.gif differ diff --git a/phpBB2/templates/Helius/images/folder_lock_new.gif b/phpBB2/templates/Helius/images/folder_lock_new.gif new file mode 100644 index 0000000..b03adc4 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_lock_new.gif differ diff --git a/phpBB2/templates/Helius/images/folder_locked_big.gif b/phpBB2/templates/Helius/images/folder_locked_big.gif new file mode 100644 index 0000000..187e4a4 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_locked_big.gif differ diff --git a/phpBB2/templates/Helius/images/folder_new.gif b/phpBB2/templates/Helius/images/folder_new.gif new file mode 100644 index 0000000..6276c26 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_new.gif differ diff --git a/phpBB2/templates/Helius/images/folder_new_big.gif b/phpBB2/templates/Helius/images/folder_new_big.gif new file mode 100644 index 0000000..4e9c91f Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_new_big.gif differ diff --git a/phpBB2/templates/Helius/images/folder_new_hot.gif b/phpBB2/templates/Helius/images/folder_new_hot.gif new file mode 100644 index 0000000..4c4036a Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_new_hot.gif differ diff --git a/phpBB2/templates/Helius/images/folder_sticky.gif b/phpBB2/templates/Helius/images/folder_sticky.gif new file mode 100644 index 0000000..ad8af67 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_sticky.gif differ diff --git a/phpBB2/templates/Helius/images/folder_sticky_new.gif b/phpBB2/templates/Helius/images/folder_sticky_new.gif new file mode 100644 index 0000000..6276c26 Binary files /dev/null and b/phpBB2/templates/Helius/images/folder_sticky_new.gif differ diff --git a/phpBB2/templates/Helius/images/icon_aim.gif b/phpBB2/templates/Helius/images/icon_aim.gif new file mode 100644 index 0000000..cc381d2 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_aim.gif differ diff --git a/phpBB2/templates/Helius/images/icon_delete.gif b/phpBB2/templates/Helius/images/icon_delete.gif new file mode 100644 index 0000000..98dd64e Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_delete.gif differ diff --git a/phpBB2/templates/Helius/images/icon_icq_add.gif b/phpBB2/templates/Helius/images/icon_icq_add.gif new file mode 100644 index 0000000..3ef1fe2 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_icq_add.gif differ diff --git a/phpBB2/templates/Helius/images/icon_ip.gif b/phpBB2/templates/Helius/images/icon_ip.gif new file mode 100644 index 0000000..f777926 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_ip.gif differ diff --git a/phpBB2/templates/Helius/images/icon_latest_reply.gif b/phpBB2/templates/Helius/images/icon_latest_reply.gif new file mode 100644 index 0000000..fa04fb2 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_latest_reply.gif differ diff --git a/phpBB2/templates/Helius/images/icon_minipost.gif b/phpBB2/templates/Helius/images/icon_minipost.gif new file mode 100644 index 0000000..e68e0fa Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_minipost.gif differ diff --git a/phpBB2/templates/Helius/images/icon_minipost_new.gif b/phpBB2/templates/Helius/images/icon_minipost_new.gif new file mode 100644 index 0000000..e8e1df0 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_minipost_new.gif differ diff --git a/phpBB2/templates/Helius/images/icon_msnm.gif b/phpBB2/templates/Helius/images/icon_msnm.gif new file mode 100644 index 0000000..ce1a938 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_msnm.gif differ diff --git a/phpBB2/templates/Helius/images/icon_newest_reply.gif b/phpBB2/templates/Helius/images/icon_newest_reply.gif new file mode 100644 index 0000000..24f8a27 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_newest_reply.gif differ diff --git a/phpBB2/templates/Helius/images/icon_yim.gif b/phpBB2/templates/Helius/images/icon_yim.gif new file mode 100644 index 0000000..379b3b6 Binary files /dev/null and b/phpBB2/templates/Helius/images/icon_yim.gif differ diff --git a/phpBB2/templates/Helius/images/index.htm b/phpBB2/templates/Helius/images/index.htm new file mode 100644 index 0000000..7575902 --- /dev/null +++ b/phpBB2/templates/Helius/images/index.htm @@ -0,0 +1,13 @@ + + +Style by phpBBStyles.com + + + + + +This phpBB style is designed by phpBBStyles.com.
    +See readme.txt for details. + + + \ No newline at end of file diff --git a/phpBB2/templates/Helius/images/lang_english/btn_faq.gif b/phpBB2/templates/Helius/images/lang_english/btn_faq.gif new file mode 100644 index 0000000..62e17cc Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_faq.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_faq_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_faq_on.gif new file mode 100644 index 0000000..d0bb3d8 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_faq_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_groups.gif b/phpBB2/templates/Helius/images/lang_english/btn_groups.gif new file mode 100644 index 0000000..4a82b8f Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_groups.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_groups_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_groups_on.gif new file mode 100644 index 0000000..089a3b9 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_groups_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_index.gif b/phpBB2/templates/Helius/images/lang_english/btn_index.gif new file mode 100644 index 0000000..c47adbb Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_index.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_index_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_index_on.gif new file mode 100644 index 0000000..af0d2e2 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_index_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_login.gif b/phpBB2/templates/Helius/images/lang_english/btn_login.gif new file mode 100644 index 0000000..cffd402 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_login.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_login_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_login_on.gif new file mode 100644 index 0000000..df4a302 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_login_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_logout.gif b/phpBB2/templates/Helius/images/lang_english/btn_logout.gif new file mode 100644 index 0000000..9babd64 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_logout.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_logout_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_logout_on.gif new file mode 100644 index 0000000..68b8289 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_logout_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_pm.gif b/phpBB2/templates/Helius/images/lang_english/btn_pm.gif new file mode 100644 index 0000000..a1f23fd Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_pm.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_pm_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_pm_on.gif new file mode 100644 index 0000000..99e8ee1 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_pm_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_profile.gif b/phpBB2/templates/Helius/images/lang_english/btn_profile.gif new file mode 100644 index 0000000..7906a8d Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_profile.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_profile_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_profile_on.gif new file mode 100644 index 0000000..649293b Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_profile_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_register.gif b/phpBB2/templates/Helius/images/lang_english/btn_register.gif new file mode 100644 index 0000000..59e8057 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_register.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_register_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_register_on.gif new file mode 100644 index 0000000..6f74375 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_register_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_search.gif b/phpBB2/templates/Helius/images/lang_english/btn_search.gif new file mode 100644 index 0000000..14b9b4c Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_search.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_search_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_search_on.gif new file mode 100644 index 0000000..27bb422 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_search_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_users.gif b/phpBB2/templates/Helius/images/lang_english/btn_users.gif new file mode 100644 index 0000000..69c4e13 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_users.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/btn_users_on.gif b/phpBB2/templates/Helius/images/lang_english/btn_users_on.gif new file mode 100644 index 0000000..424e06f Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/btn_users_on.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_edit.gif b/phpBB2/templates/Helius/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..d47c75d Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_edit.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_email.gif b/phpBB2/templates/Helius/images/lang_english/icon_email.gif new file mode 100644 index 0000000..4fb9360 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_email.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_pm.gif b/phpBB2/templates/Helius/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..62e0ba8 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_pm.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_profile.gif b/phpBB2/templates/Helius/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..558cfcb Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_profile.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_quote.gif b/phpBB2/templates/Helius/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..938a134 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_quote.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_search.gif b/phpBB2/templates/Helius/images/lang_english/icon_search.gif new file mode 100644 index 0000000..80d551a Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_search.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/icon_www.gif b/phpBB2/templates/Helius/images/lang_english/icon_www.gif new file mode 100644 index 0000000..699f632 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/icon_www.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/msg_newpost.gif b/phpBB2/templates/Helius/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..23dba89 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/post.gif b/phpBB2/templates/Helius/images/lang_english/post.gif new file mode 100644 index 0000000..cc0b645 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/post.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/reply-locked.gif b/phpBB2/templates/Helius/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..2b1c365 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/reply-locked.gif differ diff --git a/phpBB2/templates/Helius/images/lang_english/reply.gif b/phpBB2/templates/Helius/images/lang_english/reply.gif new file mode 100644 index 0000000..ce20aa7 Binary files /dev/null and b/phpBB2/templates/Helius/images/lang_english/reply.gif differ diff --git a/phpBB2/templates/Helius/images/logo1.gif b/phpBB2/templates/Helius/images/logo1.gif new file mode 100644 index 0000000..a0c5843 Binary files /dev/null and b/phpBB2/templates/Helius/images/logo1.gif differ diff --git a/phpBB2/templates/Helius/images/logo2.gif b/phpBB2/templates/Helius/images/logo2.gif new file mode 100644 index 0000000..bd6b494 Binary files /dev/null and b/phpBB2/templates/Helius/images/logo2.gif differ diff --git a/phpBB2/templates/Helius/images/logo_bg.gif b/phpBB2/templates/Helius/images/logo_bg.gif new file mode 100644 index 0000000..8225bbd Binary files /dev/null and b/phpBB2/templates/Helius/images/logo_bg.gif differ diff --git a/phpBB2/templates/Helius/images/logo_phpBB_med.gif b/phpBB2/templates/Helius/images/logo_phpBB_med.gif new file mode 100644 index 0000000..3d84f94 Binary files /dev/null and b/phpBB2/templates/Helius/images/logo_phpBB_med.gif differ diff --git a/phpBB2/templates/Helius/images/msg_inbox.gif b/phpBB2/templates/Helius/images/msg_inbox.gif new file mode 100644 index 0000000..a6ad3d5 Binary files /dev/null and b/phpBB2/templates/Helius/images/msg_inbox.gif differ diff --git a/phpBB2/templates/Helius/images/msg_outbox.gif b/phpBB2/templates/Helius/images/msg_outbox.gif new file mode 100644 index 0000000..14f7469 Binary files /dev/null and b/phpBB2/templates/Helius/images/msg_outbox.gif differ diff --git a/phpBB2/templates/Helius/images/msg_savebox.gif b/phpBB2/templates/Helius/images/msg_savebox.gif new file mode 100644 index 0000000..2a8d080 Binary files /dev/null and b/phpBB2/templates/Helius/images/msg_savebox.gif differ diff --git a/phpBB2/templates/Helius/images/msg_sentbox.gif b/phpBB2/templates/Helius/images/msg_sentbox.gif new file mode 100644 index 0000000..fc8746a Binary files /dev/null and b/phpBB2/templates/Helius/images/msg_sentbox.gif differ diff --git a/phpBB2/templates/Helius/images/post_bg.gif b/phpBB2/templates/Helius/images/post_bg.gif new file mode 100644 index 0000000..ae88cf1 Binary files /dev/null and b/phpBB2/templates/Helius/images/post_bg.gif differ diff --git a/phpBB2/templates/Helius/images/post_bottom.gif b/phpBB2/templates/Helius/images/post_bottom.gif new file mode 100644 index 0000000..36e5571 Binary files /dev/null and b/phpBB2/templates/Helius/images/post_bottom.gif differ diff --git a/phpBB2/templates/Helius/images/post_corner.gif b/phpBB2/templates/Helius/images/post_corner.gif new file mode 100644 index 0000000..1e21447 Binary files /dev/null and b/phpBB2/templates/Helius/images/post_corner.gif differ diff --git a/phpBB2/templates/Helius/images/post_right.gif b/phpBB2/templates/Helius/images/post_right.gif new file mode 100644 index 0000000..5bc1e43 Binary files /dev/null and b/phpBB2/templates/Helius/images/post_right.gif differ diff --git a/phpBB2/templates/Helius/images/spacer.gif b/phpBB2/templates/Helius/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2/templates/Helius/images/spacer.gif differ diff --git a/phpBB2/templates/Helius/images/top_center.gif b/phpBB2/templates/Helius/images/top_center.gif new file mode 100644 index 0000000..62dd737 Binary files /dev/null and b/phpBB2/templates/Helius/images/top_center.gif differ diff --git a/phpBB2/templates/Helius/images/top_left.gif b/phpBB2/templates/Helius/images/top_left.gif new file mode 100644 index 0000000..50cf243 Binary files /dev/null and b/phpBB2/templates/Helius/images/top_left.gif differ diff --git a/phpBB2/templates/Helius/images/top_right.gif b/phpBB2/templates/Helius/images/top_right.gif new file mode 100644 index 0000000..104c47a Binary files /dev/null and b/phpBB2/templates/Helius/images/top_right.gif differ diff --git a/phpBB2/templates/Helius/images/topic_delete.gif b/phpBB2/templates/Helius/images/topic_delete.gif new file mode 100644 index 0000000..2d504d9 Binary files /dev/null and b/phpBB2/templates/Helius/images/topic_delete.gif differ diff --git a/phpBB2/templates/Helius/images/topic_lock.gif b/phpBB2/templates/Helius/images/topic_lock.gif new file mode 100644 index 0000000..9e65621 Binary files /dev/null and b/phpBB2/templates/Helius/images/topic_lock.gif differ diff --git a/phpBB2/templates/Helius/images/topic_move.gif b/phpBB2/templates/Helius/images/topic_move.gif new file mode 100644 index 0000000..eb0037b Binary files /dev/null and b/phpBB2/templates/Helius/images/topic_move.gif differ diff --git a/phpBB2/templates/Helius/images/topic_split.gif b/phpBB2/templates/Helius/images/topic_split.gif new file mode 100644 index 0000000..11d11ec Binary files /dev/null and b/phpBB2/templates/Helius/images/topic_split.gif differ diff --git a/phpBB2/templates/Helius/images/topic_unlock.gif b/phpBB2/templates/Helius/images/topic_unlock.gif new file mode 100644 index 0000000..d86ada2 Binary files /dev/null and b/phpBB2/templates/Helius/images/topic_unlock.gif differ diff --git a/phpBB2/templates/Helius/images/vote_lcap.gif b/phpBB2/templates/Helius/images/vote_lcap.gif new file mode 100644 index 0000000..a19fce1 Binary files /dev/null and b/phpBB2/templates/Helius/images/vote_lcap.gif differ diff --git a/phpBB2/templates/Helius/images/vote_rcap.gif b/phpBB2/templates/Helius/images/vote_rcap.gif new file mode 100644 index 0000000..1e9755b Binary files /dev/null and b/phpBB2/templates/Helius/images/vote_rcap.gif differ diff --git a/phpBB2/templates/Helius/images/voting_bar.gif b/phpBB2/templates/Helius/images/voting_bar.gif new file mode 100644 index 0000000..5148b3c Binary files /dev/null and b/phpBB2/templates/Helius/images/voting_bar.gif differ diff --git a/phpBB2/templates/Helius/images/whosonline.gif b/phpBB2/templates/Helius/images/whosonline.gif new file mode 100644 index 0000000..d55f4f2 Binary files /dev/null and b/phpBB2/templates/Helius/images/whosonline.gif differ diff --git a/phpBB2/templates/Helius/index.htm b/phpBB2/templates/Helius/index.htm new file mode 100644 index 0000000..711f4f8 --- /dev/null +++ b/phpBB2/templates/Helius/index.htm @@ -0,0 +1,13 @@ + + +Style by phpBBStyles.com + + + + + +This phpBB style is designed by phpBBStyles.com.
    +See readme.txt for details. + + + \ No newline at end of file diff --git a/phpBB2/templates/Helius/index_body.tpl b/phpBB2/templates/Helius/index_body.tpl new file mode 100644 index 0000000..e17138f --- /dev/null +++ b/phpBB2/templates/Helius/index_body.tpl @@ -0,0 +1,110 @@ + +vars['PRIVATE_MESSAGE_INFO'])) +{ + $this->vars['PRIVATE_MESSAGE_INFO'] = '' . $this->vars['PRIVATE_MESSAGE_INFO'] . ''; +} + +?> + + + + + + +
    + + {PRIVATE_MESSAGE_INFO}
    + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    + {S_TIMEZONE}
    +
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + {L_MARK_FORUMS_READ}
    + + +{TPL_HDR1} {catrow.CAT_DESC} {TPL_HDR2}
    + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    {TPL_FTR} + +
    + + +{TPL_HDR1} {L_WHO_IS_ONLINE} {TPL_HDR2} + + + + + + + +
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    {L_ONLINE_EXPLAIN}
    {TPL_FTR} +
    + + +
    +{TPL_HDR1}{L_LOGIN_LOGOUT}{TPL_HDR2} + + + +
    {L_USERNAME}: + +    {L_PASSWORD}: + + +      {L_AUTO_LOGIN} + + +     + +
    {TPL_FTR} +
    +
    + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/Helius/jumpbox.tpl b/phpBB2/templates/Helius/jumpbox.tpl new file mode 100644 index 0000000..7987347 --- /dev/null +++ b/phpBB2/templates/Helius/jumpbox.tpl @@ -0,0 +1,127 @@ + + tags. +// + +$str = $this->vars['S_JUMPBOX_SELECT']; +$options = array(); +// getting header +$pos = strpos($str, ' 0) +{ + $start = substr($str, 0, $pos); + $str = substr($str, $pos, strlen($str)); +} +else +{ + $start = 0; +} +// getting footer +$str = strrev($str); +$pos = strpos($str, strrev('')); +if($pos > 0) +{ + $end = strrev(substr($str, 0, $pos)); + $str = substr($str, $pos, strlen($str)); +} +else +{ + $end = ''; +} +$str = trim(strrev($str)); +// getting all options +while(strlen($str) > 0) +{ + $pos = strpos($str, ''); + if($pos > 0) + { + $pos += 9; + $item = trim(substr($str, 0, $pos)); + $str = trim(substr($str, $pos, strlen($str))); + } + else + { + $item = $str; + $str = ''; + } + $value = ''; + $text = ''; + $selected = false; + $pos = strpos($item, '>') + 1; + // getting text + $text = substr($item, $pos, strlen($item)); + $item = substr($item, 0, $pos); + $pos = strpos($text, '<'); + if($pos) + { + $text = substr($text, 0, $pos); + } + // checking if item is selected + if(strpos($str1, ' selected')) + { + $selected = true; + } + // getting value + $pos = strpos($item, 'value="'); + if($pos) + { + $pos += 7; + $str1 = substr($item, $pos, strlen($item)); + $pos = strpos($str1, '"'); + $value = substr($str1, 0, $pos); + } + $options[] = array( + 'text' => $text, + 'value' => $value, + 'selected' => $selected + ); +} + +$text = $start; +$group = 0; +for($i=0; $i= 2) + { + $item = $options[$i+1]; + $i+=2; + $group = true; + $text .= ''; + } + } + else + { + $text .= ''; +} +$text .= $end; +$this->vars['S_JUMPBOX_SELECT'] = $text; + +?> + + + + + + + +
    {S_JUMPBOX_SELECT}  
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/login_body.tpl b/phpBB2/templates/Helius/login_body.tpl new file mode 100644 index 0000000..890cb99 --- /dev/null +++ b/phpBB2/templates/Helius/login_body.tpl @@ -0,0 +1,42 @@ + + + + + +
    + + +
    +{TPL_HDR1}{L_ENTER_PASSWORD}{TPL_HDR2} + + + +
    + + + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    {TPL_FTR} +
    diff --git a/phpBB2/templates/Helius/memberlist_body.tpl b/phpBB2/templates/Helius/memberlist_body.tpl new file mode 100644 index 0000000..f3909d6 --- /dev/null +++ b/phpBB2/templates/Helius/memberlist_body.tpl @@ -0,0 +1,48 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + +{TPL_HDR1} {TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
    {TPL_FTR} + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/message_body.tpl b/phpBB2/templates/Helius/message_body.tpl new file mode 100644 index 0000000..d9ea058 --- /dev/null +++ b/phpBB2/templates/Helius/message_body.tpl @@ -0,0 +1,23 @@ + + + + + +
    + +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/modcp_body.tpl b/phpBB2/templates/Helius/modcp_body.tpl new file mode 100644 index 0000000..6ae2472 --- /dev/null +++ b/phpBB2/templates/Helius/modcp_body.tpl @@ -0,0 +1,56 @@ + +
    + + + + +
    {L_INDEX} » {FORUM_NAME}
    + + +{TPL_HDR1}{L_MOD_CP}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    {TPL_FTR} + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/modcp_move.tpl b/phpBB2/templates/Helius/modcp_move.tpl new file mode 100644 index 0000000..71d4ae6 --- /dev/null +++ b/phpBB2/templates/Helius/modcp_move.tpl @@ -0,0 +1,36 @@ + + + + + +
    + + +
    +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    {TPL_FTR} +
    diff --git a/phpBB2/templates/Helius/modcp_split.tpl b/phpBB2/templates/Helius/modcp_split.tpl new file mode 100644 index 0000000..4b6a70d --- /dev/null +++ b/phpBB2/templates/Helius/modcp_split.tpl @@ -0,0 +1,81 @@ + + + + + +
    + +
    +{TPL_HDR1}{L_SPLIT_TOPIC}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC_EXPLAIN} +
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2/templates/Helius/modcp_viewip.tpl b/phpBB2/templates/Helius/modcp_viewip.tpl new file mode 100644 index 0000000..ec6a692 --- /dev/null +++ b/phpBB2/templates/Helius/modcp_viewip.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_IP_INFO}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + +
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    {TPL_FTR} \ No newline at end of file diff --git a/phpBB2/templates/Helius/overall_footer.tpl b/phpBB2/templates/Helius/overall_footer.tpl new file mode 100644 index 0000000..af9af9f --- /dev/null +++ b/phpBB2/templates/Helius/overall_footer.tpl @@ -0,0 +1,37 @@ + +

    {ADMIN_LINK}
    + +Powered by phpBB {PHPBB_VERSION} © 2001-2004 phpBB Group
    Designed for Trushkin.net | Themes Database
    {TRANSLATION_INFO}
    +
    + + + diff --git a/phpBB2/templates/Helius/overall_header.tpl b/phpBB2/templates/Helius/overall_header.tpl new file mode 100644 index 0000000..db0a394 --- /dev/null +++ b/phpBB2/templates/Helius/overall_header.tpl @@ -0,0 +1,225 @@ + + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    {L_LOGIN_LOGOUT}{L_REGISTER}{L_PROFILE}{PRIVATE_MESSAGE_INFO}{L_FAQ}{L_MEMBERLIST}{L_SEARCH}{L_USERGROUPS}{L_LOGIN_LOGOUT}{L_INDEX}
    {SITE_DESCRIPTION}
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2/templates/Helius/posting_preview.tpl b/phpBB2/templates/Helius/posting_preview.tpl new file mode 100644 index 0000000..061b814 --- /dev/null +++ b/phpBB2/templates/Helius/posting_preview.tpl @@ -0,0 +1,34 @@ +{TPL_HDR1}{L_PREVIEW}{TPL_HDR2}
    diff --git a/phpBB2/templates/Helius/posting_body.tpl b/phpBB2/templates/Helius/posting_body.tpl new file mode 100644 index 0000000..771335a --- /dev/null +++ b/phpBB2/templates/Helius/posting_body.tpl @@ -0,0 +1,511 @@ + +vars['USERNAME'])) +{ + global $HTTP_COOKIE_VARS; + if(isset($HTTP_COOKIE_VARS['guest_name'])) + { + $this->vars['USERNAME'] = htmlspecialchars(stripslashes($HTTP_COOKIE_VARS['guest_name'])); + } +} +?> + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + » {FORUM_NAME}
    + +{TPL_HDR1}{L_POST_A}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + +{POLLBOX} + + + +
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    +
    + Add image to post +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2/templates/Helius/posting_poll_body.tpl b/phpBB2/templates/Helius/posting_poll_body.tpl new file mode 100644 index 0000000..68ce567 --- /dev/null +++ b/phpBB2/templates/Helius/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + +
    + + +
    {L_POST}{L_POSTED}: {POST_DATE}
    + + + + +
    + + + + + + + + +
    + + + +




    + + + +
    {MESSAGE}
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/posting_smilies.tpl b/phpBB2/templates/Helius/posting_smilies.tpl new file mode 100644 index 0000000..b0c482b --- /dev/null +++ b/phpBB2/templates/Helius/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + +{TPL_HDR1}{L_EMOTICONS}{TPL_HDR2} + + + + + + +
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    {L_CLOSE_WINDOW}
    {TPL_FTR} +
    diff --git a/phpBB2/templates/Helius/posting_topic_review.tpl b/phpBB2/templates/Helius/posting_topic_review.tpl new file mode 100644 index 0000000..26c710e --- /dev/null +++ b/phpBB2/templates/Helius/posting_topic_review.tpl @@ -0,0 +1,36 @@ + + +{TPL_HDR1}{L_TOPIC_REVIEW}{TPL_HDR2} + + + +
    {TPL_FTR} + diff --git a/phpBB2/templates/Helius/privmsgs_body.tpl b/phpBB2/templates/Helius/privmsgs_body.tpl new file mode 100644 index 0000000..42d1c8b --- /dev/null +++ b/phpBB2/templates/Helius/privmsgs_body.tpl @@ -0,0 +1,114 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    {INBOX_LIMIT_PERCENT}
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + +{TPL_HDR1}{BOX_NAME}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    {TPL_FTR} + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/privmsgs_popup.tpl b/phpBB2/templates/Helius/privmsgs_popup.tpl new file mode 100644 index 0000000..419c752 --- /dev/null +++ b/phpBB2/templates/Helius/privmsgs_popup.tpl @@ -0,0 +1,18 @@ + + + +
    +{TPL_HDR1} {TPL_HDR2} + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/privmsgs_preview.tpl b/phpBB2/templates/Helius/privmsgs_preview.tpl new file mode 100644 index 0000000..5c410d5 --- /dev/null +++ b/phpBB2/templates/Helius/privmsgs_preview.tpl @@ -0,0 +1,45 @@ + +{TPL_HDR1}{L_PREVIEW}{TPL_HDR2} + + + + + + +
    {POST_SUBJECT}
    + + + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}




    + + + +
    {MESSAGE}
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/privmsgs_read_body.tpl b/phpBB2/templates/Helius/privmsgs_read_body.tpl new file mode 100644 index 0000000..c16af58 --- /dev/null +++ b/phpBB2/templates/Helius/privmsgs_read_body.tpl @@ -0,0 +1,100 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    +{S_HIDDEN_FIELDS} + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + +{TPL_HDR1}{POST_SUBJECT}{TPL_HDR2} + + + + + + + + + +
    + + + +
    {QUOTE_PM_IMG} {EDIT_PM_IMG}
    + + + + + + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}




    + + + +
    {MESSAGE}
    + +
    + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} {ICQ_IMG}
    {TPL_FTR} + + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/profile_add_body.tpl b/phpBB2/templates/Helius/profile_add_body.tpl new file mode 100644 index 0000000..e4963a3 --- /dev/null +++ b/phpBB2/templates/Helius/profile_add_body.tpl @@ -0,0 +1,264 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + +{TPL_HDR1}{L_REGISTRATION_INFO}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    {TPL_FTR} + + +
    diff --git a/phpBB2/templates/Helius/profile_avatar_gallery.tpl b/phpBB2/templates/Helius/profile_avatar_gallery.tpl new file mode 100644 index 0000000..fb55da1 --- /dev/null +++ b/phpBB2/templates/Helius/profile_avatar_gallery.tpl @@ -0,0 +1,34 @@ + +
    + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_AVATAR_GALLERY}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + +
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    {TPL_FTR} +
    diff --git a/phpBB2/templates/Helius/profile_send_email.tpl b/phpBB2/templates/Helius/profile_send_email.tpl new file mode 100644 index 0000000..8df5430 --- /dev/null +++ b/phpBB2/templates/Helius/profile_send_email.tpl @@ -0,0 +1,71 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_SEND_EMAIL_MSG}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + +
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/profile_send_pass.tpl b/phpBB2/templates/Helius/profile_send_pass.tpl new file mode 100644 index 0000000..9b65f8e --- /dev/null +++ b/phpBB2/templates/Helius/profile_send_pass.tpl @@ -0,0 +1,32 @@ + +
    + + + + +
    {L_INDEX}
    +{TPL_HDR1}{L_SEND_PASSWORD}{TPL_HDR2} + + + + + + + + + + + + + + +
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    {TPL_FTR} +
    diff --git a/phpBB2/templates/Helius/profile_view_body.tpl b/phpBB2/templates/Helius/profile_view_body.tpl new file mode 100644 index 0000000..5c2774e --- /dev/null +++ b/phpBB2/templates/Helius/profile_view_body.tpl @@ -0,0 +1,81 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_VIEWING_PROFILE}{TPL_HDR2} + + + + + + + + + + + + + +
    {L_AVATAR}{L_ABOUT_USER} +
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:{ICQ_IMG}
    +
    {TPL_FTR} + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/readme.txt b/phpBB2/templates/Helius/readme.txt new file mode 100644 index 0000000..3566746 --- /dev/null +++ b/phpBB2/templates/Helius/readme.txt @@ -0,0 +1,50 @@ +"Helius" phpBB theme +Version 1.92 +Created by Vjacheslav Trushkin (aka CyberAlien) +Demo URL: http://helius.phpbbdemo.com +phpBB version: 2.0.5 - 2.0.18 + +Right now translations are available for only these languages: +- Bulgarian +- Danish +- Dutch +- English +- Estonian +- Finnish +- French +- German +- Italian +- Norwegian +- Portuguese +- Portuguese (brazil) +- Russian +- Spanish +- Spanish (argentina) +- Swedish + +For latest list of translations and updates visit +http://www.phpbbstyles.com + + +If you need to contact me here is my contact info: + +Web: http://www.phpbbstyles.com +phpbb.com forum: CyberAlien + +..and don't ask me for images in PSD format because all images are + created using Fireworks MX, not Photoshop. + +----- +Note: +----- + +This theme is optimized for eXtreme Styles mod. I suggest you to install +it. You can download it from here: http://www.phpbbstyles.com/xs.php + +------------ +Installation: +------------ + +Just upload it to phpbb/templates/ directory. Make sure that +directory name is templates/Helius/, not templates/helius (first +letter should be in upper case) diff --git a/phpBB2/templates/Helius/search_body.tpl b/phpBB2/templates/Helius/search_body.tpl new file mode 100644 index 0000000..b51b2f0 --- /dev/null +++ b/phpBB2/templates/Helius/search_body.tpl @@ -0,0 +1,54 @@ + +
    + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_SEARCH_QUERY}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/search_results_posts.tpl b/phpBB2/templates/Helius/search_results_posts.tpl new file mode 100644 index 0000000..3cf99db --- /dev/null +++ b/phpBB2/templates/Helius/search_results_posts.tpl @@ -0,0 +1,68 @@ + + + + + +
    {L_INDEX}
    + + + + + +
    {L_SEARCH_MATCHES}
    + + +
    +{TPL_HDR1}{searchresults.TOPIC_TITLE}{TPL_HDR2} + + + + + + +
    + + + +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    + + + + +
    + + + + + + + + +
    + + + +
    + + + + +
    {searchresults.POSTER_NAME}
     
    {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    {L_VIEWS}: {searchresults.TOPIC_VIEWS}




    + + + +
    {searchresults.MESSAGE}
    {TPL_FTR} + + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/search_results_topics.tpl b/phpBB2/templates/Helius/search_results_topics.tpl new file mode 100644 index 0000000..ef5789e --- /dev/null +++ b/phpBB2/templates/Helius/search_results_topics.tpl @@ -0,0 +1,42 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_SEARCH_MATCHES}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
    {TPL_FTR} + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/Helius/search_username.tpl b/phpBB2/templates/Helius/search_username.tpl new file mode 100644 index 0000000..a70af25 --- /dev/null +++ b/phpBB2/templates/Helius/search_username.tpl @@ -0,0 +1,29 @@ + + + +
    + + + + +
    +{TPL_HDR1}{L_SEARCH_USERNAME}{TPL_HDR2} + + + +

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    {TPL_FTR} +
    +
    diff --git a/phpBB2/templates/Helius/simple_footer.tpl b/phpBB2/templates/Helius/simple_footer.tpl new file mode 100644 index 0000000..0ca7e2f --- /dev/null +++ b/phpBB2/templates/Helius/simple_footer.tpl @@ -0,0 +1,34 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001-2004 phpBB Group
    Designed by phpBBStyles.com for Trushkin.net
    + + + diff --git a/phpBB2/templates/Helius/simple_header.tpl b/phpBB2/templates/Helius/simple_header.tpl new file mode 100644 index 0000000..2973c37 --- /dev/null +++ b/phpBB2/templates/Helius/simple_header.tpl @@ -0,0 +1,28 @@ + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2/templates/Helius/theme_info.cfg b/phpBB2/templates/Helius/theme_info.cfg new file mode 100644 index 0000000..8c7e501 --- /dev/null +++ b/phpBB2/templates/Helius/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2/templates/Helius/viewforum_body.tpl b/phpBB2/templates/Helius/viewforum_body.tpl new file mode 100644 index 0000000..800874f --- /dev/null +++ b/phpBB2/templates/Helius/viewforum_body.tpl @@ -0,0 +1,92 @@ + +
    + + + + + + + + + + +
    {L_MODERATOR}: {MODERATORS}
    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + +{TPL_HDR1}{FORUM_NAME}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    {TPL_FTR} + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} » {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}
    {L_NEW_POSTS_TOPIC_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_TOPIC_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2/templates/Helius/viewonline_body.tpl b/phpBB2/templates/Helius/viewonline_body.tpl new file mode 100644 index 0000000..7bbc2ba --- /dev/null +++ b/phpBB2/templates/Helius/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_WHOSONLINE}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    {TPL_FTR} + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2/templates/Helius/viewtopic_body.tpl b/phpBB2/templates/Helius/viewtopic_body.tpl new file mode 100644 index 0000000..0f9c253 --- /dev/null +++ b/phpBB2/templates/Helius/viewtopic_body.tpl @@ -0,0 +1,136 @@ + +_tpldata['postrow.']) ) ? sizeof($this->_tpldata['postrow.']) : 0; +for ($postrow_i = 0; $postrow_i < $postrow_count; $postrow_i++) +{ + $postrow_item = &$this->_tpldata['postrow.'][$postrow_i]; + // replace username with link to user profile + if(!empty($postrow_item['PROFILE'])) + { + $postrow_item['SEARCH_IMG2'] = $postrow_item['SEARCH_IMG']; + $search = array($lang['Read_profile'], ' + + + + + + + + + + +
    + {L_INDEX} + » {FORUM_NAME} + » {TOPIC_TITLE}{PAGINATION}
    {L_POST_NEW_TOPIC}  {L_POST_REPLY_TOPIC} + {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  +
    + +{POLL_DISPLAY} + + +
    +{TPL_HDR1}{postrow.POST_SUBJECT}{TPL_HDR2} + + + + + + + + + +
    + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}
    + + + + + + + +
    + + + + + + + + +
    + + + +
    + + + + + + + +
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}
    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}




    + + + +
    {postrow.MESSAGE}
    + + + +
    {postrow.EDITED_MESSAGE}{postrow.SIGNATURE}
    + + + +
    {postrow.PROFILE_IMG} {postrow.SEARCH_IMG2} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG} {postrow.ICQ_IMG}
    {TPL_FTR} +
    + + +{TPL_HDR1}{TOPIC_TITLE}{TPL_HDR2} + + + + + + +
    +   {L_INDEX} » {FORUM_NAME}
    + + + + + +
    + {S_AUTH_LIST} + + {S_TIMEZONE}  
    + {PAGE_NUMBER}  
    + {PAGINATION}
    + {S_WATCH_TOPIC} +
    +
    + + + + +
    {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} {JUMPBOX}
    +
    {TPL_FTR} + + + + + + +
     {L_POST_NEW_TOPIC}  {L_POST_REPLY_TOPIC}{S_TOPIC_ADMIN} 
    diff --git a/phpBB2/templates/Helius/viewtopic_poll_ballot.tpl b/phpBB2/templates/Helius/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..200b053 --- /dev/null +++ b/phpBB2/templates/Helius/viewtopic_poll_ballot.tpl @@ -0,0 +1,29 @@ +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +

    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/viewtopic_poll_result.tpl b/phpBB2/templates/Helius/viewtopic_poll_result.tpl new file mode 100644 index 0000000..219073e --- /dev/null +++ b/phpBB2/templates/Helius/viewtopic_poll_result.tpl @@ -0,0 +1,38 @@ +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +

    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    +
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2/templates/Helius/xs.cfg b/phpBB2/templates/Helius/xs.cfg new file mode 100644 index 0000000..102f013 --- /dev/null +++ b/phpBB2/templates/Helius/xs.cfg @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmas/admin/admin_message_body.tpl b/phpBB2/templates/christmas/admin/admin_message_body.tpl new file mode 100644 index 0000000..7431f09 --- /dev/null +++ b/phpBB2/templates/christmas/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2/templates/christmas/admin/auth_forum_body.tpl b/phpBB2/templates/christmas/admin/auth_forum_body.tpl new file mode 100644 index 0000000..c013a2a --- /dev/null +++ b/phpBB2/templates/christmas/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas/admin/auth_select_body.tpl b/phpBB2/templates/christmas/admin/auth_select_body.tpl new file mode 100644 index 0000000..80ebd36 --- /dev/null +++ b/phpBB2/templates/christmas/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2/templates/christmas/admin/auth_ug_body.tpl b/phpBB2/templates/christmas/admin/auth_ug_body.tpl new file mode 100644 index 0000000..69e4bab --- /dev/null +++ b/phpBB2/templates/christmas/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas/admin/board_config_body.tpl b/phpBB2/templates/christmas/admin/board_config_body.tpl new file mode 100644 index 0000000..5647487 --- /dev/null +++ b/phpBB2/templates/christmas/admin/board_config_body.tpl @@ -0,0 +1,248 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2/templates/christmas/admin/category_edit_body.tpl b/phpBB2/templates/christmas/admin/category_edit_body.tpl new file mode 100644 index 0000000..07de378 --- /dev/null +++ b/phpBB2/templates/christmas/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/christmas/admin/db_utils_backup_body.tpl b/phpBB2/templates/christmas/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..7a96953 --- /dev/null +++ b/phpBB2/templates/christmas/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/db_utils_restore_body.tpl b/phpBB2/templates/christmas/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..6c87461 --- /dev/null +++ b/phpBB2/templates/christmas/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2/templates/christmas/admin/disallow_body.tpl b/phpBB2/templates/christmas/admin/disallow_body.tpl new file mode 100644 index 0000000..37caa6b --- /dev/null +++ b/phpBB2/templates/christmas/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2/templates/christmas/admin/forum_admin_body.tpl b/phpBB2/templates/christmas/admin/forum_admin_body.tpl new file mode 100644 index 0000000..0d301c4 --- /dev/null +++ b/phpBB2/templates/christmas/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2/templates/christmas/admin/forum_delete_body.tpl b/phpBB2/templates/christmas/admin/forum_delete_body.tpl new file mode 100644 index 0000000..8151718 --- /dev/null +++ b/phpBB2/templates/christmas/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2/templates/christmas/admin/forum_edit_body.tpl b/phpBB2/templates/christmas/admin/forum_edit_body.tpl new file mode 100644 index 0000000..0fca787 --- /dev/null +++ b/phpBB2/templates/christmas/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/christmas/admin/forum_prune_body.tpl b/phpBB2/templates/christmas/admin/forum_prune_body.tpl new file mode 100644 index 0000000..fcd5fe7 --- /dev/null +++ b/phpBB2/templates/christmas/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2/templates/christmas/admin/forum_prune_result_body.tpl b/phpBB2/templates/christmas/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..42fc100 --- /dev/null +++ b/phpBB2/templates/christmas/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2/templates/christmas/admin/forum_prune_select_body.tpl b/phpBB2/templates/christmas/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..95787d8 --- /dev/null +++ b/phpBB2/templates/christmas/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2/templates/christmas/admin/group_edit_body.tpl b/phpBB2/templates/christmas/admin/group_edit_body.tpl new file mode 100644 index 0000000..3fd89c7 --- /dev/null +++ b/phpBB2/templates/christmas/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/group_select_body.tpl b/phpBB2/templates/christmas/admin/group_select_body.tpl new file mode 100644 index 0000000..62e5139 --- /dev/null +++ b/phpBB2/templates/christmas/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/index.htm b/phpBB2/templates/christmas/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/templates/christmas/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/templates/christmas/admin/index_body.tpl b/phpBB2/templates/christmas/admin/index_body.tpl new file mode 100644 index 0000000..e715dda --- /dev/null +++ b/phpBB2/templates/christmas/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2/templates/christmas/admin/index_frameset.tpl b/phpBB2/templates/christmas/admin/index_frameset.tpl new file mode 100644 index 0000000..d3f3f31 --- /dev/null +++ b/phpBB2/templates/christmas/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2/templates/christmas/admin/index_navigate.tpl b/phpBB2/templates/christmas/admin/index_navigate.tpl new file mode 100644 index 0000000..784f838 --- /dev/null +++ b/phpBB2/templates/christmas/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2/templates/christmas/admin/page_footer.tpl b/phpBB2/templates/christmas/admin/page_footer.tpl new file mode 100644 index 0000000..4b45f2d --- /dev/null +++ b/phpBB2/templates/christmas/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmas/admin/page_header.tpl b/phpBB2/templates/christmas/admin/page_header.tpl new file mode 100644 index 0000000..8fa72f1 --- /dev/null +++ b/phpBB2/templates/christmas/admin/page_header.tpl @@ -0,0 +1,226 @@ + + + +{META} + + + +{SITENAME} - {L_PHPBB_ADMIN} + + + + diff --git a/phpBB2/templates/christmas/admin/ranks_edit_body.tpl b/phpBB2/templates/christmas/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..cca80cb --- /dev/null +++ b/phpBB2/templates/christmas/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/ranks_list_body.tpl b/phpBB2/templates/christmas/admin/ranks_list_body.tpl new file mode 100644 index 0000000..3444a24 --- /dev/null +++ b/phpBB2/templates/christmas/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/christmas/admin/smile_edit_body.tpl b/phpBB2/templates/christmas/admin/smile_edit_body.tpl new file mode 100644 index 0000000..db6a6ec --- /dev/null +++ b/phpBB2/templates/christmas/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/smile_import_body.tpl b/phpBB2/templates/christmas/admin/smile_import_body.tpl new file mode 100644 index 0000000..dcea5dc --- /dev/null +++ b/phpBB2/templates/christmas/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/smile_list_body.tpl b/phpBB2/templates/christmas/admin/smile_list_body.tpl new file mode 100644 index 0000000..4f644df --- /dev/null +++ b/phpBB2/templates/christmas/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2/templates/christmas/admin/styles_addnew_body.tpl b/phpBB2/templates/christmas/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..b564656 --- /dev/null +++ b/phpBB2/templates/christmas/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2/templates/christmas/admin/styles_edit_body.tpl b/phpBB2/templates/christmas/admin/styles_edit_body.tpl new file mode 100644 index 0000000..e8e0f15 --- /dev/null +++ b/phpBB2/templates/christmas/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2/templates/christmas/admin/styles_exporter.tpl b/phpBB2/templates/christmas/admin/styles_exporter.tpl new file mode 100644 index 0000000..1a34342 --- /dev/null +++ b/phpBB2/templates/christmas/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2/templates/christmas/admin/styles_list_body.tpl b/phpBB2/templates/christmas/admin/styles_list_body.tpl new file mode 100644 index 0000000..52c7519 --- /dev/null +++ b/phpBB2/templates/christmas/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/christmas/admin/user_avatar_gallery.tpl b/phpBB2/templates/christmas/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..e68c795 --- /dev/null +++ b/phpBB2/templates/christmas/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas/admin/user_ban_body.tpl b/phpBB2/templates/christmas/admin/user_ban_body.tpl new file mode 100644 index 0000000..7486e90 --- /dev/null +++ b/phpBB2/templates/christmas/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2/templates/christmas/admin/user_edit_body.tpl b/phpBB2/templates/christmas/admin/user_edit_body.tpl new file mode 100644 index 0000000..e43a307 --- /dev/null +++ b/phpBB2/templates/christmas/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2/templates/christmas/admin/user_email_body.tpl b/phpBB2/templates/christmas/admin/user_email_body.tpl new file mode 100644 index 0000000..88bac1e --- /dev/null +++ b/phpBB2/templates/christmas/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2/templates/christmas/admin/user_select_body.tpl b/phpBB2/templates/christmas/admin/user_select_body.tpl new file mode 100644 index 0000000..d19cec5 --- /dev/null +++ b/phpBB2/templates/christmas/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/words_edit_body.tpl b/phpBB2/templates/christmas/admin/words_edit_body.tpl new file mode 100644 index 0000000..0364237 --- /dev/null +++ b/phpBB2/templates/christmas/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/admin/words_list_body.tpl b/phpBB2/templates/christmas/admin/words_list_body.tpl new file mode 100644 index 0000000..710bd04 --- /dev/null +++ b/phpBB2/templates/christmas/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas/agreement.tpl b/phpBB2/templates/christmas/agreement.tpl new file mode 100644 index 0000000..4f4fd7b --- /dev/null +++ b/phpBB2/templates/christmas/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2/templates/christmas/bbcode.tpl b/phpBB2/templates/christmas/bbcode.tpl new file mode 100644 index 0000000..1e3f650 --- /dev/null +++ b/phpBB2/templates/christmas/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2/templates/christmas/posting_preview.tpl b/phpBB2/templates/christmas/posting_preview.tpl new file mode 100644 index 0000000..572ebf4 --- /dev/null +++ b/phpBB2/templates/christmas/posting_preview.tpl @@ -0,0 +1,23 @@ + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2/templates/christmas/christmas.cfg b/phpBB2/templates/christmas/christmas.cfg new file mode 100644 index 0000000..39088d2 --- /dev/null +++ b/phpBB2/templates/christmas/christmas.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmas/christmas.css b/phpBB2/templates/christmas/christmas.css new file mode 100644 index 0000000..0ea5c05 --- /dev/null +++ b/phpBB2/templates/christmas/christmas.css @@ -0,0 +1,210 @@ +/* + The orightinal christmas Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #E5E5E5; + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1; +} + +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #006699; } +a:hover { text-decoration: underline; color : #DD6900; } +hr { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline { background-color: #FFFFFF; border: 1px #98AAB1 solid; } + +/* This is the outline round the main forum tables */ +.forumline { background-color: #FFFFFF; border: 2px #006699 solid; } + + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #EFEFEF; } +td.row2 { background-color: #DEE3E7; } +td.row3 { background-color: #D1D7DC; } + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic { + background-color: #FFFFFF; + background-image: url(images/cellpic2.jpg); + background-repeat: repeat-y; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #FFA34F; font-size: 11px; font-weight : bold; + background-color: #006699; height: 25px; + background-image: url(images/cellpic3.gif); +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); + background-color:#D1D7DC; border: #FFFFFF; border-style: solid; height: 28px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; border-style: solid; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #D1D7DC; border: #FFFFFF; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #DD6900; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #006699; } +a.mainmenu:hover{ text-decoration: underline; color : #DD6900; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #006699} +a.cattitle { text-decoration: none; color : #006699; } +a.cattitle:hover{ text-decoration: underline; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #006699; } +a.forumlink { text-decoration: none; color : #006699; } +a.forumlink:hover{ text-decoration: underline; color : #DD6900; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #006699; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #006699; } +a.topictitle:visited { text-decoration: none; color : #5493B4; } +a.topictitle:hover { text-decoration: underline; color : #DD6900; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;} +a.postlink:link { text-decoration: none; color : #006699 } +a.postlink:visited { text-decoration: none; color : #5493B4; } +a.postlink:hover { text-decoration: underline; color : #DD6900} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright { color: #444444; text-decoration: none;} +a.copyright:hover { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #FFFFFF; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #EFEFEF; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #DEE3E7; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2/templates/christmas/confirm_body.tpl b/phpBB2/templates/christmas/confirm_body.tpl new file mode 100644 index 0000000..318ac5a --- /dev/null +++ b/phpBB2/templates/christmas/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/christmas/error_body.tpl b/phpBB2/templates/christmas/error_body.tpl new file mode 100644 index 0000000..bd7bc8d --- /dev/null +++ b/phpBB2/templates/christmas/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2/templates/christmas/faq_body.tpl b/phpBB2/templates/christmas/faq_body.tpl new file mode 100644 index 0000000..68bafb5 --- /dev/null +++ b/phpBB2/templates/christmas/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/formIE.css b/phpBB2/templates/christmas/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2/templates/christmas/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2/templates/christmas/groupcp_info_body.tpl b/phpBB2/templates/christmas/groupcp_info_body.tpl new file mode 100644 index 0000000..776eb3a --- /dev/null +++ b/phpBB2/templates/christmas/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/groupcp_pending_info.tpl b/phpBB2/templates/christmas/groupcp_pending_info.tpl new file mode 100644 index 0000000..5b00be4 --- /dev/null +++ b/phpBB2/templates/christmas/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2/templates/christmas/groupcp_user_body.tpl b/phpBB2/templates/christmas/groupcp_user_body.tpl new file mode 100644 index 0000000..906611a --- /dev/null +++ b/phpBB2/templates/christmas/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/images/barre3.gif b/phpBB2/templates/christmas/images/barre3.gif new file mode 100644 index 0000000..f9ad7e0 Binary files /dev/null and b/phpBB2/templates/christmas/images/barre3.gif differ diff --git a/phpBB2/templates/christmas/images/cellpic.gif b/phpBB2/templates/christmas/images/cellpic.gif new file mode 100644 index 0000000..58846d0 Binary files /dev/null and b/phpBB2/templates/christmas/images/cellpic.gif differ diff --git a/phpBB2/templates/christmas/images/cellpic1.gif b/phpBB2/templates/christmas/images/cellpic1.gif new file mode 100644 index 0000000..44b3430 Binary files /dev/null and b/phpBB2/templates/christmas/images/cellpic1.gif differ diff --git a/phpBB2/templates/christmas/images/cellpic2.jpg b/phpBB2/templates/christmas/images/cellpic2.jpg new file mode 100644 index 0000000..764c0e5 Binary files /dev/null and b/phpBB2/templates/christmas/images/cellpic2.jpg differ diff --git a/phpBB2/templates/christmas/images/cellpic3.gif b/phpBB2/templates/christmas/images/cellpic3.gif new file mode 100644 index 0000000..e27cdfd Binary files /dev/null and b/phpBB2/templates/christmas/images/cellpic3.gif differ diff --git a/phpBB2/templates/christmas/images/cellpic_bkg.gif b/phpBB2/templates/christmas/images/cellpic_bkg.gif new file mode 100644 index 0000000..c806b23 Binary files /dev/null and b/phpBB2/templates/christmas/images/cellpic_bkg.gif differ diff --git a/phpBB2/templates/christmas/images/created_by.jpg b/phpBB2/templates/christmas/images/created_by.jpg new file mode 100644 index 0000000..35f141b Binary files /dev/null and b/phpBB2/templates/christmas/images/created_by.jpg differ diff --git a/phpBB2/templates/christmas/images/folder.gif b/phpBB2/templates/christmas/images/folder.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder.gif differ diff --git a/phpBB2/templates/christmas/images/folder_announce.gif b/phpBB2/templates/christmas/images/folder_announce.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_announce.gif differ diff --git a/phpBB2/templates/christmas/images/folder_announce_new.gif b/phpBB2/templates/christmas/images/folder_announce_new.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_announce_new.gif differ diff --git a/phpBB2/templates/christmas/images/folder_big.gif b/phpBB2/templates/christmas/images/folder_big.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_big.gif differ diff --git a/phpBB2/templates/christmas/images/folder_hot.gif b/phpBB2/templates/christmas/images/folder_hot.gif new file mode 100644 index 0000000..30ed45d Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_hot.gif differ diff --git a/phpBB2/templates/christmas/images/folder_lock.gif b/phpBB2/templates/christmas/images/folder_lock.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_lock.gif differ diff --git a/phpBB2/templates/christmas/images/folder_lock_new.gif b/phpBB2/templates/christmas/images/folder_lock_new.gif new file mode 100644 index 0000000..c1eb69c Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_lock_new.gif differ diff --git a/phpBB2/templates/christmas/images/folder_locked_big.gif b/phpBB2/templates/christmas/images/folder_locked_big.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_locked_big.gif differ diff --git a/phpBB2/templates/christmas/images/folder_new.gif b/phpBB2/templates/christmas/images/folder_new.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_new.gif differ diff --git a/phpBB2/templates/christmas/images/folder_new_big.gif b/phpBB2/templates/christmas/images/folder_new_big.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_new_big.gif differ diff --git a/phpBB2/templates/christmas/images/folder_new_hot.gif b/phpBB2/templates/christmas/images/folder_new_hot.gif new file mode 100644 index 0000000..d326aef Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_new_hot.gif differ diff --git a/phpBB2/templates/christmas/images/folder_sticky.gif b/phpBB2/templates/christmas/images/folder_sticky.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_sticky.gif differ diff --git a/phpBB2/templates/christmas/images/folder_sticky_new.gif b/phpBB2/templates/christmas/images/folder_sticky_new.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2/templates/christmas/images/folder_sticky_new.gif differ diff --git a/phpBB2/templates/christmas/images/icon_delete.gif b/phpBB2/templates/christmas/images/icon_delete.gif new file mode 100644 index 0000000..4dd7962 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_delete.gif differ diff --git a/phpBB2/templates/christmas/images/icon_latest_reply.gif b/phpBB2/templates/christmas/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_latest_reply.gif differ diff --git a/phpBB2/templates/christmas/images/icon_login.gif b/phpBB2/templates/christmas/images/icon_login.gif new file mode 100644 index 0000000..1a77964 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_login.gif differ diff --git a/phpBB2/templates/christmas/images/icon_logout.gif b/phpBB2/templates/christmas/images/icon_logout.gif new file mode 100644 index 0000000..94df93c Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_logout.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_faq.gif b/phpBB2/templates/christmas/images/icon_mini_faq.gif new file mode 100644 index 0000000..26f7a57 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_faq.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_groups.gif b/phpBB2/templates/christmas/images/icon_mini_groups.gif new file mode 100644 index 0000000..8fe8d48 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_groups.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_login.gif b/phpBB2/templates/christmas/images/icon_mini_login.gif new file mode 100644 index 0000000..30b309b Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_login.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_members.gif b/phpBB2/templates/christmas/images/icon_mini_members.gif new file mode 100644 index 0000000..3a64e10 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_members.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_message.gif b/phpBB2/templates/christmas/images/icon_mini_message.gif new file mode 100644 index 0000000..a8c7ddf Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_message.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_profile.gif b/phpBB2/templates/christmas/images/icon_mini_profile.gif new file mode 100644 index 0000000..8b10145 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_profile.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_register.gif b/phpBB2/templates/christmas/images/icon_mini_register.gif new file mode 100644 index 0000000..4ac3b77 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_register.gif differ diff --git a/phpBB2/templates/christmas/images/icon_mini_search.gif b/phpBB2/templates/christmas/images/icon_mini_search.gif new file mode 100644 index 0000000..b1eb8c9 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_mini_search.gif differ diff --git a/phpBB2/templates/christmas/images/icon_minipost.gif b/phpBB2/templates/christmas/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_minipost.gif differ diff --git a/phpBB2/templates/christmas/images/icon_minipost_new.gif b/phpBB2/templates/christmas/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_minipost_new.gif differ diff --git a/phpBB2/templates/christmas/images/icon_newest_reply.gif b/phpBB2/templates/christmas/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2/templates/christmas/images/icon_newest_reply.gif differ diff --git a/phpBB2/templates/christmas/images/index.htm b/phpBB2/templates/christmas/images/index.htm new file mode 100644 index 0000000..4c5bb15 --- /dev/null +++ b/phpBB2/templates/christmas/images/index.htm @@ -0,0 +1,16 @@ + + +christmas created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmas/images/lang_english/icon_aim.gif b/phpBB2/templates/christmas/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..3014853 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_aim.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_edit.gif b/phpBB2/templates/christmas/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..11668a5 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_edit.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_email.gif b/phpBB2/templates/christmas/images/lang_english/icon_email.gif new file mode 100644 index 0000000..5f194b0 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_email.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_icq_add.gif b/phpBB2/templates/christmas/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..c8d2830 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_ip.gif b/phpBB2/templates/christmas/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..1c9923a Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_ip.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_msnm.gif b/phpBB2/templates/christmas/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..d5507e2 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_pm.gif b/phpBB2/templates/christmas/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..270e39a Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_pm.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_profile.gif b/phpBB2/templates/christmas/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..20f1d93 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_profile.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_quote.gif b/phpBB2/templates/christmas/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..a7a9984 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_quote.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_search.gif b/phpBB2/templates/christmas/images/lang_english/icon_search.gif new file mode 100644 index 0000000..c4df944 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_search.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_www.gif b/phpBB2/templates/christmas/images/lang_english/icon_www.gif new file mode 100644 index 0000000..de76a44 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_www.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/icon_yim.gif b/phpBB2/templates/christmas/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..da307c9 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/icon_yim.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/msg_newpost.gif b/phpBB2/templates/christmas/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..6fcf81c Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/post.gif b/phpBB2/templates/christmas/images/lang_english/post.gif new file mode 100644 index 0000000..d427967 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/post.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/reply-locked.gif b/phpBB2/templates/christmas/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..175dae0 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/reply-locked.gif differ diff --git a/phpBB2/templates/christmas/images/lang_english/reply.gif b/phpBB2/templates/christmas/images/lang_english/reply.gif new file mode 100644 index 0000000..6c24898 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_english/reply.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/Thumbs.db b/phpBB2/templates/christmas/images/lang_french/Thumbs.db new file mode 100644 index 0000000..ac35725 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/Thumbs.db differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_aim.gif b/phpBB2/templates/christmas/images/lang_french/icon_aim.gif new file mode 100644 index 0000000..3014853 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_aim.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_edit.gif b/phpBB2/templates/christmas/images/lang_french/icon_edit.gif new file mode 100644 index 0000000..3d7f78c Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_edit.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_email.gif b/phpBB2/templates/christmas/images/lang_french/icon_email.gif new file mode 100644 index 0000000..5e3647c Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_email.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_icq_add.gif b/phpBB2/templates/christmas/images/lang_french/icon_icq_add.gif new file mode 100644 index 0000000..2b1361d Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_icq_add.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_ip.gif b/phpBB2/templates/christmas/images/lang_french/icon_ip.gif new file mode 100644 index 0000000..79b59fe Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_ip.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_msnm.gif b/phpBB2/templates/christmas/images/lang_french/icon_msnm.gif new file mode 100644 index 0000000..4288be0 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_msnm.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_pm.gif b/phpBB2/templates/christmas/images/lang_french/icon_pm.gif new file mode 100644 index 0000000..02375cb Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_pm.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_profile.gif b/phpBB2/templates/christmas/images/lang_french/icon_profile.gif new file mode 100644 index 0000000..777f844 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_profile.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_quote.gif b/phpBB2/templates/christmas/images/lang_french/icon_quote.gif new file mode 100644 index 0000000..f67d2d6 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_quote.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_search.gif b/phpBB2/templates/christmas/images/lang_french/icon_search.gif new file mode 100644 index 0000000..c4df944 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_search.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_www.gif b/phpBB2/templates/christmas/images/lang_french/icon_www.gif new file mode 100644 index 0000000..de76a44 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_www.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/icon_yim.gif b/phpBB2/templates/christmas/images/lang_french/icon_yim.gif new file mode 100644 index 0000000..da307c9 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/icon_yim.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/msg_newpost.gif b/phpBB2/templates/christmas/images/lang_french/msg_newpost.gif new file mode 100644 index 0000000..8eaeb9c Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/msg_newpost.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/post.gif b/phpBB2/templates/christmas/images/lang_french/post.gif new file mode 100644 index 0000000..8eaeb9c Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/post.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/reply-locked.gif b/phpBB2/templates/christmas/images/lang_french/reply-locked.gif new file mode 100644 index 0000000..aa12418 Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/reply-locked.gif differ diff --git a/phpBB2/templates/christmas/images/lang_french/reply.gif b/phpBB2/templates/christmas/images/lang_french/reply.gif new file mode 100644 index 0000000..f8d596f Binary files /dev/null and b/phpBB2/templates/christmas/images/lang_french/reply.gif differ diff --git a/phpBB2/templates/christmas/images/logo_phpBB.gif b/phpBB2/templates/christmas/images/logo_phpBB.gif new file mode 100644 index 0000000..d7b3166 Binary files /dev/null and b/phpBB2/templates/christmas/images/logo_phpBB.gif differ diff --git a/phpBB2/templates/christmas/images/logo_phpBB2.gif b/phpBB2/templates/christmas/images/logo_phpBB2.gif new file mode 100644 index 0000000..3bd7a8e Binary files /dev/null and b/phpBB2/templates/christmas/images/logo_phpBB2.gif differ diff --git a/phpBB2/templates/christmas/images/logo_phpBB_med.gif b/phpBB2/templates/christmas/images/logo_phpBB_med.gif new file mode 100644 index 0000000..dbda1ae Binary files /dev/null and b/phpBB2/templates/christmas/images/logo_phpBB_med.gif differ diff --git a/phpBB2/templates/christmas/images/msg_inbox.gif b/phpBB2/templates/christmas/images/msg_inbox.gif new file mode 100644 index 0000000..1647465 Binary files /dev/null and b/phpBB2/templates/christmas/images/msg_inbox.gif differ diff --git a/phpBB2/templates/christmas/images/msg_outbox.gif b/phpBB2/templates/christmas/images/msg_outbox.gif new file mode 100644 index 0000000..9a7262e Binary files /dev/null and b/phpBB2/templates/christmas/images/msg_outbox.gif differ diff --git a/phpBB2/templates/christmas/images/msg_savebox.gif b/phpBB2/templates/christmas/images/msg_savebox.gif new file mode 100644 index 0000000..072f628 Binary files /dev/null and b/phpBB2/templates/christmas/images/msg_savebox.gif differ diff --git a/phpBB2/templates/christmas/images/msg_sentbox.gif b/phpBB2/templates/christmas/images/msg_sentbox.gif new file mode 100644 index 0000000..5cde5b0 Binary files /dev/null and b/phpBB2/templates/christmas/images/msg_sentbox.gif differ diff --git a/phpBB2/templates/christmas/images/phpbb-design.gif b/phpBB2/templates/christmas/images/phpbb-design.gif new file mode 100644 index 0000000..a389dff Binary files /dev/null and b/phpBB2/templates/christmas/images/phpbb-design.gif differ diff --git a/phpBB2/templates/christmas/images/spacer.gif b/phpBB2/templates/christmas/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2/templates/christmas/images/spacer.gif differ diff --git a/phpBB2/templates/christmas/images/topic_delete.gif b/phpBB2/templates/christmas/images/topic_delete.gif new file mode 100644 index 0000000..ecff1e5 Binary files /dev/null and b/phpBB2/templates/christmas/images/topic_delete.gif differ diff --git a/phpBB2/templates/christmas/images/topic_lock.gif b/phpBB2/templates/christmas/images/topic_lock.gif new file mode 100644 index 0000000..e4d37a7 Binary files /dev/null and b/phpBB2/templates/christmas/images/topic_lock.gif differ diff --git a/phpBB2/templates/christmas/images/topic_move.gif b/phpBB2/templates/christmas/images/topic_move.gif new file mode 100644 index 0000000..138646f Binary files /dev/null and b/phpBB2/templates/christmas/images/topic_move.gif differ diff --git a/phpBB2/templates/christmas/images/topic_split.gif b/phpBB2/templates/christmas/images/topic_split.gif new file mode 100644 index 0000000..9d9d893 Binary files /dev/null and b/phpBB2/templates/christmas/images/topic_split.gif differ diff --git a/phpBB2/templates/christmas/images/topic_unlock.gif b/phpBB2/templates/christmas/images/topic_unlock.gif new file mode 100644 index 0000000..36f3d68 Binary files /dev/null and b/phpBB2/templates/christmas/images/topic_unlock.gif differ diff --git a/phpBB2/templates/christmas/images/vote_lcap.gif b/phpBB2/templates/christmas/images/vote_lcap.gif new file mode 100644 index 0000000..22e1080 Binary files /dev/null and b/phpBB2/templates/christmas/images/vote_lcap.gif differ diff --git a/phpBB2/templates/christmas/images/vote_rcap.gif b/phpBB2/templates/christmas/images/vote_rcap.gif new file mode 100644 index 0000000..28da06f Binary files /dev/null and b/phpBB2/templates/christmas/images/vote_rcap.gif differ diff --git a/phpBB2/templates/christmas/images/voting_bar.gif b/phpBB2/templates/christmas/images/voting_bar.gif new file mode 100644 index 0000000..ced112d Binary files /dev/null and b/phpBB2/templates/christmas/images/voting_bar.gif differ diff --git a/phpBB2/templates/christmas/images/whosonline.gif b/phpBB2/templates/christmas/images/whosonline.gif new file mode 100644 index 0000000..3bea906 Binary files /dev/null and b/phpBB2/templates/christmas/images/whosonline.gif differ diff --git a/phpBB2/templates/christmas/index.htm b/phpBB2/templates/christmas/index.htm new file mode 100644 index 0000000..18ad2af --- /dev/null +++ b/phpBB2/templates/christmas/index.htm @@ -0,0 +1,20 @@ + + +christmas created by subBlue Design + + + + + + + + + + + + +
    Created by subBlue Design

     

    +

    phpBB-design.com

    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmas/index_body.tpl b/phpBB2/templates/christmas/index_body.tpl new file mode 100644 index 0000000..4daa0e0 --- /dev/null +++ b/phpBB2/templates/christmas/index_body.tpl @@ -0,0 +1,104 @@ + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/christmas/install.tpl b/phpBB2/templates/christmas/install.tpl new file mode 100644 index 0000000..292d18b --- /dev/null +++ b/phpBB2/templates/christmas/install.tpl @@ -0,0 +1,183 @@ + + + + + +{L_INSTALLATION} + + + + + + + + + +
    + + + + + + + + + + + + + + + +
    + + + + +
    Forum Home{L_INSTALLATION}


    + + + +
    {L_INSTRUCTION_TEXT}


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_INITIAL_CONFIGURATION}
    {L_LANGUAGE}: {S_LANG_SELECT}
    {L_DBMS}: {S_DBMS_SELECT}
    {L_UPGRADE}:{S_UPGRADE_SELECT}
    {L_DATABASE_CONFIGURATION}
    {L_DB_HOST}:
    {L_DB_NAME}:
    {L_DB_USER}:
    {L_DB_PASSWORD}:
    {L_DB_PREFIX}:
    {L_ADMIN_CONFIGURATION}
    {L_ADMIN_EMAIL}:
    {L_SERVER_NAME}:
    {L_SERVER_PORT}:
    {L_SCRIPT_PATH}:
    {L_ADMIN_USERNAME}:
    {L_ADMIN_PASSWORD}:
    {L_ADMIN_CONFIRM_PASSWORD}:
    {L_ERROR_TITLE}
    {L_ERROR}
    {L_FTP_INFO}
    {L_FTP_PATH}
    {L_FTP_USER}
    {L_FTP_PASS}
    {L_CHOOSE_FTP}
    {L_ATTEMPT_FTP}
    {L_SEND_FILE}
    {S_HIDDEN_FIELDS}
    {L_UPGRADE_INST}
    + + +
    diff --git a/phpBB2/templates/christmas/jumpbox.tpl b/phpBB2/templates/christmas/jumpbox.tpl new file mode 100644 index 0000000..5cddb06 --- /dev/null +++ b/phpBB2/templates/christmas/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2/templates/christmas/login_body.tpl b/phpBB2/templates/christmas/login_body.tpl new file mode 100644 index 0000000..7fe86be --- /dev/null +++ b/phpBB2/templates/christmas/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2/templates/christmas/memberlist_body.tpl b/phpBB2/templates/christmas/memberlist_body.tpl new file mode 100644 index 0000000..bc27389 --- /dev/null +++ b/phpBB2/templates/christmas/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/message_body.tpl b/phpBB2/templates/christmas/message_body.tpl new file mode 100644 index 0000000..95a510e --- /dev/null +++ b/phpBB2/templates/christmas/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2/templates/christmas/modcp_body.tpl b/phpBB2/templates/christmas/modcp_body.tpl new file mode 100644 index 0000000..0d3d1f7 --- /dev/null +++ b/phpBB2/templates/christmas/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/modcp_move.tpl b/phpBB2/templates/christmas/modcp_move.tpl new file mode 100644 index 0000000..38bbe35 --- /dev/null +++ b/phpBB2/templates/christmas/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2/templates/christmas/modcp_split.tpl b/phpBB2/templates/christmas/modcp_split.tpl new file mode 100644 index 0000000..c343a9c --- /dev/null +++ b/phpBB2/templates/christmas/modcp_split.tpl @@ -0,0 +1,87 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT} + +
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2/templates/christmas/modcp_viewip.tpl b/phpBB2/templates/christmas/modcp_viewip.tpl new file mode 100644 index 0000000..a28deb8 --- /dev/null +++ b/phpBB2/templates/christmas/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2/templates/christmas/overall_footer.tpl b/phpBB2/templates/christmas/overall_footer.tpl new file mode 100644 index 0000000..8c590c1 --- /dev/null +++ b/phpBB2/templates/christmas/overall_footer.tpl @@ -0,0 +1,15 @@ + +


    {ADMIN_LINK}
    + +Powered by phpBB + {PHPBB_VERSION} © 2001, 2002 phpBB Group
    Thème Designed by The SoSophpBB Team © 2002
    {TRANSLATION_INFO}
    +
    \ No newline at end of file diff --git a/phpBB2/templates/christmas/overall_header.tpl b/phpBB2/templates/christmas/overall_header.tpl new file mode 100644 index 0000000..3460a3b --- /dev/null +++ b/phpBB2/templates/christmas/overall_header.tpl @@ -0,0 +1,379 @@ + + + + + +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + +{META} +{NAV_LINKS} + + + + + +
    + + + +
    {L_INDEX}

    {SITE_DESCRIPTION}
      + + +
    + +
    {L_FAQ} {L_SEARCH} {L_MEMBERLIST} {L_USERGROUPS} + + {L_REGISTER} + +
    {L_PROFILE} {PRIVATE_MESSAGE_INFO} + + {L_LOGIN_LOGOUT} + + + {L_LOGIN_LOGOUT} + +
    + +
    +

    +

    diff --git a/phpBB2/templates/christmas/posting_body.tpl b/phpBB2/templates/christmas/posting_body.tpl new file mode 100644 index 0000000..7657e7c --- /dev/null +++ b/phpBB2/templates/christmas/posting_body.tpl @@ -0,0 +1,448 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2/templates/christmas/posting_poll_body.tpl b/phpBB2/templates/christmas/posting_poll_body.tpl new file mode 100644 index 0000000..68ce567 --- /dev/null +++ b/phpBB2/templates/christmas/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2/templates/christmas/posting_smilies.tpl b/phpBB2/templates/christmas/posting_smilies.tpl new file mode 100644 index 0000000..72ac84c --- /dev/null +++ b/phpBB2/templates/christmas/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2/templates/christmas/posting_topic_review.tpl b/phpBB2/templates/christmas/posting_topic_review.tpl new file mode 100644 index 0000000..ac77328 --- /dev/null +++ b/phpBB2/templates/christmas/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2/templates/christmas/privmsgs_body.tpl b/phpBB2/templates/christmas/privmsgs_body.tpl new file mode 100644 index 0000000..4a40dda --- /dev/null +++ b/phpBB2/templates/christmas/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/privmsgs_popup.tpl b/phpBB2/templates/christmas/privmsgs_popup.tpl new file mode 100644 index 0000000..8f1213f --- /dev/null +++ b/phpBB2/templates/christmas/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2/templates/christmas/privmsgs_preview.tpl b/phpBB2/templates/christmas/privmsgs_preview.tpl new file mode 100644 index 0000000..84fd116 --- /dev/null +++ b/phpBB2/templates/christmas/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2/templates/christmas/privmsgs_read_body.tpl b/phpBB2/templates/christmas/privmsgs_read_body.tpl new file mode 100644 index 0000000..19cb9f4 --- /dev/null +++ b/phpBB2/templates/christmas/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/profile_add_body.tpl b/phpBB2/templates/christmas/profile_add_body.tpl new file mode 100644 index 0000000..4bca8b8 --- /dev/null +++ b/phpBB2/templates/christmas/profile_add_body.tpl @@ -0,0 +1,264 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/christmas/profile_avatar_gallery.tpl b/phpBB2/templates/christmas/profile_avatar_gallery.tpl new file mode 100644 index 0000000..a04eafe --- /dev/null +++ b/phpBB2/templates/christmas/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas/profile_send_email.tpl b/phpBB2/templates/christmas/profile_send_email.tpl new file mode 100644 index 0000000..7b85aab --- /dev/null +++ b/phpBB2/templates/christmas/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/profile_send_pass.tpl b/phpBB2/templates/christmas/profile_send_pass.tpl new file mode 100644 index 0000000..dd6f039 --- /dev/null +++ b/phpBB2/templates/christmas/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas/profile_view_body.tpl b/phpBB2/templates/christmas/profile_view_body.tpl new file mode 100644 index 0000000..32eda1b --- /dev/null +++ b/phpBB2/templates/christmas/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/rainbow.js b/phpBB2/templates/christmas/rainbow.js new file mode 100644 index 0000000..b583e06 --- /dev/null +++ b/phpBB2/templates/christmas/rainbow.js @@ -0,0 +1,121 @@ +var rate = 20; +var obj; +var act = 0; +var elmH = 0; +var elmS = 128; +var elmV = 255; +var clrOrg; +var TimerID; + +if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4) { +Browser = true; +} else { +Browser = false; +} + +if (Browser) { +document.onmouseover = doRainbowAnchor; +document.onmouseout = stopRainbowAnchor; +} + +function doRainbow() +{ +if (Browser && act != 1) { +act = 1; +obj = event.srcElement; +clrOrg = obj.style.color; +TimerID = setInterval("ChangeColor()",100); +} +} + +function stopRainbow() +{ +if (Browser && act != 0) { +obj.style.color = clrOrg; +clearInterval(TimerID); +act = 0; +} +} + +function doRainbowAnchor() +{ +if (Browser && act != 1) { +obj = event.srcElement; + +while (obj.tagName != 'A' && obj.tagName != 'BODY') { +obj = obj.parentElement; +if (obj.tagName == 'A' || obj.tagName == 'BODY') +break; +} + +if (obj.tagName == 'A' && obj.href != '') { +act = 1; +clrOrg = obj.style.color; +TimerID = setInterval("ChangeColor()",100); +} +} +} + +function stopRainbowAnchor() +{ +if (Browser && act != 0) { +if (obj.tagName == 'A') { +obj.style.color = clrOrg; +clearInterval(TimerID); +act = 0; +} +} +} + +function ChangeColor() +{ +obj.style.color = makeColor(); +} + +function makeColor() +{ + +if (elmS == 0) { +elmR = elmV; elmG = elmV; elmB = elmV; +} +else { +t1 = elmV; +t2 = (255 - elmS) * elmV / 255; +t3 = elmH % 60; +t3 = (t1 - t2) * t3 / 60; + +if (elmH < 60) { +elmR = t1; elmB = t2; elmG = t2 + t3; +} +else if (elmH < 120) { +elmG = t1; elmB = t2; elmR = t1 - t3; +} +else if (elmH < 180) { +elmG = t1; elmR = t2; elmB = t2 + t3; +} +else if (elmH < 240) { +elmB = t1; elmR = t2; elmG = t1 - t3; +} +else if (elmH < 300) { +elmB = t1; elmG = t2; elmR = t2 + t3; +} +else if (elmH < 360) { +elmR = t1; elmG = t2; elmB = t1 - t3; +} +else { +elmR = 0; elmG = 0; elmB = 0; +} +} + +elmR = Math.floor(elmR); +elmG = Math.floor(elmG); +elmB = Math.floor(elmB); + +clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16); + +elmH = elmH + rate; +if (elmH >= 360) +elmH = 0; + +return clrRGB; +} diff --git a/phpBB2/templates/christmas/readme.txt b/phpBB2/templates/christmas/readme.txt new file mode 100644 index 0000000..e63769c --- /dev/null +++ b/phpBB2/templates/christmas/readme.txt @@ -0,0 +1,24 @@ + + ############################################################################################### + ############################################################################################### + ############################################################################################### + # # + # Vous venez de télécharger ce template via le site : # + # # + # http://www.phpbb-design.com # + # # + ############################################################################################### + # # + # Nous vous conseillons de nous visiter régulièrement afin de vous tenir au courant # + # des mises à jours nécessaires au bon fonctionnement de votre forum phpBB. # + # # + ############################################################################################### + # # + # Ce thème à été trouvé en libre distribution sur le net. Nous ne faisons que # + # relayer sa diffusion, le tout gratuitement. Si vous êtes le créateur de ce template et # + # que vous souhaitez garder l'entière exclusivité de sa distribution, contactez nous par mail # + # à cette adresse : webmaster@phpbb-design.com # + # # + ############################################################################################### + #######################################################################################02#2004# + ############################################################################################### \ No newline at end of file diff --git a/phpBB2/templates/christmas/search_body.tpl b/phpBB2/templates/christmas/search_body.tpl new file mode 100644 index 0000000..6621c41 --- /dev/null +++ b/phpBB2/templates/christmas/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/search_results_posts.tpl b/phpBB2/templates/christmas/search_results_posts.tpl new file mode 100644 index 0000000..912c501 --- /dev/null +++ b/phpBB2/templates/christmas/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/search_results_topics.tpl b/phpBB2/templates/christmas/search_results_topics.tpl new file mode 100644 index 0000000..22175ea --- /dev/null +++ b/phpBB2/templates/christmas/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas/search_username.tpl b/phpBB2/templates/christmas/search_username.tpl new file mode 100644 index 0000000..a2dace6 --- /dev/null +++ b/phpBB2/templates/christmas/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2/templates/christmas/simple_footer.tpl b/phpBB2/templates/christmas/simple_footer.tpl new file mode 100644 index 0000000..880aa47 --- /dev/null +++ b/phpBB2/templates/christmas/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    + + + + + + diff --git a/phpBB2/templates/christmas/simple_header.tpl b/phpBB2/templates/christmas/simple_header.tpl new file mode 100644 index 0000000..f232c43 --- /dev/null +++ b/phpBB2/templates/christmas/simple_header.tpl @@ -0,0 +1,237 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2/templates/christmas/theme_info.cfg b/phpBB2/templates/christmas/theme_info.cfg new file mode 100644 index 0000000..82fb1d0 --- /dev/null +++ b/phpBB2/templates/christmas/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmas/viewforum_body.tpl b/phpBB2/templates/christmas/viewforum_body.tpl new file mode 100644 index 0000000..c87f57e --- /dev/null +++ b/phpBB2/templates/christmas/viewforum_body.tpl @@ -0,0 +1,93 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    +
    + + + + + + +
    {JUMPBOX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_TOPIC_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_TOPIC_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    \ No newline at end of file diff --git a/phpBB2/templates/christmas/viewonline_body.tpl b/phpBB2/templates/christmas/viewonline_body.tpl new file mode 100644 index 0000000..12568bb --- /dev/null +++ b/phpBB2/templates/christmas/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2/templates/christmas/viewtopic_body.tpl b/phpBB2/templates/christmas/viewtopic_body.tpl new file mode 100644 index 0000000..cff5e6b --- /dev/null +++ b/phpBB2/templates/christmas/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2/templates/christmas/viewtopic_poll_ballot.tpl b/phpBB2/templates/christmas/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..a9daffa --- /dev/null +++ b/phpBB2/templates/christmas/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ + +
    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    + \ No newline at end of file diff --git a/phpBB2/templates/christmas/viewtopic_poll_result.tpl b/phpBB2/templates/christmas/viewtopic_poll_result.tpl new file mode 100644 index 0000000..18eaa89 --- /dev/null +++ b/phpBB2/templates/christmas/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + +
    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    + + diff --git a/phpBB2/templates/christmas2/admin/admin_message_body.tpl b/phpBB2/templates/christmas2/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2/templates/christmas2/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2/templates/christmas2/admin/auth_forum_body.tpl b/phpBB2/templates/christmas2/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas2/admin/auth_select_body.tpl b/phpBB2/templates/christmas2/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2/templates/christmas2/admin/auth_ug_body.tpl b/phpBB2/templates/christmas2/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas2/admin/board_config_body.tpl b/phpBB2/templates/christmas2/admin/board_config_body.tpl new file mode 100644 index 0000000..26515ed --- /dev/null +++ b/phpBB2/templates/christmas2/admin/board_config_body.tpl @@ -0,0 +1,248 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2/templates/christmas2/admin/category_edit_body.tpl b/phpBB2/templates/christmas2/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/christmas2/admin/db_utils_backup_body.tpl b/phpBB2/templates/christmas2/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/db_utils_restore_body.tpl b/phpBB2/templates/christmas2/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2/templates/christmas2/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2/templates/christmas2/admin/disallow_body.tpl b/phpBB2/templates/christmas2/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2/templates/christmas2/admin/forum_admin_body.tpl b/phpBB2/templates/christmas2/admin/forum_admin_body.tpl new file mode 100644 index 0000000..ca64c2d --- /dev/null +++ b/phpBB2/templates/christmas2/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2/templates/christmas2/admin/forum_delete_body.tpl b/phpBB2/templates/christmas2/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2/templates/christmas2/admin/forum_edit_body.tpl b/phpBB2/templates/christmas2/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2/templates/christmas2/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/christmas2/admin/forum_prune_body.tpl b/phpBB2/templates/christmas2/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2/templates/christmas2/admin/forum_prune_result_body.tpl b/phpBB2/templates/christmas2/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2/templates/christmas2/admin/forum_prune_select_body.tpl b/phpBB2/templates/christmas2/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2/templates/christmas2/admin/group_edit_body.tpl b/phpBB2/templates/christmas2/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/group_select_body.tpl b/phpBB2/templates/christmas2/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/index.htm b/phpBB2/templates/christmas2/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/templates/christmas2/admin/index_body.tpl b/phpBB2/templates/christmas2/admin/index_body.tpl new file mode 100644 index 0000000..1f40246 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}dddddd{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2/templates/christmas2/admin/index_frameset.tpl b/phpBB2/templates/christmas2/admin/index_frameset.tpl new file mode 100644 index 0000000..fef79af --- /dev/null +++ b/phpBB2/templates/christmas2/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/admin/index_navigate.tpl b/phpBB2/templates/christmas2/admin/index_navigate.tpl new file mode 100644 index 0000000..ec9f212 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2/templates/christmas2/admin/page_footer.tpl b/phpBB2/templates/christmas2/admin/page_footer.tpl new file mode 100644 index 0000000..278b360 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/admin/page_header.tpl b/phpBB2/templates/christmas2/admin/page_header.tpl new file mode 100644 index 0000000..cc690a8 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/page_header.tpl @@ -0,0 +1,10 @@ + + + +{META} + + +{SITENAME} - {L_PHPBB_ADMIN} + + + diff --git a/phpBB2/templates/christmas2/admin/ranks_edit_body.tpl b/phpBB2/templates/christmas2/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2/templates/christmas2/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/ranks_list_body.tpl b/phpBB2/templates/christmas2/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2/templates/christmas2/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/christmas2/admin/smile_edit_body.tpl b/phpBB2/templates/christmas2/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2/templates/christmas2/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/smile_import_body.tpl b/phpBB2/templates/christmas2/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/smile_list_body.tpl b/phpBB2/templates/christmas2/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2/templates/christmas2/admin/styles_addnew_body.tpl b/phpBB2/templates/christmas2/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..6240a79 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2/templates/christmas2/admin/styles_edit_body.tpl b/phpBB2/templates/christmas2/admin/styles_edit_body.tpl new file mode 100644 index 0000000..08cf721 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2/templates/christmas2/admin/styles_exporter.tpl b/phpBB2/templates/christmas2/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2/templates/christmas2/admin/styles_list_body.tpl b/phpBB2/templates/christmas2/admin/styles_list_body.tpl new file mode 100644 index 0000000..915fe49 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/christmas2/admin/user_avatar_gallery.tpl b/phpBB2/templates/christmas2/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2/templates/christmas2/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas2/admin/user_ban_body.tpl b/phpBB2/templates/christmas2/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2/templates/christmas2/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2/templates/christmas2/admin/user_edit_body.tpl b/phpBB2/templates/christmas2/admin/user_edit_body.tpl new file mode 100644 index 0000000..359bdeb --- /dev/null +++ b/phpBB2/templates/christmas2/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2/templates/christmas2/admin/user_email_body.tpl b/phpBB2/templates/christmas2/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2/templates/christmas2/admin/user_select_body.tpl b/phpBB2/templates/christmas2/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2/templates/christmas2/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/words_edit_body.tpl b/phpBB2/templates/christmas2/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2/templates/christmas2/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/admin/words_list_body.tpl b/phpBB2/templates/christmas2/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2/templates/christmas2/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmas2/agreement.tpl b/phpBB2/templates/christmas2/agreement.tpl new file mode 100644 index 0000000..5635a35 --- /dev/null +++ b/phpBB2/templates/christmas2/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2/templates/christmas2/bbcode.tpl b/phpBB2/templates/christmas2/bbcode.tpl new file mode 100644 index 0000000..caef76b --- /dev/null +++ b/phpBB2/templates/christmas2/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2/templates/christmas2/christmas2.cfg b/phpBB2/templates/christmas2/christmas2.cfg new file mode 100644 index 0000000..bd84476 --- /dev/null +++ b/phpBB2/templates/christmas2/christmas2.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/christmas2.css b/phpBB2/templates/christmas2/christmas2.css new file mode 100644 index 0000000..f4cd45c --- /dev/null +++ b/phpBB2/templates/christmas2/christmas2.css @@ -0,0 +1,196 @@ +/* + The original subSilver Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #800000; +scrollbar-3dlight-color:#006600; +scrollbar-arrow-color:#FFFF80; +scrollbar-darkshadow-color:#066000; +scrollbar-face-color:#066000; +scrollbar-highlight-color:#008000; +scrollbar-shadow-color:##008000; +scrollbar-track-color:#008000} +} + +/* General font families for common tags */ +font,th,td,p { font:11px;font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #FFFFFF; text-decoration: none; font-weight: bold; } +a:hover { text-decoration: underline; color : #C0FFC0; } +hr { height: 0px; border: solid #FFFFFF 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline{background:#066000;color:#008000;border:8px ridge #C0FFC0} + +/* This is the outline round the main forum tables */ +.forumline{background:#33CC00;color:#008000;border:3px ridge #C0FFC0} + + +/* Main table cell colours and backgrounds */ +td.row1{background:#008000; color:#ffffff} +td.row2{background:#066000; color:#ffffff} +td.row3{background:#008000; color:#ffffff} + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic{background:#008000 repeat-y} + +/* Header cells - the blue and silver gradient backgrounds */ +th{background:url(images/cellpic3.gif) #066000;color:#FFFFFF;font-size:12px; +font-weight:bold;height:20px;white-space:nowrap} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); background-color:#066000; + color:#FFFFFF; height: 25px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #008000; border: #008000; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, + sans-serif;text-decoration: none; line-height : 120%; color : #FFFFFF; +} + + +/* General text */ +.gen { font-size : 11px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #FFFFFF; } +a.gen,a.genmed,a.gensmall { color: #FFFFFF; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #C0FFC0; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #FFFFFF } +a.mainmenu { text-decoration: none; color : #FFFFFF; } +a.mainmenu:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #FFFFFF} +a.cattitle { text-decoration: none; color : #FFFFFF; } +a.cattitle:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #FFFFFF; } +a.forumlink { text-decoration: none; color : #FFFFFF; } +a.forumlink:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #FFFFFF;} +a.nav { text-decoration: none; color : #FFFFFF; } +a.nav:hover { text-decoration: none; color : #C0FFC0; } + +.topnav{font-size:10px;background: #e5ebf3 url(images/cellpic1.gif) repeat-x;color:#dd6900; + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #FFFFFF; } +a.topictitle:link { text-decoration: none; color : #FFFFFF; } +a.topictitle:visited { text-decoration: none; color : #FFFFFF; } +a.topictitle:hover { text-decoration: none; color : #C0FFC0; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #FFFFFF;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #FFFFFF; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;color : #FFFFFF} +a.postlink:link { text-decoration: none; color : #FFFFFF } +a.postlink:visited { text-decoration: none; color : #FFFFFF; } +a.postlink:hover { text-decoration: none; color : #C0FFC0} + + +/* Quote & Code blocks */ +.code{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:11px Courier,"Courier New",sans-serif;padding:5px} + +.quote{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:bold 11px/125% Verdana,Arial,Helvetica,sans-serif} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; letter-spacing: -1px;} +a.copyright { color: #FFFFFF; text-decoration: none;} +a.copyright:hover { color: #FFFFFF; text-decoration: none;} + + +/* Form elements */ +input,textarea, select { + color : #FFFFFF; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #008000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select {background-color : #066000;} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #008000; + color : #FFFFFF; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #008000; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #008000;border-color : #ffffff; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #008000; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2/templates/christmas2/confirm_body.tpl b/phpBB2/templates/christmas2/confirm_body.tpl new file mode 100644 index 0000000..f79a643 --- /dev/null +++ b/phpBB2/templates/christmas2/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/christmas2/error_body.tpl b/phpBB2/templates/christmas2/error_body.tpl new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/phpBB2/templates/christmas2/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2/templates/christmas2/faq_body.tpl b/phpBB2/templates/christmas2/faq_body.tpl new file mode 100644 index 0000000..9b11149 --- /dev/null +++ b/phpBB2/templates/christmas2/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/formIE.css b/phpBB2/templates/christmas2/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2/templates/christmas2/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2/templates/christmas2/groupcp_info_body.tpl b/phpBB2/templates/christmas2/groupcp_info_body.tpl new file mode 100644 index 0000000..93875fa --- /dev/null +++ b/phpBB2/templates/christmas2/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/groupcp_pending_info.tpl b/phpBB2/templates/christmas2/groupcp_pending_info.tpl new file mode 100644 index 0000000..68f618c --- /dev/null +++ b/phpBB2/templates/christmas2/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2/templates/christmas2/groupcp_user_body.tpl b/phpBB2/templates/christmas2/groupcp_user_body.tpl new file mode 100644 index 0000000..8be36f6 --- /dev/null +++ b/phpBB2/templates/christmas2/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/images/Thumbs.db b/phpBB2/templates/christmas2/images/Thumbs.db new file mode 100644 index 0000000..0b8d72c Binary files /dev/null and b/phpBB2/templates/christmas2/images/Thumbs.db differ diff --git a/phpBB2/templates/christmas2/images/banner.gif b/phpBB2/templates/christmas2/images/banner.gif new file mode 100644 index 0000000..9b3ab93 Binary files /dev/null and b/phpBB2/templates/christmas2/images/banner.gif differ diff --git a/phpBB2/templates/christmas2/images/cellpic.gif b/phpBB2/templates/christmas2/images/cellpic.gif new file mode 100644 index 0000000..58846d0 Binary files /dev/null and b/phpBB2/templates/christmas2/images/cellpic.gif differ diff --git a/phpBB2/templates/christmas2/images/cellpic1.gif b/phpBB2/templates/christmas2/images/cellpic1.gif new file mode 100644 index 0000000..44b3430 Binary files /dev/null and b/phpBB2/templates/christmas2/images/cellpic1.gif differ diff --git a/phpBB2/templates/christmas2/images/cellpic2.jpg b/phpBB2/templates/christmas2/images/cellpic2.jpg new file mode 100644 index 0000000..764c0e5 Binary files /dev/null and b/phpBB2/templates/christmas2/images/cellpic2.jpg differ diff --git a/phpBB2/templates/christmas2/images/cellpic3.gif b/phpBB2/templates/christmas2/images/cellpic3.gif new file mode 100644 index 0000000..e27cdfd Binary files /dev/null and b/phpBB2/templates/christmas2/images/cellpic3.gif differ diff --git a/phpBB2/templates/christmas2/images/cellpic_bkg.gif b/phpBB2/templates/christmas2/images/cellpic_bkg.gif new file mode 100644 index 0000000..c806b23 Binary files /dev/null and b/phpBB2/templates/christmas2/images/cellpic_bkg.gif differ diff --git a/phpBB2/templates/christmas2/images/folder.gif b/phpBB2/templates/christmas2/images/folder.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_announce.gif b/phpBB2/templates/christmas2/images/folder_announce.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_announce.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_announce_new.gif b/phpBB2/templates/christmas2/images/folder_announce_new.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_announce_new.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_big.gif b/phpBB2/templates/christmas2/images/folder_big.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_big.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_hot.gif b/phpBB2/templates/christmas2/images/folder_hot.gif new file mode 100644 index 0000000..30ed45d Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_hot.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_lock.gif b/phpBB2/templates/christmas2/images/folder_lock.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_lock.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_lock_new.gif b/phpBB2/templates/christmas2/images/folder_lock_new.gif new file mode 100644 index 0000000..c1eb69c Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_lock_new.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_locked_big.gif b/phpBB2/templates/christmas2/images/folder_locked_big.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_locked_big.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_new.gif b/phpBB2/templates/christmas2/images/folder_new.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_new.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_new_big.gif b/phpBB2/templates/christmas2/images/folder_new_big.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_new_big.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_new_hot.gif b/phpBB2/templates/christmas2/images/folder_new_hot.gif new file mode 100644 index 0000000..d326aef Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_new_hot.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_sticky.gif b/phpBB2/templates/christmas2/images/folder_sticky.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_sticky.gif differ diff --git a/phpBB2/templates/christmas2/images/folder_sticky_new.gif b/phpBB2/templates/christmas2/images/folder_sticky_new.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2/templates/christmas2/images/folder_sticky_new.gif differ diff --git a/phpBB2/templates/christmas2/images/icon_delete.gif b/phpBB2/templates/christmas2/images/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2/templates/christmas2/images/icon_delete.gif differ diff --git a/phpBB2/templates/christmas2/images/icon_latest_reply.gif b/phpBB2/templates/christmas2/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2/templates/christmas2/images/icon_latest_reply.gif differ diff --git a/phpBB2/templates/christmas2/images/icon_mini.gif b/phpBB2/templates/christmas2/images/icon_mini.gif new file mode 100644 index 0000000..0108cd3 Binary files /dev/null and b/phpBB2/templates/christmas2/images/icon_mini.gif differ diff --git a/phpBB2/templates/christmas2/images/icon_minipost.gif b/phpBB2/templates/christmas2/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2/templates/christmas2/images/icon_minipost.gif differ diff --git a/phpBB2/templates/christmas2/images/icon_minipost_new.gif b/phpBB2/templates/christmas2/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2/templates/christmas2/images/icon_minipost_new.gif differ diff --git a/phpBB2/templates/christmas2/images/icon_newest_reply.gif b/phpBB2/templates/christmas2/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2/templates/christmas2/images/icon_newest_reply.gif differ diff --git a/phpBB2/templates/christmas2/images/index.htm b/phpBB2/templates/christmas2/images/index.htm new file mode 100644 index 0000000..4c5bb15 --- /dev/null +++ b/phpBB2/templates/christmas2/images/index.htm @@ -0,0 +1,16 @@ + + +christmas created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_aim.gif b/phpBB2/templates/christmas2/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_aim.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_delete.gif b/phpBB2/templates/christmas2/images/lang_english/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_delete.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_edit.gif b/phpBB2/templates/christmas2/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_edit.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_email.gif b/phpBB2/templates/christmas2/images/lang_english/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_email.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_icq_add.gif b/phpBB2/templates/christmas2/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_ip.gif b/phpBB2/templates/christmas2/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_ip.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_msnm.gif b/phpBB2/templates/christmas2/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_pm.gif b/phpBB2/templates/christmas2/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_pm.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_profile.gif b/phpBB2/templates/christmas2/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_profile.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_quote.gif b/phpBB2/templates/christmas2/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..0f8d473 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_quote.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_search.gif b/phpBB2/templates/christmas2/images/lang_english/icon_search.gif new file mode 100644 index 0000000..205c02b Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_search.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_www.gif b/phpBB2/templates/christmas2/images/lang_english/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_www.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/icon_yim.gif b/phpBB2/templates/christmas2/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/icon_yim.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/msg_newpost.gif b/phpBB2/templates/christmas2/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..30d5067 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/post.gif b/phpBB2/templates/christmas2/images/lang_english/post.gif new file mode 100644 index 0000000..5f60b0e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/post.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/reply-locked.gif b/phpBB2/templates/christmas2/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..88bf4a5 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/reply-locked.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_english/reply.gif b/phpBB2/templates/christmas2/images/lang_english/reply.gif new file mode 100644 index 0000000..226021e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_english/reply.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_aim.gif b/phpBB2/templates/christmas2/images/lang_german/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_aim.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_delete.gif b/phpBB2/templates/christmas2/images/lang_german/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_delete.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_edit.gif b/phpBB2/templates/christmas2/images/lang_german/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_edit.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_email.gif b/phpBB2/templates/christmas2/images/lang_german/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_email.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_icq_add.gif b/phpBB2/templates/christmas2/images/lang_german/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_icq_add.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_ip.gif b/phpBB2/templates/christmas2/images/lang_german/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_ip.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_msnm.gif b/phpBB2/templates/christmas2/images/lang_german/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_msnm.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_pm.gif b/phpBB2/templates/christmas2/images/lang_german/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_pm.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_profile.gif b/phpBB2/templates/christmas2/images/lang_german/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_profile.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_quote.gif b/phpBB2/templates/christmas2/images/lang_german/icon_quote.gif new file mode 100644 index 0000000..d86b74e Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_quote.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_search.gif b/phpBB2/templates/christmas2/images/lang_german/icon_search.gif new file mode 100644 index 0000000..1de9f57 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_search.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_www.gif b/phpBB2/templates/christmas2/images/lang_german/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_www.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/icon_yim.gif b/phpBB2/templates/christmas2/images/lang_german/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/icon_yim.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/index.html b/phpBB2/templates/christmas2/images/lang_german/index.html new file mode 100644 index 0000000..bd93b50 --- /dev/null +++ b/phpBB2/templates/christmas2/images/lang_german/index.html @@ -0,0 +1,45 @@ + + + + + + +Forum Images :: FI Subsilver Images - German + + + + + + + + + + + + + + +
    FI Subsilver Images - German

     

    + + + + + + + +
    icon_aim.gificon_edit.gificon_email.gificon_icq_add.gificon_msnm.gificon_pm.gificon_profile.gificon_quote.gificon_search.gificon_www.gificon_yim.gificon_ip.gif
    msg_newpost.gifpost.gifreply.gifreply-locked.gif
    +

     

    +

    Close + Window

    +
    + + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/images/lang_german/msg_newpost.gif b/phpBB2/templates/christmas2/images/lang_german/msg_newpost.gif new file mode 100644 index 0000000..a620bdf Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/msg_newpost.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/post.gif b/phpBB2/templates/christmas2/images/lang_german/post.gif new file mode 100644 index 0000000..b4f86bc Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/post.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/reply-locked.gif b/phpBB2/templates/christmas2/images/lang_german/reply-locked.gif new file mode 100644 index 0000000..d23d849 Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/reply-locked.gif differ diff --git a/phpBB2/templates/christmas2/images/lang_german/reply.gif b/phpBB2/templates/christmas2/images/lang_german/reply.gif new file mode 100644 index 0000000..f1c8edd Binary files /dev/null and b/phpBB2/templates/christmas2/images/lang_german/reply.gif differ diff --git a/phpBB2/templates/christmas2/images/logo_phpBB.gif b/phpBB2/templates/christmas2/images/logo_phpBB.gif new file mode 100644 index 0000000..f6d87ac Binary files /dev/null and b/phpBB2/templates/christmas2/images/logo_phpBB.gif differ diff --git a/phpBB2/templates/christmas2/images/logo_phpBB2.gif b/phpBB2/templates/christmas2/images/logo_phpBB2.gif new file mode 100644 index 0000000..221b50d Binary files /dev/null and b/phpBB2/templates/christmas2/images/logo_phpBB2.gif differ diff --git a/phpBB2/templates/christmas2/images/logo_phpBB_med.gif b/phpBB2/templates/christmas2/images/logo_phpBB_med.gif new file mode 100644 index 0000000..5b4e6b3 Binary files /dev/null and b/phpBB2/templates/christmas2/images/logo_phpBB_med.gif differ diff --git a/phpBB2/templates/christmas2/images/msg_inbox.gif b/phpBB2/templates/christmas2/images/msg_inbox.gif new file mode 100644 index 0000000..dc455b6 Binary files /dev/null and b/phpBB2/templates/christmas2/images/msg_inbox.gif differ diff --git a/phpBB2/templates/christmas2/images/msg_outbox.gif b/phpBB2/templates/christmas2/images/msg_outbox.gif new file mode 100644 index 0000000..a7b19b8 Binary files /dev/null and b/phpBB2/templates/christmas2/images/msg_outbox.gif differ diff --git a/phpBB2/templates/christmas2/images/msg_savebox.gif b/phpBB2/templates/christmas2/images/msg_savebox.gif new file mode 100644 index 0000000..8a5d7d2 Binary files /dev/null and b/phpBB2/templates/christmas2/images/msg_savebox.gif differ diff --git a/phpBB2/templates/christmas2/images/msg_sentbox.gif b/phpBB2/templates/christmas2/images/msg_sentbox.gif new file mode 100644 index 0000000..b157808 Binary files /dev/null and b/phpBB2/templates/christmas2/images/msg_sentbox.gif differ diff --git a/phpBB2/templates/christmas2/images/snow.gif b/phpBB2/templates/christmas2/images/snow.gif new file mode 100644 index 0000000..c29c435 Binary files /dev/null and b/phpBB2/templates/christmas2/images/snow.gif differ diff --git a/phpBB2/templates/christmas2/images/spacer.gif b/phpBB2/templates/christmas2/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2/templates/christmas2/images/spacer.gif differ diff --git a/phpBB2/templates/christmas2/images/topic_delete.gif b/phpBB2/templates/christmas2/images/topic_delete.gif new file mode 100644 index 0000000..d1d3a62 Binary files /dev/null and b/phpBB2/templates/christmas2/images/topic_delete.gif differ diff --git a/phpBB2/templates/christmas2/images/topic_lock.gif b/phpBB2/templates/christmas2/images/topic_lock.gif new file mode 100644 index 0000000..3aadda3 Binary files /dev/null and b/phpBB2/templates/christmas2/images/topic_lock.gif differ diff --git a/phpBB2/templates/christmas2/images/topic_move.gif b/phpBB2/templates/christmas2/images/topic_move.gif new file mode 100644 index 0000000..af8b3c7 Binary files /dev/null and b/phpBB2/templates/christmas2/images/topic_move.gif differ diff --git a/phpBB2/templates/christmas2/images/topic_split.gif b/phpBB2/templates/christmas2/images/topic_split.gif new file mode 100644 index 0000000..977dedb Binary files /dev/null and b/phpBB2/templates/christmas2/images/topic_split.gif differ diff --git a/phpBB2/templates/christmas2/images/topic_unlock.gif b/phpBB2/templates/christmas2/images/topic_unlock.gif new file mode 100644 index 0000000..a088619 Binary files /dev/null and b/phpBB2/templates/christmas2/images/topic_unlock.gif differ diff --git a/phpBB2/templates/christmas2/images/vote_lcap.gif b/phpBB2/templates/christmas2/images/vote_lcap.gif new file mode 100644 index 0000000..22e1080 Binary files /dev/null and b/phpBB2/templates/christmas2/images/vote_lcap.gif differ diff --git a/phpBB2/templates/christmas2/images/vote_rcap.gif b/phpBB2/templates/christmas2/images/vote_rcap.gif new file mode 100644 index 0000000..28da06f Binary files /dev/null and b/phpBB2/templates/christmas2/images/vote_rcap.gif differ diff --git a/phpBB2/templates/christmas2/images/voting_bar.gif b/phpBB2/templates/christmas2/images/voting_bar.gif new file mode 100644 index 0000000..ced112d Binary files /dev/null and b/phpBB2/templates/christmas2/images/voting_bar.gif differ diff --git a/phpBB2/templates/christmas2/images/whosonline.gif b/phpBB2/templates/christmas2/images/whosonline.gif new file mode 100644 index 0000000..3bea906 Binary files /dev/null and b/phpBB2/templates/christmas2/images/whosonline.gif differ diff --git a/phpBB2/templates/christmas2/index.htm b/phpBB2/templates/christmas2/index.htm new file mode 100644 index 0000000..387c05d --- /dev/null +++ b/phpBB2/templates/christmas2/index.htm @@ -0,0 +1,16 @@ + + +christmas2 created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/index_body.tpl b/phpBB2/templates/christmas2/index_body.tpl new file mode 100644 index 0000000..d8d5b89 --- /dev/null +++ b/phpBB2/templates/christmas2/index_body.tpl @@ -0,0 +1,104 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC}
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/christmas2/jumpbox.tpl b/phpBB2/templates/christmas2/jumpbox.tpl new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/phpBB2/templates/christmas2/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2/templates/christmas2/login_body.tpl b/phpBB2/templates/christmas2/login_body.tpl new file mode 100644 index 0000000..50d7f71 --- /dev/null +++ b/phpBB2/templates/christmas2/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2/templates/christmas2/memberlist_body.tpl b/phpBB2/templates/christmas2/memberlist_body.tpl new file mode 100644 index 0000000..af1340d --- /dev/null +++ b/phpBB2/templates/christmas2/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/message_body.tpl b/phpBB2/templates/christmas2/message_body.tpl new file mode 100644 index 0000000..6be7f51 --- /dev/null +++ b/phpBB2/templates/christmas2/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2/templates/christmas2/modcp_body.tpl b/phpBB2/templates/christmas2/modcp_body.tpl new file mode 100644 index 0000000..fd0fe1b --- /dev/null +++ b/phpBB2/templates/christmas2/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/modcp_move.tpl b/phpBB2/templates/christmas2/modcp_move.tpl new file mode 100644 index 0000000..730952c --- /dev/null +++ b/phpBB2/templates/christmas2/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2/templates/christmas2/modcp_split.tpl b/phpBB2/templates/christmas2/modcp_split.tpl new file mode 100644 index 0000000..3de4e2c --- /dev/null +++ b/phpBB2/templates/christmas2/modcp_split.tpl @@ -0,0 +1,85 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2/templates/christmas2/modcp_viewip.tpl b/phpBB2/templates/christmas2/modcp_viewip.tpl new file mode 100644 index 0000000..d497d88 --- /dev/null +++ b/phpBB2/templates/christmas2/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2/templates/christmas2/overall_footer.tpl b/phpBB2/templates/christmas2/overall_footer.tpl new file mode 100644 index 0000000..dffcc72 --- /dev/null +++ b/phpBB2/templates/christmas2/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO} +
    Original Template   Modify Template by   BremerJunge
    +
    + + + diff --git a/phpBB2/templates/christmas2/overall_header.tpl b/phpBB2/templates/christmas2/overall_header.tpl new file mode 100644 index 0000000..cfe0d02 --- /dev/null +++ b/phpBB2/templates/christmas2/overall_header.tpl @@ -0,0 +1,155 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2/templates/christmas2/posting_preview.tpl b/phpBB2/templates/christmas2/posting_preview.tpl new file mode 100644 index 0000000..18e2895 --- /dev/null +++ b/phpBB2/templates/christmas2/posting_preview.tpl @@ -0,0 +1,23 @@ + +
    + + + + +
    {L_INDEX}{SITENAME}
    {SITE_DESCRIPTION}
     
    + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    +
    + +
    diff --git a/phpBB2/templates/christmas2/posting_body.tpl b/phpBB2/templates/christmas2/posting_body.tpl new file mode 100644 index 0000000..c16b19c --- /dev/null +++ b/phpBB2/templates/christmas2/posting_body.tpl @@ -0,0 +1,481 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2/templates/christmas2/posting_poll_body.tpl b/phpBB2/templates/christmas2/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2/templates/christmas2/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2/templates/christmas2/posting_smilies.tpl b/phpBB2/templates/christmas2/posting_smilies.tpl new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/phpBB2/templates/christmas2/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2/templates/christmas2/posting_topic_review.tpl b/phpBB2/templates/christmas2/posting_topic_review.tpl new file mode 100644 index 0000000..cbef5f3 --- /dev/null +++ b/phpBB2/templates/christmas2/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2/templates/christmas2/privmsgs_body.tpl b/phpBB2/templates/christmas2/privmsgs_body.tpl new file mode 100644 index 0000000..41611c9 --- /dev/null +++ b/phpBB2/templates/christmas2/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/privmsgs_popup.tpl b/phpBB2/templates/christmas2/privmsgs_popup.tpl new file mode 100644 index 0000000..e48205b --- /dev/null +++ b/phpBB2/templates/christmas2/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2/templates/christmas2/privmsgs_preview.tpl b/phpBB2/templates/christmas2/privmsgs_preview.tpl new file mode 100644 index 0000000..ba2ed93 --- /dev/null +++ b/phpBB2/templates/christmas2/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2/templates/christmas2/privmsgs_read_body.tpl b/phpBB2/templates/christmas2/privmsgs_read_body.tpl new file mode 100644 index 0000000..3c85e6a --- /dev/null +++ b/phpBB2/templates/christmas2/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/profile_add_body.tpl b/phpBB2/templates/christmas2/profile_add_body.tpl new file mode 100644 index 0000000..ede3217 --- /dev/null +++ b/phpBB2/templates/christmas2/profile_add_body.tpl @@ -0,0 +1,274 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/christmas2/profile_avatar_gallery.tpl b/phpBB2/templates/christmas2/profile_avatar_gallery.tpl new file mode 100644 index 0000000..9be5375 --- /dev/null +++ b/phpBB2/templates/christmas2/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas2/profile_send_email.tpl b/phpBB2/templates/christmas2/profile_send_email.tpl new file mode 100644 index 0000000..86c28cb --- /dev/null +++ b/phpBB2/templates/christmas2/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/profile_send_pass.tpl b/phpBB2/templates/christmas2/profile_send_pass.tpl new file mode 100644 index 0000000..8d31aa4 --- /dev/null +++ b/phpBB2/templates/christmas2/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmas2/profile_view_body.tpl b/phpBB2/templates/christmas2/profile_view_body.tpl new file mode 100644 index 0000000..a9c3c6f --- /dev/null +++ b/phpBB2/templates/christmas2/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/search_body.tpl b/phpBB2/templates/christmas2/search_body.tpl new file mode 100644 index 0000000..d1316df --- /dev/null +++ b/phpBB2/templates/christmas2/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/search_results_posts.tpl b/phpBB2/templates/christmas2/search_results_posts.tpl new file mode 100644 index 0000000..fc5f0b8 --- /dev/null +++ b/phpBB2/templates/christmas2/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/search_results_topics.tpl b/phpBB2/templates/christmas2/search_results_topics.tpl new file mode 100644 index 0000000..be0d424 --- /dev/null +++ b/phpBB2/templates/christmas2/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmas2/search_username.tpl b/phpBB2/templates/christmas2/search_username.tpl new file mode 100644 index 0000000..611ec3f --- /dev/null +++ b/phpBB2/templates/christmas2/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2/templates/christmas2/simple_footer.tpl b/phpBB2/templates/christmas2/simple_footer.tpl new file mode 100644 index 0000000..68c2b00 --- /dev/null +++ b/phpBB2/templates/christmas2/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    + + + + + + diff --git a/phpBB2/templates/christmas2/simple_header.tpl b/phpBB2/templates/christmas2/simple_header.tpl new file mode 100644 index 0000000..6e2da20 --- /dev/null +++ b/phpBB2/templates/christmas2/simple_header.tpl @@ -0,0 +1,17 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2/templates/christmas2/theme_info.cfg b/phpBB2/templates/christmas2/theme_info.cfg new file mode 100644 index 0000000..adedbe8 --- /dev/null +++ b/phpBB2/templates/christmas2/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/viewforum_body.tpl b/phpBB2/templates/christmas2/viewforum_body.tpl new file mode 100644 index 0000000..b1414f7 --- /dev/null +++ b/phpBB2/templates/christmas2/viewforum_body.tpl @@ -0,0 +1,98 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2/templates/christmas2/viewonline_body.tpl b/phpBB2/templates/christmas2/viewonline_body.tpl new file mode 100644 index 0000000..5d0cacb --- /dev/null +++ b/phpBB2/templates/christmas2/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2/templates/christmas2/viewtopic_body.tpl b/phpBB2/templates/christmas2/viewtopic_body.tpl new file mode 100644 index 0000000..91c0894 --- /dev/null +++ b/phpBB2/templates/christmas2/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2/templates/christmas2/viewtopic_poll_ballot.tpl b/phpBB2/templates/christmas2/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..1e0cb21 --- /dev/null +++ b/phpBB2/templates/christmas2/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ + +
    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    + \ No newline at end of file diff --git a/phpBB2/templates/christmas2/viewtopic_poll_result.tpl b/phpBB2/templates/christmas2/viewtopic_poll_result.tpl new file mode 100644 index 0000000..d841400 --- /dev/null +++ b/phpBB2/templates/christmas2/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + +
    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    + + diff --git a/phpBB2/templates/christmasWithoutSnow/admin/admin_message_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/auth_forum_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/auth_select_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/auth_ug_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/board_config_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/board_config_body.tpl new file mode 100644 index 0000000..26515ed --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/board_config_body.tpl @@ -0,0 +1,248 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/category_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/db_utils_backup_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/db_utils_restore_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/disallow_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/forum_admin_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/forum_admin_body.tpl new file mode 100644 index 0000000..c06388a --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/forum_delete_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/forum_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_result_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_select_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/group_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/group_select_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/index.htm b/phpBB2/templates/christmasWithoutSnow/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/templates/christmasWithoutSnow/admin/index_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/index_body.tpl new file mode 100644 index 0000000..5cb4277 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}dddddd{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/index_frameset.tpl b/phpBB2/templates/christmasWithoutSnow/admin/index_frameset.tpl new file mode 100644 index 0000000..fef79af --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/admin/index_navigate.tpl b/phpBB2/templates/christmasWithoutSnow/admin/index_navigate.tpl new file mode 100644 index 0000000..ac18bdd --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/page_footer.tpl b/phpBB2/templates/christmasWithoutSnow/admin/page_footer.tpl new file mode 100644 index 0000000..278b360 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/admin/page_header.tpl b/phpBB2/templates/christmasWithoutSnow/admin/page_header.tpl new file mode 100644 index 0000000..6246e8f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/page_header.tpl @@ -0,0 +1,10 @@ + + + +{META} + + +{SITENAME} - {L_PHPBB_ADMIN} + + + diff --git a/phpBB2/templates/christmasWithoutSnow/admin/ranks_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/ranks_list_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/smile_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/smile_import_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/smile_list_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/styles_addnew_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..6240a79 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/styles_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/styles_edit_body.tpl new file mode 100644 index 0000000..08cf721 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/styles_exporter.tpl b/phpBB2/templates/christmasWithoutSnow/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/styles_list_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/styles_list_body.tpl new file mode 100644 index 0000000..915fe49 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/user_avatar_gallery.tpl b/phpBB2/templates/christmasWithoutSnow/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/user_ban_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/user_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/user_edit_body.tpl new file mode 100644 index 0000000..359bdeb --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/user_email_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/user_select_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/words_edit_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/admin/words_list_body.tpl b/phpBB2/templates/christmasWithoutSnow/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/christmasWithoutSnow/agreement.tpl b/phpBB2/templates/christmasWithoutSnow/agreement.tpl new file mode 100644 index 0000000..5635a35 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2/templates/christmasWithoutSnow/bbcode.tpl b/phpBB2/templates/christmasWithoutSnow/bbcode.tpl new file mode 100644 index 0000000..caef76b --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2/templates/christmasWithoutSnow/christmasWithoutSnow.cfg b/phpBB2/templates/christmasWithoutSnow/christmasWithoutSnow.cfg new file mode 100644 index 0000000..bd84476 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/christmasWithoutSnow.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/christmasWithoutSnow.css b/phpBB2/templates/christmasWithoutSnow/christmasWithoutSnow.css new file mode 100644 index 0000000..f4cd45c --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/christmasWithoutSnow.css @@ -0,0 +1,196 @@ +/* + The original subSilver Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #800000; +scrollbar-3dlight-color:#006600; +scrollbar-arrow-color:#FFFF80; +scrollbar-darkshadow-color:#066000; +scrollbar-face-color:#066000; +scrollbar-highlight-color:#008000; +scrollbar-shadow-color:##008000; +scrollbar-track-color:#008000} +} + +/* General font families for common tags */ +font,th,td,p { font:11px;font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #FFFFFF; text-decoration: none; font-weight: bold; } +a:hover { text-decoration: underline; color : #C0FFC0; } +hr { height: 0px; border: solid #FFFFFF 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline{background:#066000;color:#008000;border:8px ridge #C0FFC0} + +/* This is the outline round the main forum tables */ +.forumline{background:#33CC00;color:#008000;border:3px ridge #C0FFC0} + + +/* Main table cell colours and backgrounds */ +td.row1{background:#008000; color:#ffffff} +td.row2{background:#066000; color:#ffffff} +td.row3{background:#008000; color:#ffffff} + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic{background:#008000 repeat-y} + +/* Header cells - the blue and silver gradient backgrounds */ +th{background:url(images/cellpic3.gif) #066000;color:#FFFFFF;font-size:12px; +font-weight:bold;height:20px;white-space:nowrap} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); background-color:#066000; + color:#FFFFFF; height: 25px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #008000; border: #008000; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, + sans-serif;text-decoration: none; line-height : 120%; color : #FFFFFF; +} + + +/* General text */ +.gen { font-size : 11px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #FFFFFF; } +a.gen,a.genmed,a.gensmall { color: #FFFFFF; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #C0FFC0; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #FFFFFF } +a.mainmenu { text-decoration: none; color : #FFFFFF; } +a.mainmenu:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #FFFFFF} +a.cattitle { text-decoration: none; color : #FFFFFF; } +a.cattitle:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #FFFFFF; } +a.forumlink { text-decoration: none; color : #FFFFFF; } +a.forumlink:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #FFFFFF;} +a.nav { text-decoration: none; color : #FFFFFF; } +a.nav:hover { text-decoration: none; color : #C0FFC0; } + +.topnav{font-size:10px;background: #e5ebf3 url(images/cellpic1.gif) repeat-x;color:#dd6900; + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #FFFFFF; } +a.topictitle:link { text-decoration: none; color : #FFFFFF; } +a.topictitle:visited { text-decoration: none; color : #FFFFFF; } +a.topictitle:hover { text-decoration: none; color : #C0FFC0; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #FFFFFF;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #FFFFFF; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;color : #FFFFFF} +a.postlink:link { text-decoration: none; color : #FFFFFF } +a.postlink:visited { text-decoration: none; color : #FFFFFF; } +a.postlink:hover { text-decoration: none; color : #C0FFC0} + + +/* Quote & Code blocks */ +.code{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:11px Courier,"Courier New",sans-serif;padding:5px} + +.quote{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:bold 11px/125% Verdana,Arial,Helvetica,sans-serif} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; letter-spacing: -1px;} +a.copyright { color: #FFFFFF; text-decoration: none;} +a.copyright:hover { color: #FFFFFF; text-decoration: none;} + + +/* Form elements */ +input,textarea, select { + color : #FFFFFF; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #008000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select {background-color : #066000;} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #008000; + color : #FFFFFF; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #008000; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #008000;border-color : #ffffff; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #008000; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2/templates/christmasWithoutSnow/confirm_body.tpl b/phpBB2/templates/christmasWithoutSnow/confirm_body.tpl new file mode 100644 index 0000000..f79a643 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/error_body.tpl b/phpBB2/templates/christmasWithoutSnow/error_body.tpl new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/faq_body.tpl b/phpBB2/templates/christmasWithoutSnow/faq_body.tpl new file mode 100644 index 0000000..321d945 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/formIE.css b/phpBB2/templates/christmasWithoutSnow/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2/templates/christmasWithoutSnow/groupcp_info_body.tpl b/phpBB2/templates/christmasWithoutSnow/groupcp_info_body.tpl new file mode 100644 index 0000000..93875fa --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/groupcp_pending_info.tpl b/phpBB2/templates/christmasWithoutSnow/groupcp_pending_info.tpl new file mode 100644 index 0000000..68f618c --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/groupcp_user_body.tpl b/phpBB2/templates/christmasWithoutSnow/groupcp_user_body.tpl new file mode 100644 index 0000000..8be36f6 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/images/Thumbs.db b/phpBB2/templates/christmasWithoutSnow/images/Thumbs.db new file mode 100644 index 0000000..0b8d72c Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/Thumbs.db differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/banner.gif b/phpBB2/templates/christmasWithoutSnow/images/banner.gif new file mode 100644 index 0000000..9b3ab93 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/banner.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/cellpic.gif b/phpBB2/templates/christmasWithoutSnow/images/cellpic.gif new file mode 100644 index 0000000..58846d0 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/cellpic.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/cellpic1.gif b/phpBB2/templates/christmasWithoutSnow/images/cellpic1.gif new file mode 100644 index 0000000..44b3430 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/cellpic1.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/cellpic2.jpg b/phpBB2/templates/christmasWithoutSnow/images/cellpic2.jpg new file mode 100644 index 0000000..764c0e5 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/cellpic2.jpg differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/cellpic3.gif b/phpBB2/templates/christmasWithoutSnow/images/cellpic3.gif new file mode 100644 index 0000000..e27cdfd Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/cellpic3.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/cellpic_bkg.gif b/phpBB2/templates/christmasWithoutSnow/images/cellpic_bkg.gif new file mode 100644 index 0000000..c806b23 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/cellpic_bkg.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder.gif b/phpBB2/templates/christmasWithoutSnow/images/folder.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_announce.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_announce.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_announce.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_announce_new.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_announce_new.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_announce_new.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_big.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_big.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_big.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_hot.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_hot.gif new file mode 100644 index 0000000..30ed45d Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_hot.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_lock.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_lock.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_lock.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_lock_new.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_lock_new.gif new file mode 100644 index 0000000..c1eb69c Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_lock_new.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_locked_big.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_locked_big.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_locked_big.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_new.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_new.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_new.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_new_big.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_new_big.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_new_big.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_new_hot.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_new_hot.gif new file mode 100644 index 0000000..d326aef Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_new_hot.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_sticky.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_sticky.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_sticky.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/folder_sticky_new.gif b/phpBB2/templates/christmasWithoutSnow/images/folder_sticky_new.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/folder_sticky_new.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/icon_delete.gif b/phpBB2/templates/christmasWithoutSnow/images/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/icon_delete.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/icon_latest_reply.gif b/phpBB2/templates/christmasWithoutSnow/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/icon_latest_reply.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/icon_mini.gif b/phpBB2/templates/christmasWithoutSnow/images/icon_mini.gif new file mode 100644 index 0000000..0108cd3 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/icon_mini.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/icon_minipost.gif b/phpBB2/templates/christmasWithoutSnow/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/icon_minipost.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/icon_minipost_new.gif b/phpBB2/templates/christmasWithoutSnow/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/icon_minipost_new.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/icon_newest_reply.gif b/phpBB2/templates/christmasWithoutSnow/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/icon_newest_reply.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/index.htm b/phpBB2/templates/christmasWithoutSnow/images/index.htm new file mode 100644 index 0000000..4c5bb15 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/images/index.htm @@ -0,0 +1,16 @@ + + +christmas created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_aim.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_aim.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_delete.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_delete.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_edit.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_edit.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_email.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_email.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_icq_add.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_ip.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_ip.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_msnm.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_pm.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_pm.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_profile.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_profile.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_quote.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..0f8d473 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_quote.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_search.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_search.gif new file mode 100644 index 0000000..205c02b Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_search.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_www.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_www.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_yim.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/icon_yim.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/msg_newpost.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..30d5067 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/post.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/post.gif new file mode 100644 index 0000000..5f60b0e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/post.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/reply-locked.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..88bf4a5 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/reply-locked.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_english/reply.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_english/reply.gif new file mode 100644 index 0000000..226021e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_english/reply.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_aim.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_aim.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_delete.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_delete.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_edit.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_edit.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_email.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_email.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_icq_add.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_icq_add.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_ip.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_ip.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_msnm.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_msnm.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_pm.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_pm.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_profile.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_profile.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_quote.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_quote.gif new file mode 100644 index 0000000..d86b74e Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_quote.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_search.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_search.gif new file mode 100644 index 0000000..1de9f57 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_search.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_www.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_www.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_yim.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/icon_yim.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/index.html b/phpBB2/templates/christmasWithoutSnow/images/lang_german/index.html new file mode 100644 index 0000000..bd93b50 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/images/lang_german/index.html @@ -0,0 +1,45 @@ + + + + + + +Forum Images :: FI Subsilver Images - German + + + + + + + + + + + + + + +
    FI Subsilver Images - German

     

    + + + + + + + +
    icon_aim.gificon_edit.gificon_email.gificon_icq_add.gificon_msnm.gificon_pm.gificon_profile.gificon_quote.gificon_search.gificon_www.gificon_yim.gificon_ip.gif
    msg_newpost.gifpost.gifreply.gifreply-locked.gif
    +

     

    +

    Close + Window

    +
    + + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/msg_newpost.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/msg_newpost.gif new file mode 100644 index 0000000..a620bdf Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/msg_newpost.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/post.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/post.gif new file mode 100644 index 0000000..b4f86bc Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/post.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/reply-locked.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/reply-locked.gif new file mode 100644 index 0000000..d23d849 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/reply-locked.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/lang_german/reply.gif b/phpBB2/templates/christmasWithoutSnow/images/lang_german/reply.gif new file mode 100644 index 0000000..f1c8edd Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/lang_german/reply.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB.gif b/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB.gif new file mode 100644 index 0000000..f6d87ac Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB2.gif b/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB2.gif new file mode 100644 index 0000000..221b50d Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB2.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB_med.gif b/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB_med.gif new file mode 100644 index 0000000..5b4e6b3 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/logo_phpBB_med.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/msg_inbox.gif b/phpBB2/templates/christmasWithoutSnow/images/msg_inbox.gif new file mode 100644 index 0000000..dc455b6 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/msg_inbox.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/msg_outbox.gif b/phpBB2/templates/christmasWithoutSnow/images/msg_outbox.gif new file mode 100644 index 0000000..a7b19b8 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/msg_outbox.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/msg_savebox.gif b/phpBB2/templates/christmasWithoutSnow/images/msg_savebox.gif new file mode 100644 index 0000000..8a5d7d2 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/msg_savebox.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/msg_sentbox.gif b/phpBB2/templates/christmasWithoutSnow/images/msg_sentbox.gif new file mode 100644 index 0000000..b157808 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/msg_sentbox.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/snow.gif b/phpBB2/templates/christmasWithoutSnow/images/snow.gif new file mode 100644 index 0000000..c29c435 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/snow.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/spacer.gif b/phpBB2/templates/christmasWithoutSnow/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/spacer.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/topic_delete.gif b/phpBB2/templates/christmasWithoutSnow/images/topic_delete.gif new file mode 100644 index 0000000..d1d3a62 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/topic_delete.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/topic_lock.gif b/phpBB2/templates/christmasWithoutSnow/images/topic_lock.gif new file mode 100644 index 0000000..3aadda3 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/topic_lock.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/topic_move.gif b/phpBB2/templates/christmasWithoutSnow/images/topic_move.gif new file mode 100644 index 0000000..af8b3c7 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/topic_move.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/topic_split.gif b/phpBB2/templates/christmasWithoutSnow/images/topic_split.gif new file mode 100644 index 0000000..977dedb Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/topic_split.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/topic_unlock.gif b/phpBB2/templates/christmasWithoutSnow/images/topic_unlock.gif new file mode 100644 index 0000000..a088619 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/topic_unlock.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/vote_lcap.gif b/phpBB2/templates/christmasWithoutSnow/images/vote_lcap.gif new file mode 100644 index 0000000..22e1080 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/vote_lcap.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/vote_rcap.gif b/phpBB2/templates/christmasWithoutSnow/images/vote_rcap.gif new file mode 100644 index 0000000..28da06f Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/vote_rcap.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/voting_bar.gif b/phpBB2/templates/christmasWithoutSnow/images/voting_bar.gif new file mode 100644 index 0000000..ced112d Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/voting_bar.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/images/whosonline.gif b/phpBB2/templates/christmasWithoutSnow/images/whosonline.gif new file mode 100644 index 0000000..3bea906 Binary files /dev/null and b/phpBB2/templates/christmasWithoutSnow/images/whosonline.gif differ diff --git a/phpBB2/templates/christmasWithoutSnow/index.htm b/phpBB2/templates/christmasWithoutSnow/index.htm new file mode 100644 index 0000000..387c05d --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/index.htm @@ -0,0 +1,16 @@ + + +christmas2 created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/index_body b/phpBB2/templates/christmasWithoutSnow/index_body new file mode 100644 index 0000000..f714a0f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/index_body @@ -0,0 +1,104 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC}
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/christmasWithoutSnow/index_body.tpl b/phpBB2/templates/christmasWithoutSnow/index_body.tpl new file mode 100644 index 0000000..f714a0f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/index_body.tpl @@ -0,0 +1,104 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC}
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/christmasWithoutSnow/jumpbox.tpl b/phpBB2/templates/christmasWithoutSnow/jumpbox.tpl new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2/templates/christmasWithoutSnow/login_body.tpl b/phpBB2/templates/christmasWithoutSnow/login_body.tpl new file mode 100644 index 0000000..50d7f71 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/memberlist_body.tpl b/phpBB2/templates/christmasWithoutSnow/memberlist_body.tpl new file mode 100644 index 0000000..af1340d --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/message_body.tpl b/phpBB2/templates/christmasWithoutSnow/message_body.tpl new file mode 100644 index 0000000..6be7f51 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/modcp_body.tpl b/phpBB2/templates/christmasWithoutSnow/modcp_body.tpl new file mode 100644 index 0000000..fd0fe1b --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/modcp_move.tpl b/phpBB2/templates/christmasWithoutSnow/modcp_move.tpl new file mode 100644 index 0000000..730952c --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/modcp_split.tpl b/phpBB2/templates/christmasWithoutSnow/modcp_split.tpl new file mode 100644 index 0000000..837544c --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/modcp_split.tpl @@ -0,0 +1,85 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/modcp_viewip.tpl b/phpBB2/templates/christmasWithoutSnow/modcp_viewip.tpl new file mode 100644 index 0000000..d497d88 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/overall_footer.tpl b/phpBB2/templates/christmasWithoutSnow/overall_footer.tpl new file mode 100644 index 0000000..c0750a1 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO} +
    Original Template   Modify Template by   BremerJunge
    +
    + + + diff --git a/phpBB2/templates/christmasWithoutSnow/overall_header b/phpBB2/templates/christmasWithoutSnow/overall_header new file mode 100644 index 0000000..eae5c10 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/overall_header @@ -0,0 +1,47 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + +
    + + + + +
    {L_INDEX}{SITENAME}
    {SITE_DESCRIPTION}
     
    + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/overall_header.tpl b/phpBB2/templates/christmasWithoutSnow/overall_header.tpl new file mode 100644 index 0000000..eae5c10 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/overall_header.tpl @@ -0,0 +1,47 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2/templates/christmasWithoutSnow/posting_preview b/phpBB2/templates/christmasWithoutSnow/posting_preview new file mode 100644 index 0000000..6479929 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_preview @@ -0,0 +1,23 @@ + +
    + + + + +
    {L_INDEX}{SITENAME}
    {SITE_DESCRIPTION}
     
    + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/posting_body.tpl b/phpBB2/templates/christmasWithoutSnow/posting_body.tpl new file mode 100644 index 0000000..c16b19c --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_body.tpl @@ -0,0 +1,481 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2/templates/christmasWithoutSnow/posting_poll_body.tpl b/phpBB2/templates/christmasWithoutSnow/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/posting_preview.tpl b/phpBB2/templates/christmasWithoutSnow/posting_preview.tpl new file mode 100644 index 0000000..6479929 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_preview.tpl @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/posting_smilies.tpl b/phpBB2/templates/christmasWithoutSnow/posting_smilies.tpl new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2/templates/christmasWithoutSnow/posting_topic_review b/phpBB2/templates/christmasWithoutSnow/posting_topic_review new file mode 100644 index 0000000..9bc0bfa --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_topic_review @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2/templates/christmasWithoutSnow/posting_topic_review.tpl b/phpBB2/templates/christmasWithoutSnow/posting_topic_review.tpl new file mode 100644 index 0000000..9bc0bfa --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2/templates/christmasWithoutSnow/privmsgs_body.tpl b/phpBB2/templates/christmasWithoutSnow/privmsgs_body.tpl new file mode 100644 index 0000000..9422071 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/privmsgs_popup.tpl b/phpBB2/templates/christmasWithoutSnow/privmsgs_popup.tpl new file mode 100644 index 0000000..e48205b --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/privmsgs_preview.tpl b/phpBB2/templates/christmasWithoutSnow/privmsgs_preview.tpl new file mode 100644 index 0000000..ba2ed93 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/privmsgs_read_body.tpl b/phpBB2/templates/christmasWithoutSnow/privmsgs_read_body.tpl new file mode 100644 index 0000000..3c85e6a --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/profile_add_body.tpl b/phpBB2/templates/christmasWithoutSnow/profile_add_body.tpl new file mode 100644 index 0000000..ede3217 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/profile_add_body.tpl @@ -0,0 +1,274 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/christmasWithoutSnow/profile_avatar_gallery.tpl b/phpBB2/templates/christmasWithoutSnow/profile_avatar_gallery.tpl new file mode 100644 index 0000000..9be5375 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/profile_send_email.tpl b/phpBB2/templates/christmasWithoutSnow/profile_send_email.tpl new file mode 100644 index 0000000..86c28cb --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/profile_send_pass.tpl b/phpBB2/templates/christmasWithoutSnow/profile_send_pass.tpl new file mode 100644 index 0000000..8d31aa4 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/profile_view_body.tpl b/phpBB2/templates/christmasWithoutSnow/profile_view_body.tpl new file mode 100644 index 0000000..a9c3c6f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/search_body.tpl b/phpBB2/templates/christmasWithoutSnow/search_body.tpl new file mode 100644 index 0000000..d1316df --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/search_results_posts.tpl b/phpBB2/templates/christmasWithoutSnow/search_results_posts.tpl new file mode 100644 index 0000000..edb8e76 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/search_results_topics.tpl b/phpBB2/templates/christmasWithoutSnow/search_results_topics.tpl new file mode 100644 index 0000000..be0d424 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/christmasWithoutSnow/search_username.tpl b/phpBB2/templates/christmasWithoutSnow/search_username.tpl new file mode 100644 index 0000000..611ec3f --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2/templates/christmasWithoutSnow/simple_footer.tpl b/phpBB2/templates/christmasWithoutSnow/simple_footer.tpl new file mode 100644 index 0000000..68c2b00 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    +
    + + + diff --git a/phpBB2/templates/christmasWithoutSnow/simple_header.tpl b/phpBB2/templates/christmasWithoutSnow/simple_header.tpl new file mode 100644 index 0000000..90a4fb9 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/simple_header.tpl @@ -0,0 +1,17 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2/templates/christmasWithoutSnow/theme_info.cfg b/phpBB2/templates/christmasWithoutSnow/theme_info.cfg new file mode 100644 index 0000000..3831e55 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/viewforum_body.tpl b/phpBB2/templates/christmasWithoutSnow/viewforum_body.tpl new file mode 100644 index 0000000..b1414f7 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/viewforum_body.tpl @@ -0,0 +1,98 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2/templates/christmasWithoutSnow/viewonline_body.tpl b/phpBB2/templates/christmasWithoutSnow/viewonline_body.tpl new file mode 100644 index 0000000..d68a180 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2/templates/christmasWithoutSnow/viewtopic_body.tpl b/phpBB2/templates/christmasWithoutSnow/viewtopic_body.tpl new file mode 100644 index 0000000..a699f7d --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2/templates/christmasWithoutSnow/viewtopic_poll_ballot.tpl b/phpBB2/templates/christmasWithoutSnow/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..1e0cb21 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ + +
    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    + \ No newline at end of file diff --git a/phpBB2/templates/christmasWithoutSnow/viewtopic_poll_result.tpl b/phpBB2/templates/christmasWithoutSnow/viewtopic_poll_result.tpl new file mode 100644 index 0000000..e0cc347 --- /dev/null +++ b/phpBB2/templates/christmasWithoutSnow/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + +
    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    + + diff --git a/phpBB2/templates/index.htm b/phpBB2/templates/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/templates/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/templates/subSilver/admin/admin_message_body.tpl b/phpBB2/templates/subSilver/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2/templates/subSilver/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2/templates/subSilver/admin/auth_forum_body.tpl b/phpBB2/templates/subSilver/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/subSilver/admin/auth_select_body.tpl b/phpBB2/templates/subSilver/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2/templates/subSilver/admin/auth_ug_body.tpl b/phpBB2/templates/subSilver/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/subSilver/admin/board_config_body.tpl b/phpBB2/templates/subSilver/admin/board_config_body.tpl new file mode 100644 index 0000000..2b474f2 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/board_config_body.tpl @@ -0,0 +1,272 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_VISUAL_CONFIRM}
    {L_VISUAL_CONFIRM_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_AUTOLOGIN}
    {L_ALLOW_AUTOLOGIN_EXPLAIN}
    {L_YES}   {L_NO}
    {L_AUTOLOGIN_TIME}
    {L_AUTOLOGIN_TIME_EXPLAIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_SEARCH_FLOOD_INTERVAL}
    {L_SEARCH_FLOOD_INTERVAL_EXPLAIN}
    {L_MAX_LOGIN_ATTEMPTS}
    {L_MAX_LOGIN_ATTEMPTS_EXPLAIN}
    {L_LOGIN_RESET_TIME}
    {L_LOGIN_RESET_TIME_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/category_edit_body.tpl b/phpBB2/templates/subSilver/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/confirm_body.tpl b/phpBB2/templates/subSilver/admin/confirm_body.tpl new file mode 100644 index 0000000..376480c --- /dev/null +++ b/phpBB2/templates/subSilver/admin/confirm_body.tpl @@ -0,0 +1,11 @@ + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/subSilver/admin/db_utils_backup_body.tpl b/phpBB2/templates/subSilver/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/db_utils_restore_body.tpl b/phpBB2/templates/subSilver/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2/templates/subSilver/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2/templates/subSilver/admin/disallow_body.tpl b/phpBB2/templates/subSilver/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2/templates/subSilver/admin/forum_admin_body.tpl b/phpBB2/templates/subSilver/admin/forum_admin_body.tpl new file mode 100644 index 0000000..8c631f9 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2/templates/subSilver/admin/forum_delete_body.tpl b/phpBB2/templates/subSilver/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2/templates/subSilver/admin/forum_edit_body.tpl b/phpBB2/templates/subSilver/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2/templates/subSilver/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/forum_prune_body.tpl b/phpBB2/templates/subSilver/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2/templates/subSilver/admin/forum_prune_result_body.tpl b/phpBB2/templates/subSilver/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2/templates/subSilver/admin/forum_prune_select_body.tpl b/phpBB2/templates/subSilver/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2/templates/subSilver/admin/group_edit_body.tpl b/phpBB2/templates/subSilver/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/group_select_body.tpl b/phpBB2/templates/subSilver/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/index.htm b/phpBB2/templates/subSilver/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2/templates/subSilver/admin/index_body.tpl b/phpBB2/templates/subSilver/admin/index_body.tpl new file mode 100644 index 0000000..6e9f8d3 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/index_body.tpl @@ -0,0 +1,86 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    + +

    {L_VERSION_INFORMATION}

    + +{VERSION_INFO} + +
    + +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2/templates/subSilver/admin/index_frameset.tpl b/phpBB2/templates/subSilver/admin/index_frameset.tpl new file mode 100644 index 0000000..5cf48df --- /dev/null +++ b/phpBB2/templates/subSilver/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/admin/index_navigate.tpl b/phpBB2/templates/subSilver/admin/index_navigate.tpl new file mode 100644 index 0000000..5977bdf --- /dev/null +++ b/phpBB2/templates/subSilver/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/page_footer.tpl b/phpBB2/templates/subSilver/admin/page_footer.tpl new file mode 100644 index 0000000..278b360 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/admin/page_header.tpl b/phpBB2/templates/subSilver/admin/page_header.tpl new file mode 100644 index 0000000..507a296 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/page_header.tpl @@ -0,0 +1,226 @@ + + + +{META} + + + +{SITENAME} - {L_PHPBB_ADMIN} + + + + diff --git a/phpBB2/templates/subSilver/admin/ranks_edit_body.tpl b/phpBB2/templates/subSilver/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2/templates/subSilver/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/ranks_list_body.tpl b/phpBB2/templates/subSilver/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2/templates/subSilver/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/subSilver/admin/smile_edit_body.tpl b/phpBB2/templates/subSilver/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2/templates/subSilver/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/smile_import_body.tpl b/phpBB2/templates/subSilver/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/smile_list_body.tpl b/phpBB2/templates/subSilver/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2/templates/subSilver/admin/styles_addnew_body.tpl b/phpBB2/templates/subSilver/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..1cb9df5 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2/templates/subSilver/admin/styles_edit_body.tpl b/phpBB2/templates/subSilver/admin/styles_edit_body.tpl new file mode 100644 index 0000000..939f643 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    {L_STYLESHEET_EXPLAIN}
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/styles_exporter.tpl b/phpBB2/templates/subSilver/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2/templates/subSilver/admin/styles_list_body.tpl b/phpBB2/templates/subSilver/admin/styles_list_body.tpl new file mode 100644 index 0000000..eb59c64 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2/templates/subSilver/admin/user_avatar_gallery.tpl b/phpBB2/templates/subSilver/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2/templates/subSilver/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/subSilver/admin/user_ban_body.tpl b/phpBB2/templates/subSilver/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2/templates/subSilver/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2/templates/subSilver/admin/user_edit_body.tpl b/phpBB2/templates/subSilver/admin/user_edit_body.tpl new file mode 100644 index 0000000..0f4bc26 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2/templates/subSilver/admin/user_email_body.tpl b/phpBB2/templates/subSilver/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/user_select_body.tpl b/phpBB2/templates/subSilver/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2/templates/subSilver/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/userlist_body.tpl b/phpBB2/templates/subSilver/admin/userlist_body.tpl new file mode 100644 index 0000000..8a953d4 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/userlist_body.tpl @@ -0,0 +1,144 @@ + + +

    {L_TITLE}

    + +

    {L_DESCRIPTION}

    + +
    + + + + + + + + + + +
     {L_SORT_BY}{L_SHOW}{S_HIDDEN_FIELDS}
    +
    + + + + + + + +
    + {alphanumsearch.SEARCH_TERM} +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}{L_ACTIVE}{L_JOINED}{L_ACTIVTY}
       {L_OPEN_CLOSE}{user_row.USERNAME}{user_row.ACTIVE}{user_row.JOINED}{user_row.LAST_ACTIVITY}
    + + +
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    +
    + +
    \ No newline at end of file diff --git a/phpBB2/templates/subSilver/admin/userlist_group.tpl b/phpBB2/templates/subSilver/admin/userlist_group.tpl new file mode 100644 index 0000000..9a736ae --- /dev/null +++ b/phpBB2/templates/subSilver/admin/userlist_group.tpl @@ -0,0 +1,17 @@ + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS} + +
    + +
    diff --git a/phpBB2/templates/subSilver/admin/words_edit_body.tpl b/phpBB2/templates/subSilver/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2/templates/subSilver/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/admin/words_list_body.tpl b/phpBB2/templates/subSilver/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2/templates/subSilver/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/templates/subSilver/agreement.tpl b/phpBB2/templates/subSilver/agreement.tpl new file mode 100644 index 0000000..5635a35 --- /dev/null +++ b/phpBB2/templates/subSilver/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2/templates/subSilver/bbcode.tpl b/phpBB2/templates/subSilver/bbcode.tpl new file mode 100644 index 0000000..6f86f55 --- /dev/null +++ b/phpBB2/templates/subSilver/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2/templates/subSilver/confirm_body.tpl b/phpBB2/templates/subSilver/confirm_body.tpl new file mode 100644 index 0000000..d17fa82 --- /dev/null +++ b/phpBB2/templates/subSilver/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/subSilver/error_body.tpl b/phpBB2/templates/subSilver/error_body.tpl new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/phpBB2/templates/subSilver/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2/templates/subSilver/faq_body.tpl b/phpBB2/templates/subSilver/faq_body.tpl new file mode 100644 index 0000000..9933a2c --- /dev/null +++ b/phpBB2/templates/subSilver/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/formIE.css b/phpBB2/templates/subSilver/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2/templates/subSilver/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2/templates/subSilver/groupcp_info_body.tpl b/phpBB2/templates/subSilver/groupcp_info_body.tpl new file mode 100644 index 0000000..6c3acf9 --- /dev/null +++ b/phpBB2/templates/subSilver/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/groupcp_pending_info.tpl b/phpBB2/templates/subSilver/groupcp_pending_info.tpl new file mode 100644 index 0000000..68f618c --- /dev/null +++ b/phpBB2/templates/subSilver/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2/templates/subSilver/groupcp_user_body.tpl b/phpBB2/templates/subSilver/groupcp_user_body.tpl new file mode 100644 index 0000000..8be36f6 --- /dev/null +++ b/phpBB2/templates/subSilver/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/header.tpl b/phpBB2/templates/subSilver/header.tpl new file mode 100644 index 0000000..c037df0 --- /dev/null +++ b/phpBB2/templates/subSilver/header.tpl @@ -0,0 +1,29 @@ + + + + + + + + + + + +
    + + +Home +About me +Forum +News +Pictures +Search + + +
    + + + +
    +
    + diff --git a/phpBB2/templates/subSilver/images/cellpic.gif b/phpBB2/templates/subSilver/images/cellpic.gif new file mode 100644 index 0000000..47457ef Binary files /dev/null and b/phpBB2/templates/subSilver/images/cellpic.gif differ diff --git a/phpBB2/templates/subSilver/images/cellpic1.gif b/phpBB2/templates/subSilver/images/cellpic1.gif new file mode 100644 index 0000000..715b8d4 Binary files /dev/null and b/phpBB2/templates/subSilver/images/cellpic1.gif differ diff --git a/phpBB2/templates/subSilver/images/cellpic2.jpg b/phpBB2/templates/subSilver/images/cellpic2.jpg new file mode 100644 index 0000000..a0ca7e8 Binary files /dev/null and b/phpBB2/templates/subSilver/images/cellpic2.jpg differ diff --git a/phpBB2/templates/subSilver/images/cellpic3.gif b/phpBB2/templates/subSilver/images/cellpic3.gif new file mode 100644 index 0000000..ecf70e1 Binary files /dev/null and b/phpBB2/templates/subSilver/images/cellpic3.gif differ diff --git a/phpBB2/templates/subSilver/images/created_by.jpg b/phpBB2/templates/subSilver/images/created_by.jpg new file mode 100644 index 0000000..f274727 Binary files /dev/null and b/phpBB2/templates/subSilver/images/created_by.jpg differ diff --git a/phpBB2/templates/subSilver/images/folder.gif b/phpBB2/templates/subSilver/images/folder.gif new file mode 100644 index 0000000..c16bfa7 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_announce.gif b/phpBB2/templates/subSilver/images/folder_announce.gif new file mode 100644 index 0000000..0589feb Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_announce.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_announce_new.gif b/phpBB2/templates/subSilver/images/folder_announce_new.gif new file mode 100644 index 0000000..56b2702 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_announce_new.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_big.gif b/phpBB2/templates/subSilver/images/folder_big.gif new file mode 100644 index 0000000..9b2bc47 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_big.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_hot.gif b/phpBB2/templates/subSilver/images/folder_hot.gif new file mode 100644 index 0000000..a7e8831 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_hot.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_lock.gif b/phpBB2/templates/subSilver/images/folder_lock.gif new file mode 100644 index 0000000..10eb776 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_lock.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_lock_new.gif b/phpBB2/templates/subSilver/images/folder_lock_new.gif new file mode 100644 index 0000000..720e210 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_lock_new.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_locked_big.gif b/phpBB2/templates/subSilver/images/folder_locked_big.gif new file mode 100644 index 0000000..436f3d2 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_locked_big.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_new.gif b/phpBB2/templates/subSilver/images/folder_new.gif new file mode 100644 index 0000000..4e56157 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_new.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_new_big.gif b/phpBB2/templates/subSilver/images/folder_new_big.gif new file mode 100644 index 0000000..5eec565 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_new_big.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_new_hot.gif b/phpBB2/templates/subSilver/images/folder_new_hot.gif new file mode 100644 index 0000000..25ced64 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_new_hot.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_sticky.gif b/phpBB2/templates/subSilver/images/folder_sticky.gif new file mode 100644 index 0000000..09861a9 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_sticky.gif differ diff --git a/phpBB2/templates/subSilver/images/folder_sticky_new.gif b/phpBB2/templates/subSilver/images/folder_sticky_new.gif new file mode 100644 index 0000000..dd2e366 Binary files /dev/null and b/phpBB2/templates/subSilver/images/folder_sticky_new.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_delete.gif b/phpBB2/templates/subSilver/images/icon_delete.gif new file mode 100644 index 0000000..1153ba5 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_delete.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_latest_reply.gif b/phpBB2/templates/subSilver/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_latest_reply.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_faq.gif b/phpBB2/templates/subSilver/images/icon_mini_faq.gif new file mode 100644 index 0000000..b8b873d Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_faq.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_groups.gif b/phpBB2/templates/subSilver/images/icon_mini_groups.gif new file mode 100644 index 0000000..be5c201 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_groups.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_login.gif b/phpBB2/templates/subSilver/images/icon_mini_login.gif new file mode 100644 index 0000000..30b309b Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_login.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_members.gif b/phpBB2/templates/subSilver/images/icon_mini_members.gif new file mode 100644 index 0000000..a79a5a7 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_members.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_message.gif b/phpBB2/templates/subSilver/images/icon_mini_message.gif new file mode 100644 index 0000000..57071d6 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_message.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_profile.gif b/phpBB2/templates/subSilver/images/icon_mini_profile.gif new file mode 100644 index 0000000..3dc0871 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_profile.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_register.gif b/phpBB2/templates/subSilver/images/icon_mini_register.gif new file mode 100644 index 0000000..11b8f31 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_register.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_mini_search.gif b/phpBB2/templates/subSilver/images/icon_mini_search.gif new file mode 100644 index 0000000..1295e9f Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_mini_search.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_minipost.gif b/phpBB2/templates/subSilver/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_minipost.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_minipost_new.gif b/phpBB2/templates/subSilver/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_minipost_new.gif differ diff --git a/phpBB2/templates/subSilver/images/icon_newest_reply.gif b/phpBB2/templates/subSilver/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2/templates/subSilver/images/icon_newest_reply.gif differ diff --git a/phpBB2/templates/subSilver/images/index.htm b/phpBB2/templates/subSilver/images/index.htm new file mode 100644 index 0000000..491b26d --- /dev/null +++ b/phpBB2/templates/subSilver/images/index.htm @@ -0,0 +1,16 @@ + + +subSilver created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_aim.gif b/phpBB2/templates/subSilver/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..4b6a858 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_aim.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_edit.gif b/phpBB2/templates/subSilver/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..bb70004 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_edit.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_email.gif b/phpBB2/templates/subSilver/images/lang_english/icon_email.gif new file mode 100644 index 0000000..3d359c2 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_email.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_icq_add.gif b/phpBB2/templates/subSilver/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..4bf276d Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_ip.gif b/phpBB2/templates/subSilver/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..bf17a51 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_ip.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_msnm.gif b/phpBB2/templates/subSilver/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..6518415 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_pm.gif b/phpBB2/templates/subSilver/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..f87b4f5 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_pm.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_profile.gif b/phpBB2/templates/subSilver/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..2bd32d2 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_profile.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_quote.gif b/phpBB2/templates/subSilver/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..3dec675 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_quote.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_search.gif b/phpBB2/templates/subSilver/images/lang_english/icon_search.gif new file mode 100644 index 0000000..8dd38a3 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_search.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_www.gif b/phpBB2/templates/subSilver/images/lang_english/icon_www.gif new file mode 100644 index 0000000..8c1731f Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_www.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/icon_yim.gif b/phpBB2/templates/subSilver/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..57e75b3 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/icon_yim.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/msg_newpost.gif b/phpBB2/templates/subSilver/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..ce2c1a8 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/post.gif b/phpBB2/templates/subSilver/images/lang_english/post.gif new file mode 100644 index 0000000..4b7cb20 Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/post.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/reply-locked.gif b/phpBB2/templates/subSilver/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..5ab1d7a Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/reply-locked.gif differ diff --git a/phpBB2/templates/subSilver/images/lang_english/reply.gif b/phpBB2/templates/subSilver/images/lang_english/reply.gif new file mode 100644 index 0000000..cb385af Binary files /dev/null and b/phpBB2/templates/subSilver/images/lang_english/reply.gif differ diff --git a/phpBB2/templates/subSilver/images/logo_phpBB.gif b/phpBB2/templates/subSilver/images/logo_phpBB.gif new file mode 100644 index 0000000..37aa0fd Binary files /dev/null and b/phpBB2/templates/subSilver/images/logo_phpBB.gif differ diff --git a/phpBB2/templates/subSilver/images/logo_phpBB_med.gif b/phpBB2/templates/subSilver/images/logo_phpBB_med.gif new file mode 100644 index 0000000..3d84f94 Binary files /dev/null and b/phpBB2/templates/subSilver/images/logo_phpBB_med.gif differ diff --git a/phpBB2/templates/subSilver/images/msg_inbox.gif b/phpBB2/templates/subSilver/images/msg_inbox.gif new file mode 100644 index 0000000..011d0bd Binary files /dev/null and b/phpBB2/templates/subSilver/images/msg_inbox.gif differ diff --git a/phpBB2/templates/subSilver/images/msg_outbox.gif b/phpBB2/templates/subSilver/images/msg_outbox.gif new file mode 100644 index 0000000..84fdce3 Binary files /dev/null and b/phpBB2/templates/subSilver/images/msg_outbox.gif differ diff --git a/phpBB2/templates/subSilver/images/msg_savebox.gif b/phpBB2/templates/subSilver/images/msg_savebox.gif new file mode 100644 index 0000000..86d1f2c Binary files /dev/null and b/phpBB2/templates/subSilver/images/msg_savebox.gif differ diff --git a/phpBB2/templates/subSilver/images/msg_sentbox.gif b/phpBB2/templates/subSilver/images/msg_sentbox.gif new file mode 100644 index 0000000..b95db75 Binary files /dev/null and b/phpBB2/templates/subSilver/images/msg_sentbox.gif differ diff --git a/phpBB2/templates/subSilver/images/spacer.gif b/phpBB2/templates/subSilver/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2/templates/subSilver/images/spacer.gif differ diff --git a/phpBB2/templates/subSilver/images/topic_delete.gif b/phpBB2/templates/subSilver/images/topic_delete.gif new file mode 100644 index 0000000..3b21b11 Binary files /dev/null and b/phpBB2/templates/subSilver/images/topic_delete.gif differ diff --git a/phpBB2/templates/subSilver/images/topic_lock.gif b/phpBB2/templates/subSilver/images/topic_lock.gif new file mode 100644 index 0000000..fe32fea Binary files /dev/null and b/phpBB2/templates/subSilver/images/topic_lock.gif differ diff --git a/phpBB2/templates/subSilver/images/topic_move.gif b/phpBB2/templates/subSilver/images/topic_move.gif new file mode 100644 index 0000000..ab2fd23 Binary files /dev/null and b/phpBB2/templates/subSilver/images/topic_move.gif differ diff --git a/phpBB2/templates/subSilver/images/topic_split.gif b/phpBB2/templates/subSilver/images/topic_split.gif new file mode 100644 index 0000000..bdbc884 Binary files /dev/null and b/phpBB2/templates/subSilver/images/topic_split.gif differ diff --git a/phpBB2/templates/subSilver/images/topic_unlock.gif b/phpBB2/templates/subSilver/images/topic_unlock.gif new file mode 100644 index 0000000..dae3e4d Binary files /dev/null and b/phpBB2/templates/subSilver/images/topic_unlock.gif differ diff --git a/phpBB2/templates/subSilver/images/vote_lcap.gif b/phpBB2/templates/subSilver/images/vote_lcap.gif new file mode 100644 index 0000000..269088b Binary files /dev/null and b/phpBB2/templates/subSilver/images/vote_lcap.gif differ diff --git a/phpBB2/templates/subSilver/images/vote_rcap.gif b/phpBB2/templates/subSilver/images/vote_rcap.gif new file mode 100644 index 0000000..f9584e2 Binary files /dev/null and b/phpBB2/templates/subSilver/images/vote_rcap.gif differ diff --git a/phpBB2/templates/subSilver/images/voting_bar.gif b/phpBB2/templates/subSilver/images/voting_bar.gif new file mode 100644 index 0000000..9947315 Binary files /dev/null and b/phpBB2/templates/subSilver/images/voting_bar.gif differ diff --git a/phpBB2/templates/subSilver/images/whosonline.gif b/phpBB2/templates/subSilver/images/whosonline.gif new file mode 100644 index 0000000..b450927 Binary files /dev/null and b/phpBB2/templates/subSilver/images/whosonline.gif differ diff --git a/phpBB2/templates/subSilver/index.htm b/phpBB2/templates/subSilver/index.htm new file mode 100644 index 0000000..79908c5 --- /dev/null +++ b/phpBB2/templates/subSilver/index.htm @@ -0,0 +1,16 @@ + + +subSilver created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/index_body.tpl b/phpBB2/templates/subSilver/index_body.tpl new file mode 100644 index 0000000..a6624b7 --- /dev/null +++ b/phpBB2/templates/subSilver/index_body.tpl @@ -0,0 +1,109 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    + + {L_MARK_FORUMS_READ} + + {S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + + +      {L_AUTO_LOGIN} + + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/subSilver/jumpbox.tpl b/phpBB2/templates/subSilver/jumpbox.tpl new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/phpBB2/templates/subSilver/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2/templates/subSilver/login_body.tpl b/phpBB2/templates/subSilver/login_body.tpl new file mode 100644 index 0000000..6806cd6 --- /dev/null +++ b/phpBB2/templates/subSilver/login_body.tpl @@ -0,0 +1,46 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2/templates/subSilver/memberlist_body.tpl b/phpBB2/templates/subSilver/memberlist_body.tpl new file mode 100644 index 0000000..af1340d --- /dev/null +++ b/phpBB2/templates/subSilver/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/message_body.tpl b/phpBB2/templates/subSilver/message_body.tpl new file mode 100644 index 0000000..6be7f51 --- /dev/null +++ b/phpBB2/templates/subSilver/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2/templates/subSilver/modcp_body.tpl b/phpBB2/templates/subSilver/modcp_body.tpl new file mode 100644 index 0000000..fd0fe1b --- /dev/null +++ b/phpBB2/templates/subSilver/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/modcp_move.tpl b/phpBB2/templates/subSilver/modcp_move.tpl new file mode 100644 index 0000000..730952c --- /dev/null +++ b/phpBB2/templates/subSilver/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2/templates/subSilver/modcp_split.tpl b/phpBB2/templates/subSilver/modcp_split.tpl new file mode 100644 index 0000000..c8be76a --- /dev/null +++ b/phpBB2/templates/subSilver/modcp_split.tpl @@ -0,0 +1,85 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2/templates/subSilver/modcp_viewip.tpl b/phpBB2/templates/subSilver/modcp_viewip.tpl new file mode 100644 index 0000000..d497d88 --- /dev/null +++ b/phpBB2/templates/subSilver/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2/templates/subSilver/overall_footer.tpl b/phpBB2/templates/subSilver/overall_footer.tpl new file mode 100644 index 0000000..0e2a66b --- /dev/null +++ b/phpBB2/templates/subSilver/overall_footer.tpl @@ -0,0 +1,19 @@ + +

    {ADMIN_LINK}
    + +Powered by phpBB © 2001, 2005 phpBB Group
    {TRANSLATION_INFO}
    +
    + + + diff --git a/phpBB2/templates/subSilver/overall_header.tpl b/phpBB2/templates/subSilver/overall_header.tpl new file mode 100644 index 0000000..9b9c0cb --- /dev/null +++ b/phpBB2/templates/subSilver/overall_header.tpl @@ -0,0 +1,254 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    + +
    diff --git a/phpBB2/templates/subSilver/overall_header.tpl.orig b/phpBB2/templates/subSilver/overall_header.tpl.orig new file mode 100644 index 0000000..008badc --- /dev/null +++ b/phpBB2/templates/subSilver/overall_header.tpl.orig @@ -0,0 +1,254 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2/templates/subSilver/posting_preview.tpl b/phpBB2/templates/subSilver/posting_preview.tpl new file mode 100644 index 0000000..8da3409 --- /dev/null +++ b/phpBB2/templates/subSilver/posting_preview.tpl @@ -0,0 +1,23 @@ + +
    + + + + +
    + + + + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    + +
    diff --git a/phpBB2/templates/subSilver/posting_body.tpl b/phpBB2/templates/subSilver/posting_body.tpl new file mode 100644 index 0000000..94853d4 --- /dev/null +++ b/phpBB2/templates/subSilver/posting_body.tpl @@ -0,0 +1,482 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2/templates/subSilver/posting_poll_body.tpl b/phpBB2/templates/subSilver/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2/templates/subSilver/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2/templates/subSilver/posting_smilies.tpl b/phpBB2/templates/subSilver/posting_smilies.tpl new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/phpBB2/templates/subSilver/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2/templates/subSilver/posting_topic_review.tpl b/phpBB2/templates/subSilver/posting_topic_review.tpl new file mode 100644 index 0000000..7b8960c --- /dev/null +++ b/phpBB2/templates/subSilver/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2/templates/subSilver/privmsgs_body.tpl b/phpBB2/templates/subSilver/privmsgs_body.tpl new file mode 100644 index 0000000..3c221c5 --- /dev/null +++ b/phpBB2/templates/subSilver/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/privmsgs_popup.tpl b/phpBB2/templates/subSilver/privmsgs_popup.tpl new file mode 100644 index 0000000..e48205b --- /dev/null +++ b/phpBB2/templates/subSilver/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2/templates/subSilver/privmsgs_preview.tpl b/phpBB2/templates/subSilver/privmsgs_preview.tpl new file mode 100644 index 0000000..ba2ed93 --- /dev/null +++ b/phpBB2/templates/subSilver/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2/templates/subSilver/privmsgs_read_body.tpl b/phpBB2/templates/subSilver/privmsgs_read_body.tpl new file mode 100644 index 0000000..3c85e6a --- /dev/null +++ b/phpBB2/templates/subSilver/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/profile_add_body.tpl b/phpBB2/templates/subSilver/profile_add_body.tpl new file mode 100644 index 0000000..a9d1f62 --- /dev/null +++ b/phpBB2/templates/subSilver/profile_add_body.tpl @@ -0,0 +1,274 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/subSilver/profile_avatar_gallery.tpl b/phpBB2/templates/subSilver/profile_avatar_gallery.tpl new file mode 100644 index 0000000..9be5375 --- /dev/null +++ b/phpBB2/templates/subSilver/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/subSilver/profile_send_email.tpl b/phpBB2/templates/subSilver/profile_send_email.tpl new file mode 100644 index 0000000..86c28cb --- /dev/null +++ b/phpBB2/templates/subSilver/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/profile_send_pass.tpl b/phpBB2/templates/subSilver/profile_send_pass.tpl new file mode 100644 index 0000000..8d31aa4 --- /dev/null +++ b/phpBB2/templates/subSilver/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2/templates/subSilver/profile_view_body.tpl b/phpBB2/templates/subSilver/profile_view_body.tpl new file mode 100644 index 0000000..a9c3c6f --- /dev/null +++ b/phpBB2/templates/subSilver/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/search_body.tpl b/phpBB2/templates/subSilver/search_body.tpl new file mode 100644 index 0000000..23887b9 --- /dev/null +++ b/phpBB2/templates/subSilver/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/search_results_posts.tpl b/phpBB2/templates/subSilver/search_results_posts.tpl new file mode 100644 index 0000000..15187c3 --- /dev/null +++ b/phpBB2/templates/subSilver/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/search_results_topics.tpl b/phpBB2/templates/subSilver/search_results_topics.tpl new file mode 100644 index 0000000..d628e01 --- /dev/null +++ b/phpBB2/templates/subSilver/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2/templates/subSilver/search_username.tpl b/phpBB2/templates/subSilver/search_username.tpl new file mode 100644 index 0000000..611ec3f --- /dev/null +++ b/phpBB2/templates/subSilver/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2/templates/subSilver/simple_footer.tpl b/phpBB2/templates/subSilver/simple_footer.tpl new file mode 100644 index 0000000..92d54d4 --- /dev/null +++ b/phpBB2/templates/subSilver/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB © 2001, 2005 phpBB Group
    +
    + + + diff --git a/phpBB2/templates/subSilver/simple_header.tpl b/phpBB2/templates/subSilver/simple_header.tpl new file mode 100644 index 0000000..52733c9 --- /dev/null +++ b/phpBB2/templates/subSilver/simple_header.tpl @@ -0,0 +1,243 @@ + + + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + diff --git a/phpBB2/templates/subSilver/subSilver.cfg b/phpBB2/templates/subSilver/subSilver.cfg new file mode 100644 index 0000000..2c859ad --- /dev/null +++ b/phpBB2/templates/subSilver/subSilver.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/subSilver.css b/phpBB2/templates/subSilver/subSilver.css new file mode 100644 index 0000000..ba58268 --- /dev/null +++ b/phpBB2/templates/subSilver/subSilver.css @@ -0,0 +1,210 @@ +/* + The original subSilver Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #E5E5E5; + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1; +} + +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #006699; } +a:hover { text-decoration: underline; color : #DD6900; } +hr { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline { background-color: #FFFFFF; border: 1px #98AAB1 solid; } + +/* This is the outline round the main forum tables */ +.forumline { background-color: #FFFFFF; border: 2px #006699 solid; } + + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #EFEFEF; } +td.row2 { background-color: #DEE3E7; } +td.row3 { background-color: #D1D7DC; } + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic { + background-color: #FFFFFF; + background-image: url(images/cellpic2.jpg); + background-repeat: repeat-y; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #FFA34F; font-size: 11px; font-weight : bold; + background-color: #006699; height: 25px; + background-image: url(images/cellpic3.gif); +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); + background-color:#D1D7DC; border: #FFFFFF; border-style: solid; height: 28px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; border-style: solid; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #D1D7DC; border: #FFFFFF; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #DD6900; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #006699; } +a.mainmenu:hover{ text-decoration: underline; color : #DD6900; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #006699} +a.cattitle { text-decoration: none; color : #006699; } +a.cattitle:hover{ text-decoration: underline; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #006699; } +a.forumlink { text-decoration: none; color : #006699; } +a.forumlink:hover{ text-decoration: underline; color : #DD6900; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #006699; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #006699; } +a.topictitle:visited { text-decoration: none; color : #5493B4; } +a.topictitle:hover { text-decoration: underline; color : #DD6900; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;} +a.postlink:link { text-decoration: none; color : #006699 } +a.postlink:visited { text-decoration: none; color : #5493B4; } +a.postlink:hover { text-decoration: underline; color : #DD6900} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright { color: #444444; text-decoration: none;} +a.copyright:hover { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #FFFFFF; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #EFEFEF; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #DEE3E7; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2/templates/subSilver/temp/header.tpl b/phpBB2/templates/subSilver/temp/header.tpl new file mode 100644 index 0000000..c037df0 --- /dev/null +++ b/phpBB2/templates/subSilver/temp/header.tpl @@ -0,0 +1,29 @@ + + + + + + + + + + + +
    + + +Home +About me +Forum +News +Pictures +Search + + +
    + + + +
    +
    + diff --git a/phpBB2/templates/subSilver/temp/index_body.tpl b/phpBB2/templates/subSilver/temp/index_body.tpl new file mode 100644 index 0000000..86da30d --- /dev/null +++ b/phpBB2/templates/subSilver/temp/index_body.tpl @@ -0,0 +1,103 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2/templates/subSilver/temp/overall_footer.tpl b/phpBB2/templates/subSilver/temp/overall_footer.tpl new file mode 100644 index 0000000..91ad361 --- /dev/null +++ b/phpBB2/templates/subSilver/temp/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +
    +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO}
    + + + +
  • + + diff --git a/phpBB2/templates/subSilver/temp/overall_header.tpl b/phpBB2/templates/subSilver/temp/overall_header.tpl new file mode 100644 index 0000000..5a57a97 --- /dev/null +++ b/phpBB2/templates/subSilver/temp/overall_header.tpl @@ -0,0 +1,252 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/viewtopic_poll_result.tpl b/phpBB2/templates/subSilver/viewtopic_poll_result.tpl new file mode 100644 index 0000000..45d11ea --- /dev/null +++ b/phpBB2/templates/subSilver/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + + + diff --git a/phpBB2/viewforum.php b/phpBB2/viewforum.php new file mode 100644 index 0000000..69b76a7 --- /dev/null +++ b/phpBB2/viewforum.php @@ -0,0 +1,696 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); + } +} +else +{ + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); +} + +// +// If the query doesn't return any rows this isn't a valid forum. Inform +// the user. +// +if ( !($forum_row = $db->sql_fetchrow($result)) ) +{ + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// +// Start auth check +// +$is_auth = array(); +$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row); + +if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] ) +{ + if ( !$userdata['session_logged_in'] ) + { + $redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' ); + redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true)); + } + // + // The user is not authed to read this forum ... + // + $message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End of auth check +// + +// +// Handle marking posts +// +if ( $mark_read == 'topics' ) +{ + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT MAX(post_time) AS last_post + FROM " . POSTS_TABLE . " + WHERE forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + + if ( ( count($tracking_forums) + count($tracking_topics) ) >= 150 && empty($tracking_forums[$forum_id]) ) + { + asort($tracking_forums); + unset($tracking_forums[key($tracking_forums)]); + } + + if ( $row['last_post'] > $userdata['user_lastvisit'] ) + { + $tracking_forums[$forum_id] = time(); + + setcookie($board_config['cookie_name'] . '_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + } + + $message = $lang['Topics_marked_read'] . '

    ' . sprintf($lang['Click_return_forum'], '', ' '); + message_die(GENERAL_MESSAGE, $message); +} +// +// End handle marking posts +// + +$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : ''; +$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : ''; + +// +// Do the forum Prune +// +if ( $is_auth['auth_mod'] && $board_config['prune_enable'] ) +{ + if ( $forum_row['prune_next'] < time() && $forum_row['prune_enable'] ) + { + include($phpbb_root_path . 'includes/prune.'.$phpEx); + require($phpbb_root_path . 'includes/functions_admin.'.$phpEx); + auto_prune($forum_id); + } +} +// +// End of forum prune +// + +// +// Obtain list of moderators of each forum +// First users, then groups ... broken into two queries +// +$sql = "SELECT u.user_id, u.username + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u + WHERE aa.forum_id = $forum_id + AND aa.auth_mod = " . TRUE . " + AND g.group_single_user = 1 + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + AND u.user_id = ug.user_id + GROUP BY u.user_id, u.username + ORDER BY u.user_id"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); +} + +$moderators = array(); +while( $row = $db->sql_fetchrow($result) ) +{ + $moderators[] = '' . $row['username'] . ''; +} + +$sql = "SELECT g.group_id, g.group_name + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE aa.forum_id = $forum_id + AND aa.auth_mod = " . TRUE . " + AND g.group_single_user = 0 + AND g.group_type <> ". GROUP_HIDDEN ." + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + GROUP BY g.group_id, g.group_name + ORDER BY g.group_id"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); +} + +while( $row = $db->sql_fetchrow($result) ) +{ + $moderators[] = '' . $row['group_name'] . ''; +} + +$l_moderators = ( count($moderators) == 1 ) ? $lang['Moderator'] : $lang['Moderators']; +$forum_moderators = ( count($moderators) ) ? implode(', ', $moderators) : $lang['None']; +unset($moderators); + +// +// Generate a 'Show topics in previous x days' select box. If the topicsdays var is sent +// then get it's value, find the number of topics with dates newer than it (to properly +// handle pagination) and alter the main query +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Topics'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +if ( !empty($HTTP_POST_VARS['topicdays']) || !empty($HTTP_GET_VARS['topicdays']) ) +{ + $topic_days = ( !empty($HTTP_POST_VARS['topicdays']) ) ? intval($HTTP_POST_VARS['topicdays']) : intval($HTTP_GET_VARS['topicdays']); + $min_topic_time = time() - ($topic_days * 86400); + + $sql = "SELECT COUNT(t.topic_id) AS forum_topics + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE t.forum_id = $forum_id + AND p.post_id = t.topic_last_post_id + AND p.post_time >= $min_topic_time"; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain limited topics count information', '', __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $topics_count = ( $row['forum_topics'] ) ? $row['forum_topics'] : 1; + $limit_topics_time = "AND p.post_time >= $min_topic_time"; + + if ( !empty($HTTP_POST_VARS['topicdays']) ) + { + $start = 0; + } +} +else +{ + $topics_count = ( $forum_row['forum_topics'] ) ? $forum_row['forum_topics'] : 1; + + $limit_topics_time = ''; + $topic_days = 0; +} + +$select_topic_days = ''; + + +// +// All announcement data, this keeps announcements +// on each viewforum page ... +// +$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username + FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2 + WHERE t.forum_id = $forum_id + AND t.topic_poster = u.user_id + AND p.post_id = t.topic_last_post_id + AND p.poster_id = u2.user_id + AND t.topic_type = " . POST_ANNOUNCE . " + ORDER BY t.topic_last_post_id DESC "; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); +} + +$topic_rowset = array(); +$total_announcements = 0; +while( $row = $db->sql_fetchrow($result) ) +{ + $topic_rowset[] = $row; + $total_announcements++; +} + +$db->sql_freeresult($result); + +// +// Grab all the basic data (all topics except announcements) +// for this forum +// +$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time + FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2 + WHERE t.forum_id = $forum_id + AND t.topic_poster = u.user_id + AND p.post_id = t.topic_first_post_id + AND p2.post_id = t.topic_last_post_id + AND u2.user_id = p2.poster_id + AND t.topic_type <> " . POST_ANNOUNCE . " + $limit_topics_time + ORDER BY t.topic_type DESC, t.topic_last_post_id DESC + LIMIT $start, ".$board_config['topics_per_page']; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); +} + +$total_topics = 0; +while( $row = $db->sql_fetchrow($result) ) +{ + $topic_rowset[] = $row; + $total_topics++; +} + +$db->sql_freeresult($result); + +// +// Total topics ... +// +$total_topics += $total_announcements; + +// +// Define censored word matches +// +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// Post URL generation for templating vars +// +$template->assign_vars(array( + 'L_DISPLAY_TOPICS' => $lang['Display_topics'], + + 'U_POST_NEW_TOPIC' => append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id"), + + 'S_SELECT_TOPIC_DAYS' => $select_topic_days, + 'S_POST_DAYS_ACTION' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&start=$start")) +); + +// +// User authorisation levels output +// +$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '
    '; + +if ( $is_auth['auth_mod'] ) +{ + $s_auth_can .= sprintf($lang['Rules_moderate'], "', ''); +} + +// +// Mozilla navigation bar +// +$nav_links['up'] = array( + 'url' => append_sid('index.'.$phpEx), + 'title' => sprintf($lang['Forum_Index'], $board_config['sitename']) +); + +// +// Dump out the page header and load viewforum template +// +define('SHOW_ONLINE', true); +$page_title = $lang['View_forum'] . ' - ' . $forum_row['forum_name']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'viewforum_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'FORUM_ID' => $forum_id, + 'FORUM_NAME' => $forum_row['forum_name'], + 'MODERATORS' => $forum_moderators, + 'POST_IMG' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'], + + 'FOLDER_IMG' => $images['folder'], + 'FOLDER_NEW_IMG' => $images['folder_new'], + 'FOLDER_HOT_IMG' => $images['folder_hot'], + 'FOLDER_HOT_NEW_IMG' => $images['folder_hot_new'], + 'FOLDER_LOCKED_IMG' => $images['folder_locked'], + 'FOLDER_LOCKED_NEW_IMG' => $images['folder_locked_new'], + 'FOLDER_STICKY_IMG' => $images['folder_sticky'], + 'FOLDER_STICKY_NEW_IMG' => $images['folder_sticky_new'], + 'FOLDER_ANNOUNCE_IMG' => $images['folder_announce'], + 'FOLDER_ANNOUNCE_NEW_IMG' => $images['folder_announce_new'], + + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_VIEWS' => $lang['Views'], + 'L_POSTS' => $lang['Posts'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_MODERATOR' => $l_moderators, + 'L_MARK_TOPICS_READ' => $lang['Mark_all_topics'], + 'L_POST_NEW_TOPIC' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'], + 'L_NO_NEW_POSTS' => $lang['No_new_posts'], + 'L_NEW_POSTS' => $lang['New_posts'], + 'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], + 'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], + 'L_NO_NEW_POSTS_HOT' => $lang['No_new_posts_hot'], + 'L_NEW_POSTS_HOT' => $lang['New_posts_hot'], + 'L_ANNOUNCEMENT' => $lang['Post_Announcement'], + 'L_STICKY' => $lang['Post_Sticky'], + 'L_POSTED' => $lang['Posted'], + 'L_JOINED' => $lang['Joined'], + 'L_AUTHOR' => $lang['Author'], + + 'S_AUTH_LIST' => $s_auth_can, + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id"), + + 'U_MARK_READ' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&mark=topics")) +); +// +// End header +// + +// +// Okay, lets dump out the page ... +// +if( $total_topics ) +{ + for($i = 0; $i < $total_topics; $i++) + { + $topic_id = $topic_rowset[$i]['topic_id']; + + $topic_title = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_rowset[$i]['topic_title']) : $topic_rowset[$i]['topic_title']; + + $replies = $topic_rowset[$i]['topic_replies']; + + $topic_type = $topic_rowset[$i]['topic_type']; + + if( $topic_type == POST_ANNOUNCE ) + { + $topic_type = $lang['Topic_Announcement'] . ' '; + } + else if( $topic_type == POST_STICKY ) + { + $topic_type = $lang['Topic_Sticky'] . ' '; + } + else + { + $topic_type = ''; + } + + if( $topic_rowset[$i]['topic_vote'] ) + { + $topic_type .= $lang['Topic_Poll'] . ' '; + } + + if( $topic_rowset[$i]['topic_status'] == TOPIC_MOVED ) + { + $topic_type = $lang['Topic_Moved'] . ' '; + $topic_id = $topic_rowset[$i]['topic_moved_id']; + + $folder_image = $images['folder']; + $folder_alt = $lang['Topics_Moved']; + $newest_post_img = ''; + } + else + { + if( $topic_rowset[$i]['topic_type'] == POST_ANNOUNCE ) + { + $folder = $images['folder_announce']; + $folder_new = $images['folder_announce_new']; + } + else if( $topic_rowset[$i]['topic_type'] == POST_STICKY ) + { + $folder = $images['folder_sticky']; + $folder_new = $images['folder_sticky_new']; + } + else if( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) + { + $folder = $images['folder_locked']; + $folder_new = $images['folder_locked_new']; + } + else + { + if($replies >= $board_config['hot_threshold']) + { + $folder = $images['folder_hot']; + $folder_new = $images['folder_hot_new']; + } + else + { + $folder = $images['folder']; + $folder_new = $images['folder_new']; + } + } + + $newest_post_img = ''; + if( $userdata['session_logged_in'] ) + { + if( $topic_rowset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + if( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + $unread_topics = true; + + if( !empty($tracking_topics[$topic_id]) ) + { + if( $tracking_topics[$topic_id] >= $topic_rowset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if( !empty($tracking_forums[$forum_id]) ) + { + if( $tracking_forums[$forum_id] >= $topic_rowset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + if( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] >= $topic_rowset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if( $unread_topics ) + { + $folder_image = $folder_new; + $folder_alt = $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + else + { + $folder_image = $folder; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder_new; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $newest_post_img = ''; + } + } + + if( ( $replies + 1 ) > $board_config['posts_per_page'] ) + { + $total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] ); + $goto_page = ' [ ' . $lang['Goto_page'] . '' . $lang['Goto_page'] . ': '; + + $times = 1; + for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page']) + { + $goto_page .= '' . $times . ''; + if( $times == 1 && $total_pages > 4 ) + { + $goto_page .= ' ... '; + $times = $total_pages - 3; + $j += ( $total_pages - 4 ) * $board_config['posts_per_page']; + } + else if ( $times < $total_pages ) + { + $goto_page .= ', '; + } + $times++; + } + $goto_page .= ' ] '; + } + else + { + $goto_page = ''; + } + + $view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"); + + $topic_author = ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? $topic_rowset[$i]['username'] : ( ( $topic_rowset[$i]['post_username'] != '' ) ? $topic_rowset[$i]['post_username'] : $lang['Guest'] ); + + $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + + $first_post_time = create_date($board_config['default_dateformat'], $topic_rowset[$i]['topic_time'], $board_config['board_timezone']); + + $last_post_time = create_date($board_config['default_dateformat'], $topic_rowset[$i]['post_time'], $board_config['board_timezone']); + + $last_post_author = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '' . $topic_rowset[$i]['user2'] . ''; + + $last_post_url = '' . $lang['View_latest_post'] . ''; + + $views = $topic_rowset[$i]['topic_views']; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('topicrow', array( + 'ROW_COLOR' => $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, + 'TOPIC_FOLDER_IMG' => $folder_image, + 'TOPIC_AUTHOR' => $topic_author, + 'GOTO_PAGE' => $goto_page, + 'REPLIES' => $replies, + 'NEWEST_POST_IMG' => $newest_post_img, + 'TOPIC_TITLE' => $topic_title, + 'TOPIC_TYPE' => $topic_type, + 'VIEWS' => $views, + 'FIRST_POST_TIME' => $first_post_time, + 'LAST_POST_TIME' => $last_post_time, + 'LAST_POST_AUTHOR' => $last_post_author, + 'LAST_POST_IMG' => $last_post_url, + + 'L_TOPIC_FOLDER_ALT' => $folder_alt, + + 'U_VIEW_TOPIC' => $view_topic_url) + ); + } + + $topics_count -= $total_announcements; + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $topics_count / $board_config['topics_per_page'] )), + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); +} +else +{ + // + // No topics + // + $no_topics_msg = ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['No_topics_post_one']; + $template->assign_vars(array( + 'L_NO_TOPICS' => $no_topics_msg) + ); + + $template->assign_block_vars('switch_no_topics', array() ); + +} + +// +// Parse the page and print +// +$template->pparse('body'); + +// +// Page footer +// +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/viewonline.php b/phpBB2/viewonline.php new file mode 100644 index 0000000..6c13b08 --- /dev/null +++ b/phpBB2/viewonline.php @@ -0,0 +1,289 @@ +set_filenames(array( + 'body' => 'viewonline_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_WHOSONLINE' => $lang['Who_is_Online'], + 'L_ONLINE_EXPLAIN' => $lang['Online_explain'], + 'L_USERNAME' => $lang['Username'], + 'L_FORUM_LOCATION' => $lang['Forum_Location'], + 'L_LAST_UPDATE' => $lang['Last_updated']) +); + +// +// Forum info +// +$sql = "SELECT forum_name, forum_id + FROM " . FORUMS_TABLE; +if ( $result = $db->sql_query($sql) ) +{ + while( $row = $db->sql_fetchrow($result) ) + { + $forum_data[$row['forum_id']] = $row['forum_name']; + } +} +else +{ + message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql); +} + +// +// Get auth data +// +$is_auth_ary = array(); +$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); + +// +// Get user list +// +$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip + FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s + WHERE u.user_id = s.session_user_id + AND s.session_time >= ".( time() - 300 ) . " + ORDER BY u.username ASC, s.session_ip ASC"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql); +} + +$guest_users = 0; +$registered_users = 0; +$hidden_users = 0; + +$reg_counter = 0; +$guest_counter = 0; +$prev_user = 0; +$prev_ip = ''; + +while ( $row = $db->sql_fetchrow($result) ) +{ + $view_online = false; + + if ( $row['session_logged_in'] ) + { + $user_id = $row['user_id']; + + if ( $user_id != $prev_user ) + { + $username = $row['username']; + + $style_color = ''; + if ( $row['user_level'] == ADMIN ) + { + $username = '' . $username . ''; + } + else if ( $row['user_level'] == MOD ) + { + $username = '' . $username . ''; + } + + if ( !$row['user_allow_viewonline'] ) + { + $view_online = ( $userdata['user_level'] == ADMIN ) ? true : false; + $hidden_users++; + + $username = '' . $username . ''; + } + else + { + $view_online = true; + $registered_users++; + } + + $which_counter = 'reg_counter'; + $which_row = 'reg_user_row'; + $prev_user = $user_id; + } + } + else + { + if ( $row['session_ip'] != $prev_ip ) + { + $username = $lang['Guest']; + $view_online = true; + $guest_users++; + + $which_counter = 'guest_counter'; + $which_row = 'guest_user_row'; + } + } + + $prev_ip = $row['session_ip']; + + if ( $view_online ) + { + if ( $row['session_page'] < 1 || !$is_auth_ary[$row['session_page']]['auth_view'] ) + { + switch( $row['session_page'] ) + { + case PAGE_INDEX: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx"; + break; + case PAGE_POSTING: + $location = $lang['Posting_message']; + $location_url = "index.$phpEx"; + break; + case PAGE_LOGIN: + $location = $lang['Logging_on']; + $location_url = "index.$phpEx"; + break; + case PAGE_SEARCH: + $location = $lang['Searching_forums']; + $location_url = "search.$phpEx"; + break; + case PAGE_PROFILE: + $location = $lang['Viewing_profile']; + $location_url = "index.$phpEx"; + break; + case PAGE_VIEWONLINE: + $location = $lang['Viewing_online']; + $location_url = "viewonline.$phpEx"; + break; + case PAGE_VIEWMEMBERS: + $location = $lang['Viewing_member_list']; + $location_url = "memberlist.$phpEx"; + break; + case PAGE_PRIVMSGS: + $location = $lang['Viewing_priv_msgs']; + $location_url = "privmsg.$phpEx"; + break; + case PAGE_FAQ: + $location = $lang['Viewing_FAQ']; + $location_url = "faq.$phpEx"; + break; + default: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx"; + } + } + else + { + $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']); + $location = $forum_data[$row['session_page']]; + } + + $row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("$which_row", array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'LASTUPDATE' => create_date($board_config['default_dateformat'], $row['session_time'], $board_config['board_timezone']), + 'FORUM_LOCATION' => $location, + + 'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id), + 'U_FORUM_LOCATION' => append_sid($location_url)) + ); + + $$which_counter++; + } +} + +if( $registered_users == 0 ) +{ + $l_r_user_s = $lang['Reg_users_zero_online']; +} +else if( $registered_users == 1 ) +{ + $l_r_user_s = $lang['Reg_user_online']; +} +else +{ + $l_r_user_s = $lang['Reg_users_online']; +} + +if( $hidden_users == 0 ) +{ + $l_h_user_s = $lang['Hidden_users_zero_online']; +} +else if( $hidden_users == 1 ) +{ + $l_h_user_s = $lang['Hidden_user_online']; +} +else +{ + $l_h_user_s = $lang['Hidden_users_online']; +} + +if( $guest_users == 0 ) +{ + $l_g_user_s = $lang['Guest_users_zero_online']; +} +else if( $guest_users == 1 ) +{ + $l_g_user_s = $lang['Guest_user_online']; +} +else +{ + $l_g_user_s = $lang['Guest_users_online']; +} + +$template->assign_vars(array( + 'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users), + 'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users)) +); + +if ( $registered_users + $hidden_users == 0 ) +{ + $template->assign_vars(array( + 'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing']) + ); +} + +if ( $guest_users == 0 ) +{ + $template->assign_vars(array( + 'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing']) + ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/viewtopic.php b/phpBB2/viewtopic.php new file mode 100644 index 0000000..0803a6f --- /dev/null +++ b/phpBB2/viewtopic.php @@ -0,0 +1,1214 @@ += u.user_lastvisit + ORDER BY p.post_time ASC + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit'); + } + + $post_id = $row['post_id']; + + if (isset($HTTP_GET_VARS['sid'])) + { + redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id"); + } + else + { + redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id"); + } + } + } + + redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true)); + } + else if ( $HTTP_GET_VARS['view'] == 'next' || $HTTP_GET_VARS['view'] == 'previous' ) + { + $sql_condition = ( $HTTP_GET_VARS['view'] == 'next' ) ? '>' : '<'; + $sql_ordering = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'ASC' : 'DESC'; + + $sql = "SELECT t.topic_id + FROM " . TOPICS_TABLE . " t, " . TOPICS_TABLE . " t2 + WHERE + t2.topic_id = $topic_id + AND t.forum_id = t2.forum_id + AND t.topic_moved_id = 0 + AND t.topic_last_post_id $sql_condition t2.topic_last_post_id + ORDER BY t.topic_last_post_id $sql_ordering + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $topic_id = intval($row['topic_id']); + } + else + { + $message = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'No_newer_topics' : 'No_older_topics'; + message_die(GENERAL_MESSAGE, $message); + } + } +} + +// +// This rather complex gaggle of code handles querying for topics but +// also allows for direct linking to a post (and the calculation of which +// page the post is on and the correct display of viewtopic) +// +$join_sql_table = (!$post_id) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 "; +$join_sql = (!$post_id) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id"; +$count_sql = (!$post_id) ? '' : ", COUNT(p2.post_id) AS prev_posts"; + +$order_sql = (!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC"; + +$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . " + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . " + WHERE $join_sql + AND f.forum_id = t.forum_id + $order_sql"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain topic information", '', __LINE__, __FILE__, $sql); +} + +if ( !($forum_topic_data = $db->sql_fetchrow($result)) ) +{ + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); +} + +$forum_id = intval($forum_topic_data['forum_id']); + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// +// Start auth check +// +$is_auth = array(); +$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data); + +if( !$is_auth['auth_view'] || !$is_auth['auth_read'] ) +{ + if ( !$userdata['session_logged_in'] ) + { + $redirect = ($post_id) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id"; + $redirect .= ($start) ? "&start=$start" : ''; + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true)); + } + + $message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End auth check +// + +$forum_name = $forum_topic_data['forum_name']; +$topic_title = $forum_topic_data['topic_title']; +$topic_id = intval($forum_topic_data['topic_id']); +$topic_time = $forum_topic_data['topic_time']; + +if ($post_id) +{ + $start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']); +} + +// +// Is user watching this thread? +// +if( $userdata['session_logged_in'] ) +{ + $can_watch_topic = TRUE; + + $sql = "SELECT notify_status + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain topic watch information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + $is_watching_topic = 0; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "DELETE $sql_priority FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not delete topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['No_longer_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = TRUE; + + if ( $row['notify_status'] ) + { + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "UPDATE $sql_priority " . TOPICS_WATCH_TABLE . " + SET notify_status = 0 + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not update topic watch information", '', __LINE__, __FILE__, $sql); + } + } + } + } + else + { + if ( isset($HTTP_GET_VARS['watch']) ) + { + if ( $HTTP_GET_VARS['watch'] == 'topic' ) + { + $is_watching_topic = TRUE; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "INSERT $sql_priority INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status) + VALUES (" . $userdata['user_id'] . ", $topic_id, 0)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not insert topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['You_are_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = 0; + } + } +} +else +{ + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&" . POST_TOPIC_URL . "=$topic_id&unwatch=topic", true)); + } + } + else + { + $can_watch_topic = 0; + $is_watching_topic = 0; + } +} + +// +// Generate a 'Show posts in previous x days' select box. If the postdays var is POSTed +// then get it's value, find the number of topics with dates newer than it (to properly +// handle pagination) and alter the main query +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) +{ + $post_days = ( !empty($HTTP_POST_VARS['postdays']) ) ? intval($HTTP_POST_VARS['postdays']) : intval($HTTP_GET_VARS['postdays']); + $min_post_time = time() - (intval($post_days) * 86400); + + $sql = "SELECT COUNT(p.post_id) AS num_posts + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE t.topic_id = $topic_id + AND p.topic_id = t.topic_id + AND p.post_time >= $min_post_time"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain limited topics count information", '', __LINE__, __FILE__, $sql); + } + + $total_replies = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_posts']) : 0; + + $limit_posts_time = "AND p.post_time >= $min_post_time "; + + if ( !empty($HTTP_POST_VARS['postdays'])) + { + $start = 0; + } +} +else +{ + $total_replies = intval($forum_topic_data['topic_replies']) + 1; + + $limit_posts_time = ''; + $post_days = 0; +} + +$select_post_days = ''; + +// +// Decide how to order the post display +// +if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) ) +{ + $post_order = (!empty($HTTP_POST_VARS['postorder'])) ? htmlspecialchars($HTTP_POST_VARS['postorder']) : htmlspecialchars($HTTP_GET_VARS['postorder']); + $post_time_order = ($post_order == "asc") ? "ASC" : "DESC"; +} +else +{ + $post_order = 'asc'; + $post_time_order = 'ASC'; +} + +$select_post_order = ''; + +// +// Go ahead and pull all data for this topic +// +$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + $limit_posts_time + AND pt.post_id = p.post_id + AND u.user_id = p.poster_id + ORDER BY p.post_time $post_time_order + LIMIT $start, ".$board_config['posts_per_page']; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql); +} + +$postrow = array(); +if ($row = $db->sql_fetchrow($result)) +{ + do + { + $postrow[] = $row; + } + while ($row = $db->sql_fetchrow($result)); + $db->sql_freeresult($result); + + $total_posts = count($postrow); +} +else +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); +} + +$resync = FALSE; +if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrow)) +{ + $resync = TRUE; +} +elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies']) +{ + $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']); + if ($postrow[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrow) < $forum_topic_data['topic_replies']) + { + $resync = TRUE; + } +} +elseif (count($postrow) < $board_config['posts_per_page']) +{ + $resync = TRUE; +} + +if ($resync) +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id); + $row = $db->sql_fetchrow($result); + $total_replies = $row['total']; +} + +$sql = "SELECT * + FROM " . RANKS_TABLE . " + ORDER BY rank_special, rank_min"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql); +} + +$ranksrow = array(); +while ( $row = $db->sql_fetchrow($result) ) +{ + $ranksrow[] = $row; +} +$db->sql_freeresult($result); + +// +// Define censored word matches +// +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// Censor topic title +// +if ( count($orig_word) ) +{ + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); +} + +// +// Was a highlight request part of the URI? +// +$highlight_match = $highlight = ''; +if (isset($HTTP_GET_VARS['highlight'])) +{ + // Split words and phrases + $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight']))); + + for($i = 0; $i < sizeof($words); $i++) + { + if (trim($words[$i]) != '') + { + $highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', preg_quote($words[$i], '#')); + } + } + unset($words); + + $highlight = urlencode($HTTP_GET_VARS['highlight']); + $highlight_match = phpbb_rtrim($highlight_match, "\\"); +} + +// +// Post, reply and other URL generation for +// templating vars +// +$new_topic_url = append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id"); +$reply_topic_url = append_sid("posting.$phpEx?mode=reply&" . POST_TOPIC_URL . "=$topic_id"); +$view_forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"); +$view_prev_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=previous"); +$view_next_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=next"); + +// +// Mozilla navigation bar +// +$nav_links['prev'] = array( + 'url' => $view_prev_topic_url, + 'title' => $lang['View_previous_topic'] +); +$nav_links['next'] = array( + 'url' => $view_next_topic_url, + 'title' => $lang['View_next_topic'] +); +$nav_links['up'] = array( + 'url' => $view_forum_url, + 'title' => $forum_name +); + +$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new']; +$reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['Reply_to_topic']; +$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new']; +$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic']; + +// +// Set a cookie for this topic +// +if ( $userdata['session_logged_in'] ) +{ + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else + { + $topic_last_read = $userdata['user_lastvisit']; + } + + if ( count($tracking_topics) >= 150 && empty($tracking_topics[$topic_id]) ) + { + asort($tracking_topics); + unset($tracking_topics[key($tracking_topics)]); + } + + $tracking_topics[$topic_id] = time(); + + setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); +} + +// +// Load templates +// +$template->set_filenames(array( + 'body' => 'viewtopic_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx, $forum_id); + +// +// Output page header +// +$page_title = $lang['View_topic'] .' - ' . $topic_title; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +// +// User authorisation levels output +// +$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '
    '; + +$topic_mod = ''; + +if ( $is_auth['auth_mod'] ) +{ + $s_auth_can .= sprintf($lang['Rules_moderate'], "', ''); + + $topic_mod .= "' . $lang['Delete_topic'] . ' '; + + $topic_mod .= "' . $lang['Move_topic'] . ' '; + + $topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "' . $lang['Lock_topic'] . ' ' : "' . $lang['Unlock_topic'] . ' '; + + $topic_mod .= "' . $lang['Split_topic'] . ' '; +} + +// +// Topic watch information +// +$s_watching_topic = ''; +if ( $can_watch_topic ) +{ + if ( $is_watching_topic ) + { + $s_watching_topic = "' . $lang['Stop_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "' . $lang['Stop_watching_topic'] . '' : ''; + } + else + { + $s_watching_topic = "' . $lang['Start_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "' . $lang['Start_watching_topic'] . '' : ''; + } +} + +// +// If we've got a hightlight set pass it on to pagination, +// I get annoyed when I lose my highlight after the first page. +// +$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start); + +// +// Send vars to template +// +$template->assign_vars(array( + 'FORUM_ID' => $forum_id, + 'FORUM_NAME' => $forum_name, + 'TOPIC_ID' => $topic_id, + 'TOPIC_TITLE' => $topic_title, + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )), + + 'POST_IMG' => $post_img, + 'REPLY_IMG' => $reply_img, + + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_POSTED' => $lang['Posted'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_VIEW_NEXT_TOPIC' => $lang['View_next_topic'], + 'L_VIEW_PREVIOUS_TOPIC' => $lang['View_previous_topic'], + 'L_POST_NEW_TOPIC' => $post_alt, + 'L_POST_REPLY_TOPIC' => $reply_alt, + 'L_BACK_TO_TOP' => $lang['Back_to_top'], + 'L_DISPLAY_POSTS' => $lang['Display_posts'], + 'L_LOCK_TOPIC' => $lang['Lock_topic'], + 'L_UNLOCK_TOPIC' => $lang['Unlock_topic'], + 'L_MOVE_TOPIC' => $lang['Move_topic'], + 'L_SPLIT_TOPIC' => $lang['Split_topic'], + 'L_DELETE_TOPIC' => $lang['Delete_topic'], + 'L_GOTO_PAGE' => $lang['Goto_page'], + + 'S_TOPIC_LINK' => POST_TOPIC_URL, + 'S_SELECT_POST_DAYS' => $select_post_days, + 'S_SELECT_POST_ORDER' => $select_post_order, + 'S_POST_DAYS_ACTION' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id . "&start=$start"), + 'S_AUTH_LIST' => $s_auth_can, + 'S_TOPIC_ADMIN' => $topic_mod, + 'S_WATCH_TOPIC' => $s_watching_topic, + 'S_WATCH_TOPIC_IMG' => $s_watching_topic_img, + + 'U_VIEW_TOPIC' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start&postdays=$post_days&postorder=$post_order&highlight=$highlight"), + 'U_VIEW_FORUM' => $view_forum_url, + 'U_VIEW_OLDER_TOPIC' => $view_prev_topic_url, + 'U_VIEW_NEWER_TOPIC' => $view_next_topic_url, + 'U_POST_NEW_TOPIC' => $new_topic_url, + 'U_POST_REPLY_TOPIC' => $reply_topic_url) +); + +// +// Does this topic contain a poll? +// +if ( !empty($forum_topic_data['topic_vote']) ) +{ + $s_hidden_fields = ''; + + $sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + ORDER BY vr.vote_option_id ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + if ( $vote_info = $db->sql_fetchrowset($result) ) + { + $db->sql_freeresult($result); + $vote_options = count($vote_info); + + $vote_id = $vote_info[0]['vote_id']; + $vote_title = $vote_info[0]['vote_text']; + + $sql = "SELECT vote_id + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $vote_id + AND vote_user_id = " . intval($userdata['user_id']); + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain user vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + $user_voted = ( $row = $db->sql_fetchrow($result) ) ? TRUE : 0; + $db->sql_freeresult($result); + + if ( isset($HTTP_GET_VARS['vote']) || isset($HTTP_POST_VARS['vote']) ) + { + $view_result = ( ( ( isset($HTTP_GET_VARS['vote']) ) ? $HTTP_GET_VARS['vote'] : $HTTP_POST_VARS['vote'] ) == 'viewresult' ) ? TRUE : 0; + } + else + { + $view_result = 0; + } + + $poll_expired = ( $vote_info[0]['vote_length'] ) ? ( ( $vote_info[0]['vote_start'] + $vote_info[0]['vote_length'] < time() ) ? TRUE : 0 ) : 0; + + if ( $user_voted || $view_result || $poll_expired || !$is_auth['auth_vote'] || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_result.tpl') + ); + + $vote_results_sum = 0; + + for($i = 0; $i < $vote_options; $i++) + { + $vote_results_sum += $vote_info[$i]['vote_result']; + } + + $vote_graphic = 0; + $vote_graphic_max = count($images['voting_graphic']); + + for($i = 0; $i < $vote_options; $i++) + { + $vote_percent = ( $vote_results_sum > 0 ) ? $vote_info[$i]['vote_result'] / $vote_results_sum : 0; + $vote_graphic_length = round($vote_percent * $board_config['vote_graphic_length']); + + $vote_graphic_img = $images['voting_graphic'][$vote_graphic]; + $vote_graphic = ($vote_graphic < $vote_graphic_max - 1) ? $vote_graphic + 1 : 0; + + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text'], + 'POLL_OPTION_RESULT' => $vote_info[$i]['vote_result'], + 'POLL_OPTION_PERCENT' => sprintf("%.1d%%", ($vote_percent * 100)), + + 'POLL_OPTION_IMG' => $vote_graphic_img, + 'POLL_OPTION_IMG_WIDTH' => $vote_graphic_length) + ); + } + + $template->assign_vars(array( + 'L_TOTAL_VOTES' => $lang['Total_votes'], + 'TOTAL_VOTES' => $vote_results_sum) + ); + + } + else + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_ballot.tpl') + ); + + for($i = 0; $i < $vote_options; $i++) + { + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_ID' => $vote_info[$i]['vote_option_id'], + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text']) + ); + } + + $template->assign_vars(array( + 'L_SUBMIT_VOTE' => $lang['Submit_vote'], + 'L_VIEW_RESULTS' => $lang['View_results'], + + 'U_VIEW_RESULTS' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&vote=viewresult")) + ); + + $s_hidden_fields = ''; + } + + if ( count($orig_word) ) + { + $vote_title = preg_replace($orig_word, $replacement_word, $vote_title); + } + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + 'POLL_QUESTION' => $vote_title, + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_POLL_ACTION' => append_sid("posting.$phpEx?mode=vote&" . POST_TOPIC_URL . "=$topic_id")) + ); + + $template->assign_var_from_handle('POLL_DISPLAY', 'pollbox'); + } +} + +// +// Update the topic view counter +// +$sql = "UPDATE " . TOPICS_TABLE . " + SET topic_views = topic_views + 1 + WHERE topic_id = $topic_id"; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Could not update topic views.", '', __LINE__, __FILE__, $sql); +} + +// +// Okay, let's do the loop, yeah come on baby let's do the loop +// and it goes like this ... +// +for($i = 0; $i < $total_posts; $i++) +{ + $poster_id = $postrow[$i]['user_id']; + $poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $postrow[$i]['username']; + + $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']); + + $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : ''; + + $poster_from = ( $postrow[$i]['user_from'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : ''; + + $poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : ''; + + $poster_avatar = ''; + if ( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS && $postrow[$i]['user_allowavatar'] ) + { + switch( $postrow[$i]['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + // + // Define the little post icon + // + if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read ) + { + $mini_post_img = $images['icon_minipost_new']; + $mini_post_alt = $lang['New_post']; + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + + $mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id']; + + // + // Generate ranks, set them to empty string initially. + // + $poster_rank = ''; + $rank_image = ''; + if ( $postrow[$i]['user_id'] == ANONYMOUS ) + { + } + else if ( $postrow[$i]['user_rank'] ) + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + else + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + + // + // Handle anon users posting with usernames + // + if ( $poster_id == ANONYMOUS && $postrow[$i]['post_username'] != '' ) + { + $poster = $postrow[$i]['post_username']; + $poster_rank = $lang['Guest']; + } + + $temp_url = ''; + + if ( $poster_id != ANONYMOUS ) + { + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$poster_id"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $poster_id) : 'mailto:' . $postrow[$i]['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ''; + $email = ''; + } + + $www_img = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($postrow[$i]['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $msn_img = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + } + else + { + $profile_img = ''; + $profile = ''; + $pm_img = ''; + $pm = ''; + $email_img = ''; + $email = ''; + $www_img = ''; + $www = ''; + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + $aim_img = ''; + $aim = ''; + $msn_img = ''; + $msn = ''; + $yim_img = ''; + $yim = ''; + } + + $temp_url = append_sid("posting.$phpEx?mode=quote&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $quote_img = '' . $lang['Reply_with_quote'] . ''; + $quote = '' . $lang['Reply_with_quote'] . ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($postrow[$i]['username']) . "&showresults=posts"); + $search_img = '' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . ''; + $search = '' . sprintf($lang['Search_user_posts'], $postrow[$i]['username']) . ''; + + if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] ) + { + $temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $edit_img = '' . $lang['Edit_delete_post'] . ''; + $edit = '' . $lang['Edit_delete_post'] . ''; + } + else + { + $edit_img = ''; + $edit = ''; + } + + if ( $is_auth['auth_mod'] ) + { + $temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id']; + $ip_img = '' . $lang['View_IP'] . ''; + $ip = '' . $lang['View_IP'] . ''; + + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $ip_img = ''; + $ip = ''; + + if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'] ) + { + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $delpost_img = ''; + $delpost = ''; + } + } + + $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : ''; + + $message = $postrow[$i]['post_text']; + $bbcode_uid = $postrow[$i]['bbcode_uid']; + + $user_sig = ( $postrow[$i]['enable_sig'] && $postrow[$i]['user_sig'] != '' && $board_config['allow_sig'] ) ? $postrow[$i]['user_sig'] : ''; + $user_sig_bbcode_uid = $postrow[$i]['user_sig_bbcode_uid']; + + // + // Note! The order used for parsing the message _is_ important, moving things around could break any + // output + // + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] || !$userdata['user_allowhtml']) + { + if ( $user_sig != '' ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message); + } + } + + // + // Parse message and/or sig for BBCode if reqd + // + if ($user_sig != '' && $user_sig_bbcode_uid != '') + { + $user_sig = ($board_config['allow_bbcode']) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace("/\:$user_sig_bbcode_uid/si", '', $user_sig); + } + + if ($bbcode_uid != '') + { + $message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message); + } + + if ( $user_sig != '' ) + { + $user_sig = make_clickable($user_sig); + } + $message = make_clickable($message); + + // + // Parse smilies + // + if ( $board_config['allow_smilies'] ) + { + if ( $postrow[$i]['user_allowsmile'] && $user_sig != '' ) + { + $user_sig = smilies_pass($user_sig); + } + + if ( $postrow[$i]['enable_smilies'] ) + { + $message = smilies_pass($message); + } + } + + // + // Highlight active words (primarily for search) + // + if ($highlight_match) + { + // This has been back-ported from 3.0 CVS + $message = preg_replace('#(?!<.*)(?]*>)#i', '\1', $message); + } + + // + // Replace naughty words + // + if (count($orig_word)) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + + if ($user_sig != '') + { + $user_sig = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1)); + } + + $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace newlines (we use this rather than nl2br because + // till recently it wasn't XHTML compliant) + // + if ( $user_sig != '' ) + { + $user_sig = '
    _________________
    ' . str_replace("\n", "\n
    \n", $user_sig); + } + + $message = str_replace("\n", "\n
    \n", $message); + + // + // Editing information + // + if ( $postrow[$i]['post_edit_count'] ) + { + $l_edit_time_total = ( $postrow[$i]['post_edit_count'] == 1 ) ? $lang['Edited_time_total'] : $lang['Edited_times_total']; + + $l_edited_by = '

    ' . sprintf($l_edit_time_total, $poster, create_date($board_config['default_dateformat'], $postrow[$i]['post_edit_time'], $board_config['board_timezone']), $postrow[$i]['post_edit_count']); + } + else + { + $l_edited_by = ''; + } + + // + // Again this will be handled by the templating + // code at some point + // + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'POSTER_NAME' => $poster, + 'POSTER_RANK' => $poster_rank, + 'RANK_IMAGE' => $rank_image, + 'POSTER_JOINED' => $poster_joined, + 'POSTER_POSTS' => $poster_posts, + 'POSTER_FROM' => $poster_from, + 'POSTER_AVATAR' => $poster_avatar, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + 'SIGNATURE' => $user_sig, + 'EDITED_MESSAGE' => $l_edited_by, + + 'MINI_POST_IMG' => $mini_post_img, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + 'EDIT_IMG' => $edit_img, + 'EDIT' => $edit, + 'QUOTE_IMG' => $quote_img, + 'QUOTE' => $quote, + 'IP_IMG' => $ip_img, + 'IP' => $ip, + 'DELETE_IMG' => $delpost_img, + 'DELETE' => $delpost, + + 'L_MINI_POST_ALT' => $mini_post_alt, + + 'U_MINI_POST' => $mini_post_url, + 'U_POST_ID' => $postrow[$i]['post_id']) + ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/viewtopic.php.backup b/phpBB2/viewtopic.php.backup new file mode 100644 index 0000000..0ce6b80 --- /dev/null +++ b/phpBB2/viewtopic.php.backup @@ -0,0 +1,1216 @@ += u.user_lastvisit + ORDER BY p.post_time ASC + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit'); + } + + $post_id = $row['post_id']; + + if (isset($HTTP_GET_VARS['sid'])) + { + redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id"); + } + else + { + redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id"); + } + } + } + + redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true)); + } + else if ( $HTTP_GET_VARS['view'] == 'next' || $HTTP_GET_VARS['view'] == 'previous' ) + { + $sql_condition = ( $HTTP_GET_VARS['view'] == 'next' ) ? '>' : '<'; + $sql_ordering = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'ASC' : 'DESC'; + + $sql = "SELECT t.topic_id + FROM " . TOPICS_TABLE . " t, " . TOPICS_TABLE . " t2 + WHERE + t2.topic_id = $topic_id + AND t.forum_id = t2.forum_id + AND t.topic_last_post_id $sql_condition t2.topic_last_post_id + ORDER BY t.topic_last_post_id $sql_ordering + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $topic_id = intval($row['topic_id']); + } + else + { + $message = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'No_newer_topics' : 'No_older_topics'; + message_die(GENERAL_MESSAGE, $message); + } + } +} + +// +// This rather complex gaggle of code handles querying for topics but +// also allows for direct linking to a post (and the calculation of which +// page the post is on and the correct display of viewtopic) +// +$join_sql_table = ( empty($post_id) ) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 "; +$join_sql = ( empty($post_id) ) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id"; +$count_sql = ( empty($post_id) ) ? '' : ", COUNT(p2.post_id) AS prev_posts"; + +$order_sql = ( empty($post_id) ) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC"; + +$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . " + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . " + WHERE $join_sql + AND f.forum_id = t.forum_id + $order_sql"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain topic information", '', __LINE__, __FILE__, $sql); +} + +if ( !($forum_topic_data = $db->sql_fetchrow($result)) ) +{ + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); +} + +$forum_id = intval($forum_topic_data['forum_id']); + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// +// Start auth check +// +$is_auth = array(); +$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data); + +if( !$is_auth['auth_view'] || !$is_auth['auth_read'] ) +{ + if ( !$userdata['session_logged_in'] ) + { + $redirect = ( isset($post_id) ) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id"; + $redirect .= ( isset($start) ) ? "&start=$start" : ''; + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true)); + } + + $message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End auth check +// + +$forum_name = $forum_topic_data['forum_name']; +$topic_title = $forum_topic_data['topic_title']; +$topic_id = intval($forum_topic_data['topic_id']); +$topic_time = $forum_topic_data['topic_time']; + +if ( !empty($post_id) ) +{ + $start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']); +} + +// +// Is user watching this thread? +// +if( $userdata['session_logged_in'] ) +{ + $can_watch_topic = TRUE; + + $sql = "SELECT notify_status + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain topic watch information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + $is_watching_topic = 0; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "DELETE $sql_priority FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not delete topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['No_longer_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = TRUE; + + if ( $row['notify_status'] ) + { + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "UPDATE $sql_priority " . TOPICS_WATCH_TABLE . " + SET notify_status = 0 + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not update topic watch information", '', __LINE__, __FILE__, $sql); + } + } + } + } + else + { + if ( isset($HTTP_GET_VARS['watch']) ) + { + if ( $HTTP_GET_VARS['watch'] == 'topic' ) + { + $is_watching_topic = TRUE; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "INSERT $sql_priority INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status) + VALUES (" . $userdata['user_id'] . ", $topic_id, 0)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not insert topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['You_are_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = 0; + } + } +} +else +{ + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&" . POST_TOPIC_URL . "=$topic_id&unwatch=topic", true)); + } + } + else + { + $can_watch_topic = 0; + $is_watching_topic = 0; + } +} + +// +// Generate a 'Show posts in previous x days' select box. If the postdays var is POSTed +// then get it's value, find the number of topics with dates newer than it (to properly +// handle pagination) and alter the main query +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) +{ + $post_days = ( !empty($HTTP_POST_VARS['postdays']) ) ? intval($HTTP_POST_VARS['postdays']) : intval($HTTP_GET_VARS['postdays']); + $min_post_time = time() - (intval($post_days) * 86400); + + $sql = "SELECT COUNT(p.post_id) AS num_posts + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE t.topic_id = $topic_id + AND p.topic_id = t.topic_id + AND p.post_time >= $min_post_time"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain limited topics count information", '', __LINE__, __FILE__, $sql); + } + + $total_replies = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_posts']) : 0; + + $limit_posts_time = "AND p.post_time >= $min_post_time "; + + if ( !empty($HTTP_POST_VARS['postdays'])) + { + $start = 0; + } +} +else +{ + $total_replies = intval($forum_topic_data['topic_replies']) + 1; + + $limit_posts_time = ''; + $post_days = 0; +} + +$select_post_days = ''; + +// +// Decide how to order the post display +// +if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) ) +{ + $post_order = (!empty($HTTP_POST_VARS['postorder'])) ? htmlspecialchars($HTTP_POST_VARS['postorder']) : htmlspecialchars($HTTP_GET_VARS['postorder']); + $post_time_order = ($post_order == "asc") ? "ASC" : "DESC"; +} +else +{ + $post_order = 'asc'; + $post_time_order = 'ASC'; +} + +$select_post_order = ''; + +// +// Go ahead and pull all data for this topic +// +$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + $limit_posts_time + AND pt.post_id = p.post_id + AND u.user_id = p.poster_id + ORDER BY p.post_time $post_time_order + LIMIT $start, ".$board_config['posts_per_page']; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql); +} + +$postrow = array(); +if ($row = $db->sql_fetchrow($result)) +{ + do + { + $postrow[] = $row; + } + while ($row = $db->sql_fetchrow($result)); + $db->sql_freeresult($result); + + $total_posts = count($postrow); +} +else +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); +} + +$resync = FALSE; +if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrow)) +{ + $resync = TRUE; +} +elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies']) +{ + $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']); + if ($postrow[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrow) < $forum_topic_data['topic_replies']) + { + $resync = TRUE; + } +} +elseif (count($postrow) < $board_config['posts_per_page']) +{ + $resync = TRUE; +} + +if ($resync) +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id); + $row = $db->sql_fetchrow($result); + $total_replies = $row['total']; +} + +$sql = "SELECT * + FROM " . RANKS_TABLE . " + ORDER BY rank_special, rank_min"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql); +} + +$ranksrow = array(); +while ( $row = $db->sql_fetchrow($result) ) +{ + $ranksrow[] = $row; +} +$db->sql_freeresult($result); + +// +// Define censored word matches +// +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// Censor topic title +// +if ( count($orig_word) ) +{ + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); +} + +// +// Was a highlight request part of the URI? +// +$highlight_match = $highlight = ''; +if (isset($HTTP_GET_VARS['highlight'])) +{ + // Split words and phrases + $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight']))); + + for($i = 0; $i < sizeof($words); $i++) + { + if (trim($words[$i]) != '') + { + $highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#')); + } + } + unset($words); + + $highlight = urlencode($HTTP_GET_VARS['highlight']); + $highlight_match = phpbb_rtrim($highlight_match, "\\"); +} + +// +// Post, reply and other URL generation for +// templating vars +// +$new_topic_url = append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id"); +$reply_topic_url = append_sid("posting.$phpEx?mode=reply&" . POST_TOPIC_URL . "=$topic_id"); +$view_forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"); +$view_prev_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=previous"); +$view_next_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=next"); + +// +// Mozilla navigation bar +// +$nav_links['prev'] = array( + 'url' => $view_prev_topic_url, + 'title' => $lang['View_previous_topic'] +); +$nav_links['next'] = array( + 'url' => $view_next_topic_url, + 'title' => $lang['View_next_topic'] +); +$nav_links['up'] = array( + 'url' => $view_forum_url, + 'title' => $forum_name +); + +$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new']; +$reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['Reply_to_topic']; +$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new']; +$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic']; + +// +// Set a cookie for this topic +// +if ( $userdata['session_logged_in'] ) +{ + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else + { + $topic_last_read = $userdata['user_lastvisit']; + } + + if ( count($tracking_topics) >= 150 && empty($tracking_topics[$topic_id]) ) + { + asort($tracking_topics); + unset($tracking_topics[key($tracking_topics)]); + } + + $tracking_topics[$topic_id] = time(); + + setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); +} + +// +// Load templates +// +$template->set_filenames(array( + 'body' => 'viewtopic_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx, $forum_id); + +// +// Output page header +// +$page_title = $lang['View_topic'] .' - ' . $topic_title; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +// +// User authorisation levels output +// +$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '
    '; + +$topic_mod = ''; + +if ( $is_auth['auth_mod'] ) +{ + $s_auth_can .= sprintf($lang['Rules_moderate'], "', ''); + + $topic_mod .= "' . $lang['Delete_topic'] . ' '; + + $topic_mod .= "' . $lang['Move_topic'] . ' '; + + $topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "' . $lang['Lock_topic'] . ' ' : "' . $lang['Unlock_topic'] . ' '; + + $topic_mod .= "' . $lang['Split_topic'] . ' '; +} + +// +// Topic watch information +// +$s_watching_topic = ''; +if ( $can_watch_topic ) +{ + if ( $is_watching_topic ) + { + $s_watching_topic = "' . $lang['Stop_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "' . $lang['Stop_watching_topic'] . '' : ''; + } + else + { + $s_watching_topic = "' . $lang['Start_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "' . $lang['Start_watching_topic'] . '' : ''; + } +} + +// +// If we've got a hightlight set pass it on to pagination, +// I get annoyed when I lose my highlight after the first page. +// +$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start); + +// +// Send vars to template +// +$template->assign_vars(array( + 'FORUM_ID' => $forum_id, + 'FORUM_NAME' => $forum_name, + 'TOPIC_ID' => $topic_id, + 'TOPIC_TITLE' => $topic_title, + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )), + + 'POST_IMG' => $post_img, + 'REPLY_IMG' => $reply_img, + + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_POSTED' => $lang['Posted'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_VIEW_NEXT_TOPIC' => $lang['View_next_topic'], + 'L_VIEW_PREVIOUS_TOPIC' => $lang['View_previous_topic'], + 'L_POST_NEW_TOPIC' => $post_alt, + 'L_POST_REPLY_TOPIC' => $reply_alt, + 'L_BACK_TO_TOP' => $lang['Back_to_top'], + 'L_DISPLAY_POSTS' => $lang['Display_posts'], + 'L_LOCK_TOPIC' => $lang['Lock_topic'], + 'L_UNLOCK_TOPIC' => $lang['Unlock_topic'], + 'L_MOVE_TOPIC' => $lang['Move_topic'], + 'L_SPLIT_TOPIC' => $lang['Split_topic'], + 'L_DELETE_TOPIC' => $lang['Delete_topic'], + 'L_GOTO_PAGE' => $lang['Goto_page'], + + 'S_TOPIC_LINK' => POST_TOPIC_URL, + 'S_SELECT_POST_DAYS' => $select_post_days, + 'S_SELECT_POST_ORDER' => $select_post_order, + 'S_POST_DAYS_ACTION' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id . "&start=$start"), + 'S_AUTH_LIST' => $s_auth_can, + 'S_TOPIC_ADMIN' => $topic_mod, + 'S_WATCH_TOPIC' => $s_watching_topic, + 'S_WATCH_TOPIC_IMG' => $s_watching_topic_img, + + 'U_VIEW_TOPIC' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start&postdays=$post_days&postorder=$post_order&highlight=$highlight"), + 'U_VIEW_FORUM' => $view_forum_url, + 'U_VIEW_OLDER_TOPIC' => $view_prev_topic_url, + 'U_VIEW_NEWER_TOPIC' => $view_next_topic_url, + 'U_POST_NEW_TOPIC' => $new_topic_url, + 'U_POST_REPLY_TOPIC' => $reply_topic_url) +); + +// +// Does this topic contain a poll? +// +if ( !empty($forum_topic_data['topic_vote']) ) +{ + $s_hidden_fields = ''; + + $sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + ORDER BY vr.vote_option_id ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + if ( $vote_info = $db->sql_fetchrowset($result) ) + { + $db->sql_freeresult($result); + $vote_options = count($vote_info); + + $vote_id = $vote_info[0]['vote_id']; + $vote_title = $vote_info[0]['vote_text']; + + $sql = "SELECT vote_id + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $vote_id + AND vote_user_id = " . intval($userdata['user_id']); + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain user vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + $user_voted = ( $row = $db->sql_fetchrow($result) ) ? TRUE : 0; + $db->sql_freeresult($result); + + if ( isset($HTTP_GET_VARS['vote']) || isset($HTTP_POST_VARS['vote']) ) + { + $view_result = ( ( ( isset($HTTP_GET_VARS['vote']) ) ? $HTTP_GET_VARS['vote'] : $HTTP_POST_VARS['vote'] ) == 'viewresult' ) ? TRUE : 0; + } + else + { + $view_result = 0; + } + + $poll_expired = ( $vote_info[0]['vote_length'] ) ? ( ( $vote_info[0]['vote_start'] + $vote_info[0]['vote_length'] < time() ) ? TRUE : 0 ) : 0; + + if ( $user_voted || $view_result || $poll_expired || !$is_auth['auth_vote'] || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_result.tpl') + ); + + $vote_results_sum = 0; + + for($i = 0; $i < $vote_options; $i++) + { + $vote_results_sum += $vote_info[$i]['vote_result']; + } + + $vote_graphic = 0; + $vote_graphic_max = count($images['voting_graphic']); + + for($i = 0; $i < $vote_options; $i++) + { + $vote_percent = ( $vote_results_sum > 0 ) ? $vote_info[$i]['vote_result'] / $vote_results_sum : 0; + $vote_graphic_length = round($vote_percent * $board_config['vote_graphic_length']); + + $vote_graphic_img = $images['voting_graphic'][$vote_graphic]; + $vote_graphic = ($vote_graphic < $vote_graphic_max - 1) ? $vote_graphic + 1 : 0; + + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text'], + 'POLL_OPTION_RESULT' => $vote_info[$i]['vote_result'], + 'POLL_OPTION_PERCENT' => sprintf("%.1d%%", ($vote_percent * 100)), + + 'POLL_OPTION_IMG' => $vote_graphic_img, + 'POLL_OPTION_IMG_WIDTH' => $vote_graphic_length) + ); + } + + $template->assign_vars(array( + 'L_TOTAL_VOTES' => $lang['Total_votes'], + 'TOTAL_VOTES' => $vote_results_sum) + ); + + } + else + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_ballot.tpl') + ); + + for($i = 0; $i < $vote_options; $i++) + { + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_ID' => $vote_info[$i]['vote_option_id'], + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text']) + ); + } + + $template->assign_vars(array( + 'L_SUBMIT_VOTE' => $lang['Submit_vote'], + 'L_VIEW_RESULTS' => $lang['View_results'], + + 'U_VIEW_RESULTS' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&vote=viewresult")) + ); + + $s_hidden_fields = ''; + } + + if ( count($orig_word) ) + { + $vote_title = preg_replace($orig_word, $replacement_word, $vote_title); + } + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + 'POLL_QUESTION' => $vote_title, + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_POLL_ACTION' => append_sid("posting.$phpEx?mode=vote&" . POST_TOPIC_URL . "=$topic_id")) + ); + + $template->assign_var_from_handle('POLL_DISPLAY', 'pollbox'); + } +} + +// +// Update the topic view counter +// +$sql = "UPDATE " . TOPICS_TABLE . " + SET topic_views = topic_views + 1 + WHERE topic_id = $topic_id"; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Could not update topic views.", '', __LINE__, __FILE__, $sql); +} + +// +// Okay, let's do the loop, yeah come on baby let's do the loop +// and it goes like this ... +// +for($i = 0; $i < $total_posts; $i++) +{ + $poster_id = $postrow[$i]['user_id']; + $poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $postrow[$i]['username']; + + $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']); + + $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : ''; + + $poster_from = ( $postrow[$i]['user_from'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : ''; + + $poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : ''; + + $poster_avatar = ''; + if ( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS && $postrow[$i]['user_allowavatar'] ) + { + switch( $postrow[$i]['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + // + // Define the little post icon + // + if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read ) + { + $mini_post_img = $images['icon_minipost_new']; + $mini_post_alt = $lang['New_post']; + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + + $mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id']; + + // + // Generate ranks, set them to empty string initially. + // + $poster_rank = ''; + $rank_image = ''; + if ( $postrow[$i]['user_id'] == ANONYMOUS ) + { + } + else if ( $postrow[$i]['user_rank'] ) + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + else + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + + // + // Handle anon users posting with usernames + // + if ( $poster_id == ANONYMOUS && $postrow[$i]['post_username'] != '' ) + { + $poster = $postrow[$i]['post_username']; + $poster_rank = $lang['Guest']; + } + + $temp_url = ''; + + if ( $poster_id != ANONYMOUS ) + { + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$poster_id"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $poster_id) : 'mailto:' . $postrow[$i]['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ''; + $email = ''; + } + + $www_img = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($postrow[$i]['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $msn_img = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + } + else + { + $profile_img = ''; + $profile = ''; + $pm_img = ''; + $pm = ''; + $email_img = ''; + $email = ''; + $www_img = ''; + $www = ''; + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + $aim_img = ''; + $aim = ''; + $msn_img = ''; + $msn = ''; + $yim_img = ''; + $yim = ''; + } + + $temp_url = append_sid("posting.$phpEx?mode=quote&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $quote_img = '' . $lang['Reply_with_quote'] . ''; + $quote = '' . $lang['Reply_with_quote'] . ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($postrow[$i]['username']) . "&showresults=posts"); + $search_img = '' . $lang['Search_user_posts'] . ''; + $search = '' . $lang['Search_user_posts'] . ''; + + if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] ) + { + $temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $edit_img = '' . $lang['Edit_delete_post'] . ''; + $edit = '' . $lang['Edit_delete_post'] . ''; + } + else + { + $edit_img = ''; + $edit = ''; + } + + if ( $is_auth['auth_mod'] ) + { + $temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id']; + $ip_img = '' . $lang['View_IP'] . ''; + $ip = '' . $lang['View_IP'] . ''; + + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $ip_img = ''; + $ip = ''; + + if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'] ) + { + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $delpost_img = ''; + $delpost = ''; + } + } + + $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : ''; + + $message = $postrow[$i]['post_text']; + $bbcode_uid = $postrow[$i]['bbcode_uid']; + + $user_sig = ( $postrow[$i]['enable_sig'] && $postrow[$i]['user_sig'] != '' && $board_config['allow_sig'] ) ? $postrow[$i]['user_sig'] : ''; + $user_sig_bbcode_uid = $postrow[$i]['user_sig_bbcode_uid']; + + // + // Note! The order used for parsing the message _is_ important, moving things around could break any + // output + // + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] || !$userdata['user_allowhtml']) + { + if ( $user_sig != '' ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message); + } + } + + // + // Parse message and/or sig for BBCode if reqd + // + if ( $board_config['allow_bbcode'] ) + { + if ( $user_sig != '' && $user_sig_bbcode_uid != '' ) + { + $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig); + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + } + + if ( $user_sig != '' ) + { + $user_sig = make_clickable($user_sig); + } + $message = make_clickable($message); + + // + // Parse smilies + // + if ( $board_config['allow_smilies'] ) + { + if ( $postrow[$i]['user_allowsmile'] && $user_sig != '' ) + { + $user_sig = smilies_pass($user_sig); + } + + if ( $postrow[$i]['enable_smilies'] ) + { + $message = smilies_pass($message); + } + } + + // + // Highlight active words (primarily for search) + // + if ($highlight_match) + { + // This was shamelessly 'borrowed' from volker at multiartstudio dot de + // via php.net's annotated manual + $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', $highlight_match) . ")\b#i', '\\\\1', '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace naughty words + // + if (count($orig_word)) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + + if ($user_sig != '') + { + $user_sig = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1)); + } + + $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace newlines (we use this rather than nl2br because + // till recently it wasn't XHTML compliant) + // + if ( $user_sig != '' ) + { + $user_sig = '
    _________________
    ' . str_replace("\n", "\n
    \n", $user_sig); + } + + $message = str_replace("\n", "\n
    \n", $message); + + // + // Editing information + // + if ( $postrow[$i]['post_edit_count'] ) + { + $l_edit_time_total = ( $postrow[$i]['post_edit_count'] == 1 ) ? $lang['Edited_time_total'] : $lang['Edited_times_total']; + + $l_edited_by = '

    ' . sprintf($l_edit_time_total, $poster, create_date($board_config['default_dateformat'], $postrow[$i]['post_edit_time'], $board_config['board_timezone']), $postrow[$i]['post_edit_count']); + } + else + { + $l_edited_by = ''; + } + + // + // Again this will be handled by the templating + // code at some point + // + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'POSTER_NAME' => $poster, + 'POSTER_RANK' => $poster_rank, + 'RANK_IMAGE' => $rank_image, + 'POSTER_JOINED' => $poster_joined, + 'POSTER_POSTS' => $poster_posts, + 'POSTER_FROM' => $poster_from, + 'POSTER_AVATAR' => $poster_avatar, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + 'SIGNATURE' => $user_sig, + 'EDITED_MESSAGE' => $l_edited_by, + + 'MINI_POST_IMG' => $mini_post_img, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + 'EDIT_IMG' => $edit_img, + 'EDIT' => $edit, + 'QUOTE_IMG' => $quote_img, + 'QUOTE' => $quote, + 'IP_IMG' => $ip_img, + 'IP' => $ip, + 'DELETE_IMG' => $delpost_img, + 'DELETE' => $delpost, + + 'L_MINI_POST_ALT' => $mini_post_alt, + + 'U_MINI_POST' => $mini_post_url, + 'U_POST_ID' => $postrow[$i]['post_id']) + ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/viewtopic.php.orig b/phpBB2/viewtopic.php.orig new file mode 100644 index 0000000..ffa71c0 --- /dev/null +++ b/phpBB2/viewtopic.php.orig @@ -0,0 +1,1216 @@ += u.user_lastvisit + ORDER BY p.post_time ASC + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit'); + } + + $post_id = $row['post_id']; + + if (isset($HTTP_GET_VARS['sid'])) + { + redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id"); + } + else + { + redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id"); + } + } + } + + redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true)); + } + else if ( $HTTP_GET_VARS['view'] == 'next' || $HTTP_GET_VARS['view'] == 'previous' ) + { + $sql_condition = ( $HTTP_GET_VARS['view'] == 'next' ) ? '>' : '<'; + $sql_ordering = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'ASC' : 'DESC'; + + $sql = "SELECT t.topic_id + FROM " . TOPICS_TABLE . " t, " . TOPICS_TABLE . " t2 + WHERE + t2.topic_id = $topic_id + AND t.forum_id = t2.forum_id + AND t.topic_last_post_id $sql_condition t2.topic_last_post_id + ORDER BY t.topic_last_post_id $sql_ordering + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $topic_id = intval($row['topic_id']); + } + else + { + $message = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'No_newer_topics' : 'No_older_topics'; + message_die(GENERAL_MESSAGE, $message); + } + } +} + +// +// This rather complex gaggle of code handles querying for topics but +// also allows for direct linking to a post (and the calculation of which +// page the post is on and the correct display of viewtopic) +// +$join_sql_table = ( empty($post_id) ) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 "; +$join_sql = ( empty($post_id) ) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id"; +$count_sql = ( empty($post_id) ) ? '' : ", COUNT(p2.post_id) AS prev_posts"; + +$order_sql = ( empty($post_id) ) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC"; + +$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . " + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . " + WHERE $join_sql + AND f.forum_id = t.forum_id + $order_sql"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain topic information", '', __LINE__, __FILE__, $sql); +} + +if ( !($forum_topic_data = $db->sql_fetchrow($result)) ) +{ + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); +} + +$forum_id = intval($forum_topic_data['forum_id']); + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// +// Start auth check +// +$is_auth = array(); +$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data); + +if( !$is_auth['auth_view'] || !$is_auth['auth_read'] ) +{ + if ( !$userdata['session_logged_in'] ) + { + $redirect = ( isset($post_id) ) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id"; + $redirect .= ( isset($start) ) ? "&start=$start" : ''; + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true)); + } + + $message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End auth check +// + +$forum_name = $forum_topic_data['forum_name']; +$topic_title = $forum_topic_data['topic_title']; +$topic_id = intval($forum_topic_data['topic_id']); +$topic_time = $forum_topic_data['topic_time']; + +if ( !empty($post_id) ) +{ + $start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']); +} + +// +// Is user watching this thread? +// +if( $userdata['session_logged_in'] ) +{ + $can_watch_topic = TRUE; + + $sql = "SELECT notify_status + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain topic watch information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + $is_watching_topic = 0; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "DELETE $sql_priority FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not delete topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['No_longer_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = TRUE; + + if ( $row['notify_status'] ) + { + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "UPDATE $sql_priority " . TOPICS_WATCH_TABLE . " + SET notify_status = 0 + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not update topic watch information", '', __LINE__, __FILE__, $sql); + } + } + } + } + else + { + if ( isset($HTTP_GET_VARS['watch']) ) + { + if ( $HTTP_GET_VARS['watch'] == 'topic' ) + { + $is_watching_topic = TRUE; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "INSERT $sql_priority INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status) + VALUES (" . $userdata['user_id'] . ", $topic_id, 0)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not insert topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['You_are_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = 0; + } + } +} +else +{ + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&" . POST_TOPIC_URL . "=$topic_id&unwatch=topic", true)); + } + } + else + { + $can_watch_topic = 0; + $is_watching_topic = 0; + } +} + +// +// Generate a 'Show posts in previous x days' select box. If the postdays var is POSTed +// then get it's value, find the number of topics with dates newer than it (to properly +// handle pagination) and alter the main query +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) +{ + $post_days = ( !empty($HTTP_POST_VARS['postdays']) ) ? intval($HTTP_POST_VARS['postdays']) : intval($HTTP_GET_VARS['postdays']); + $min_post_time = time() - (intval($post_days) * 86400); + + $sql = "SELECT COUNT(p.post_id) AS num_posts + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE t.topic_id = $topic_id + AND p.topic_id = t.topic_id + AND p.post_time >= $min_post_time"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain limited topics count information", '', __LINE__, __FILE__, $sql); + } + + $total_replies = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_posts']) : 0; + + $limit_posts_time = "AND p.post_time >= $min_post_time "; + + if ( !empty($HTTP_POST_VARS['postdays'])) + { + $start = 0; + } +} +else +{ + $total_replies = intval($forum_topic_data['topic_replies']) + 1; + + $limit_posts_time = ''; + $post_days = 0; +} + +$select_post_days = ''; + +// +// Decide how to order the post display +// +if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) ) +{ + $post_order = (!empty($HTTP_POST_VARS['postorder'])) ? htmlspecialchars($HTTP_POST_VARS['postorder']) : htmlspecialchars($HTTP_GET_VARS['postorder']); + $post_time_order = ($post_order == "asc") ? "ASC" : "DESC"; +} +else +{ + $post_order = 'asc'; + $post_time_order = 'ASC'; +} + +$select_post_order = ''; + +// +// Go ahead and pull all data for this topic +// +$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + $limit_posts_time + AND pt.post_id = p.post_id + AND u.user_id = p.poster_id + ORDER BY p.post_time $post_time_order + LIMIT $start, ".$board_config['posts_per_page']; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql); +} + +$postrow = array(); +if ($row = $db->sql_fetchrow($result)) +{ + do + { + $postrow[] = $row; + } + while ($row = $db->sql_fetchrow($result)); + $db->sql_freeresult($result); + + $total_posts = count($postrow); +} +else +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); +} + +$resync = FALSE; +if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrow)) +{ + $resync = TRUE; +} +elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies']) +{ + $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']); + if ($postrow[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrow) < $forum_topic_data['topic_replies']) + { + $resync = TRUE; + } +} +elseif (count($postrow) < $board_config['posts_per_page']) +{ + $resync = TRUE; +} + +if ($resync) +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id); + $row = $db->sql_fetchrow($result); + $total_replies = $row['total']; +} + +$sql = "SELECT * + FROM " . RANKS_TABLE . " + ORDER BY rank_special, rank_min"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql); +} + +$ranksrow = array(); +while ( $row = $db->sql_fetchrow($result) ) +{ + $ranksrow[] = $row; +} +$db->sql_freeresult($result); + +// +// Define censored word matches +// +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// Censor topic title +// +if ( count($orig_word) ) +{ + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); +} + +// +// Was a highlight request part of the URI? +// +$highlight_match = $highlight = ''; +if (isset($HTTP_GET_VARS['highlight'])) +{ + // Split words and phrases + $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight']))); + + for($i = 0; $i < sizeof($words); $i++) + { + if (trim($words[$i]) != '') + { + $highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#')); + } + } + unset($words); + + $highlight = urlencode($HTTP_GET_VARS['highlight']); + $highlight_match = phpbb_rtrim($highlight_match, "\\"); +} + +// +// Post, reply and other URL generation for +// templating vars +// +$new_topic_url = append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id"); +$reply_topic_url = append_sid("posting.$phpEx?mode=reply&" . POST_TOPIC_URL . "=$topic_id"); +$view_forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"); +$view_prev_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=previous"); +$view_next_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=next"); + +// +// Mozilla navigation bar +// +$nav_links['prev'] = array( + 'url' => $view_prev_topic_url, + 'title' => $lang['View_previous_topic'] +); +$nav_links['next'] = array( + 'url' => $view_next_topic_url, + 'title' => $lang['View_next_topic'] +); +$nav_links['up'] = array( + 'url' => $view_forum_url, + 'title' => $forum_name +); + +$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new']; +$reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['Reply_to_topic']; +$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new']; +$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic']; + +// +// Set a cookie for this topic +// +if ( $userdata['session_logged_in'] ) +{ + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else + { + $topic_last_read = $userdata['user_lastvisit']; + } + + if ( count($tracking_topics) >= 150 && empty($tracking_topics[$topic_id]) ) + { + asort($tracking_topics); + unset($tracking_topics[key($tracking_topics)]); + } + + $tracking_topics[$topic_id] = time(); + + setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); +} + +// +// Load templates +// +$template->set_filenames(array( + 'body' => 'viewtopic_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx, $forum_id); + +// +// Output page header +// +$page_title = $lang['View_topic'] .' - ' . $topic_title; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +// +// User authorisation levels output +// +$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '
    '; + +$topic_mod = ''; + +if ( $is_auth['auth_mod'] ) +{ + $s_auth_can .= sprintf($lang['Rules_moderate'], "', ''); + + $topic_mod .= "' . $lang['Delete_topic'] . ' '; + + $topic_mod .= "' . $lang['Move_topic'] . ' '; + + $topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "' . $lang['Lock_topic'] . ' ' : "' . $lang['Unlock_topic'] . ' '; + + $topic_mod .= "' . $lang['Split_topic'] . ' '; +} + +// +// Topic watch information +// +$s_watching_topic = ''; +if ( $can_watch_topic ) +{ + if ( $is_watching_topic ) + { + $s_watching_topic = "' . $lang['Stop_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "' . $lang['Stop_watching_topic'] . '' : ''; + } + else + { + $s_watching_topic = "' . $lang['Start_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "' . $lang['Start_watching_topic'] . '' : ''; + } +} + +// +// If we've got a hightlight set pass it on to pagination, +// I get annoyed when I lose my highlight after the first page. +// +$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start); + +// +// Send vars to template +// +$template->assign_vars(array( + 'FORUM_ID' => $forum_id, + 'FORUM_NAME' => $forum_name, + 'TOPIC_ID' => $topic_id, + 'TOPIC_TITLE' => $topic_title, + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )), + + 'POST_IMG' => $post_img, + 'REPLY_IMG' => $reply_img, + + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_POSTED' => $lang['Posted'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_VIEW_NEXT_TOPIC' => $lang['View_next_topic'], + 'L_VIEW_PREVIOUS_TOPIC' => $lang['View_previous_topic'], + 'L_POST_NEW_TOPIC' => $post_alt, + 'L_POST_REPLY_TOPIC' => $reply_alt, + 'L_BACK_TO_TOP' => $lang['Back_to_top'], + 'L_DISPLAY_POSTS' => $lang['Display_posts'], + 'L_LOCK_TOPIC' => $lang['Lock_topic'], + 'L_UNLOCK_TOPIC' => $lang['Unlock_topic'], + 'L_MOVE_TOPIC' => $lang['Move_topic'], + 'L_SPLIT_TOPIC' => $lang['Split_topic'], + 'L_DELETE_TOPIC' => $lang['Delete_topic'], + 'L_GOTO_PAGE' => $lang['Goto_page'], + + 'S_TOPIC_LINK' => POST_TOPIC_URL, + 'S_SELECT_POST_DAYS' => $select_post_days, + 'S_SELECT_POST_ORDER' => $select_post_order, + 'S_POST_DAYS_ACTION' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id . "&start=$start"), + 'S_AUTH_LIST' => $s_auth_can, + 'S_TOPIC_ADMIN' => $topic_mod, + 'S_WATCH_TOPIC' => $s_watching_topic, + 'S_WATCH_TOPIC_IMG' => $s_watching_topic_img, + + 'U_VIEW_TOPIC' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start&postdays=$post_days&postorder=$post_order&highlight=$highlight"), + 'U_VIEW_FORUM' => $view_forum_url, + 'U_VIEW_OLDER_TOPIC' => $view_prev_topic_url, + 'U_VIEW_NEWER_TOPIC' => $view_next_topic_url, + 'U_POST_NEW_TOPIC' => $new_topic_url, + 'U_POST_REPLY_TOPIC' => $reply_topic_url) +); + +// +// Does this topic contain a poll? +// +if ( !empty($forum_topic_data['topic_vote']) ) +{ + $s_hidden_fields = ''; + + $sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + ORDER BY vr.vote_option_id ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + if ( $vote_info = $db->sql_fetchrowset($result) ) + { + $db->sql_freeresult($result); + $vote_options = count($vote_info); + + $vote_id = $vote_info[0]['vote_id']; + $vote_title = $vote_info[0]['vote_text']; + + $sql = "SELECT vote_id + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $vote_id + AND vote_user_id = " . intval($userdata['user_id']); + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain user vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + $user_voted = ( $row = $db->sql_fetchrow($result) ) ? TRUE : 0; + $db->sql_freeresult($result); + + if ( isset($HTTP_GET_VARS['vote']) || isset($HTTP_POST_VARS['vote']) ) + { + $view_result = ( ( ( isset($HTTP_GET_VARS['vote']) ) ? $HTTP_GET_VARS['vote'] : $HTTP_POST_VARS['vote'] ) == 'viewresult' ) ? TRUE : 0; + } + else + { + $view_result = 0; + } + + $poll_expired = ( $vote_info[0]['vote_length'] ) ? ( ( $vote_info[0]['vote_start'] + $vote_info[0]['vote_length'] < time() ) ? TRUE : 0 ) : 0; + + if ( $user_voted || $view_result || $poll_expired || !$is_auth['auth_vote'] || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_result.tpl') + ); + + $vote_results_sum = 0; + + for($i = 0; $i < $vote_options; $i++) + { + $vote_results_sum += $vote_info[$i]['vote_result']; + } + + $vote_graphic = 0; + $vote_graphic_max = count($images['voting_graphic']); + + for($i = 0; $i < $vote_options; $i++) + { + $vote_percent = ( $vote_results_sum > 0 ) ? $vote_info[$i]['vote_result'] / $vote_results_sum : 0; + $vote_graphic_length = round($vote_percent * $board_config['vote_graphic_length']); + + $vote_graphic_img = $images['voting_graphic'][$vote_graphic]; + $vote_graphic = ($vote_graphic < $vote_graphic_max - 1) ? $vote_graphic + 1 : 0; + + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text'], + 'POLL_OPTION_RESULT' => $vote_info[$i]['vote_result'], + 'POLL_OPTION_PERCENT' => sprintf("%.1d%%", ($vote_percent * 100)), + + 'POLL_OPTION_IMG' => $vote_graphic_img, + 'POLL_OPTION_IMG_WIDTH' => $vote_graphic_length) + ); + } + + $template->assign_vars(array( + 'L_TOTAL_VOTES' => $lang['Total_votes'], + 'TOTAL_VOTES' => $vote_results_sum) + ); + + } + else + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_ballot.tpl') + ); + + for($i = 0; $i < $vote_options; $i++) + { + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_ID' => $vote_info[$i]['vote_option_id'], + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text']) + ); + } + + $template->assign_vars(array( + 'L_SUBMIT_VOTE' => $lang['Submit_vote'], + 'L_VIEW_RESULTS' => $lang['View_results'], + + 'U_VIEW_RESULTS' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&vote=viewresult")) + ); + + $s_hidden_fields = ''; + } + + if ( count($orig_word) ) + { + $vote_title = preg_replace($orig_word, $replacement_word, $vote_title); + } + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + 'POLL_QUESTION' => $vote_title, + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_POLL_ACTION' => append_sid("posting.$phpEx?mode=vote&" . POST_TOPIC_URL . "=$topic_id")) + ); + + $template->assign_var_from_handle('POLL_DISPLAY', 'pollbox'); + } +} + +// +// Update the topic view counter +// +$sql = "UPDATE " . TOPICS_TABLE . " + SET topic_views = topic_views + 1 + WHERE topic_id = $topic_id"; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Could not update topic views.", '', __LINE__, __FILE__, $sql); +} + +// +// Okay, let's do the loop, yeah come on baby let's do the loop +// and it goes like this ... +// +for($i = 0; $i < $total_posts; $i++) +{ + $poster_id = $postrow[$i]['user_id']; + $poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $postrow[$i]['username']; + + $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']); + + $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : ''; + + $poster_from = ( $postrow[$i]['user_from'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : ''; + + $poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : ''; + + $poster_avatar = ''; + if ( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS && $postrow[$i]['user_allowavatar'] ) + { + switch( $postrow[$i]['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + // + // Define the little post icon + // + if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read ) + { + $mini_post_img = $images['icon_minipost_new']; + $mini_post_alt = $lang['New_post']; + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + + $mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id']; + + // + // Generate ranks, set them to empty string initially. + // + $poster_rank = ''; + $rank_image = ''; + if ( $postrow[$i]['user_id'] == ANONYMOUS ) + { + } + else if ( $postrow[$i]['user_rank'] ) + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + else + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + + // + // Handle anon users posting with usernames + // + if ( $poster_id == ANONYMOUS && $postrow[$i]['post_username'] != '' ) + { + $poster = $postrow[$i]['post_username']; + $poster_rank = $lang['Guest']; + } + + $temp_url = ''; + + if ( $poster_id != ANONYMOUS ) + { + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$poster_id"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $poster_id) : 'mailto:' . $postrow[$i]['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ''; + $email = ''; + } + + $www_img = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($postrow[$i]['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $msn_img = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + } + else + { + $profile_img = ''; + $profile = ''; + $pm_img = ''; + $pm = ''; + $email_img = ''; + $email = ''; + $www_img = ''; + $www = ''; + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + $aim_img = ''; + $aim = ''; + $msn_img = ''; + $msn = ''; + $yim_img = ''; + $yim = ''; + } + + $temp_url = append_sid("posting.$phpEx?mode=quote&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $quote_img = '' . $lang['Reply_with_quote'] . ''; + $quote = '' . $lang['Reply_with_quote'] . ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($postrow[$i]['username']) . "&showresults=posts"); + $search_img = '' . $lang['Search_user_posts'] . ''; + $search = '' . $lang['Search_user_posts'] . ''; + + if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] ) + { + $temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $edit_img = '' . $lang['Edit_delete_post'] . ''; + $edit = '' . $lang['Edit_delete_post'] . ''; + } + else + { + $edit_img = ''; + $edit = ''; + } + + if ( $is_auth['auth_mod'] ) + { + $temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id']; + $ip_img = '' . $lang['View_IP'] . ''; + $ip = '' . $lang['View_IP'] . ''; + + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $ip_img = ''; + $ip = ''; + + if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'] ) + { + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $delpost_img = ''; + $delpost = ''; + } + } + + $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : ''; + + $message = $postrow[$i]['post_text']; + $bbcode_uid = $postrow[$i]['bbcode_uid']; + + $user_sig = ( $postrow[$i]['enable_sig'] && $postrow[$i]['user_sig'] != '' && $board_config['allow_sig'] ) ? $postrow[$i]['user_sig'] : ''; + $user_sig_bbcode_uid = $postrow[$i]['user_sig_bbcode_uid']; + + // + // Note! The order used for parsing the message _is_ important, moving things around could break any + // output + // + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] || !$userdata['user_allowhtml']) + { + if ( $user_sig != '' ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message); + } + } + + // + // Parse message and/or sig for BBCode if reqd + // + if ( $board_config['allow_bbcode'] ) + { + if ( $user_sig != '' && $user_sig_bbcode_uid != '' ) + { + $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig); + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + } + + if ( $user_sig != '' ) + { + $user_sig = make_clickable($user_sig); + } + $message = make_clickable($message); + + // + // Parse smilies + // + if ( $board_config['allow_smilies'] ) + { + if ( $postrow[$i]['user_allowsmile'] && $user_sig != '' ) + { + $user_sig = smilies_pass($user_sig); + } + + if ( $postrow[$i]['enable_smilies'] ) + { + $message = smilies_pass($message); + } + } + + // + // Highlight active words (primarily for search) + // + if ($highlight_match) + { + // This was shamelessly 'borrowed' from volker at multiartstudio dot de + // via php.net's annotated manual + $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', addslashes($highlight_match)) . ")\b#i', '\\\\1', '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace naughty words + // + if (count($orig_word)) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + + if ($user_sig != '') + { + $user_sig = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1)); + } + + $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace newlines (we use this rather than nl2br because + // till recently it wasn't XHTML compliant) + // + if ( $user_sig != '' ) + { + $user_sig = '
    _________________
    ' . str_replace("\n", "\n
    \n", $user_sig); + } + + $message = str_replace("\n", "\n
    \n", $message); + + // + // Editing information + // + if ( $postrow[$i]['post_edit_count'] ) + { + $l_edit_time_total = ( $postrow[$i]['post_edit_count'] == 1 ) ? $lang['Edited_time_total'] : $lang['Edited_times_total']; + + $l_edited_by = '

    ' . sprintf($l_edit_time_total, $poster, create_date($board_config['default_dateformat'], $postrow[$i]['post_edit_time'], $board_config['board_timezone']), $postrow[$i]['post_edit_count']); + } + else + { + $l_edited_by = ''; + } + + // + // Again this will be handled by the templating + // code at some point + // + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'POSTER_NAME' => $poster, + 'POSTER_RANK' => $poster_rank, + 'RANK_IMAGE' => $rank_image, + 'POSTER_JOINED' => $poster_joined, + 'POSTER_POSTS' => $poster_posts, + 'POSTER_FROM' => $poster_from, + 'POSTER_AVATAR' => $poster_avatar, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + 'SIGNATURE' => $user_sig, + 'EDITED_MESSAGE' => $l_edited_by, + + 'MINI_POST_IMG' => $mini_post_img, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + 'EDIT_IMG' => $edit_img, + 'EDIT' => $edit, + 'QUOTE_IMG' => $quote_img, + 'QUOTE' => $quote, + 'IP_IMG' => $ip_img, + 'IP' => $ip, + 'DELETE_IMG' => $delpost_img, + 'DELETE' => $delpost, + + 'L_MINI_POST_ALT' => $mini_post_alt, + + 'U_MINI_POST' => $mini_post_url, + 'U_POST_ID' => $postrow[$i]['post_id']) + ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2/viewtopic.php.rej b/phpBB2/viewtopic.php.rej new file mode 100644 index 0000000..c7fa825 --- /dev/null +++ b/phpBB2/viewtopic.php.rej @@ -0,0 +1,17 @@ +*************** +*** 1107,1113 **** + { + // This was shamelessly 'borrowed' from volker at multiartstudio dot de + // via php.net's annotated manual +! $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', $highlight_match) . ")\b#i', '\\\\1', '\\0')", '>' . $message . '<'), 1, -1)); + } + + // +--- 1105,1111 ---- + { + // This was shamelessly 'borrowed' from volker at multiartstudio dot de + // via php.net's annotated manual +! $message = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace('#\b(" . str_replace('\\', '\\\\', addslashes($highlight_match)) . ")\b#i', '\\\\1', '\\0')", '>' . $message . '<'), 1, -1)); + } + + // diff --git a/phpBB2/xs_mod/formIE.css b/phpBB2/xs_mod/formIE.css new file mode 100644 index 0000000..b76fd40 --- /dev/null +++ b/phpBB2/xs_mod/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2/xs_mod/images/button.gif b/phpBB2/xs_mod/images/button.gif new file mode 100644 index 0000000..17660cd Binary files /dev/null and b/phpBB2/xs_mod/images/button.gif differ diff --git a/phpBB2/xs_mod/images/cellpic1.gif b/phpBB2/xs_mod/images/cellpic1.gif new file mode 100644 index 0000000..db90769 Binary files /dev/null and b/phpBB2/xs_mod/images/cellpic1.gif differ diff --git a/phpBB2/xs_mod/images/cellpic2.jpg b/phpBB2/xs_mod/images/cellpic2.jpg new file mode 100644 index 0000000..d6e4687 Binary files /dev/null and b/phpBB2/xs_mod/images/cellpic2.jpg differ diff --git a/phpBB2/xs_mod/images/cellpic3.gif b/phpBB2/xs_mod/images/cellpic3.gif new file mode 100644 index 0000000..49b5b26 Binary files /dev/null and b/phpBB2/xs_mod/images/cellpic3.gif differ diff --git a/phpBB2/xs_mod/images/cellpic4.gif b/phpBB2/xs_mod/images/cellpic4.gif new file mode 100644 index 0000000..9041126 Binary files /dev/null and b/phpBB2/xs_mod/images/cellpic4.gif differ diff --git a/phpBB2/xs_mod/images/dot.gif b/phpBB2/xs_mod/images/dot.gif new file mode 100644 index 0000000..10db0b3 Binary files /dev/null and b/phpBB2/xs_mod/images/dot.gif differ diff --git a/phpBB2/xs_mod/images/spacer.gif b/phpBB2/xs_mod/images/spacer.gif new file mode 100644 index 0000000..cd29009 Binary files /dev/null and b/phpBB2/xs_mod/images/spacer.gif differ diff --git a/phpBB2/xs_mod/images/top_bg.gif b/phpBB2/xs_mod/images/top_bg.gif new file mode 100644 index 0000000..8e5d7ca Binary files /dev/null and b/phpBB2/xs_mod/images/top_bg.gif differ diff --git a/phpBB2/xs_mod/images/top_bg2.gif b/phpBB2/xs_mod/images/top_bg2.gif new file mode 100644 index 0000000..8e48cb3 Binary files /dev/null and b/phpBB2/xs_mod/images/top_bg2.gif differ diff --git a/phpBB2/xs_mod/images/top_logo.jpg b/phpBB2/xs_mod/images/top_logo.jpg new file mode 100644 index 0000000..e030ee3 Binary files /dev/null and b/phpBB2/xs_mod/images/top_logo.jpg differ diff --git a/phpBB2/xs_mod/style.css b/phpBB2/xs_mod/style.css new file mode 100644 index 0000000..1f4e53a --- /dev/null +++ b/phpBB2/xs_mod/style.css @@ -0,0 +1,253 @@ +/*************************************************************************** + * style.css + * --------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + +body { + background-color: #E5E5E5; + margin: 0px; + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1; +} + +/* General font families for common tags */ +font, th, td, p, div { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } +a:link,a:active,a:visited { color: #005784; } +a:hover { text-decoration: underline; color: #D46400; } +hr { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;} + +ul { list-style-image: url('images/dot.gif'); margin-left: 20px; margin-bottom: 0px; margin-top: 0px; } +h1 { margin-top: 0px; } + +label:hover { color: #D46400; } + +/* This is the border line & background colour round the entire page */ +table.bodyline { background-color: #F4F4F4; border: 1px #98AAB1 solid; } + +/* This is the outline round the main forum tables */ +table.forumline { background-color: #FFF; border: 2px #98AAB1 solid; } +td.forumline { background-color: #F8F8F8; border: 2px #98AAB1 solid; } + +img.screenshot { border: 2px #006699 solid; padding: 1px; background-color: #F8F8F8; } +img.screenshot { border: 2px #015884 solid; padding: 1px; background-color: #F8F8F8; } + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #F0F0F0; } +td.row2 { background-color: #E4E9ED; } +td.row3 { background-color: #D8DFE3; } + + +table.navbar { border: solid 1px #98AAB1; background-color: #DFE3E6; background-image: url('images/cellpic4.gif'); background-repeat: repeat-x; height: 22px; } +table.navbar td { color: #FFA34F; font-size: 11px; font-weight: bold; padding-left: 5px; } +table.navbar td a, table.navbar td a:visited { color: #3385AD; text-decoration: underline; } +table.navbar td a:hover, table.navbar td a:active { color: #FFA34F; text-decoration: underline; } +table.navbar td.nav_invert { color: #3385AD; font-size: 11px; font-weight: bold; padding-left: 5px; } +table.navbar td.nav_invert a, table.navbar td.nav_invert a:visited { color: #FFA34F; text-decoration: none; } +table.navbar td.nav_invert a:hover, table.navbar td.nav_invert a:active { color: #3385AD; text-decoration: underline; } + +.bottomnav { color: #444; font-size: 11px; font-weight: bold; } +.bottomnav a, .bottomnav a:visited { color: #3385AD; text-decoration: none; } +.bottomnav a:hover, .bottomnav a:active { color: #FFA34F; text-decoration: underline; } + +/* highlight text */ +.ast { color: #DD6900; font-weight: bold; } + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #C8DCE6; font-size: 11px; font-weight: bold; + background-color: #328BB8; + background-image: url('images/cellpic3.gif'); + background-repeat: repeat-x; + height: 28px; +} + +td.explain { + background-color: #E7ECF0; + background-image: url('images/cellpic1.gif'); + background-repeat: repeat-x; + font-size: 10px; + color: #015884; + border: 0px #FFF solid; +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url('images/cellpic1.gif'); background-color: #BFC8CE; background-repeat: repeat-x; border: 0px #FFFFFF solid; height: 28px; +} + +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: 0px #FFFFFF solid; height: 28px; } + +th.thHead,td.catHead { font-size: 12px; } +/*th.thHead,td.catHead { border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow,td.explain { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; }*/ + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 20px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #DD6900; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #006699; } +a.mainmenu:hover{ text-decoration: underline; color : #DD6900; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #006699} +a.cattitle { text-decoration: none; color : #006699; } +a.cattitle:hover{ text-decoration: underline; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #006699; } +a.forumlink { text-decoration: none; color : #006699; } +a.forumlink:hover{ text-decoration: underline; color : #DD6900; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #006699; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #006699; } +a.topictitle:visited { text-decoration: none; color : #5493B4; } +a.topictitle:hover { text-decoration: underline; color : #DD6900; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;} +a.postlink:link { text-decoration: none; color : #006699 } +a.postlink:visited { text-decoration: none; color : #5493B4; } +a.postlink:hover { text-decoration: underline; color : #DD6900} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +.copyright a { color: #006699; text-decoration: none;} +.copyright a:hover { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color: #FFFFFF; + border: solid 1px #000; + color: #000; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #EFEFEF; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + font-weight : normal; +} + +input.mainoption, input.liteoption { + height: 18px; + font-size: 11px; + color: #000; + padding: 0 5px; + margin: 0 5px; + border: solid 1px #000; + background: #F0F0F0 url('images/button.gif') repeat-x top left; +} + +input.mainoption:hover, input.liteoption:hover { + color: #FFA34F; + background: #F0F0F0 url('images/button.gif') repeat-x bottom left; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #DEE3E7; border: solid 0px #FFF; } + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); + diff --git a/phpBB2/xs_mod/tpl/cache.tpl b/phpBB2/xs_mod/tpl/cache.tpl new file mode 100644 index 0000000..0d679fd --- /dev/null +++ b/phpBB2/xs_mod/tpl/cache.tpl @@ -0,0 +1,43 @@ + +/*************************************************************************** + * cache.tpl + * --------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_MANAGE_CACHE}

    + +

    +{L_XS_MANAGE_CACHE_EXPLAIN2} +{RESULT} +

    + +
    + + + + +
    {L_INDEX} + + + + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    + +
    diff --git a/phpBB2/templates/subSilver/temp/profile_add_body.tpl b/phpBB2/templates/subSilver/temp/profile_add_body.tpl new file mode 100644 index 0000000..6ac7fa3 --- /dev/null +++ b/phpBB2/templates/subSilver/temp/profile_add_body.tpl @@ -0,0 +1,278 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2/templates/subSilver/temp/viewtopic_body.tpl b/phpBB2/templates/subSilver/temp/viewtopic_body.tpl new file mode 100644 index 0000000..5342d30 --- /dev/null +++ b/phpBB2/templates/subSilver/temp/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2/templates/subSilver/theme_info.cfg b/phpBB2/templates/subSilver/theme_info.cfg new file mode 100644 index 0000000..bd61eef --- /dev/null +++ b/phpBB2/templates/subSilver/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2/templates/subSilver/viewforum_body.tpl b/phpBB2/templates/subSilver/viewforum_body.tpl new file mode 100644 index 0000000..3c2a067 --- /dev/null +++ b/phpBB2/templates/subSilver/viewforum_body.tpl @@ -0,0 +1,98 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2/templates/subSilver/viewonline_body.tpl b/phpBB2/templates/subSilver/viewonline_body.tpl new file mode 100644 index 0000000..e0813c0 --- /dev/null +++ b/phpBB2/templates/subSilver/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2/templates/subSilver/viewtopic_body.tpl b/phpBB2/templates/subSilver/viewtopic_body.tpl new file mode 100644 index 0000000..9fea16e --- /dev/null +++ b/phpBB2/templates/subSilver/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2/templates/subSilver/viewtopic_poll_ballot.tpl b/phpBB2/templates/subSilver/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..1e0cb21 --- /dev/null +++ b/phpBB2/templates/subSilver/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ +

    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}

    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    +
    + + + + + + + + + + + + + + + + + +
    {L_XS_MANAGE_CACHE}
    {L_XS_TEMPLATE}{L_XS_STYLES}{L_XS_CLEAR_ALL_LC}{L_XS_COMPILE_ALL_LC}
    {styles.TPL}{styles.STYLES}{L_XS_CLEAR_CACHE_LC}{L_XS_COMPILE_CACHE_LC}
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/clone.tpl b/phpBB2/xs_mod/tpl/clone.tpl new file mode 100644 index 0000000..530927c --- /dev/null +++ b/phpBB2/xs_mod/tpl/clone.tpl @@ -0,0 +1,39 @@ + +/*************************************************************************** + * clone.tpl + * --------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_CLONE_STYLES}

    + +

    {L_XS_CLONE_STYLE_EXPLAIN}

    + + + + + + + + + + + + + + + + + + +
    {L_XS_CLONE_STYLES}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLES}{L_XS_CLONE_STYLE_LC}
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/clone2.tpl b/phpBB2/xs_mod/tpl/clone2.tpl new file mode 100644 index 0000000..579b5f5 --- /dev/null +++ b/phpBB2/xs_mod/tpl/clone2.tpl @@ -0,0 +1,73 @@ + +/*************************************************************************** + * clone2.tpl + * ---------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_CLONE_STYLE}

    + +

    {L_XS_CLONE_STYLE_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_CLONE_STYLE}
    {L_XS_CLONE_STYLE_EXPLAIN2}
    {styles.L_CLONE}
    {L_XS_CLONE_STYLE_EXPLAIN3}
    {S_HIDDEN_FIELDS}
    {L_CLONE_STYLE3}
    {L_XS_CLONE_STYLE_EXPLAIN4}
    {L_XS_CLONE_NEWDIR_NAME} onkeyup="document.clone.clone_style_name_0.value=document.clone.clone_style_name.value" />
    {L_XS_CLONE_SELECT}
    {L_XS_CLONE_SELECT_EXPLAIN}
    + + + +
    + +
    {L_XS_CLONE_NEWNAME} + + + +
    diff --git a/phpBB2/xs_mod/tpl/config.tpl b/phpBB2/xs_mod/tpl/config.tpl new file mode 100644 index 0000000..57a1c91 --- /dev/null +++ b/phpBB2/xs_mod/tpl/config.tpl @@ -0,0 +1,217 @@ + +/*************************************************************************** + * confir.tpl + * ---------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_CONFIG_MAINTITLE}

    + +

    {L_XS_CONFIG_SUBTITLE}

    + + + + + + + + + + + + +
    {L_XS_CONFIG_UPDATED}
    + + + + + + + + + +
     
    {L_XS_CONFIG_UPDATED_EXPLAIN}
     
    +
    + + + + + + + + + + +
    {L_XS_CONFIG_WARNING}
    + + + + + + + + + +
     
    {L_XS_CONFIG_WARNING_EXPLAIN}
     
    +
    + + + + + + + + + + +
    {L_Error}
    + + + + + + + + + +
     
    {L_XS_FTP_COMMENT3}
     
    +
    + + + + + + + + + + +
    {L_Error}
    + + + + + + + + + +
     
    {ftperror.ERROR}
     
    +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_CONFIG_TITLE}
    {L_XS_CONFIG_NAVBAR}
    {L_XS_CONFIG_NAVBAR_EXPLAIN}
    + +
    + +
    {L_XS_CONFIG_DEF_TEMPLATE}
    {L_XS_CONFIG_DEF_TEMPLATE_EXPLAIN}
    {L_XS_CONFIG_CHECK_SWITCHES}
    {L_XS_CONFIG_CHECK_SWITCHES_EXPLAIN}
    +
    +
    +
    +
    + +
    {L_XS_CONFIG_SHOW_ERRORS}
    {L_XS_CONFIG_SHOW_ERROR_EXPLAIN}
      
    {L_XS_CONFIG_TPL_COMMENTS}
    {L_XS_CONFIG_TPL_COMMENTS_EXPLAIN}
      
    {L_XS_CONFIG_CACHE}
    {L_XS_CONFIG_USE_CACHE}
    {L_XS_CONFIG_USE_CACHE_EXPLAIN}
      
    {L_XS_CONFIG_AUTO_COMPILE}
    {L_XS_CONFIG_AUTO_COMPILE_EXPLAIN}
      
    {L_XS_CONFIG_AUTO_RECOMPILE}
    {L_XS_CONFIG_AUTO_RECOMPILE_EXPLAIN}
      
    {L_XS_CONFIG_PHP}
    {L_XS_CONFIG_PHP_EXPLAIN}
    {L_XS_FTP_CONFIG}
    {L_XS_FTP_EXPLAIN}
    {L_XS_FTP_HOST}{HOST_GUESS}:
    {L_XS_FTP_LOGIN}{LOGIN_GUESS}:
    {L_XS_FTP_PATH}{PATH_GUESS}:
    {S_HIDDEN_FIELDS}
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_DEBUG_HEADER}
    {L_XS_DEBUG_EXPLAIN}
    {XS_DEBUG_HDR1}
    {L_XS_DEBUG_TPL_NAME}{XS_DEBUG_FILENAME1}
    {L_XS_DEBUG_CACHE_FILENAME}{XS_DEBUG_FILENAME2}
    {L_XS_DEBUG_DATA}{XS_DEBUG_DATA}
    diff --git a/phpBB2/xs_mod/tpl/downloads.tpl b/phpBB2/xs_mod/tpl/downloads.tpl new file mode 100644 index 0000000..d8611d3 --- /dev/null +++ b/phpBB2/xs_mod/tpl/downloads.tpl @@ -0,0 +1,66 @@ + +/*************************************************************************** + * downloads.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_DOWNLOAD_STYLES}

    + +

    {L_XS_DOWNLOAD_EXPLAIN2}

    + + + + + + + + + + + + + + + +{S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + +{S_HIDDEN_FIELDS} + + + + + + + + + + +
    {L_XS_DOWNLOAD_LOCATIONS}
    {url.NUM1}. {url.TITLE} [{L_XS_CLICK_HERE_LC}]{url.URL} [{L_XS_EDIT_LC}]
    {L_XS_EDIT_LINK}
    {L_XS_LINK_TITLE}:
    {L_XS_LINK_URL}:
    {L_XS_DELETE}:
    {L_XS_ADD_LINK}
    {L_XS_LINK_TITLE}:
    {L_XS_LINK_URL}:
    +
    + diff --git a/phpBB2/xs_mod/tpl/edit.tpl b/phpBB2/xs_mod/tpl/edit.tpl new file mode 100644 index 0000000..c1c8be7 --- /dev/null +++ b/phpBB2/xs_mod/tpl/edit.tpl @@ -0,0 +1,82 @@ + +/*************************************************************************** + * edit.tpl + * -------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_EDIT_TEMPLATES}

    + +

    {L_XS_EDIT_TEMPLATE_COMMENT1}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FILEMAN_BROWSER}
    + {L_XS_FILEMAN_DIRECTORY} + + {tree.SEPARATOR} + {tree.ITEM} + +
    + {begin_dirs.L_COUNT}
    + + » {begin_dirs.dir.NAME}
    + +
    {L_XS_FILEMAN_FILTER}
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + +
    {L_XS_FILEMAN_FILTER_EXT}
    {L_XS_FILEMAN_FILTER_CONTENT}
    +
    {L_XS_FILEMAN_FILENAME}{L_XS_FILEMAN_FILESIZE}{L_XS_FILEMAN_FILETIME}{L_XS_FILEMAN_OPTIONS}
    {begin_files.file.NAME}{begin_files.file.SIZE}{begin_files.file.TIME} {L_XS_FILEMAN_TIME_TODAY}{L_XS_FILEMAN_EDIT_LC}
    + diff --git a/phpBB2/xs_mod/tpl/edit_data.tpl b/phpBB2/xs_mod/tpl/edit_data.tpl new file mode 100644 index 0000000..8ffb872 --- /dev/null +++ b/phpBB2/xs_mod/tpl/edit_data.tpl @@ -0,0 +1,48 @@ + +/*************************************************************************** + * edit_data.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_EDIT_STYLES_DATA}

    + +

    {L_XS_EDITDATA_EXPLAIN}

    + +
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_EDIT_STYLES_DATA}
    {L_XS_EDITDATA_VAR}{L_XS_EDITDATA_VALUE}{L_XS_EDITDATA_COMMENT}
    {row.TEXT}:
    {row.EXPLAIN}
     
    +
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/edit_data_list.tpl b/phpBB2/xs_mod/tpl/edit_data_list.tpl new file mode 100644 index 0000000..aaa51f0 --- /dev/null +++ b/phpBB2/xs_mod/tpl/edit_data_list.tpl @@ -0,0 +1,38 @@ + +/*************************************************************************** + * edit_data_list.tpl + * ------------------ + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_EDIT_STYLES_DATA}

    + +

    {L_XS_EDITDATA_EXPLAIN}

    + + + + + + + + + + + + + + + + + +
    {L_XS_EDIT_STYLES_DATA}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLE}{L_XS_EDIT_LC}
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/edit_file.tpl b/phpBB2/xs_mod/tpl/edit_file.tpl new file mode 100644 index 0000000..c80a2fc --- /dev/null +++ b/phpBB2/xs_mod/tpl/edit_file.tpl @@ -0,0 +1,149 @@ + +/*************************************************************************** + * edit_file.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + + + +

    {L_XS_EDIT_TEMPLATES}

    + +

    {L_XS_EDIT_TEMPLATE_COMMENT2}

    + +
    {S_HIDDEN_FIELDS}{S_FILTER} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FILEEDIT_EDIT_NAME} {FULLFILE}
    + {L_XS_FILEEDIT_LOCATION} + + {tree.SEPARATOR} + {tree.ITEM} + + / {FILE} +   + | +   + [{L_XS_FILEEDIT_RELOAD_LC}] + [{L_XS_FILEEDIT_DOWNLOAD_LC}] +
    {L_XS_FILEEDIT_FUNCTIONS}
    + {L_XS_FILEEDIT_REPLACE1}{L_XS_FILEEDIT_REPLACE2} [{L_XS_FILEEDIT_REPLACE_FIRST_LC}] [{L_XS_FILEEDIT_REPLACE_ALL_LC}] [{L_XS_FILEEDIT_REPLACE_UNDO_LC}]
    +
    {L_XS_FILEEDIT_BACKUPS}
    + [{L_XS_FILEEDIT_BACKUPS_SAVE_LC}]
    + + {backup.TIME} [{L_XS_FILEEDIT_BACKUPS_SHOW_LC}] [{L_XS_FILEEDIT_BACKUPS_RESTORE_LC}] [{L_XS_FILEEDIT_BACKUPS_DOWNLOAD_LC}] [{L_XS_FILEEDIT_BACKUPS_DELETE_LC}]
    + +
    {L_XS_FILEEDIT_UPLOAD}
    + {L_XS_FILEEDIT_UPLOAD_FILE} +
    +
    +
    diff --git a/phpBB2/xs_mod/tpl/export.tpl b/phpBB2/xs_mod/tpl/export.tpl new file mode 100644 index 0000000..d52c2a9 --- /dev/null +++ b/phpBB2/xs_mod/tpl/export.tpl @@ -0,0 +1,40 @@ + +/*************************************************************************** + * export.tpl + * ---------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLE}

    + +

    {L_XS_EXPORT_STYLE_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_STYLE}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLES}{L_XS_EXPORT_STYLE_LC}
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/export2.tpl b/phpBB2/xs_mod/tpl/export2.tpl new file mode 100644 index 0000000..777af79 --- /dev/null +++ b/phpBB2/xs_mod/tpl/export2.tpl @@ -0,0 +1,99 @@ + +/*************************************************************************** + * export2.tpl + * ----------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLE}

    + +

    {L_XS_EXPORT_STYLE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_TITLE}
    {L_XS_EXPORT_TPL_NAME}:
    {L_XS_EXPORT_STYLE_NAMES}: + + + +
    + +
    {L_XS_EXPORT_STYLE_NAME}: + + + +
    {L_XS_EXPORT_STYLE_COMMENT}:
    {L_XS_EXPORT_WHERE}: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_WHERE_DOWNLOAD}

    {L_XS_EXPORT_WHERE_STORE}
      {L_XS_EXPORT_WHERE_STORE_DIR}:

    {L_XS_EXPORT_WHERE_FTP}
      {L_XS_FTP_HOST}:
      {L_XS_FTP_LOGIN}:
      {L_XS_FTP_PASS}:
      {L_XS_FTP_REMOTEDIR}:
    {L_XS_EXPORT_FILENAME}:
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/xs_mod/tpl/export_data.tpl b/phpBB2/xs_mod/tpl/export_data.tpl new file mode 100644 index 0000000..183f14f --- /dev/null +++ b/phpBB2/xs_mod/tpl/export_data.tpl @@ -0,0 +1,40 @@ + +/*************************************************************************** + * export_data.tpl + * --------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLES_DATA}

    + +

    {L_XS_EXPORT_STYLES_DATA_EXPLAIN2}

    + + + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_STYLES_DATA}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLES}{L_XS_EXPORT_STYLE_DATA_LC}
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/export_data2.tpl b/phpBB2/xs_mod/tpl/export_data2.tpl new file mode 100644 index 0000000..d55626e --- /dev/null +++ b/phpBB2/xs_mod/tpl/export_data2.tpl @@ -0,0 +1,42 @@ + +/*************************************************************************** + * export_data2.tpl + * ---------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLES_DATA}

    + +

    {L_XS_EXPORT_STYLES_DATA_EXPLAIN2}

    {L_XS_EXPORT_STYLES_DATA_EXPLAIN3}

    + + +
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_STYLES_DATA}
    {L_XS_STYLES}{L_XS_SELECT}
    {styles.STYLE}
    +
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/frame_top.tpl b/phpBB2/xs_mod/tpl/frame_top.tpl new file mode 100644 index 0000000..651edab --- /dev/null +++ b/phpBB2/xs_mod/tpl/frame_top.tpl @@ -0,0 +1,57 @@ + +/*************************************************************************** + * frame_top.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + + + + + + + + + + + + + +
    + + + +
    + +[{left_nav.TEXT}] + +
    + +
    + + \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/frameset.tpl b/phpBB2/xs_mod/tpl/frameset.tpl new file mode 100644 index 0000000..c2dc50b --- /dev/null +++ b/phpBB2/xs_mod/tpl/frameset.tpl @@ -0,0 +1,23 @@ + +/*************************************************************************** + * frameset.tpl + * ------------ + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 57 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + + + + + + +{L_XS_CLICK_HERE_LC} + \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/ftp.tpl b/phpBB2/xs_mod/tpl/ftp.tpl new file mode 100644 index 0000000..6d78b82 --- /dev/null +++ b/phpBB2/xs_mod/tpl/ftp.tpl @@ -0,0 +1,89 @@ + +/*************************************************************************** + * ftp.tpl + * ------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_FTP_TITLE}

    + + +

    {L_XS_FTP_COMMENT1}

    + + +

    {L_XS_FTP_COMMENT2}

    + + + + + + + + + + + +
    {L_ERROR}
    + + + + + + + + + +
     
    {error.MSG}
     
    + + +
    {S_HIDDEN_FIELDS}{S_EXTRA_FIELDS} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FTP_CONFIG} +
    {L_XS_FTP_SELECT_METHOD}: + {L_XS_FTP_SELECT_LOCAL}
    + {L_XS_FTP_SELECT_FTP}
    +
    {L_XS_FTP_SETTINGS}
    {L_XS_FTP_SETTINGS}
    {L_XS_FTP_HOST}{HOST_GUESS}:
    {L_XS_FTP_LOGIN}{LOGIN_GUESS}:
    {L_XS_FTP_PATH}{PATH_GUESS}:
    {L_XS_FTP_PASS}:
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/xs_mod/tpl/import.tpl b/phpBB2/xs_mod/tpl/import.tpl new file mode 100644 index 0000000..a887686 --- /dev/null +++ b/phpBB2/xs_mod/tpl/import.tpl @@ -0,0 +1,90 @@ + +/*************************************************************************** + * import.tpl + * ---------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_IMPORT_STYLES}

    + +

    {L_XS_IMPORT_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FILE}{L_XS_TEMPLATE}{L_XS_STYLES}{L_XS_UPLOAD_TIME}{L_XS_COMMENT}{L_XS_OPTIONS}
    {styles.FILE2}{styles.TEMPLATE}-{list.STYLE}
    {styles.DATE}-{styles.COMMENT}{styles.error.ERROR} + + [{L_XS_IMPORT_LC}] + [{L_XS_LIST_FILES_LC}] + + [{L_XS_DELETE_FILE_LC}] +
    {L_XS_IMPORT_NO_CACHED}
    + +
    + + + +
    + + + + + + + + + + + + + + + +
    {L_XS_ADD_STYLES}
    {L_XS_ADD_STYLES_WEB}: +
    {S_HIDDEN_FIELDS} + + +
    +
    {L_XS_ADD_STYLES_COPY}: +
    {S_HIDDEN_FIELDS} + + +
    +
    {L_XS_ADD_STYLES_UPLOAD}: +
    {S_HIDDEN_FIELDS} + + +
    +
    + +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/import2.tpl b/phpBB2/xs_mod/tpl/import2.tpl new file mode 100644 index 0000000..ad302d4 --- /dev/null +++ b/phpBB2/xs_mod/tpl/import2.tpl @@ -0,0 +1,47 @@ + +/*************************************************************************** + * import2.tpl + * ----------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +
    {S_RETURN} + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_IMPORT_TPL}
    {L_XS_IMPORT_TPL_COMMENT}

    {L_XS_IMPORT_TPL_FILENAME} {STYLE_FILENAME}
    {L_XS_IMPORT_TPL_TPLNAME} {STYLE_TEMPLATE}
    {L_XS_IMPORT_TPL_COMMENT2} {STYLE_COMMENT}
    {L_XS_IMPORT_SELECT_STYLES} + + + + + + +
        ()
    {L_XS_IMPORT_INSTALL_STYLE}     ()
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2/xs_mod/tpl/index.tpl b/phpBB2/xs_mod/tpl/index.tpl new file mode 100644 index 0000000..3555811 --- /dev/null +++ b/phpBB2/xs_mod/tpl/index.tpl @@ -0,0 +1,98 @@ + +/*************************************************************************** + * index.tpl + * --------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_TITLE}

    + +

    {L_XS_MAIN_COMMENT1}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_MAIN_TITLE}
    {L_XS_CONFIGURATION}:
    {L_XS_CONFIGURATION_EXPLAIN}
    [{L_XS_SET_CONFIGURATION_LC}]
    {L_XS_INSTALL_UNINSTALL_STYLES}
    {L_XS_INSTALL_STYLES}:
    {L_XS_INSTALL_STYLES_EXPLAIN}
    [{L_XS_INSTALL_STYLES_LC}]
    {L_XS_UNINSTALL_STYLES}:
    {L_XS_UNINSTALL_STYLES_EXPLAIN}
    [{L_XS_UNINSTALL_STYLES_LC}]
    {L_XS_MANAGE_STYLES}
    {L_XS_DEFAULT_STYLE}:
    {L_XS_DEFAULT_STYLE_EXPLAIN}
    [{L_XS_SET_DEFAULT_STYLE_LC}]
    {L_XS_MANAGE_CACHE}:
    {L_XS_MANAGE_CACHE_EXPLAIN}
    [{L_XS_MANAGE_CACHE_LC}]
    {L_XS_IMPORT_EXPORT_STYLES}
    {L_XS_MAIN_COMMENT2}
    {L_XS_IMPORT_STYLES}:
    {L_XS_IMPORT_STYLES_EXPLAIN}
    [{L_XS_IMPORT_STYLES_LC}]
    {L_XS_EXPORT_STYLES}:
    {L_XS_EXPORT_STYLES_EXPLAIN}
    [{L_XS_EXPORT_STYLES_LC}]
    {L_XS_CLONE_STYLES}:
    {L_XS_CLONE_STYLES_EXPLAIN}
    [{L_XS_CLONE_STYLES_LC}]
    {L_XS_EDIT_TEMPLATES}
    {L_XS_EDIT_TEMPLATES}:
    {L_XS_EDIT_TEMPLATES_EXPLAIN}
    [{L_XS_EDIT_TEMPLATES_LC}]
    {L_XS_EDIT_STYLES_DATA}:
    {L_XS_EDIT_STYLES_DATA_EXPLAIN}
    [{L_XS_EDIT_STYLES_DATA_LC}]
    {L_XS_EXPORT_STYLES_DATA}:
    {L_XS_EXPORT_STYLES_DATA_EXPLAIN}
    [{L_XS_EXPORT_STYLES_DATA_LC}]
    {L_XS_OTHER_FUNCTIONS}
    {L_XS_CHECK_FOR_UPDATES}:
    {L_XS_CHECK_FOR_UPDATES_EXPLAIN}
    [{L_XS_CHECK_FOR_UPDATES_LC}]
    + +
    + diff --git a/phpBB2/xs_mod/tpl/install.tpl b/phpBB2/xs_mod/tpl/install.tpl new file mode 100644 index 0000000..e535f32 --- /dev/null +++ b/phpBB2/xs_mod/tpl/install.tpl @@ -0,0 +1,45 @@ + +/*************************************************************************** + * install.tpl + * ----------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_INSTALL_STYLES}

    + +

    {L_XS_INSTALL_STYLES_EXPLAIN2}

    + +
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_INSTALL_STYLES}
    {L_XS_TEMPLATE}{L_XS_STYLE}{L_XS_INSTALL}{L_XS_SELECT}
    {styles.STYLE}{styles.THEME}{L_XS_INSTALL_LC}
    +
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/message.tpl b/phpBB2/xs_mod/tpl/message.tpl new file mode 100644 index 0000000..65d7473 --- /dev/null +++ b/phpBB2/xs_mod/tpl/message.tpl @@ -0,0 +1,43 @@ + +/*************************************************************************** + * message.tpl + * ----------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + + + + + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + diff --git a/phpBB2/xs_mod/tpl/style_config.tpl b/phpBB2/xs_mod/tpl/style_config.tpl new file mode 100644 index 0000000..0e18ef2 --- /dev/null +++ b/phpBB2/xs_mod/tpl/style_config.tpl @@ -0,0 +1,57 @@ + +/*************************************************************************** + * style_config.tpl + * ---------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 61 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_STYLE_CONFIGURATION}: {TPL}

    + +
    + + + + + + + + + + + + + + + +
    {item.cat.TEXT}
    {item.TEXT}
    {item.EXPLAIN}
    + + +     + + + + + +
    + + + +
    + + + + +
    {S_HIDDEN_FIELDS}
    +
    +
    + +
    diff --git a/phpBB2/xs_mod/tpl/styles.tpl b/phpBB2/xs_mod/tpl/styles.tpl new file mode 100644 index 0000000..dab7b66 --- /dev/null +++ b/phpBB2/xs_mod/tpl/styles.tpl @@ -0,0 +1,108 @@ + +/*************************************************************************** + * styles.tpl + * ---------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_DEF_TITLE}

    + +

    {L_XS_DEF_EXPLAIN}

    + + + + + + + + + +
    {L_XS_STYLES_USERS}
    + + + + + + + + + + +
    {user.NUM}: [{user.ID}] {user.NAME}
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    {L_XS_ID}{L_XS_STYLE}{L_XS_TEMPLATE}{L_XS_USERS}{L_XS_OPTIONS}
    {styles.ID}{styles.STYLE}{styles.TEMPLATE}{styles.TOTAL} + + + + [{L_XS_STYLES_NO_OVERRIDE}] + + + [{L_XS_STYLES_DO_OVERRIDE}] + + + + [{L_XS_STYLES_SET_DEFAULT}] + + [{L_XS_STYLES_MAKE_PUBLIC}] + + + [{L_XS_STYLES_MAKE_ADMIN}] + + +
    + [{L_XS_STYLES_SWITCH_ALL}] +
    + +
    {S_HIDDEN_FIELDS} + +
    + + +   + +
    + +
    diff --git a/phpBB2/xs_mod/tpl/uninstall.tpl b/phpBB2/xs_mod/tpl/uninstall.tpl new file mode 100644 index 0000000..8b5164e --- /dev/null +++ b/phpBB2/xs_mod/tpl/uninstall.tpl @@ -0,0 +1,77 @@ + +/*************************************************************************** + * uninstall.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_UNINSTALL_STYLES}

    + +

    {L_XS_UNINSTALL_STYLES_EXPLAIN2}

    + + + + + + + + + + + + + +
    {L_Information}
    + + + + + + + + + +
     
    {L_XS_STYLE_REMOVED}
     
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_UNINSTALL_STYLES}
    {L_XS_TEMPLATE}{L_XS_STYLE}{L_XS_UNINSTALL}{L_XS_REMOVE_FILES}
    {styles.TPL}{styles.item.THEME}{L_XS_UNINSTALL_LC}{L_XS_UNINSTALL2_LC} 
    +
    \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/update.tpl b/phpBB2/xs_mod/tpl/update.tpl new file mode 100644 index 0000000..6e97903 --- /dev/null +++ b/phpBB2/xs_mod/tpl/update.tpl @@ -0,0 +1,52 @@ + +/*************************************************************************** + * update.tpl + * ---------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + +

    {L_XS_UPDATES}

    + +

    {L_XS_UPDATES_COMMENT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_UPDATES}
    {L_XS_UPDATE_INFO1}
    {L_XS_UPDATE_NAME}{L_XS_UPDATE_TYPE}{L_XS_UPDATE_CURRENT_VERSION}
    {row.NAME}{row.TYPE}{row.VERSION}
    {L_XS_UPDATE_TIMEOUT}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2/xs_mod/tpl/update2.tpl b/phpBB2/xs_mod/tpl/update2.tpl new file mode 100644 index 0000000..42e6cea --- /dev/null +++ b/phpBB2/xs_mod/tpl/update2.tpl @@ -0,0 +1,60 @@ + +/*************************************************************************** + * update2.tpl + * ----------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 55 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + +

    {L_XS_UPDATES}

    + +

    {L_XS_UPDATES_COMMENT2}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_UPDATE_NAME}{L_XS_UPDATE_TYPE}{L_XS_UPDATE_CURRENT_VERSION}{L_XS_UPDATE_LATEST_VERSION}{L_XS_UPDATE_DOWNLOADINFO}{L_XS_UPDATE_FILEINFO}
    {row.ITEM}{row.TYPE}{row.VERSION}{row.update.VERSION} + [{L_XS_DOWNLOAD_LC}] +   + [{L_XS_IMPORT_LC}] + [{L_XS_INFO_LC}] {row.noupdate.MESSAGE}[{L_XS_INFO_LC}] {row.error.ERROR} 
    {COUNT_TOTAL}, {COUNT_ERROR}, {COUNT_UPDATE}
    + +
    diff --git a/phpBB2/xs_mod/tpl/xs_footer.tpl b/phpBB2/xs_mod/tpl/xs_footer.tpl new file mode 100644 index 0000000..6c8cc65 --- /dev/null +++ b/phpBB2/xs_mod/tpl/xs_footer.tpl @@ -0,0 +1,36 @@ + +/*************************************************************************** + * xs_footer.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:55 + * + ***************************************************************************/ + + + + + + +
    Powered by phpBB © phpBB Group and by eXtreme Styles mod © Vjacheslav Trushkin.
    + + + \ No newline at end of file diff --git a/phpBB2/xs_mod/tpl/xs_header.tpl b/phpBB2/xs_mod/tpl/xs_header.tpl new file mode 100644 index 0000000..1d2be23 --- /dev/null +++ b/phpBB2/xs_mod/tpl/xs_header.tpl @@ -0,0 +1,45 @@ + +/*************************************************************************** + * xs_header.tpl + * ------------- + * copyright : (C) 2003 - 2005 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.3.1 + * + * file revision : 72 + * project revision : 78 + * last modified : 05 Dec 2005 13:54:54 + * + ***************************************************************************/ + + + + + + + + + + + + ', + 'S_HIDDEN_FIELDS' => '', + )); + +if(!defined('NO_XS_HEADER')) +{ + $template->set_filenames(array( + 'xs_header' => XS_TPL_PATH . 'xs_header.tpl', + 'xs_footer' => XS_TPL_PATH . 'xs_footer.tpl', + )); + $template->preparse = 'xs_header'; + $template->postparse = 'xs_footer'; + $template->assign_block_vars('nav_left',array('ITEM' => '' . $lang['xs_menu'] . '')); +} + + +header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + +// +// Check compatibility with mods +// +if(defined('CACHE_THEMES') && @function_exists('cache_themes')) +{ + define('XS_MODS_CATEGORY_HIERARCHY', true); +} +if(isset($theme['theme_public'])) +{ + define('XS_MODS_ADMIN_TEMPLATES', true); +} + + +// +// Get FTP configuration +// +function get_ftp_config($action, $post = array(), $allow_local = false, $show_error = '') +{ + global $template, $board_config, $db, $lang, $HTTP_POST_VARS, $HTTP_SERVER_VARS; + $board_config['xs_ftp_local'] = false; + // check if ftp can be used + if(!@function_exists('ftp_connect')) + { + if($allow_local && xs_dir_writable('../templates/')) + { + $board_config['xs_ftp_local'] = true; + return true; + } + xs_error($lang['xs_ftp_error_fatal']); + } + // check if we have configuration + if(!empty($HTTP_POST_VARS['get_ftp_config'])) + { + $vars = array('xs_ftp_host', 'xs_ftp_login', 'xs_ftp_path'); + for($i=0; $isql_query($sql); + } + } + $board_config['xs_ftp_pass'] = stripslashes($HTTP_POST_VARS['xs_ftp_pass']); + $board_config['xs_ftp_local'] = empty($HTTP_POST_VARS['xs_ftp_local']) ? false : true; + return true; + } + // check ftp configuration + $xs_ftp_host = $board_config['xs_ftp_host']; + if(empty($xs_ftp_host)) + { + $str = $HTTP_SERVER_VARS['HTTP_HOST']; + $template->assign_vars(array( + 'HOST_GUESS' => str_replace(array('{HOST}', '{CLICK}'), array($str, 'document.ftp.xs_ftp_host.value=\''.$str.'\''), $lang['xs_ftp_host_guess']) + )); + } + $dir = getcwd(); + $xs_ftp_login = $board_config['xs_ftp_login']; + if(empty($xs_ftp_login)) + { + if(substr($dir, 0, 6) === '/home/') + { + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, 0, $pos); + $template->assign_vars(array( + 'LOGIN_GUESS' => str_replace(array('{LOGIN}', '{CLICK}'), array($str, 'document.ftp.xs_ftp_login.value=\''.$str.'\''), $lang['xs_ftp_login_guess']) + )); + } + } + } + $xs_ftp_path = $board_config['xs_ftp_path']; + if(empty($xs_ftp_path)) + { + if(substr($dir, 0, 6) === '/home/'); + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, $pos + 1); + $pos = strrpos($str, 'admin'); + if($pos) + { + $str = substr($str, 0, $pos-1); + $template->assign_vars(array( + 'PATH_GUESS' => str_replace(array('{PATH}', '{CLICK}'), array($str, 'document.ftp.xs_ftp_path.value=\''.$str.'\''), $lang['xs_ftp_path_guess']) + )); + } + } + } + if($allow_local && xs_dir_writable('../templates/')) + { + $template->assign_block_vars('xs_ftp_local', array()); + } + else + { + $template->assign_block_vars('xs_ftp_nolocal', array()); + } + $str = ''; + foreach($post as $var => $value) + { + $str .= ''; + } + $template->assign_vars(array( + 'FORM_ACTION' => $action, + 'S_EXTRA_FIELDS' => $str, + 'XS_FTP_HOST' => $xs_ftp_host, + 'XS_FTP_LOGIN' => $xs_ftp_login, + 'XS_FTP_PATH' => $xs_ftp_path, + )); + if($show_error) + { + $template->assign_block_vars('error', array('MSG' => $show_error)); + } + $template->set_filenames(array('config' => XS_TPL_PATH . 'ftp.tpl')); + $template->pparse('config'); + return false; +} + +// connect ftp +function xs_ftp_connect($action, $post = array(), $allow_local = false) +{ + global $ftp, $board_config, $HTTP_POST_VARS, $phpEx, $lang, $template; + $HTTP_POST_VARS['get_ftp_config'] = ''; + if($allow_local && !empty($board_config['xs_ftp_local'])) + { + $ftp = XS_FTP_LOCAL; + return true; + } + $ftp = @ftp_connect($board_config['xs_ftp_host']); + if(!$ftp) + { + get_ftp_config($action, $post, $allow_local, str_replace('{HOST}', $board_config['xs_ftp_host'], $lang['xs_ftp_error_connect'])); + } + $res = @ftp_login($ftp, $board_config['xs_ftp_login'], $board_config['xs_ftp_pass']); + if(!$res) + { + get_ftp_config($action, $post, $allow_local, $lang['xs_ftp_error_login']); + } + $res = @ftp_chdir($ftp, $board_config['xs_ftp_path']); + if(!$res) + { + get_ftp_config($action, $post, $allow_local, str_replace('{DIR}', $board_config['xs_ftp_path'], $lang['xs_ftp_error_chdir'])); + } + // check current directory + $current_dir = @ftp_pwd($ftp); + $list = @ftp_nlist($ftp, $current_dir); + for($i=0; $i $tpl, + 'styles' => $items, + 'date' => @filemtime($filename), + 'comment' => $comment, + 'offset' => $header_size, + 'filename' => $filename, + 'filesize' => $filesize, + ); +} + + +// check if cache is writable +function xs_check_cache($filename) +{ + // check if filename is valid + global $str, $template, $lang; + if(substr($filename, 0, strlen($template->cachedir)) !== $template->cachedir) + { + $str .= $lang['xs_check_filename'] . "
    \n"; + return false; + } + else + { + // try to open file + $file = @fopen($filename, 'w'); + if(!$file) + { + $str .= sprintf($lang['xs_check_openfile1'], $filename) . "
    \n"; + // try to create directories + $dir = substr($filename, strlen($template->cachedir), strlen($filename)); + $dirs = explode('/', $dir); + $path = $template->cachedir; + @umask(0); + if(!@is_dir($path)) + { + $str .= sprintf($lang['xs_check_nodir'], $path) . "
    \n"; + if(!@mkdir($path)) + { + $str .= sprintf($lang['xs_check_nodir2'], $path) . "
    \n"; + return false; + } + else + { + $str .= sprintf($lang['xs_check_createddir'], $path) . "
    \n"; + @chmod($path, 0777); + } + } + else + { + $str .= sprintf($lang['xs_check_dir'] , $path) . "
    \n"; + } + if(count($dirs) > 0) + for($i=0; $i0) + { + $path .= '/'; + } + $path .= $dirs[$i]; + if(!@is_dir($path)) + { + $str .= sprintf($lang['xs_check_nodir'], $path) . "
    \n"; + if(!@mkdir($path)) + { + $str .= sprintf($lang['xs_check_nodir2'], $path) . "
    \n"; + return false; + } + else + { + $str .= sprintf($lang['xs_check_createddir'], $path) . "
    \n"; + @chmod($path, 0777); + } + } + else + { + $str .= sprintf($lang['xs_check_dir'] , $path) . "
    \n"; + } + } + // try to open file again after directories were created + $file = @fopen($filename, 'w'); + } + if(!$file) + { + $str .= sprintf($lang['xs_check_openfile2'], $filename) . "
    \n"; + return false; + } + $str .= sprintf($lang['xs_check_ok'], $filename) . "
    \n"; + fputs($file, ' '); + fclose($file); + @chmod($filename, 0777); + return true; + } +} + +// run ftp commands +function ftp_myexec($list) +{ + global $ftp, $ftp_error, $ftp_log, $ftp_host, $ftp_login, $ftp_pass, $lang; + $ftp_error = ''; + $ftp_log = array(); + if(empty($ftp)) + { + // checking ftp extensions + if(!@function_exists('ftp_connect')) + { + $ftp_log[] = $ftp_error = $lang['xs_ftp_log_disabled']; + return false; + } + // connect to server + $ftp_log[] = str_replace('{HOST}', "{$ftp_login}:*@{$ftp_host}", $lang['xs_ftp_log_connecting']); + $ftp = @ftp_connect($ftp_host); + if(!$ftp) + { + $ftp_log[] = $ftp_error = str_replace('{HOST}', $ftp_host, $lang['xs_ftp_log_noconnect']); + return false; + } + $ftp_log[] = $lang['xs_ftp_log_connected']; + // logging in + $logged_in = @ftp_login($ftp, $ftp_login, $ftp_pass); + if(!$logged_in) + { + $ftp_log[] = $ftp_error = str_replace('{USER}', $ftp_login, $lang['xs_ftp_log_nologin']); + @ftp_close($ftp); + return false; + } + $ftp_log[] = $lang['xs_ftp_log_loggedin']; + } + if(!ftp_myexec2($ftp, $list)) + { + @ftp_close($ftp); + return false; + } + @ftp_close($ftp); + $ftp_log[] = $lang['xs_ftp_log_end']; + return true; +} + +// remove all files via ftp +function ftp_remove_all($ftp) +{ + // get current directory + $root_dir = @ftp_pwd($ftp); + // get list of files + $files = @ftp_nlist($ftp, $root_dir); + // remove files/directories + for($i=0; $isql_query($sql)) + { + return false; + } + $row = $db->sql_fetchrow($result); + if(!empty($row['themes_id'])) + { + return false; + } + $vars = array(); + $values = array(); + foreach($data as $var => $value) + { + $vars[] = xs_sql($var); + $values[] = xs_sql(stripslashes($value)); + } + $sql = "INSERT INTO " . THEMES_TABLE . " (" . implode(', ', $vars) . ") VALUES ('" . implode("', '", $values) . "')"; + if(!$result = $db->sql_query($sql)) + { + return false; + } + return true; +} + +// generate theme_info.cfg for template +function xs_generate_themeinfo($theme_rowset, $export, $exportas, $total) +{ + global $HTTP_POST_VARS; + $vars = array('template_name', 'style_name', 'head_stylesheet', 'body_background', 'body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color1', 'tr_color2', 'tr_color3', 'tr_class1', 'tr_class2', 'tr_class3', 'th_color1', 'th_color2', 'th_color3', 'th_class1', 'th_class2', 'th_class3', 'td_color1', 'td_color2', 'td_color3', 'td_class1', 'td_class2', 'td_class3', 'fontface1', 'fontface2', 'fontface3', 'fontsize1', 'fontsize2', 'fontsize3', 'fontcolor1', 'fontcolor2', 'fontcolor3', 'span_class1', 'span_class2', 'span_class3', 'img_size_poll', 'img_size_privmsg'); + $theme_data = ''; // Done this to prevent highlighting editors getting confused! + return $theme_data; +} + +// Checks if directory is writable +function xs_dir_writable($dir) +{ + $filename = 'tmp_' . time(); + $f = @fopen($dir . $filename, 'wb'); + if($f) + { + fclose($f); + @unlink($dir . $filename); + return true; + } + return false; +} + +// Write to file. Create directory if necessary +function xs_write_file($filename, $data) +{ + $f = @fopen($filename, 'wb'); + if(!$f) + { + // try to create directories + $pos = strrpos($filename, '/'); + if(!$pos) + { + return false; + } + $dir = substr($filename, 0, $pos); + xs_create_dir($dir); + $f = @fopen($filename, 'wb'); + if(!$f) + { + return false; + } + } + fwrite($f, $data); + fclose($f); + @chmod($filename, 0777); + return true; +} + +// Create local directory +function xs_create_dir($dir) +{ + if(!$dir) + { + return false; + } + // remove trailing / + if(substr($dir, strlen($dir) - 1) === '/') + { + $dir = substr($dir, 0, strlen($dir) - 1); + if(!$dir) + { + return false; + } + } + if($dir === '.' || $dir === '..') + { + return false; + } + $res = @mkdir($dir, 0777); + if($res) + { + return true; + } + // try to create previous directory + $pos = strrpos($dir, '/'); + if(!$pos) + { + return false; + } + $dir1 = substr($dir, 0, $pos); + $dir2 = substr($dir, $pos+1); + if($dir2 === '.' || $dir2 === '..') + { + return false; + } + if(!xs_create_dir($dir1)) + { + return false; + } + $res = @mkdir($dir2, 0777); + return $res ? true : false; +} + +// replacement for in_array() (because of compatibility problems) +function xs_in_array($needle, $haystack) +{ + for($i=0; $iset_filenames(array('errormsg' => XS_TPL_PATH . 'message.tpl')); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Error'], + 'MESSAGE_TEXT' => $error + )); + $template->pparse('errormsg'); + xs_exit(); +} + +// show message and exit +function xs_message($title, $message) +{ + global $template; + $template->set_filenames(array('msg' => XS_TPL_PATH . 'message.tpl')); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $title, + 'MESSAGE_TEXT' => $message + )); + $template->pparse('msg'); + xs_exit(); +} + +// pack style to .style +function pack_style($name, $newname, $themes, $comment) +{ + /* + header format (v0.01): + - header + - header size (4 bytes) + - file size (4 bytes) + - number of entries (1 byte) + - entries sizes (number_of_entries bytes) + - entries + - footer + - gzcompressed tar of style (no crc check in tar) + + entries: + - template name + - comment + - style names + */ + global $phpbb_root_path, $template_dir; + $data = gzcompress(pack_dir($phpbb_root_path . $template_dir . $name, '', $name, $newname)); + $items_data = chr(strlen($newname)) . chr(strlen($comment)); + $items_str = $newname . $comment; + for($i=0; $i $base_dir, + 'mode' => '40777', + 'uid' => '0', + 'gid' => '0', + 'size' => decoct(0), + 'mtime' => decoct(@filemtime($dir)), + 'checksum' => '0', // ignore checksum + 'typeflag' => '5', + 'link' => '', + 'magic' => "ustar", + 'version' => '', + 'uname' => 'user', + 'gname' => 'group', + 'devmajor' => '', + 'devminor' => '', + 'prefix' => '', + 'extra' => '' + ); + $header_str = pack(TAR_HEADER_PACK, $header['filename'], $header['mode'], $header['uid'], $header['gid'], $header['size'], $header['mtime'], $header['checksum'], $header['typeflag'], $header['linkname'], $header['magic'], $header['version'], $header['uname'], $header['gname'], $header['devmajor'], $header['devminor'], $header['prefix'], $header['extra']); + $file_str = ''; + $extra_str = ''; + $str .= $header_str . $file_str . $extra_str; + // add all files + for($i=0; $i'; + if($header['filename'] === './overall_header.tpl') + { + echo 'overall_header.tpl:

    ', nl2br(htmlspecialchars($file_str)), '


    '; + }*/ + $size = strlen($file_str); + $header['size'] = decoct($size); + $header['typeflag'] = '0'; + $header['mode'] = '100666'; + $full_size = floor(($size + 511) / 512) * 512; + $extra_str = $full_size > $size ? str_repeat("\0", $full_size - $size) : ''; + $header_str = pack(TAR_HEADER_PACK, $header['filename'], $header['mode'], $header['uid'], $header['gid'], $header['size'], $header['mtime'], $header['checksum'], $header['typeflag'], $header['linkname'], $header['magic'], $header['version'], $header['uname'], $header['gname'], $header['devmajor'], $header['devminor'], $header['prefix'], $header['extra']); + $str .= $header_str . $file_str . $extra_str; + } + // add all directories + for($i=0; $isql_query($sql); +} + +// send file +function xs_download_file($filename, $content, $content_type = '') +{ + if(empty($content_type)) + { + $content_type = 'application/unknown'; + } + header('Content-Type: ' . $content_type); + header('Content-Length: ' . strlen($content)); + header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + if($filename) + { + header('Content-Disposition: inline; filename="' . $filename . '"'); + } + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + echo $content; +} + +// strip slashes for sql +function xs_sql($sql, $stip = false) +{ + if($strip) + { + $sql = stripslashes($sql); + } + return str_replace("'", "''", $sql); +} + +// clean template name +function xs_tpl_name($name) +{ + return str_replace(array('\\', '/', "'", '"'), array('','','',''), $name); +} + +// close database and maybe do some other stuff +function xs_exit() +{ + global $db; + if(isset($db)) + { + $db->sql_close(); + } + exit; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_include_import.php b/phpBB2_old/admin/xs_include_import.php new file mode 100644 index 0000000..fd57285 --- /dev/null +++ b/phpBB2_old/admin/xs_include_import.php @@ -0,0 +1,121 @@ + 'upload', + 'local' => $items[$i]['tmp'], + 'remote' => $items[$i]['file'] + ); + } + } + return $arr; +} + +function generate_actions_dirs($dir = '') +{ + global $dirs; + $arr = array(); + if($dir && substr($dir, strlen($dir) - 1) !== '/') + { + $dir .= '/'; + } + if($dir) + { + // remove trailing / + $pos = strrpos($dir, '/'); + $str = $pos === strlen($dir) - 1 ? substr($dir, 0, $pos) : $dir; + // get last directory name + $pos = strrpos($str, '/'); + $str = $pos ? substr($str, $pos + 1) : $str; + $arr[] = array( + 'command' => 'mkdir', + 'dir' => $str, + 'ignore' => true + ); + $arr[] = array( + 'command' => 'chdir', + 'dir' => $str + ); + } + $arr[] = array( + 'command' => 'exec', + 'list' => generate_actions_files($dir) + ); + // create subdirectories + $len = strlen($dir); + for($i=0; $i 'exec', + 'list' => generate_actions_dirs($dirs[$i]) + ); + } + } + } + return $arr; +} + +function generate_style_name($str) +{ + $str = 'style_' . $str . '_%02d' . STYLE_EXTENSION; + $num = 0; + $found = true; + while($found) + { + $filename = sprintf($str, $num); + $found = @file_exists(XS_TEMP_DIR.$filename); + $num ++; + } + return $filename; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_include_import2.php b/phpBB2_old/admin/xs_include_import2.php new file mode 100644 index 0000000..ed3fbb4 --- /dev/null +++ b/phpBB2_old/admin/xs_include_import2.php @@ -0,0 +1,509 @@ +
    ' . $lang['xs_import_back']); +} +if($header['filesize'] != filesize($file)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_style_header_error_incomplete'] . '

    ' . $lang['xs_import_back']); +} +$f = @fopen($file, 'rb'); +if(!$f) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_error_cannot_open'] . '

    ' . $lang['xs_import_back']); +} +if($write_local) +{ + $write_local_dir .= $header['template'] . '/'; +} +fseek($f, $header['offset'], 0); +$str = fread($f, filesize($file) - $header['offset']); +fclose($f); +$str = @gzuncompress($str); +if($str === false || !strlen($str)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_error_decompress_style'] . '

    ' . $lang['xs_import_back']); +} +// +// unpack tar file +// +$pos = 0; +$tmp_name = XS_TEMP_DIR . 'file_' . $filename . '_%02d.tmp'; +$tmp_count = 0; +$files = array(); // complete list of files +$list_data = array(); // result for list +$dirs = array(); // complete list of directories +$items = array(); // data +while($pos < strlen($str)) +{ + $data = unpack(TAR_HEADER_UNPACK, substr($str, $pos, 512)); + $pos += 512; + $data['filename'] = trim($data['prefix']) . trim($data['filename']); + if(substr($data['filename'], 0, 2) === './') + { + $data['filename'] = substr($data['filename'], 2); + } + if($write_local) + { + $save_filename = $write_local_dir . $data['filename']; + } + else + { + $pos1 = strrpos($data['filename'], '/'); + if($pos1) + { + $data['dir'] = substr($data['filename'], 0, $pos1); + $data['file'] = substr($data['filename'], $pos1 + 1); + } + else + { + $data['dir'] = ''; + $data['file'] = $data['filename']; + } + } + $data['size'] = octdec(trim($data['size'])); + $data['mtime'] = octdec(trim($data['mtime'])); + $data['typeflag'] = octdec(trim($data['typeflag'])); + if($data['typeflag'] === '5') + { + $data['size'] = 0; + if($write_local) + { + xs_create_dir($save_filename); + } + } + $data['offset'] = $pos; + $contents = $data['size'] > 0 ? substr($str, $pos, $data['size']) : ''; + $data['tmp'] = ''; + // adding to list + $is_file = true; + if(intval($data['typeflag']) == 5) + { + $is_file = false; + if($data['filename']) + { + $dirs[] = $data['filename']; + } + } + else + { + if($data['filename']) + { + if(!$list_only) + { + if($write_local) + { + $res = xs_write_file($save_filename, $contents); + if(!$res) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error(str_replace('{FILE}', $save_filename, $lang['xs_error_cannot_create_file']) . '

    ' . $lang['xs_import_back']); + } + } + else + { + // write to temporary file + $tmp_count ++; + $data['tmp'] = sprintf($tmp_name, $tmp_count); + $f = @fopen($data['tmp'], 'wb'); + if(!$f) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error(str_replace('{FILE}', $data['tmp'], $lang['xs_error_cannot_create_tmp']) . '

    ' . $lang['xs_import_back']); + } + fwrite($f, $contents); + fclose($f); + } + } + elseif(!empty($get_file) && $get_file === $data['filename']) + { + // show contents of file + $f = $data['filename']; + $ext = strtolower(substr($f, strlen($f) - 4)); + if(empty($HTTP_GET_VARS['get_content']) && xs_in_array($ext, $text_types)) + { + // show as text + $str = '
    ' . $lang['xs_import_list_contents'] . $f . ' [' . $lang['xs_import_download_lc'] . ']

    '; + $str .= ''; + $str .= '
    '; + xs_message($lang['Information'], $str); + } + else + { + $do_download = false; + $content_type = ''; + if(empty($HTTP_GET_VARS['get_content'])) + { + if($ext === '.gif') + { + $content_type = 'image/gif'; + } + elseif($ext === '.jpg' || $ext === '.jpe' || $ext === 'jpeg') + { + $content_type = 'image/jpeg'; + } + elseif($ext === '.png') + { + $content_type = 'image/png'; + } + else + { + $do_download = true; + } + } + else + { + $do_download = true; + } + xs_download_file($do_download ? basename($f) : '', $contents, $content_type); + xs_exit(); + } + } + else + { + $list_data[$data['filename']] = $data; + } + $files[] = $data['filename']; + } + } + if(empty($data['filename']) && $is_file) + { + $pos = strlen($str); + } + else + { + $pos += floor(($data['size'] + 511) / 512) * 512; + if($is_file) + { + $items[] = $data; + } + } +} +if($list_only) +{ + // show list of files. used for debug. + $str = '
    '; + // main data + $str .= $lang['xs_import_list_filename'] . $header['filename'] . '
    '; + $str .= $lang['xs_import_list_template'] . $header['template'] . '
    '; + $str .= $lang['xs_import_list_comment'] . $header['comment'] . '
    '; + $str .= $lang['xs_import_list_styles'] . implode(', ', $header['styles']) . '
    '; + ksort($list_data); + $str .= '
    ' . str_replace('{NUM}', count($list_data), $lang['xs_import_list_files']) . '
    '; + $str .= '
    + + + + + + +
    diff --git a/phpBB2_old/admin/admin_board.php b/phpBB2_old/admin/admin_board.php new file mode 100644 index 0000000..4d5fcc6 --- /dev/null +++ b/phpBB2_old/admin/admin_board.php @@ -0,0 +1,329 @@ +sql_query($sql)) +{ + message_die(CRITICAL_ERROR, "Could not query config information in admin_board", "", __LINE__, __FILE__, $sql); +} +else +{ + while( $row = $db->sql_fetchrow($result) ) + { + $config_name = $row['config_name']; + $config_value = $row['config_value']; + $default_config[$config_name] = isset($HTTP_POST_VARS['submit']) ? str_replace("'", "\'", $config_value) : $config_value; + + $new[$config_name] = ( isset($HTTP_POST_VARS[$config_name]) ) ? $HTTP_POST_VARS[$config_name] : $default_config[$config_name]; + + if ($config_name == 'cookie_name') + { + $cookie_name = str_replace('.', '_', $new['cookie_name']); + } + + if( isset($HTTP_POST_VARS['submit']) ) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET + config_value = '" . str_replace("\'", "''", $new[$config_name]) . "' + WHERE config_name = '$config_name'"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Failed to update general configuration for $config_name", "", __LINE__, __FILE__, $sql); + } + } + } + + if( isset($HTTP_POST_VARS['submit']) ) + { + $message = $lang['Config_updated'] . "

    " . sprintf($lang['Click_return_config'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } +} + +$style_select = style_select($new['default_style'], 'default_style', "../templates"); +$lang_select = language_select($new['default_lang'], 'default_lang', "language"); +$timezone_select = tz_select($new['board_timezone'], 'board_timezone'); + +$disable_board_yes = ( $new['board_disable'] ) ? "checked=\"checked\"" : ""; +$disable_board_no = ( !$new['board_disable'] ) ? "checked=\"checked\"" : ""; + +$cookie_secure_yes = ( $new['cookie_secure'] ) ? "checked=\"checked\"" : ""; +$cookie_secure_no = ( !$new['cookie_secure'] ) ? "checked=\"checked\"" : ""; + +$html_tags = $new['allow_html_tags']; + +$override_user_style_yes = ( $new['override_user_style'] ) ? "checked=\"checked\"" : ""; +$override_user_style_no = ( !$new['override_user_style'] ) ? "checked=\"checked\"" : ""; + +$html_yes = ( $new['allow_html'] ) ? "checked=\"checked\"" : ""; +$html_no = ( !$new['allow_html'] ) ? "checked=\"checked\"" : ""; + +$bbcode_yes = ( $new['allow_bbcode'] ) ? "checked=\"checked\"" : ""; +$bbcode_no = ( !$new['allow_bbcode'] ) ? "checked=\"checked\"" : ""; + +$activation_none = ( $new['require_activation'] == USER_ACTIVATION_NONE ) ? "checked=\"checked\"" : ""; +$activation_user = ( $new['require_activation'] == USER_ACTIVATION_SELF ) ? "checked=\"checked\"" : ""; +$activation_admin = ( $new['require_activation'] == USER_ACTIVATION_ADMIN ) ? "checked=\"checked\"" : ""; + +$confirm_yes = ($new['enable_confirm']) ? 'checked="checked"' : ''; +$confirm_no = (!$new['enable_confirm']) ? 'checked="checked"' : ''; + +$board_email_form_yes = ( $new['board_email_form'] ) ? "checked=\"checked\"" : ""; +$board_email_form_no = ( !$new['board_email_form'] ) ? "checked=\"checked\"" : ""; + +$gzip_yes = ( $new['gzip_compress'] ) ? "checked=\"checked\"" : ""; +$gzip_no = ( !$new['gzip_compress'] ) ? "checked=\"checked\"" : ""; + +$privmsg_on = ( !$new['privmsg_disable'] ) ? "checked=\"checked\"" : ""; +$privmsg_off = ( $new['privmsg_disable'] ) ? "checked=\"checked\"" : ""; + +$prune_yes = ( $new['prune_enable'] ) ? "checked=\"checked\"" : ""; +$prune_no = ( !$new['prune_enable'] ) ? "checked=\"checked\"" : ""; + +$smile_yes = ( $new['allow_smilies'] ) ? "checked=\"checked\"" : ""; +$smile_no = ( !$new['allow_smilies'] ) ? "checked=\"checked\"" : ""; + +$sig_yes = ( $new['allow_sig'] ) ? "checked=\"checked\"" : ""; +$sig_no = ( !$new['allow_sig'] ) ? "checked=\"checked\"" : ""; + +$namechange_yes = ( $new['allow_namechange'] ) ? "checked=\"checked\"" : ""; +$namechange_no = ( !$new['allow_namechange'] ) ? "checked=\"checked\"" : ""; + +$avatars_local_yes = ( $new['allow_avatar_local'] ) ? "checked=\"checked\"" : ""; +$avatars_local_no = ( !$new['allow_avatar_local'] ) ? "checked=\"checked\"" : ""; +$avatars_remote_yes = ( $new['allow_avatar_remote'] ) ? "checked=\"checked\"" : ""; +$avatars_remote_no = ( !$new['allow_avatar_remote'] ) ? "checked=\"checked\"" : ""; +$avatars_upload_yes = ( $new['allow_avatar_upload'] ) ? "checked=\"checked\"" : ""; +$avatars_upload_no = ( !$new['allow_avatar_upload'] ) ? "checked=\"checked\"" : ""; + +$smtp_yes = ( $new['smtp_delivery'] ) ? "checked=\"checked\"" : ""; +$smtp_no = ( !$new['smtp_delivery'] ) ? "checked=\"checked\"" : ""; + +$template->set_filenames(array( + "body" => "admin/board_config_body.tpl") +); + +// +// Escape any quotes in the site description for proper display in the text +// box on the admin page +// +$new['site_desc'] = str_replace('"', '"', $new['site_desc']); +$new['sitename'] = str_replace('"', '"', strip_tags($new['sitename'])); +$template->assign_vars(array( + "S_CONFIG_ACTION" => append_sid("admin_board.$phpEx"), + + "L_YES" => $lang['Yes'], + "L_NO" => $lang['No'], + "L_CONFIGURATION_TITLE" => $lang['General_Config'], + "L_CONFIGURATION_EXPLAIN" => $lang['Config_explain'], + "L_GENERAL_SETTINGS" => $lang['General_settings'], + "L_SERVER_NAME" => $lang['Server_name'], + "L_SERVER_NAME_EXPLAIN" => $lang['Server_name_explain'], + "L_SERVER_PORT" => $lang['Server_port'], + "L_SERVER_PORT_EXPLAIN" => $lang['Server_port_explain'], + "L_SCRIPT_PATH" => $lang['Script_path'], + "L_SCRIPT_PATH_EXPLAIN" => $lang['Script_path_explain'], + "L_SITE_NAME" => $lang['Site_name'], + "L_SITE_DESCRIPTION" => $lang['Site_desc'], + "L_DISABLE_BOARD" => $lang['Board_disable'], + "L_DISABLE_BOARD_EXPLAIN" => $lang['Board_disable_explain'], + "L_ACCT_ACTIVATION" => $lang['Acct_activation'], + "L_NONE" => $lang['Acc_None'], + "L_USER" => $lang['Acc_User'], + "L_ADMIN" => $lang['Acc_Admin'], + "L_VISUAL_CONFIRM" => $lang['Visual_confirm'], + "L_VISUAL_CONFIRM_EXPLAIN" => $lang['Visual_confirm_explain'], + "L_COOKIE_SETTINGS" => $lang['Cookie_settings'], + "L_COOKIE_SETTINGS_EXPLAIN" => $lang['Cookie_settings_explain'], + "L_COOKIE_DOMAIN" => $lang['Cookie_domain'], + "L_COOKIE_NAME" => $lang['Cookie_name'], + "L_COOKIE_PATH" => $lang['Cookie_path'], + "L_COOKIE_SECURE" => $lang['Cookie_secure'], + "L_COOKIE_SECURE_EXPLAIN" => $lang['Cookie_secure_explain'], + "L_SESSION_LENGTH" => $lang['Session_length'], + "L_PRIVATE_MESSAGING" => $lang['Private_Messaging'], + "L_INBOX_LIMIT" => $lang['Inbox_limits'], + "L_SENTBOX_LIMIT" => $lang['Sentbox_limits'], + "L_SAVEBOX_LIMIT" => $lang['Savebox_limits'], + "L_DISABLE_PRIVATE_MESSAGING" => $lang['Disable_privmsg'], + "L_ENABLED" => $lang['Enabled'], + "L_DISABLED" => $lang['Disabled'], + "L_ABILITIES_SETTINGS" => $lang['Abilities_settings'], + "L_MAX_POLL_OPTIONS" => $lang['Max_poll_options'], + "L_FLOOD_INTERVAL" => $lang['Flood_Interval'], + "L_FLOOD_INTERVAL_EXPLAIN" => $lang['Flood_Interval_explain'], + "L_BOARD_EMAIL_FORM" => $lang['Board_email_form'], + "L_BOARD_EMAIL_FORM_EXPLAIN" => $lang['Board_email_form_explain'], + "L_TOPICS_PER_PAGE" => $lang['Topics_per_page'], + "L_POSTS_PER_PAGE" => $lang['Posts_per_page'], + "L_HOT_THRESHOLD" => $lang['Hot_threshold'], + "L_DEFAULT_STYLE" => $lang['Default_style'], + "L_OVERRIDE_STYLE" => $lang['Override_style'], + "L_OVERRIDE_STYLE_EXPLAIN" => $lang['Override_style_explain'], + "L_DEFAULT_LANGUAGE" => $lang['Default_language'], + "L_DATE_FORMAT" => $lang['Date_format'], + "L_SYSTEM_TIMEZONE" => $lang['System_timezone'], + "L_ENABLE_GZIP" => $lang['Enable_gzip'], + "L_ENABLE_PRUNE" => $lang['Enable_prune'], + "L_ALLOW_HTML" => $lang['Allow_HTML'], + "L_ALLOW_BBCODE" => $lang['Allow_BBCode'], + "L_ALLOWED_TAGS" => $lang['Allowed_tags'], + "L_ALLOWED_TAGS_EXPLAIN" => $lang['Allowed_tags_explain'], + "L_ALLOW_SMILIES" => $lang['Allow_smilies'], + "L_SMILIES_PATH" => $lang['Smilies_path'], + "L_SMILIES_PATH_EXPLAIN" => $lang['Smilies_path_explain'], + "L_ALLOW_SIG" => $lang['Allow_sig'], + "L_MAX_SIG_LENGTH" => $lang['Max_sig_length'], + "L_MAX_SIG_LENGTH_EXPLAIN" => $lang['Max_sig_length_explain'], + "L_ALLOW_NAME_CHANGE" => $lang['Allow_name_change'], + "L_AVATAR_SETTINGS" => $lang['Avatar_settings'], + "L_ALLOW_LOCAL" => $lang['Allow_local'], + "L_ALLOW_REMOTE" => $lang['Allow_remote'], + "L_ALLOW_REMOTE_EXPLAIN" => $lang['Allow_remote_explain'], + "L_ALLOW_UPLOAD" => $lang['Allow_upload'], + "L_MAX_FILESIZE" => $lang['Max_filesize'], + "L_MAX_FILESIZE_EXPLAIN" => $lang['Max_filesize_explain'], + "L_MAX_AVATAR_SIZE" => $lang['Max_avatar_size'], + "L_MAX_AVATAR_SIZE_EXPLAIN" => $lang['Max_avatar_size_explain'], + "L_AVATAR_STORAGE_PATH" => $lang['Avatar_storage_path'], + "L_AVATAR_STORAGE_PATH_EXPLAIN" => $lang['Avatar_storage_path_explain'], + "L_AVATAR_GALLERY_PATH" => $lang['Avatar_gallery_path'], + "L_AVATAR_GALLERY_PATH_EXPLAIN" => $lang['Avatar_gallery_path_explain'], + "L_COPPA_SETTINGS" => $lang['COPPA_settings'], + "L_COPPA_FAX" => $lang['COPPA_fax'], + "L_COPPA_MAIL" => $lang['COPPA_mail'], + "L_COPPA_MAIL_EXPLAIN" => $lang['COPPA_mail_explain'], + "L_EMAIL_SETTINGS" => $lang['Email_settings'], + "L_ADMIN_EMAIL" => $lang['Admin_email'], + "L_EMAIL_SIG" => $lang['Email_sig'], + "L_EMAIL_SIG_EXPLAIN" => $lang['Email_sig_explain'], + "L_USE_SMTP" => $lang['Use_SMTP'], + "L_USE_SMTP_EXPLAIN" => $lang['Use_SMTP_explain'], + "L_SMTP_SERVER" => $lang['SMTP_server'], + "L_SMTP_USERNAME" => $lang['SMTP_username'], + "L_SMTP_USERNAME_EXPLAIN" => $lang['SMTP_username_explain'], + "L_SMTP_PASSWORD" => $lang['SMTP_password'], + "L_SMTP_PASSWORD_EXPLAIN" => $lang['SMTP_password_explain'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + + "SERVER_NAME" => $new['server_name'], + "SCRIPT_PATH" => $new['script_path'], + "SERVER_PORT" => $new['server_port'], + "SITENAME" => $new['sitename'], + "SITE_DESCRIPTION" => $new['site_desc'], + "S_DISABLE_BOARD_YES" => $disable_board_yes, + "S_DISABLE_BOARD_NO" => $disable_board_no, + "ACTIVATION_NONE" => USER_ACTIVATION_NONE, + "ACTIVATION_NONE_CHECKED" => $activation_none, + "ACTIVATION_USER" => USER_ACTIVATION_SELF, + "ACTIVATION_USER_CHECKED" => $activation_user, + "ACTIVATION_ADMIN" => USER_ACTIVATION_ADMIN, + "ACTIVATION_ADMIN_CHECKED" => $activation_admin, + "CONFIRM_ENABLE" => $confirm_yes, + "CONFIRM_DISABLE" => $confirm_no, + "ACTIVATION_NONE_CHECKED" => $activation_none, + "BOARD_EMAIL_FORM_ENABLE" => $board_email_form_yes, + "BOARD_EMAIL_FORM_DISABLE" => $board_email_form_no, + "MAX_POLL_OPTIONS" => $new['max_poll_options'], + "FLOOD_INTERVAL" => $new['flood_interval'], + "TOPICS_PER_PAGE" => $new['topics_per_page'], + "POSTS_PER_PAGE" => $new['posts_per_page'], + "HOT_TOPIC" => $new['hot_threshold'], + "STYLE_SELECT" => $style_select, + "OVERRIDE_STYLE_YES" => $override_user_style_yes, + "OVERRIDE_STYLE_NO" => $override_user_style_no, + "LANG_SELECT" => $lang_select, + "L_DATE_FORMAT_EXPLAIN" => $lang['Date_format_explain'], + "DEFAULT_DATEFORMAT" => $new['default_dateformat'], + "TIMEZONE_SELECT" => $timezone_select, + "S_PRIVMSG_ENABLED" => $privmsg_on, + "S_PRIVMSG_DISABLED" => $privmsg_off, + "INBOX_LIMIT" => $new['max_inbox_privmsgs'], + "SENTBOX_LIMIT" => $new['max_sentbox_privmsgs'], + "SAVEBOX_LIMIT" => $new['max_savebox_privmsgs'], + "COOKIE_DOMAIN" => $new['cookie_domain'], + "COOKIE_NAME" => $new['cookie_name'], + "COOKIE_PATH" => $new['cookie_path'], + "SESSION_LENGTH" => $new['session_length'], + "S_COOKIE_SECURE_ENABLED" => $cookie_secure_yes, + "S_COOKIE_SECURE_DISABLED" => $cookie_secure_no, + "GZIP_YES" => $gzip_yes, + "GZIP_NO" => $gzip_no, + "PRUNE_YES" => $prune_yes, + "PRUNE_NO" => $prune_no, + "HTML_TAGS" => $html_tags, + "HTML_YES" => $html_yes, + "HTML_NO" => $html_no, + "BBCODE_YES" => $bbcode_yes, + "BBCODE_NO" => $bbcode_no, + "SMILE_YES" => $smile_yes, + "SMILE_NO" => $smile_no, + "SIG_YES" => $sig_yes, + "SIG_NO" => $sig_no, + "SIG_SIZE" => $new['max_sig_chars'], + "NAMECHANGE_YES" => $namechange_yes, + "NAMECHANGE_NO" => $namechange_no, + "AVATARS_LOCAL_YES" => $avatars_local_yes, + "AVATARS_LOCAL_NO" => $avatars_local_no, + "AVATARS_REMOTE_YES" => $avatars_remote_yes, + "AVATARS_REMOTE_NO" => $avatars_remote_no, + "AVATARS_UPLOAD_YES" => $avatars_upload_yes, + "AVATARS_UPLOAD_NO" => $avatars_upload_no, + "AVATAR_FILESIZE" => $new['avatar_filesize'], + "AVATAR_MAX_HEIGHT" => $new['avatar_max_height'], + "AVATAR_MAX_WIDTH" => $new['avatar_max_width'], + "AVATAR_PATH" => $new['avatar_path'], + "AVATAR_GALLERY_PATH" => $new['avatar_gallery_path'], + "SMILIES_PATH" => $new['smilies_path'], + "INBOX_PRIVMSGS" => $new['max_inbox_privmsgs'], + "SENTBOX_PRIVMSGS" => $new['max_sentbox_privmsgs'], + "SAVEBOX_PRIVMSGS" => $new['max_savebox_privmsgs'], + "EMAIL_FROM" => $new['board_email'], + "EMAIL_SIG" => $new['board_email_sig'], + "SMTP_YES" => $smtp_yes, + "SMTP_NO" => $smtp_no, + "SMTP_HOST" => $new['smtp_host'], + "SMTP_USERNAME" => $new['smtp_username'], + "SMTP_PASSWORD" => $new['smtp_password'], + "COPPA_MAIL" => $new['coppa_mail'], + "COPPA_FAX" => $new['coppa_fax']) +); + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2_old/admin/admin_db_utilities.php b/phpBB2_old/admin/admin_db_utilities.php new file mode 100644 index 0000000..508aa51 --- /dev/null +++ b/phpBB2_old/admin/admin_db_utilities.php @@ -0,0 +1,1008 @@ += '4.0.0') ? @ini_get('file_uploads') : @get_cfg_var('file_uploads'); + + if( (empty($file_uploads) || $file_uploads != 0) && (strtolower($file_uploads) != 'off') && (@phpversion() != '4.0.4pl1') ) + { + $module['General']['Restore_DB'] = $filename . "?perform=restore"; + } + + return; +} + +// +// Load default header +// +$no_page_header = TRUE; +$phpbb_root_path = "./../"; +require($phpbb_root_path . 'extension.inc'); +require('./pagestart.' . $phpEx); +include($phpbb_root_path . 'includes/sql_parse.'.$phpEx); + +// +// Set VERBOSE to 1 for debugging info.. +// +define("VERBOSE", 0); + +// +// Increase maximum execution time, but don't complain about it if it isn't +// allowed. +// +@set_time_limit(1200); + +// ----------------------- +// The following functions are adapted from phpMyAdmin and upgrade_20.php +// +function gzip_PrintFourChars($Val) +{ + for ($i = 0; $i < 4; $i ++) + { + $return .= chr($Val % 256); + $Val = floor($Val / 256); + } + return $return; +} + + + +// +// This function is used for grabbing the sequences for postgres... +// +function pg_get_sequences($crlf, $backup_type) +{ + global $db; + + $get_seq_sql = "SELECT relname FROM pg_class WHERE NOT relname ~ 'pg_.*' + AND relkind = 'S' ORDER BY relname"; + + $seq = $db->sql_query($get_seq_sql); + + if( !$num_seq = $db->sql_numrows($seq) ) + { + + $return_val = "# No Sequences Found $crlf"; + + } + else + { + $return_val = "# Sequences $crlf"; + $i_seq = 0; + + while($i_seq < $num_seq) + { + $row = $db->sql_fetchrow($seq); + $sequence = $row['relname']; + + $get_props_sql = "SELECT * FROM $sequence"; + $seq_props = $db->sql_query($get_props_sql); + + if($db->sql_numrows($seq_props) > 0) + { + $row1 = $db->sql_fetchrow($seq_props); + + if($backup_type == 'structure') + { + $row['last_value'] = 1; + } + + $return_val .= "CREATE SEQUENCE $sequence start " . $row['last_value'] . ' increment ' . $row['increment_by'] . ' maxvalue ' . $row['max_value'] . ' minvalue ' . $row['min_value'] . ' cache ' . $row['cache_value'] . "; $crlf"; + + } // End if numrows > 0 + + if(($row['last_value'] > 1) && ($backup_type != 'structure')) + { + $return_val .= "SELECT NEXTVALE('$sequence'); $crlf"; + unset($row['last_value']); + } + + $i_seq++; + + } // End while.. + + } // End else... + + return $returnval; + +} // End function... + +// +// The following functions will return the "CREATE TABLE syntax for the +// varying DBMS's +// +// This function returns, will return the table def's for postgres... +// +function get_table_def_postgresql($table, $crlf) +{ + global $drop, $db; + + $schema_create = ""; + // + // Get a listing of the fields, with their associated types, etc. + // + + $field_query = "SELECT a.attnum, a.attname AS field, t.typname as type, a.attlen AS length, a.atttypmod as lengthvar, a.attnotnull as notnull + FROM pg_class c, pg_attribute a, pg_type t + WHERE c.relname = '$table' + AND a.attnum > 0 + AND a.attrelid = c.oid + AND a.atttypid = t.oid + ORDER BY a.attnum"; + $result = $db->sql_query($field_query); + + if(!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $field_query); + } // end if.. + + if ($drop == 1) + { + $schema_create .= "DROP TABLE $table;$crlf"; + } // end if + + // + // Ok now we actually start building the SQL statements to restore the tables + // + + $schema_create .= "CREATE TABLE $table($crlf"; + + while ($row = $db->sql_fetchrow($result)) + { + // + // Get the data from the table + // + $sql_get_default = "SELECT d.adsrc AS rowdefault + FROM pg_attrdef d, pg_class c + WHERE (c.relname = '$table') + AND (c.oid = d.adrelid) + AND d.adnum = " . $row['attnum']; + $def_res = $db->sql_query($sql_get_default); + + if (!$def_res) + { + unset($row['rowdefault']); + } + else + { + $row['rowdefault'] = @pg_result($def_res, 0, 'rowdefault'); + } + + if ($row['type'] == 'bpchar') + { + // Internally stored as bpchar, but isn't accepted in a CREATE TABLE statement. + $row['type'] = 'char'; + } + + $schema_create .= ' ' . $row['field'] . ' ' . $row['type']; + + if (eregi('char', $row['type'])) + { + if ($row['lengthvar'] > 0) + { + $schema_create .= '(' . ($row['lengthvar'] -4) . ')'; + } + } + + if (eregi('numeric', $row['type'])) + { + $schema_create .= '('; + $schema_create .= sprintf("%s,%s", (($row['lengthvar'] >> 16) & 0xffff), (($row['lengthvar'] - 4) & 0xffff)); + $schema_create .= ')'; + } + + if (!empty($row['rowdefault'])) + { + $schema_create .= ' DEFAULT ' . $row['rowdefault']; + } + + if ($row['notnull'] == 't') + { + $schema_create .= ' NOT NULL'; + } + + $schema_create .= ",$crlf"; + + } + // + // Get the listing of primary keys. + // + + $sql_pri_keys = "SELECT ic.relname AS index_name, bc.relname AS tab_name, ta.attname AS column_name, i.indisunique AS unique_key, i.indisprimary AS primary_key + FROM pg_class bc, pg_class ic, pg_index i, pg_attribute ta, pg_attribute ia + WHERE (bc.oid = i.indrelid) + AND (ic.oid = i.indexrelid) + AND (ia.attrelid = i.indexrelid) + AND (ta.attrelid = bc.oid) + AND (bc.relname = '$table') + AND (ta.attrelid = i.indrelid) + AND (ta.attnum = i.indkey[ia.attnum-1]) + ORDER BY index_name, tab_name, column_name "; + $result = $db->sql_query($sql_pri_keys); + + if(!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $sql_pri_keys); + } + + while ( $row = $db->sql_fetchrow($result)) + { + if ($row['primary_key'] == 't') + { + if (!empty($primary_key)) + { + $primary_key .= ', '; + } + + $primary_key .= $row['column_name']; + $primary_key_name = $row['index_name']; + + } + else + { + // + // We have to store this all this info because it is possible to have a multi-column key... + // we can loop through it again and build the statement + // + $index_rows[$row['index_name']]['table'] = $table; + $index_rows[$row['index_name']]['unique'] = ($row['unique_key'] == 't') ? ' UNIQUE ' : ''; + $index_rows[$row['index_name']]['column_names'] .= $row['column_name'] . ', '; + } + } + + if (!empty($index_rows)) + { + while(list($idx_name, $props) = each($index_rows)) + { + $props['column_names'] = ereg_replace(", $", "" , $props['column_names']); + $index_create .= 'CREATE ' . $props['unique'] . " INDEX $idx_name ON $table (" . $props['column_names'] . ");$crlf"; + } + } + + if (!empty($primary_key)) + { + $schema_create .= " CONSTRAINT $primary_key_name PRIMARY KEY ($primary_key),$crlf"; + } + + // + // Generate constraint clauses for CHECK constraints + // + $sql_checks = "SELECT rcname as index_name, rcsrc + FROM pg_relcheck, pg_class bc + WHERE rcrelid = bc.oid + AND bc.relname = '$table' + AND NOT EXISTS ( + SELECT * + FROM pg_relcheck as c, pg_inherits as i + WHERE i.inhrelid = pg_relcheck.rcrelid + AND c.rcname = pg_relcheck.rcname + AND c.rcsrc = pg_relcheck.rcsrc + AND c.rcrelid = i.inhparent + )"; + $result = $db->sql_query($sql_checks); + + if (!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $sql_checks); + } + + // + // Add the constraints to the sql file. + // + while ($row = $db->sql_fetchrow($result)) + { + $schema_create .= ' CONSTRAINT ' . $row['index_name'] . ' CHECK ' . $row['rcsrc'] . ",$crlf"; + } + + $schema_create = ereg_replace(',' . $crlf . '$', '', $schema_create); + $index_create = ereg_replace(',' . $crlf . '$', '', $index_create); + + $schema_create .= "$crlf);$crlf"; + + if (!empty($index_create)) + { + $schema_create .= $index_create; + } + + // + // Ok now we've built all the sql return it to the calling function. + // + return (stripslashes($schema_create)); + +} + +// +// This function returns the "CREATE TABLE" syntax for mysql dbms... +// +function get_table_def_mysql($table, $crlf) +{ + global $drop, $db; + + $schema_create = ""; + $field_query = "SHOW FIELDS FROM $table"; + $key_query = "SHOW KEYS FROM $table"; + + // + // If the user has selected to drop existing tables when doing a restore. + // Then we add the statement to drop the tables.... + // + if ($drop == 1) + { + $schema_create .= "DROP TABLE IF EXISTS $table;$crlf"; + } + + $schema_create .= "CREATE TABLE $table($crlf"; + + // + // Ok lets grab the fields... + // + $result = $db->sql_query($field_query); + if(!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_def (show fields)", "", __LINE__, __FILE__, $field_query); + } + + while ($row = $db->sql_fetchrow($result)) + { + $schema_create .= ' ' . $row['Field'] . ' ' . $row['Type']; + + if(!empty($row['Default'])) + { + $schema_create .= ' DEFAULT \'' . $row['Default'] . '\''; + } + + if($row['Null'] != "YES") + { + $schema_create .= ' NOT NULL'; + } + + if($row['Extra'] != "") + { + $schema_create .= ' ' . $row['Extra']; + } + + $schema_create .= ",$crlf"; + } + // + // Drop the last ',$crlf' off ;) + // + $schema_create = ereg_replace(',' . $crlf . '$', "", $schema_create); + + // + // Get any Indexed fields from the database... + // + $result = $db->sql_query($key_query); + if(!$result) + { + message_die(GENERAL_ERROR, "FAILED IN get_table_def (show keys)", "", __LINE__, __FILE__, $key_query); + } + + while($row = $db->sql_fetchrow($result)) + { + $kname = $row['Key_name']; + + if(($kname != 'PRIMARY') && ($row['Non_unique'] == 0)) + { + $kname = "UNIQUE|$kname"; + } + + if(!is_array($index[$kname])) + { + $index[$kname] = array(); + } + + $index[$kname][] = $row['Column_name']; + } + + while(list($x, $columns) = @each($index)) + { + $schema_create .= ", $crlf"; + + if($x == 'PRIMARY') + { + $schema_create .= ' PRIMARY KEY (' . implode($columns, ', ') . ')'; + } + elseif (substr($x,0,6) == 'UNIQUE') + { + $schema_create .= ' UNIQUE ' . substr($x,7) . ' (' . implode($columns, ', ') . ')'; + } + else + { + $schema_create .= " KEY $x (" . implode($columns, ', ') . ')'; + } + } + + $schema_create .= "$crlf);"; + + if(get_magic_quotes_runtime()) + { + return(stripslashes($schema_create)); + } + else + { + return($schema_create); + } + +} // End get_table_def_mysql + + +// +// This fuction will return a tables create definition to be used as an sql +// statement. +// +// +// The following functions Get the data from the tables and format it as a +// series of INSERT statements, for each different DBMS... +// After every row a custom callback function $handler gets called. +// $handler must accept one parameter ($sql_insert); +// +// +// Here is the function for postgres... +// +function get_table_content_postgresql($table, $handler) +{ + global $db; + + // + // Grab all of the data from current table. + // + + $result = $db->sql_query("SELECT * FROM $table"); + + if (!$result) + { + message_die(GENERAL_ERROR, "Failed in get_table_content (select *)", "", __LINE__, __FILE__, "SELECT * FROM $table"); + } + + $i_num_fields = $db->sql_numfields($result); + + for ($i = 0; $i < $i_num_fields; $i++) + { + $aryType[] = $db->sql_fieldtype($i, $result); + $aryName[] = $db->sql_fieldname($i, $result); + } + + $iRec = 0; + + while($row = $db->sql_fetchrow($result)) + { + unset($schema_vals); + unset($schema_fields); + unset($schema_insert); + // + // Build the SQL statement to recreate the data. + // + for($i = 0; $i < $i_num_fields; $i++) + { + $strVal = $row[$aryName[$i]]; + if (eregi("char|text|bool", $aryType[$i])) + { + $strQuote = "'"; + $strEmpty = ""; + $strVal = addslashes($strVal); + } + elseif (eregi("date|timestamp", $aryType[$i])) + { + if ($empty($strVal)) + { + $strQuote = ""; + } + else + { + $strQuote = "'"; + } + } + else + { + $strQuote = ""; + $strEmpty = "NULL"; + } + + if (empty($strVal) && $strVal != "0") + { + $strVal = $strEmpty; + } + + $schema_vals .= " $strQuote$strVal$strQuote,"; + $schema_fields .= " $aryName[$i],"; + + } + + $schema_vals = ereg_replace(",$", "", $schema_vals); + $schema_vals = ereg_replace("^ ", "", $schema_vals); + $schema_fields = ereg_replace(",$", "", $schema_fields); + $schema_fields = ereg_replace("^ ", "", $schema_fields); + + // + // Take the ordered fields and their associated data and build it + // into a valid sql statement to recreate that field in the data. + // + $schema_insert = "INSERT INTO $table ($schema_fields) VALUES($schema_vals);"; + + $handler(trim($schema_insert)); + } + + return(true); + +}// end function get_table_content_postgres... + +// +// This function is for getting the data from a mysql table. +// + +function get_table_content_mysql($table, $handler) +{ + global $db; + + // Grab the data from the table. + if (!($result = $db->sql_query("SELECT * FROM $table"))) + { + message_die(GENERAL_ERROR, "Failed in get_table_content (select *)", "", __LINE__, __FILE__, "SELECT * FROM $table"); + } + + // Loop through the resulting rows and build the sql statement. + if ($row = $db->sql_fetchrow($result)) + { + $handler("\n#\n# Table Data for $table\n#\n"); + $field_names = array(); + + // Grab the list of field names. + $num_fields = $db->sql_numfields($result); + $table_list = '('; + for ($j = 0; $j < $num_fields; $j++) + { + $field_names[$j] = $db->sql_fieldname($j, $result); + $table_list .= (($j > 0) ? ', ' : '') . $field_names[$j]; + + } + $table_list .= ')'; + + do + { + // Start building the SQL statement. + $schema_insert = "INSERT INTO $table $table_list VALUES("; + + // Loop through the rows and fill in data for each column + for ($j = 0; $j < $num_fields; $j++) + { + $schema_insert .= ($j > 0) ? ', ' : ''; + + if(!isset($row[$field_names[$j]])) + { + // + // If there is no data for the column set it to null. + // There was a problem here with an extra space causing the + // sql file not to reimport if the last column was null in + // any table. Should be fixed now :) JLH + // + $schema_insert .= 'NULL'; + } + elseif ($row[$field_names[$j]] != '') + { + $schema_insert .= '\'' . addslashes($row[$field_names[$j]]) . '\''; + } + else + { + $schema_insert .= '\'\''; + } + } + + $schema_insert .= ');'; + + // Go ahead and send the insert statement to the handler function. + $handler(trim($schema_insert)); + + } + while ($row = $db->sql_fetchrow($result)); + } + + return(true); +} + +function output_table_content($content) +{ + global $tempfile; + + //fwrite($tempfile, $content . "\n"); + //$backup_sql .= $content . "\n"; + echo $content ."\n"; + return; +} +// +// End Functions +// ------------- + + +// +// Begin program proper +// +if( isset($HTTP_GET_VARS['perform']) || isset($HTTP_POST_VARS['perform']) ) +{ + $perform = (isset($HTTP_POST_VARS['perform'])) ? $HTTP_POST_VARS['perform'] : $HTTP_GET_VARS['perform']; + + switch($perform) + { + case 'backup': + + $error = false; + switch(SQL_LAYER) + { + case 'oracle': + $error = true; + break; + case 'db2': + $error = true; + break; + case 'msaccess': + $error = true; + break; + case 'mssql': + case 'mssql-odbc': + $error = true; + break; + } + + if ($error) + { + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/admin_message_body.tpl") + ); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Information'], + "MESSAGE_TEXT" => $lang['Backups_not_supported']) + ); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + } + + $tables = array('auth_access', 'banlist', 'categories', 'config', 'disallow', 'forums', 'forum_prune', 'groups', 'posts', 'posts_text', 'privmsgs', 'privmsgs_text', 'ranks', 'search_results', 'search_wordlist', 'search_wordmatch', 'sessions', 'smilies', 'themes', 'themes_name', 'topics', 'topics_watch', 'user_group', 'users', 'vote_desc', 'vote_results', 'vote_voters', 'words'); + + $additional_tables = (isset($HTTP_POST_VARS['additional_tables'])) ? $HTTP_POST_VARS['additional_tables'] : ( (isset($HTTP_GET_VARS['additional_tables'])) ? $HTTP_GET_VARS['additional_tables'] : "" ); + + $backup_type = (isset($HTTP_POST_VARS['backup_type'])) ? $HTTP_POST_VARS['backup_type'] : ( (isset($HTTP_GET_VARS['backup_type'])) ? $HTTP_GET_VARS['backup_type'] : "" ); + + $gzipcompress = (!empty($HTTP_POST_VARS['gzipcompress'])) ? $HTTP_POST_VARS['gzipcompress'] : ( (!empty($HTTP_GET_VARS['gzipcompress'])) ? $HTTP_GET_VARS['gzipcompress'] : 0 ); + + $drop = (!empty($HTTP_POST_VARS['drop'])) ? intval($HTTP_POST_VARS['drop']) : ( (!empty($HTTP_GET_VARS['drop'])) ? intval($HTTP_GET_VARS['drop']) : 0 ); + + if(!empty($additional_tables)) + { + if(ereg(",", $additional_tables)) + { + $additional_tables = split(",", $additional_tables); + + for($i = 0; $i < count($additional_tables); $i++) + { + $tables[] = trim($additional_tables[$i]); + } + + } + else + { + $tables[] = trim($additional_tables); + } + } + + if( !isset($HTTP_POST_VARS['backupstart']) && !isset($HTTP_GET_VARS['backupstart'])) + { + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/db_utils_backup_body.tpl") + ); + $s_hidden_fields = ""; + + $template->assign_vars(array( + "L_DATABASE_BACKUP" => $lang['Database_Utilities'] . " : " . $lang['Backup'], + "L_BACKUP_EXPLAIN" => $lang['Backup_explain'], + "L_FULL_BACKUP" => $lang['Full_backup'], + "L_STRUCTURE_BACKUP" => $lang['Structure_backup'], + "L_DATA_BACKUP" => $lang['Data_backup'], + "L_ADDITIONAL_TABLES" => $lang['Additional_tables'], + "L_START_BACKUP" => $lang['Start_backup'], + "L_BACKUP_OPTIONS" => $lang['Backup_options'], + "L_GZIP_COMPRESS" => $lang['Gzip_compress'], + "L_NO" => $lang['No'], + "L_YES" => $lang['Yes'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx")) + ); + $template->pparse("body"); + + break; + + } + else if( !isset($HTTP_POST_VARS['startdownload']) && !isset($HTTP_GET_VARS['startdownload']) ) + { + if(is_array($additional_tables)) + { + $additional_tables = implode(',', $additional_tables); + } + $template->set_filenames(array( + "body" => "admin/admin_message_body.tpl") + ); + + $template->assign_vars(array( + "META" => '', + + "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Backup'], + "MESSAGE_TEXT" => $lang['Backup_download']) + ); + + include('./page_header_admin.'.$phpEx); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + + } + header("Pragma: no-cache"); + $do_gzip_compress = FALSE; + if( $gzipcompress ) + { + $phpver = phpversion(); + + if($phpver >= "4.0") + { + if(extension_loaded("zlib")) + { + $do_gzip_compress = TRUE; + } + } + } + if($do_gzip_compress) + { + @ob_start(); + @ob_implicit_flush(0); + header("Content-Type: application/x-gzip; name=\"phpbb_db_backup.sql.gz\""); + header("Content-disposition: attachment; filename=phpbb_db_backup.sql.gz"); + } + else + { + header("Content-Type: text/x-delimtext; name=\"phpbb_db_backup.sql\""); + header("Content-disposition: attachment; filename=phpbb_db_backup.sql"); + } + + // + // Build the sql script file... + // + echo "#\n"; + echo "# phpBB Backup Script\n"; + echo "# Dump of tables for $dbname\n"; + echo "#\n# DATE : " . gmdate("d-m-Y H:i:s", time()) . " GMT\n"; + echo "#\n"; + + if(SQL_LAYER == 'postgresql') + { + echo "\n" . pg_get_sequences("\n", $backup_type); + } + for($i = 0; $i < count($tables); $i++) + { + $table_name = $tables[$i]; + + switch (SQL_LAYER) + { + case 'postgresql': + $table_def_function = "get_table_def_postgresql"; + $table_content_function = "get_table_content_postgresql"; + break; + + case 'mysql': + case 'mysql4': + $table_def_function = "get_table_def_mysql"; + $table_content_function = "get_table_content_mysql"; + break; + } + + if($backup_type != 'data') + { + echo "#\n# TABLE: " . $table_prefix . $table_name . "\n#\n"; + echo $table_def_function($table_prefix . $table_name, "\n") . "\n"; + } + + if($backup_type != 'structure') + { + $table_content_function($table_prefix . $table_name, "output_table_content"); + } + } + + if($do_gzip_compress) + { + $Size = ob_get_length(); + $Crc = crc32(ob_get_contents()); + $contents = gzcompress(ob_get_contents()); + ob_end_clean(); + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00".substr($contents, 0, strlen($contents) - 4).gzip_PrintFourChars($Crc).gzip_PrintFourChars($Size); + } + exit; + + break; + + case 'restore': + if(!isset($HTTP_POST_VARS['restore_start'])) + { + // + // Define Template files... + // + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/db_utils_restore_body.tpl") + ); + + $s_hidden_fields = ""; + + $template->assign_vars(array( + "L_DATABASE_RESTORE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], + "L_RESTORE_EXPLAIN" => $lang['Restore_explain'], + "L_SELECT_FILE" => $lang['Select_file'], + "L_START_RESTORE" => $lang['Start_Restore'], + + "S_DBUTILS_ACTION" => append_sid("admin_db_utilities.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + $template->pparse("body"); + + break; + + } + else + { + // + // Handle the file upload .... + // If no file was uploaded report an error... + // + $backup_file_name = (!empty($HTTP_POST_FILES['backup_file']['name'])) ? $HTTP_POST_FILES['backup_file']['name'] : ""; + $backup_file_tmpname = ($HTTP_POST_FILES['backup_file']['tmp_name'] != "none") ? $HTTP_POST_FILES['backup_file']['tmp_name'] : ""; + $backup_file_type = (!empty($HTTP_POST_FILES['backup_file']['type'])) ? $HTTP_POST_FILES['backup_file']['type'] : ""; + + if($backup_file_tmpname == "" || $backup_file_name == "") + { + message_die(GENERAL_MESSAGE, $lang['Restore_Error_no_file']); + } + // + // If I file was actually uploaded, check to make sure that we + // are actually passed the name of an uploaded file, and not + // a hackers attempt at getting us to process a local system + // file. + // + if( file_exists(phpbb_realpath($backup_file_tmpname)) ) + { + if( preg_match("/^(text\/[a-zA-Z]+)|(application\/(x\-)?gzip(\-compressed)?)|(application\/octet-stream)$/is", $backup_file_type) ) + { + if( preg_match("/\.gz$/is",$backup_file_name) ) + { + $do_gzip_compress = FALSE; + $phpver = phpversion(); + if($phpver >= "4.0") + { + if(extension_loaded("zlib")) + { + $do_gzip_compress = TRUE; + } + } + + if($do_gzip_compress) + { + $gz_ptr = gzopen($backup_file_tmpname, 'rb'); + $sql_query = ""; + while( !gzeof($gz_ptr) ) + { + $sql_query .= gzgets($gz_ptr, 100000); + } + } + else + { + message_die(GENERAL_ERROR, $lang['Restore_Error_decompress']); + } + } + else + { + $sql_query = fread(fopen($backup_file_tmpname, 'r'), filesize($backup_file_tmpname)); + } + // + // Comment this line out to see if this fixes the stuff... + // + //$sql_query = stripslashes($sql_query); + } + else + { + message_die(GENERAL_ERROR, $lang['Restore_Error_filename'] ." $backup_file_type $backup_file_name"); + } + } + else + { + message_die(GENERAL_ERROR, $lang['Restore_Error_uploading']); + } + + if($sql_query != "") + { + // Strip out sql comments... + $sql_query = remove_remarks($sql_query); + $pieces = split_sql_file($sql_query, ";"); + + $sql_count = count($pieces); + for($i = 0; $i < $sql_count; $i++) + { + $sql = trim($pieces[$i]); + + if(!empty($sql) and $sql[0] != "#") + { + if(VERBOSE == 1) + { + echo "Executing: $sql\n
    "; + flush(); + } + + $result = $db->sql_query($sql); + + if(!$result && ( !(SQL_LAYER == 'postgresql' && eregi("drop table", $sql) ) ) ) + { + message_die(GENERAL_ERROR, "Error importing backup file", "", __LINE__, __FILE__, $sql); + } + } + } + } + + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/admin_message_body.tpl") + ); + + $message = $lang['Restore_success']; + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Database_Utilities'] . " : " . $lang['Restore'], + "MESSAGE_TEXT" => $message) + ); + + $template->pparse("body"); + break; + } + break; + } +} + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2_old/admin/admin_disallow.php b/phpBB2_old/admin/admin_disallow.php new file mode 100644 index 0000000..48cba98 --- /dev/null +++ b/phpBB2_old/admin/admin_disallow.php @@ -0,0 +1,146 @@ +sql_query( $sql ); + if ( !$result ) + { + message_die(GENERAL_ERROR, "Could not add disallowed user.", "",__LINE__, __FILE__, $sql); + } + $message = $lang['Disallow_successful']; + } + + $message .= "

    " . sprintf($lang['Click_return_disallowadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); +} +else if( isset($HTTP_POST_VARS['delete_name']) ) +{ + $disallowed_id = ( isset($HTTP_POST_VARS['disallowed_id']) ) ? intval( $HTTP_POST_VARS['disallowed_id'] ) : intval( $HTTP_GET_VARS['disallowed_id'] ); + + $sql = "DELETE FROM " . DISALLOW_TABLE . " + WHERE disallow_id = $disallowed_id"; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't removed disallowed user.", "",__LINE__, __FILE__, $sql); + } + + $message .= $lang['Disallowed_deleted'] . "

    " . sprintf($lang['Click_return_disallowadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + +} + +// +// Grab the current list of disallowed usernames... +// +$sql = "SELECT * + FROM " . DISALLOW_TABLE; +$result = $db->sql_query($sql); +if( !$result ) +{ + message_die(GENERAL_ERROR, "Couldn't get disallowed users.", "", __LINE__, __FILE__, $sql ); +} + +$disallowed = $db->sql_fetchrowset($result); + +// +// Ok now generate the info for the template, which will be put out no matter +// what mode we are in. +// +$disallow_select = ''; + +$template->set_filenames(array( + "body" => "admin/disallow_body.tpl") +); + +$template->assign_vars(array( + "S_DISALLOW_SELECT" => $disallow_select, + "S_FORM_ACTION" => append_sid("admin_disallow.$phpEx"), + + "L_INFO" => $output_info, + "L_DISALLOW_TITLE" => $lang['Disallow_control'], + "L_DISALLOW_EXPLAIN" => $lang['Disallow_explain'], + "L_DELETE" => $lang['Delete_disallow'], + "L_DELETE_DISALLOW" => $lang['Delete_disallow_title'], + "L_DELETE_EXPLAIN" => $lang['Delete_disallow_explain'], + "L_ADD" => $lang['Add_disallow'], + "L_ADD_DISALLOW" => $lang['Add_disallow_title'], + "L_ADD_EXPLAIN" => $lang['Add_disallow_explain'], + "L_USERNAME" => $lang['Username']) +); + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_forum_prune.php b/phpBB2_old/admin/admin_forum_prune.php new file mode 100644 index 0000000..50cc397 --- /dev/null +++ b/phpBB2_old/admin/admin_forum_prune.php @@ -0,0 +1,199 @@ +sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain list of forums for pruning', '', __LINE__, __FILE__, $sql); +} + +$forum_rows = array(); +while( $row = $db->sql_fetchrow($result) ) +{ + $forum_rows[] = $row; +} + +// +// Check for submit to be equal to Prune. If so then proceed with the pruning. +// +if( isset($HTTP_POST_VARS['doprune']) ) +{ + $prunedays = ( isset($HTTP_POST_VARS['prunedays']) ) ? intval($HTTP_POST_VARS['prunedays']) : 0; + + // Convert days to seconds for timestamp functions... + $prunedate = time() - ( $prunedays * 86400 ); + + $template->set_filenames(array( + 'body' => 'admin/forum_prune_result_body.tpl') + ); + + for($i = 0; $i < count($forum_rows); $i++) + { + $p_result = prune($forum_rows[$i]['forum_id'], $prunedate); + sync('forum', $forum_rows[$i]['forum_id']); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('prune_results', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_NAME' => $forum_rows[$i]['forum_name'], + 'FORUM_TOPICS' => $p_result['topics'], + 'FORUM_POSTS' => $p_result['posts']) + ); + } + + $template->assign_vars(array( + 'L_FORUM_PRUNE' => $lang['Forum_Prune'], + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS_PRUNED' => $lang['Topics_pruned'], + 'L_POSTS_PRUNED' => $lang['Posts_pruned'], + 'L_PRUNE_RESULT' => $lang['Prune_success']) + ); +} +else +{ + // + // If they haven't selected a forum for pruning yet then + // display a select box to use for pruning. + // + if( empty($HTTP_POST_VARS[POST_FORUM_URL]) ) + { + // + // Output a selection table if no forum id has been specified. + // + $template->set_filenames(array( + 'body' => 'admin/forum_prune_select_body.tpl') + ); + + $select_list = ''; + + // + // Assign the template variables. + // + $template->assign_vars(array( + 'L_FORUM_PRUNE' => $lang['Forum_Prune'], + 'L_SELECT_FORUM' => $lang['Select_a_Forum'], + 'L_LOOK_UP' => $lang['Look_up_Forum'], + + 'S_FORUMPRUNE_ACTION' => append_sid("admin_forum_prune.$phpEx"), + 'S_FORUMS_SELECT' => $select_list) + ); + } + else + { + $forum_id = intval($HTTP_POST_VARS[POST_FORUM_URL]); + + // + // Output the form to retrieve Prune information. + // + $template->set_filenames(array( + 'body' => 'admin/forum_prune_body.tpl') + ); + + $forum_name = ( $forum_id == -1 ) ? $lang['All_Forums'] : $forum_rows[0]['forum_name']; + + $prune_data = $lang['Prune_topics_not_posted'] . " "; + $prune_data .= ' ' . $lang['Days']; + + $hidden_input = ''; + + // + // Assign the template variables. + // + $template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + + 'L_FORUM' => $lang['Forum'], + 'L_FORUM_PRUNE' => $lang['Forum_Prune'], + 'L_FORUM_PRUNE_EXPLAIN' => $lang['Forum_Prune_explain'], + 'L_DO_PRUNE' => $lang['Do_Prune'], + + 'S_FORUMPRUNE_ACTION' => append_sid("admin_forum_prune.$phpEx"), + 'S_PRUNE_DATA' => $prune_data, + 'S_HIDDEN_VARS' => $hidden_input) + ); + } +} +// +// Actually output the page here. +// +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_forumauth.php b/phpBB2_old/admin/admin_forumauth.php new file mode 100644 index 0000000..12f540e --- /dev/null +++ b/phpBB2_old/admin/admin_forumauth.php @@ -0,0 +1,328 @@ + array(AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG), + 1 => array(AUTH_ALL, AUTH_ALL, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG), + 2 => array(AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_REG, AUTH_MOD, AUTH_MOD, AUTH_REG, AUTH_REG), + 3 => array(AUTH_ALL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL), + 4 => array(AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_ACL, AUTH_MOD, AUTH_ACL, AUTH_ACL), + 5 => array(AUTH_ALL, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD), + 6 => array(AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD, AUTH_MOD), +); + +$simple_auth_types = array($lang['Public'], $lang['Registered'], $lang['Registered'] . ' [' . $lang['Hidden'] . ']', $lang['Private'], $lang['Private'] . ' [' . $lang['Hidden'] . ']', $lang['Moderators'], $lang['Moderators'] . ' [' . $lang['Hidden'] . ']'); + +$forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate'); + +$field_names = array( + 'auth_view' => $lang['View'], + 'auth_read' => $lang['Read'], + 'auth_post' => $lang['Post'], + 'auth_reply' => $lang['Reply'], + 'auth_edit' => $lang['Edit'], + 'auth_delete' => $lang['Delete'], + 'auth_sticky' => $lang['Sticky'], + 'auth_announce' => $lang['Announce'], + 'auth_vote' => $lang['Vote'], + 'auth_pollcreate' => $lang['Pollcreate']); + +$forum_auth_levels = array('ALL', 'REG', 'PRIVATE', 'MOD', 'ADMIN'); +$forum_auth_const = array(AUTH_ALL, AUTH_REG, AUTH_ACL, AUTH_MOD, AUTH_ADMIN); + +if(isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL])) +{ + $forum_id = (isset($HTTP_POST_VARS[POST_FORUM_URL])) ? intval($HTTP_POST_VARS[POST_FORUM_URL]) : intval($HTTP_GET_VARS[POST_FORUM_URL]); + $forum_sql = "AND forum_id = $forum_id"; +} +else +{ + unset($forum_id); + $forum_sql = ''; +} + +if( isset($HTTP_GET_VARS['adv']) ) +{ + $adv = intval($HTTP_GET_VARS['adv']); +} +else +{ + unset($adv); +} + +// +// Start program proper +// +if( isset($HTTP_POST_VARS['submit']) ) +{ + $sql = ''; + + if(!empty($forum_id)) + { + if(isset($HTTP_POST_VARS['simpleauth'])) + { + $simple_ary = $simple_auth_ary[intval($HTTP_POST_VARS['simpleauth'])]; + + for($i = 0; $i < count($simple_ary); $i++) + { + $sql .= ( ( $sql != '' ) ? ', ' : '' ) . $forum_auth_fields[$i] . ' = ' . $simple_ary[$i]; + } + + if (is_array($simple_ary)) + { + $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id"; + } + } + else + { + for($i = 0; $i < count($forum_auth_fields); $i++) + { + $value = intval($HTTP_POST_VARS[$forum_auth_fields[$i]]); + + if ( $forum_auth_fields[$i] == 'auth_vote' ) + { + if ( $HTTP_POST_VARS['auth_vote'] == AUTH_ALL ) + { + $value = AUTH_REG; + } + } + + $sql .= ( ( $sql != '' ) ? ', ' : '' ) .$forum_auth_fields[$i] . ' = ' . $value; + } + + $sql = "UPDATE " . FORUMS_TABLE . " SET $sql WHERE forum_id = $forum_id"; + } + + if ( $sql != '' ) + { + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update auth table', '', __LINE__, __FILE__, $sql); + } + } + + $forum_sql = ''; + $adv = 0; + } + + $template->assign_vars(array( + 'META' => '') + ); + $message = $lang['Forum_auth_updated'] . '

    ' . sprintf($lang['Click_return_forumauth'], '', ""); + message_die(GENERAL_MESSAGE, $message); + +} // End of submit + +// +// Get required information, either all forums if +// no id was specified or just the requsted if it +// was +// +$sql = "SELECT f.* + FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c + WHERE c.cat_id = f.cat_id + $forum_sql + ORDER BY c.cat_order ASC, f.forum_order ASC"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Couldn't obtain forum list", "", __LINE__, __FILE__, $sql); +} + +$forum_rows = $db->sql_fetchrowset($result); +$db->sql_freeresult($result); + +if( empty($forum_id) ) +{ + // + // Output the selection table if no forum id was + // specified + // + $template->set_filenames(array( + 'body' => 'admin/auth_select_body.tpl') + ); + + $select_list = ''; + + $template->assign_vars(array( + 'L_AUTH_TITLE' => $lang['Auth_Control_Forum'], + 'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'], + 'L_AUTH_SELECT' => $lang['Select_a_Forum'], + 'L_LOOK_UP' => $lang['Look_up_Forum'], + + 'S_AUTH_ACTION' => append_sid("admin_forumauth.$phpEx"), + 'S_AUTH_SELECT' => $select_list) + ); + +} +else +{ + // + // Output the authorisation details if an id was + // specified + // + $template->set_filenames(array( + 'body' => 'admin/auth_forum_body.tpl') + ); + + $forum_name = $forum_rows[0]['forum_name']; + + @reset($simple_auth_ary); + while( list($key, $auth_levels) = each($simple_auth_ary)) + { + $matched = 1; + for($k = 0; $k < count($auth_levels); $k++) + { + $matched_type = $key; + + if ( $forum_rows[0][$forum_auth_fields[$k]] != $auth_levels[$k] ) + { + $matched = 0; + } + } + + if ( $matched ) + { + break; + } + } + + // + // If we didn't get a match above then we + // automatically switch into 'advanced' mode + // + if ( !isset($adv) && !$matched ) + { + $adv = 1; + } + + $s_column_span == 0; + + if ( empty($adv) ) + { + $simple_auth = ''; + + $template->assign_block_vars('forum_auth_titles', array( + 'CELL_TITLE' => $lang['Simple_mode']) + ); + $template->assign_block_vars('forum_auth_data', array( + 'S_AUTH_LEVELS_SELECT' => $simple_auth) + ); + + $s_column_span++; + } + else + { + // + // Output values of individual + // fields + // + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $custom_auth[$j] = '  '; + + $cell_title = $field_names[$forum_auth_fields[$j]]; + + $template->assign_block_vars('forum_auth_titles', array( + 'CELL_TITLE' => $cell_title) + ); + $template->assign_block_vars('forum_auth_data', array( + 'S_AUTH_LEVELS_SELECT' => $custom_auth[$j]) + ); + + $s_column_span++; + } + } + + $adv_mode = ( empty($adv) ) ? '1' : '0'; + $switch_mode = append_sid("admin_forumauth.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&adv=". $adv_mode); + $switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode']; + $u_switch_mode = '' . $switch_mode_text . ''; + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + + 'L_FORUM' => $lang['Forum'], + 'L_AUTH_TITLE' => $lang['Auth_Control_Forum'], + 'L_AUTH_EXPLAIN' => $lang['Forum_auth_explain'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + + 'U_SWITCH_MODE' => $u_switch_mode, + + 'S_FORUMAUTH_ACTION' => append_sid("admin_forumauth.$phpEx"), + 'S_COLUMN_SPAN' => $s_column_span, + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + +} + +include('./page_header_admin.'.$phpEx); + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_forums.php b/phpBB2_old/admin/admin_forums.php new file mode 100644 index 0000000..3340c72 --- /dev/null +++ b/phpBB2_old/admin/admin_forums.php @@ -0,0 +1,1027 @@ + AUTH_ALL, + "auth_read" => AUTH_ALL, + "auth_post" => AUTH_ALL, + "auth_reply" => AUTH_ALL, + "auth_edit" => AUTH_REG, + "auth_delete" => AUTH_REG, + "auth_sticky" => AUTH_MOD, + "auth_announce" => AUTH_MOD, + "auth_vote" => AUTH_REG, + "auth_pollcreate" => AUTH_REG +); + +// +// Mode setting +// +if( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) ) +{ + $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ""; +} + +// ------------------ +// Begin function block +// +function get_info($mode, $id) +{ + global $db; + + switch($mode) + { + case 'category': + $table = CATEGORIES_TABLE; + $idfield = 'cat_id'; + $namefield = 'cat_title'; + break; + + case 'forum': + $table = FORUMS_TABLE; + $idfield = 'forum_id'; + $namefield = 'forum_name'; + break; + + default: + message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); + break; + } + $sql = "SELECT count(*) as total + FROM $table"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get Forum/Category information", "", __LINE__, __FILE__, $sql); + } + $count = $db->sql_fetchrow($result); + $count = $count['total']; + + $sql = "SELECT * + FROM $table + WHERE $idfield = $id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get Forum/Category information", "", __LINE__, __FILE__, $sql); + } + + if( $db->sql_numrows($result) != 1 ) + { + message_die(GENERAL_ERROR, "Forum/Category doesn't exist or multiple forums/categories with ID $id", "", __LINE__, __FILE__); + } + + $return = $db->sql_fetchrow($result); + $return['number'] = $count; + return $return; +} + +function get_list($mode, $id, $select) +{ + global $db; + + switch($mode) + { + case 'category': + $table = CATEGORIES_TABLE; + $idfield = 'cat_id'; + $namefield = 'cat_title'; + break; + + case 'forum': + $table = FORUMS_TABLE; + $idfield = 'forum_id'; + $namefield = 'forum_name'; + break; + + default: + message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); + break; + } + + $sql = "SELECT * + FROM $table"; + if( $select == 0 ) + { + $sql .= " WHERE $idfield <> $id"; + } + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of Categories/Forums", "", __LINE__, __FILE__, $sql); + } + + $cat_list = ""; + + while( $row = $db->sql_fetchrow($result) ) + { + $s = ""; + if ($row[$idfield] == $id) + { + $s = " selected=\"selected\""; + } + $catlist .= "\n"; + } + + return($catlist); +} + +function renumber_order($mode, $cat = 0) +{ + global $db; + + switch($mode) + { + case 'category': + $table = CATEGORIES_TABLE; + $idfield = 'cat_id'; + $orderfield = 'cat_order'; + $cat = 0; + break; + + case 'forum': + $table = FORUMS_TABLE; + $idfield = 'forum_id'; + $orderfield = 'forum_order'; + $catfield = 'cat_id'; + break; + + default: + message_die(GENERAL_ERROR, "Wrong mode for generating select list", "", __LINE__, __FILE__); + break; + } + + $sql = "SELECT * FROM $table"; + if( $cat != 0) + { + $sql .= " WHERE $catfield = $cat"; + } + $sql .= " ORDER BY $orderfield ASC"; + + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get list of Categories", "", __LINE__, __FILE__, $sql); + } + + $i = 10; + $inc = 10; + + while( $row = $db->sql_fetchrow($result) ) + { + $sql = "UPDATE $table + SET $orderfield = $i + WHERE $idfield = " . $row[$idfield]; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update order fields", "", __LINE__, __FILE__, $sql); + } + $i += 10; + } + +} +// +// End function block +// ------------------ + +// +// Begin program proper +// +if( isset($HTTP_POST_VARS['addforum']) || isset($HTTP_POST_VARS['addcategory']) ) +{ + $mode = ( isset($HTTP_POST_VARS['addforum']) ) ? "addforum" : "addcat"; + + if( $mode == "addforum" ) + { + list($cat_id) = each($HTTP_POST_VARS['addforum']); + // + // stripslashes needs to be run on this because slashes are added when the forum name is posted + // + $forumname = stripslashes($HTTP_POST_VARS['forumname'][$cat_id]); + } +} + +if( !empty($mode) ) +{ + switch($mode) + { + case 'addforum': + case 'editforum': + // + // Show form to create/modify a forum + // + if ($mode == 'editforum') + { + // $newmode determines if we are going to INSERT or UPDATE after posting? + + $l_title = $lang['Edit_forum']; + $newmode = 'modforum'; + $buttonvalue = $lang['Update']; + + $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); + + $row = get_info('forum', $forum_id); + + $cat_id = $row['cat_id']; + $forumname = $row['forum_name']; + $forumdesc = $row['forum_desc']; + $forumstatus = $row['forum_status']; + + // + // start forum prune stuff. + // + if( $row['prune_enable'] ) + { + $prune_enabled = "checked=\"checked\""; + $sql = "SELECT * + FROM " . PRUNE_TABLE . " + WHERE forum_id = $forum_id"; + if(!$pr_result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Auto-Prune: Couldn't read auto_prune table.", __LINE__, __FILE__); + } + + $pr_row = $db->sql_fetchrow($pr_result); + } + else + { + $prune_enabled = ''; + } + } + else + { + $l_title = $lang['Create_forum']; + $newmode = 'createforum'; + $buttonvalue = $lang['Create_forum']; + + $forumdesc = ''; + $forumstatus = FORUM_UNLOCKED; + $forum_id = ''; + $prune_enabled = ''; + } + + $catlist = get_list('category', $cat_id, TRUE); + + $forumstatus == ( FORUM_LOCKED ) ? $forumlocked = "selected=\"selected\"" : $forumunlocked = "selected=\"selected\""; + + // These two options ($lang['Status_unlocked'] and $lang['Status_locked']) seem to be missing from + // the language files. + $lang['Status_unlocked'] = isset($lang['Status_unlocked']) ? $lang['Status_unlocked'] : 'Unlocked'; + $lang['Status_locked'] = isset($lang['Status_locked']) ? $lang['Status_locked'] : 'Locked'; + + $statuslist = "\n"; + $statuslist .= "\n"; + + $template->set_filenames(array( + "body" => "admin/forum_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_SUBMIT_VALUE' => $buttonvalue, + 'S_CAT_LIST' => $catlist, + 'S_STATUS_LIST' => $statuslist, + 'S_PRUNE_ENABLED' => $prune_enabled, + + 'L_FORUM_TITLE' => $l_title, + 'L_FORUM_EXPLAIN' => $lang['Forum_edit_delete_explain'], + 'L_FORUM_SETTINGS' => $lang['Forum_settings'], + 'L_FORUM_NAME' => $lang['Forum_name'], + 'L_CATEGORY' => $lang['Category'], + 'L_FORUM_DESCRIPTION' => $lang['Forum_desc'], + 'L_FORUM_STATUS' => $lang['Forum_status'], + 'L_AUTO_PRUNE' => $lang['Forum_pruning'], + 'L_ENABLED' => $lang['Enabled'], + 'L_PRUNE_DAYS' => $lang['prune_days'], + 'L_PRUNE_FREQ' => $lang['prune_freq'], + 'L_DAYS' => $lang['Days'], + + 'PRUNE_DAYS' => ( isset($pr_row['prune_days']) ) ? $pr_row['prune_days'] : 7, + 'PRUNE_FREQ' => ( isset($pr_row['prune_freq']) ) ? $pr_row['prune_freq'] : 1, + 'FORUM_NAME' => $forumname, + 'DESCRIPTION' => $forumdesc) + ); + $template->pparse("body"); + break; + + case 'createforum': + // + // Create a forum in the DB + // + if( trim($HTTP_POST_VARS['forumname']) == "" ) + { + message_die(GENERAL_ERROR, "Can't create a forum without a name"); + } + + $sql = "SELECT MAX(forum_order) AS max_order + FROM " . FORUMS_TABLE . " + WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get order number from forums table", "", __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $max_order = $row['max_order']; + $next_order = $max_order + 10; + + $sql = "SELECT MAX(forum_id) AS max_id + FROM " . FORUMS_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get order number from forums table", "", __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $max_id = $row['max_id']; + $next_id = $max_id + 1; + + // + // Default permissions of public :: + // + $field_sql = ""; + $value_sql = ""; + while( list($field, $value) = each($forum_auth_ary) ) + { + $field_sql .= ", $field"; + $value_sql .= ", $value"; + + } + + // There is no problem having duplicate forum names so we won't check for it. + $sql = "INSERT INTO " . FORUMS_TABLE . " (forum_id, forum_name, cat_id, forum_desc, forum_order, forum_status, prune_enable" . $field_sql . ") + VALUES ('" . $next_id . "', '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', $next_order, " . intval($HTTP_POST_VARS['forumstatus']) . ", " . intval($HTTP_POST_VARS['prune_enable']) . $value_sql . ")"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert row in forums table", "", __LINE__, __FILE__, $sql); + } + + if( $HTTP_POST_VARS['prune_enable'] ) + { + + if( $HTTP_POST_VARS['prune_days'] == "" || $HTTP_POST_VARS['prune_freq'] == "") + { + message_die(GENERAL_MESSAGE, $lang['Set_prune_data']); + } + + $sql = "INSERT INTO " . PRUNE_TABLE . " (forum_id, prune_days, prune_freq) + VALUES('" . $next_id . "', " . intval($HTTP_POST_VARS['prune_days']) . ", " . intval($HTTP_POST_VARS['prune_freq']) . ")"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert row in prune table", "", __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Forums_updated'] . "

    " . sprintf($lang['Click_return_forumadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'modforum': + // Modify a forum in the DB + if( isset($HTTP_POST_VARS['prune_enable'])) + { + if( $HTTP_POST_VARS['prune_enable'] != 1 ) + { + $HTTP_POST_VARS['prune_enable'] = 0; + } + } + + $sql = "UPDATE " . FORUMS_TABLE . " + SET forum_name = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumname']) . "', cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]) . ", forum_desc = '" . str_replace("\'", "''", $HTTP_POST_VARS['forumdesc']) . "', forum_status = " . intval($HTTP_POST_VARS['forumstatus']) . ", prune_enable = " . intval($HTTP_POST_VARS['prune_enable']) . " + WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql); + } + + if( $HTTP_POST_VARS['prune_enable'] == 1 ) + { + if( $HTTP_POST_VARS['prune_days'] == "" || $HTTP_POST_VARS['prune_freq'] == "" ) + { + message_die(GENERAL_MESSAGE, $lang['Set_prune_data']); + } + + $sql = "SELECT * + FROM " . PRUNE_TABLE . " + WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get forum Prune Information","",__LINE__, __FILE__, $sql); + } + + if( $db->sql_numrows($result) > 0 ) + { + $sql = "UPDATE " . PRUNE_TABLE . " + SET prune_days = " . intval($HTTP_POST_VARS['prune_days']) . ", prune_freq = " . intval($HTTP_POST_VARS['prune_freq']) . " + WHERE forum_id = " . intval($HTTP_POST_VARS[POST_FORUM_URL]); + } + else + { + $sql = "INSERT INTO " . PRUNE_TABLE . " (forum_id, prune_days, prune_freq) + VALUES(" . intval($HTTP_POST_VARS[POST_FORUM_URL]) . ", " . intval($HTTP_POST_VARS['prune_days']) . ", " . intval($HTTP_POST_VARS['prune_freq']) . ")"; + } + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't Update Forum Prune Information","",__LINE__, __FILE__, $sql); + } + } + + $message = $lang['Forums_updated'] . "

    " . sprintf($lang['Click_return_forumadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'addcat': + // Create a category in the DB + if( trim($HTTP_POST_VARS['categoryname']) == '') + { + message_die(GENERAL_ERROR, "Can't create a category without a name"); + } + + $sql = "SELECT MAX(cat_order) AS max_order + FROM " . CATEGORIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get order number from categories table", "", __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $max_order = $row['max_order']; + $next_order = $max_order + 10; + + // + // There is no problem having duplicate forum names so we won't check for it. + // + $sql = "INSERT INTO " . CATEGORIES_TABLE . " (cat_title, cat_order) + VALUES ('" . str_replace("\'", "''", $HTTP_POST_VARS['categoryname']) . "', $next_order)"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert row in categories table", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

    " . sprintf($lang['Click_return_forumadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'editcat': + // + // Show form to edit a category + // + $newmode = 'modcat'; + $buttonvalue = $lang['Update']; + + $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); + + $row = get_info('category', $cat_id); + $cat_title = $row['cat_title']; + + $template->set_filenames(array( + "body" => "admin/category_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'CAT_TITLE' => $cat_title, + + 'L_EDIT_CATEGORY' => $lang['Edit_Category'], + 'L_EDIT_CATEGORY_EXPLAIN' => $lang['Edit_Category_explain'], + 'L_CATEGORY' => $lang['Category'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_SUBMIT_VALUE' => $buttonvalue, + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx")) + ); + + $template->pparse("body"); + break; + + case 'modcat': + // Modify a category in the DB + $sql = "UPDATE " . CATEGORIES_TABLE . " + SET cat_title = '" . str_replace("\'", "''", $HTTP_POST_VARS['cat_title']) . "' + WHERE cat_id = " . intval($HTTP_POST_VARS[POST_CAT_URL]); + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update forum information", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

    " . sprintf($lang['Click_return_forumadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'deleteforum': + // Show form to delete a forum + $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); + + $select_to = ''; + + $buttonvalue = $lang['Move_and_Delete']; + + $newmode = 'movedelforum'; + + $foruminfo = get_info('forum', $forum_id); + $name = $foruminfo['forum_name']; + + $template->set_filenames(array( + "body" => "admin/forum_delete_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'NAME' => $name, + + 'L_FORUM_DELETE' => $lang['Forum_delete'], + 'L_FORUM_DELETE_EXPLAIN' => $lang['Forum_delete_explain'], + 'L_MOVE_CONTENTS' => $lang['Move_contents'], + 'L_FORUM_NAME' => $lang['Forum_name'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'S_SELECT_TO' => $select_to, + 'S_SUBMIT_VALUE' => $buttonvalue) + ); + + $template->pparse("body"); + break; + + case 'movedelforum': + // + // Move or delete a forum in the DB + // + $from_id = intval($HTTP_POST_VARS['from_id']); + $to_id = intval($HTTP_POST_VARS['to_id']); + $delete_old = intval($HTTP_POST_VARS['delete_old']); + + // Either delete or move all posts in a forum + if($to_id == -1) + { + // Delete polls in this forum + $sql = "SELECT v.vote_id + FROM " . VOTE_DESC_TABLE . " v, " . TOPICS_TABLE . " t + WHERE t.forum_id = $from_id + AND v.topic_id = t.topic_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, "Couldn't obtain list of vote ids", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $vote_ids = ''; + do + { + $vote_ids = (($vote_ids != '') ? ', ' : '') . $row['vote_id']; + } + while ($row = $db->sql_fetchrow($result)); + + $sql = "DELETE FROM " . VOTE_DESC_TABLE . " + WHERE vote_id IN ($vote_ids)"; + $db->sql_query($sql); + + $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id IN ($vote_ids)"; + $db->sql_query($sql); + + $sql = "DELETE FROM " . VOTE_USERS_TABLE . " + WHERE vote_id IN ($vote_ids)"; + $db->sql_query($sql); + } + $db->sql_freeresult($result); + + include($phpbb_root_path . "includes/prune.$phpEx"); + prune($from_id, 0, true); // Delete everything from forum + } + else + { + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + WHERE forum_id IN ($from_id, $to_id)"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't verify existence of forums", "", __LINE__, __FILE__, $sql); + } + + if($db->sql_numrows($result) != 2) + { + message_die(GENERAL_ERROR, "Ambiguous forum ID's", "", __LINE__, __FILE__); + } + $sql = "UPDATE " . TOPICS_TABLE . " + SET forum_id = $to_id + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't move topics to other forum", "", __LINE__, __FILE__, $sql); + } + $sql = "UPDATE " . POSTS_TABLE . " + SET forum_id = $to_id + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't move posts to other forum", "", __LINE__, __FILE__, $sql); + } + sync('forum', $to_id); + } + + // Alter Mod level if appropriate - 2.0.4 + $sql = "SELECT ug.user_id + FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug + WHERE a.forum_id <> $from_id + AND a.auth_mod = 1 + AND ug.group_id = a.group_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain moderator list", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $user_ids = ''; + do + { + $user_ids .= (($user_ids != '') ? ', ' : '' ) . $row['user_id']; + } + while ($row = $db->sql_fetchrow($result)); + + $sql = "SELECT ug.user_id + FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug + WHERE a.forum_id = $from_id + AND a.auth_mod = 1 + AND ug.group_id = a.group_id + AND ug.user_id NOT IN ($user_ids)"; + if( !$result2 = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain moderator list", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result2)) + { + $user_ids = ''; + do + { + $user_ids .= (($user_ids != '') ? ', ' : '' ) . $row['user_id']; + } + while ($row = $db->sql_fetchrow($result2)); + + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN ($user_ids) + AND user_level <> " . ADMIN; + $db->sql_query($sql); + } + $db->sql_freeresult($result); + + } + $db->sql_freeresult($result2); + + $sql = "DELETE FROM " . FORUMS_TABLE . " + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete forum", "", __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete forum", "", __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . PRUNE_TABLE . " + WHERE forum_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete forum prune information!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

    " . sprintf($lang['Click_return_forumadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'deletecat': + // + // Show form to delete a category + // + $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); + + $buttonvalue = $lang['Move_and_Delete']; + $newmode = 'movedelcat'; + $catinfo = get_info('category', $cat_id); + $name = $catinfo['cat_title']; + + if ($catinfo['number'] == 1) + { + $sql = "SELECT count(*) as total + FROM ". FORUMS_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get Forum count", "", __LINE__, __FILE__, $sql); + } + $count = $db->sql_fetchrow($result); + $count = $count['total']; + + if ($count > 0) + { + message_die(GENERAL_ERROR, $lang['Must_delete_forums']); + } + else + { + $select_to = $lang['Nowhere_to_move']; + } + } + else + { + $select_to = ''; + } + + $template->set_filenames(array( + "body" => "admin/forum_delete_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'NAME' => $name, + + 'L_FORUM_DELETE' => $lang['Forum_delete'], + 'L_FORUM_DELETE_EXPLAIN' => $lang['Forum_delete_explain'], + 'L_MOVE_CONTENTS' => $lang['Move_contents'], + 'L_FORUM_NAME' => $lang['Forum_name'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'S_SELECT_TO' => $select_to, + 'S_SUBMIT_VALUE' => $buttonvalue) + ); + + $template->pparse("body"); + break; + + case 'movedelcat': + // + // Move or delete a category in the DB + // + $from_id = intval($HTTP_POST_VARS['from_id']); + $to_id = intval($HTTP_POST_VARS['to_id']); + + if (!empty($to_id)) + { + $sql = "SELECT * + FROM " . CATEGORIES_TABLE . " + WHERE cat_id IN ($from_id, $to_id)"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't verify existence of categories", "", __LINE__, __FILE__, $sql); + } + if($db->sql_numrows($result) != 2) + { + message_die(GENERAL_ERROR, "Ambiguous category ID's", "", __LINE__, __FILE__); + } + + $sql = "UPDATE " . FORUMS_TABLE . " + SET cat_id = $to_id + WHERE cat_id = $from_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't move forums to other category", "", __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE FROM " . CATEGORIES_TABLE ." + WHERE cat_id = $from_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete category", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Forums_updated'] . "

    " . sprintf($lang['Click_return_forumadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + break; + + case 'forum_order': + // + // Change order of forums in the DB + // + $move = intval($HTTP_GET_VARS['move']); + $forum_id = intval($HTTP_GET_VARS[POST_FORUM_URL]); + + $forum_info = get_info('forum', $forum_id); + + $cat_id = $forum_info['cat_id']; + + $sql = "UPDATE " . FORUMS_TABLE . " + SET forum_order = forum_order + $move + WHERE forum_id = $forum_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't change category order", "", __LINE__, __FILE__, $sql); + } + + renumber_order('forum', $forum_info['cat_id']); + $show_index = TRUE; + + break; + + case 'cat_order': + // + // Change order of categories in the DB + // + $move = intval($HTTP_GET_VARS['move']); + $cat_id = intval($HTTP_GET_VARS[POST_CAT_URL]); + + $sql = "UPDATE " . CATEGORIES_TABLE . " + SET cat_order = cat_order + $move + WHERE cat_id = $cat_id"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't change category order", "", __LINE__, __FILE__, $sql); + } + + renumber_order('category'); + $show_index = TRUE; + + break; + + case 'forum_sync': + sync('forum', intval($HTTP_GET_VARS[POST_FORUM_URL])); + $show_index = TRUE; + + break; + + default: + message_die(GENERAL_MESSAGE, $lang['No_mode']); + break; + } + + if ($show_index != TRUE) + { + include('./page_footer_admin.'.$phpEx); + exit; + } +} + +// +// Start page proper +// +$template->set_filenames(array( + "body" => "admin/forum_admin_body.tpl") +); + +$template->assign_vars(array( + 'S_FORUM_ACTION' => append_sid("admin_forums.$phpEx"), + 'L_FORUM_TITLE' => $lang['Forum_admin'], + 'L_FORUM_EXPLAIN' => $lang['Forum_admin_explain'], + 'L_CREATE_FORUM' => $lang['Create_forum'], + 'L_CREATE_CATEGORY' => $lang['Create_category'], + 'L_EDIT' => $lang['Edit'], + 'L_DELETE' => $lang['Delete'], + 'L_MOVE_UP' => $lang['Move_up'], + 'L_MOVE_DOWN' => $lang['Move_down'], + 'L_RESYNC' => $lang['Resync']) +); + +$sql = "SELECT cat_id, cat_title, cat_order + FROM " . CATEGORIES_TABLE . " + ORDER BY cat_order"; +if( !$q_categories = $db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Could not query categories list", "", __LINE__, __FILE__, $sql); +} + +if( $total_categories = $db->sql_numrows($q_categories) ) +{ + $category_rows = $db->sql_fetchrowset($q_categories); + + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + ORDER BY cat_id, forum_order"; + if(!$q_forums = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query forums information", "", __LINE__, __FILE__, $sql); + } + + if( $total_forums = $db->sql_numrows($q_forums) ) + { + $forum_rows = $db->sql_fetchrowset($q_forums); + } + + // + // Okay, let's build the index + // + $gen_cat = array(); + + for($i = 0; $i < $total_categories; $i++) + { + $cat_id = $category_rows[$i]['cat_id']; + + $template->assign_block_vars("catrow", array( + 'S_ADD_FORUM_SUBMIT' => "addforum[$cat_id]", + 'S_ADD_FORUM_NAME' => "forumname[$cat_id]", + + 'CAT_ID' => $cat_id, + 'CAT_DESC' => $category_rows[$i]['cat_title'], + + 'U_CAT_EDIT' => append_sid("admin_forums.$phpEx?mode=editcat&" . POST_CAT_URL . "=$cat_id"), + 'U_CAT_DELETE' => append_sid("admin_forums.$phpEx?mode=deletecat&" . POST_CAT_URL . "=$cat_id"), + 'U_CAT_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=cat_order&move=-15&" . POST_CAT_URL . "=$cat_id"), + 'U_CAT_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=cat_order&move=15&" . POST_CAT_URL . "=$cat_id"), + 'U_VIEWCAT' => append_sid($phpbb_root_path."index.$phpEx?" . POST_CAT_URL . "=$cat_id")) + ); + + for($j = 0; $j < $total_forums; $j++) + { + $forum_id = $forum_rows[$j]['forum_id']; + + if ($forum_rows[$j]['cat_id'] == $cat_id) + { + + $template->assign_block_vars("catrow.forumrow", array( + 'FORUM_NAME' => $forum_rows[$j]['forum_name'], + 'FORUM_DESC' => $forum_rows[$j]['forum_desc'], + 'ROW_COLOR' => $row_color, + 'NUM_TOPICS' => $forum_rows[$j]['forum_topics'], + 'NUM_POSTS' => $forum_rows[$j]['forum_posts'], + + 'U_VIEWFORUM' => append_sid($phpbb_root_path."viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_EDIT' => append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_DELETE' => append_sid("admin_forums.$phpEx?mode=deleteforum&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_MOVE_UP' => append_sid("admin_forums.$phpEx?mode=forum_order&move=-15&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_MOVE_DOWN' => append_sid("admin_forums.$phpEx?mode=forum_order&move=15&" . POST_FORUM_URL . "=$forum_id"), + 'U_FORUM_RESYNC' => append_sid("admin_forums.$phpEx?mode=forum_sync&" . POST_FORUM_URL . "=$forum_id")) + ); + + }// if ... forumid == catid + + } // for ... forums + + } // for ... categories + +}// if ... total_categories + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2_old/admin/admin_groups.php b/phpBB2_old/admin/admin_groups.php new file mode 100644 index 0000000..eace9d7 --- /dev/null +++ b/phpBB2_old/admin/admin_groups.php @@ -0,0 +1,412 @@ +set_filenames(array( + 'body' => 'admin/group_edit_body.tpl') + ); + + if ( isset($HTTP_POST_VARS['edit']) ) + { + // + // They're editing. Grab the vars. + // + $sql = "SELECT * + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + AND group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if ( !($group_info = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); + } + + $mode = 'editgroup'; + $template->assign_block_vars('group_edit', array()); + + } + else if ( isset($HTTP_POST_VARS['new']) ) + { + $group_info = array ( + 'group_name' => '', + 'group_description' => '', + 'group_moderator' => '', + 'group_type' => GROUP_OPEN); + $group_open = ' checked="checked"'; + + $mode = 'newgroup'; + + } + + // + // Ok, now we know everything about them, let's show the page. + // + $sql = "SELECT user_id, username + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + ORDER BY username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user info for moderator list', '', __LINE__, __FILE__, $sql); + } + + while ( $row = $db->sql_fetchrow($result) ) + { + if ( $row['user_id'] == $group_info['group_moderator'] ) + { + $group_moderator = $row['username']; + } + } + + $group_open = ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : ''; + $group_closed = ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : ''; + $group_hidden = ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : ''; + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'GROUP_NAME' => $group_info['group_name'], + 'GROUP_DESCRIPTION' => $group_info['group_description'], + 'GROUP_MODERATOR' => $group_moderator, + + 'L_GROUP_TITLE' => $lang['Group_administration'], + 'L_GROUP_EDIT_DELETE' => ( isset($HTTP_POST_VARS['new']) ) ? $lang['New_group'] : $lang['Edit_group'], + 'L_GROUP_NAME' => $lang['group_name'], + 'L_GROUP_DESCRIPTION' => $lang['group_description'], + 'L_GROUP_MODERATOR' => $lang['group_moderator'], + 'L_FIND_USERNAME' => $lang['Find_username'], + 'L_GROUP_STATUS' => $lang['group_status'], + 'L_GROUP_OPEN' => $lang['group_open'], + 'L_GROUP_CLOSED' => $lang['group_closed'], + 'L_GROUP_HIDDEN' => $lang['group_hidden'], + 'L_GROUP_DELETE' => $lang['group_delete'], + 'L_GROUP_DELETE_CHECK' => $lang['group_delete_check'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_DELETE_MODERATOR' => $lang['delete_group_moderator'], + 'L_DELETE_MODERATOR_EXPLAIN' => $lang['delete_moderator_explain'], + 'L_YES' => $lang['Yes'], + + 'U_SEARCH_USER' => append_sid("../search.$phpEx?mode=searchuser"), + + 'S_GROUP_OPEN_TYPE' => GROUP_OPEN, + 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED, + 'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN, + 'S_GROUP_OPEN_CHECKED' => $group_open, + 'S_GROUP_CLOSED_CHECKED' => $group_closed, + 'S_GROUP_HIDDEN_CHECKED' => $group_hidden, + 'S_GROUP_ACTION' => append_sid("admin_groups.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('body'); + +} +else if ( isset($HTTP_POST_VARS['group_update']) ) +{ + // + // Ok, they are submitting a group, let's save the data based on if it's new or editing + // + if ( isset($HTTP_POST_VARS['group_delete']) ) + { + // + // Reset User Moderator Level + // + + // Is Group moderating a forum ? + $sql = "SELECT auth_mod FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $group_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select auth_access', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + if (intval($row['auth_mod']) == 1) + { + // Yes, get the assigned users and update their Permission if they are no longer moderator of one of the forums + $sql = "SELECT user_id FROM " . USER_GROUP_TABLE . " + WHERE group_id = " . $group_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select user_group', '', __LINE__, __FILE__, $sql); + } + + $rows = $db->sql_fetchrowset($result); + for ($i = 0; $i < count($rows); $i++) + { + $sql = "SELECT g.group_id FROM " . AUTH_ACCESS_TABLE . " a, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug + WHERE (a.auth_mod = 1) AND (g.group_id = a.group_id) AND (a.group_id = ug.group_id) AND (g.group_id = ug.group_id) + AND (ug.user_id = " . intval($rows[$i]['user_id']) . ") AND (ug.group_id <> " . $group_id . ")"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator permissions', '', __LINE__, __FILE__, $sql); + } + + if ($db->sql_numrows($result) == 0) + { + $sql = "UPDATE " . USERS_TABLE . " SET user_level = " . USER . " + WHERE user_level = " . MOD . " AND user_id = " . intval($rows[$i]['user_id']); + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update moderator permissions', '', __LINE__, __FILE__, $sql); + } + } + } + } + + // + // Delete Group + // + $sql = "DELETE FROM " . GROUPS_TABLE . " + WHERE group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user_group', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update auth_access', '', __LINE__, __FILE__, $sql); + } + + $message = $lang['Deleted_group'] . '

    ' . sprintf($lang['Click_return_groupsadmin'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $group_type = isset($HTTP_POST_VARS['group_type']) ? intval($HTTP_POST_VARS['group_type']) : GROUP_OPEN; + $group_name = isset($HTTP_POST_VARS['group_name']) ? trim($HTTP_POST_VARS['group_name']) : ''; + $group_description = isset($HTTP_POST_VARS['group_description']) ? trim($HTTP_POST_VARS['group_description']) : ''; + $group_moderator = isset($HTTP_POST_VARS['username']) ? $HTTP_POST_VARS['username'] : ''; + $delete_old_moderator = isset($HTTP_POST_VARS['delete_old_moderator']) ? true : false; + + if ( $group_name == '' ) + { + message_die(GENERAL_MESSAGE, $lang['No_group_name']); + } + else if ( $group_moderator == '' ) + { + message_die(GENERAL_MESSAGE, $lang['No_group_moderator']); + } + + $this_userdata = get_userdata($group_moderator, true); + $group_moderator = $this_userdata['user_id']; + + if ( !$group_moderator ) + { + message_die(GENERAL_MESSAGE, $lang['No_group_moderator']); + } + + if( $mode == "editgroup" ) + { + $sql = "SELECT * + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + AND group_id = " . $group_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if( !($group_info = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); + } + + if ( $group_info['group_moderator'] != $group_moderator ) + { + if ( $delete_old_moderator ) + { + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = " . $group_info['group_moderator'] . " + AND group_id = " . $group_id; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "SELECT user_id + FROM " . USER_GROUP_TABLE . " + WHERE user_id = $group_moderator + AND group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Failed to obtain current group moderator info', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending) + VALUES (" . $group_id . ", " . $group_moderator . ", 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderator', '', __LINE__, __FILE__, $sql); + } + } + } + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_type = $group_type, group_name = '" . str_replace("\'", "''", $group_name) . "', group_description = '" . str_replace("\'", "''", $group_description) . "', group_moderator = $group_moderator + WHERE group_id = $group_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group', '', __LINE__, __FILE__, $sql); + } + + $message = $lang['Updated_group'] . '

    ' . sprintf($lang['Click_return_groupsadmin'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', '');; + + message_die(GENERAL_MESSAGE, $message); + } + else if( $mode == 'newgroup' ) + { + $sql = "INSERT INTO " . GROUPS_TABLE . " (group_type, group_name, group_description, group_moderator, group_single_user) + VALUES ($group_type, '" . str_replace("\'", "''", $group_name) . "', '" . str_replace("\'", "''", $group_description) . "', $group_moderator, '0')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new group', '', __LINE__, __FILE__, $sql); + } + $new_group_id = $db->sql_nextid(); + + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending) + VALUES ($new_group_id, $group_moderator, 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new user-group info', '', __LINE__, __FILE__, $sql); + } + + $message = $lang['Added_new_group'] . '

    ' . sprintf($lang['Click_return_groupsadmin'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', '');; + + message_die(GENERAL_MESSAGE, $message); + + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_group_action']); + } + } +} +else +{ + $sql = "SELECT group_id, group_name + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE . " + ORDER BY group_name"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql); + } + + $select_list = ''; + if ( $row = $db->sql_fetchrow($result) ) + { + $select_list .= ''; + } + + $template->set_filenames(array( + 'body' => 'admin/group_select_body.tpl') + ); + + $template->assign_vars(array( + 'L_GROUP_TITLE' => $lang['Group_administration'], + 'L_GROUP_EXPLAIN' => $lang['Group_admin_explain'], + 'L_GROUP_SELECT' => $lang['Select_group'], + 'L_LOOK_UP' => $lang['Look_up_group'], + 'L_CREATE_NEW_GROUP' => $lang['New_group'], + + 'S_GROUP_ACTION' => append_sid("admin_groups.$phpEx"), + 'S_GROUP_SELECT' => $select_list) + ); + + if ( $select_list != '' ) + { + $template->assign_block_vars('select_box', array()); + } + + $template->pparse('body'); +} + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2_old/admin/admin_mass_email.php b/phpBB2_old/admin/admin_mass_email.php new file mode 100644 index 0000000..fc70efe --- /dev/null +++ b/phpBB2_old/admin/admin_mass_email.php @@ -0,0 +1,213 @@ +' . $lang['Empty_subject'] : $lang['Empty_subject']; + } + + if ( empty($message) ) + { + $error = true; + $error_msg .= ( !empty($error_msg) ) ? '
    ' . $lang['Empty_message'] : $lang['Empty_message']; + } + + $group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]); + + $sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select group members', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $bcc_list = array(); + do + { + $bcc_list[] = $row['user_email']; + } + while ( $row = $db->sql_fetchrow($result) ); + + $db->sql_freeresult($result); + } + else + { + $message = ( $group_id != -1 ) ? $lang['Group_not_exist'] : $lang['No_such_user']; + + $error = true; + $error_msg .= ( !empty($error_msg) ) ? '
    ' . $message : $message; + } + + if ( !$error ) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + + // + // Let's do some checking to make sure that mass mail functions + // are working in win32 versions of php. + // + if ( preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery']) + { + $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + + // We are running on windows, force delivery to use our smtp functions + // since php's are broken by default + $board_config['smtp_delivery'] = 1; + $board_config['smtp_host'] = @$ini_val('SMTP'); + } + + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + for ($i = 0; $i < count($bcc_list); $i++) + { + $emailer->bcc($bcc_list[$i]); + } + + $email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "\n"; + $email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n"; + $email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n"; + $email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n"; + + $emailer->use_template('admin_send_email'); + $emailer->email_address($board_config['board_email']); + $emailer->set_subject($subject); + $emailer->extra_headers($email_headers); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'BOARD_EMAIL' => $board_config['board_email'], + 'MESSAGE' => $message) + ); + $emailer->send(); + $emailer->reset(); + + message_die(GENERAL_MESSAGE, $lang['Email_sent'] . '

    ' . sprintf($lang['Click_return_admin_index'], '', '')); + } +} + +if ( $error ) +{ + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); +} + +// +// Initial selection +// + +$sql = "SELECT group_id, group_name + FROM ".GROUPS_TABLE . " + WHERE group_single_user <> 1"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain list of groups', '', __LINE__, __FILE__, $sql); +} + +$select_list = ''; + +// +// Generate page +// +include('./page_header_admin.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'admin/user_email_body.tpl') +); + +$template->assign_vars(array( + 'MESSAGE' => $message, + 'SUBJECT' => $subject, + + 'L_EMAIL_TITLE' => $lang['Email'], + 'L_EMAIL_EXPLAIN' => $lang['Mass_email_explain'], + 'L_COMPOSE' => $lang['Compose'], + 'L_RECIPIENTS' => $lang['Recipients'], + 'L_EMAIL_SUBJECT' => $lang['Subject'], + 'L_EMAIL_MSG' => $lang['Message'], + 'L_EMAIL' => $lang['Email'], + 'L_NOTICE' => $notice, + + 'S_USER_ACTION' => append_sid('admin_mass_email.'.$phpEx), + 'S_GROUP_SELECT' => $select_list) +); + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_ranks.php b/phpBB2_old/admin/admin_ranks.php new file mode 100644 index 0000000..bd6eb05 --- /dev/null +++ b/phpBB2_old/admin/admin_ranks.php @@ -0,0 +1,376 @@ +sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain rank data", "", __LINE__, __FILE__, $sql); + } + + $rank_info = $db->sql_fetchrow($result); + $s_hidden_fields .= ''; + + } + else + { + $rank_info['rank_special'] = 0; + } + + $s_hidden_fields .= ''; + + $rank_is_special = ( $rank_info['rank_special'] ) ? "checked=\"checked\"" : ""; + $rank_is_not_special = ( !$rank_info['rank_special'] ) ? "checked=\"checked\"" : ""; + + $template->set_filenames(array( + "body" => "admin/ranks_edit_body.tpl") + ); + + $template->assign_vars(array( + "RANK" => $rank_info['rank_title'], + "SPECIAL_RANK" => $rank_is_special, + "NOT_SPECIAL_RANK" => $rank_is_not_special, + "MINIMUM" => ( $rank_is_special ) ? "" : $rank_info['rank_min'], + "IMAGE" => ( $rank_info['rank_image'] != "" ) ? $rank_info['rank_image'] : "", + "IMAGE_DISPLAY" => ( $rank_info['rank_image'] != "" ) ? '' : "", + + "L_RANKS_TITLE" => $lang['Ranks_title'], + "L_RANKS_TEXT" => $lang['Ranks_explain'], + "L_RANK_TITLE" => $lang['Rank_title'], + "L_RANK_SPECIAL" => $lang['Rank_special'], + "L_RANK_MINIMUM" => $lang['Rank_minimum'], + "L_RANK_IMAGE" => $lang['Rank_image'], + "L_RANK_IMAGE_EXPLAIN" => $lang['Rank_image_explain'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + "L_YES" => $lang['Yes'], + "L_NO" => $lang['No'], + + "S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + + } + else if( $mode == "save" ) + { + // + // Ok, they sent us our info, let's update it. + // + + $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0; + $rank_title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : ""; + $special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0; + $min_posts = ( isset($HTTP_POST_VARS['min_posts']) ) ? intval($HTTP_POST_VARS['min_posts']) : -1; + $rank_image = ( (isset($HTTP_POST_VARS['rank_image'])) ) ? trim($HTTP_POST_VARS['rank_image']) : ""; + + if( $rank_title == "" ) + { + message_die(GENERAL_MESSAGE, $lang['Must_select_rank']); + } + + if( $special_rank == 1 ) + { + $max_posts = -1; + $min_posts = -1; + } + + // + // The rank image has to be a jpg, gif or png + // + if($rank_image != "") + { + if ( !preg_match("/(\.gif|\.png|\.jpg)$/is", $rank_image)) + { + $rank_image = ""; + } + } + + if ($rank_id) + { + if (!$special_rank) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_rank = 0 + WHERE user_rank = $rank_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql); + } + } + $sql = "UPDATE " . RANKS_TABLE . " + SET rank_title = '" . str_replace("\'", "''", $rank_title) . "', rank_special = $special_rank, rank_min = $min_posts, rank_image = '" . str_replace("\'", "''", $rank_image) . "' + WHERE rank_id = $rank_id"; + + $message = $lang['Rank_updated']; + } + else + { + $sql = "INSERT INTO " . RANKS_TABLE . " (rank_title, rank_special, rank_min, rank_image) + VALUES ('" . str_replace("\'", "''", $rank_title) . "', $special_rank, $min_posts, '" . str_replace("\'", "''", $rank_image) . "')"; + + $message = $lang['Rank_added']; + } + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't update/insert into ranks table", "", __LINE__, __FILE__, $sql); + } + + $message .= "

    " . sprintf($lang['Click_return_rankadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else if( $mode == "delete" ) + { + // + // Ok, they want to delete their rank + // + + if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) ) + { + $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']); + } + else + { + $rank_id = 0; + } + + if( $rank_id ) + { + $sql = "DELETE FROM " . RANKS_TABLE . " + WHERE rank_id = $rank_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete rank data", "", __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . USERS_TABLE . " + SET user_rank = 0 + WHERE user_rank = $rank_id"; + + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Rank_removed'] . "

    " . sprintf($lang['Click_return_rankadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else + { + message_die(GENERAL_MESSAGE, $lang['Must_select_rank']); + } + } + else + { + // + // They didn't feel like giving us any information. Oh, too bad, we'll just display the + // list then... + // + $template->set_filenames(array( + "body" => "admin/ranks_list_body.tpl") + ); + + $sql = "SELECT * FROM " . RANKS_TABLE . " + ORDER BY rank_min, rank_title"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql); + } + + $rank_rows = $db->sql_fetchrowset($result); + $rank_count = count($rank_rows); + + $template->assign_vars(array( + "L_RANKS_TITLE" => $lang['Ranks_title'], + "L_RANKS_TEXT" => $lang['Ranks_explain'], + "L_RANK" => $lang['Rank_title'], + "L_RANK_MINIMUM" => $lang['Rank_minimum'], + "L_SPECIAL_RANK" => $lang['Special_rank'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete'], + "L_ADD_RANK" => $lang['Add_new_rank'], + "L_ACTION" => $lang['Action'], + + "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx")) + ); + + for( $i = 0; $i < $rank_count; $i++) + { + $rank = $rank_rows[$i]['rank_title']; + $special_rank = $rank_rows[$i]['rank_special']; + $rank_id = $rank_rows[$i]['rank_id']; + $rank_min = $rank_rows[$i]['rank_min']; + + if($special_rank) + { + $rank_min = $rank_max = "-"; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("ranks", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "RANK" => $rank, + "RANK_MIN" => $rank_min, + + "SPECIAL_RANK" => ( $special_rank == 1 ) ? $lang['Yes'] : $lang['No'], + + "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"), + "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id")) + ); + } + } +} +else +{ + // + // Show the default page + // + $template->set_filenames(array( + "body" => "admin/ranks_list_body.tpl") + ); + + $sql = "SELECT * FROM " . RANKS_TABLE . " + ORDER BY rank_min ASC, rank_special ASC"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql); + } + $rank_count = $db->sql_numrows($result); + + $rank_rows = $db->sql_fetchrowset($result); + + $template->assign_vars(array( + "L_RANKS_TITLE" => $lang['Ranks_title'], + "L_RANKS_TEXT" => $lang['Ranks_explain'], + "L_RANK" => $lang['Rank_title'], + "L_RANK_MINIMUM" => $lang['Rank_minimum'], + "L_SPECIAL_RANK" => $lang['Rank_special'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete'], + "L_ADD_RANK" => $lang['Add_new_rank'], + "L_ACTION" => $lang['Action'], + + "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx")) + ); + + for($i = 0; $i < $rank_count; $i++) + { + $rank = $rank_rows[$i]['rank_title']; + $special_rank = $rank_rows[$i]['rank_special']; + $rank_id = $rank_rows[$i]['rank_id']; + $rank_min = $rank_rows[$i]['rank_min']; + + if( $special_rank == 1 ) + { + $rank_min = $rank_max = "-"; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $rank_is_special = ( $special_rank ) ? $lang['Yes'] : $lang['No']; + + $template->assign_block_vars("ranks", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "RANK" => $rank, + "SPECIAL_RANK" => $rank_is_special, + "RANK_MIN" => $rank_min, + + "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"), + "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id")) + ); + } +} + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2_old/admin/admin_smilies.php b/phpBB2_old/admin/admin_smilies.php new file mode 100644 index 0000000..18a6515 --- /dev/null +++ b/phpBB2_old/admin/admin_smilies.php @@ -0,0 +1,556 @@ +sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete current smilies", "", __LINE__, __FILE__, $sql); + } + } + else + { + $sql = "SELECT code + FROM ". SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't get current smilies", "", __LINE__, __FILE__, $sql); + } + + $cur_smilies = $db->sql_fetchrowset($result); + + for( $i = 0; $i < count($cur_smilies); $i++ ) + { + $k = $cur_smilies[$i]['code']; + $smiles[$k] = 1; + } + } + + $fcontents = @file($phpbb_root_path . $board_config['smilies_path'] . '/'. $smile_pak); + + if( empty($fcontents) ) + { + message_die(GENERAL_ERROR, "Couldn't read smiley pak file", "", __LINE__, __FILE__, $sql); + } + + for( $i = 0; $i < count($fcontents); $i++ ) + { + $smile_data = explode($delimeter, trim(addslashes($fcontents[$i]))); + + for( $j = 2; $j < count($smile_data); $j++) + { + // + // Replace > and < with the proper html_entities for matching. + // + $smile_data[$j] = str_replace("<", "<", $smile_data[$j]); + $smile_data[$j] = str_replace(">", ">", $smile_data[$j]); + $k = $smile_data[$j]; + + if( $smiles[$k] == 1 ) + { + if( !empty($replace_existing) ) + { + $sql = "UPDATE " . SMILIES_TABLE . " + SET smile_url = '" . str_replace("\'", "''", $smile_data[0]) . "', emoticon = '" . str_replace("\'", "''", $smile_data[1]) . "' + WHERE code = '" . str_replace("\'", "''", $smile_data[$j]) . "'"; + } + else + { + $sql = ''; + } + } + else + { + $sql = "INSERT INTO " . SMILIES_TABLE . " (code, smile_url, emoticon) + VALUES('" . str_replace("\'", "''", $smile_data[$j]) . "', '" . str_replace("\'", "''", $smile_data[0]) . "', '" . str_replace("\'", "''", $smile_data[1]) . "')"; + } + + if( $sql != '' ) + { + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't update smilies!", "", __LINE__, __FILE__, $sql); + } + } + } + } + + $message = $lang['smiley_import_success'] . "

    " . sprintf($lang['Click_return_smileadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else + { + // + // Display the script to get the smile_pak cfg file... + // + $smile_paks_select = ""; + + $hidden_vars = ""; + + $template->set_filenames(array( + "body" => "admin/smile_import_body.tpl") + ); + + $template->assign_vars(array( + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_EXPLAIN" => $lang['smiley_import_inst'], + "L_SMILEY_IMPORT" => $lang['smiley_import'], + "L_SELECT_LBL" => $lang['choose_smile_pak'], + "L_IMPORT" => $lang['import'], + "L_CONFLICTS" => $lang['smile_conflicts'], + "L_DEL_EXISTING" => $lang['del_existing_smileys'], + "L_REPLACE_EXISTING" => $lang['replace_existing'], + "L_KEEP_EXISTING" => $lang['keep_existing'], + + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"), + "S_SMILE_SELECT" => $smile_paks_select, + "S_HIDDEN_FIELDS" => $hidden_vars) + ); + + $template->pparse("body"); + } +} +else if( isset($HTTP_POST_VARS['export_pack']) || isset($HTTP_GET_VARS['export_pack']) ) +{ + // + // Export our smiley config as a smiley pak... + // + if ( $HTTP_GET_VARS['export_pack'] == "send" ) + { + $sql = "SELECT * + FROM " . SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Could not get smiley list", "", __LINE__, __FILE__, $sql); + } + + $resultset = $db->sql_fetchrowset($result); + + $smile_pak = ""; + for($i = 0; $i < count($resultset); $i++ ) + { + $smile_pak .= $resultset[$i]['smile_url'] . $delimeter; + $smile_pak .= $resultset[$i]['emoticon'] . $delimeter; + $smile_pak .= $resultset[$i]['code'] . "\n"; + } + + header("Content-Type: text/x-delimtext; name=\"smiles.pak\""); + header("Content-disposition: attachment; filename=smiles.pak"); + + echo $smile_pak; + + exit; + } + + $message = sprintf($lang['export_smiles'], "", "") . "

    " . sprintf($lang['Click_return_smileadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + +} +else if( isset($HTTP_POST_VARS['add']) || isset($HTTP_GET_VARS['add']) ) +{ + // + // Admin has selected to add a smiley. + // + + $template->set_filenames(array( + "body" => "admin/smile_edit_body.tpl") + ); + + $filename_list = ""; + for( $i = 0; $i < count($smiley_images); $i++ ) + { + $filename_list .= ''; + } + + $s_hidden_fields = ''; + + $template->assign_vars(array( + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_CONFIG" => $lang['smiley_config'], + "L_SMILEY_EXPLAIN" => $lang['smile_desc'], + "L_SMILEY_CODE" => $lang['smiley_code'], + "L_SMILEY_URL" => $lang['smiley_url'], + "L_SMILEY_EMOTION" => $lang['smiley_emot'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + + "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smiley_images[0], + + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_FILENAME_OPTIONS" => $filename_list, + "S_SMILEY_BASEDIR" => $phpbb_root_path . $board_config['smilies_path']) + ); + + $template->pparse("body"); +} +else if ( $mode != "" ) +{ + switch( $mode ) + { + case 'delete': + // + // Admin has selected to delete a smiley. + // + + $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; + $smiley_id = intval($smiley_id); + + $sql = "DELETE FROM " . SMILIES_TABLE . " + WHERE smilies_id = " . $smiley_id; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't delete smiley", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['smiley_del_success'] . "

    " . sprintf($lang['Click_return_smileadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + break; + + case 'edit': + // + // Admin has selected to edit a smiley. + // + + $smiley_id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; + $smiley_id = intval($smiley_id); + + $sql = "SELECT * + FROM " . SMILIES_TABLE . " + WHERE smilies_id = " . $smiley_id; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, 'Could not obtain emoticon information', "", __LINE__, __FILE__, $sql); + } + $smile_data = $db->sql_fetchrow($result); + + $filename_list = ""; + for( $i = 0; $i < count($smiley_images); $i++ ) + { + if( $smiley_images[$i] == $smile_data['smile_url'] ) + { + $smiley_selected = "selected=\"selected\""; + $smiley_edit_img = $smiley_images[$i]; + } + else + { + $smiley_selected = ""; + } + + $filename_list .= ''; + } + + $template->set_filenames(array( + "body" => "admin/smile_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + $template->assign_vars(array( + "SMILEY_CODE" => $smile_data['code'], + "SMILEY_EMOTICON" => $smile_data['emoticon'], + + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_CONFIG" => $lang['smiley_config'], + "L_SMILEY_EXPLAIN" => $lang['smile_desc'], + "L_SMILEY_CODE" => $lang['smiley_code'], + "L_SMILEY_URL" => $lang['smiley_url'], + "L_SMILEY_EMOTION" => $lang['smiley_emot'], + "L_SUBMIT" => $lang['Submit'], + "L_RESET" => $lang['Reset'], + + "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smiley_edit_img, + + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_FILENAME_OPTIONS" => $filename_list, + "S_SMILEY_BASEDIR" => $phpbb_root_path . $board_config['smilies_path']) + ); + + $template->pparse("body"); + break; + + case "save": + // + // Admin has submitted changes while editing a smiley. + // + + // + // Get the submitted data, being careful to ensure that we only + // accept the data we are looking for. + // + $smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? trim($HTTP_POST_VARS['smile_code']) : trim($HTTP_GET_VARS['smile_code']); + $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? trim($HTTP_POST_VARS['smile_url']) : trim($HTTP_GET_VARS['smile_url']); + $smile_emotion = ( isset($HTTP_POST_VARS['smile_emotion']) ) ? trim($HTTP_POST_VARS['smile_emotion']) : trim($HTTP_GET_VARS['smile_emotion']); + $smile_id = ( isset($HTTP_POST_VARS['smile_id']) ) ? intval($HTTP_POST_VARS['smile_id']) : intval($HTTP_GET_VARS['smile_id']); + + // If no code was entered complain ... + if ($smile_code == '' || $smile_url == '') + { + message_die(MESSAGE, $lang['Fields_empty']); + } + + // + // Convert < and > to proper htmlentities for parsing. + // + $smile_code = str_replace('<', '<', $smile_code); + $smile_code = str_replace('>', '>', $smile_code); + + // + // Proceed with updating the smiley table. + // + $sql = "UPDATE " . SMILIES_TABLE . " + SET code = '" . str_replace("\'", "''", $smile_code) . "', smile_url = '" . str_replace("\'", "''", $smile_url) . "', emoticon = '" . str_replace("\'", "''", $smile_emotion) . "' + WHERE smilies_id = $smile_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update smilies info", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['smiley_edit_success'] . "

    " . sprintf($lang['Click_return_smileadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + break; + + case "savenew": + // + // Admin has submitted changes while adding a new smiley. + // + + // + // Get the submitted data being careful to ensure the the data + // we recieve and process is only the data we are looking for. + // + $smile_code = ( isset($HTTP_POST_VARS['smile_code']) ) ? $HTTP_POST_VARS['smile_code'] : $HTTP_GET_VARS['smile_code']; + $smile_url = ( isset($HTTP_POST_VARS['smile_url']) ) ? $HTTP_POST_VARS['smile_url'] : $HTTP_GET_VARS['smile_url']; + $smile_emotion = ( isset($HTTP_POST_VARS['smile_emotion']) ) ? $HTTP_POST_VARS['smile_emotion'] : $HTTP_GET_VARS['smile_emotion']; + + // If no code was entered complain ... + if ($smile_code == '' || $smile_url == '') + { + message_die(MESSAGE, $lang['Fields_empty']); + } + + // + // Convert < and > to proper htmlentities for parsing. + // + $smile_code = str_replace('<', '<', $smile_code); + $smile_code = str_replace('>', '>', $smile_code); + + // + // Save the data to the smiley table. + // + $sql = "INSERT INTO " . SMILIES_TABLE . " (code, smile_url, emoticon) + VALUES ('" . str_replace("\'", "''", $smile_code) . "', '" . str_replace("\'", "''", $smile_url) . "', '" . str_replace("\'", "''", $smile_emotion) . "')"; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't insert new smiley", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['smiley_add_success'] . "

    " . sprintf($lang['Click_return_smileadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + break; + } +} +else +{ + + // + // This is the main display of the page before the admin has selected + // any options. + // + $sql = "SELECT * + FROM " . SMILIES_TABLE; + $result = $db->sql_query($sql); + if( !$result ) + { + message_die(GENERAL_ERROR, "Couldn't obtain smileys from database", "", __LINE__, __FILE__, $sql); + } + + $smilies = $db->sql_fetchrowset($result); + + $template->set_filenames(array( + "body" => "admin/smile_list_body.tpl") + ); + + $template->assign_vars(array( + "L_ACTION" => $lang['Action'], + "L_SMILEY_TITLE" => $lang['smiley_title'], + "L_SMILEY_TEXT" => $lang['smile_desc'], + "L_DELETE" => $lang['Delete'], + "L_EDIT" => $lang['Edit'], + "L_SMILEY_ADD" => $lang['smile_add'], + "L_CODE" => $lang['Code'], + "L_EMOT" => $lang['Emotion'], + "L_SMILE" => $lang['Smile'], + "L_IMPORT_PACK" => $lang['import_smile_pack'], + "L_EXPORT_PACK" => $lang['export_smile_pack'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_SMILEY_ACTION" => append_sid("admin_smilies.$phpEx")) + ); + + // + // Loop throuh the rows of smilies setting block vars for the template. + // + for($i = 0; $i < count($smilies); $i++) + { + // + // Replace htmlentites for < and > with actual character. + // + $smilies[$i]['code'] = str_replace('<', '<', $smilies[$i]['code']); + $smilies[$i]['code'] = str_replace('>', '>', $smilies[$i]['code']); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("smiles", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + + "SMILEY_IMG" => $phpbb_root_path . $board_config['smilies_path'] . '/' . $smilies[$i]['smile_url'], + "CODE" => $smilies[$i]['code'], + "EMOT" => $smilies[$i]['emoticon'], + + "U_SMILEY_EDIT" => append_sid("admin_smilies.$phpEx?mode=edit&id=" . $smilies[$i]['smilies_id']), + "U_SMILEY_DELETE" => append_sid("admin_smilies.$phpEx?mode=delete&id=" . $smilies[$i]['smilies_id'])) + ); + } + + // + // Spit out the page. + // + $template->pparse("body"); +} + +// +// Page Footer +// +include('./page_footer_admin.'.$phpEx); + +?> diff --git a/phpBB2_old/admin/admin_styles.php b/phpBB2_old/admin/admin_styles.php new file mode 100644 index 0000000..2390216 --- /dev/null +++ b/phpBB2_old/admin/admin_styles.php @@ -0,0 +1,940 @@ +sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Could not insert theme data!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Theme_installed'] . "

    " . sprintf($lang['Click_return_styleadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + + $installable_themes = array(); + + if( $dir = @opendir($phpbb_root_path. "templates/") ) + { + while( $sub_dir = @readdir($dir) ) + { + if( !is_file(phpbb_realpath($phpbb_root_path . 'templates/' .$sub_dir)) && !is_link(phpbb_realpath($phpbb_root_path . 'templates/' .$sub_dir)) && $sub_dir != "." && $sub_dir != ".." && $sub_dir != "CVS" ) + { + if( @file_exists(@phpbb_realpath($phpbb_root_path. "templates/" . $sub_dir . "/theme_info.cfg")) ) + { + include($phpbb_root_path. "templates/" . $sub_dir . "/theme_info.cfg"); + + for($i = 0; $i < count($$sub_dir); $i++) + { + $working_data = $$sub_dir; + + $style_name = $working_data[$i]['style_name']; + + $sql = "SELECT themes_id + FROM " . THEMES_TABLE . " + WHERE style_name = '" . str_replace("\'", "''", $style_name) . "'"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query themes table!", "", __LINE__, __FILE__, $sql); + } + + if(!$db->sql_numrows($result)) + { + $installable_themes[] = $working_data[$i]; + } + } + } + } + } + + $template->set_filenames(array( + "body" => "admin/styles_addnew_body.tpl") + ); + + $template->assign_vars(array( + "L_STYLES_TITLE" => $lang['Styles_admin'], + "L_STYLES_ADD_TEXT" => $lang['Styles_addnew_explain'], + "L_STYLE" => $lang['Style'], + "L_TEMPLATE" => $lang['Template'], + "L_INSTALL" => $lang['Install'], + "L_ACTION" => $lang['Action']) + ); + + for($i = 0; $i < count($installable_themes); $i++) + { + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("styles", array( + "ROW_CLASS" => $row_class, + "ROW_COLOR" => "#" . $row_color, + "STYLE_NAME" => $installable_themes[$i]['style_name'], + "TEMPLATE_NAME" => $installable_themes[$i]['template_name'], + + "U_STYLES_INSTALL" => append_sid("admin_styles.$phpEx?mode=addnew&style=" . urlencode($installable_themes[$i]['style_name']) . "&install_to=" . urlencode($installable_themes[$i]['template_name']))) + ); + + } + $template->pparse("body"); + + } + closedir($dir); + } + break; + + case "create": + case "edit": + $submit = ( isset($HTTP_POST_VARS['submit']) ) ? TRUE : 0; + + if( $submit ) + { + // + // DAMN! Thats alot of data to validate... + // + $updated['style_name'] = $HTTP_POST_VARS['style_name']; + $updated['template_name'] = $HTTP_POST_VARS['template_name']; + $updated['head_stylesheet'] = $HTTP_POST_VARS['head_stylesheet']; + $updated['body_background'] = $HTTP_POST_VARS['body_background']; + $updated['body_bgcolor'] = $HTTP_POST_VARS['body_bgcolor']; + $updated['body_text'] = $HTTP_POST_VARS['body_text']; + $updated['body_link'] = $HTTP_POST_VARS['body_link']; + $updated['body_vlink'] = $HTTP_POST_VARS['body_vlink']; + $updated['body_alink'] = $HTTP_POST_VARS['body_alink']; + $updated['body_hlink'] = $HTTP_POST_VARS['body_hlink']; + $updated['tr_color1'] = $HTTP_POST_VARS['tr_color1']; + $updated_name['tr_color1_name'] = $HTTP_POST_VARS['tr_color1_name']; + $updated['tr_color2'] = $HTTP_POST_VARS['tr_color2']; + $updated_name['tr_color2_name'] = $HTTP_POST_VARS['tr_color2_name']; + $updated['tr_color3'] = $HTTP_POST_VARS['tr_color3']; + $updated_name['tr_color3_name'] = $HTTP_POST_VARS['tr_color3_name']; + $updated['tr_class1'] = $HTTP_POST_VARS['tr_class1']; + $updated_name['tr_class1_name'] = $HTTP_POST_VARS['tr_class1_name']; + $updated['tr_class2'] = $HTTP_POST_VARS['tr_class2']; + $updated_name['tr_class2_name'] = $HTTP_POST_VARS['tr_class2_name']; + $updated['tr_class3'] = $HTTP_POST_VARS['tr_class3']; + $updated_name['tr_class3_name'] = $HTTP_POST_VARS['tr_class3_name']; + $updated['th_color1'] = $HTTP_POST_VARS['th_color1']; + $updated_name['th_color1_name'] = $HTTP_POST_VARS['th_color1_name']; + $updated['th_color2'] = $HTTP_POST_VARS['th_color2']; + $updated_name['th_color2_name'] = $HTTP_POST_VARS['th_color2_name']; + $updated['th_color3'] = $HTTP_POST_VARS['th_color3']; + $updated_name['th_color3_name'] = $HTTP_POST_VARS['th_color3_name']; + $updated['th_class1'] = $HTTP_POST_VARS['th_class1']; + $updated_name['th_class1_name'] = $HTTP_POST_VARS['th_class1_name']; + $updated['th_class2'] = $HTTP_POST_VARS['th_class2']; + $updated_name['th_class2_name'] = $HTTP_POST_VARS['th_class2_name']; + $updated['th_class3'] = $HTTP_POST_VARS['th_class3']; + $updated_name['th_class3_name'] = $HTTP_POST_VARS['th_class3_name']; + $updated['td_color1'] = $HTTP_POST_VARS['td_color1']; + $updated_name['td_color1_name'] = $HTTP_POST_VARS['td_color1_name']; + $updated['td_color2'] = $HTTP_POST_VARS['td_color2']; + $updated_name['td_color2_name'] = $HTTP_POST_VARS['td_color2_name']; + $updated['td_color3'] = $HTTP_POST_VARS['td_color3']; + $updated_name['td_color3_name'] = $HTTP_POST_VARS['td_color3_name']; + $updated['td_class1'] = $HTTP_POST_VARS['td_class1']; + $updated_name['td_class1_name'] = $HTTP_POST_VARS['td_class1_name']; + $updated['td_class2'] = $HTTP_POST_VARS['td_class2']; + $updated_name['td_class2_name'] = $HTTP_POST_VARS['td_class2_name']; + $updated['td_class3'] = $HTTP_POST_VARS['td_class3']; + $updated_name['td_class3_name'] = $HTTP_POST_VARS['td_class3_name']; + $updated['fontface1'] = $HTTP_POST_VARS['fontface1']; + $updated_name['fontface1_name'] = $HTTP_POST_VARS['fontface1_name']; + $updated['fontface2'] = $HTTP_POST_VARS['fontface2']; + $updated_name['fontface2_name'] = $HTTP_POST_VARS['fontface2_name']; + $updated['fontface3'] = $HTTP_POST_VARS['fontface3']; + $updated_name['fontface3_name'] = $HTTP_POST_VARS['fontface3_name']; + $updated['fontsize1'] = intval($HTTP_POST_VARS['fontsize1']); + $updated_name['fontsize1_name'] = $HTTP_POST_VARS['fontsize1_name']; + $updated['fontsize2'] = intval($HTTP_POST_VARS['fontsize2']); + $updated_name['fontsize2_name'] = $HTTP_POST_VARS['fontsize2_name']; + $updated['fontsize3'] = intval($HTTP_POST_VARS['fontsize3']); + $updated_name['fontsize3_name'] = $HTTP_POST_VARS['fontsize3_name']; + $updated['fontcolor1'] = $HTTP_POST_VARS['fontcolor1']; + $updated_name['fontcolor1_name'] = $HTTP_POST_VARS['fontcolor1_name']; + $updated['fontcolor2'] = $HTTP_POST_VARS['fontcolor2']; + $updated_name['fontcolor2_name'] = $HTTP_POST_VARS['fontcolor2_name']; + $updated['fontcolor3'] = $HTTP_POST_VARS['fontcolor3']; + $updated_name['fontcolor3_name'] = $HTTP_POST_VARS['fontcolor3_name']; + $updated['span_class1'] = $HTTP_POST_VARS['span_class1']; + $updated_name['span_class1_name'] = $HTTP_POST_VARS['span_class1_name']; + $updated['span_class2'] = $HTTP_POST_VARS['span_class2']; + $updated_name['span_class2_name'] = $HTTP_POST_VARS['span_class2_name']; + $updated['span_class3'] = $HTTP_POST_VARS['span_class3']; + $updated_name['span_class3_name'] = $HTTP_POST_VARS['span_class3_name']; + $style_id = intval($HTTP_POST_VARS['style_id']); + // + // Wheeeew! Thank heavens for copy and paste and search and replace :D + // + + if($mode == "edit") + { + $sql = "UPDATE " . THEMES_TABLE . " SET "; + $count = 0; + + while(list($key, $val) = each($updated)) + { + if($count != 0) + { + $sql .= ", "; + } + + // + // I don't like this but it'll keep MSSQL from throwing + // an error and save me alot of typing + // + $sql .= ( stristr($key, "fontsize") ) ? "$key = $val" : "$key = '" . str_replace("\'", "''", $val) . "'"; + + $count++; + } + + $sql .= " WHERE themes_id = $style_id"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not update themes table!", "", __LINE__, __FILE__, $sql); + } + + // + // Check if there's a names table entry for this style + // + $sql = "SELECT themes_id + FROM " . THEMES_NAME_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get data from themes_name table", "", __LINE__, __FILE__, $sql); + } + + if($db->sql_numrows($result) > 0) + { + $sql = "UPDATE " . THEMES_NAME_TABLE . " + SET "; + $count = 0; + while(list($key, $val) = each($updated_name)) + { + if($count != 0) + { + $sql .= ", "; + } + + $sql .= "$key = '$val'"; + + $count++; + } + + $sql .= " WHERE themes_id = $style_id"; + } + else + { + // + // Nope, no names entry so we create a new one. + // + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, "; + while(list($key, $val) = each($updated_name)) + { + $fields[] = $key; + $vals[] = str_replace("\'", "''", $val); + } + + for($i = 0; $i < count($fields); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= $fields[$i]; + } + + $sql .= ") VALUES ($style_id, "; + for($i = 0; $i < count($vals); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= "'" . $vals[$i] . "'"; + } + + $sql .= ")"; + } + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not update themes name table!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Theme_updated'] . "

    " . sprintf($lang['Click_return_styleadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + // + // First, check if we already have a style by this name + // + $sql = "SELECT themes_id + FROM " . THEMES_TABLE . " + WHERE style_name = '" . str_replace("\'", "''", $updated['style_name']) . "'"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query themes table", "", __LINE__, __FILE__, $sql); + } + + if($db->sql_numrows($result)) + { + message_die(GENERAL_ERROR, $lang['Style_exists'], $lang['Error']); + } + + while(list($key, $val) = each($updated)) + { + $field_names[] = $key; + + if(stristr($key, "fontsize")) + { + $values[] = "$val"; + } + else + { + $values[] = "'" . str_replace("\'", "''", $val) . "'"; + } + } + + $sql = "INSERT + INTO " . THEMES_TABLE . " ("; + for($i = 0; $i < count($field_names); $i++) + { + if($i != 0) + { + $sql .= ", "; + } + $sql .= $field_names[$i]; + } + + $sql .= ") VALUES ("; + for($i = 0; $i < count($values); $i++) + { + if($i != 0) + { + $sql .= ", "; + } + $sql .= $values[$i]; + } + $sql .= ")"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not update themes table!", "", __LINE__, __FILE__, $sql); + } + + $style_id = $db->sql_nextid(); + + // + // Insert names data + // + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, "; + while(list($key, $val) = each($updated_name)) + { + $fields[] = $key; + $vals[] = $val; + } + + for($i = 0; $i < count($fields); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= $fields[$i]; + } + + $sql .= ") VALUES ($style_id, "; + for($i = 0; $i < count($vals); $i++) + { + if($i > 0) + { + $sql .= ", "; + } + $sql .= "'" . $vals[$i] . "'"; + } + + $sql .= ")"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not insert themes name table!", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Theme_created'] . "

    " . sprintf($lang['Click_return_styleadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + if($mode == "edit") + { + $themes_title = $lang['Edit_theme']; + $themes_explain = $lang['Edit_theme_explain']; + + $style_id = intval($HTTP_GET_VARS['style_id']); + + $selected_names = array(); + $selected_values = array(); + // + // Fetch the Theme Info from the db + // + $sql = "SELECT * + FROM " . THEMES_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get data from themes table", "", __LINE__, __FILE__, $sql); + } + + if ( $selected_values = $db->sql_fetchrow($result) ) + { + while(list($key, $val) = @each($selected_values)) + { + $selected[$key] = $val; + } + } + + // + // Fetch the Themes Name data + // + $sql = "SELECT * + FROM " . THEMES_NAME_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get data from themes name table", "", __LINE__, __FILE__, $sql); + } + + if ( $selected_names = $db->sql_fetchrow($result) ) + { + while(list($key, $val) = @each($selected_names)) + { + $selected[$key] = $val; + } + } + + $s_hidden_fields = ''; + } + else + { + $themes_title = $lang['Create_theme']; + $themes_explain = $lang['Create_theme_explain']; + } + + $template->set_filenames(array( + "body" => "admin/styles_edit_body.tpl") + ); + + if( $dir = @opendir($phpbb_root_path . 'templates/') ) + { + $s_template_select = ''; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_template_dir']); + } + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + "L_THEMES_TITLE" => $themes_title, + "L_THEMES_EXPLAIN" => $themes_explain, + "L_THEME_NAME" => $lang['Theme_name'], + "L_TEMPLATE" => $lang['Template'], + "L_THEME_SETTINGS" => $lang['Theme_settings'], + "L_THEME_ELEMENT" => $lang['Theme_element'], + "L_SIMPLE_NAME" => $lang['Simple_name'], + "L_VALUE" => $lang['Value'], + "L_STYLESHEET" => $lang['Stylesheet'], + "L_BACKGROUND_IMAGE" => $lang['Background_image'], + "L_BACKGROUND_COLOR" => $lang['Background_color'], + "L_BODY_TEXT_COLOR" => $lang['Text_color'], + "L_BODY_LINK_COLOR" => $lang['Link_color'], + "L_BODY_VLINK_COLOR" => $lang['VLink_color'], + "L_BODY_ALINK_COLOR" => $lang['ALink_color'], + "L_BODY_HLINK_COLOR" => $lang['HLink_color'], + "L_TR_COLOR1" => $lang['Tr_color1'], + "L_TR_COLOR2" => $lang['Tr_color2'], + "L_TR_COLOR3" => $lang['Tr_color3'], + "L_TR_CLASS1" => $lang['Tr_class1'], + "L_TR_CLASS2" => $lang['Tr_class2'], + "L_TR_CLASS3" => $lang['Tr_class3'], + "L_TH_COLOR1" => $lang['Th_color1'], + "L_TH_COLOR2" => $lang['Th_color2'], + "L_TH_COLOR3" => $lang['Th_color3'], + "L_TH_CLASS1" => $lang['Th_class1'], + "L_TH_CLASS2" => $lang['Th_class2'], + "L_TH_CLASS3" => $lang['Th_class3'], + "L_TD_COLOR1" => $lang['Td_color1'], + "L_TD_COLOR2" => $lang['Td_color2'], + "L_TD_COLOR3" => $lang['Td_color3'], + "L_TD_CLASS1" => $lang['Td_class1'], + "L_TD_CLASS2" => $lang['Td_class2'], + "L_TD_CLASS3" => $lang['Td_class3'], + "L_FONTFACE_1" => $lang['fontface1'], + "L_FONTFACE_2" => $lang['fontface2'], + "L_FONTFACE_3" => $lang['fontface3'], + "L_FONTSIZE_1" => $lang['fontsize1'], + "L_FONTSIZE_2" => $lang['fontsize2'], + "L_FONTSIZE_3" => $lang['fontsize3'], + "L_FONTCOLOR_1" => $lang['fontcolor1'], + "L_FONTCOLOR_2" => $lang['fontcolor2'], + "L_FONTCOLOR_3" => $lang['fontcolor3'], + "L_SPAN_CLASS_1" => $lang['span_class1'], + "L_SPAN_CLASS_2" => $lang['span_class2'], + "L_SPAN_CLASS_3" => $lang['span_class3'], + "L_SAVE_SETTINGS" => $lang['Save_Settings'], + "THEME_NAME" => $selected['style_name'], + "HEAD_STYLESHEET" => $selected['head_stylesheet'], + "BODY_BACKGROUND" => $selected['body_background'], + "BODY_BGCOLOR" => $selected['body_bgcolor'], + "BODY_TEXT_COLOR" => $selected['body_text'], + "BODY_LINK_COLOR" => $selected['body_link'], + "BODY_VLINK_COLOR" => $selected['body_vlink'], + "BODY_ALINK_COLOR" => $selected['body_alink'], + "BODY_HLINK_COLOR" => $selected['body_hlink'], + "TR_COLOR1" => $selected['tr_color1'], + "TR_COLOR2" => $selected['tr_color2'], + "TR_COLOR3" => $selected['tr_color3'], + "TR_CLASS1" => $selected['tr_class1'], + "TR_CLASS2" => $selected['tr_class2'], + "TR_CLASS3" => $selected['tr_class3'], + "TH_COLOR1" => $selected['th_color1'], + "TH_COLOR2" => $selected['th_color2'], + "TH_COLOR3" => $selected['th_color3'], + "TH_CLASS1" => $selected['th_class1'], + "TH_CLASS2" => $selected['th_class2'], + "TH_CLASS3" => $selected['th_class3'], + "TD_COLOR1" => $selected['td_color1'], + "TD_COLOR2" => $selected['td_color2'], + "TD_COLOR3" => $selected['td_color3'], + "TD_CLASS1" => $selected['td_class1'], + "TD_CLASS2" => $selected['td_class2'], + "TD_CLASS3" => $selected['td_class3'], + "FONTFACE1" => $selected['fontface1'], + "FONTFACE2" => $selected['fontface2'], + "FONTFACE3" => $selected['fontface3'], + "FONTSIZE1" => $selected['fontsize1'], + "FONTSIZE2" => $selected['fontsize2'], + "FONTSIZE3" => $selected['fontsize3'], + "FONTCOLOR1" => $selected['fontcolor1'], + "FONTCOLOR2" => $selected['fontcolor2'], + "FONTCOLOR3" => $selected['fontcolor3'], + "SPAN_CLASS1" => $selected['span_class1'], + "SPAN_CLASS2" => $selected['span_class2'], + "SPAN_CLASS3" => $selected['span_class3'], + + "TR_COLOR1_NAME" => $selected['tr_color1_name'], + "TR_COLOR2_NAME" => $selected['tr_color2_name'], + "TR_COLOR3_NAME" => $selected['tr_color3_name'], + "TR_CLASS1_NAME" => $selected['tr_class1_name'], + "TR_CLASS2_NAME" => $selected['tr_class2_name'], + "TR_CLASS3_NAME" => $selected['tr_class3_name'], + "TH_COLOR1_NAME" => $selected['th_color1_name'], + "TH_COLOR2_NAME" => $selected['th_color2_name'], + "TH_COLOR3_NAME" => $selected['th_color3_name'], + "TH_CLASS1_NAME" => $selected['th_class1_name'], + "TH_CLASS2_NAME" => $selected['th_class2_name'], + "TH_CLASS3_NAME" => $selected['th_class3_name'], + "TD_COLOR1_NAME" => $selected['td_color1_name'], + "TD_COLOR2_NAME" => $selected['td_color2_name'], + "TD_COLOR3_NAME" => $selected['td_color3_name'], + "TD_CLASS1_NAME" => $selected['td_class1_name'], + "TD_CLASS2_NAME" => $selected['td_class2_name'], + "TD_CLASS3_NAME" => $selected['td_class3_name'], + "FONTFACE1_NAME" => $selected['fontface1_name'], + "FONTFACE2_NAME" => $selected['fontface2_name'], + "FONTFACE3_NAME" => $selected['fontface3_name'], + "FONTSIZE1_NAME" => $selected['fontsize1_name'], + "FONTSIZE2_NAME" => $selected['fontsize2_name'], + "FONTSIZE3_NAME" => $selected['fontsize3_name'], + "FONTCOLOR1_NAME" => $selected['fontcolor1_name'], + "FONTCOLOR2_NAME" => $selected['fontcolor2_name'], + "FONTCOLOR3_NAME" => $selected['fontcolor3_name'], + "SPAN_CLASS1_NAME" => $selected['span_class1_name'], + "SPAN_CLASS2_NAME" => $selected['span_class2_name'], + "SPAN_CLASS3_NAME" => $selected['span_class3_name'], + + "S_THEME_ACTION" => append_sid("admin_styles.$phpEx"), + "S_TEMPLATE_SELECT" => $s_template_select, + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + + $template->pparse("body"); + } + break; + + case "export"; + if($HTTP_POST_VARS['export_template']) + { + $template_name = $HTTP_POST_VARS['export_template']; + + $sql = "SELECT * + FROM " . THEMES_TABLE . " + WHERE template_name = '" . str_replace("\'", "''", $template_name) . "'"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get theme data for selected template", "", __LINE__, __FILE__, $sql); + } + + $theme_rowset = $db->sql_fetchrowset($result); + + if( count($theme_rowset) == 0 ) + { + message_die(GENERAL_MESSAGE, $lang['No_themes']); + } + + $theme_data = ''; // Done this to prevent highlighting editors getting confused! + + @umask(0111); + + $fp = @fopen($phpbb_root_path . 'templates/' . $template_name . '/theme_info.cfg', 'w'); + + if( !$fp ) + { + // + // Unable to open the file writeable do something here as an attempt + // to get around that... + // + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + $download_form = '
    ' . $s_hidden_fields; + + $template->set_filenames(array( + "body" => "message_body.tpl") + ); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Export_themes'], + "MESSAGE_TEXT" => $lang['Download_theme_cfg'] . "

    " . $download_form) + ); + + $template->pparse('body'); + exit(); + } + + $result = @fputs($fp, $theme_data, strlen($theme_data)); + fclose($fp); + + $message = $lang['Theme_info_saved'] . "

    " . sprintf($lang['Click_return_styleadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + + } + else if($HTTP_POST_VARS['send_file']) + { + + header("Content-Type: text/x-delimtext; name=\"theme_info.cfg\""); + header("Content-disposition: attachment; filename=theme_info.cfg"); + + echo stripslashes($HTTP_POST_VARS['theme_info']); + } + else + { + $template->set_filenames(array( + "body" => "admin/styles_exporter.tpl") + ); + + if( $dir = @opendir($phpbb_root_path . 'templates/') ) + { + $s_template_select = ''; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_template_dir']); + } + + $template->assign_vars(array( + "L_STYLE_EXPORTER" => $lang['Export_themes'], + "L_EXPORTER_EXPLAIN" => $lang['Export_explain'], + "L_TEMPLATE_SELECT" => $lang['Select_template'], + "L_SUBMIT" => $lang['Submit'], + + "S_EXPORTER_ACTION" => append_sid("admin_styles.$phpEx?mode=export"), + "S_TEMPLATE_SELECT" => $s_template_select) + ); + + $template->pparse("body"); + + } + break; + + case "delete": + $style_id = ( isset($HTTP_GET_VARS['style_id']) ) ? intval($HTTP_GET_VARS['style_id']) : intval($HTTP_POST_VARS['style_id']); + + if( !$confirm ) + { + if($style_id == $board_config['default_style']) + { + message_die(GENERAL_MESSAGE, $lang['Cannot_remove_style']); + } + + $hidden_fields = ''; + + // + // Set template files + // + $template->set_filenames(array( + "confirm" => "confirm_body.tpl") + ); + + $template->assign_vars(array( + "MESSAGE_TITLE" => $lang['Confirm'], + "MESSAGE_TEXT" => $lang['Confirm_delete_style'], + + "L_YES" => $lang['Yes'], + "L_NO" => $lang['No'], + + "S_CONFIRM_ACTION" => append_sid("admin_styles.$phpEx"), + "S_HIDDEN_FIELDS" => $hidden_fields) + ); + + $template->pparse("confirm"); + + } + else + { + // + // The user has confirmed the delete. Remove the style, the style element + // names and update any users who might be using this style + // + $sql = "DELETE FROM " . THEMES_TABLE . " + WHERE themes_id = $style_id"; + if(!$result = $db->sql_query($sql, BEGIN_TRANSACTION)) + { + message_die(GENERAL_ERROR, "Could not remove style data!", "", __LINE__, __FILE__, $sql); + } + + // + // There may not be any theme name data so don't throw an error + // if the SQL dosan't work + // + $sql = "DELETE FROM " . THEMES_NAME_TABLE . " + WHERE themes_id = $style_id"; + $db->sql_query($sql); + + $sql = "UPDATE " . USERS_TABLE . " + SET user_style = " . $board_config['default_style'] . " + WHERE user_style = $style_id"; + if(!$result = $db->sql_query($sql, END_TRANSACTION)) + { + message_die(GENERAL_ERROR, "Could not update user style information", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Style_removed'] . "

    " . sprintf($lang['Click_return_styleadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + break; + + default: + + $sql = "SELECT themes_id, template_name, style_name + FROM " . THEMES_TABLE . " + ORDER BY template_name"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not get style information!", "", __LINE__, __FILE__, $sql); + } + + $style_rowset = $db->sql_fetchrowset($result); + + $template->set_filenames(array( + "body" => "admin/styles_list_body.tpl") + ); + + $template->assign_vars(array( + "L_STYLES_TITLE" => $lang['Styles_admin'], + "L_STYLES_TEXT" => $lang['Styles_explain'], + "L_STYLE" => $lang['Style'], + "L_TEMPLATE" => $lang['Template'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete']) + ); + + for($i = 0; $i < count($style_rowset); $i++) + { + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("styles", array( + "ROW_CLASS" => $row_class, + "ROW_COLOR" => $row_color, + "STYLE_NAME" => $style_rowset[$i]['style_name'], + "TEMPLATE_NAME" => $style_rowset[$i]['template_name'], + + "U_STYLES_EDIT" => append_sid("admin_styles.$phpEx?mode=edit&style_id=" . $style_rowset[$i]['themes_id']), + "U_STYLES_DELETE" => append_sid("admin_styles.$phpEx?mode=delete&style_id=" . $style_rowset[$i]['themes_id'])) + ); + } + + $template->pparse("body"); + break; +} + +if (empty($HTTP_POST_VARS['send_file'])) +{ + include('./page_footer_admin.'.$phpEx); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_ug_auth.php b/phpBB2_old/admin/admin_ug_auth.php new file mode 100644 index 0000000..bbcbd99 --- /dev/null +++ b/phpBB2_old/admin/admin_ug_auth.php @@ -0,0 +1,948 @@ + 'mode', 'user_id' => POST_USERS_URL, 'group_id' => POST_GROUPS_URL, 'adv' => 'adv'); + +while( list($var, $param) = @each($params) ) +{ + if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) ) + { + $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? $HTTP_POST_VARS[$param] : $HTTP_GET_VARS[$param]; + } + else + { + $$var = ""; + } +} + +$user_id = intval($user_id); +$group_id = intval($group_id); +$adv = intval($adv); +$mode = htmlspecialchars($mode); + +// +// Start program - define vars +// +$forum_auth_fields = array('auth_view', 'auth_read', 'auth_post', 'auth_reply', 'auth_edit', 'auth_delete', 'auth_sticky', 'auth_announce', 'auth_vote', 'auth_pollcreate'); + +$auth_field_match = array( + 'auth_view' => AUTH_VIEW, + 'auth_read' => AUTH_READ, + 'auth_post' => AUTH_POST, + 'auth_reply' => AUTH_REPLY, + 'auth_edit' => AUTH_EDIT, + 'auth_delete' => AUTH_DELETE, + 'auth_sticky' => AUTH_STICKY, + 'auth_announce' => AUTH_ANNOUNCE, + 'auth_vote' => AUTH_VOTE, + 'auth_pollcreate' => AUTH_POLLCREATE); + +$field_names = array( + 'auth_view' => $lang['View'], + 'auth_read' => $lang['Read'], + 'auth_post' => $lang['Post'], + 'auth_reply' => $lang['Reply'], + 'auth_edit' => $lang['Edit'], + 'auth_delete' => $lang['Delete'], + 'auth_sticky' => $lang['Sticky'], + 'auth_announce' => $lang['Announce'], + 'auth_vote' => $lang['Vote'], + 'auth_pollcreate' => $lang['Pollcreate']); + +// --------------- +// Start Functions +// +function check_auth($type, $key, $u_access, $is_admin) +{ + $auth_user = 0; + + if( count($u_access) ) + { + for($j = 0; $j < count($u_access); $j++) + { + $result = 0; + switch($type) + { + case AUTH_ACL: + $result = $u_access[$j][$key]; + + case AUTH_MOD: + $result = $result || $u_access[$j]['auth_mod']; + + case AUTH_ADMIN: + $result = $result || $is_admin; + break; + } + + $auth_user = $auth_user || $result; + } + } + else + { + $auth_user = $is_admin; + } + + return $auth_user; +} +// +// End Functions +// ------------- + +if ( isset($HTTP_POST_VARS['submit']) && ( ( $mode == 'user' && $user_id ) || ( $mode == 'group' && $group_id ) ) ) +{ + $user_level = ''; + if ( $mode == 'user' ) + { + // + // Get group_id for this user_id + // + $sql = "SELECT g.group_id, u.user_level + FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u, " . GROUPS_TABLE . " g + WHERE u.user_id = $user_id + AND ug.user_id = u.user_id + AND g.group_id = ug.group_id + AND g.group_single_user = " . TRUE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select info from user/user_group table', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + $group_id = $row['group_id']; + $user_level = $row['user_level']; + + $db->sql_freeresult($result); + } + + // + // Carry out requests + // + if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'admin' && $user_level != ADMIN ) + { + // + // Make user an admin (if already user) + // + if ( $userdata['user_id'] != $user_id ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . ADMIN . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = $group_id + AND auth_mod = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't delete auth access info", "", __LINE__, __FILE__, $sql); + } + + // + // Delete any entries in auth_access, they are not required if user is becoming an + // admin + // + $sql = "UPDATE " . AUTH_ACCESS_TABLE . " + SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0 + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update auth access", "", __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Auth_updated'] . '

    ' . sprintf($lang['Click_return_userauth'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'user' && $user_level == ADMIN ) + { + // + // Make admin a user (if already admin) ... ignore if you're trying + // to change yourself from an admin to user! + // + if ( $userdata['user_id'] != $user_id ) + { + $sql = "UPDATE " . AUTH_ACCESS_TABLE . " + SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0 + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update auth access', '', __LINE__, __FILE__, $sql); + } + + // + // Update users level, reset to USER + // + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Auth_updated'] . '

    ' . sprintf($lang['Click_return_userauth'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + } + else + { + + $change_mod_list = ( isset($HTTP_POST_VARS['moderator']) ) ? $HTTP_POST_VARS['moderator'] : false; + + if ( empty($adv) ) + { + $change_acl_list = ( isset($HTTP_POST_VARS['private']) ) ? $HTTP_POST_VARS['private'] : false; + } + else + { + $change_acl_list = array(); + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $auth_field = $forum_auth_fields[$j]; + + while( list($forum_id, $value) = @each($HTTP_POST_VARS['private_' . $auth_field]) ) + { + $change_acl_list[$forum_id][$auth_field] = $value; + } + } + } + + $sql = "SELECT * + FROM " . FORUMS_TABLE . " f + ORDER BY forum_order"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql); + } + + $forum_access = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_access[] = $row; + } + $db->sql_freeresult($result); + + $sql = ( $mode == 'user' ) ? "SELECT aa.* FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND g.group_id = ug.group_id AND aa.group_id = ug.group_id AND g.group_single_user = " . TRUE : "SELECT * FROM " . AUTH_ACCESS_TABLE . " WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $auth_access = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $auth_access[$row['forum_id']] = $row; + } + $db->sql_freeresult($result); + + $forum_auth_action = array(); + $update_acl_status = array(); + $update_mod_status = array(); + + for($i = 0; $i < count($forum_access); $i++) + { + $forum_id = $forum_access[$i]['forum_id']; + + if ( + ( isset($auth_access[$forum_id]['auth_mod']) && $change_mod_list[$forum_id]['auth_mod'] != $auth_access[$forum_id]['auth_mod'] ) || + ( !isset($auth_access[$forum_id]['auth_mod']) && !empty($change_mod_list[$forum_id]['auth_mod']) ) + ) + { + $update_mod_status[$forum_id] = $change_mod_list[$forum_id]['auth_mod']; + + if ( !$update_mod_status[$forum_id] ) + { + $forum_auth_action[$forum_id] = 'delete'; + } + else if ( !isset($auth_access[$forum_id]['auth_mod']) ) + { + $forum_auth_action[$forum_id] = 'insert'; + } + else + { + $forum_auth_action[$forum_id] = 'update'; + } + } + + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $auth_field = $forum_auth_fields[$j]; + + if( $forum_access[$i][$auth_field] == AUTH_ACL && isset($change_acl_list[$forum_id][$auth_field]) ) + { + if ( ( empty($auth_access[$forum_id]['auth_mod']) && + ( isset($auth_access[$forum_id][$auth_field]) && $change_acl_list[$forum_id][$auth_field] != $auth_access[$forum_id][$auth_field] ) || + ( !isset($auth_access[$forum_id][$auth_field]) && !empty($change_acl_list[$forum_id][$auth_field]) ) ) || + !empty($update_mod_status[$forum_id]) + ) + { + $update_acl_status[$forum_id][$auth_field] = ( !empty($update_mod_status[$forum_id]) ) ? 0 : $change_acl_list[$forum_id][$auth_field]; + + if ( isset($auth_access[$forum_id][$auth_field]) && empty($update_acl_status[$forum_id][$auth_field]) && $forum_auth_action[$forum_id] != 'insert' && $forum_auth_action[$forum_id] != 'update' ) + { + $forum_auth_action[$forum_id] = 'delete'; + } + else if ( !isset($auth_access[$forum_id][$auth_field]) && !( $forum_auth_action[$forum_id] == 'delete' && empty($update_acl_status[$forum_id][$auth_field]) ) ) + { + $forum_auth_action[$forum_id] = 'insert'; + } + else if ( isset($auth_access[$forum_id][$auth_field]) && !empty($update_acl_status[$forum_id][$auth_field]) ) + { + $forum_auth_action[$forum_id] = 'update'; + } + } + else if ( ( empty($auth_access[$forum_id]['auth_mod']) && + ( isset($auth_access[$forum_id][$auth_field]) && $change_acl_list[$forum_id][$auth_field] == $auth_access[$forum_id][$auth_field] ) ) && $forum_auth_action[$forum_id] == 'delete' ) + { + $forum_auth_action[$forum_id] = 'update'; + } + } + } + } + + // + // Checks complete, make updates to DB + // + $delete_sql = ''; + while( list($forum_id, $action) = @each($forum_auth_action) ) + { + if ( $action == 'delete' ) + { + $delete_sql .= ( ( $delete_sql != '' ) ? ', ' : '' ) . $forum_id; + } + else + { + if ( $action == 'insert' ) + { + $sql_field = ''; + $sql_value = ''; + while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) ) + { + $sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . $auth_type; + $sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . $value; + } + $sql_field .= ( ( $sql_field != '' ) ? ', ' : '' ) . 'auth_mod'; + $sql_value .= ( ( $sql_value != '' ) ? ', ' : '' ) . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]); + + $sql = "INSERT INTO " . AUTH_ACCESS_TABLE . " (forum_id, group_id, $sql_field) + VALUES ($forum_id, $group_id, $sql_value)"; + } + else + { + $sql_values = ''; + while ( list($auth_type, $value) = @each($update_acl_status[$forum_id]) ) + { + $sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . $auth_type . ' = ' . $value; + } + $sql_values .= ( ( $sql_values != '' ) ? ', ' : '' ) . 'auth_mod = ' . ( ( !isset($update_mod_status[$forum_id]) ) ? 0 : $update_mod_status[$forum_id]); + + $sql = "UPDATE " . AUTH_ACCESS_TABLE . " + SET $sql_values + WHERE group_id = $group_id + AND forum_id = $forum_id"; + } + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update private forum permissions", "", __LINE__, __FILE__, $sql); + } + } + } + + if ( $delete_sql != '' ) + { + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = $group_id + AND forum_id IN ($delete_sql)"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't delete permission entries", "", __LINE__, __FILE__, $sql); + } + } + + $l_auth_return = ( $mode == 'user' ) ? $lang['Click_return_userauth'] : $lang['Click_return_groupauth']; + $message = $lang['Auth_updated'] . '

    ' . sprintf($l_auth_return, '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + } + + // + // Update user level to mod for appropriate users + // + $sql = "SELECT u.user_id + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE ug.group_id = aa.group_id + AND u.user_id = ug.user_id + AND u.user_level NOT IN (" . MOD . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) > 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $set_mod = ''; + while( $row = $db->sql_fetchrow($result) ) + { + $set_mod .= ( ( $set_mod != '' ) ? ', ' : '' ) . $row['user_id']; + } + $db->sql_freeresult($result); + + // + // Update user level to user for appropriate users + // + switch ( SQL_LAYER ) + { + case 'postgresql': + $sql = "SELECT u.user_id + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa + WHERE ug.user_id = u.user_id + AND aa.group_id = ug.group_id + AND u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) = 0 + UNION ( + SELECT u.user_id + FROM " . USERS_TABLE . " u + WHERE NOT EXISTS ( + SELECT aa.auth_mod + FROM " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa + WHERE ug.user_id = u.user_id + AND aa.group_id = ug.group_id + ) + AND u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + )"; + break; + case 'oracle': + $sql = "SELECT u.user_id + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa + WHERE ug.user_id = u.user_id(+) + AND aa.group_id = ug.group_id(+) + AND u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) = 0"; + break; + default: + $sql = "SELECT u.user_id + FROM ( ( " . USERS_TABLE . " u + LEFT JOIN " . USER_GROUP_TABLE . " ug ON ug.user_id = u.user_id ) + LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = ug.group_id ) + WHERE u.user_level NOT IN (" . USER . ", " . ADMIN . ") + GROUP BY u.user_id + HAVING SUM(aa.auth_mod) = 0"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $unset_mod = ""; + while( $row = $db->sql_fetchrow($result) ) + { + $unset_mod .= ( ( $unset_mod != '' ) ? ', ' : '' ) . $row['user_id']; + } + $db->sql_freeresult($result); + + if ( $set_mod != '' ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id IN ($set_mod)"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql); + } + } + + if ( $unset_mod != '' ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN ($unset_mod)"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql); + } + } + + message_die(GENERAL_MESSAGE, $message); + } +} +else if ( ( $mode == 'user' && ( isset($HTTP_POST_VARS['username']) || $user_id ) ) || ( $mode == 'group' && $group_id ) ) +{ + if ( isset($HTTP_POST_VARS['username']) ) + { + $this_userdata = get_userdata($HTTP_POST_VARS['username'], true); + if ( !is_array($this_userdata) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_user']); + } + $user_id = $this_userdata['user_id']; + } + + // + // Front end + // + $sql = "SELECT * + FROM " . FORUMS_TABLE . " f + ORDER BY forum_order"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain forum information", "", __LINE__, __FILE__, $sql); + } + + $forum_access = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_access[] = $row; + } + $db->sql_freeresult($result); + + if( empty($adv) ) + { + for($i = 0; $i < count($forum_access); $i++) + { + $forum_id = $forum_access[$i]['forum_id']; + + $forum_auth_level[$forum_id] = AUTH_ALL; + + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $forum_access[$i][$forum_auth_fields[$j]] . ' :: '; + if ( $forum_access[$i][$forum_auth_fields[$j]] == AUTH_ACL ) + { + $forum_auth_level[$forum_id] = AUTH_ACL; + $forum_auth_level_fields[$forum_id][] = $forum_auth_fields[$j]; + } + } + } + } + + $sql = "SELECT u.user_id, u.username, u.user_level, g.group_id, g.group_name, g.group_single_user FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE "; + $sql .= ( $mode == 'user' ) ? "u.user_id = $user_id AND ug.user_id = u.user_id AND g.group_id = ug.group_id" : "g.group_id = $group_id AND ug.group_id = g.group_id AND u.user_id = ug.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group information", "", __LINE__, __FILE__, $sql); + } + $ug_info = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $ug_info[] = $row; + } + $db->sql_freeresult($result); + + $sql = ( $mode == 'user' ) ? "SELECT aa.*, g.group_single_user FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE. " g WHERE ug.user_id = $user_id AND g.group_id = ug.group_id AND aa.group_id = ug.group_id AND g.group_single_user = 1" : "SELECT * FROM " . AUTH_ACCESS_TABLE . " WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql); + } + + $auth_access = array(); + $auth_access_count = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $auth_access[$row['forum_id']][] = $row; + $auth_access_count[$row['forum_id']]++; + } + $db->sql_freeresult($result); + + $is_admin = ( $mode == 'user' ) ? ( ( $ug_info[0]['user_level'] == ADMIN && $ug_info[0]['user_id'] != ANONYMOUS ) ? 1 : 0 ) : 0; + + for($i = 0; $i < count($forum_access); $i++) + { + $forum_id = $forum_access[$i]['forum_id']; + + unset($prev_acl_setting); + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $key = $forum_auth_fields[$j]; + $value = $forum_access[$i][$key]; + + switch( $value ) + { + case AUTH_ALL: + case AUTH_REG: + $auth_ug[$forum_id][$key] = 1; + break; + + case AUTH_ACL: + $auth_ug[$forum_id][$key] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_ACL, $key, $auth_access[$forum_id], $is_admin) : 0; + $auth_field_acl[$forum_id][$key] = $auth_ug[$forum_id][$key]; + + if ( isset($prev_acl_setting) ) + { + if ( $prev_acl_setting != $auth_ug[$forum_id][$key] && empty($adv) ) + { + $adv = 1; + } + } + + $prev_acl_setting = $auth_ug[$forum_id][$key]; + + break; + + case AUTH_MOD: + $auth_ug[$forum_id][$key] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_MOD, $key, $auth_access[$forum_id], $is_admin) : 0; + break; + + case AUTH_ADMIN: + $auth_ug[$forum_id][$key] = $is_admin; + break; + + default: + $auth_ug[$forum_id][$key] = 0; + break; + } + } + + // + // Is user a moderator? + // + $auth_ug[$forum_id]['auth_mod'] = ( !empty($auth_access_count[$forum_id]) ) ? check_auth(AUTH_MOD, 'auth_mod', $auth_access[$forum_id], 0) : 0; + } + + $i = 0; + @reset($auth_ug); + while( list($forum_id, $user_ary) = @each($auth_ug) ) + { + if ( empty($adv) ) + { + if ( $forum_auth_level[$forum_id] == AUTH_ACL ) + { + $allowed = 1; + + for($j = 0; $j < count($forum_auth_level_fields[$forum_id]); $j++) + { + if ( !$auth_ug[$forum_id][$forum_auth_level_fields[$forum_id][$j]] ) + { + $allowed = 0; + } + } + + $optionlist_acl = ''; + } + else + { + $optionlist_acl = ' '; + } + } + else + { + for($j = 0; $j < count($forum_access); $j++) + { + if ( $forum_access[$j]['forum_id'] == $forum_id ) + { + for($k = 0; $k < count($forum_auth_fields); $k++) + { + $field_name = $forum_auth_fields[$k]; + + if( $forum_access[$j][$field_name] == AUTH_ACL ) + { + $optionlist_acl_adv[$forum_id][$k] = ''; + + } + } + } + } + } + + $optionlist_mod = ''; + + $row_class = ( !( $i % 2 ) ) ? 'row2' : 'row1'; + $row_color = ( !( $i % 2 ) ) ? $theme['td_color1'] : $theme['td_color2']; + + $template->assign_block_vars('forums', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_NAME' => $forum_access[$i]['forum_name'], + + 'U_FORUM_AUTH' => append_sid("admin_forumauth.$phpEx?f=" . $forum_access[$i]['forum_id']), + + 'S_MOD_SELECT' => $optionlist_mod) + ); + + if( !$adv ) + { + $template->assign_block_vars('forums.aclvalues', array( + 'S_ACL_SELECT' => $optionlist_acl) + ); + } + else + { + for($j = 0; $j < count($forum_auth_fields); $j++) + { + $template->assign_block_vars('forums.aclvalues', array( + 'S_ACL_SELECT' => $optionlist_acl_adv[$forum_id][$j]) + ); + } + } + + $i++; + } + @reset($auth_user); + + if ( $mode == 'user' ) + { + $t_username = $ug_info[0]['username']; + $s_user_type = ( $is_admin ) ? '' : ''; + } + else + { + $t_groupname = $ug_info[0]['group_name']; + } + + $name = array(); + $id = array(); + for($i = 0; $i < count($ug_info); $i++) + { + if( ( $mode == 'user' && !$ug_info[$i]['group_single_user'] ) || $mode == 'group' ) + { + $name[] = ( $mode == 'user' ) ? $ug_info[$i]['group_name'] : $ug_info[$i]['username']; + $id[] = ( $mode == 'user' ) ? intval($ug_info[$i]['group_id']) : intval($ug_info[$i]['user_id']); + } + } + + if( count($name) ) + { + $t_usergroup_list = ''; + for($i = 0; $i < count($ug_info); $i++) + { + $ug = ( $mode == 'user' ) ? 'group&' . POST_GROUPS_URL : 'user&' . POST_USERS_URL; + + $t_usergroup_list .= ( ( $t_usergroup_list != '' ) ? ', ' : '' ) . '' . $name[$i] . ''; + } + } + else + { + $t_usergroup_list = $lang['None']; + } + + $s_column_span = 2; // Two columns always present + if( !$adv ) + { + $template->assign_block_vars('acltype', array( + 'L_UG_ACL_TYPE' => $lang['Simple_Permission']) + ); + $s_column_span++; + } + else + { + for($i = 0; $i < count($forum_auth_fields); $i++) + { + $cell_title = $field_names[$forum_auth_fields[$i]]; + + $template->assign_block_vars('acltype', array( + 'L_UG_ACL_TYPE' => $cell_title) + ); + $s_column_span++; + } + } + + // + // Dump in the page header ... + // + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => 'admin/auth_ug_body.tpl') + ); + + $adv_switch = ( empty($adv) ) ? 1 : 0; + $u_ug_switch = ( $mode == 'user' ) ? POST_USERS_URL . "=" . $user_id : POST_GROUPS_URL . "=" . $group_id; + $switch_mode = append_sid("admin_ug_auth.$phpEx?mode=$mode&" . $u_ug_switch . "&adv=$adv_switch"); + $switch_mode_text = ( empty($adv) ) ? $lang['Advanced_mode'] : $lang['Simple_mode']; + $u_switch_mode = '' . $switch_mode_text . ''; + + $s_hidden_fields = ''; + $s_hidden_fields .= ( $mode == 'user' ) ? '' : ''; + + if ( $mode == 'user' ) + { + $template->assign_block_vars('switch_user_auth', array()); + + $template->assign_vars(array( + 'USERNAME' => $t_username, + 'USER_LEVEL' => $lang['User_Level'] . " : " . $s_user_type, + 'USER_GROUP_MEMBERSHIPS' => $lang['Group_memberships'] . ' : ' . $t_usergroup_list) + ); + } + else + { + $template->assign_block_vars("switch_group_auth", array()); + + $template->assign_vars(array( + 'USERNAME' => $t_groupname, + 'GROUP_MEMBERSHIP' => $lang['Usergroup_members'] . ' : ' . $t_usergroup_list) + ); + } + + $template->assign_vars(array( + 'L_USER_OR_GROUPNAME' => ( $mode == 'user' ) ? $lang['Username'] : $lang['Group_name'], + + 'L_AUTH_TITLE' => ( $mode == 'user' ) ? $lang['Auth_Control_User'] : $lang['Auth_Control_Group'], + 'L_AUTH_EXPLAIN' => ( $mode == 'user' ) ? $lang['User_auth_explain'] : $lang['Group_auth_explain'], + 'L_MODERATOR_STATUS' => $lang['Moderator_status'], + 'L_PERMISSIONS' => $lang['Permissions'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_FORUM' => $lang['Forum'], + + 'U_USER_OR_GROUP' => append_sid("admin_ug_auth.$phpEx"), + 'U_SWITCH_MODE' => $u_switch_mode, + + 'S_COLUMN_SPAN' => $s_column_span, + 'S_AUTH_ACTION' => append_sid("admin_ug_auth.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); +} +else +{ + // + // Select a user/group + // + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + 'body' => ( $mode == 'user' ) ? 'admin/user_select_body.tpl' : 'admin/auth_select_body.tpl') + ); + + if ( $mode == 'user' ) + { + $template->assign_vars(array( + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'U_SEARCH_USER' => append_sid("../search.$phpEx?mode=searchuser")) + ); + } + else + { + $sql = "SELECT group_id, group_name + FROM " . GROUPS_TABLE . " + WHERE group_single_user <> " . TRUE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't get group list", "", __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $select_list = ''; + } + + $template->assign_vars(array( + 'S_AUTH_SELECT' => $select_list) + ); + } + + $s_hidden_fields = ''; + + $l_type = ( $mode == 'user' ) ? 'USER' : 'AUTH'; + + $template->assign_vars(array( + 'L_' . $l_type . '_TITLE' => ( $mode == 'user' ) ? $lang['Auth_Control_User'] : $lang['Auth_Control_Group'], + 'L_' . $l_type . '_EXPLAIN' => ( $mode == 'user' ) ? $lang['User_auth_explain'] : $lang['Group_auth_explain'], + 'L_' . $l_type . '_SELECT' => ( $mode == 'user' ) ? $lang['Select_a_User'] : $lang['Select_a_Group'], + 'L_LOOK_UP' => ( $mode == 'user' ) ? $lang['Look_up_User'] : $lang['Look_up_Group'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_' . $l_type . '_ACTION' => append_sid("admin_ug_auth.$phpEx")) + ); + +} + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_user_ban.php b/phpBB2_old/admin/admin_user_ban.php new file mode 100644 index 0000000..84b74fc --- /dev/null +++ b/phpBB2_old/admin/admin_user_ban.php @@ -0,0 +1,452 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain banlist information", "", __LINE__, __FILE__, $sql); + } + + $current_banlist = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $kill_session_sql = ''; + for($i = 0; $i < count($user_list); $i++) + { + $in_banlist = false; + for($j = 0; $j < count($current_banlist); $j++) + { + if ( $user_list[$i] == $current_banlist[$j]['ban_userid'] ) + { + $in_banlist = true; + } + } + + if ( !$in_banlist ) + { + $kill_session_sql .= ( ( $kill_session_sql != '' ) ? ' OR ' : '' ) . "session_user_id = " . $user_list[$i]; + + $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_userid) + VALUES (" . $user_list[$i] . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert ban_userid info into database", "", __LINE__, __FILE__, $sql); + } + } + } + + for($i = 0; $i < count($ip_list); $i++) + { + $in_banlist = false; + for($j = 0; $j < count($current_banlist); $j++) + { + if ( $ip_list[$i] == $current_banlist[$j]['ban_ip'] ) + { + $in_banlist = true; + } + } + + if ( !$in_banlist ) + { + if ( preg_match('/(ff\.)|(\.ff)/is', chunk_split($ip_list[$i], 2, '.')) ) + { + $kill_ip_sql = "session_ip LIKE '" . str_replace('.', '', preg_replace('/(ff\.)|(\.ff)/is', '%', chunk_split($ip_list[$i], 2, "."))) . "'"; + } + else + { + $kill_ip_sql = "session_ip = '" . $ip_list[$i] . "'"; + } + + $kill_session_sql .= ( ( $kill_session_sql != '' ) ? ' OR ' : '' ) . $kill_ip_sql; + + $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_ip) + VALUES ('" . $ip_list[$i] . "')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert ban_ip info into database", "", __LINE__, __FILE__, $sql); + } + } + } + + // + // Now we'll delete all entries from the session table with any of the banned + // user or IP info just entered into the ban table ... this will force a session + // initialisation resulting in an instant ban + // + if ( $kill_session_sql != '' ) + { + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE $kill_session_sql"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete banned sessions from database", "", __LINE__, __FILE__, $sql); + } + } + + for($i = 0; $i < count($email_list); $i++) + { + $in_banlist = false; + for($j = 0; $j < count($current_banlist); $j++) + { + if ( $email_list[$i] == $current_banlist[$j]['ban_email'] ) + { + $in_banlist = true; + } + } + + if ( !$in_banlist ) + { + $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_email) + VALUES ('" . str_replace("\'", "''", $email_list[$i]) . "')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't insert ban_email info into database", "", __LINE__, __FILE__, $sql); + } + } + } + + $where_sql = ''; + + if ( isset($HTTP_POST_VARS['unban_user']) ) + { + $user_list = $HTTP_POST_VARS['unban_user']; + + for($i = 0; $i < count($user_list); $i++) + { + if ( $user_list[$i] != -1 ) + { + $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . intval($user_list[$i]); + } + } + } + + if ( isset($HTTP_POST_VARS['unban_ip']) ) + { + $ip_list = $HTTP_POST_VARS['unban_ip']; + + for($i = 0; $i < count($ip_list); $i++) + { + if ( $ip_list[$i] != -1 ) + { + $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . str_replace("\'", "''", $ip_list[$i]); + } + } + } + + if ( isset($HTTP_POST_VARS['unban_email']) ) + { + $email_list = $HTTP_POST_VARS['unban_email']; + + for($i = 0; $i < count($email_list); $i++) + { + if ( $email_list[$i] != -1 ) + { + $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . str_replace("\'", "''", $email_list[$i]); + } + } + } + + if ( $where_sql != '' ) + { + $sql = "DELETE FROM " . BANLIST_TABLE . " + WHERE ban_id IN ($where_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't delete ban info from database", "", __LINE__, __FILE__, $sql); + } + } + + $message = $lang['Ban_update_sucessful'] . '

    ' . sprintf($lang['Click_return_banadmin'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + +} +else +{ + $template->set_filenames(array( + 'body' => 'admin/user_ban_body.tpl') + ); + + $template->assign_vars(array( + 'L_BAN_TITLE' => $lang['Ban_control'], + 'L_BAN_EXPLAIN' => $lang['Ban_explain'], + 'L_BAN_EXPLAIN_WARN' => $lang['Ban_explain_warn'], + 'L_IP_OR_HOSTNAME' => $lang['IP_hostname'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + + 'S_BANLIST_ACTION' => append_sid("admin_user_ban.$phpEx")) + ); + + $template->assign_vars(array( + 'L_BAN_USER' => $lang['Ban_username'], + 'L_BAN_USER_EXPLAIN' => $lang['Ban_username_explain'], + 'L_BAN_IP' => $lang['Ban_IP'], + 'L_BAN_IP_EXPLAIN' => $lang['Ban_IP_explain'], + 'L_BAN_EMAIL' => $lang['Ban_email'], + 'L_BAN_EMAIL_EXPLAIN' => $lang['Ban_email_explain']) + ); + + $userban_count = 0; + $ipban_count = 0; + $emailban_count = 0; + + $sql = "SELECT b.ban_id, u.user_id, u.username + FROM " . BANLIST_TABLE . " b, " . USERS_TABLE . " u + WHERE u.user_id = b.ban_userid + AND b.ban_userid <> 0 + AND u.user_id <> " . ANONYMOUS . " + ORDER BY u.user_id ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select current user_id ban list', '', __LINE__, __FILE__, $sql); + } + + $user_list = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $select_userlist = ''; + for($i = 0; $i < count($user_list); $i++) + { + $select_userlist .= ''; + $userban_count++; + } + + if( $select_userlist == '' ) + { + $select_userlist = ''; + } + + $select_userlist = ''; + + $sql = "SELECT ban_id, ban_ip, ban_email + FROM " . BANLIST_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select current ip ban list', '', __LINE__, __FILE__, $sql); + } + + $banlist = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + $select_iplist = ''; + $select_emaillist = ''; + + for($i = 0; $i < count($banlist); $i++) + { + $ban_id = $banlist[$i]['ban_id']; + + if ( !empty($banlist[$i]['ban_ip']) ) + { + $ban_ip = str_replace('255', '*', decode_ip($banlist[$i]['ban_ip'])); + $select_iplist .= ''; + $ipban_count++; + } + else if ( !empty($banlist[$i]['ban_email']) ) + { + $ban_email = $banlist[$i]['ban_email']; + $select_emaillist .= ''; + $emailban_count++; + } + } + + if ( $select_iplist == '' ) + { + $select_iplist = ''; + } + + if ( $select_emaillist == '' ) + { + $select_emaillist = ''; + } + + $select_iplist = ''; + $select_emaillist = ''; + + $template->assign_vars(array( + 'L_UNBAN_USER' => $lang['Unban_username'], + 'L_UNBAN_USER_EXPLAIN' => $lang['Unban_username_explain'], + 'L_UNBAN_IP' => $lang['Unban_IP'], + 'L_UNBAN_IP_EXPLAIN' => $lang['Unban_IP_explain'], + 'L_UNBAN_EMAIL' => $lang['Unban_email'], + 'L_UNBAN_EMAIL_EXPLAIN' => $lang['Unban_email_explain'], + 'L_USERNAME' => $lang['Username'], + 'L_LOOK_UP' => $lang['Look_up_User'], + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'U_SEARCH_USER' => append_sid("./../search.$phpEx?mode=searchuser"), + 'S_UNBAN_USERLIST_SELECT' => $select_userlist, + 'S_UNBAN_IPLIST_SELECT' => $select_iplist, + 'S_UNBAN_EMAILLIST_SELECT' => $select_emaillist, + 'S_BAN_ACTION' => append_sid("admin_user_ban.$phpEx")) + ); +} + +$template->pparse('body'); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_users.php b/phpBB2_old/admin/admin_users.php new file mode 100644 index 0000000..9f30c2d --- /dev/null +++ b/phpBB2_old/admin/admin_users.php @@ -0,0 +1,1153 @@ +#'); +$html_entities_replace = array('<', '>'); + +// +// Set mode +// +if( isset( $HTTP_POST_VARS['mode'] ) || isset( $HTTP_GET_VARS['mode'] ) ) +{ + $mode = ( isset( $HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ''; +} + +// +// Begin program +// +if ( $mode == 'edit' || $mode == 'save' && ( isset($HTTP_POST_VARS['username']) || isset($HTTP_GET_VARS[POST_USERS_URL]) || isset( $HTTP_POST_VARS[POST_USERS_URL]) ) ) +{ + // + // Ok, the profile has been modified and submitted, let's update + // + if ( ( $mode == 'save' && isset( $HTTP_POST_VARS['submit'] ) ) || isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) ) + { + $user_id = intval($HTTP_POST_VARS['id']); + + if (!($this_userdata = get_userdata($user_id))) + { + message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] ); + } + + if( $HTTP_POST_VARS['deleteuser'] ) + { + $sql = "SELECT g.group_id + FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE ug.user_id = $user_id + AND g.group_id = ug.group_id + AND g.group_single_user = 1"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + $sql = "UPDATE " . POSTS_TABLE . " + SET poster_id = " . DELETED . ", post_username = '$username' + WHERE poster_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_poster = " . DELETED . " + WHERE topic_poster = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . VOTE_USERS_TABLE . " + SET vote_user_id = " . DELETED . " + WHERE vote_user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "SELECT group_id + FROM " . GROUPS_TABLE . " + WHERE group_moderator = $user_id"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql); + } + + while ( $row_group = $db->sql_fetchrow($result) ) + { + $group_moderator[] = $row_group['group_id']; + } + + if ( count($group_moderator) ) + { + $update_moderator_id = implode(', ', $group_moderator); + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_moderator = " . $userdata['user_id'] . " + WHERE group_moderator IN ($update_moderator_id)"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = $user_id"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . GROUPS_TABLE . " + WHERE group_id = " . $row['group_id']; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . AUTH_ACCESS_TABLE . " + WHERE group_id = " . $row['group_id']; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . BANLIST_TABLE . " + WHERE ban_userid = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql); + } + + $sql = "SELECT privmsgs_id + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_from_userid = $user_id + OR privmsgs_to_userid = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql); + } + + // This little bit of code directly from the private messaging section. + while ( $row_privmsgs = $db->sql_fetchrow($result) ) + { + $mark_list[] = $row_privmsgs['privmsgs_id']; + } + + if ( count($mark_list) ) + { + $delete_sql_id = implode(', ', $mark_list); + + $delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id IN ($delete_sql_id)"; + $delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id)"; + + if ( !$db->sql_query($delete_sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql); + } + + if ( !$db->sql_query($delete_text_sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql); + } + } + + $message = $lang['User_deleted'] . '

    ' . sprintf($lang['Click_return_useradmin'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + $username = ( !empty($HTTP_POST_VARS['username']) ) ? trim(strip_tags(htmlspecialchars($HTTP_POST_VARS['username']))) : ''; + $email = ( !empty($HTTP_POST_VARS['email']) ) ? trim(strip_tags(htmlspecialchars( $HTTP_POST_VARS['email'] ) )) : ''; + + $password = ( !empty($HTTP_POST_VARS['password']) ) ? trim(strip_tags(htmlspecialchars( $HTTP_POST_VARS['password'] ) )) : ''; + $password_confirm = ( !empty($HTTP_POST_VARS['password_confirm']) ) ? trim(strip_tags(htmlspecialchars( $HTTP_POST_VARS['password_confirm'] ) )) : ''; + + $icq = ( !empty($HTTP_POST_VARS['icq']) ) ? trim(strip_tags( $HTTP_POST_VARS['icq'] ) ) : ''; + $aim = ( !empty($HTTP_POST_VARS['aim']) ) ? trim(strip_tags( $HTTP_POST_VARS['aim'] ) ) : ''; + $msn = ( !empty($HTTP_POST_VARS['msn']) ) ? trim(strip_tags( $HTTP_POST_VARS['msn'] ) ) : ''; + $yim = ( !empty($HTTP_POST_VARS['yim']) ) ? trim(strip_tags( $HTTP_POST_VARS['yim'] ) ) : ''; + + $website = ( !empty($HTTP_POST_VARS['website']) ) ? trim(strip_tags( $HTTP_POST_VARS['website'] ) ) : ''; + $location = ( !empty($HTTP_POST_VARS['location']) ) ? trim(strip_tags( $HTTP_POST_VARS['location'] ) ) : ''; + $occupation = ( !empty($HTTP_POST_VARS['occupation']) ) ? trim(strip_tags( $HTTP_POST_VARS['occupation'] ) ) : ''; + $interests = ( !empty($HTTP_POST_VARS['interests']) ) ? trim(strip_tags( $HTTP_POST_VARS['interests'] ) ) : ''; + $signature = ( !empty($HTTP_POST_VARS['signature']) ) ? trim(str_replace('
    ', "\n", $HTTP_POST_VARS['signature'] ) ) : ''; + + validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature); + + $viewemail = ( isset( $HTTP_POST_VARS['viewemail']) ) ? ( ( $HTTP_POST_VARS['viewemail'] ) ? TRUE : 0 ) : 0; + $allowviewonline = ( isset( $HTTP_POST_VARS['hideonline']) ) ? ( ( $HTTP_POST_VARS['hideonline'] ) ? 0 : TRUE ) : TRUE; + $notifyreply = ( isset( $HTTP_POST_VARS['notifyreply']) ) ? ( ( $HTTP_POST_VARS['notifyreply'] ) ? TRUE : 0 ) : 0; + $notifypm = ( isset( $HTTP_POST_VARS['notifypm']) ) ? ( ( $HTTP_POST_VARS['notifypm'] ) ? TRUE : 0 ) : TRUE; + $popuppm = ( isset( $HTTP_POST_VARS['popup_pm']) ) ? ( ( $HTTP_POST_VARS['popup_pm'] ) ? TRUE : 0 ) : TRUE; + $attachsig = ( isset( $HTTP_POST_VARS['attachsig']) ) ? ( ( $HTTP_POST_VARS['attachsig'] ) ? TRUE : 0 ) : 0; + + $allowhtml = ( isset( $HTTP_POST_VARS['allowhtml']) ) ? intval( $HTTP_POST_VARS['allowhtml'] ) : $board_config['allow_html']; + $allowbbcode = ( isset( $HTTP_POST_VARS['allowbbcode']) ) ? intval( $HTTP_POST_VARS['allowbbcode'] ) : $board_config['allow_bbcode']; + $allowsmilies = ( isset( $HTTP_POST_VARS['allowsmilies']) ) ? intval( $HTTP_POST_VARS['allowsmilies'] ) : $board_config['allow_smilies']; + + $user_style = ( $HTTP_POST_VARS['style'] ) ? intval( $HTTP_POST_VARS['style'] ) : $board_config['default_style']; + $user_lang = ( $HTTP_POST_VARS['language'] ) ? $HTTP_POST_VARS['language'] : $board_config['default_lang']; + $user_timezone = ( isset( $HTTP_POST_VARS['timezone']) ) ? doubleval( $HTTP_POST_VARS['timezone'] ) : $board_config['board_timezone']; + $user_template = ( $HTTP_POST_VARS['template'] ) ? $HTTP_POST_VARS['template'] : $board_config['board_template']; + $user_dateformat = ( $HTTP_POST_VARS['dateformat'] ) ? trim( $HTTP_POST_VARS['dateformat'] ) : $board_config['default_dateformat']; + + $user_avatar_local = ( isset( $HTTP_POST_VARS['avatarselect'] ) && !empty($HTTP_POST_VARS['submitavatar'] ) && $board_config['allow_avatar_local'] ) ? $HTTP_POST_VARS['avatarselect'] : ( ( isset( $HTTP_POST_VARS['avatarlocal'] ) ) ? $HTTP_POST_VARS['avatarlocal'] : '' ); + + $user_avatar_remoteurl = ( !empty($HTTP_POST_VARS['avatarremoteurl']) ) ? trim( $HTTP_POST_VARS['avatarremoteurl'] ) : ''; + $user_avatar_url = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim( $HTTP_POST_VARS['avatarurl'] ) : ''; + $user_avatar_loc = ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : ''; + $user_avatar_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : ''; + $user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0; + $user_avatar_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : ''; + + $user_avatar = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar'] : ''; + $user_avatar_type = ( empty($user_avatar_loc) ) ? $this_userdata['user_avatar_type'] : ''; + + $user_status = ( !empty($HTTP_POST_VARS['user_status']) ) ? intval( $HTTP_POST_VARS['user_status'] ) : 0; + $user_allowpm = ( !empty($HTTP_POST_VARS['user_allowpm']) ) ? intval( $HTTP_POST_VARS['user_allowpm'] ) : 0; + $user_rank = ( !empty($HTTP_POST_VARS['user_rank']) ) ? intval( $HTTP_POST_VARS['user_rank'] ) : 0; + $user_allowavatar = ( !empty($HTTP_POST_VARS['user_allowavatar']) ) ? intval( $HTTP_POST_VARS['user_allowavatar'] ) : 0; + + if( isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) ) + { + $username = stripslashes($username); + $email = stripslashes($email); + $password = ''; + $password_confirm = ''; + + $icq = stripslashes($icq); + $aim = htmlspecialchars(stripslashes($aim)); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); + + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); + + $user_lang = stripslashes($user_lang); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); + + if ( !isset($HTTP_POST_VARS['cancelavatar'])) + { + $user_avatar = $user_avatar_local; + $user_avatar_type = USER_AVATAR_GALLERY; + } + } + } + + if( isset( $HTTP_POST_VARS['submit'] ) ) + { + include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx); + + $error = FALSE; + + if (stripslashes($username) != $this_userdata['username']) + { + unset($rename_user); + + if ( stripslashes(strtolower($username)) != strtolower($this_userdata['username']) ) + { + $result = validate_username($username); + if ( $result['error'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $result['error_msg']; + } + else if ( strtolower(str_replace("\\'", "''", $username)) == strtolower($userdata['username']) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Username_taken']; + } + } + + if (!$error) + { + $username_sql = "username = '" . str_replace("\\'", "''", $username) . "', "; + $rename_user = $username; // Used for renaming usergroup + } + } + + $passwd_sql = ''; + if( !empty($password) && !empty($password_confirm) ) + { + // + // Awww, the user wants to change their password, isn't that cute.. + // + if($password != $password_confirm) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Password_mismatch']; + } + else + { + $password = md5($password); + $passwd_sql = "user_password = '$password', "; + } + } + else if( $password && !$password_confirm ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Password_mismatch']; + } + else if( !$password && $password_confirm ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Password_mismatch']; + } + + if ($signature != '') + { + $sig_length_check = preg_replace('/(\[.*?)(=.*?)\]/is', '\\1]', stripslashes($signature)); + if ( $allowhtml ) + { + $sig_length_check = preg_replace('/(\<.*?)(=.*?)( .*?=.*?)?([ \/]?\>)/is', '\\1\\3\\4', $sig_length_check); + } + + // Only create a new bbcode_uid when there was no uid yet. + if ( $signature_bbcode_uid == '' ) + { + $signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : ''; + } + $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid); + + if ( strlen($sig_length_check) > $board_config['max_sig_chars'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Signature_too_long']; + } + } + + // + // Avatar stuff + // + $avatar_sql = ""; + if( isset($HTTP_POST_VARS['avatardel']) ) + { + if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "" ) + { + if( @file_exists(@phpbb_realpath("./" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) ) + { + @unlink("./" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar']); + } + } + $avatar_sql = ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE; + } + else if( ( $user_avatar_loc != "" || !empty($user_avatar_url) ) && !$error ) + { + // + // Only allow one type of upload, either a + // filename or a URL + // + if( !empty($user_avatar_loc) && !empty($user_avatar_url) ) + { + $error = TRUE; + if( isset($error_msg) ) + { + $error_msg .= "
    "; + } + $error_msg .= $lang['Only_one_avatar']; + } + + if( $user_avatar_loc != "" ) + { + if( file_exists(@phpbb_realpath($user_avatar_loc)) && ereg(".jpg$|.gif$|.png$", $user_avatar_name) ) + { + if( $user_avatar_size <= $board_config['avatar_filesize'] && $user_avatar_size > 0) + { + $error_type = false; + + // + // Opera appends the image name after the type, not big, not clever! + // + preg_match("'image\/[x\-]*([a-z]+)'", $user_avatar_filetype, $user_avatar_filetype); + $user_avatar_filetype = $user_avatar_filetype[1]; + + switch( $user_avatar_filetype ) + { + case "jpeg": + case "pjpeg": + case "jpg": + $imgtype = '.jpg'; + break; + case "gif": + $imgtype = '.gif'; + break; + case "png": + $imgtype = '.png'; + break; + default: + $error = true; + $error_msg = (!empty($error_msg)) ? $error_msg . "
    " . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + break; + } + + if( !$error ) + { + list($width, $height) = @getimagesize($user_avatar_loc); + + if( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) + { + $user_id = $this_userdata['user_id']; + + $avatar_filename = $user_id . $imgtype; + + if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "" ) + { + if( @file_exists(@phpbb_realpath("./../" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) ) + { + @unlink("./../" . $board_config['avatar_path'] . "/". $this_userdata['user_avatar']); + } + } + @copy($user_avatar_loc, "./../" . $board_config['avatar_path'] . "/$avatar_filename"); + + $avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $l_avatar_size : $l_avatar_size; + } + } + } + else + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $l_avatar_size : $l_avatar_size; + } + } + else + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + } + } + else if( !empty($user_avatar_url) ) + { + // + // First check what port we should connect + // to, look for a :[xxxx]/ or, if that doesn't + // exist assume port 80 (http) + // + preg_match("/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/", $user_avatar_url, $url_ary); + + if( !empty($url_ary[4]) ) + { + $port = (!empty($url_ary[3])) ? $url_ary[3] : 80; + + $fsock = @fsockopen($url_ary[2], $port, $errno, $errstr); + if( $fsock ) + { + $base_get = "/" . $url_ary[4]; + + // + // Uses HTTP 1.1, could use HTTP 1.0 ... + // + @fputs($fsock, "GET $base_get HTTP/1.1\r\n"); + @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n"); + @fputs($fsock, "Connection: close\r\n\r\n"); + + unset($avatar_data); + while( !@feof($fsock) ) + { + $avatar_data .= @fread($fsock, $board_config['avatar_filesize']); + } + @fclose($fsock); + + if( preg_match("/Content-Length\: ([0-9]+)[^\/ ][\s]+/i", $avatar_data, $file_data1) && preg_match("/Content-Type\: image\/[x\-]*([a-z]+)[\s]+/i", $avatar_data, $file_data2) ) + { + $file_size = $file_data1[1]; + $file_type = $file_data2[1]; + + switch( $file_type ) + { + case "jpeg": + case "pjpeg": + case "jpg": + $imgtype = '.jpg'; + break; + case "gif": + $imgtype = '.gif'; + break; + case "png": + $imgtype = '.png'; + break; + default: + $error = true; + $error_msg = (!empty($error_msg)) ? $error_msg . "
    " . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + break; + } + + if( !$error && $file_size > 0 && $file_size < $board_config['avatar_filesize'] ) + { + $avatar_data = substr($avatar_data, strlen($avatar_data) - $file_size, $file_size); + + $tmp_filename = tempnam ("/tmp", $this_userdata['user_id'] . "-"); + $fptr = @fopen($tmp_filename, "wb"); + $bytes_written = @fwrite($fptr, $avatar_data, $file_size); + @fclose($fptr); + + if( $bytes_written == $file_size ) + { + list($width, $height) = @getimagesize($tmp_filename); + + if( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) + { + $user_id = $this_userdata['user_id']; + + $avatar_filename = $user_id . $imgtype; + + if( $this_userdata['user_avatar_type'] == USER_AVATAR_UPLOAD && $this_userdata['user_avatar'] != "") + { + if( file_exists(@phpbb_realpath("./../" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar'])) ) + { + @unlink("./../" . $board_config['avatar_path'] . "/" . $this_userdata['user_avatar']); + } + } + @copy($tmp_filename, "./../" . $board_config['avatar_path'] . "/$avatar_filename"); + @unlink($tmp_filename); + + $avatar_sql = ", user_avatar = '$avatar_filename', user_avatar_type = " . USER_AVATAR_UPLOAD; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $l_avatar_size : $l_avatar_size; + } + } + else + { + // + // Error writing file + // + @unlink($tmp_filename); + message_die(GENERAL_ERROR, "Could not write avatar file to local storage. Please contact the board administrator with this message", "", __LINE__, __FILE__); + } + } + } + else + { + // + // No data + // + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $lang['File_no_data'] : $lang['File_no_data']; + } + } + else + { + // + // No connection + // + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $lang['No_connection_URL'] : $lang['No_connection_URL']; + } + } + else + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $lang['Incomplete_URL'] : $lang['Incomplete_URL']; + } + } + else if( !empty($user_avatar_name) ) + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $l_avatar_size : $l_avatar_size; + } + } + else if( $user_avatar_remoteurl != "" && $avatar_sql == "" && !$error ) + { + if( !preg_match("#^http:\/\/#i", $user_avatar_remoteurl) ) + { + $user_avatar_remoteurl = "http://" . $user_avatar_remoteurl; + } + + if( preg_match("#^(http:\/\/[a-z0-9\-]+?\.([a-z0-9\-]+\.)*[a-z]+\/.*?\.(gif|jpg|png)$)#is", $user_avatar_remoteurl) ) + { + $avatar_sql = ", user_avatar = '" . str_replace("\'", "''", $user_avatar_remoteurl) . "', user_avatar_type = " . USER_AVATAR_REMOTE; + } + else + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . "
    " . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; + } + } + else if( $user_avatar_local != "" && $avatar_sql == "" && !$error ) + { + $avatar_sql = ", user_avatar = '" . str_replace("\'", "''", $user_avatar_local) . "', user_avatar_type = " . USER_AVATAR_GALLERY; + } + + // + // Update entry in DB + // + if( !$error ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) . "', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", $aim) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_sig_bbcode_uid = '$signature_bbcode_uid', user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowavatar = $user_allowavatar, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_allow_pm = $user_allowpm, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_active = $user_status, user_rank = $user_rank" . $avatar_sql . " + WHERE user_id = $user_id"; + + if( $result = $db->sql_query($sql) ) + { + if( isset($rename_user) ) + { + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_name = '".str_replace("\'", "''", $rename_user)."' + WHERE group_name = '".str_replace("'", "''", $this_userdata['username'] )."'"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not rename users group', '', __LINE__, __FILE__, $sql); + } + } + + // Delete user session, to prevent the user navigating the forum (if logged in) when disabled + if (!$user_status) + { + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE session_user_id = " . $user_id; + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql); + } + } + + $message .= $lang['Admin_user_updated']; + } + else + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Admin_user_fail']; + } + + $message .= '

    ' . sprintf($lang['Click_return_useradmin'], '', '') . '

    ' . sprintf($lang['Click_return_admin_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + + $username = htmlspecialchars(stripslashes($username)); + $email = stripslashes($email); + $password = ''; + $password_confirm = ''; + + $icq = stripslashes($icq); + $aim = htmlspecialchars(str_replace('+', ' ', stripslashes($aim))); + $msn = htmlspecialchars(stripslashes($msn)); + $yim = htmlspecialchars(stripslashes($yim)); + + $website = htmlspecialchars(stripslashes($website)); + $location = htmlspecialchars(stripslashes($location)); + $occupation = htmlspecialchars(stripslashes($occupation)); + $interests = htmlspecialchars(stripslashes($interests)); + $signature = htmlspecialchars(stripslashes($signature)); + + $user_lang = stripslashes($user_lang); + $user_dateformat = htmlspecialchars(stripslashes($user_dateformat)); + } + } + else if( !isset( $HTTP_POST_VARS['submit'] ) && $mode != 'save' && !isset( $HTTP_POST_VARS['avatargallery'] ) && !isset( $HTTP_POST_VARS['submitavatar'] ) && !isset( $HTTP_POST_VARS['cancelavatar'] ) ) + { + if( isset( $HTTP_GET_VARS[POST_USERS_URL]) || isset( $HTTP_POST_VARS[POST_USERS_URL]) ) + { + $user_id = ( isset( $HTTP_POST_VARS[POST_USERS_URL]) ) ? intval( $HTTP_POST_VARS[POST_USERS_URL]) : intval( $HTTP_GET_VARS[POST_USERS_URL]); + $this_userdata = get_userdata($user_id); + if( !$this_userdata ) + { + message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] ); + } + } + else + { + $this_userdata = get_userdata($HTTP_POST_VARS['username'], true); + if( !$this_userdata ) + { + message_die(GENERAL_MESSAGE, $lang['No_user_id_specified'] ); + } + } + + // + // Now parse and display it as a template + // + $user_id = $this_userdata['user_id']; + $username = $this_userdata['username']; + $email = $this_userdata['user_email']; + $password = ''; + $password_confirm = ''; + + $icq = $this_userdata['user_icq']; + $aim = htmlspecialchars(str_replace('+', ' ', $this_userdata['user_aim'] )); + $msn = htmlspecialchars($this_userdata['user_msnm']); + $yim = htmlspecialchars($this_userdata['user_yim']); + + $website = htmlspecialchars($this_userdata['user_website']); + $location = htmlspecialchars($this_userdata['user_from']); + $occupation = htmlspecialchars($this_userdata['user_occ']); + $interests = htmlspecialchars($this_userdata['user_interests']); + + $signature = ($this_userdata['user_sig_bbcode_uid'] != '') ? preg_replace('#:' . $this_userdata['user_sig_bbcode_uid'] . '#si', '', $this_userdata['user_sig']) : $this_userdata['user_sig']; + $signature = preg_replace($html_entities_match, $html_entities_replace, $signature); + + $viewemail = $this_userdata['user_viewemail']; + $notifypm = $this_userdata['user_notify_pm']; + $popuppm = $this_userdata['user_popup_pm']; + $notifyreply = $this_userdata['user_notify']; + $attachsig = $this_userdata['user_attachsig']; + $allowhtml = $this_userdata['user_allowhtml']; + $allowbbcode = $this_userdata['user_allowbbcode']; + $allowsmilies = $this_userdata['user_allowsmile']; + $allowviewonline = $this_userdata['user_allow_viewonline']; + + $user_avatar = $this_userdata['user_avatar']; + $user_avatar_type = $this_userdata['user_avatar_type']; + $user_style = $this_userdata['user_style']; + $user_lang = $this_userdata['user_lang']; + $user_timezone = $this_userdata['user_timezone']; + $user_dateformat = htmlspecialchars($this_userdata['user_dateformat']); + + $user_status = $this_userdata['user_active']; + $user_allowavatar = $this_userdata['user_allowavatar']; + $user_allowpm = $this_userdata['user_allow_pm']; + + $COPPA = false; + + $html_status = ($this_userdata['user_allowhtml'] ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; + $bbcode_status = ($this_userdata['user_allowbbcode'] ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; + $smilies_status = ($this_userdata['user_allowsmile'] ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; + } + + if( isset($HTTP_POST_VARS['avatargallery']) && !$error ) + { + if( !$error ) + { + $user_id = intval($HTTP_POST_VARS['id']); + + $template->set_filenames(array( + "body" => "admin/user_avatar_gallery.tpl") + ); + + $dir = @opendir("../" . $board_config['avatar_gallery_path']); + + $avatar_images = array(); + while( $file = @readdir($dir) ) + { + if( $file != "." && $file != ".." && !is_file(phpbb_realpath("./../" . $board_config['avatar_gallery_path'] . "/" . $file)) && !is_link(phpbb_realpath("./../" . $board_config['avatar_gallery_path'] . "/" . $file)) ) + { + $sub_dir = @opendir("../" . $board_config['avatar_gallery_path'] . "/" . $file); + + $avatar_row_count = 0; + $avatar_col_count = 0; + + while( $sub_file = @readdir($sub_dir) ) + { + if( preg_match("/(\.gif$|\.png$|\.jpg)$/is", $sub_file) ) + { + $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . "/" . $sub_file; + + $avatar_col_count++; + if( $avatar_col_count == 5 ) + { + $avatar_row_count++; + $avatar_col_count = 0; + } + } + } + } + } + + @closedir($dir); + + if( isset($HTTP_POST_VARS['avatarcategory']) ) + { + $category = htmlspecialchars($HTTP_POST_VARS['avatarcategory']); + } + else + { + list($category, ) = each($avatar_images); + } + @reset($avatar_images); + + $s_categories = ""; + while( list($key) = each($avatar_images) ) + { + $selected = ( $key == $category ) ? "selected=\"selected\"" : ""; + if( count($avatar_images[$key]) ) + { + $s_categories .= ''; + } + } + + $s_colspan = 0; + for($i = 0; $i < count($avatar_images[$category]); $i++) + { + $template->assign_block_vars("avatar_row", array()); + + $s_colspan = max($s_colspan, count($avatar_images[$category][$i])); + + for($j = 0; $j < count($avatar_images[$category][$i]); $j++) + { + $template->assign_block_vars("avatar_row.avatar_column", array( + "AVATAR_IMAGE" => "../" . $board_config['avatar_gallery_path'] . "/" . $avatar_images[$category][$i][$j]) + ); + + $template->assign_block_vars("avatar_row.avatar_option_column", array( + "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j]) + ); + } + } + + $coppa = ( ( !$HTTP_POST_VARS['coppa'] && !$HTTP_GET_VARS['coppa'] ) || $mode == "register") ? 0 : TRUE; + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + $s_hidden_fields .= ''; + + $template->assign_vars(array( + "L_USER_TITLE" => $lang['User_admin'], + "L_USER_EXPLAIN" => $lang['User_admin_explain'], + "L_AVATAR_GALLERY" => $lang['Avatar_gallery'], + "L_SELECT_AVATAR" => $lang['Select_avatar'], + "L_RETURN_PROFILE" => $lang['Return_profile'], + "L_CATEGORY" => $lang['Select_category'], + "L_GO" => $lang['Go'], + + "S_OPTIONS_CATEGORIES" => $s_categories, + "S_COLSPAN" => $s_colspan, + "S_PROFILE_ACTION" => append_sid("admin_users.$phpEx?mode=$mode"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + } + } + else + { + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + if( !empty($user_avatar_local) ) + { + $s_hidden_fields .= ''; + } + + if( $user_avatar_type ) + { + switch( $user_avatar_type ) + { + case USER_AVATAR_UPLOAD: + $avatar = ''; + break; + case USER_AVATAR_REMOTE: + $avatar = ''; + break; + case USER_AVATAR_GALLERY: + $avatar = ''; + break; + } + } + else + { + $avatar = ""; + } + + $sql = "SELECT * FROM " . RANKS_TABLE . " + WHERE rank_special = 1 + ORDER BY rank_title"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain ranks data', '', __LINE__, __FILE__, $sql); + } + + $rank_select_box = ''; + while( $row = $db->sql_fetchrow($result) ) + { + $rank = $row['rank_title']; + $rank_id = $row['rank_id']; + + $selected = ( $this_userdata['user_rank'] == $rank_id ) ? ' selected="selected"' : ''; + $rank_select_box .= ''; + } + + $template->set_filenames(array( + "body" => "admin/user_edit_body.tpl") + ); + + // + // Let's do an overall check for settings/versions which would prevent + // us from doing file uploads.... + // + $ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + $form_enctype = ( !@$ini_val('file_uploads') || phpversion() == '4.0.4pl1' || !$board_config['allow_avatar_upload'] || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"'; + + $template->assign_vars(array( + 'USERNAME' => $username, + 'EMAIL' => $email, + 'YIM' => $yim, + 'ICQ' => $icq, + 'MSN' => $msn, + 'AIM' => $aim, + 'OCCUPATION' => $occupation, + 'INTERESTS' => $interests, + 'LOCATION' => $location, + 'WEBSITE' => $website, + 'SIGNATURE' => str_replace('
    ', "\n", $signature), + 'VIEW_EMAIL_YES' => ($viewemail) ? 'checked="checked"' : '', + 'VIEW_EMAIL_NO' => (!$viewemail) ? 'checked="checked"' : '', + 'HIDE_USER_YES' => (!$allowviewonline) ? 'checked="checked"' : '', + 'HIDE_USER_NO' => ($allowviewonline) ? 'checked="checked"' : '', + 'NOTIFY_PM_YES' => ($notifypm) ? 'checked="checked"' : '', + 'NOTIFY_PM_NO' => (!$notifypm) ? 'checked="checked"' : '', + 'POPUP_PM_YES' => ($popuppm) ? 'checked="checked"' : '', + 'POPUP_PM_NO' => (!$popuppm) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_YES' => ($attachsig) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_NO' => (!$attachsig) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_YES' => ( $notifyreply ) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_YES' => ($allowbbcode) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_NO' => (!$allowbbcode) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_YES' => ($allowhtml) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_NO' => (!$allowhtml) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_YES' => ($allowsmilies) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_NO' => (!$allowsmilies) ? 'checked="checked"' : '', + 'AVATAR' => $avatar, + 'LANGUAGE_SELECT' => language_select($user_lang), + 'TIMEZONE_SELECT' => tz_select($user_timezone), + 'STYLE_SELECT' => style_select($user_style, 'style'), + 'DATE_FORMAT' => $user_dateformat, + 'ALLOW_PM_YES' => ($user_allowpm) ? 'checked="checked"' : '', + 'ALLOW_PM_NO' => (!$user_allowpm) ? 'checked="checked"' : '', + 'ALLOW_AVATAR_YES' => ($user_allowavatar) ? 'checked="checked"' : '', + 'ALLOW_AVATAR_NO' => (!$user_allowavatar) ? 'checked="checked"' : '', + 'USER_ACTIVE_YES' => ($user_status) ? 'checked="checked"' : '', + 'USER_ACTIVE_NO' => (!$user_status) ? 'checked="checked"' : '', + 'RANK_SELECT_BOX' => $rank_select_box, + + 'L_USERNAME' => $lang['Username'], + 'L_USER_TITLE' => $lang['User_admin'], + 'L_USER_EXPLAIN' => $lang['User_admin_explain'], + 'L_NEW_PASSWORD' => $lang['New_password'], + 'L_PASSWORD_IF_CHANGED' => $lang['password_if_changed'], + 'L_CONFIRM_PASSWORD' => $lang['Confirm_password'], + 'L_PASSWORD_CONFIRM_IF_CHANGED' => $lang['password_confirm_if_changed'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_ICQ_NUMBER' => $lang['ICQ'], + 'L_MESSENGER' => $lang['MSNM'], + 'L_YAHOO' => $lang['YIM'], + 'L_WEBSITE' => $lang['Website'], + 'L_AIM' => $lang['AIM'], + 'L_LOCATION' => $lang['Location'], + 'L_OCCUPATION' => $lang['Occupation'], + 'L_BOARD_LANGUAGE' => $lang['Board_lang'], + 'L_BOARD_STYLE' => $lang['Board_style'], + 'L_TIMEZONE' => $lang['Timezone'], + 'L_DATE_FORMAT' => $lang['Date_format'], + 'L_DATE_FORMAT_EXPLAIN' => $lang['Date_format_explain'], + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + 'L_INTERESTS' => $lang['Interests'], + 'L_ALWAYS_ALLOW_SMILIES' => $lang['Always_smile'], + 'L_ALWAYS_ALLOW_BBCODE' => $lang['Always_bbcode'], + 'L_ALWAYS_ALLOW_HTML' => $lang['Always_html'], + 'L_HIDE_USER' => $lang['Hide_user'], + 'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'], + + 'L_SPECIAL' => $lang['User_special'], + 'L_SPECIAL_EXPLAIN' => $lang['User_special_explain'], + 'L_USER_ACTIVE' => $lang['User_status'], + 'L_ALLOW_PM' => $lang['User_allowpm'], + 'L_ALLOW_AVATAR' => $lang['User_allowavatar'], + + 'L_AVATAR_PANEL' => $lang['Avatar_panel'], + 'L_AVATAR_EXPLAIN' => $lang['Admin_avatar_explain'], + 'L_DELETE_AVATAR' => $lang['Delete_Image'], + 'L_CURRENT_IMAGE' => $lang['Current_Image'], + 'L_UPLOAD_AVATAR_FILE' => $lang['Upload_Avatar_file'], + 'L_UPLOAD_AVATAR_URL' => $lang['Upload_Avatar_URL'], + 'L_AVATAR_GALLERY' => $lang['Select_from_gallery'], + 'L_SHOW_GALLERY' => $lang['View_avatar_gallery'], + 'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'], + + 'L_SIGNATURE' => $lang['Signature'], + 'L_SIGNATURE_EXPLAIN' => sprintf($lang['Signature_explain'], $board_config['max_sig_chars'] ), + 'L_NOTIFY_ON_PRIVMSG' => $lang['Notify_on_privmsg'], + 'L_NOTIFY_ON_REPLY' => $lang['Always_notify'], + 'L_POPUP_ON_PRIVMSG' => $lang['Popup_on_privmsg'], + 'L_PREFERENCES' => $lang['Preferences'], + 'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'], + 'L_ITEMS_REQUIRED' => $lang['Items_required'], + 'L_REGISTRATION_INFO' => $lang['Registration_info'], + 'L_PROFILE_INFO' => $lang['Profile_info'], + 'L_PROFILE_INFO_NOTICE' => $lang['Profile_info_warn'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'S_FORM_ENCTYPE' => $form_enctype, + + 'HTML_STATUS' => $html_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'SMILIES_STATUS' => $smilies_status, + + 'L_DELETE_USER' => $lang['User_delete'], + 'L_DELETE_USER_EXPLAIN' => $lang['User_delete_explain'], + 'L_SELECT_RANK' => $lang['Rank_title'], + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_PROFILE_ACTION' => append_sid("admin_users.$phpEx")) + ); + + if( file_exists(@phpbb_realpath('./../' . $board_config['avatar_path'])) && ($board_config['allow_avatar_upload'] == TRUE) ) + { + if ( $form_enctype != '' ) + { + $template->assign_block_vars('avatar_local_upload', array() ); + } + $template->assign_block_vars('avatar_remote_upload', array() ); + } + + if( file_exists(@phpbb_realpath('./../' . $board_config['avatar_gallery_path'])) && ($board_config['allow_avatar_local'] == TRUE) ) + { + $template->assign_block_vars('avatar_local_gallery', array() ); + } + + if( $board_config['allow_avatar_remote'] == TRUE ) + { + $template->assign_block_vars('avatar_remote_link', array() ); + } + } + + $template->pparse('body'); +} +else +{ + // + // Default user selection box + // + $template->set_filenames(array( + 'body' => 'admin/user_select_body.tpl') + ); + + $template->assign_vars(array( + 'L_USER_TITLE' => $lang['User_admin'], + 'L_USER_EXPLAIN' => $lang['User_admin_explain'], + 'L_USER_SELECT' => $lang['Select_a_User'], + 'L_LOOK_UP' => $lang['Look_up_user'], + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'U_SEARCH_USER' => append_sid("./../search.$phpEx?mode=searchuser"), + + 'S_USER_ACTION' => append_sid("admin_users.$phpEx"), + 'S_USER_SELECT' => $select_list) + ); + $template->pparse('body'); + +} + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_words.php b/phpBB2_old/admin/admin_words.php new file mode 100644 index 0000000..52c1dcd --- /dev/null +++ b/phpBB2_old/admin/admin_words.php @@ -0,0 +1,237 @@ +set_filenames(array( + "body" => "admin/words_edit_body.tpl") + ); + + $s_hidden_fields = ''; + + if( $mode == "edit" ) + { + if( $word_id ) + { + $sql = "SELECT * + FROM " . WORDS_TABLE . " + WHERE word_id = $word_id"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not query words table", "Error", __LINE__, __FILE__, $sql); + } + + $word_info = $db->sql_fetchrow($result); + $s_hidden_fields .= ''; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_word_selected']); + } + } + + $template->assign_vars(array( + "WORD" => $word_info['word'], + "REPLACEMENT" => $word_info['replacement'], + + "L_WORDS_TITLE" => $lang['Words_title'], + "L_WORDS_TEXT" => $lang['Words_explain'], + "L_WORD_CENSOR" => $lang['Edit_word_censor'], + "L_WORD" => $lang['Word'], + "L_REPLACEMENT" => $lang['Replacement'], + "L_SUBMIT" => $lang['Submit'], + + "S_WORDS_ACTION" => append_sid("admin_words.$phpEx"), + "S_HIDDEN_FIELDS" => $s_hidden_fields) + ); + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + } + else if( $mode == "save" ) + { + $word_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0; + $word = ( isset($HTTP_POST_VARS['word']) ) ? trim($HTTP_POST_VARS['word']) : ""; + $replacement = ( isset($HTTP_POST_VARS['replacement']) ) ? trim($HTTP_POST_VARS['replacement']) : ""; + + if($word == "" || $replacement == "") + { + message_die(GENERAL_MESSAGE, $lang['Must_enter_word']); + } + + if( $word_id ) + { + $sql = "UPDATE " . WORDS_TABLE . " + SET word = '" . str_replace("\'", "''", $word) . "', replacement = '" . str_replace("\'", "''", $replacement) . "' + WHERE word_id = $word_id"; + $message = $lang['Word_updated']; + } + else + { + $sql = "INSERT INTO " . WORDS_TABLE . " (word, replacement) + VALUES ('" . str_replace("\'", "''", $word) . "', '" . str_replace("\'", "''", $replacement) . "')"; + $message = $lang['Word_added']; + } + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not insert data into words table", $lang['Error'], __LINE__, __FILE__, $sql); + } + + $message .= "

    " . sprintf($lang['Click_return_wordadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else if( $mode == "delete" ) + { + if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) ) + { + $word_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; + $word_id = intval($word_id); + } + else + { + $word_id = 0; + } + + if( $word_id ) + { + $sql = "DELETE FROM " . WORDS_TABLE . " + WHERE word_id = $word_id"; + + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Could not remove data from words table", $lang['Error'], __LINE__, __FILE__, $sql); + } + + $message = $lang['Word_removed'] . "

    " . sprintf($lang['Click_return_wordadmin'], "", "") . "

    " . sprintf($lang['Click_return_admin_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_word_selected']); + } + } +} +else +{ + $template->set_filenames(array( + "body" => "admin/words_list_body.tpl") + ); + + $sql = "SELECT * + FROM " . WORDS_TABLE . " + ORDER BY word"; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Could not query words table", $lang['Error'], __LINE__, __FILE__, $sql); + } + + $word_rows = $db->sql_fetchrowset($result); + $word_count = count($word_rows); + + $template->assign_vars(array( + "L_WORDS_TITLE" => $lang['Words_title'], + "L_WORDS_TEXT" => $lang['Words_explain'], + "L_WORD" => $lang['Word'], + "L_REPLACEMENT" => $lang['Replacement'], + "L_EDIT" => $lang['Edit'], + "L_DELETE" => $lang['Delete'], + "L_ADD_WORD" => $lang['Add_new_word'], + "L_ACTION" => $lang['Action'], + + "S_WORDS_ACTION" => append_sid("admin_words.$phpEx"), + "S_HIDDEN_FIELDS" => '') + ); + + for($i = 0; $i < $word_count; $i++) + { + $word = $word_rows[$i]['word']; + $replacement = $word_rows[$i]['replacement']; + $word_id = $word_rows[$i]['word_id']; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("words", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "WORD" => $word, + "REPLACEMENT" => $replacement, + + "U_WORD_EDIT" => append_sid("admin_words.$phpEx?mode=edit&id=$word_id"), + "U_WORD_DELETE" => append_sid("admin_words.$phpEx?mode=delete&id=$word_id")) + ); + } +} + +$template->pparse("body"); + +include('./page_footer_admin.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/admin_xs.php b/phpBB2_old/admin/admin_xs.php new file mode 100644 index 0000000..cfee279 --- /dev/null +++ b/phpBB2_old/admin/admin_xs.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/phpBB2_old/admin/index.php b/phpBB2_old/admin/index.php new file mode 100644 index 0000000..b6e78d3 --- /dev/null +++ b/phpBB2_old/admin/index.php @@ -0,0 +1,592 @@ +set_filenames(array( + "body" => "admin/index_navigate.tpl") + ); + + $template->assign_vars(array( + "U_FORUM_INDEX" => append_sid("../index.$phpEx"), + "U_ADMIN_INDEX" => append_sid("index.$phpEx?pane=right"), + + "L_FORUM_INDEX" => $lang['Main_index'], + "L_ADMIN_INDEX" => $lang['Admin_Index'], + "L_PREVIEW_FORUM" => $lang['Preview_forum']) + ); + + ksort($module); + + while( list($cat, $action_array) = each($module) ) + { + $cat = ( !empty($lang[$cat]) ) ? $lang[$cat] : preg_replace("/_/", " ", $cat); + + $template->assign_block_vars("catrow", array( + "ADMIN_CATEGORY" => $cat) + ); + + ksort($action_array); + + $row_count = 0; + while( list($action, $file) = each($action_array) ) + { + $row_color = ( !($row_count%2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($row_count%2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $action = ( !empty($lang[$action]) ) ? $lang[$action] : preg_replace("/_/", " ", $action); + + $template->assign_block_vars("catrow.modulerow", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + + "ADMIN_MODULE" => $action, + "U_ADMIN_MODULE" => append_sid($file)) + ); + $row_count++; + } + } + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); +} +elseif( isset($HTTP_GET_VARS['pane']) && $HTTP_GET_VARS['pane'] == 'right' ) +{ + + include('./page_header_admin.'.$phpEx); + + $template->set_filenames(array( + "body" => "admin/index_body.tpl") + ); + + $template->assign_vars(array( + "L_WELCOME" => $lang['Welcome_phpBB'], + "L_ADMIN_INTRO" => $lang['Admin_intro'], + "L_FORUM_STATS" => $lang['Forum_stats'], + "L_WHO_IS_ONLINE" => $lang['Who_is_Online'], + "L_USERNAME" => $lang['Username'], + "L_LOCATION" => $lang['Location'], + "L_LAST_UPDATE" => $lang['Last_updated'], + "L_IP_ADDRESS" => $lang['IP_Address'], + "L_STATISTIC" => $lang['Statistic'], + "L_VALUE" => $lang['Value'], + "L_NUMBER_POSTS" => $lang['Number_posts'], + "L_POSTS_PER_DAY" => $lang['Posts_per_day'], + "L_NUMBER_TOPICS" => $lang['Number_topics'], + "L_TOPICS_PER_DAY" => $lang['Topics_per_day'], + "L_NUMBER_USERS" => $lang['Number_users'], + "L_USERS_PER_DAY" => $lang['Users_per_day'], + "L_BOARD_STARTED" => $lang['Board_started'], + "L_AVATAR_DIR_SIZE" => $lang['Avatar_dir_size'], + "L_DB_SIZE" => $lang['Database_size'], + "L_FORUM_LOCATION" => $lang['Forum_Location'], + "L_STARTED" => $lang['Login'], + "L_GZIP_COMPRESSION" => $lang['Gzip_compression']) + ); + + // + // Get forum statistics + // + $total_posts = get_db_stat('postcount'); + $total_users = get_db_stat('usercount'); + $total_topics = get_db_stat('topiccount'); + + $start_date = create_date($board_config['default_dateformat'], $board_config['board_startdate'], $board_config['board_timezone']); + + $boarddays = ( time() - $board_config['board_startdate'] ) / 86400; + + $posts_per_day = sprintf("%.2f", $total_posts / $boarddays); + $topics_per_day = sprintf("%.2f", $total_topics / $boarddays); + $users_per_day = sprintf("%.2f", $total_users / $boarddays); + + $avatar_dir_size = 0; + + if ($avatar_dir = @opendir($phpbb_root_path . $board_config['avatar_path'])) + { + while( $file = @readdir($avatar_dir) ) + { + if( $file != "." && $file != ".." ) + { + $avatar_dir_size += @filesize($phpbb_root_path . $board_config['avatar_path'] . "/" . $file); + } + } + @closedir($avatar_dir); + + // + // This bit of code translates the avatar directory size into human readable format + // Borrowed the code from the PHP.net annoted manual, origanally written by: + // Jesse (jesse@jess.on.ca) + // + if($avatar_dir_size >= 1048576) + { + $avatar_dir_size = round($avatar_dir_size / 1048576 * 100) / 100 . " MB"; + } + else if($avatar_dir_size >= 1024) + { + $avatar_dir_size = round($avatar_dir_size / 1024 * 100) / 100 . " KB"; + } + else + { + $avatar_dir_size = $avatar_dir_size . " Bytes"; + } + + } + else + { + // Couldn't open Avatar dir. + $avatar_dir_size = $lang['Not_available']; + } + + if($posts_per_day > $total_posts) + { + $posts_per_day = $total_posts; + } + + if($topics_per_day > $total_topics) + { + $topics_per_day = $total_topics; + } + + if($users_per_day > $total_users) + { + $users_per_day = $total_users; + } + + // + // DB size ... MySQL only + // + // This code is heavily influenced by a similar routine + // in phpMyAdmin 2.2.0 + // + if( preg_match("/^mysql/", SQL_LAYER) ) + { + $sql = "SELECT VERSION() AS mysql_version"; + if($result = $db->sql_query($sql)) + { + $row = $db->sql_fetchrow($result); + $version = $row['mysql_version']; + + if( preg_match("/^(3\.23|4\.)/", $version) ) + { + $db_name = ( preg_match("/^(3\.23\.[6-9])|(3\.23\.[1-9][1-9])|(4\.)/", $version) ) ? "`$dbname`" : $dbname; + + $sql = "SHOW TABLE STATUS + FROM " . $db_name; + if($result = $db->sql_query($sql)) + { + $tabledata_ary = $db->sql_fetchrowset($result); + + $dbsize = 0; + for($i = 0; $i < count($tabledata_ary); $i++) + { + if( $tabledata_ary[$i]['Type'] != "MRG_MyISAM" ) + { + if( $table_prefix != "" ) + { + if( strstr($tabledata_ary[$i]['Name'], $table_prefix) ) + { + $dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length']; + } + } + else + { + $dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length']; + } + } + } + } // Else we couldn't get the table status. + } + else + { + $dbsize = $lang['Not_available']; + } + } + else + { + $dbsize = $lang['Not_available']; + } + } + else if( preg_match("/^mssql/", SQL_LAYER) ) + { + $sql = "SELECT ((SUM(size) * 8.0) * 1024.0) as dbsize + FROM sysfiles"; + if( $result = $db->sql_query($sql) ) + { + $dbsize = ( $row = $db->sql_fetchrow($result) ) ? intval($row['dbsize']) : $lang['Not_available']; + } + else + { + $dbsize = $lang['Not_available']; + } + } + else + { + $dbsize = $lang['Not_available']; + } + + if ( is_integer($dbsize) ) + { + if( $dbsize >= 1048576 ) + { + $dbsize = sprintf("%.2f MB", ( $dbsize / 1048576 )); + } + else if( $dbsize >= 1024 ) + { + $dbsize = sprintf("%.2f KB", ( $dbsize / 1024 )); + } + else + { + $dbsize = sprintf("%.2f Bytes", $dbsize); + } + } + + $template->assign_vars(array( + "NUMBER_OF_POSTS" => $total_posts, + "NUMBER_OF_TOPICS" => $total_topics, + "NUMBER_OF_USERS" => $total_users, + "START_DATE" => $start_date, + "POSTS_PER_DAY" => $posts_per_day, + "TOPICS_PER_DAY" => $topics_per_day, + "USERS_PER_DAY" => $users_per_day, + "AVATAR_DIR_SIZE" => $avatar_dir_size, + "DB_SIZE" => $dbsize, + "GZIP_COMPRESSION" => ( $board_config['gzip_compress'] ) ? $lang['ON'] : $lang['OFF']) + ); + // + // End forum statistics + // + + // + // Get users online information. + // + $sql = "SELECT u.user_id, u.username, u.user_session_time, u.user_session_page, s.session_logged_in, s.session_ip, s.session_start + FROM " . USERS_TABLE . " u, " . SESSIONS_TABLE . " s + WHERE s.session_logged_in = " . TRUE . " + AND u.user_id = s.session_user_id + AND u.user_id <> " . ANONYMOUS . " + AND s.session_time >= " . ( time() - 300 ) . " + ORDER BY u.user_session_time DESC"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql); + } + $onlinerow_reg = $db->sql_fetchrowset($result); + + $sql = "SELECT session_page, session_logged_in, session_time, session_ip, session_start + FROM " . SESSIONS_TABLE . " + WHERE session_logged_in = 0 + AND session_time >= " . ( time() - 300 ) . " + ORDER BY session_time DESC"; + if(!$result = $db->sql_query($sql)) + { + message_die(GENERAL_ERROR, "Couldn't obtain guest user/online information.", "", __LINE__, __FILE__, $sql); + } + $onlinerow_guest = $db->sql_fetchrowset($result); + + $sql = "SELECT forum_name, forum_id + FROM " . FORUMS_TABLE; + if($forums_result = $db->sql_query($sql)) + { + while($forumsrow = $db->sql_fetchrow($forums_result)) + { + $forum_data[$forumsrow['forum_id']] = $forumsrow['forum_name']; + } + } + else + { + message_die(GENERAL_ERROR, "Couldn't obtain user/online forums information.", "", __LINE__, __FILE__, $sql); + } + + $reg_userid_ary = array(); + + if( count($onlinerow_reg) ) + { + $registered_users = 0; + + for($i = 0; $i < count($onlinerow_reg); $i++) + { + if( !inarray($onlinerow_reg[$i]['user_id'], $reg_userid_ary) ) + { + $reg_userid_ary[] = $onlinerow_reg[$i]['user_id']; + + $username = $onlinerow_reg[$i]['username']; + + if( $onlinerow_reg[$i]['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) + { + $registered_users++; + $hidden = FALSE; + } + else + { + $hidden_users++; + $hidden = TRUE; + } + + if( $onlinerow_reg[$i]['user_session_page'] < 1 ) + { + switch($onlinerow_reg[$i]['user_session_page']) + { + case PAGE_INDEX: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_POSTING: + $location = $lang['Posting_message']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_LOGIN: + $location = $lang['Logging_on']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_SEARCH: + $location = $lang['Searching_forums']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PROFILE: + $location = $lang['Viewing_profile']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWONLINE: + $location = $lang['Viewing_online']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWMEMBERS: + $location = $lang['Viewing_member_list']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PRIVMSGS: + $location = $lang['Viewing_priv_msgs']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_FAQ: + $location = $lang['Viewing_FAQ']; + $location_url = "index.$phpEx?pane=right"; + break; + default: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + } + } + else + { + $location_url = append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=" . $onlinerow_reg[$i]['user_session_page']); + $location = $forum_data[$onlinerow_reg[$i]['user_session_page']]; + } + + $row_color = ( $registered_users % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $registered_users % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $reg_ip = decode_ip($onlinerow_reg[$i]['session_ip']); + + $template->assign_block_vars("reg_user_row", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "USERNAME" => $username, + "STARTED" => create_date($board_config['default_dateformat'], $onlinerow_reg[$i]['session_start'], $board_config['board_timezone']), + "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_reg[$i]['user_session_time'], $board_config['board_timezone']), + "FORUM_LOCATION" => $location, + "IP_ADDRESS" => $reg_ip, + + "U_WHOIS_IP" => "http://network-tools.com/default.asp?host=$reg_ip", + "U_USER_PROFILE" => append_sid("admin_users.$phpEx?mode=edit&" . POST_USERS_URL . "=" . $onlinerow_reg[$i]['user_id']), + "U_FORUM_LOCATION" => append_sid($location_url)) + ); + } + } + + } + else + { + $template->assign_vars(array( + "L_NO_REGISTERED_USERS_BROWSING" => $lang['No_users_browsing']) + ); + } + + // + // Guest users + // + if( count($onlinerow_guest) ) + { + $guest_users = 0; + + for($i = 0; $i < count($onlinerow_guest); $i++) + { + $guest_userip_ary[] = $onlinerow_guest[$i]['session_ip']; + $guest_users++; + + if( $onlinerow_guest[$i]['session_page'] < 1 ) + { + switch( $onlinerow_guest[$i]['session_page'] ) + { + case PAGE_INDEX: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_POSTING: + $location = $lang['Posting_message']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_LOGIN: + $location = $lang['Logging_on']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_SEARCH: + $location = $lang['Searching_forums']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PROFILE: + $location = $lang['Viewing_profile']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWONLINE: + $location = $lang['Viewing_online']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_VIEWMEMBERS: + $location = $lang['Viewing_member_list']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_PRIVMSGS: + $location = $lang['Viewing_priv_msgs']; + $location_url = "index.$phpEx?pane=right"; + break; + case PAGE_FAQ: + $location = $lang['Viewing_FAQ']; + $location_url = "index.$phpEx?pane=right"; + break; + default: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx?pane=right"; + } + } + else + { + $location_url = append_sid("admin_forums.$phpEx?mode=editforum&" . POST_FORUM_URL . "=" . $onlinerow_guest[$i]['session_page']); + $location = $forum_data[$onlinerow_guest[$i]['session_page']]; + } + + $row_color = ( $guest_users % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $guest_users % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $guest_ip = decode_ip($onlinerow_guest[$i]['session_ip']); + + $template->assign_block_vars("guest_user_row", array( + "ROW_COLOR" => "#" . $row_color, + "ROW_CLASS" => $row_class, + "USERNAME" => $lang['Guest'], + "STARTED" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_start'], $board_config['board_timezone']), + "LASTUPDATE" => create_date($board_config['default_dateformat'], $onlinerow_guest[$i]['session_time'], $board_config['board_timezone']), + "FORUM_LOCATION" => $location, + "IP_ADDRESS" => $guest_ip, + + "U_WHOIS_IP" => "http://network-tools.com/default.asp?host=$guest_ip", + "U_FORUM_LOCATION" => append_sid($location_url)) + ); + } + + } + else + { + $template->assign_vars(array( + "L_NO_GUESTS_BROWSING" => $lang['No_users_browsing']) + ); + } + + $template->pparse("body"); + + include('./page_footer_admin.'.$phpEx); + +} +else +{ + // + // Generate frameset + // + $template->set_filenames(array( + "body" => "admin/index_frameset.tpl") + ); + + $template->assign_vars(array( + "S_FRAME_NAV" => append_sid("index.$phpEx?pane=left"), + "S_FRAME_MAIN" => append_sid("index.$phpEx?pane=right")) + ); + + header ("Expires: " . gmdate("D, d M Y H:i:s", time()) . " GMT"); + header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); + + $template->pparse("body"); + + $db->sql_close(); + exit; + +} + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/page_footer_admin.php b/phpBB2_old/admin/page_footer_admin.php new file mode 100644 index 0000000..82df14c --- /dev/null +++ b/phpBB2_old/admin/page_footer_admin.php @@ -0,0 +1,73 @@ +set_filenames(array( + 'page_footer' => 'admin/page_footer.tpl') +); + +$template->assign_vars(array( + 'PHPBB_VERSION' => '2' . $board_config['version'], + 'TRANSLATION_INFO' => $lang['TRANSLATION_INFO']) +); + +$template->pparse('page_footer'); + +// +// Close our DB connection. +// +$db->sql_close(); + +// +// Compress buffered output if required +// and send to browser +// +if( $do_gzip_compress ) +{ + // + // Borrowed from php.net! + // + $gzip_contents = ob_get_contents(); + ob_end_clean(); + + $gzip_size = strlen($gzip_contents); + $gzip_crc = crc32($gzip_contents); + + $gzip_contents = gzcompress($gzip_contents, 9); + $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); + + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; + echo $gzip_contents; + echo pack('V', $gzip_crc); + echo pack('V', $gzip_size); +} + +exit; + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/page_header_admin.php b/phpBB2_old/admin/page_header_admin.php new file mode 100644 index 0000000..6fb1b4a --- /dev/null +++ b/phpBB2_old/admin/page_header_admin.php @@ -0,0 +1,138 @@ += '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) + { + if ( extension_loaded('zlib') ) + { + ob_start('ob_gzhandler'); + } + } + else if ( $phpver > '4.0' ) + { + if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) + { + if ( extension_loaded('zlib') ) + { + $do_gzip_compress = TRUE; + ob_start(); + ob_implicit_flush(0); + + header('Content-Encoding: gzip'); + } + } + } +} + +$template->set_filenames(array( + 'header' => 'admin/page_header.tpl') +); + +// Format Timezone. We are unable to use array_pop here, because of PHP3 compatibility +$l_timezone = explode('.', $board_config['board_timezone']); +$l_timezone = (count($l_timezone) > 1 && $l_timezone[count($l_timezone)-1] != 0) ? $lang[sprintf('%.1f', $board_config['board_timezone'])] : $lang[number_format($board_config['board_timezone'])]; + +// +// The following assigns all _common_ variables that may be used at any point +// in a template. Note that all URL's should be wrapped in append_sid, as +// should all S_x_ACTIONS for forms. +// +$template->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'PAGE_TITLE' => $page_title, + + 'L_ADMIN' => $lang['Admin'], + 'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']), + 'L_FAQ' => $lang['FAQ'], + + 'U_INDEX' => append_sid('../index.'.$phpEx), + + 'S_TIMEZONE' => sprintf($lang['All_times'], $l_timezone), + 'S_LOGIN_ACTION' => append_sid('../login.'.$phpEx), + 'S_JUMPBOX_ACTION' => append_sid('../viewforum.'.$phpEx), + 'S_CURRENT_TIME' => sprintf($lang['Current_time'], create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])), + 'S_CONTENT_DIRECTION' => $lang['DIRECTION'], + 'S_CONTENT_ENCODING' => $lang['ENCODING'], + 'S_CONTENT_DIR_LEFT' => $lang['LEFT'], + 'S_CONTENT_DIR_RIGHT' => $lang['RIGHT'], + + 'T_HEAD_STYLESHEET' => $theme['head_stylesheet'], + 'T_BODY_BACKGROUND' => $theme['body_background'], + 'T_BODY_BGCOLOR' => '#'.$theme['body_bgcolor'], + 'T_BODY_TEXT' => '#'.$theme['body_text'], + 'T_BODY_LINK' => '#'.$theme['body_link'], + 'T_BODY_VLINK' => '#'.$theme['body_vlink'], + 'T_BODY_ALINK' => '#'.$theme['body_alink'], + 'T_BODY_HLINK' => '#'.$theme['body_hlink'], + 'T_TR_COLOR1' => '#'.$theme['tr_color1'], + 'T_TR_COLOR2' => '#'.$theme['tr_color2'], + 'T_TR_COLOR3' => '#'.$theme['tr_color3'], + 'T_TR_CLASS1' => $theme['tr_class1'], + 'T_TR_CLASS2' => $theme['tr_class2'], + 'T_TR_CLASS3' => $theme['tr_class3'], + 'T_TH_COLOR1' => '#'.$theme['th_color1'], + 'T_TH_COLOR2' => '#'.$theme['th_color2'], + 'T_TH_COLOR3' => '#'.$theme['th_color3'], + 'T_TH_CLASS1' => $theme['th_class1'], + 'T_TH_CLASS2' => $theme['th_class2'], + 'T_TH_CLASS3' => $theme['th_class3'], + 'T_TD_COLOR1' => '#'.$theme['td_color1'], + 'T_TD_COLOR2' => '#'.$theme['td_color2'], + 'T_TD_COLOR3' => '#'.$theme['td_color3'], + 'T_TD_CLASS1' => $theme['td_class1'], + 'T_TD_CLASS2' => $theme['td_class2'], + 'T_TD_CLASS3' => $theme['td_class3'], + 'T_FONTFACE1' => $theme['fontface1'], + 'T_FONTFACE2' => $theme['fontface2'], + 'T_FONTFACE3' => $theme['fontface3'], + 'T_FONTSIZE1' => $theme['fontsize1'], + 'T_FONTSIZE2' => $theme['fontsize2'], + 'T_FONTSIZE3' => $theme['fontsize3'], + 'T_FONTCOLOR1' => '#'.$theme['fontcolor1'], + 'T_FONTCOLOR2' => '#'.$theme['fontcolor2'], + 'T_FONTCOLOR3' => '#'.$theme['fontcolor3'], + 'T_SPAN_CLASS1' => $theme['span_class1'], + 'T_SPAN_CLASS2' => $theme['span_class2'], + 'T_SPAN_CLASS3' => $theme['span_class3']) +); + + +$template->pparse('header'); + +?> diff --git a/phpBB2_old/admin/pagestart.php b/phpBB2_old/admin/pagestart.php new file mode 100644 index 0000000..87f1e5e --- /dev/null +++ b/phpBB2_old/admin/pagestart.php @@ -0,0 +1,69 @@ + \ No newline at end of file diff --git a/phpBB2_old/admin/xs_cache.php b/phpBB2_old/admin/xs_cache.php new file mode 100644 index 0000000..540284d --- /dev/null +++ b/phpBB2_old/admin/xs_cache.php @@ -0,0 +1,264 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_manage_cache'] . '')); + +$data = ''; + +$skip_files = array( + '.', + '..', + '.htaccess', + 'index.htm', + 'index.html', + 'index.php', + 'attach_config.php', + ); + +// +// clear cache +// +if(isset($HTTP_GET_VARS['clear']) && !defined('DEMO_MODE')) +{ + @set_time_limit(XS_MAX_TIMEOUT); + $clear = $HTTP_GET_VARS['clear']; + if(!$clear) + { + // clear all cache + $match = ''; + } + else + { + $match = XS_TPL_PREFIX . $clear . XS_SEPARATOR; + } + $match_len = strlen($match); + $style_len = strlen(STYLE_EXTENSION); + $backup_len = strlen(XS_BACKUP_EXT); + $dir = $template->cachedir; + $res = @opendir($dir); + if(!$res) + { + $data = $lang['xs_cache_nowrite']; + } + else + { + $num = 0; + $num_error = 0; + while(($file = readdir($res)) !== false) + { + $len = strlen($file); + // delete only files that match pattern, that aren't in exclusion list and that aren't downloaded styles. + if(substr($file, 0, $match_len) === $match && !xs_in_array($file, $skip_files)) + if(substr($file, $len - $style_len) !== STYLE_EXTENSION && substr($file, $len - $backup_len) !== XS_BACKUP_EXT) + { + $res2 = @unlink($dir . $file); + if($res2) + { + $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_deleted']) . "
    \n"; + $num ++; + } + elseif(@is_file($dir . $file)) + { + $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_nodelete']) . "
    \n"; + $num_error ++; + } + } + } + closedir($res); + if(!$num && !$num_error) + { + if($clear) + { + $data .= str_replace('{TPL}', $clear, $lang['xs_cache_log_nothing']) . "
    \n"; + } + else + { + $data .= $lang['xs_cache_log_nothing2'] . "
    \n"; + } + } + else + { + $data .= str_replace('{NUM}', $num, $lang['xs_cache_log_count']) . "
    \n"; + if($num_error) + { + $data .= str_replace('{NUM}', $num_error, $lang['xs_cache_log_count2']) . "
    \n"; + } + } + } +} + + +// +// compile cache +// +if(isset($HTTP_GET_VARS['compile']) && !defined('DEMO_MODE')) +{ + $tpl = $HTTP_GET_VARS['compile']; + @set_time_limit(XS_MAX_TIMEOUT); + $num_errors = 0; + $num_compiled = 0; + if($tpl) + { + $dir = $template->tpldir . $tpl . '/'; + compile_cache($dir, '', $tpl); + } + else + { + $res = opendir('../templates'); + while(($file = readdir($res)) !== false) + { + if($file !== '.' && $file !== '..' && is_dir('../templates/'.$file) && @file_exists('../templates/'.$file.'/overall_header.tpl')) + { + compile_cache('../templates/'.$file.'/', '', $file); + } + } + closedir($res); + } + $data .= str_replace('{NUM}', $num_compiled, $lang['xs_cache_log_compiled']) . "
    \n"; + $data .= str_replace('{NUM}', $num_errors, $lang['xs_cache_log_errors']) . "
    \n"; +} + +function compile_cache($dir, $subdir, $tpl) +{ + global $data, $template, $num_errors, $num_compiled, $lang; + $str = $dir . $subdir; + $res = @opendir($dir . $subdir); + if(!$res) + { + $data .= str_replace('{DIR}', $dir.$subdir, $lang['xs_cache_log_noaccess']) . "
    \n"; + $num_errors ++; + return; + } + while(($file = readdir($res)) !== false) + { + if(@is_dir($str . $file) && $file !== '.' && $file !== '..' && $file !== 'CVS') + { + compile_cache($dir, $subdir . $file . '/', $tpl); + } + elseif(substr($file, strlen($file) - 4) === '.tpl') + { + $res2 = $template->precompile($tpl, $subdir . $file); + if($res2) + { + $data .= str_replace('{FILE}', $dir.$subdir.$file, $lang['xs_cache_log_compiled2']) . "
    \n"; + $num_compiled ++; + } + else + { + $data .= str_replace('{FILE}', $dir.$subdir.$file, $lang['xs_cache_log_nocompile']) . "
    \n"; + $num_errors ++; + } + } + } + closedir($res); +} + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'cache.tpl')); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLEAR' => "xs_cache.{$phpEx}?clear={$str2}&sid={$userdata['session_id']}", + 'U_COMPILE' => "xs_cache.{$phpEx}?compile={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} +if($prev_id > 0) +{ + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLEAR' => "xs_cache.{$phpEx}?clear={$str2}&sid={$userdata['session_id']}", + 'U_COMPILE' => "xs_cache.{$phpEx}?compile={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->assign_vars(array( + 'U_CLEAR_ALL' => "xs_cache.{$phpEx}?clear=&sid={$userdata['session_id']}", + 'U_COMPILE_ALL' => "xs_cache.{$phpEx}?compile=&sid={$userdata['session_id']}", + 'RESULT' => '

    ' . $data + ) +); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_chmod.php b/phpBB2_old/admin/xs_chmod.php new file mode 100644 index 0000000..694069b --- /dev/null +++ b/phpBB2_old/admin/xs_chmod.php @@ -0,0 +1,92 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_configuration'] . '')); +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_chmod'] . '')); + +$lang['xs_chmod_return'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_chmod_return']); +$lang['xs_chmod_message1'] .= $lang['xs_chmod_return']; +$lang['xs_chmod_error1'] .= $lang['xs_chmod_return']; + +if(defined('DEMO_MODE')) +{ + xs_error($lang['xs_permission_denied']); +} + +if(!get_ftp_config(append_sid('xs_chmod.'.$phpEx), array(), false)) +{ + exit; +} +xs_ftp_connect(append_sid('xs_chmod.'.$phpEx), array(), true); + +if($ftp === XS_FTP_LOCAL) +{ + @mkdir('../cache', 0777); + @chmod('../cache', 0777); + if(xs_dir_writable('../cache')) + { + xs_message($lang['Information'], $lang['xs_chmod_message1']); + } + xs_error($lang['xs_chmod_error1']); +} + +$str = ftp_pwd($ftp); + +if(strlen($str) && substr($str, strlen($str) - 1) !== '/') +{ + $str .= '/'; +} +$res = @ftp_site($ftp, "CHMOD 0777 {$str}cache"); +if(!$res) +{ + @ftp_mkdir($ftp, 'cache'); + $res = @ftp_site($ftp, "CHMOD 0777 {$str}cache"); +} +@ftp_quit($ftp); +if($res) +{ + xs_message($lang['Information'], $lang['xs_chmod_message1']); +} +else +{ + xs_error($lang['xs_chmod_error1']); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_clone.php b/phpBB2_old/admin/xs_clone.php new file mode 100644 index 0000000..d3f0573 --- /dev/null +++ b/phpBB2_old/admin/xs_clone.php @@ -0,0 +1,353 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_clone_styles'] . '')); + +$lang['xs_clone_back'] = str_replace('{URL}', append_sid('xs_clone.'.$phpEx), $lang['xs_clone_back']); + +// +// Check required functions +// +if(!@function_exists('gzcompress')) +{ + xs_error($lang['xs_import_nogzip']); +} + +// +// clone style +// +if(!empty($HTTP_POST_VARS['clone_style']) && !defined('DEMO_MODE')) +{ + $style = intval($HTTP_POST_VARS['clone_style']); + $new_name = stripslashes($HTTP_POST_VARS['clone_name']); + // get theme data + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id='{$style}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'] . '

    ' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + $theme = $db->sql_fetchrow($result); + if(empty($theme['themes_id'])) + { + xs_error($lang['xs_no_themes'] . '

    ' . $lang['xs_clone_back']); + } + if($theme['style_name'] === stripslashes($new_name)) + { + xs_error($lang['xs_clone_taken'] . '

    ' . $lang['xs_clone_back']); + } + // check for clone + $sql = "SELECT themes_id FROM " . THEMES_TABLE . " WHERE style_name = '" . xs_sql($new_name) . "'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

    ' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + $row = $db->sql_fetchrow($result); + if(!empty($row['themes_id'])) + { + xs_error($lang['xs_clone_taken'] . '

    ' . $lang['xs_clone_back']); + } + // clone it + $vars = array('style_name'); + $values = array(xs_sql($new_name)); + foreach($theme as $var => $value) + { + if(!is_integer($var) && $var !== 'style_name' && $var !== 'themes_id') + { + $vars[] = $var; + $values[] = xs_sql($value); + } + } + $sql = "INSERT INTO " . THEMES_TABLE . " (" . implode(', ', $vars) . ") VALUES ('" . implode("','", $values) . "')"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_error_new_row'] . '

    ' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + xs_message($lang['Information'], $lang['xs_theme_cloned'] . '

    ' . $lang['xs_clone_back']); +} + +// +// clone template +// +if(!empty($HTTP_POST_VARS['clone_tpl']) && !defined('DEMO_MODE')) +{ + $old_name = xs_tpl_name($HTTP_POST_VARS['clone_tpl']); + $new_name = xs_tpl_name($HTTP_POST_VARS['clone_style_name']); + if(empty($new_name) || $new_name === $old_name) + { + xs_error($lang['xs_invalid_style_name'] . '

    ' . $lang['xs_clone_back']); + } + // check if template exists + if(@file_exists('../templates/'.$new_name)) + { + xs_error($lang['xs_clone_style_exists'] . '

    ' . $lang['xs_clone_back']); + } + // check variables + $total = intval($HTTP_POST_VARS['total']); + $vars = array('clone_tpl', 'clone_style_name', 'total'); + $count = 0; + $list = array(); + for($i=0; $i<$total; $i++) + { + $vars[] = 'clone_style_id_'.$i; + $vars[] = 'clone_style_'.$i; + $vars[] = 'clone_style_name_'.$i; + if(!empty($HTTP_POST_VARS['clone_style_'.$i]) && !empty($HTTP_POST_VARS['clone_style_name_'.$i])) + { + // prepare for export + $list[] = intval($HTTP_POST_VARS['clone_style_id_'.$i]); + $HTTP_POST_VARS['export_style_'.$i] = $HTTP_POST_VARS['clone_style_'.$i]; + $HTTP_POST_VARS['export_style_id_'.$i] = $HTTP_POST_VARS['clone_style_id_'.$i]; + $HTTP_POST_VARS['export_style_name_'.$i] = $HTTP_POST_VARS['clone_style_name_'.$i]; + // prepare for import + $HTTP_POST_VARS['import_install_'.$count] = '1'; + $count ++; + } + } + if(!$count) + { + xs_error($lang['xs_clone_no_select'] . '

    ' . $lang['xs_clone_back']); + } + $request = array(); + for($i=0; $isql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . $lang['xs_clone_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

    ' . $lang['xs_clone_back']); + } + $theme_data = xs_generate_themeinfo($theme_rowset, $export, $exportas, $total); + // prepare to pack + $pack_error = ''; + $pack_list = array(); + $pack_replace = array('./theme_info.cfg' => $theme_data); + // pack style + for($i = 0; $i < count($theme_rowset); $i++) + { + $id = $theme_rowset[$i]['themes_id']; + $theme_name = $theme_rowset[$i]['style_name']; + for($j=0; $j<$total; $j++) + { + if(!empty($HTTP_POST_VARS['export_style_name_'.$j]) && $HTTP_POST_VARS['export_style_id_'.$j] == $id) + { + $theme_name = stripslashes($HTTP_POST_VARS['export_style_name_'.$j]); + } + } + $theme_rowset[$i]['style_name'] = $theme_name; + } + $data = pack_style($export, $exportas, $theme_rowset, ''); + // check errors + if($pack_error) + { + xs_error(str_replace('{TPL}', $export, $lang['xs_export_error']) . $pack_error . '

    ' . $lang['xs_clone_back']); + } + if(!$data) + { + xs_error(str_replace('{TPL}', $export, $lang['xs_export_error2']) . '

    ' . $lang['xs_clone_back']); + } + // save as file + $filename = 'clone_' . time() . '.tmp'; + $tmp_filename = XS_TEMP_DIR . $filename; + $f = @fopen($tmp_filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $tpl_filename, $lang['xs_error_cannot_create_tmp']) . '

    ' . $lang['xs_clone_back']); + } + fwrite($f, $data); + fclose($f); + // prepare import variables + $total = $count; + $HTTP_POST_VARS['total'] = $count; + $list_only = false; + $get_file = ''; + define('XS_CLONING', true); + $lang['xs_import_back'] = $lang['xs_clone_back']; + include('xs_include_import.' . $phpEx); + include('xs_include_import2.' . $phpEx); +} + + +// +// clone style menu +// +if(!empty($HTTP_GET_VARS['clone'])) +{ + $style = stripslashes($HTTP_GET_VARS['clone']); + $sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name = '" . xs_sql($style) . "' ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

    ' . $lang['xs_clone_back'], __LINE__, __FILE__); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

    ' . $lang['xs_clone_back']); + } + $template->set_filenames(array('body' => XS_TPL_PATH . 'clone2.tpl')); + // clone template + $template->assign_vars(array( + 'FORM_ACTION' => append_sid('xs_clone.'.$phpEx), + 'CLONE_TEMPLATE' => htmlspecialchars($style), + 'STYLE_ID' => $theme_rowset[0]['themes_id'], + 'STYLE_NAME' => htmlspecialchars($theme_rowset[0]['style_name']), + 'TOTAL' => count($theme_rowset), + 'L_CLONE_STYLE3' => str_replace('{STYLE}', htmlspecialchars($style), $lang['xs_clone_style3']) + )); + // clone styles + for($i=0; $iassign_block_vars('styles', array( + 'ID' => $theme_rowset[$i]['themes_id'], + 'TPL' => htmlspecialchars($theme_rowset[$i]['template_name']), + 'STYLE' => htmlspecialchars($theme_rowset[$i]['style_name']), + 'L_CLONE' => str_replace('{STYLE}', htmlspecialchars($theme_rowset[$i]['style_name']), $lang['xs_clone_style2']) + )); + } + if(count($theme_rowset) == 1) + { + $template->assign_block_vars('switch_select_nostyle', array()); + if($theme_rowset[0]['style_name'] === $style) + { + $template->assign_block_vars('switch_onchange', array()); + } + } + else + { + $template->assign_block_vars('switch_select_style', array()); + for($i=0; $iassign_block_vars('switch_select_style.style', array( + 'NUM' => $i, + 'ID' => $theme_rowset[$i]['themes_id'], + 'NAME' => htmlspecialchars($theme_rowset[$i]['style_name']) + )); + } + } + $template->pparse('body'); + xs_exit(); +} + + + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLONE' => "xs_clone.{$phpEx}?clone={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} + +if($prev_id > 0) +{ + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_CLONE' => "xs_clone.{$phpEx}?clone={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'clone.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_config.php b/phpBB2_old/admin/xs_config.php new file mode 100644 index 0000000..fd1ffe1 --- /dev/null +++ b/phpBB2_old/admin/xs_config.php @@ -0,0 +1,209 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_configuration'] . '')); + +$lang['xs_config_updated_explain'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_config_updated_explain']); +$lang['xs_config_title'] = str_replace('{VERSION}', $template->xs_versiontxt, $lang['xs_config_title']); +$lang['xs_config_warning_explain'] = str_replace('{URL}', append_sid('xs_chmod.'.$phpEx), $lang['xs_config_warning_explain']); +$lang['xs_config_back'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_config_back']); + +// +// Updating configuration +// +if(isset($HTTP_POST_VARS['submit']) && !defined('DEMO_MODE')) +{ + $vars = array('xs_use_cache', 'xs_auto_compile', 'xs_auto_recompile', 'xs_php', 'xs_def_template', 'xs_check_switches', 'xs_warn_includes', 'xs_add_comments', 'xs_ftp_host', 'xs_ftp_login', 'xs_ftp_path', 'xs_shownav'); + // checking navigation config + $shownav = 0; + for($i=0; $iassign_block_vars('left_refresh', array( + 'ACTION' => append_sid('index.' . $phpEx . '?pane=left') + )); + } + $HTTP_POST_VARS['xs_shownav'] = $shownav; + // checking submitted data + $update_time = false; + foreach($vars as $var) + { + $new[$var] = stripslashes(trim($HTTP_POST_VARS[$var])); + if(($var == 'xs_auto_recompile') && !$new['xs_auto_compile']) + { + $new[$var] = 0; + } + if($board_config[$var] !== $new[$var]) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '" . xs_sql($new[$var]) . "' WHERE config_name = '{$var}'"; + if( !$db->sql_query($sql) ) + { + xs_error(str_replace('{VAR}', $var, $lang['xs_config_sql_error']) . '

    ' . $lang['xs_config_back'], __LINE__, __FILE__); + } + $board_config[$var] = $new[$var]; + if($var === 'xs_check_switches') + { + $update_time = true; + } + } + } + if($update_time) + { + $board_config['xs_template_time'] = time() + 10; // set time 10 seconds in future in case if some tpl file would be compiled right now with current settings + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '" . $board_config['xs_template_time'] . "' WHERE config_name = 'xs_template_time'"; + if( !$db->sql_query($sql) ) + { + xs_error(str_replace('{VAR}', 'xs_template_time', $lang['xs_config_sql_error']) . '

    ' . $lang['xs_config_back'], __LINE__, __FILE__); + } + } + $template->assign_block_vars('switch_updated', array()); + $template->load_config($template->root, false); +} + +// check ftp configuration +$xs_ftp_host = $board_config['xs_ftp_host']; +if(empty($xs_ftp_host) && !empty($HTTP_SERVER_VARS['HTTP_HOST'])) +{ + $str = $HTTP_SERVER_VARS['HTTP_HOST']; + $template->assign_vars(array( + 'HOST_GUESS' => str_replace(array('{HOST}', '{CLICK}'), array($str, 'document.config.xs_ftp_host.value=\''.$str.'\''), $lang['xs_ftp_host_guess']) + )); +} +$dir = getcwd(); +$xs_ftp_login = $board_config['xs_ftp_login']; +if(empty($xs_ftp_login)) +{ + if(substr($dir, 0, 6) === '/home/') + { + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, 0, $pos); + $template->assign_vars(array( + 'LOGIN_GUESS' => str_replace(array('{LOGIN}', '{CLICK}'), array($str, 'document.config.xs_ftp_login.value=\''.$str.'\''), $lang['xs_ftp_login_guess']) + )); + } + } +} +$xs_ftp_path = $board_config['xs_ftp_path']; +if(empty($xs_ftp_path)) +{ + if(substr($dir, 0, 6) === '/home/'); + $str = substr($dir, 6); + $pos = strpos($str, '/'); + if($pos) + { + $str = substr($str, $pos + 1); + $pos = strrpos($str, 'admin'); + if($pos) + { + $str = substr($str, 0, $pos-1); + $template->assign_vars(array( + 'PATH_GUESS' => str_replace(array('{PATH}', '{CLICK}'), array($str, 'document.config.xs_ftp_path.value=\''.$str.'\''), $lang['xs_ftp_path_guess']) + )); + } + } +} + +$template->assign_vars(array( + 'XS_USE_CACHE_0' => $board_config['xs_use_cache'] ? '' : ' checked="checked"', + 'XS_USE_CACHE_1' => $board_config['xs_use_cache'] ? ' checked="checked"' : '', + 'XS_AUTO_COMPILE_0' => $board_config['xs_auto_compile'] ? '' : ' checked="checked"', + 'XS_AUTO_COMPILE_1' => $board_config['xs_auto_compile'] ? ' checked="checked"' : '', + 'XS_AUTO_RECOMPILE_0' => $board_config['xs_auto_recompile'] ? '' : ' checked="checked"', + 'XS_AUTO_RECOMPILE_1' => $board_config['xs_auto_recompile'] ? ' checked="checked"' : '', + 'XS_PHP' => htmlspecialchars($board_config['xs_php']), + 'XS_DEF_TEMPLATE' => htmlspecialchars($board_config['xs_def_template']), + 'XS_CHECK_SWITCHES_0' => !$board_config['xs_check_switches'] ? ' checked="checked"' : '', // no check + 'XS_CHECK_SWITCHES_1' => $board_config['xs_check_switches'] == 1 ? ' checked="checked"' : '', // smart check + 'XS_CHECK_SWITCHES_2' => $board_config['xs_check_switches'] == 2 ? ' checked="checked"' : '', // simple check + 'XS_WARN_INCLUDES_0' => $board_config['xs_warn_includes'] ? '' : ' checked="checked"', + 'XS_WARN_INCLUDES_1' => $board_config['xs_warn_includes'] ? ' checked="checked"' : '', + 'XS_ADD_COMMENTS_0' => $board_config['xs_add_comments'] ? '' : ' checked="checked"', + 'XS_ADD_COMMENTS_1' => $board_config['xs_add_comments'] ? ' checked="checked"' : '', + 'XS_FTP_HOST' => defined('DEMO_MODE') ? '' : $xs_ftp_host, + 'XS_FTP_LOGIN' => defined('DEMO_MODE') ? '' : $xs_ftp_login, + 'XS_FTP_PATH' => defined('DEMO_MODE') ? '' : $xs_ftp_path, + 'FORM_ACTION' => append_sid('xs_config.' . $phpEx), + )); + +for($i=0; $iassign_block_vars('shownav', array( + 'NUM' => $i, + 'LABEL' => $lang['xs_config_shownav'][$i], + 'CHECKED' => (($board_config['xs_shownav'] & $num) > 0) ? 'checked="checked"' : '' + )); + } +} + +// test cache +$tpl_filename = $template->make_filename('_xs_test.tpl'); +$cache_filename = $template->make_filename_cache($tpl_filename); +$str = ''; +if(!xs_check_cache($cache_filename)) +{ + $template->assign_block_vars('switch_xs_warning', array()); +} +@unlink($cache_filename); +$debug_data = $str; +$template->assign_vars(array( + 'XS_DEBUG_HDR1' => sprintf($lang['xs_check_hdr'], '_xs_test.tpl'), + 'XS_DEBUG_FILENAME1' => $tpl_filename, + 'XS_DEBUG_FILENAME2' => $cache_filename, + 'XS_DEBUG_DATA' => $debug_data, + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'config.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_download.php b/phpBB2_old/admin/xs_download.php new file mode 100644 index 0000000..cdcb4d5 --- /dev/null +++ b/phpBB2_old/admin/xs_download.php @@ -0,0 +1,154 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_import_styles'] . '')); +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_download_styles'] . '')); + +// submit url +if(isset($HTTP_GET_VARS['url']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['url']); + $var = 'xs_downloads_' . $id; + $import_data = array( + 'host' => $HTTP_SERVER_VARS['HTTP_HOST'], + 'port' => $HTTP_SERVER_VARS['SERVER_PORT'], + 'url' => str_replace('xs_download.', 'xs_frameset.', $HTTP_SERVER_VARS['PHP_SELF']), + 'session' => $userdata['session_id'], + 'xs' => $template->xs_versiontxt, + 'style' => STYLE_HEADER_VERSION, + ); + $str = ''; + $message = $lang['xs_import_download_warning'] . '

    ' . $str . '

    ' . str_replace('{URL}', append_sid('xs_download.'.$phpEx), $lang['xs_download_back']); + xs_message($lang['Information'], $message); +} + + +if(isset($HTTP_GET_VARS['edit'])) +{ + $id = intval($HTTP_GET_VARS['edit']); + $template->assign_block_vars('edit', array( + 'ID' => $id, + 'TITLE' => $board_config['xs_downloads_title_'.$id], + 'URL' => $board_config['xs_downloads_'.$id] + )); +} + +if(isset($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_POST_VARS['edit']); + $update = array(); + if(!empty($HTTP_POST_VARS['edit_delete'])) + { + // delete link + $total = $board_config['xs_downloads_count']; + $update['xs_downloads_count'] = $total - 1; + for($i=$id; $i<($total-1); $i++) + { + $update['xs_downloads_'.$i] = $update['xs_downloads_'.($i+1)]; + $update['xs_downloads_title_'.$i] = $update['xs_downloads_title_'.($i+1)]; + } + $update['xs_downloads_'.($total-1)] = ''; + $update['xs_downloads_title_'.($total-1)] = ''; + } + else + { + $update['xs_downloads_'.$id] = stripslashes($HTTP_POST_VARS['edit_url']); + $update['xs_downloads_title_'.$id] = stripslashes($HTTP_POST_VARS['edit_title']); + } + foreach($update as $var => $value) + { + if(isset($board_config[$var])) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . xs_sql($value) . "' WHERE config_name='" . $var . "'"; + } + else + { + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . $var . "', '" . xs_sql($value) . "')"; + } + $db->sql_query($sql); + $board_config[$var] = $value; + } +} + +if(!empty($HTTP_POST_VARS['add_url']) && !defined('DEMO_MODE')) +{ + $id = $board_config['xs_downloads_count']; + $update = array(); + $update['xs_downloads_'.$id] = stripslashes($HTTP_POST_VARS['add_url']); + $update['xs_downloads_title_'.$id] = stripslashes($HTTP_POST_VARS['add_title']); + $update['xs_downloads_count'] = $board_config['xs_downloads_count'] + 1; + foreach($update as $var => $value) + { + if(isset($board_config[$var])) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . xs_sql($value) . "' WHERE config_name='" . $var . "'"; + } + else + { + $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . $var . "', '" . xs_sql($value) . "')"; + } + $db->sql_query($sql); + $board_config[$var] = $value; + } +} + +for($i=0; $i<$board_config['xs_downloads_count']; $i++) +{ + $row_class = $xs_row_class[$i % 2]; + $template->assign_block_vars('url', array( + 'ROW_CLASS' => $row_class, + 'NUM' => $i, + 'NUM1' => $i + 1, + 'URL' => htmlspecialchars($board_config['xs_downloads_'.$i]), + 'TITLE' => htmlspecialchars($board_config['xs_downloads_title_'.$i]), + 'U_DOWNLOAD' => append_sid('xs_download.'.$phpEx.'?url='.$i), + 'U_EDIT' => append_sid('xs_download.'.$phpEx.'?edit='.$i), + )); +} + +$template->assign_vars(array( + 'U_POST' => append_sid('xs_download.'.$phpEx) + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'downloads.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_edit.php b/phpBB2_old/admin/xs_edit.php new file mode 100644 index 0000000..17aba7d --- /dev/null +++ b/phpBB2_old/admin/xs_edit.php @@ -0,0 +1,507 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + + +// check filter +$filter = isset($HTTP_GET_VARS['filter']) ? stripslashes($HTTP_GET_VARS['filter']) : (isset($HTTP_POST_VARS['filter']) ? stripslashes($HTTP_POST_VARS['filter']) : ''); +if(isset($HTTP_POST_VARS['filter_update'])) +{ + $filter_data = array( + 'ext' => trim(stripslashes($HTTP_POST_VARS['filter_ext'])), + 'data' => trim(stripslashes($HTTP_POST_VARS['filter_data'])) + ); + $filter = serialize($filter_data); +} +else +{ + $filter_data = @unserialize($filter); + if(empty($filter_data['ext'])) + { + $filter_data['ext'] = ''; + } + if(empty($filter_data['data'])) + { + $filter_data['data'] = ''; + } +} +$filter_str = '?filter=' . urlencode($filter); + + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_templates'] . '')); + +$editable = array('.htm', '.html', '.tpl', '.css', '.txt', '.cfg', '.xml', '.php', '.htaccess'); + +// get current directory +$current_dir = isset($HTTP_GET_VARS['dir']) ? $HTTP_GET_VARS['dir'] : (isset($HTTP_POST_VARS['dir']) ? $HTTP_POST_VARS['dir'] : 'templates'); +$current_dir = str_replace(array("\\", ".."), array("/", ""), $current_dir); +if(defined('DEMO_MODE') && substr($current_dir, 0, 9) !== 'templates') +{ // limit access to "templates" in demo mode + $current_dir = 'templates'; +} +$dirs = explode('/', $current_dir); +for($i=0; $iassign_vars(array( + 'FILTER_EXT' => htmlspecialchars($filter_data['ext']), + 'FILTER_DATA' => htmlspecialchars($filter_data['data']), + 'FILTER_URL' => append_sid('xs_edit.'.$phpEx), + 'FILTER_DIR' => htmlspecialchars($current_dir), + 'S_FILTER' => '' + )); + + +/* +* show edit form +*/ +if(isset($HTTP_GET_VARS['edit']) && !empty($HTTP_GET_VARS['restore'])) +{ + $file = stripslashes($HTTP_GET_VARS['edit']); + $fullfile = $current_dir_root . $file; + $localfile = '../' . $fullfile; + $hash = md5($localfile); + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['restore']) . XS_BACKUP_EXT; + if(@file_exists($backup_name)) + { + // restore file + $HTTP_POST_VARS['edit'] = $HTTP_GET_VARS['edit']; + $HTTP_POST_VARS['content'] = addslashes(implode('', @file($backup_name))); + unset($HTTP_GET_VARS['edit']); + $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); + $return_url = $return_file . '

    ' . $return_dir; + } +} + + +/* +* save modified file +*/ +if(isset($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) +{ + $file = stripslashes($HTTP_POST_VARS['edit']); + $content = stripslashes($HTTP_POST_VARS['content']); + $fullfile = $current_dir_root . $file; + $localfile = '../' . $fullfile; + if(!empty($HTTP_POST_VARS['trim'])) + { + $content = trim($content); + } + if(!empty($HTTP_POST_FILES['upload']['tmp_name']) && @file_exists($HTTP_POST_FILES['upload']['tmp_name'])) + { + $content = @implode('', @file($HTTP_POST_FILES['upload']['tmp_name'])); + } + $params = array( + 'edit' => $file, + 'dir' => $current_dir, + 'content' => $content, + 'filter' => $filter, + ); + $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); + $return_url = $return_file . '

    ' . $return_dir; + // get ftp configuration + $write_local = false; + if(!get_ftp_config(append_sid('xs_edit.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_edit.'.$phpEx), $params, true); + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $local_filename = $localfile; + } + else + { + $local_filename = XS_TEMP_DIR . 'edit_' . time() . '.tmp'; + } + $f = @fopen($local_filename, 'wb'); + if(!$f) + { + xs_error($lang['xs_error_cannot_open'] . '

    ' . $return_url); + } + fwrite($f, $content); + fclose($f); + if($write_local) + { + xs_message($lang['Information'], $lang['xs_edit_file_saved'] . '

    ' . $return_url); + } + // generate ftp actions + $actions = array(); + // chdir to template directory + for($i=0; $i 'chdir', + 'dir' => $dirs[$i] + ); + } + $actions[] = array( + 'command' => 'upload', + 'local' => $local_filename, + 'remote' => $fullfile + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); + echo ""; + @unlink($local_filename); + if($res) + { + xs_message($lang['Information'], $lang['xs_edit_file_saved'] . '

    ' . $return_url); + } + xs_error($ftp_error . '

    ' . $return_url); +} + + +/* +* show edit form +*/ +if(isset($HTTP_GET_VARS['edit'])) +{ + $file = stripslashes($HTTP_GET_VARS['edit']); + $fullfile = $current_dir_root . $file; + $localfile = '../' . $fullfile; + $hash = md5($localfile); + if(!@file_exists($localfile)) + { + xs_error($lang['xs_edit_not_found'] . '

    ' . $return_url); + } + if(isset($HTTP_GET_VARS['download']) && !defined('DEMO_MODE')) + { + $content = implode('', @file($localfile)); + xs_download_file($file, $content); + xs_exit(); + } + if(isset($HTTP_GET_VARS['downloadbackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['downloadbackup']) . XS_BACKUP_EXT; + xs_download_file($file, implode('', @file($backup_name))); + xs_exit(); + } + $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); + $return_url = $return_file . '

    ' . $return_dir; + $template->assign_vars(array( + 'U_ACTION' => append_sid('xs_edit.'.$phpEx), + 'U_BROWSE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir)), + 'U_EDIT' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), + 'U_BACKUP' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dobackup=1&dir='.urlencode($current_dir).'&edit='.urlencode($file)), + 'U_DOWNLOAD' => append_sid('xs_edit.'.$phpEx.$filter_str.'&download=1&dir='.urlencode($current_dir).'&edit='.urlencode($file)), + 'CURRENT_DIR' => htmlspecialchars($current_dir_full), + 'DIR' => htmlspecialchars($current_dir), + 'FILE' => htmlspecialchars($file), + 'FULLFILE' => htmlspecialchars($fullfile), + 'CONTENT' => defined('DEMO_MODE') ? 'you cannot edit file in demo mode' : htmlspecialchars(implode('', @file($localfile))), + ) + ); + if($current_dir_full) + { + $template->assign_block_vars('nav_left',array('ITEM' => '» ' . htmlspecialchars($current_dir_full) . '')); + } + + // show tree + $arr = array(); + $template->assign_block_vars('tree', array( + 'ITEM' => 'phpBB', + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='), + 'SEPARATOR' => '', + )); + $back_dir = ''; + for($i=0; $i ($i + 1)) + { + $back_dir = $str; + } + $template->assign_block_vars('tree', array( + 'ITEM' => htmlspecialchars($dirs[$i]), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), + 'SEPARATOR' => '/', + )); + } + + // view backup + if(!empty($HTTP_GET_VARS['viewbackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['viewbackup']) . XS_BACKUP_EXT; + $template->assign_vars(array( + 'CONTENT' => implode('', @file($backup_name)) + ) + ); + } + + // save backup + if(isset($HTTP_GET_VARS['dobackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . time() . XS_BACKUP_EXT; + $str = @implode('', @file($localfile)); + $f = @fopen($backup_name, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $backup_name, $lang['xs_error_cannot_create_tmp']) . '

    ' . $return_url); + } + fwrite($f, $str); + fclose($f); + @chmod($backup_name, 0777); + } + + // delete backup + if(isset($HTTP_GET_VARS['delbackup']) && !defined('DEMO_MODE')) + { + $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['delbackup']) . XS_BACKUP_EXT; + @unlink($backup_name); + } + + // show backups + $backups = array(); + $res = opendir(XS_TEMP_DIR); + $match = XS_BACKUP_PREFIX . $hash . '.'; + $match_len = strlen($match); + while(($f = readdir($res)) !== false) + { + if(substr($f, 0, $match_len) === $match) + { + $str = substr($f, $match_len, strlen($f) - $match_len - strlen(XS_BACKUP_EXT)); + if(intval($str)) + { + $backups[] = intval($str); + } + } + } + closedir($res); + sort($backups); + for($i=0; $iassign_block_vars('backup', array( + 'TIME' => create_date($board_config['default_dateformat'], $backups[$i], $board_config['board_timezone']), + 'U_RESTORE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&restore='.$backups[$i]), + 'U_DELETE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&delbackup='.$backups[$i]), + 'U_DOWNLOAD' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&downloadbackup='.$backups[$i]), + 'U_VIEW' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&viewbackup='.$backups[$i]), + ) + ); + } + + // show template + $template->set_filenames(array('body' => XS_TPL_PATH . 'edit_file.tpl')); + $template->pparse('body'); + xs_exit(); +} + + +/* +* show file browser +*/ + +// show tree +$arr = array(); +$template->assign_block_vars('tree', array( + 'ITEM' => 'phpBB', + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='), + 'SEPARATOR' => '', + )); +$back_dir = ''; +for($i=0; $i ($i + 1)) + { + $back_dir = $str; + } + $template->assign_block_vars('tree', array( + 'ITEM' => htmlspecialchars($dirs[$i]), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), + 'SEPARATOR' => '/', + )); +} + +// get list of files/directories +$list_files = array(); // non-editable files +$list_files_editable = array(); // editable files +$list_dirs = array(); // directories +$res = @opendir('../' . $current_dir_full); +if(!$res) +{ + xs_error(str_replace('{DIR}', $current_dir_full, $lang['xs_export_no_open_dir']) . '

    ' . $return_url_root); +} +while(($file = readdir($res)) !== false) +{ + if($file !== '.' && $file !== '..') + { + $filename = '../' . ($current_dir_full ? $current_dir_full . '/' : '') . $file; + if(is_dir($filename)) + { + $list_dirs[] = $file; + } + else + { + $pos = strrpos($file, '.'); + if($pos !== false) + { + $ext = strtolower(substr($file, $pos)); + $ext1 = substr($ext, 1); + if((!$filter_data['ext'] && xs_in_array($ext, $editable)) || $ext1 === $filter_data['ext']) + { + // check filter + if($filter_data['data']) + { + $content = @implode('', @file($filename)); + if(strpos($content, $filter_data['data']) !== false) + { + $list_files_editable[] = $file; + } + } + else + { + $list_files_editable[] = $file; + } + } + else + { + $list_files[] = $file; + } + } + } + } +} +closedir($res); + +$list_dirs_count = count($list_dirs); +$list_files_count = count($list_files) + count($list_files_editable); + +if($current_dir || count($list_dirs)) +{ + $template->assign_block_vars('begin_dirs', array( + 'COUNT' => count($list_dirs), + 'L_COUNT' => str_replace('{COUNT}', count($list_dirs), $lang['xs_fileman_dircount']) + )); +} +else +{ + $template->assign_block_vars('begin_nodirs', array()); +} +if($current_dir) +{ + $template->assign_block_vars('begin_dirs.dir', array( + 'NAME' => '..', + 'FULLNAME' => htmlspecialchars($back_dir ? $back_dir . '/' : ''), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($back_dir)), + ) + ); +} + +// show subdirectories +sort($list_dirs); +for($i=0; $iassign_block_vars('begin_dirs.dir', array( + 'NAME' => htmlspecialchars($dir), + 'FULLNAME' => htmlspecialchars($current_dir_root . $dir), + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), + ) + ); +} + +// show editable files +if(count($list_files_editable)) +{ + $template->assign_block_vars('begin_files', array('COUNT' => count($list_files_editable))); +} +else +{ + $template->assign_block_vars('begin_nofiles', array('COUNT' => count($list_files_editable))); +} +sort($list_files_editable); +// get today start +$today = floor((time() + 3600 * $board_config['board_timezone']) / 86400) * 86400 - (3600 * $board_config['board_timezone']); +for($i=0; $iassign_block_vars('begin_files.file', array( + 'ROW_CLASS' => $row_class, + 'NAME' => htmlspecialchars($file), + 'FULLNAME' => htmlspecialchars($fullfile), + 'SIZE' => @filesize($localfile), + 'TIME' => $filetime, + 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)) + ) + ); + if($t < $today) + { + $template->assign_block_vars('begin_files.file.old', array()); + } + else + { + $template->assign_block_vars('begin_files.file.today', array()); + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'edit.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_edit_data.php b/phpBB2_old/admin/xs_edit_data.php new file mode 100644 index 0000000..df1eb1e --- /dev/null +++ b/phpBB2_old/admin/xs_edit_data.php @@ -0,0 +1,357 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_styles_data'] . '')); + +$lang['xs_edittpl_back_list'] = str_replace('{URL}', append_sid('xs_edit_data.'.$phpEx), $lang['xs_edittpl_back_list']); + +function xs_empty_name() +{ + global $db; + $sql = "SELECT * FROM " . THEMES_NAME_TABLE . " LIMIT 0, 1"; + if(!$result = $db->sql_query($sql)) + { + $data = array(); + } + $data = $db->sql_fetchrow($result); + if($data === false || !@count($data)) + { + $data = array( + 'themes_id' => 0, + 'tr_color1_name' => '', + 'tr_color2_name' => '', + 'tr_color3_name' => '', + 'tr_class1_name' => '', + 'tr_class2_name' => '', + 'tr_class3_name' => '', + 'th_color1_name' => '', + 'th_color2_name' => '', + 'th_color3_name' => '', + 'th_class1_name' => '', + 'th_class2_name' => '', + 'th_class3_name' => '', + 'td_color1_name' => '', + 'td_color2_name' => '', + 'td_color3_name' => '', + 'td_class1_name' => '', + 'td_class2_name' => '', + 'td_class3_name' => '', + 'fontface1_name' => '', + 'fontface2_name' => '', + 'fontface3_name' => '', + 'fontsize1_name' => '', + 'fontsize2_name' => '', + 'fontsize3_name' => '', + 'fontcolor1_name' => '', + 'fontcolor2_name' => '', + 'fontcolor3_name' => '', + 'span_class1_name' => '', + 'span_class2_name' => '', + 'span_class3_name' => '' + ); + + } + $arr = array(); + foreach($data as $var => $value) + { + if($var !== 'themes_id') + { + $arr[$var] = ''; + } + } + return $arr; +} + +function xs_get_vars($theme) +{ + $arr1 = array(); + $arr2 = array(); + $vars_100 = array('head_stylesheet', 'body_background'); + $vars_50 = array('fontface'); + $vars_30 = array('style_name'); + $vars_25 = array('tr_class', 'th_class', 'td_class', 'span_class'); + $vars_6 = array('body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color', 'th_color', 'td_color', 'fontcolor'); + $vars_5 = array('img_size_poll', 'img_size_privmsg'); + $vars_4 = array('fontsize', 'theme_public'); + foreach($theme as $var => $value) + { + if(!is_integer($var) && $var !== 'themes_id' && $var !== 'template_name') + { + // editable variable + $len = 0; + $sub = substr($var, 0, strlen($var) - 1); + if(xs_in_array($var, $vars_100) || xs_in_array($sub, $vars_100)) + { + $len = 100; + } + elseif(xs_in_array($var, $vars_50) || xs_in_array($sub, $vars_50)) + { + $len = 50; + } + elseif(xs_in_array($var, $vars_30) || xs_in_array($sub, $vars_30)) + { + $len = 30; + } + elseif(xs_in_array($var, $vars_25) || xs_in_array($sub, $vars_25)) + { + $len = 25; + } + elseif(xs_in_array($var, $vars_6) || xs_in_array($sub, $vars_6)) + { + $len = 6; + } + elseif(xs_in_array($var, $vars_5) || xs_in_array($sub, $vars_5)) + { + $len = 5; + } + elseif(xs_in_array($var, $vrs_4) || xs_in_array($sub, $vars_4)) + { + $len = 4; + } + elseif(strpos($var, 'class')) + { + $len = 25; + } + elseif(strpos($var, 'color')) + { + $len = 6; + } + if($len) + { + $item = array( + 'var' => $var, + 'len' => $len, + 'color' => $len == 6 ? true : false, + 'font' => $len == 25 ? true : false, + ); + if($var === 'style_name' || $var === 'head_stylesheet' || $var === 'body_background') + { + $arr1[$var] = $item; + } + else + { + $arr2[$var] = $item; + } + } + } + } + krsort($arr1); + ksort($arr2); + return array_merge($arr1, $arr2); +} + +// +// submit +// +if(!empty($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_POST_VARS['edit']); + $lang['xs_edittpl_back_edit'] = str_replace('{URL}', append_sid('xs_edit_data.'.$phpEx.'?edit='.$id), $lang['xs_edittpl_back_edit']); + $data_item = array(); + $data_item_update = array(); + $data_name = array(); + $data_name_insert_vars = array('themes_id'); + $data_name_insert_values = array($id); + $data_name_update = array(); + foreach($HTTP_POST_VARS as $var => $value) + { + if(substr($var, 0, 5) === 'edit_') + { + $var = substr($var, 5); + $value = stripslashes($value); + $data_item[$var] = $value; + $data_item_update[] = $var . "='" . xs_sql($value) . "'"; + } + elseif(substr($var, 0, 5) === 'name_') + { + $var = substr($var, 5).'_name'; + $value = stripslashes($value); + $data_name[$var] = $value; + $data_name_update[] = $var . "='" . xs_sql($value) . "'"; + $data_name_insert_vars[] = $var; + $data_name_insert_values[] = xs_sql($value); + } + } + // update item + $sql = "UPDATE " . THEMES_TABLE . " SET " . implode(',', $data_item_update) . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_edittpl_error_updating'] . '

    ' . $lang['xs_edittpl_back_edit'] . '

    ' . $lang['xs_edittpl_back_list'], __LINE__, __FILE__); + } + // check if there is name + $sql = "SELECT themes_id FROM " . THEMES_NAME_TABLE . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (" . implode(',', $data_name_insert_vars) . ") VALUES ('" . implode("', '", $data_name_insert_values) . "')"; + } + $item = $db->sql_fetchrow($result); + if(!is_array($item)) + { + $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (" . implode(',', $data_name_insert_vars) . ") VALUES ('" . implode("', '", $data_name_insert_values) . "')"; + } + else + { + $sql = "UPDATE " . THEMES_NAME_TABLE . " SET " . implode(',', $data_name_update) . " WHERE themes_id='{$id}'"; + } + $db->sql_query($sql); + xs_message($lang['Information'], $lang['xs_edittpl_style_updated'] . '

    ' . $lang['xs_edittpl_back_edit'] . '

    ' . $lang['xs_edittpl_back_list']); +} + +// +// edit style +// +if(!empty($HTTP_GET_VARS['edit'])) +{ + $id = intval($HTTP_GET_VARS['edit']); + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); + } + $item = $db->sql_fetchrow($result); + if(empty($item['themes_id'])) + { + xs_error($lang['xs_invalid_style_id'] . '

    ' . $lang['xs_edittpl_back_list']); + } + $sql = "SELECT * FROM " . THEMES_NAME_TABLE . " WHERE themes_id='{$id}'"; + if(!$result = $db->sql_query($sql)) + { + $item_name = array(); + } + $item_name = $db->sql_fetchrow($result); + if($item_name === false || !@count($item_name)) + { + $item_name = xs_empty_name(); + } + $vars = xs_get_vars($item); + // show variables + $template->assign_vars(array( + 'U_ACTION' => append_sid('xs_edit_data.'.$phpEx), + 'TPL' => htmlspecialchars($item['template-name']), + 'STYLE' => htmlspecialchars($item['style_name']), + 'ID' => $id + ) + ); + // all variables + $i = 0; + foreach($vars as $var => $value) + { + $row_class = $xs_row_class[$i % 2]; + $i++; + if(isset($lang['xs_data_'.$var])) + { + $text = $lang['xs_data_'.$var]; + } + else + { + $str = substr($var, 0, strlen($var) - 1); + if(isset($lang['xs_data_'.$str])) + { + $str1 = substr($var, strlen($var) - 1); + $text = sprintf($lang['xs_data_'.$str], $str1); + } + else + { + $text = sprintf($lang['xs_data_unknown'], $var); + } + } + $template->assign_block_vars('row', array( + 'ROW_CLASS' => $row_class, + 'VAR' => $var, + 'VALUE' => isset($item[$var]) ? htmlspecialchars($item[$var]) : '', + 'LEN' => $value['len'], + 'SIZE' => $value['len'] < 10 ? 10 : 30, + 'TEXT' => htmlspecialchars($text), + ) + ); + if($value['color']) + { + $template->assign_block_vars('row.color', array()); + } + if($value['font']) + { + $template->assign_block_vars('row.font', array()); + } + if(isset($item_name[$var.'_name'])) + { + $template->assign_block_vars('row.name', array( + 'DATA' => $item_name[$var.'_name'] + ) + ); + } + else + { + $template->assign_block_vars('row.noname', array()); + } + } + $template->set_filenames(array('body' => XS_TPL_PATH . 'edit_data.tpl')); + $template->pparse('body'); + xs_exit(); +} + + +// +// show list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY style_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'edit_data_list.tpl')); +for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => htmlspecialchars($item['template_name']), + 'STYLE' => htmlspecialchars($item['style_name']), + 'U_EDIT' => append_sid('xs_edit_data.'.$phpEx.'?edit='.$item['themes_id']) + ) + ); +} + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_export.php b/phpBB2_old/admin/xs_export.php new file mode 100644 index 0000000..75fc989 --- /dev/null +++ b/phpBB2_old/admin/xs_export.php @@ -0,0 +1,320 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_export_styles'] . '')); + +$lang['xs_export_back'] = str_replace('{URL}', append_sid('xs_export.'.$phpEx), $lang['xs_export_back']); + +// +// Check required functions +// +if(!@function_exists('gzcompress')) +{ + xs_error($lang['xs_import_nogzip']); +} + + +// +// Export page +// +$export = isset($HTTP_GET_VARS['export']) ? $HTTP_GET_VARS['export'] : ''; +$export = xs_tpl_name($export); +if(!empty($export) && @file_exists($phpbb_root_path . $template_dir . $export . '/theme_info.cfg')) +{ + // Get list of styles + $sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name = '$export' ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

    ' . $lang['xs_export_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

    ' . $lang['xs_export_back']); + } + $template->set_filenames(array('body' => XS_TPL_PATH . 'export2.tpl')); + $xs_send_method = isset($board_config['xs_export_data']) ? $board_config['xs_export_data'] : ''; + $xs_send = @unserialize($xs_send_method); + $xs_send_method = $xs_send['method'] == 'ftp' ? 'ftp' : ($xs_send['method'] == 'file' ? 'file' : 'save'); + $template->assign_vars(array( + 'FORM_ACTION' => append_sid('xs_export.'.$phpEx), + 'EXPORT_TEMPLATE' => htmlspecialchars($export), + 'STYLE_ID' => $theme_rowset[0]['themes_id'], + 'STYLE_NAME' => htmlspecialchars($theme_rowset[0]['style_name']), + 'TOTAL' => count($theme_rowset), + 'SEND_METHOD_'.strtoupper($xs_send_method) => ' checked="checked"', + 'SEND_DATA_DIR' => isset($xs_send['dir']) ? htmlspecialchars($xs_send['dir']) : '', + 'SEND_DATA_HOST' => isset($xs_send['host']) ? htmlspecialchars($xs_send['host']) : '', + 'SEND_DATA_LOGIN' => isset($xs_send['login']) ? htmlspecialchars($xs_send['login']) : '', + 'SEND_DATA_FTPDIR' => isset($xs_send['ftpdir']) ? htmlspecialchars($xs_send['ftpdir']) : '', + 'L_TITLE' => str_replace('{TPL}', $export, $lang['xs_export_style_title']), + )); + if(count($theme_rowset) == 1) + { + $template->assign_block_vars('switch_select_nostyle', array()); + } + else + { + $template->assign_block_vars('switch_select_style', array()); + for($i=0; $iassign_block_vars('switch_select_style.style', array( + 'NUM' => $i, + 'ID' => $theme_rowset[$i]['themes_id'], + 'NAME' => htmlspecialchars($theme_rowset[$i]['style_name']) + )); + } + } + $template->pparse('body'); + xs_exit(); +} + +// +// Export style +// +$export = isset($HTTP_POST_VARS['export']) ? $HTTP_POST_VARS['export'] : ''; +$export = xs_tpl_name($export); +if(!empty($export) && @file_exists($phpbb_root_path . $template_dir . $export . '/theme_info.cfg') && !defined('DEMO_MODE')) +{ + $total = intval($HTTP_POST_VARS['total']); + $comment = substr(stripslashes($HTTP_POST_VARS['export_comment']), 0, 255); + $list = array(); + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['export_style_'.$i])) + { + $list[] = intval($HTTP_POST_VARS['export_style_id_'.$i]); + } + } + if(!count($list)) + { + xs_error($lang['xs_export_noselect_themes'] . '

    ' . $lang['xs_export_back']); + } + // Export as... + $exportas = empty($HTTP_POST_VARS['export_template']) ? $export : $HTTP_POST_VARS['export_template']; + $exportas = xs_tpl_name($exportas); + // Generate theme_info.cfg + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE template_name = '$export' AND themes_id IN (" . implode(', ', $list) . ")"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . $lang['xs_export_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

    ' . $lang['xs_export_back']); + } + $theme_data = xs_generate_themeinfo($theme_rowset, $export, $exportas, $total); + + // prepare to pack + $pack_error = ''; + $pack_list = array(); + $pack_replace = array('./theme_info.cfg' => $theme_data); + + // pack style + for($i=0; $i
    ' . $lang['xs_export_back']); + } + if(!$data) + { + xs_error(str_replace('{TPL}', $export, $lang['xs_export_error2']) . '

    ' . $lang['xs_export_back']); + } + + // + // Got file. Sending it. + // + $send_method = isset($HTTP_POST_VARS['export_to']) ? $HTTP_POST_VARS['export_to'] : ''; + $export_filename = empty($HTTP_POST_VARS['export_filename']) ? $exportas . STYLE_EXTENSION : $HTTP_POST_VARS['export_filename']; + if($send_method === 'file') + { + // store on local server + $send_dir = isset($HTTP_POST_VARS['export_to_dir']) ? $HTTP_POST_VARS['export_to_dir'] : ''; + $send_dir = str_replace('\\', '/', stripslashes($send_dir)); + if(empty($send_dir)) + { + $send_dir = XS_TEMP_DIR; + } + if(substr($send_dir, strlen($send_dir) - 1) !== '/') + { + $send_dir .= '/'; + } + $filename = $send_dir . $export_filename; + $f = @fopen($filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $filename, $lang['xs_error_cannot_create_file']) . '

    ' . $lang['xs_export_back']); + } + @fwrite($f, $data); + @fclose($f); + set_export_method('file', array('dir' => $send_dir)); + xs_message($lang['Information'], str_replace('{FILE}', $filename, $lang['xs_export_saved']) . '

    ' . $lang['xs_export_back']); + } + elseif($send_method === 'ftp') + { + // upload via ftp + $ftp_host = $HTTP_POST_VARS['export_to_ftp_host']; + $ftp_login = $HTTP_POST_VARS['export_to_ftp_login']; + $ftp_pass = $HTTP_POST_VARS['export_to_ftp_pass']; + $ftp_dir = str_replace('\\', '/', $HTTP_POST_VARS['export_to_ftp_dir']); + if($ftp_dir && substr($ftp_dir, strlen($ftp_dir) - 1) !== '/') + { + $ftp_dir .= '/'; + } + // save as temporary file + $filename = XS_TEMP_DIR.'tmp_' . time() . '.tmp'; + $f = @fopen($filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $filename, $lang['xs_error_cannot_create_tmp']) . '

    ' . $lang['xs_export_back']); + } + @fwrite($f, $data); + @fclose($f); + // connect to ftp + $ftp = @ftp_connect($ftp_host); + if(!$ftp) + { + @unlink($filename); + xs_error($lang['xs_ftp_error_noconnect'] . '

    ' . $lang['xs_export_back']); + } + $res = @ftp_login($ftp, $ftp_login, $ftp_pass); + if(!$res) + { + @unlink($filename); + xs_error($lang['xs_ftp_error_login2'] . '

    ' . $lang['xs_export_back']); + } + if($ftp_dir) + { + @ftp_chdir($ftp, $ftp_dir); + } + $res = @ftp_put($ftp, $ftp_dir . $export_filename, $filename, FTP_BINARY); + @unlink($filename); + if(!$res) + { + xs_error($lang['xs_export_error_uploading'] . '

    ' . $lang['xs_export_back']); + } + set_export_method('ftp', array('host' => $ftp_host, 'login' => $ftp_login, 'ftpdir' => $ftp_dir)); + xs_message($lang['Information'], $lang['xs_export_uploaded'] . '

    ' . $lang['xs_export_back']); + } + // send file + xs_download_file($export_filename, $data, 'application/phpbbstyle'); + xs_exit(); +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'export.tpl')); + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} + +if($prev_id > 0) +{ + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_export_data.php b/phpBB2_old/admin/xs_export_data.php new file mode 100644 index 0000000..f888cf1 --- /dev/null +++ b/phpBB2_old/admin/xs_export_data.php @@ -0,0 +1,259 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_styles_data'] . '')); + +$lang['xs_export_data_back'] = str_replace('{URL}', append_sid('xs_export_data.'.$phpEx), $lang['xs_export_data_back']); + +// +// export style +// +if(isset($HTTP_GET_VARS['export'])) +{ + $export = str_replace(array('\\', '/'), array('',''), stripslashes($HTTP_GET_VARS['export'])); + // get list of themes for style + $sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name = '$export' ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_theme_data'] . '

    ' . $lang['xs_export_data_back']); + } + $theme_rowset = $db->sql_fetchrowset($result); + if(count($theme_rowset) == 0) + { + xs_error($lang['xs_no_themes'] . '

    ' . $lang['xs_export_data_back']); + } + if(count($theme_rowset) == 1) + { + $HTTP_POST_VARS['export'] = $HTTP_GET_VARS['export']; + $HTTP_POST_VARS['export_total'] = '1'; + $HTTP_POST_VARS['export_id_0'] = $theme_rowset[0]['themes_id']; + $HTTP_POST_VARS['export_check_0'] = 'checked'; + } + else + { + $template->set_filenames(array('body' => XS_TPL_PATH . 'export_data2.tpl')); + $template->assign_vars(array( + 'TOTAL' => count($theme_rowset), + 'EXPORT' => htmlspecialchars($export), + 'U_ACTION' => append_sid("xs_export_data.{$phpEx}") + ) + ); + for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'NUM' => $i, + 'ID' => $theme_rowset[$i]['themes_id'], + 'STYLE' => htmlspecialchars($theme_rowset[$i]['style_name']) + ) + ); + } + $template->pparse('body'); + xs_exit(); + } +} + +if(!empty($HTTP_POST_VARS['export']) && !defined('DEMO_MODE')) +{ + $export = xs_tpl_name($HTTP_POST_VARS['export']); + // get ftp configuration + $params = array('export' => $export); + $total = intval($HTTP_POST_VARS['export_total']); + $count = 0; + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['export_check_'.$i])) + { + $params['export_id_'.$count] = intval($HTTP_POST_VARS['export_id_'.$i]); + $params['export_check_'.$count] = 'checked'; + $count ++; + } + } + $params['export_total'] = $count; + if(!$count) + { + xs_error($lang['xs_export_noselect_themes'] . '

    ' . $lang['xs_export_data_back']); + } + $write_local = false; + if(!get_ftp_config(append_sid('xs_export_data.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_export_data.'.$phpEx), $params, true); + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $local_filename = '../templates/'. $export . '/theme_info.cfg'; + } + else + { + $local_filename = XS_TEMP_DIR . 'export_' . time() . '.tmp'; + } + // get all themes for style + $export_list = array(); + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['export_check_'.$i])) + { + $export_list[] = intval($HTTP_POST_VARS['export_id_'.$i]); + } + } + $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id IN (" . implode(', ', $export_list) . ") ORDER BY style_name ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'] . '

    ' . $lang['xs_export_data_back'], __LINE__, __FILE__); + } + $style_rowset = $db->sql_fetchrowset($result); + if(!count($style_rowset)) + { + xs_error($lang['xs_no_style_info'] . '

    ' . $lang['xs_export_data_back'], __LINE__, __FILE__); + } + $data = xs_generate_themeinfo($style_rowset, $export, $export, 0); + $f = @fopen($local_filename, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $local_filename, $lang['xs_error_cannot_create_file']) . '

    ' . $lang['xs_export_data_back']); + } + fwrite($f, $data); + fclose($f); + if($write_local) + { + xs_message($lang['Information'], $lang['xs_export_data_saved'] . '

    ' . $lang['xs_export_data_back']); + } + // generate ftp actions + $actions = array(); + // chdir to template directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => 'templates' + ); + $actions[] = array( + 'command' => 'chdir', + 'dir' => $export + ); + $actions[] = array( + 'command' => 'upload', + 'local' => $local_filename, + 'remote' => 'templates/' . $export . '/theme_info.cfg' + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); +/* echo ""; */ + @unlink($local_filename); + if($res) + { + xs_message($lang['Information'], $lang['xs_export_data_saved'] . '

    ' . $lang['xs_export_data_back']); + } + xs_error($ftp_error . '

    ' . $lang['xs_export_data_back']); +} + + + + +$template->set_filenames(array('body' => XS_TPL_PATH . 'export_data.tpl')); +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$prev_id = -1; +$prev_tpl = ''; +$style_names = array(); +$j = 0; +for($i=0; $i 0) + { + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export_data.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); + } + $prev_id = $item['themes_id']; + $prev_tpl = $item['template_name']; + $style_names = array(htmlspecialchars($item['style_name'])); + } +} + +if($prev_id > 0) +{ + $str = implode('
    ', $style_names); + $str2 = urlencode($prev_tpl); + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => $prev_tpl, + 'STYLES' => $str, + 'U_EXPORT' => "xs_export_data.{$phpEx}?export={$str2}&sid={$userdata['session_id']}", + ) + ); +} + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_frame_top.php b/phpBB2_old/admin/xs_frame_top.php new file mode 100644 index 0000000..a2d8c29 --- /dev/null +++ b/phpBB2_old/admin/xs_frame_top.php @@ -0,0 +1,63 @@ +set_filenames(array('body' => XS_TPL_PATH . 'frame_top.tpl')); + +$template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_index.'.$phpEx), + 'TEXT' => $lang['xs_menu_lc'] + )); +/* $template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_download.'.$phpEx), + 'TEXT' => $lang['xs_download_styles_lc'] + )); */ +$template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_import.'.$phpEx), + 'TEXT' => $lang['xs_import_styles_lc'] + )); +$template->assign_block_vars('left_nav', array( + 'URL' => append_sid('xs_install.'.$phpEx), + 'TEXT' => $lang['xs_install_styles_lc'] + )); +$template->assign_block_vars('left_nav', array( + 'URL' => 'http://www.phpbbstyles.com', + 'TEXT' => $lang['xs_support_forum_lc'] + )); + + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_frameset.php b/phpBB2_old/admin/xs_frameset.php new file mode 100644 index 0000000..2f20ba3 --- /dev/null +++ b/phpBB2_old/admin/xs_frameset.php @@ -0,0 +1,100 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +define('NO_XS_HEADER', true); +include_once('xs_include.' . $phpEx); + +$action = isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : ''; +$get_data = array(); +foreach($HTTP_GET_VARS as $var => $value) +{ + if($var !== 'action' && $var !== 'sid') + { + $get_data[] = $var . '=' . urlencode(stripslashes($value)); + } +} + +// check for style download command +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'web') +{ + $action = 'import'; + $get_data[] = 'get_remote=' . urlencode(stripslashes($HTTP_POST_VARS['source'])); + if(isset($HTTP_POST_VARS['return'])) + { + $get_data[] = 'return=' . urlencode(stripslashes($HTTP_POST_VARS['return'])); + } +} + +$get_data = count($get_data) ? $phpEx . '?' . implode('&', $get_data) : $phpEx; + +$content_url = array( + 'config' => append_sid('xs_config.'.$get_data), + 'install' => append_sid('xs_install.'.$get_data), + 'uninstall' => append_sid('xs_uninstall.'.$get_data), + 'default' => append_sid('xs_styles.'.$get_data), + 'cache' => append_sid('xs_cache.'.$get_data), + 'import' => append_sid('xs_import.'.$get_data), + 'export' => append_sid('xs_export.'.$get_data), + 'clone' => append_sid('xs_clone.'.$get_data), + 'download' => append_sid('xs_download.'.$get_data), + 'edittpl' => append_sid('xs_edit.'.$get_data), + 'editdb' => append_sid('xs_edit_data.'.$get_data), + 'exportdb' => append_sid('xs_export_data.'.$get_data), + 'updates' => append_sid('xs_update.'.$get_data), + 'portal' => append_sid('xs_portal.'.$get_data), + ); + +if(isset($content_url[$action])) +{ + $content = $content_url[$action]; +} +else +{ + $content = append_sid('xs_index.'.$get_data); +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'frameset.tpl')); +$template->assign_vars(array( + 'FRAME_TOP' => append_sid('xs_frame_top.'.$phpEx), + 'FRAME_MAIN' => $content, + )); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_import.php b/phpBB2_old/admin/xs_import.php new file mode 100644 index 0000000..b2e6216 --- /dev/null +++ b/phpBB2_old/admin/xs_import.php @@ -0,0 +1,391 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_import_styles'] . '')); + +$lang['xs_import_back'] = str_replace('{URL}', append_sid('xs_import.'.$phpEx), $lang['xs_import_back']); + +$return_url = isset($HTTP_POST_VARS['return']) ? stripslashes($HTTP_POST_VARS['return']) : (isset($HTTP_GET_VARS['return']) ? stripslashes($HTTP_GET_VARS['return']) : ''); +$return = $return_url ? '&return=' . urlencode($return_url) : ''; +if($return) +{ + $lang['xs_import_back'] = str_replace('{URL}', $return_url, $lang['xs_import_back_download']); + $HTTP_POST_VARS['return'] = $HTTP_GET_VARS['return'] = addslashes($return_url); +} + +// +// Check required functions +// +if(!@function_exists('gzcompress')) +{ + xs_error($lang['xs_import_nogzip']); +} + +$tpl_filename = $template->make_filename('_xs_test.tpl'); +$cache_filename = $template->make_filename_cache($tpl_filename); +$str = ''; +if(!xs_check_cache($cache_filename)) +{ + xs_error(str_replace(array('{URL1}', '{URL2}'), array(append_sid('xs_chmod.'.$phpEx), append_sid('xs_import.'.$phpEx)), $lang['xs_import_nowrite_cache'])); +} + +// +// include all functions +// +include_once('xs_include_import.'.$phpEx); + +// remove timeout +@set_time_limit(XS_MAX_TIMEOUT); + +// +// check if need to download style +// +if(!empty($HTTP_GET_VARS['get_remote'])) +{ + $HTTP_POST_VARS['action'] = 'web'; + $HTTP_POST_VARS['source'] = $HTTP_GET_VARS['get_remote']; +} + +// +// delete style +// +if(isset($HTTP_GET_VARS['del']) && !defined('DEMO_MODE')) +{ + $str = xs_tpl_name($HTTP_GET_VARS['del']); + @unlink(XS_TEMP_DIR.$str); +} + +// +// import style +// +if(isset($HTTP_GET_VARS['import']) || isset($HTTP_POST_VARS['import'])) +{ + $list_only = isset($HTTP_GET_VARS['list']) ? true : false; + $get_file = isset($HTTP_GET_VARS['get_file']) ? stripslashes($HTTP_GET_VARS['get_file']) : ''; + $filename = isset($HTTP_POST_VARS['import']) ? $HTTP_POST_VARS['import'] : $HTTP_GET_VARS['import']; + $filename = xs_tpl_name($filename); + $write_local = false; + if(!$list_only) + { + if(defined('DEMO_MODE')) + { + xs_error($lang['xs_permission_denied'] . '

    ' . $lang['xs_import_back']); + } + $params = array('import' => $filename); + $total = intval($HTTP_POST_VARS['total']); + $params['total'] = $total; + for($i=0; $i<$total; $i++) + { + $install = empty($HTTP_POST_VARS['import_install_'.$i]) ? 0 : 1; + $default = $install ? (empty($HTTP_POST_VARS['import_default_'.$i]) ? 0 : 1) : 0; + $params['import_install_'.$i] = $install; + $params['import_default_'.$i] = $default; + } + if($return_url) + { + $params['return'] = $return_url; + } + if(!get_ftp_config(append_sid('xs_import.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_import.'.$phpEx), $params, true); + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $write_local_dir = '../templates/'; + } + } + include('xs_include_import2.' . $phpEx); +} + +// +// Download from web +// +if(isset($HTTP_GET_VARS['get_web'])) +{ + $HTTP_POST_VARS['action'] = 'web'; + $HTTP_POST_VARS['source'] = $HTTP_GET_VARS['get_web']; +} +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'web' && !defined('DEMO_MODE')) +{ + $src = stripslashes($HTTP_POST_VARS['source']); + $dst = generate_style_name('web'); + $str = @implode('', @file($src)); + if(empty($str)) + { + xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload']) . '

    ' . $lang['xs_import_back']); + } + $header = xs_get_style_header('', substr($str, 0, 10240)); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

    ' . $lang['xs_import_back']); + } + if($header['filesize'] != strlen($str)) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

    ' . $lang['xs_import_back']); + } + $f = @fopen(XS_TEMP_DIR . $dst, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . '

    ' . $lang['xs_import_back']); + } + fwrite($f, $str); + fclose($f); + xs_message($lang['Information'], str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst) . $return), $lang['xs_import_uploaded2']) . '

    ' . $lang['xs_import_back']); +} + +// +// Copy from file +// +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'copy' && !defined('DEMO_MODE')) +{ + $src = stripslashes($HTTP_POST_VARS['source']); + $dst = generate_style_name('copy'); + $str = @implode('', @file($src)); + if(empty($str)) + { + xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload2']) . '

    ' . $lang['xs_import_back']); + } + if(substr($str, 0, strlen(STYLE_HEADER_START)) !== STYLE_HEADER_START) + { + xs_error($lang['xs_style_header_error_invalid2'] . '

    ' . $lang['xs_import_back']); + } + $header = xs_get_style_header('', substr($str, 0, 10240)); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

    ' . $lang['xs_import_back']); + } + if($header['filesize'] != strlen($str)) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

    ' . $lang['xs_import_back']); + } + $f = @fopen(XS_TEMP_DIR . $dst, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . $lang['xs_import_back']); + } + fwrite($f, $str); + fclose($f); + xs_message($lang['Information'], str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst)), $lang['xs_import_uploaded3']) . '

    ' . $lang['xs_import_back']); +} + + +// +// Upload +// +if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'upload' && !defined('DEMO_MODE')) +{ + if(empty($HTTP_POST_FILES['source']['tmp_name']) || !@file_exists($HTTP_POST_FILES['source']['tmp_name'])) + { + xs_error($lang['xs_import_nodownload3'] . '

    ' . $lang['xs_import_back']); + } + $src = $HTTP_POST_FILES['source']['tmp_name']; + $dst = generate_style_name('upload'); + $str = @implode('', @file($src)); + if(empty($str)) + { + xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload2']) . '

    ' . $lang['xs_import_back']); + } + if(substr($str, 0, strlen(STYLE_HEADER_START)) !== STYLE_HEADER_START) + { + xs_error($lang['xs_style_header_error_invalid2'] . '

    ' . $lang['xs_import_back']); + } + $header = xs_get_style_header('', substr($str, 0, 10240)); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

    ' . $lang['xs_import_back']); + } + if($header['filesize'] != strlen($str)) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

    ' . $lang['xs_import_back']); + } + $f = @fopen(XS_TEMP_DIR . $dst, 'wb'); + if(!$f) + { + xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . '

    ' . $lang['xs_import_back']); + } + fwrite($f, $str); + fclose($f); + xs_error(str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst)), $lang['xs_import_uploaded4']) . '

    ' . $lang['xs_import_back']); +} + + +// +// Show import page +// +if(!empty($HTTP_GET_VARS['importstyle'])) +{ + $file = xs_tpl_name($HTTP_GET_VARS['importstyle']); + $header = xs_get_style_header(XS_TEMP_DIR.$file); + if($header === false) + { + xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '

    ' . $lang['xs_import_back']); + } + if(@filesize(XS_TEMP_DIR.$file) != $header['filesize']) + { + xs_error($lang['xs_style_header_error_incomplete2'] . '

    ' . $lang['xs_import_back']); + } + $template->set_filenames(array('import' => XS_TPL_PATH . 'import2.tpl')); + $template->assign_vars(array( + 'FORM_ACTION' => append_sid('xs_import.'.$phpEx), + 'S_RETURN' => $return_url ? '' : '', + 'IMPORT_FILENAME' => htmlspecialchars($file), + 'STYLE_TEMPLATE' => htmlspecialchars($header['template']), + 'STYLE_FILENAME' => htmlspecialchars($file), + 'STYLE_COMMENT' => htmlspecialchars($header['comment']), + 'DATE' => create_date($board_config['default_dateformat'], $header['date'], $board_config['board_timezone']), + 'STYLE_SIZE' => $header['filesize'], + 'STYLE_NAME' => htmlspecialchars($header['styles'][0]), + 'TOTAL' => count($header['styles']), + 'L_XS_IMPORT_TPL' => str_replace('{TPL}', htmlspecialchars($header['template']), $lang['xs_import_tpl']) + )); + if(count($header['styles']) > 1) + { + $template->assign_block_vars('switch_select_style', array()); + for($i=0; $iassign_block_vars('switch_select_style.style', array( + 'NUM' => $i, + 'NAME' => htmlspecialchars($header['styles'][$i]), + )); + } + } + else + { + $template->assign_block_vars('switch_select_nostyle', array()); + } + $template->pparse('import'); + xs_exit(); +} + + +$template->set_filenames(array('body' => XS_TPL_PATH . 'import.tpl')); +// +// Get list of available styles +// +$dir = @opendir(XS_TEMP_DIR); +$files = array(); +if($dir) +{ + while(($file = readdir($dir)) !== false) + { + if(substr($file, strlen($file) - strlen(STYLE_EXTENSION)) === STYLE_EXTENSION) + { + $items = xs_get_style_header(XS_TEMP_DIR.$file); + if(is_array($items)) + { + $items['file'] = $file; + $items['file2'] = substr($file, 0, strlen($file) - strlen(STYLE_EXTENSION)); + if(@filesize(XS_TEMP_DIR.$file) != $items['filesize']) + { + $items['error'] = $lang['xs_import_incomplete_file']; + } + $files[] = $items; + } + else + { + $items = array( + 'filename' => XS_TEMP_DIR.$file, + 'filesize' => @filesize(XS_TEMP_DIR.$file), + 'date' => filemtime(XS_TEMP_DIR.$file), + 'file' => $file, + 'file2' => substr($file, 0, strlen($file) - strlen(STYLE_EXTENSION)), + 'error' => $lang['xs_import_invalid_file'], + 'template' => '-', + 'styles' => array('-'), + 'comment' => '', + 'offset' => 0 + ); + $files[] = $items; + } + } + } + closedir($dir); +} + +if(count($files)) +{ + + for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'FILE' => htmlspecialchars($item['file']), + 'FILE2' => htmlspecialchars($item['file2']), + 'FILENAME' => htmlspecialchars($item['filename']), + 'TEMPLATE' => htmlspecialchars($item['template']), + 'DATE' => create_date($board_config['default_dateformat'], $item['date'], $board_config['board_timezone']), + 'COMMENT' => htmlspecialchars($item['comment']), + 'U_DELETE' => append_sid('xs_import.' . $phpEx . '?del=' . urlencode($item['file'])), + 'U_IMPORT' => append_sid('xs_import.' . $phpEx . '?importstyle=' . urlencode($item['file'])), + 'U_DOWNLOAD' => append_sid('xs_download.' . $phpEx), + 'U_LIST' => append_sid('xs_import.' . $phpEx . '?list=1&import=' . urlencode($item['file'])), + )); + if(empty($item['error'])) + { + for($j=0; $jassign_block_vars('styles.list', array( + 'STYLE' => $item['styles'][$j] + )); + } + $template->assign_block_vars('styles.valid', array()); + } + else + { + $template->assign_block_vars('styles.error', array('ERROR' => htmlspecialchars($item['error']))); + } + } +} +else +{ + $template->assign_block_vars('nostyles', array()); +} +$template->assign_vars(array( + 'U_SCRIPT' => append_sid('xs_import.'.$phpEx), + )); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_include.php b/phpBB2_old/admin/xs_include.php new file mode 100644 index 0000000..e5a34d9 --- /dev/null +++ b/phpBB2_old/admin/xs_include.php @@ -0,0 +1,1210 @@ + 0) + { + $module[$module_name][$lang['xs_config_shownav'][$i]] = 'xs_frameset.'.$phpEx.'?action=' . $xs_shownav_action[$i]; + } + } +} + + +if(!empty($setmodules)) +{ + if(@function_exists('jr_admin_get_module_list')) + { + $tmp_mod = $module; + global $module; + $module = $tmp_mod; + xs_admin_override(true); + } + return; +} + +// +// Global defines for eXtreme Styles mod administration panel +// +define('STYLE_HEADER_START', 'xs_style_01'); +define('STYLE_HEADER_END', ''); +define('STYLE_HEADER_VERSION', '1'); +define('STYLE_EXTENSION', '.style'); +define('TAR_HEADER_PACK', 'a100A8A8A8A12A12A8A1A100A6A2A32A32A8A8a155a12'); +define('TAR_HEADER_UNPACK', 'a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor/a155prefix/a12extra'); +define('XS_MAX_ITEMS_PER_STYLE', 32); +define('XS_TEMP_DIR', '../cache/'); +define('XS_FTP_LOCAL', 'no_ftp'); +define('XS_UPDATE_STYLE', 1); +define('XS_UPDATE_MOD', 2); +define('XS_UPDATE_PHPBB', 3); +define('XS_TPL_PATH', '../../xs_mod/tpl/'); +define('XS_BACKUP_PREFIX', 'backup.'); +define('XS_BACKUP_EXT', '.backup'); +define('XS_MAX_TIMEOUT', 600); // maximum timeout for downloads/import/installation + +$xs_row_class = array('row1', 'row2'); + +$template_dir = 'templates/'; + +$template->assign_vars(array( + 'XS_PATH' => '../xs_mod/', + 'XS_UL' => '', + 'XS_UL2' => '
    ', + 'XS_LI' => '
    ', + 'XS_LI2' => '
    '; + foreach($list_data as $var => $value) + { + $str .= ''; + } + $str .= '
    ' . htmlspecialchars($value['filename']) . ''; + if($value['size'] > 0) + { + $ext = strtolower(substr($var, strlen($var) - 4)); + if(xs_in_array($ext, $text_types) || xs_in_array($ext, $img_types)) + { + $str .= '[' . $lang['xs_import_view_lc'] . '] '; + } + $str .= '[' . $lang['xs_import_download_lc'] . '] '; + } + $str .= str_replace('{NUM}', $value['size'], $lang['xs_import_file_size']) . '
    '; + $str .= ''; + xs_message($lang['Information'], $str); +} +$str = ''; +if(!$write_local) +{ + // + // Generate actions list + // + $actions = array(); + // chdir to template directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => 'templates' + ); + // create directory with template name + $actions[] = array( + 'command' => 'mkdir', + 'dir' => $header['template'], + 'ignore' => true + ); + // change directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => $header['template'] + ); + // create all directories and upload all files + $actions[] = array( + 'command' => 'exec', + 'list' => generate_actions_dirs() + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); +/* echo ""; */ + // remove temporary files + for($i=0; $i
    ' . $lang['xs_import_back']); + } +} + +// +// Check if we need to install style +// +$total = intval($HTTP_POST_VARS['total']); +$install = array(); +$default_name = ''; +for($i=0; $i<$total; $i++) +{ + $tmp = empty($HTTP_POST_VARS['import_install_'.$i]) ? 0 : 1; + if($tmp) + { + $set_default = empty($HTTP_POST_VARS['import_default_'.$i]) ? 0 : 1; + $tmp_name = $header['styles'][$i]; + if($tmp_name) + { + $install[] = $tmp_name; + if($set_default) + { + $default_name = $tmp_name; + } + } + } +} +if(!count($install)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_message($lang['Information'], $lang['xs_import_uploaded'] . '

    ' . $lang['xs_import_back']); +} +// +// Get list of installed styles +// +$tpl = $header['template']; +$sql = "SELECT themes_id, style_name FROM " . THEMES_TABLE . " WHERE template_name='" . xs_sql($tpl) . "'"; +if(!$result = $db->sql_query($sql)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall'] . '

    ' . $lang['xs_import_back']); +} +$style_rowset = $db->sql_fetchrowset($result); +// run theme_info.cfg +$data = xs_get_themeinfo($tpl); +if(!@count($data)) +{ + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall2'] . '

    ' . $lang['xs_import_back']); +} +// install styles +$default_id = 0; +for($i=0; $i
    ' . $lang['xs_import_back']); + } + if($installed) + { + // update + $sql = ''; + foreach($style_data as $var => $value) + { + if($sql) + { + $sql .= ', '; + } + $sql .= xs_sql($var) . " = '" . xs_sql($value) . "'"; + } + $sql = "UPDATE " . THEMES_TABLE . " SET " . $sql . " WHERE themes_id = '{$installed}'"; + } + else + { + // install + $sql = "SELECT MAX(themes_id) AS total FROM " . THEMES_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall4'] . '

    ' . $lang['xs_import_back']); + } + if ( !($row = $db->sql_fetchrow($result)) ) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall4'] . '

    ' . $lang['xs_import_back']); + } + $installed = $row['total'] + 1; + $style_data['themes_id'] = $installed; + $sql1 = $sql2 = ''; + foreach($style_data as $var => $value) + { + if($sql1) + { + $sql1 .= ', '; + $sql2 .= ', '; + } + $sql1 .= xs_sql($var); + $sql2 .= "'" . str_replace("\'", "''", $value) . "'"; + } + $sql = "INSERT INTO " . THEMES_TABLE . " (" . $sql1 . ") VALUES (" . $sql2 . ")"; + } + if ( !($result = $db->sql_query($sql)) ) + { + if(defined('XS_CLONING')) + { + @unlink($tmp_filename); + } + xs_error($lang['xs_import_notinstall5'] . '

    ' . $lang['xs_import_back']); + } + if($default_name === $style_name) + { + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='{$installed}' WHERE config_name='default_style'"; + $board_config['default_style'] = $installed; + $db->sql_query($sql); + } +} +if(defined('XS_CLONING')) +{ + @unlink($tmp_filename); +} +if(count($install) && defined('XS_MODS_CATEGORY_HIERARCHY')) +{ + cache_themes(); +} +xs_message($lang['Information'], $lang['xs_import_installed'] . '

    ' . $lang['xs_import_back']); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_index.php b/phpBB2_old/admin/xs_index.php new file mode 100644 index 0000000..f8d9fc0 --- /dev/null +++ b/phpBB2_old/admin/xs_index.php @@ -0,0 +1,67 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +if(isset($HTTP_GET_VARS['showwarning'])) +{ + $msg = str_replace('{URL}', append_sid('xs_index.'.$phpEx), $lang['xs_main_comment3']); + xs_message($lang['Information'], $msg); +} + +$template->assign_vars(array( + 'U_CONFIG' => append_sid('xs_config.'.$phpEx), + 'U_DEFAULT_STYLE' => append_sid('xs_styles.'.$phpEx), + 'U_MANAGE_CACHE' => append_sid('xs_cache.'.$phpEx), + 'U_IMPORT_STYLES' => append_sid('xs_import.'.$phpEx), + 'U_EXPORT_STYLES' => append_sid('xs_export.'.$phpEx), + 'U_CLONE_STYLE' => append_sid('xs_clone.'.$phpEx), + 'U_DOWNLOAD_STYLES' => append_sid('xs_download.'.$phpEx), + 'U_INSTALL_STYLES' => append_sid('xs_install.'.$phpEx), + 'U_UNINSTALL_STYLES' => append_sid('xs_uninstall.'.$phpEx), + 'U_EDIT_STYLES' => append_sid('xs_edit.'.$phpEx), + 'U_EDIT_STYLES_DATA' => append_sid('xs_edit_data.'.$phpEx), + 'U_EXPORT_DATA' => append_sid('xs_export_data.'.$phpEx), + 'U_UPDATES' => append_sid('xs_update.'.$phpEx), + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'index.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_install.php b/phpBB2_old/admin/xs_install.php new file mode 100644 index 0000000..b0fee40 --- /dev/null +++ b/phpBB2_old/admin/xs_install.php @@ -0,0 +1,167 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_install_styles'] . '')); + +$lang['xs_install_back'] = str_replace('{URL}', append_sid('xs_install.'.$phpEx), $lang['xs_install_back']); +$lang['xs_goto_default'] = str_replace('{URL}', append_sid('xs_styles.'.$phpEx), $lang['xs_goto_default']); + +// remove timeout. useful for forum with 100+ styles +@set_time_limit(XS_MAX_TIMEOUT); + +// install style +if(!empty($HTTP_GET_VARS['style']) && !defined('DEMO_MODE')) +{ + $style = stripslashes($HTTP_GET_VARS['style']); + $num = intval($HTTP_GET_VARS['num']); + $res = xs_install_style($style, $num); + if($res) + { + if(defined('XS_MODS_CATEGORY_HIERARCHY')) + { + cache_themes(); + } + xs_message($lang['Information'], $lang['xs_install_installed'] . '

    ' . $lang['xs_install_back'] . '

    ' . $lang['xs_goto_default']); + } + xs_error($lang['xs_install_error'] . '

    ' . $lang['xs_install_back']); +} + +// install styles +if(!empty($HTTP_POST_VARS['total']) && !defined('DEMO_MODE')) +{ + $tpl = array(); + $num = array(); + $total = intval($HTTP_POST_VARS['total']); + for($i=0; $i<$total; $i++) + { + if(!empty($HTTP_POST_VARS['install_'.$i])) + { + $tpl[] = stripslashes($HTTP_POST_VARS['install_'.$i.'_style']); + $num[] = intval($HTTP_POST_VARS['install_'.$i.'_num']); + } + } + if(count($tpl)) + { + for($i=0; $i
    ' . $lang['xs_install_back'] . '

    ' . $lang['xs_goto_default']); + } +} + + +// get all installed styles +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +// find all styles to install +$res = @opendir('../templates/'); +$styles = array(); +while(($file = readdir($res)) !== false) +{ + if($file !== '.' && $file !== '..' && @file_exists('../templates/'.$file.'/theme_info.cfg') && @file_exists('../templates/'.$file.'/'.$file.'.cfg')) + { + $arr = xs_get_themeinfo($file); + for($i=0; $i
    ' . $lang['xs_goto_default']); +} + +ksort($styles); + +$j = 0; +foreach($styles as $var => $value) +{ + $row_class = $xs_row_class[$j % 2]; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'STYLE' => htmlspecialchars($value['template_name']), + 'THEME' => htmlspecialchars($value['style_name']), + 'U_INSTALL' => append_sid('xs_install.'.$phpEx.'?style='.urlencode($value['template_name']).'&num='.$value['num']), + 'CB_NAME' => 'install_'.$j, + 'NUM' => $value['num'], + ) + ); + $j++; +} + +$template->assign_vars(array( + 'U_INSTALL' => append_sid('xs_install.'.$phpEx), + 'TOTAL' => count($styles) + )); + +$template->set_filenames(array('body' => XS_TPL_PATH . 'install.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_main.cfg b/phpBB2_old/admin/xs_main.cfg new file mode 100644 index 0000000..7b0bfb1 --- /dev/null +++ b/phpBB2_old/admin/xs_main.cfg @@ -0,0 +1,36 @@ +xs_versiontxt; +$update['eXtreme Styles']['update_item'] = 'xs'; + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_styles.php b/phpBB2_old/admin/xs_styles.php new file mode 100644 index 0000000..daa01c0 --- /dev/null +++ b/phpBB2_old/admin/xs_styles.php @@ -0,0 +1,264 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_default_style'] . '')); + +// +// set new default style +// +if(!empty($HTTP_GET_VARS['setdefault']) && !defined('DEMO_MODE')) +{ + $board_config['default_style'] = intval($HTTP_GET_VARS['setdefault']); + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . $board_config['default_style'] . "' WHERE config_name='default_style'"; + if(defined('XS_MODS_ADMIN_TEMPLATES')) + { + $sql = str_replace(' WHERE config_name', ', theme_public=\'1\' WHERE config_name', $sql); + } + $db->sql_query($sql); +} + +// +// change "override" variable +// +if(isset($HTTP_GET_VARS['setoverride']) && !defined('DEMO_MODE')) +{ + $board_config['override_user_style'] = intval($HTTP_GET_VARS['setoverride']); + $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . $board_config['override_user_style'] . "' WHERE config_name='override_user_style'"; + $db->sql_query($sql); +} + +// +// move all users to some style +// +if(!empty($HTTP_GET_VARS['moveusers']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['moveusers']); + $sql = "UPDATE " . USERS_TABLE . " SET user_style='" . $id . "' WHERE user_id > 0"; + $db->sql_query($sql); +} + +// +// move all users from some style +// +if(!empty($HTTP_GET_VARS['moveaway']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['moveaway']); + $id2 = intval($HTTP_GET_VARS['movestyle']); + if($id2) + { + $sql = "UPDATE " . USERS_TABLE . " SET user_style='" . $id2 . "' WHERE user_style = " . $id; + } + else + { + $sql = "UPDATE " . USERS_TABLE . " SET user_style = NULL WHERE user_style = " . $id; + } + $db->sql_query($sql); +} + +// +// set admin-only style (Admin Templates mod) +// +if(!empty($HTTP_GET_VARS['setadmin']) && !defined('DEMO_MODE')) +{ + $id = intval($HTTP_GET_VARS['setadmin']); + $setadmin = empty($HTTP_GET_VARS['admin']) ? 0 : 1; + $sql = "UPDATE " . THEMES_TABLE . " SET theme_public='{$setadmin}' WHERE themes_id='{$id}'"; + $db->sql_query($sql); +} + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name'; +if(defined('XS_MODS_ADMIN_TEMPLATES')) +{ + $sql = str_replace(', style_name', ', style_name, theme_public', $sql); +} +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$style_override = $board_config['override_user_style']; +$style_default = $board_config['default_style']; +$num_users = 0; +$style_ids = array(); + +for($i=0; $iassign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'STYLE' => $style_rowset[$i]['style_name'], + 'TEMPLATE' => $style_rowset[$i]['template_name'], + 'ID' => $id, + 'TOTAL' => $total, + 'U_TOTAL' => append_sid('xs_styles.' . $phpEx . '?list=' . $id), + 'U_DEFAULT' => append_sid('xs_styles.' . $phpEx . '?setdefault=' . $id), + 'U_OVERRIDE' => append_sid('xs_styles.' . $phpEx . '?setoverride=' . ($style_override ? '0' : '1')), + 'U_SWITCHALL' => append_sid('xs_styles.' . $phpEx . '?moveusers=' . $id), + ) + ); + if($total > 0) + { + $template->assign_block_vars('styles.users', array()); + } + if($id == $style_default) + { + $template->assign_block_vars('styles.default', array()); + if($style_override) + { + $template->assign_block_vars('styles.default.override', array()); + } + else + { + $template->assign_block_vars('styles.default.nooverride', array()); + } + } + else + { + $template->assign_block_vars('styles.nodefault', array()); + if(defined('XS_MODS_ADMIN_TEMPLATES')) + { + if($style_rowset[$i]['theme_public']) + { + $template->assign_block_vars('styles.nodefault.admin_only', array( + 'U_CHANGE' => append_sid('xs_styles.'.$phpEx.'?setadmin='.$id.'&admin=0') + )); + } + else + { + $template->assign_block_vars('styles.nodefault.public', array( + 'U_CHANGE' => append_sid('xs_styles.'.$phpEx.'?setadmin='.$id.'&admin=1') + )); + } + } + } + if($total) + { + $template->assign_block_vars('styles.total', array()); + } + else + { + $template->assign_block_vars('styles.none', array()); + } +} + +// get number of users using default style +$sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE . ' WHERE user_style = NULL'; +$result = $db->sql_query($sql); +if($result) +{ + $total = $db->sql_fetchrow($result); + $num_default = $total['total']; + $num_users += $num_default; +} + +// get number of users +$sql = 'SELECT count(user_id) as total FROM ' . USERS_TABLE; +$result = $db->sql_query($sql); +if(!$result) +{ + $total_users = 0; +} +else +{ + $total = $db->sql_fetchrow($result); + $total_users = $total['total']; +} + +$template->assign_vars(array( + 'U_SCRIPT' => 'xs_styles.' . $phpEx, + 'NUM_DEFAULT' => $num_default + ) +); + +if($total_users > $num_users) +{ + // fix problem + $sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = NULL WHERE user_style NOT IN (' . implode(', ', $style_ids) . ')'; + $db->sql_query($sql); +} + +// +// get list of users +// +if(isset($HTTP_GET_VARS['list'])) +{ + $id = intval($HTTP_GET_VARS['list']); + $template->assign_block_vars('list_users', array()); + $sql = "SELECT user_id, username FROM " . USERS_TABLE . " WHERE user_style='{$id}' ORDER BY username ASC"; + if(!$result = $db->sql_query($sql)) + { + xs_error('Could not get users list!', __LINE__, __FILE__); + } + $rowset = $db->sql_fetchrowset($result); + for($i=0; $iassign_block_vars('list_users.user', array( + 'NUM' => $i + 1, + 'ID' => $rowset[$i]['user_id'], + 'NAME' => htmlspecialchars($rowset[$i]['username']), + ) + ); + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'styles.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_uninstall.php b/phpBB2_old/admin/xs_uninstall.php new file mode 100644 index 0000000..8e37a16 --- /dev/null +++ b/phpBB2_old/admin/xs_uninstall.php @@ -0,0 +1,231 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_uninstall_styles'] . '')); + +$lang['xs_uninstall_back'] = str_replace('{URL}', append_sid('xs_uninstall.'.$phpEx), $lang['xs_uninstall_back']); +$lang['xs_goto_default'] = str_replace('{URL}', append_sid('xs_styles.'.$phpEx), $lang['xs_goto_default']); + +// +// uninstall style +// +if(isset($HTTP_GET_VARS['remove']) && !defined('DEMO_MODE')) +{ + $remove_id = intval($HTTP_GET_VARS['remove']); + if($board_config['default_style'] == $remove_id) + { + xs_error(str_replace('{URL}', append_sid('xs_styles.'.$phpEx), $lang['xs_uninstall_default']) . '

    ' . $lang['xs_uninstall_back']); + } + $sql = "SELECT themes_id, template_name, style_name FROM " . THEMES_TABLE . " WHERE themes_id='{$remove_id}'"; + if(!$result = $db->sql_query($sql)) + { + xs_error($lang['xs_no_style_info'] . '

    ' . $lang['xs_uninstall_back'], __LINE__, __FILE__); + } + $row = $db->sql_fetchrow($result); + if(empty($row['themes_id'])) + { + xs_error($lang['xs_no_style_info'] . '

    ' . $lang['xs_uninstall_back'], __LINE__, __FILE__); + } + $sql = "UPDATE " . USERS_TABLE . " SET user_style=NULL WHERE user_style='{$remove_id}'"; + $db->sql_query($sql); + $sql = "DELETE FROM " . THEMES_TABLE . " WHERE themes_id='{$remove_id}'"; + $db->sql_query($sql); + $template->assign_block_vars('removed', array()); + // remove files + if(!empty($HTTP_GET_VARS['dir'])) + { + $HTTP_POST_VARS['remove'] = addslashes($row['template_name']); + } +} + +function remove_all($dir) +{ + $res = opendir($dir); + if(!$res) + { + return false; + } + while(($file = readdir($res)) !== false) + { + if($file !== '.' && $file !== '..') + { + $str = $dir . '/' . $file; + if(is_dir($str)) + { + remove_all($str); + @rmdir($str); + } + else + { + @unlink($str); + } + } + } + closedir($res); +} + +// +// remove files +// +if(isset($HTTP_POST_VARS['remove']) && !defined('DEMO_MODE')) +{ + $remove = stripslashes($HTTP_POST_VARS['remove']); + $params = array('remove' => $remove); + if(!get_ftp_config(append_sid('xs_uninstall.'.$phpEx), $params, true)) + { + xs_exit(); + } + xs_ftp_connect(append_sid('xs_uninstall.'.$phpEx), $params, true); + $write_local = false; + if($ftp === XS_FTP_LOCAL) + { + $write_local = true; + $write_local_dir = '../templates/'; + } + if(!$write_local) + { + // + // Generate actions list + // + $actions = array(); + // chdir to templates directory + $actions[] = array( + 'command' => 'chdir', + 'dir' => 'templates' + ); + // chdir to template + $actions[] = array( + 'command' => 'chdir', + 'dir' => $remove + ); + // remove all files + $actions[] = array( + 'command' => 'removeall', + 'ignore' => true + ); + $actions[] = array( + 'command' => 'cdup' + ); + $actions[] = array( + 'command' => 'rmdir', + 'dir' => $remove + ); + $ftp_log = array(); + $ftp_error = ''; + $res = ftp_myexec($actions); +/* echo ""; */ + } + else + { + remove_all('../templates/'.$remove); + @rmdir('../templates/'.$remove); + } + $template->assign_block_vars('removed', array()); +} + + + +// +// get list of installed styles +// +$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name, style_name'; +if(!$result = $db->sql_query($sql)) +{ + xs_error($lang['xs_no_style_info'], __LINE__, __FILE__); +} +$style_rowset = $db->sql_fetchrowset($result); + +$tpl = array(); +for($i=0; $i $styles) +{ + $row_class = $xs_row_class[$j % 2]; + $j++; + $template->assign_block_vars('styles', array( + 'ROW_CLASS' => $row_class, + 'TPL' => htmlspecialchars($tpl), + 'ROWS' => count($styles), + ) + ); + if(count($styles) > 1) + { + for($i=0; $iassign_block_vars('styles.item', array( + 'ID' => $styles[$i]['themes_id'], + 'THEME' => htmlspecialchars($styles[$i]['style_name']), + 'U_DELETE' => append_sid('xs_uninstall.'.$phpEx.'?remove='.$styles[$i]['themes_id']), + ) + ); + $template->assign_block_vars('styles.item.nodelete', array()); + } + } + else + { + $i = 0; + $template->assign_block_vars('styles.item', array( + 'ID' => $styles[$i]['themes_id'], + 'THEME' => htmlspecialchars($styles[$i]['style_name']), + 'U_DELETE' => append_sid('xs_uninstall.'.$phpEx.'?remove='.$styles[$i]['themes_id']), + ) + ); + $template->assign_block_vars('styles.item.delete', array( + 'U_DELETE' => append_sid('xs_uninstall.'.$phpEx.'?dir=1&remove='.$styles[$i]['themes_id']), + ) + ); + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'uninstall.tpl')); +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/admin/xs_update.php b/phpBB2_old/admin/xs_update.php new file mode 100644 index 0000000..4ea350d --- /dev/null +++ b/phpBB2_old/admin/xs_update.php @@ -0,0 +1,320 @@ +xs_version) || $template->xs_version !== 5) +{ + message_die(GENERAL_ERROR, 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); +} + +define('IN_XS', true); +include_once('xs_include.' . $phpEx); + +$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_check_for_updates'] . '')); + +$updates = array(); + +function include_update($filename) +{ + $update = array(); + @include($filename); + global $updates; + $updates = array_merge($updates, $update); +} + +if($dir = @opendir($phpbb_root_path. 'templates/')) +{ + while($sub_dir = @readdir($dir)) + if(($sub_dir !== '.') && ($sub_dir !== '..') && ($sub_dir !== 'CVS')) + { + $file = $phpbb_root_path . 'templates/' . $sub_dir . '/xs.cfg'; + if(@file_exists($file)) + { + include_update($file); + } + } + closedir($dir); +} + +// check for xs files in acp. mask: xs_*.cfg +if($dir = @opendir('.')) +{ + while($file = @readdir($dir)) + if(strlen($file) > 6 && substr($file, 0, 3) === 'xs_' && substr($file, strlen($file) - 4) === '.cfg') + { + include_update($file); + } + closedir($dir); +} + + +// nothing to update +if(!count($updates)) +{ + xs_error($lang['xs_update_nothing']); +} + +// show list of available updates +if(!isset($HTTP_GET_VARS['doupdate'])) +{ + $template->set_filenames(array('body' => XS_TPL_PATH . 'update.tpl')); + $template->assign_vars(array( + 'UPDATE_URL' => append_sid('xs_update.'.$phpEx.'?doupdate=1'), + 'L_XS_UPDATE_TOTAL1' => str_replace('{NUM}', count($updates), $lang['xs_update_total1']), + ) + ); + $counter = 0; + @reset($updates); + foreach($updates as $var => $item) + { + $counter ++; + $type = isset($lang['xs_update_types'][$item['update_type']]) ? $item['update_type'] : 0; + $row_class = $xs_row_class[$counter % 2]; + $template->assign_block_vars('row', + array( + 'ROW_CLASS' => $row_class, + 'NUM' => $counter, + 'VAR' => 'item_'.$counter.'_', + 'ITEM' => htmlspecialchars($var), + 'NAME' => htmlspecialchars($item['update_name']), + 'TYPE' => $lang['xs_update_types'][$type], + 'URL' => htmlspecialchars($item['update_url']), + 'VERSION' => htmlspecialchars($item['update_version']) + ) + ); + $template->assign_block_vars('row.'.(empty($item['update_url']) ? 'nourl' : 'url'), array()); + } + $template->pparse('body'); + xs_exit(); +} + +// check updates. + +// getting list of items to update +@reset($updates); +$urls = array(); +$items = array(); +$i=0; +foreach($updates as $var1 => $item) +{ + $i++; + $var = 'item_'.$i.'_'; + if(!empty($HTTP_POST_VARS[$var.'item']) && !empty($HTTP_POST_VARS[$var.'checked']) && $HTTP_POST_VARS[$var.'checked']) + { + $item = $HTTP_POST_VARS[$var.'item']; + if(!empty($updates[$item]['update_url'])) + { + $items[] = $var1; + $found = false; + $url = $updates[$item]['update_url']; + for($j=0; $j'; + $end_text = ''; + $begin_pos = -1; + $end_pos = -1; + // getting begin and end tags for it + for($k=0; ($k= 0) + { + // getting all data for this item in array + for($k=$begin_pos+1; $k<$end_pos; $k++) + { + $arr2 = explode(' ', $arr[$k], 2); + if(count($arr2) == 2) + { + $data[trim($arr2[0])] = trim($arr2[1]); + } + } + } + else + { + $data['error'] = $lang['xs_update_error_noitem']; + } + $updates[$items[$j]]['data'] = $data; + } + } + } +} + +$template->set_filenames(array('body' => XS_TPL_PATH . 'update2.tpl')); + +@reset($updates); +$count_total = 0; +$count_error = 0; +$count_update = 0; +foreach($updates as $var => $item) +{ + if(isset($item['data']) && is_array($item['data'])) + { + $count_total++; + $type = isset($lang['xs_update_types'][$item['update_type']]) ? $item['update_type'] : 0; + $ver1 = htmlspecialchars($item['update_version']); + $row_class = $xs_row_class[$count_total % 2]; + $template->assign_block_vars('row', + array( + 'ROW_CLASS' => $row_class, + 'ITEM' => htmlspecialchars($item['update_name']), + 'TYPE' => $lang['xs_update_types'][$type], + 'VERSION' => $ver1, + ) + ); + if(!empty($item['data']['version'])) + { + $ver2 = htmlspecialchars($item['data']['version']); + $info = isset($item['data']['info']) ? $item['data']['info'] : ''; + if($ver2 !== $ver1 && (!empty($item['data']['update']) || !empty($item['data']['autoupdate']))) + { + $count_update++; + $u_import = (isset($item['data']['style']) && substr($item['data']['style'], 0, 7) === 'http://') ? append_sid('xs_import.'.$phpEx.'?get_web=' . urlencode($item['data']['style'])) : ''; + $template->assign_block_vars('row.update', + array( + 'NUM' => $count_total, + 'VERSION' => $ver2, + 'UPDATE' => isset($item['data']['update']) ? htmlspecialchars($item['data']['update']) : '', + 'U_IMPORT' => $u_import, + 'INFO' => htmlspecialchars($info), + ) + ); + $template->assign_block_vars('row.update.' . (empty($item['data']['update']) ? 'noupdate' : 'updated'), array()); + $template->assign_block_vars('row.update.' . (empty($item['data']['info']) ? 'noinfo' : 'info'), array()); + $template->assign_block_vars('row.update.' . (empty($u_import) ? 'noimport' : 'import'), array()); + } + else + { + $template->assign_block_vars('row.noupdate', + array( + 'VERSION' => $ver2, + 'MESSAGE' => $lang['xs_update_noupdate'], + 'INFO' => empty($info) ? '' : htmlspecialchars($info), + ) + ); + $template->assign_block_vars('row.noupdate.' . (empty($item['data']['info']) ? 'noinfo' : 'info'), array()); + } + } + else + { + if(empty($item['data']['error'])) + { + $item['data']['error'] = $lang['xs_update_error_noitem']; + } + $template->assign_block_vars('row.error', array('ERROR' => htmlspecialchars($item['data']['error']))); + $count_error++; + } + } +} + +$template->assign_vars( + array( + 'COUNT_TOTAL' => str_replace('{NUM}', $count_total, $lang['xs_update_total1']), + 'COUNT_ERROR' => str_replace('{NUM}', $count_error, $lang['xs_update_total2']), + 'COUNT_UPDATE' => str_replace('{NUM}', $count_update, $lang['xs_update_total3']) + ) +); + +$template->pparse('body'); +xs_exit(); + +?> \ No newline at end of file diff --git a/phpBB2_old/cache/.htaccess b/phpBB2_old/cache/.htaccess new file mode 100644 index 0000000..c391816 --- /dev/null +++ b/phpBB2_old/cache/.htaccess @@ -0,0 +1,4 @@ + +Order Allow,Deny +Deny from All + \ No newline at end of file diff --git a/phpBB2_old/cache/index.htm b/phpBB2_old/cache/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/cache/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/common.php b/phpBB2_old/common.php new file mode 100644 index 0000000..da786f2 --- /dev/null +++ b/phpBB2_old/common.php @@ -0,0 +1,235 @@ + NULL, 'HTTP_POST_VARS' => NULL, 'HTTP_COOKIE_VARS' => NULL, 'HTTP_SERVER_VARS' => NULL, 'HTTP_ENV_VARS' => NULL, 'HTTP_POST_FILES' => NULL); + + // Loop through each input array + @reset($test); + while (list($input,) = @each($test)) + { + while (list($var,) = @each($$input)) + { + // Validate the variable to be unset + if (!isset($test[$var]) && $var != 'test' && $var != 'input') + { + unset($$var); + } + } + } +} +else if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on') +{ + // PHP4+ path + + // Not only will array_merge give a warning if a parameter + // is not an array, it will actually fail. So we check if + // HTTP_SESSION_VARS has been initialised. + if (!isset($HTTP_SESSION_VARS)) + { + $HTTP_SESSION_VARS = array(); + } + + // Merge all into one extremely huge array; unset + // this later + $input = array_merge($HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES); + + unset($input['input']); + + while (list($var,) = @each($input)) + { + unset($$var); + } + + unset($input); +} + +// +// addslashes to vars if magic_quotes_gpc is off +// this is a security precaution to prevent someone +// trying to break out of a SQL statement. +// +if( !get_magic_quotes_gpc() ) +{ + if( is_array($HTTP_GET_VARS) ) + { + while( list($k, $v) = each($HTTP_GET_VARS) ) + { + if( is_array($HTTP_GET_VARS[$k]) ) + { + while( list($k2, $v2) = each($HTTP_GET_VARS[$k]) ) + { + $HTTP_GET_VARS[$k][$k2] = addslashes($v2); + } + @reset($HTTP_GET_VARS[$k]); + } + else + { + $HTTP_GET_VARS[$k] = addslashes($v); + } + } + @reset($HTTP_GET_VARS); + } + + if( is_array($HTTP_POST_VARS) ) + { + while( list($k, $v) = each($HTTP_POST_VARS) ) + { + if( is_array($HTTP_POST_VARS[$k]) ) + { + while( list($k2, $v2) = each($HTTP_POST_VARS[$k]) ) + { + $HTTP_POST_VARS[$k][$k2] = addslashes($v2); + } + @reset($HTTP_POST_VARS[$k]); + } + else + { + $HTTP_POST_VARS[$k] = addslashes($v); + } + } + @reset($HTTP_POST_VARS); + } + + if( is_array($HTTP_COOKIE_VARS) ) + { + while( list($k, $v) = each($HTTP_COOKIE_VARS) ) + { + if( is_array($HTTP_COOKIE_VARS[$k]) ) + { + while( list($k2, $v2) = each($HTTP_COOKIE_VARS[$k]) ) + { + $HTTP_COOKIE_VARS[$k][$k2] = addslashes($v2); + } + @reset($HTTP_COOKIE_VARS[$k]); + } + else + { + $HTTP_COOKIE_VARS[$k] = addslashes($v); + } + } + @reset($HTTP_COOKIE_VARS); + } +} + +// +// Define some basic configuration arrays this also prevents +// malicious rewriting of language and otherarray values via +// URI params +// +$board_config = array(); +$userdata = array(); +$theme = array(); +$images = array(); +$lang = array(); +$nav_links = array(); +$gen_simple_header = FALSE; + +include($phpbb_root_path . 'config.'.$phpEx); + +if( !defined("PHPBB_INSTALLED") ) +{ + header("Location: install/install.$phpEx"); + exit; +} + +include($phpbb_root_path . 'includes/constants.'.$phpEx); +include($phpbb_root_path . 'includes/template.'.$phpEx); +include($phpbb_root_path . 'includes/sessions.'.$phpEx); +include($phpbb_root_path . 'includes/auth.'.$phpEx); +include($phpbb_root_path . 'includes/functions.'.$phpEx); +include($phpbb_root_path . 'includes/db.'.$phpEx); + +// +// Obtain and encode users IP +// +// I'm removing HTTP_X_FORWARDED_FOR ... this may well cause other problems such as +// private range IP's appearing instead of the guilty routable IP, tough, don't +// even bother complaining ... go scream and shout at the idiots out there who feel +// "clever" is doing harm rather than good ... karma is a great thing ... :) +// +$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR ); +$user_ip = encode_ip($client_ip); + +// +// Setup forum wide options, if this fails +// then we output a CRITICAL_ERROR since +// basic forum information is not available +// +$sql = "SELECT * + FROM " . CONFIG_TABLE; +if( !($result = $db->sql_query($sql)) ) +{ + message_die(CRITICAL_ERROR, "Could not query config information", "", __LINE__, __FILE__, $sql); +} + +while ( $row = $db->sql_fetchrow($result) ) +{ + $board_config[$row['config_name']] = $row['config_value']; +} + +if (file_exists('install') || file_exists('contrib')) +{ + message_die(GENERAL_MESSAGE, 'Please ensure both the install/ and contrib/ directories are deleted'); +} + +// +// Show 'Board is disabled' message if needed. +// +if( $board_config['board_disable'] && !defined("IN_ADMIN") && !defined("IN_LOGIN") ) +{ + message_die(GENERAL_MESSAGE, 'Board_disable', 'Information'); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/config.php b/phpBB2_old/config.php new file mode 100644 index 0000000..02f3c25 --- /dev/null +++ b/phpBB2_old/config.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/phpBB2_old/db/db2.php b/phpBB2_old/db/db2.php new file mode 100644 index 0000000..1ab5284 --- /dev/null +++ b/phpBB2_old/db/db2.php @@ -0,0 +1,421 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->dbname = $database; + + $this->server = $sqlserver; + + if($this->persistency) + { + $this->db_connect_id = odbc_pconnect($this->server, "", ""); + } + else + { + $this->db_connect_id = odbc_connect($this->server, "", ""); + } + + if($this->db_connect_id) + { + @odbc_autocommit($this->db_connect_id, off); + + return $this->db_connect_id; + } + else + { + return false; + } + } + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if($this->query_result) + { + @odbc_free_result($this->query_result); + } + $result = @odbc_close($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + + + // + // Query method + // + function sql_query($query = "", $transaction = FALSE) + { + // + // Remove any pre-existing queries + // + unset($this->query_result); + unset($this->row); + if($query != "") + { + $this->num_queries++; + + if(!eregi("^INSERT ",$query)) + { + if(eregi("LIMIT", $query)) + { + preg_match("/^(.*)LIMIT ([0-9]+)[, ]*([0-9]+)*/s", $query, $limits); + + $query = $limits[1]; + if($limits[3]) + { + $row_offset = $limits[2]; + $num_rows = $limits[3]; + } + else + { + $row_offset = 0; + $num_rows = $limits[2]; + } + + $query .= " FETCH FIRST ".($row_offset+$num_rows)." ROWS ONLY OPTIMIZE FOR ".($row_offset+$num_rows)." ROWS"; + + $this->query_result = odbc_exec($this->db_connect_id, $query); + + $query_limit_offset = $row_offset; + $this->result_numrows[$this->query_result] = $num_rows; + } + else + { + $this->query_result = odbc_exec($this->db_connect_id, $query); + + $row_offset = 0; + $this->result_numrows[$this->query_result] = 5E6; + } + + $result_id = $this->query_result; + if($this->query_result && eregi("^SELECT", $query)) + { + + for($i = 1; $i < odbc_num_fields($result_id)+1; $i++) + { + $this->result_field_names[$result_id][] = odbc_field_name($result_id, $i); + } + + $i = $row_offset + 1; + $k = 0; + while(odbc_fetch_row($result_id, $i) && $k < $this->result_numrows[$result_id]) + { + + for($j = 1; $j < count($this->result_field_names[$result_id])+1; $j++) + { + $this->result_rowset[$result_id][$k][$this->result_field_names[$result_id][$j-1]] = odbc_result($result_id, $j); + } + $i++; + $k++; + } + + $this->result_numrows[$result_id] = $k; + $this->row_index[$result_id] = 0; + } + else + { + $this->result_numrows[$result_id] = @odbc_num_rows($result_id); + $this->row_index[$result_id] = 0; + } + } + else + { + if(eregi("^(INSERT|UPDATE) ", $query)) + { + $query = preg_replace("/\\\'/s", "''", $query); + } + + $this->query_result = odbc_exec($this->db_connect_id, $query); + + if($this->query_result) + { + $sql_id = "VALUES(IDENTITY_VAL_LOCAL())"; + + $id_result = odbc_exec($this->db_connect_id, $sql_id); + if($id_result) + { + $row_result = odbc_fetch_row($id_result); + if($row_result) + { + $this->next_id[$this->query_result] = odbc_result($id_result, 1); + } + } + } + + odbc_commit($this->db_connect_id); + + $this->query_limit_offset[$this->query_result] = 0; + $this->result_numrows[$this->query_result] = 0; + } + + return $this->query_result; + } + else + { + return false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + return $this->result_numrows[$query_id]; + } + else + { + return false; + } + } + function sql_affectedrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + return $this->result_numrows[$query_id]; + } + else + { + return false; + } + } + function sql_numfields($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = count($this->result_field_names[$query_id]); + return $result; + } + else + { + return false; + } + } + function sql_fieldname($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = $this->result_field_names[$query_id][$offset]; + return $result; + } + else + { + return false; + } + } + function sql_fieldtype($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @odbc_field_type($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fetchrow($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($this->row_index[$query_id] < $this->result_numrows[$query_id]) + { + $result = $this->result_rowset[$query_id][$this->row_index[$query_id]]; + $this->row_index[$query_id]++; + return $result; + } + else + { + return false; + } + } + else + { + return false; + } + } + function sql_fetchrowset($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $this->row_index[$query_id] = $this->result_numrows[$query_id]; + return $this->result_rowset[$query_id]; + } + else + { + return false; + } + } + function sql_fetchfield($field, $row = -1, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($row < $this->result_numrows[$query_id]) + { + if($row == -1) + { + $getrow = $this->row_index[$query_id]-1; + } + else + { + $getrow = $row; + } + + return $this->result_rowset[$query_id][$getrow][$this->result_field_names[$query_id][$field]]; + + } + else + { + return false; + } + } + else + { + return false; + } + } + function sql_rowseek($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $this->row_index[$query_id] = 0; + return true; + } + else + { + return false; + } + } + function sql_nextid($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + return $this->next_id[$query_id]; + } + else + { + return false; + } + } + function sql_freeresult($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @odbc_free_result($query_id); + return $result; + } + else + { + return false; + } + } + function sql_error($query_id = 0) + { +// $result['code'] = @odbc_error($this->db_connect_id); +// $result['message'] = @odbc_errormsg($this->db_connect_id); + + return ""; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2_old/db/index.htm b/phpBB2_old/db/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/db/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/db/msaccess.php b/phpBB2_old/db/msaccess.php new file mode 100644 index 0000000..733fa3c --- /dev/null +++ b/phpBB2_old/db/msaccess.php @@ -0,0 +1,389 @@ +persistency = $persistency; + $this->server = $sqlserver; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->dbname = $database; + + $this->db_connect_id = ($this->persistency) ? odbc_pconnect($this->server, $this->user, $this->password) : odbc_connect($this->server, $this->user, $this->password); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; + } + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if( $this->in_transaction ) + { + @odbc_commit($this->db_connect_id); + } + + if( count($this->result_rowset) ) + { + unset($this->result_rowset); + unset($this->field_names); + unset($this->field_types); + unset($this->num_rows); + unset($this->current_row); + } + + return @odbc_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Query method + // + function sql_query($query = "", $transaction = FALSE) + { + if( $query != "" ) + { + $this->num_queries++; + + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + if( !odbc_autocommit($this->db_connect_id, false) ) + { + return false; + } + $this->in_transaction = TRUE; + } + + $query = str_replace("LOWER(", "LCASE(", $query); + + if( preg_match("/^SELECT(.*?)(LIMIT ([0-9]+)[, ]*([0-9]+)*)?$/s", $query, $limits) ) + { + $query = $limits[1]; + + if( !empty($limits[2]) ) + { + $row_offset = ( $limits[4] ) ? $limits[3] : ""; + $num_rows = ( $limits[4] ) ? $limits[4] : $limits[3]; + + $query = "TOP " . ( $row_offset + $num_rows ) . $query; + } + + $this->result = odbc_exec($this->db_connect_id, "SELECT $query"); + + if( $this->result ) + { + if( empty($this->field_names[$this->result]) ) + { + for($i = 1; $i < odbc_num_fields($this->result) + 1; $i++) + { + $this->field_names[$this->result][] = odbc_field_name($this->result, $i); + $this->field_types[$this->result][] = odbc_field_type($this->result, $i); + } + } + + $this->current_row[$this->result] = 0; + $this->result_rowset[$this->result] = array(); + + $row_outer = ( isset($row_offset) ) ? $row_offset + 1 : 1; + $row_outer_max = ( isset($num_rows) ) ? $row_offset + $num_rows + 1 : 1E9; + $row_inner = 0; + + while( odbc_fetch_row($this->result, $row_outer) && $row_outer < $row_outer_max ) + { + for($j = 0; $j < count($this->field_names[$this->result]); $j++) + { + $this->result_rowset[$this->result][$row_inner][$this->field_names[$this->result][$j]] = stripslashes(odbc_result($this->result, $j + 1)); + } + + $row_outer++; + $row_inner++; + } + + $this->num_rows[$this->result] = count($this->result_rowset[$this->result]); + + odbc_free_result($this->result); + } + + } + else if( eregi("^INSERT ", $query) ) + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $result_id = odbc_exec($this->db_connect_id, "SELECT @@IDENTITY"); + if( $result_id ) + { + if( odbc_fetch_row($result_id) ) + { + $this->next_id[$this->db_connect_id] = odbc_result($result_id, 1); + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + } + } + else + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + + if( !$this->result ) + { + if( $this->in_transaction ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + $this->in_transaction = FALSE; + } + + return false; + } + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !@odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + return $this->result; + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !@odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->num_rows[$query_id] : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? count($this->field_names[$query_id]) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_names[$query_id][$offset] : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_types[$query_id][$offset] : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] && $this->current_row[$query_id] < $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id][$this->current_row[$query_id]++] : false; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id] : false; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $row = -1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + if( $row < $this->num_rows[$query_id] ) + { + $getrow = ($row == -1) ? $this->current_row[$query_id] - 1 : $row; + + return $this->result_rowset[$query_id][$getrow][$this->field_names[$query_id][$field]]; + } + else + { + return false; + } + } + else + { + return false; + } + } + + function sql_rowseek($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + $this->current_row[$query_id] = $offset - 1; + return true; + } + else + { + return false; + } + } + + function sql_nextid() + { + return ( $this->next_id[$this->db_connect_id] ) ? $this->next_id[$this->db_connect_id] : false; + } + + function sql_affectedrows() + { + return ( $this->affected_rows[$this->db_connect_id] ) ? $this->affected_rows[$this->db_connect_id] : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + unset($this->num_rows[$query_id]); + unset($this->current_row[$query_id]); + unset($this->result_rowset[$query_id]); + unset($this->field_names[$query_id]); + unset($this->field_types[$query_id]); + + return true; + } + + function sql_error() + { + $error['code'] = "";//odbc_error($this->db_connect_id); + $error['message'] = "Error";//odbc_errormsg($this->db_connect_id); + + return $error; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2_old/db/mssql-odbc.php b/phpBB2_old/db/mssql-odbc.php new file mode 100644 index 0000000..93abe0a --- /dev/null +++ b/phpBB2_old/db/mssql-odbc.php @@ -0,0 +1,387 @@ +persistency = $persistency; + $this->server = $sqlserver; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->dbname = $database; + + $this->db_connect_id = ($this->persistency) ? odbc_pconnect($this->server, $this->user, $this->password) : odbc_connect($this->server, $this->user, $this->password); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; + } + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if( $this->in_transaction ) + { + @odbc_commit($this->db_connect_id); + } + + if( count($this->result_rowset) ) + { + unset($this->result_rowset); + unset($this->field_names); + unset($this->field_types); + unset($this->num_rows); + unset($this->current_row); + } + + return @odbc_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Query method + // + function sql_query($query = "", $transaction = FALSE) + { + if( $query != "" ) + { + $this->num_queries++; + + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + if( !odbc_autocommit($this->db_connect_id, false) ) + { + return false; + } + $this->in_transaction = TRUE; + } + + if( preg_match("/^SELECT(.*?)(LIMIT ([0-9]+)[, ]*([0-9]+)*)?$/s", $query, $limits) ) + { + $query = $limits[1]; + + if( !empty($limits[2]) ) + { + $row_offset = ( $limits[4] ) ? $limits[3] : ""; + $num_rows = ( $limits[4] ) ? $limits[4] : $limits[3]; + + $query = "TOP " . ( $row_offset + $num_rows ) . $query; + } + + $this->result = odbc_exec($this->db_connect_id, "SELECT $query"); + + if( $this->result ) + { + if( empty($this->field_names[$this->result]) ) + { + for($i = 1; $i < odbc_num_fields($this->result) + 1; $i++) + { + $this->field_names[$this->result][] = odbc_field_name($this->result, $i); + $this->field_types[$this->result][] = odbc_field_type($this->result, $i); + } + } + + $this->current_row[$this->result] = 0; + $this->result_rowset[$this->result] = array(); + + $row_outer = ( isset($row_offset) ) ? $row_offset + 1 : 1; + $row_outer_max = ( isset($num_rows) ) ? $row_offset + $num_rows + 1 : 1E9; + $row_inner = 0; + + while( odbc_fetch_row($this->result, $row_outer) && $row_outer < $row_outer_max ) + { + for($j = 0; $j < count($this->field_names[$this->result]); $j++) + { + $this->result_rowset[$this->result][$row_inner][$this->field_names[$this->result][$j]] = stripslashes(odbc_result($this->result, $j + 1)); + } + + $row_outer++; + $row_inner++; + } + + $this->num_rows[$this->result] = count($this->result_rowset[$this->result]); + } + + } + else if( eregi("^INSERT ", $query) ) + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $result_id = odbc_exec($this->db_connect_id, "SELECT @@IDENTITY"); + if( $result_id ) + { + if( odbc_fetch_row($result_id) ) + { + $this->next_id[$this->db_connect_id] = odbc_result($result_id, 1); + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + } + } + else + { + $this->result = odbc_exec($this->db_connect_id, $query); + + if( $this->result ) + { + $this->affected_rows[$this->db_connect_id] = odbc_num_rows($this->result); + } + } + + if( !$this->result ) + { + if( $this->in_transaction ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + $this->in_transaction = FALSE; + } + + return false; + } + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + odbc_free_result($this->result); + + return $this->result; + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !@odbc_commit($this->db_connect_id) ) + { + odbc_rollback($this->db_connect_id); + odbc_autocommit($this->db_connect_id, true); + return false; + } + odbc_autocommit($this->db_connect_id, true); + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->num_rows[$query_id] : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? count($this->field_names[$query_id]) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_names[$query_id][$offset] : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? $this->field_types[$query_id][$offset] : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] && $this->current_row[$query_id] < $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id][$this->current_row[$query_id]++] : false; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( $this->num_rows[$query_id] ) ? $this->result_rowset[$query_id] : false; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $row = -1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + if( $row < $this->num_rows[$query_id] ) + { + $getrow = ( $row == -1 ) ? $this->current_row[$query_id] - 1 : $row; + + return $this->result_rowset[$query_id][$getrow][$this->field_names[$query_id][$field]]; + + } + else + { + return false; + } + } + else + { + return false; + } + } + + function sql_rowseek($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + $this->current_row[$query_id] = $offset - 1; + return true; + } + else + { + return false; + } + } + + function sql_nextid() + { + return ( $this->next_id[$this->db_connect_id] ) ? $this->next_id[$this->db_connect_id] : false; + } + + function sql_affectedrows() + { + return ( $this->affected_rows[$this->db_connect_id] ) ? $this->affected_rows[$this->db_connect_id] : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + unset($this->num_rows[$query_id]); + unset($this->current_row[$query_id]); + unset($this->result_rowset[$query_id]); + unset($this->field_names[$query_id]); + unset($this->field_types[$query_id]); + + return true; + } + + function sql_error() + { + $error['code'] = odbc_error($this->db_connect_id); + $error['message'] = odbc_errormsg($this->db_connect_id); + + return $error; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2_old/db/mssql.php b/phpBB2_old/db/mssql.php new file mode 100644 index 0000000..b77e287 --- /dev/null +++ b/phpBB2_old/db/mssql.php @@ -0,0 +1,418 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + $this->db_connect_id = ( $this->persistency ) ? @mssql_pconnect($this->server, $this->user, $this->password) : @mssql_connect($this->server, $this->user, $this->password); + + if( $this->db_connect_id && $this->dbname != "" ) + { + if( !mssql_select_db($this->dbname, $this->db_connect_id) ) + { + mssql_close($this->db_connect_id); + return false; + } + } + + return $this->db_connect_id; + } + + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + // + // Commit any remaining transactions + // + if( $this->in_transaction ) + { + @mssql_query("COMMIT", $this->db_connect_id); + } + + return @mssql_close($this->db_connect_id); + } + else + { + return false; + } + } + + + // + // Query method + // + function sql_query($query = '', $transaction = FALSE) + { + // + // Remove any pre-existing queries + // + unset($this->result); + unset($this->row); + + if ( $query != '' ) + { + $this->num_queries++; + + if ( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + if ( !@mssql_query('BEGIN TRANSACTION', $this->db_connect_id) ) + { + return false; + } + $this->in_transaction = TRUE; + } + + // + // Does query contain any LIMIT code? If so pull out relevant start and num_results + // This isn't terribly easy with MSSQL, whatever you do will potentially impact + // performance compared to an 'in-built' limit + // + // Another issue is the 'lack' of a returned true value when a query is valid but has + // no result set (as with all the other DB interfaces). It seems though that it's + // 'fair' to say that if a query returns a false result (ie. no resource id) then the + // SQL was valid but had no result set. If the query returns nothing but the rowcount + // returns something then there's a problem. This may well be a false assumption though + // ... needs checking under Windows itself. + // + if( preg_match('#^SELECT(.*?)(LIMIT ([0-9]+)[, ]*([0-9]+)*)?$#s', $query, $limits) ) + { + $query = $limits[1]; + + if( !empty($limits[2]) ) + { + $row_offset = ( $limits[4] ) ? $limits[3] : ""; + $num_rows = ( $limits[4] ) ? $limits[4] : $limits[3]; + + $query = 'TOP ' . ( $row_offset + $num_rows ) . $query; + } + + $this->result = @mssql_query("SELECT $query", $this->db_connect_id); + + if( $this->result ) + { + $this->limit_offset[$this->result] = ( !empty($row_offset) ) ? $row_offset : 0; + + if( $row_offset > 0 ) + { + @mssql_data_seek($this->result, $row_offset); + } + } + } + else if( preg_match('#^INSERT #i', $query) ) + { + if( @mssql_query($query, $this->db_connect_id) ) + { + $this->result = time() + microtime(); + + $result_id = @mssql_query('SELECT @@IDENTITY AS id, @@ROWCOUNT as affected', $this->db_connect_id); + if( $result_id ) + { + if( $row = @mssql_fetch_array($result_id) ) + { + $this->next_id[$this->db_connect_id] = $row['id']; + $this->affected_rows[$this->db_connect_id] = $row['affected']; + } + } + } + } + else + { + if( @mssql_query($query, $this->db_connect_id) ) + { + $this->result = time() + microtime(); + + $result_id = @mssql_query('SELECT @@ROWCOUNT as affected', $this->db_connect_id); + if( $result_id ) + { + if( $row = @mssql_fetch_array($result_id) ) + { + $this->affected_rows[$this->db_connect_id] = $row['affected']; + } + } + } + } + + if( !$this->result ) + { + if( $this->in_transaction ) + { + @mssql_query('ROLLBACK', $this->db_connect_id); + $this->in_transaction = FALSE; + } + + return false; + } + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if( !@mssql_query('COMMIT', $this->db_connect_id) ) + { + @mssql_query("ROLLBACK", $this->db_connect_id); + return false; + } + } + + return $this->result; + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if( !@mssql_query('COMMIT', $this->db_connect_id) ) + { + @mssql_query('ROLLBACK', $this->db_connect_id); + return false; + } + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( !empty($this->limit_offset[$query_id]) ) ? @mssql_num_rows($query_id) - $this->limit_offset[$query_id] : @mssql_num_rows($query_id); + } + else + { + return false; + } + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_num_fields($query_id) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_field_name($query_id, $offset) : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_field_type($query_id, $offset) : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + empty($row); + + $row = @mssql_fetch_array($query_id); + + while( list($key, $value) = @each($row) ) + { + $row[$key] = stripslashes($value); + } + @reset($row); + + return $row; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + $i = 0; + empty($rowset); + + while( $row = @mssql_fetch_array($query_id)) + { + while( list($key, $value) = @each($row) ) + { + $rowset[$i][$key] = stripslashes($value); + } + $i++; + } + @reset($rowset); + + return $rowset; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $row = -1, $query_id) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + if( $row != -1 ) + { + if( $this->limit_offset[$query_id] > 0 ) + { + $result = ( !empty($this->limit_offset[$query_id]) ) ? @mssql_result($this->result, ($this->limit_offset[$query_id] + $row), $field) : false; + } + else + { + $result = @mssql_result($this->result, $row, $field); + } + } + else + { + if( empty($this->row[$query_id]) ) + { + $this->row[$query_id] = @mssql_fetch_array($query_id); + $result = stripslashes($this->row[$query_id][$field]); + } + } + + return $result; + } + else + { + return false; + } + } + + function sql_rowseek($rownum, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + if( $query_id ) + { + return ( !empty($this->limit_offset[$query_id]) ) ? @mssql_data_seek($query_id, ($this->limit_offset[$query_id] + $rownum)) : @mssql_data_seek($query_id, $rownum); + } + else + { + return false; + } + } + + function sql_nextid() + { + return ( $this->next_id[$this->db_connect_id] ) ? $this->next_id[$this->db_connect_id] : false; + } + + function sql_affectedrows() + { + return ( $this->affected_rows[$this->db_connect_id] ) ? $this->affected_rows[$this->db_connect_id] : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->result; + } + + return ( $query_id ) ? @mssql_free_result($query_id) : false; + } + + function sql_error($query_id = 0) + { + $result['message'] = @mssql_get_last_message(); + return $result; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2_old/db/mysql.php b/phpBB2_old/db/mysql.php new file mode 100644 index 0000000..5acd081 --- /dev/null +++ b/phpBB2_old/db/mysql.php @@ -0,0 +1,335 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + if($this->persistency) + { + $this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password); + } + else + { + $this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password); + } + if($this->db_connect_id) + { + if($database != "") + { + $this->dbname = $database; + $dbselect = @mysql_select_db($this->dbname); + if(!$dbselect) + { + @mysql_close($this->db_connect_id); + $this->db_connect_id = $dbselect; + } + } + return $this->db_connect_id; + } + else + { + return false; + } + } + + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + if($this->query_result) + { + @mysql_free_result($this->query_result); + } + $result = @mysql_close($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + + // + // Base query method + // + function sql_query($query = "", $transaction = FALSE) + { + // Remove any pre-existing queries + unset($this->query_result); + if($query != "") + { + $this->num_queries++; + + $this->query_result = @mysql_query($query, $this->db_connect_id); + } + if($this->query_result) + { + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + return $this->query_result; + } + else + { + return ( $transaction == END_TRANSACTION ) ? true : false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_num_rows($query_id); + return $result; + } + else + { + return false; + } + } + function sql_affectedrows() + { + if($this->db_connect_id) + { + $result = @mysql_affected_rows($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + function sql_numfields($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_num_fields($query_id); + return $result; + } + else + { + return false; + } + } + function sql_fieldname($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_field_name($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fieldtype($offset, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_field_type($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fetchrow($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $this->row[$query_id] = @mysql_fetch_array($query_id); + return $this->row[$query_id]; + } + else + { + return false; + } + } + function sql_fetchrowset($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + unset($this->rowset[$query_id]); + unset($this->row[$query_id]); + while($this->rowset[$query_id] = @mysql_fetch_array($query_id)) + { + $result[] = $this->rowset[$query_id]; + } + return $result; + } + else + { + return false; + } + } + function sql_fetchfield($field, $rownum = -1, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($rownum > -1) + { + $result = @mysql_result($query_id, $rownum, $field); + } + else + { + if(empty($this->row[$query_id]) && empty($this->rowset[$query_id])) + { + if($this->sql_fetchrow()) + { + $result = $this->row[$query_id][$field]; + } + } + else + { + if($this->rowset[$query_id]) + { + $result = $this->rowset[$query_id][$field]; + } + else if($this->row[$query_id]) + { + $result = $this->row[$query_id][$field]; + } + } + } + return $result; + } + else + { + return false; + } + } + function sql_rowseek($rownum, $query_id = 0){ + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @mysql_data_seek($query_id, $rownum); + return $result; + } + else + { + return false; + } + } + function sql_nextid(){ + if($this->db_connect_id) + { + $result = @mysql_insert_id($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + function sql_freeresult($query_id = 0){ + if(!$query_id) + { + $query_id = $this->query_result; + } + + if ( $query_id ) + { + unset($this->row[$query_id]); + unset($this->rowset[$query_id]); + + @mysql_free_result($query_id); + + return true; + } + else + { + return false; + } + } + function sql_error($query_id = 0) + { + $result["message"] = @mysql_error($this->db_connect_id); + $result["code"] = @mysql_errno($this->db_connect_id); + + return $result; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2_old/db/mysql4.php b/phpBB2_old/db/mysql4.php new file mode 100644 index 0000000..691fd9e --- /dev/null +++ b/phpBB2_old/db/mysql4.php @@ -0,0 +1,340 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password); + + if( $this->db_connect_id ) + { + if( $database != "" ) + { + $this->dbname = $database; + $dbselect = mysql_select_db($this->dbname); + + if( !$dbselect ) + { + mysql_close($this->db_connect_id); + $this->db_connect_id = $dbselect; + } + } + + return $this->db_connect_id; + } + else + { + return false; + } + } + + // + // Other base methods + // + function sql_close() + { + if( $this->db_connect_id ) + { + // + // Commit any remaining transactions + // + if( $this->in_transaction ) + { + mysql_query("COMMIT", $this->db_connect_id); + } + + return mysql_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Base query method + // + function sql_query($query = "", $transaction = FALSE) + { + // + // Remove any pre-existing queries + // + unset($this->query_result); + + if( $query != "" ) + { + $this->num_queries++; + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + $result = mysql_query("BEGIN", $this->db_connect_id); + if(!$result) + { + return false; + } + $this->in_transaction = TRUE; + } + + $this->query_result = mysql_query($query, $this->db_connect_id); + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $result = mysql_query("COMMIT", $this->db_connect_id); + } + } + + if( $this->query_result ) + { + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if ( !mysql_query("COMMIT", $this->db_connect_id) ) + { + mysql_query("ROLLBACK", $this->db_connect_id); + return false; + } + } + + return $this->query_result; + } + else + { + if( $this->in_transaction ) + { + mysql_query("ROLLBACK", $this->db_connect_id); + $this->in_transaction = FALSE; + } + return false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_num_rows($query_id) : false; + } + + function sql_affectedrows() + { + return ( $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_num_fields($query_id) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_field_name($query_id, $offset) : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_field_type($query_id, $offset) : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + $this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC); + return $this->row[$query_id]; + } + else + { + return false; + } + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + unset($this->rowset[$query_id]); + unset($this->row[$query_id]); + + while($this->rowset[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC)) + { + $result[] = $this->rowset[$query_id]; + } + + return $result; + } + else + { + return false; + } + } + + function sql_fetchfield($field, $rownum = -1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + if( $rownum > -1 ) + { + $result = mysql_result($query_id, $rownum, $field); + } + else + { + if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) ) + { + if( $this->sql_fetchrow() ) + { + $result = $this->row[$query_id][$field]; + } + } + else + { + if( $this->rowset[$query_id] ) + { + $result = $this->rowset[$query_id][$field]; + } + else if( $this->row[$query_id] ) + { + $result = $this->row[$query_id][$field]; + } + } + } + + return $result; + } + else + { + return false; + } + } + + function sql_rowseek($rownum, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? mysql_data_seek($query_id, $rownum) : false; + } + + function sql_nextid() + { + return ( $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if ( $query_id ) + { + unset($this->row[$query_id]); + unset($this->rowset[$query_id]); + + mysql_free_result($query_id); + + return true; + } + else + { + return false; + } + } + + function sql_error() + { + $result['message'] = mysql_error($this->db_connect_id); + $result['code'] = mysql_errno($this->db_connect_id); + + return $result; + } + +} // class sql_db + +} // if ... define + +?> diff --git a/phpBB2_old/db/oracle.php b/phpBB2_old/db/oracle.php new file mode 100644 index 0000000..fd52b17 --- /dev/null +++ b/phpBB2_old/db/oracle.php @@ -0,0 +1,472 @@ +persistency = $persistency; + $this->user = $sqluser; + $this->password = $sqlpassword; + $this->server = $sqlserver; + $this->dbname = $database; + + if($this->persistency) + { + $this->db_connect_id = @OCIPLogon($this->user, $this->password, $this->server); + } + else + { + $this->db_connect_id = @OCINLogon($this->user, $this->password, $this->server); + } + if($this->db_connect_id) + { + return $this->db_connect_id; + } + else + { + return false; + } + } + + // + // Other base methods + // + function sql_close() + { + if($this->db_connect_id) + { + // Commit outstanding transactions + if($this->in_transaction) + { + OCICommit($this->db_connect_id); + } + + if($this->query_result) + { + @OCIFreeStatement($this->query_result); + } + $result = @OCILogoff($this->db_connect_id); + return $result; + } + else + { + return false; + } + } + + // + // Base query method + // + function sql_query($query = "", $transaction = FALSE) + { + // Remove any pre-existing queries + unset($this->query_result); + + // Put us in transaction mode because with Oracle as soon as you make a query you're in a transaction + $this->in_transaction = TRUE; + + if($query != "") + { + $this->last_query = $query; + $this->num_queries++; + + if(eregi("LIMIT", $query)) + { + preg_match("/^(.*)LIMIT ([0-9]+)[, ]*([0-9]+)*/s", $query, $limits); + + $query = $limits[1]; + if($limits[3]) + { + $row_offset = $limits[2]; + $num_rows = $limits[3]; + } + else + { + $row_offset = 0; + $num_rows = $limits[2]; + } + } + + if(eregi("^(INSERT|UPDATE) ", $query)) + { + $query = preg_replace("/\\\'/s", "''", $query); + } + + $this->query_result = @OCIParse($this->db_connect_id, $query); + $success = @OCIExecute($this->query_result, OCI_DEFAULT); + } + if($success) + { + if($transaction == END_TRANSACTION) + { + OCICommit($this->db_connect_id); + $this->in_transaction = FALSE; + } + + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + $this->last_query_text[$this->query_result] = $query; + + return $this->query_result; + } + else + { + if($this->in_transaction) + { + OCIRollback($this->db_connect_id); + } + return false; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIFetchStatement($query_id, $this->rowset); + // OCIFetchStatment kills our query result so we have to execute the statment again + // if we ever want to use the query_id again. + @OCIExecute($query_id, OCI_DEFAULT); + return $result; + } + else + { + return false; + } + } + function sql_affectedrows($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIRowCount($query_id); + return $result; + } + else + { + return false; + } + } + function sql_numfields($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCINumCols($query_id); + return $result; + } + else + { + return false; + } + } + function sql_fieldname($offset, $query_id = 0) + { + // OCIColumnName uses a 1 based array so we have to up the offset by 1 in here to maintain + // full abstraction compatibitly + $offset += 1; + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = strtolower(@OCIColumnName($query_id, $offset)); + return $result; + } + else + { + return false; + } + } + function sql_fieldtype($offset, $query_id = 0) + { + // This situation is the same as fieldname + $offset += 1; + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIColumnType($query_id, $offset); + return $result; + } + else + { + return false; + } + } + function sql_fetchrow($query_id = 0, $debug = FALSE) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result_row = ""; + $result = @OCIFetchInto($query_id, $result_row, OCI_ASSOC+OCI_RETURN_NULLS); + if($debug) + { + echo "Query was: ".$this->last_query . "
    "; + echo "Result: $result
    "; + echo "Query ID: $query_id
    "; + echo "
    ";
    +				var_dump($result_row);
    +				echo "
    "; + } + if($result_row == "") + { + return false; + } + + for($i = 0; $i < count($result_row); $i++) + { + list($key, $val) = each($result_row); + $return_arr[strtolower($key)] = $val; + } + $this->row[$query_id] = $return_arr; + + return $this->row[$query_id]; + } + else + { + return false; + } + } + // This function probably isn't as efficant is it could be but any other way I do it + // I end up losing 1 row... + function sql_fetchrowset($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $rows = @OCIFetchStatement($query_id, $results); + @OCIExecute($query_id, OCI_DEFAULT); + for($i = 0; $i < $rows; $i++) + { + @OCIFetchInto($query_id, $tmp_result, OCI_ASSOC+OCI_RETURN_NULLS); + + for($j = 0; $j < count($tmp_result); $j++) + { + list($key, $val) = each($tmp_result); + $return_arr[strtolower($key)] = $val; + } + $result[] = $return_arr; + } + return $result; + } + else + { + return false; + } + } + function sql_fetchfield($field, $rownum = -1, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + if($rownum > -1) + { + // Reset the internal rownum pointer. + @OCIExecute($query_id, OCI_DEFAULT); + for($i = 0; $i < $rownum; $i++) + { + // Move the interal pointer to the row we want + @OCIFetch($query_id); + } + // Get the field data. + $result = @OCIResult($query_id, strtoupper($field)); + } + else + { + // The internal pointer should be where we want it + // so we just grab the field out of the current row. + $result = @OCIResult($query_id, strtoupper($field)); + } + return $result; + } + else + { + return false; + } + } + function sql_rowseek($rownum, $query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + @OCIExecute($query_id, OCI_DEFAULT); + for($i = 0; $i < $rownum; $i++) + { + @OCIFetch($query_id); + } + $result = @OCIFetch($query_id); + return $result; + } + else + { + return false; + } + } + function sql_nextid($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id && $this->last_query_text[$query_id] != "") + { + if( eregi("^(INSERT{1}|^INSERT INTO{1})[[:space:]][\"]?([a-zA-Z0-9\_\-]+)[\"]?", $this->last_query_text[$query_id], $tablename)) + { + $query = "SELECT ".$tablename[2]."_id_seq.currval FROM DUAL"; + $stmt = @OCIParse($this->db_connect_id, $query); + @OCIExecute($stmt,OCI_DEFAULT ); + $temp_result = @OCIFetchInto($stmt, $temp_result, OCI_ASSOC+OCI_RETURN_NULLS); + if($temp_result) + { + return $temp_result['CURRVAL']; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + + function sql_nextid($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id && $this->last_query_text[$query_id] != "") + { + if( eregi("^(INSERT{1}|^INSERT INTO{1})[[:space:]][\"]?([a-zA-Z0-9\_\-]+)[\"]?", $this->last_query_text[$query_id], $tablename)) + { + $query = "SELECT ".$tablename[2]."_id_seq.CURRVAL FROM DUAL"; + $temp_q_id = @OCIParse($this->db_connect_id, $query); + @OCIExecute($temp_q_id, OCI_DEFAULT); + @OCIFetchInto($temp_q_id, $temp_result, OCI_ASSOC+OCI_RETURN_NULLS); + + if($temp_result) + { + return $temp_result['CURRVAL']; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + + + + function sql_freeresult($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + if($query_id) + { + $result = @OCIFreeStatement($query_id); + return $result; + } + else + { + return false; + } + } + function sql_error($query_id = 0) + { + if(!$query_id) + { + $query_id = $this->query_result; + } + $result = @OCIError($query_id); + return $result; + } + +} // class sql_db + +} // if ... define + +?> \ No newline at end of file diff --git a/phpBB2_old/db/postgres7.php b/phpBB2_old/db/postgres7.php new file mode 100644 index 0000000..ba1b6af --- /dev/null +++ b/phpBB2_old/db/postgres7.php @@ -0,0 +1,397 @@ +connect_string = ""; + + if( $sqluser ) + { + $this->connect_string .= "user=$sqluser "; + } + + if( $sqlpassword ) + { + $this->connect_string .= "password=$sqlpassword "; + } + + if( $sqlserver ) + { + if( ereg(":", $sqlserver) ) + { + list($sqlserver, $sqlport) = split(":", $sqlserver); + $this->connect_string .= "host=$sqlserver port=$sqlport "; + } + else + { + if( $sqlserver != "localhost" ) + { + $this->connect_string .= "host=$sqlserver "; + } + } + } + + if( $database ) + { + $this->dbname = $database; + $this->connect_string .= "dbname=$database"; + } + + $this->persistency = $persistency; + + $this->db_connect_id = ( $this->persistency ) ? pg_pconnect($this->connect_string) : pg_connect($this->connect_string); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; + } + + // + // Other base methods + // + function sql_close() + { + if( $this->db_connect_id ) + { + // + // Commit any remaining transactions + // + if( $this->in_transaction ) + { + @pg_exec($this->db_connect_id, "COMMIT"); + } + + if( $this->query_result ) + { + @pg_freeresult($this->query_result); + } + + return @pg_close($this->db_connect_id); + } + else + { + return false; + } + } + + // + // Query method + // + function sql_query($query = "", $transaction = false) + { + // + // Remove any pre-existing queries + // + unset($this->query_result); + if( $query != "" ) + { + $this->num_queries++; + + $query = preg_replace("/LIMIT ([0-9]+),([ 0-9]+)/", "LIMIT \\2 OFFSET \\1", $query); + + if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction ) + { + $this->in_transaction = TRUE; + + if( !@pg_exec($this->db_connect_id, "BEGIN") ) + { + return false; + } + } + + $this->query_result = @pg_exec($this->db_connect_id, $query); + if( $this->query_result ) + { + if( $transaction == END_TRANSACTION ) + { + $this->in_transaction = FALSE; + + if( !@pg_exec($this->db_connect_id, "COMMIT") ) + { + @pg_exec($this->db_connect_id, "ROLLBACK"); + return false; + } + } + + $this->last_query_text[$this->query_result] = $query; + $this->rownum[$this->query_result] = 0; + + unset($this->row[$this->query_result]); + unset($this->rowset[$this->query_result]); + + return $this->query_result; + } + else + { + if( $this->in_transaction ) + { + @pg_exec($this->db_connect_id, "ROLLBACK"); + } + $this->in_transaction = FALSE; + + return false; + } + } + else + { + if( $transaction == END_TRANSACTION && $this->in_transaction ) + { + $this->in_transaction = FALSE; + + if( !@pg_exec($this->db_connect_id, "COMMIT") ) + { + @pg_exec($this->db_connect_id, "ROLLBACK"); + return false; + } + } + + return true; + } + } + + // + // Other query methods + // + function sql_numrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_numrows($query_id) : false; + } + + function sql_numfields($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_numfields($query_id) : false; + } + + function sql_fieldname($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_fieldname($query_id, $offset) : false; + } + + function sql_fieldtype($offset, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_fieldtype($query_id, $offset) : false; + } + + function sql_fetchrow($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if($query_id) + { + $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id]); + + if( $this->row ) + { + $this->rownum[$query_id]++; + return $this->row; + } + } + + return false; + } + + function sql_fetchrowset($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + unset($this->rowset[$query_id]); + unset($this->row[$query_id]); + $this->rownum[$query_id] = 0; + + while( $this->rowset = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC) ) + { + $result[] = $this->rowset; + $this->rownum[$query_id]++; + } + + return $result; + } + + return false; + } + + function sql_fetchfield($field, $row_offset=-1, $query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + if( $row_offset != -1 ) + { + $this->row = @pg_fetch_array($query_id, $row_offset, PGSQL_ASSOC); + } + else + { + if( $this->rownum[$query_id] ) + { + $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id]-1, PGSQL_ASSOC); + } + else + { + $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC); + + if( $this->row ) + { + $this->rownum[$query_id]++; + } + } + } + + return $this->row[$field]; + } + + return false; + } + + function sql_rowseek($offset, $query_id = 0) + { + + if(!$query_id) + { + $query_id = $this->query_result; + } + + if( $query_id ) + { + if( $offset > -1 ) + { + $this->rownum[$query_id] = $offset; + return true; + } + else + { + return false; + } + } + + return false; + } + + function sql_nextid() + { + $query_id = $this->query_result; + + if($query_id && $this->last_query_text[$query_id] != "") + { + if( preg_match("/^INSERT[\t\n ]+INTO[\t\n ]+([a-z0-9\_\-]+)/is", $this->last_query_text[$query_id], $tablename) ) + { + $query = "SELECT currval('" . $tablename[1] . "_id_seq') AS last_value"; + $temp_q_id = @pg_exec($this->db_connect_id, $query); + if( !$temp_q_id ) + { + return false; + } + + $temp_result = @pg_fetch_array($temp_q_id, 0, PGSQL_ASSOC); + + return ( $temp_result ) ? $temp_result['last_value'] : false; + } + } + + return false; + } + + function sql_affectedrows($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_cmdtuples($query_id) : false; + } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_freeresult($query_id) : false; + } + + function sql_error($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + $result['message'] = @pg_errormessage($this->db_connect_id); + $result['code'] = -1; + + return $result; + } + +} // class ... db_sql + +} // if ... defined + +?> \ No newline at end of file diff --git a/phpBB2_old/docs/AUTHORS b/phpBB2_old/docs/AUTHORS new file mode 100644 index 0000000..a2d973c --- /dev/null +++ b/phpBB2_old/docs/AUTHORS @@ -0,0 +1 @@ +Please see: http://www.phpbb.com/about.php for a list of all the people involved in phpBB. diff --git a/phpBB2_old/docs/CHANGELOG.html b/phpBB2_old/docs/CHANGELOG.html new file mode 100644 index 0000000..5f256f0 --- /dev/null +++ b/phpBB2_old/docs/CHANGELOG.html @@ -0,0 +1,602 @@ + + + + + +phpBB 2.0.11 :: Changelog + + + + + + + + + +
    + + + +
    + + + + + + +
    phpBB 2 : Creating CommunitiesphpBB 2.0.11 CHANGELOG
    + + +
      +
    1. Changelog
    2. +
        +
      1. Changes since 2.0.10
      2. +
      3. Changes since 2.0.9
      4. +
      5. Changes since 2.0.8
      6. +
      7. Changes since 2.0.7
      8. +
      9. Changes since 2.0.6
      10. +
      11. Changes since 2.0.5
      12. +
      13. Changes since 2.0.4
      14. +
      15. Changes since 2.0.3
      16. +
      17. Changes since 2.0.2
      18. +
      19. Changes since 2.0.1
      20. +
      21. Changes since 2.0.0
      22. +
      23. Changes since RC-4
      24. +
      25. Changes since RC-3
      26. +
      27. Changes since RC-2
      28. +
      29. Changes since RC-1
      30. +
      31. Changes since RC-1 (pre)
      32. +
      +
    3. Disclaimer
    4. +
    + +

    1. Changelog

    + +

    This is a non-exhaustive (but still near complete) changelog for phpBB 2.0.x including beta and release candidate versions. Our thanks to all those people who've contributed bug reports and code fixes.

    + +

    l.i. Changes since 2.0.10

    + +
      +
    • Fixed vulnerability in highlighting code (very high severity, please update your installation as soon as possible)
    • +
    • Fixed unsetting global vars - Matt Kavanagh
    • +
    • Fixed XSS vulnerability in username handling - AnthraX101
    • +
    • Fixed not confirmed sql injection in username handling - warmth
    • +
    • Added check for empty topic id in topic_review function
    • +
    • Added visual confirmation mod to code base
    • +
    + +

    l.ii. Changes since 2.0.9

    + +
      +
    • Fixed deleting of styles in admin_styles.php
    • +
    • Fixed wrong unsetting of variables introduced in phpBB 2.0.9, making the board non-functional for users with specific php.ini settings
    • +
    • Added code to let phpBB work with PHP5 for those having register_long_arrays set to off (default settings) - running phpBB 2.0.x with PHP5 is not supported at http://www.phpbb.com.
    • +
    • Fixed bug in admin_board.php for board settings having single quotes in it
    • +
    • Fixed "search by author" in search.php. Now it is possible to search for users with special chars in their name too
    • +
    • Fixed forum jumpbox propagating session id in moderator control pages
    • +
    • Added check for newlines at redirecting pages, to prevent http response splitting attacks - Ory Segal and Amit Klein
    • +
    • Fixed visual confirmation code. The image was not created due to a wrong regular expression.
    • +
    + +

    l.iii. Changes since 2.0.8

    + +
      +
    • Fixed one vulnerability in admin_board.php - Xore
    • +
    • Added checking for proper session id characters to sessions and viewtopic to prevent injections - Bartlomiej Korupczynski
    • +
    • Fixed injection vulnerabilities possible with linked avatars
    • +
    • Implemented unsetting globalised variables
    • +
    • Limited confirm switch to POST variable in posting
    • +
    • Changed IP code in common.php to prevent IP spoofing, which might introduce some problems with private IP Ranges showing up. - Wang Products
    • +
    • Updated visual confirmation mod [pre-edited files]
    • +
    • Moved obtaining word censors in modcp out of topic generation loop [increased performance/lower query count] - spotted by R45
    • +
    • Added the ability to link to https/ftps sites using the img bbcode tag
    • +
    • Fixed user online information in admin/index.php
    • +
    • Fixed getting group moderator in groupcp.php if running oracle backend - spotted by pakman
    • +
    • Fixed use of non-existing result variable in modcp (poster_id instead of user_id)
    • +
    • Fixed several vulnerabilities (XSS, SQL Injection and path disclosure) only possible with register_globals enabled - Matthew C. Kavanagh, Janek Vind
    • +
    • Fixed problem with SID not delivered to next page in groupcp.php
    • +
    + +

    l.iv. Changes since 2.0.7

    + +
      +
    • Fixed several vulnerabilities in admin pages
    • +
    • Fixed sid checking code in admin/pagestart.php
    • +
    • Fixed injection vulnerabilities possible with the img bbcode tag
    • +
    • Limited allowed images in img bbcode tag to jpg, jpeg, gif and png
    • +
    • Fixed redirect problems - 2.0.7a
    • +
    • Fixed sql injection vulnerability in search - 2.0.7a
    • +
    • Fixed sql injection vulnerability in privmsg - 2.0.8a
    • +
    + +

    1.v. Changes since 2.0.6

    + +
      +
    • Fixed several vulnerabilities in modcp - Robert Lavierck
    • +
    • Changed whois lookup address within admin index
    • +
    • Fixed potential vulnerability in viewtopic postorder - 2.0.6d
    • +
    • Updates to cope with Zend Optimizer 2.5 problems - 2.0.6d - jetset
    • +
    • Force specialcharing of redirect variable in login - Pit
    • +
    • Fixed potential vulnerability in viewtopic postdays - GulfTech Security Research
    • +
    • Fixed potential vulnerability in viewforum topicdays - GulfTech Security Research
    • +
    • Fixed potential vulnerability in modcp
    • +
    • Fixed potential vulnerability in avatar gallery
    • +
    + +

    1.vi. Changes since 2.0.5

    + +
      +
    • Fixed various email issues
    • +
    • Fixed registration email bug with Administrator Confirmation used
    • +
    • Fixed mass emailer
    • +
    • Fixed long post time issue
    • +
    • Fixed bug with usernames containing single quotes
    • +
    • Fixed word list bug - Word boundaries were not considered
    • +
    • Fixed vulnerability in style admin
    • +
    • Fixed sql injection vulnerability in viewtopic
    • +
    • Fixed vulnerability allowing server side variable access in search - tendor
    • +
    • Fixed potential vulnerability in 2.0.5 login username entry - throw away/eomer
    • +
    • Fixed sql injection with reset date format field in profile - tendor
    • +
    + +

    1.vii. Changes since 2.0.4

    + +
      +
    • Removed user facing session_id checks
    • +
    • Fixed user self-activation after deactivation
    • +
    • Fixed incorrect functioning of phpbb_realpath
    • +
    • Fixed wrong path to database schema files within the upgrade script
    • +
    • Fixed double quote problem with username validation
    • +
    • Allow & within email addresses
    • +
    • Fixed email validation for banned email addresses
    • +
    • Removed underline from email domain validation
    • +
    • Fixed redirection for sentbox folder, installation and email
    • +
    • Fixed poll deletion
    • +
    • Fixed Mozilla navigation bar
    • +
    • Fixed URL bbcode parsing
    • +
    • Fixed database timeouts while searching the forums
    • +
    • Fixed wrong email return path in admin mass mailing - netclectic
    • +
    • Fixed MS-SQL failures within the update script
    • +
    • Fixed memberlist sort order
    • +
    • Fixed not showing leading spaces within Code BBCode
    • +
    • Fixed problem with adding double quotes to subject titles
    • +
    • Remove username input field from profile when user cannot change name
    • +
    • Fixed pagination error with highlighting
    • +
    • Fixed errors if no smilies are installed
    • +
    • Fixed CSS issues with IE 5.2 on MacOS X
    • +
    • Fixed missing sid propagation problem within the Moderator Control Panel
    • +
    • Fixed language variables within Authentication error output
    • +
    • Removed doubled CSS class definitions within input fields
    • +
    • Fixed username change within the Administration Panel
    • +
    • Added missing <tr> tags to index_body.tpl
    • +
    • Added missing username language variable to admin index page
    • +
    • Fixed moderator status update if a usergroup got deleted
    • +
    • Fixed poll handling upon post edit
    • +
    • Fixed remove common words from search table if post get pruned - Nuttzy99
    • +
    • Fixed behaviour on splitting topics if no checkbox is selected
    • +
    • Anonymous is no longer displayed within Username dropdown boxes
    • +
    • Fixed viewprofile redirection if an invalid mode was specified
    • +
    • Fixed fraction settings within determining common words - Novan
    • +
    • Prevent admin change usernames to his own within the ACP
    • +
    • Activation email is sent to all admins
    • +
    • Fixed conversion of & to &amp; in appropriate cases
    • +
    • Fixed display of "greater than topics per page" announcements preventing display of normal posts
    • +
    • Added variable checks to database backup and restore screen
    • +
    • Prevented pm popup window from resetting after visiting avatar gallery
    • +
    • Fixed special character handling with word censor
    • +
    • Added SID to jumpbox
    • +
    • Fixed problems with usernames using html special chars
    • +
    • Added GMT + 13 to English lang_main, all translators are encouraged to do likewise
    • +
    • Deleted doubled 'U_MEMBERLIST' assignment from page_header.php
    • +
    • Fixed wrong display of Signature Checkbox while editing Private Message
    • +
    • Fixed disappearing post text if emoticon was inserted directly after pressing a BBCode button
    • +
    • Display correct alt-tag for smilies within postings
    • +
    • Prevented the ability to apply BBCode to website contents
    • +
    • Fixed maxlength issue with password field in login_body.tpl
    • +
    • Fixed possible username duplication issue with validation and username length
    • +
    • Fixed split words function to handle additional foreign characters
    • +
    • Changed empty email To Field to use a non-disclosure delimiter
    • +
    • Fixed wrong language var in install.php - FTP Config screen
    • +
    • Fixed alt tag for locked topic images in viewforum_body.tpl
    • +
    • Fixed typo in groupcp.php - $lang['Unsub_success'] instead of $lang['Usub_success']
    • +
    • Fixed timezone display
    • +
    • Fixed wrong display of author quote tag within profile - Cl1mh4224rd
    • +
    • Added deletion of sessions of users whose account is deactivated
    • +
    • Added mail header X-MimeOLE to the emailer class
    • +
    • Prevent registration if user is logged in or user trying to register again
    • +
    • Prevent usage of char(255) in usernames
    • +
    • Added check for additional FORWARDED_FOR IP's - cosmos
    • +
    • Fixed handling of non-selection of option when voting
    • +
    • Fixed potential xss issue with memberslist mode
    • +
    • Default English support for visual confirmation - translators are encouraged to support this
    • +
    + +

    1.viii. Changes since 2.0.3

    + +
      +
    • Fixed cross-browser scripting issue with highlight param
    • +
    • Back-ported highlighting code from phpBB 2.2
    • +
    • Add session id validation to posting, profile, email, voting - Edwin van Vliet
    • +
    • Added {S_HIDDEN_FIELDS} template var to profile_send_email.tpl
    • +
    • Added "intval" fix for flood check, may resolve some issues
    • +
    • Added missing index to post_id for search_wordmatch
    • +
    • Fixed spelling error in search add words preventing use of stopword list
    • +
    • Fixed issue with search common words not being run
    • +
    • Introduce viewtopic resync patch by Ashe
    • +
    • Replace a for n in templating code
    • +
    • Fixed ordering in memberslist
    • +
    • Fixed group_id sequence issues with pgsql and msaccess
    • +
    • Fixed assumption of word censors in user notification
    • +
    • Fixed incorrect display of quotes in user management fields
    • +
    • Fixed entry of special chars in all profile fields - note this may cause temporary issues
    • +
    • Fixed incorrect display of quotes when using avatar gallery
    • +
    • Fixed missing username in email sent to users when admin activated
    • +
    • Added check for non-empty smiley code and url in smiley admin
    • +
    • Prevent display of -- sig seperator in emails when no board sig exists
    • +
    • Fixed URL propagated sid issues with jumpbox
    • +
    • Fixed wrong mode name check (polldelete) in functions_post
    • +
    • Added missing root path to l10n image path check
    • +
    • Remove validation of fields when deleting a user
    • +
    • Fixed sort mode select box in memberslist to default to current mode
    • +
    • Deny inline topic review listing to users without auth_read permissions
    • +
    • Prevent display of topic notification checkbox if user cannot read forum
    • +
    • Remove incorrect pre-pending of IP to uploaded avatars
    • +
    • Fixed deletion of uploaded avatars when changing to remote/gallery
    • +
    • Added check for non-blank line during install schema/basic sql ops
    • +
    • Added sort ordering to Top Ten poster listing by request
    • +
    • Fixed incorrect error report when altering case of username
    • +
    • Added jumpbox output to modcp {JUMPBOX} will now work
    • +
    • Fixed non-updating of users with MOD levels when deleting a forum
    • +
    • Remove email to group moderator when approving new members
    • +
    • Fixed non-handling of HTML in poll options
    • +
    • Fixed non-deletion of polls when deleting forum and its posts
    • +
    • Fixed moved shadow topic from being bumped upon reply
    • +
    • Changed field size of timezone to decimal(5,2) where applicable
    • +
    • Fixed missing sid append to URL when redirecting to newest reply
    • +
    • Fixed missing slashes in private IP preg check
    • +
    • Fixed session not setting userdata['user_id'] to ANON as appropriate
    • +
    • Added check for non-empty name in disallow admin
    • +
    • Fixed validation of SSL website addresses in profile
    • +
    • Fixed inability of admins to upload avatars via user admin panel
    • +
    • Fixed non-deletion of private message text upon full box overwrite
    • +
    • Fixed incorrect error message in smiley admin
    • +
    • Fixed incorrect alt-text for "Stop Watching Topic" image
    • +
    • Temporary fix for missing lang strings in forum admin - translators should update their packages if not done already
    • +
    • Use selected localisation during later stages of installation
    • +
    • Fixed non-check of permissions when deleting a topic via Moderator Control Panel
    • +
    • Fixed non-update of banlist upon user deletion
    • +
    • Check approved users boxes by default in usergroup approve form
    • +
    • Fixed non-appending of sid to backup meta refresh
    • +
    • Fixed non-notification of no support for certain databases in backup/restore
    • +
    • Added $images var to message die global declaration
    • +
    • Fixed wrong string, Private_message in Private Messaging
    • +
    • Add mail send result to error output
    • +
    • Fixed non-appending of sid to Mozilla nav bar menu items
    • +
    • Fixed incorrect profile linking from MSNM url in private messaging
    • +
    • Grammatical errors in English lang_main fixed - Cluster
    • +
    • Allow deletion of avatar and simultaneous upload/linking/gallery selection
    • +
    • Fixed non-updating of user rank when changing from special to normal rank in rank admin
    • +
    • Changed user topic notification default in schemas to 0 (off)
    • +
    • Fixed non-XHTML compliant img tags in privmsg.php
    • +
    • Fixed non-deletion of announcements and polls when removing forum contents in forum admin
    • +
    • Fixed non-pruning of watched topics table when pruning related topics
    • +
    • Enable GET redirect on logout
    • +
    • Added check for IE6.x to viewtopic ICQ indicator javascript
    • +
    • Fixed empty username quoting with MS-SQL
    • +
    • Fixed BBCode url, magic url and img tags to allow most chars beyond domain names
    • +
    • Prevent parsing of -ve size values in BBCode size tag
    • +
    • Back ported HTML handler from 2.2, this may impact some boards which allow complex HTML - existing parser remains but commented out
    • +
    • Fixed parsing of word censors to not censor words within < and > tag delimiters
    • +
    • Fixed database utilities failing to backup data with MySQL
    • +
    • Fixed signature parsing in User Admin
    • +
    • Fixed missing class="post" tags in subSilver Admin templates
    • +
    • Fixes for paths under Apache2
    • +
    • Added wrap text with tag support for posting in Mozilla 1.1+
    • +
    • Fixed use of missing CSS classes in modcp_split, group_info_body, error_body and agreement
    • +
    • Fixed ability of users to edit polls even after they have received votes
    • +
    • Fixed header Location to be absolute URL as per HTTP 1.1 spec - noted by PhilippK
    • +
    • Added additional session_id checks to MCP, topic subscription, PM and similar items
    • +
    • Fixed colour select box in posting_body to reset to Default colour after selection
    • +
    • Altered PM icon to show new image until messages have been read
    • +
    • Fixed incomplete deletion of PMs when removing the associated user
    • +
    • Fixed unread and new PM user counters to decrement appropriately in all situations
    • +
    • Fixed possible cross-site scripting issue with username search
    • +
    • Fixed some problems with gzip in combination with newer PHP versions and Mozilla
    • +
    • Fixed wrong maxlength in modcp_split.tpl subject field
    • +
    • Fixed inability to edit username of guest poster - vHiker
    • +
    • Fixed ability for guests to post with certain registered usernames
    • +
    • Fixed various HTML issues to improve XHTML compliance - Daz
    • +
    • Fixed missing template var {L_PM} for memberslist - Daz
    • +
    • Fixed wrong key name for $images['Topic_un_watch'] - Daz
    • +
    • Fixed missing template var {S_WATCH_TOPIC_IMG} for viewtopic - Daz
    • +
    • Fixed missing default constraints for post table under MSSQL
    • +
    • Fixed incorrect field size for forum pruning - preventing days > 256
    • +
    • Fixed continuing redirect issues for broken web servers, e.g. IIS+CGI PHP
    • +
    • Fixed inability to use ftp as a protocol for the [img] tag
    • +
    • Fixed incorrect handling of [img] tags containing %20 encoded spaces
    • +
    • Added check for . within cookie_name, change to _ if present
    • +
    • Added SHOW_ONLINE constant to limit "users online" code operation to index and viewforum
    • +
    • Added "temporary" workaround for Apache2 + PHP module ignoring "private" cache header
    • +
    • Added workaround for modcp IP lookup and links to Anonymous user profile
    • +
    • Fixed broken bbcode parsing of quotes containing bbcode in the "username"
    • +
    • Fixed excess slashes in [quote=""] first pass encoding
    • +
    • Fixed rendering issue with quote button under Mozilla - Daz
    • +
    • Grammatical errors in remaining core lang files fixed - Cluster
    • +
    • Fixed bbcode quote breaking when username contained ] before [
    • +
    • Fixed duplicate group_id error during upgrade of users from phpBB 1.x
    • +
    • Fixed stripslashes() problem with the conversion of the config table from phpBB 1.x
    • +
    • Rejiggled validation code, may eliminate "Username disallowed" issues
    • +
    • Fixed differing initial "public" setting of forum permissions between different files
    • +
    • Added check for invalid (non-compliant) email addresses to upgrade script
    • +
    • Further redirect workarounds for broken servers, please direct further issues to the vendors
    • +
    • Added GMT + 13 to English lang_main, all translators are encouraged to do likewise
    • +
    • Added switch to default_lang email template if user lang template no longer exists
    • +
    • Fixed javascript error when selecting smiley containing a single quote
    • +
    • Update users watched topic if a post they made is split into a new topic
    • +
    • Fixed situations where email templates contain incorrect or missing subject lines
    • +
    • Fixed error when searching for posts and no forums exist
    • +
    • Fixed potential SQL vulnerability with marking of private messages - Ulf Harnhammar
    • +
    + +

    1.ix. Changes since 2.0.2

    + +
      +
    • Fixed potential cross-site scripting vulnerability with avatars - Showscout
    • +
    • Fixed potential SQL rewrite issue in page header - missing contrib
    • +
    • Fixed potential CSS/HTML rewrite on viewing in login - Marc Rees
    • +
    • Fixed (hopefully) issue with MS Access and multiple pages
    • +
    + +

    1.x. Changes since 2.0.1

    + +
      +
    • Fixed missing "username" lang variable in user admin template
    • +
    • Session work around for users behind rotating IPs - vHiker
    • +
    • Fixed potential session user_id re-write - Ashe
    • +
    • Fixed potential cross-browser scripting issue with BBCode URLs
    • +
    • Fixed potential gallery avatar exploit - Ashe
    • +
    • Fix sorting of smileys on each function call - Ashe/psoTFX
    • +
    • Clear topic_mod text output in viewtopic - Lars
    • +
    • Fix regex for avatar remote urls
    • +
    • Fix non-updating of user post counts when deleting whole topics
    • +
    • Increase time limit when sending topic reply notifications
    • +
    • Set default forum when splitting topics
    • +
    • Fix non-deletion of uploaded avatars when switching to gallery
    • +
    • Removed various closing newlines from included files
    • +
    • Add MAX_ROWS to HEAP table alter in install/upgrade - Ashe
    • +
    • Update username maxlength for subSilver templates
    • +
    • Allow ( and ) in BBCode [url] tags
    • +
    • Fix non-quoting of # in username validation regexs
    • +
    • Fix overlooked global var in private messaging
    • +
    • Possible fix for \r\n email templates issues
    • +
    • Fix missing str_replace for category title forum admin SQL
    • +
    • Fix trailing , when sending emails via smtp
    • +
    • Fix avatar issues in user admin
    • +
    • Fix improper checking of email address ban in sessions
    • +
    • Fix use of hard coded language strings in forum admin
    • +
    • Fix missing closing ) in smilies admin
    • +
    • Fix missing Username label in user admin
    • +
    • Fix upgrade.php bug where conversion would not complete (and updated other scripts to match the changes)
    • +
    • Fix problem with redirect and login.php
    • +
    • Fix typo that could cause problems with sorting in the memberlist
    • +
    • Fix emailer to allow sending emails with language-specific character sets
    • +
    + +

    1.xi. Changes since 2.0.0

    + +
      +
    • Fixed delete image bug for normal users
    • +
    • Fixed group control panel image links
    • +
    • Fixed missing L_POST variable in group control panel
    • +
    • Fixed missing user id when redirecting to email form after login
    • +
    • Fixed (a)ppend_sid function name error in group control panel
    • +
    • Fixed reset of post type when previewing a post
    • +
    • Fixed mass emailer include path error
    • +
    • Fixed potential SQL exploit
    • +
    • Fixed several minor subSilver issues
    • +
    • Fixed [quote] breaking HTML problem
    • +
    • Fixed problem with unclosed nested quotes
    • +
    • Fixed bad handling of automagic links at end of quotes
    • +
    • Fixed potential BBCode and avatar remote exploit
    • +
    • Altered email validation check to allow + in username as per RFC
    • +
    • Fixed incorrect behaviour with wildcards in disallowed usernames
    • +
    • Added missing append_sid for search view results as posts
    • +
    • Fixed incorrect clearing of current sessions for logged in users
    • +
    • Fixed user_timezone (cannot update user profile) problem
    • +
    • Added correct setting of moderator status for users during upgrade
    • +
    • Fixed handling of uploaded avatars if gallery avatar currently used
    • +
    • Fixed use of existing username for uploaded avatars
    • +
    • Fixed updating of topic reply stats when post is deleted
    • +
    • Fixed irrelevant error message when activating already active account
    • +
    • Fixed gzip compression problems with Netscape and some PHP versions
    • +
    • Fixed MS Access layer errors when using latest PHP versions
    • +
    • Fixed styles admin editing problems with MSSQL Server
    • +
    • Fixed logout issue when cancelling certain actions
    • +
    • Fixed missing text in certain admin links
    • +
    • Fixed opening of frame within frame when logging into admin
    • +
    • Fixed incorrect ordering of search results by time
    • +
    • Fixed fulltext searching failure with MS Access
    • +
    • Hopefully fixed fulltext search with non-latin single byte charsets
    • +
    • Enabled work-around support for some multi-byte charsets - OOHOO
    • +
    • Re-enabled search indexing of all-numeric character sequences
    • +
    • Updated email banning to properly implement wildcards
    • +
    • Fixed missing extension in links from groupcp
    • +
    • Fixed lack of re-validation when changing email address
    • +
    • Added additional IP check when using HTTP_X_FORWARDED_FOR
    • +
    • Fixed non-display of delete icon when on second or greater topic page
    • +
    • Fixed problems with users/groups assigned multiple permissions
    • +
    • Fixed problem with - and + in search words - Matthijs
    • +
    • Fixed improper handling for deletion of words from search table
    • +
    • Fixed support for , in automagic URLs as per RFC
    • +
    • Fixed circular reference SQL errors when deleting posts under MS Access
    • +
    • Fixed nested [code] problems
    • +
    • Added charset encoding headers for emails - romutis
    • +
    • Fixed "Copy to self" emails to use correct language
    • +
    • Fixed pagination error when limiting previous days for viewforum
    • +
    • Decreased minimum search word size to 3 chars
    • +
    • Fixed deletion of one or more options from all polls when editing just one
    • +
    • Fixed checking of group memberships when promoting/demoting group moderators
    • +
    • Added database closure to admin frameset page
    • +
    + +

    1.xii. Changes since RC-4

    + +
      +
    • Fixed improper report of general error when posting messages containing errors
    • +
    • Fixed post text being doubled up if it contained one or more < without closing >
    • +
    • Fixed pruning errors due to search function name change
    • +
    • Hopefully fixed various issues which led to incorrect reply and excess page counts
    • +
    • Fixed groupcp not displaying all email buttons to group moderator or admin
    • +
    • Fixed failure to display error notice when uploading oversized avatars
    • +
    • Hopefully corrected problem with viewonline displaying too few/many users online
    • +
    • Partially addressed issue with activation URLs >76 chars
    • +
    • Fixed additional search facilities failing to work or working incorrectly
    • +
    • Fixed search syntax highlighting
    • +
    • Addressed various webservers handling of page redirects
    • +
    • Fixed word censor not replacing first or last words
    • +
    • Fixed avatar height and width check for locally uploaded images
    • +
    • Hopefully fixed cache control header
    • +
    • Added check for PM box size limit of 0 to prevent div0 error
    • +
    • Fixed failure to fully delete PMs in outbox
    • +
    • Fixed display problem with polls
    • +
    • Fixed problem with guest username not being displayed for topic results in search
    • +
    • Fixed problem with quotes in various profile fields
    • +
    • Fixed schema problem with user_timezone
    • +
    • Fixed page display issue with MS Access
    • +
    • Fixed user level issue when altering user from user to admin and vice versa
    • +
    • Fixed incorrect parseing of some email templates
    • +
    • Reduced size of MS Access primer
    • +
    • Fixed various remaining usergroup display issues
    • +
    + +

    1.xiii. Changes since RC-3

    + +
      +
    • Addressed serious security issue with included files
    • +
    • Fixed non-use of database table prefix name during upgrade
    • +
    • Split functions and profile into separate modules
    • +
    • Fixed (hopefully) remaining issues with colourisation of moderator usernames
    • +
    • Updated install to include entry of additional, required, information
    • +
    • Fixed (hopefully) AOL incompatibilities
    • +
    • Fixed non-display of moderators in index/viewforum
    • +
    • Fixed group control panel 'no groups exist' problems
    • +
    • Fix HTTP_X_FORWARDED_FOR spoofing possibility
    • +
    • Fix ignoring of private range IP's in HTTP_X_FORWARDED_FOR
    • +
    • Enable multiple wildcard email banning, eg. *name*@somewhere.tld
    • +
    • Fix problems with posts being truncated if containing < and > characters
    • +
    • Prevent URL, BBCode and most smiley parseing in [code][/code]
    • +
    • Fix problems with use of certain reserved chars in word censor list
    • +
    • Fix default search useage to be as described (was doing AND by default)
    • +
    • Fix various avatar issues with profile, gallery and viewtopic
    • +
    • Enable safe mode support for uploading avatars
    • +
    • Fix broken modcp IP view issue
    • +
    • Fix potential session_id re-write vulnerability
    • +
    • Finish localisation of days and months (AM/PM are not and will not be localised in 2.0)
    • +
    • Remove link to external subSilver stylesheet from default subSilver templates
    • +
    • Handle TRANSACTIONS correctly in MySQL 3.x (by returning correct responses)
    • +
    • Fix checkbox resetting problem while previewing posts
    • +
    • Fix a login redirect issue
    • +
    • Remove some additional unused fields during upgrade
    • +
    • Fix (hopefully) remaining ICQ overlay issue with view profile in subSilver
    • +
    + +

    1.xiv. Changes since RC-2

    + +
      +
    • Fixed infamous install parse error
    • +
    • Major update of posting and related search functions (fixing various issues and increasing speed)
    • +
    • Fixed display of author and last poster names when both are different guest users
    • +
    • Fixed upgrade stall issues (hopefully!) and improved output
    • +
    • Fixed highlighting code for viewtopic and search
    • +
    • Reduced size of several files and functions
    • +
    • Moved localised images to sub-directories
    • +
    • Improved user feedback of disallowed usernames
    • +
    • Fixed various MSSQL bugs
    • +
    • Fixed installation of MSSQL/MSSQL-ODBC
    • +
    • Fixed security issue with upgrade.php
    • +
    • Finished implemention of various additional features
    • +
    • Fixed various user, group and forum permissions problems
    • +
    • Fixed issues with BBCode [ and ] (hopefully!)
    • +
    • Fixed autologin problems with MS IIS
    • +
    • Hopefully fixed problems with URIs in emails on some server configs
    • +
    • Fixed 'blank' profile and DB utilities problems on submit
    • +
    • Fixed incorrect language being used in email subjects
    • +
    • Fixed issues with incorrect private message new/unread counts
    • +
    • Fixed various PostgreSQL related errors
    • +
    • Automatically forward users to login screen in more situations
    • +
    • AEnabled (coloured) online indication of moderators and admins
    • +
    • Enabled maximum online user count
    • +
    • Altered online user count to ignore duplicate IPs (will now underestimate rather than overestimate)
    • +
    • Enabled viewing of users browsing each forum
    • +
    • Fixed (hopefully) display of overlayed ICQ icon in Netscape using subSilver
    • +
    • Fixed display of guest usernames for last post and author
    • +
    • Hidden usergroups are now completely hidden from view
    • +
    + +

    1.xv. Changes since RC-1

    + +
      +
    • Fixed numerous PostgreSQL related issues
    • +
    • Significant updates and additions to the upgrade script
    • +
    • Various (missed) hard coded language strings fixed
    • +
    • Fixed viewforum error when no forum id specified
    • +
    • Fixed old constant name useage in search system
    • +
    • Fixed display of moved posts when viewing unanswered posts
    • +
    • Fixed failure of search for user and keyword when displaying as posts
    • +
    • Fixed PM popup notification
    • +
    • Fixed view more emoticon session page problem
    • +
    • Fixed view profile email links
    • +
    • Fixed display of websites in profile
    • +
    • Fixed backup database failure
    • +
    • Fixed MS Access schema error when posting topics
    • +
    • Fixed problem with hypenated/dotted DB names in MySQL 3.23.6+
    • +
    • Various other fixes and updates
    • +
    + +

    1.xvi. Changes since RC-1 (pre)

    + +
      +
    • Upgrade script completed for initial fully functional release
    • +
    • Sessions code updated
    • +
    • Mark read code updated and hopefully fixed
    • +
    • Significant changes to properly deal with \' for non-MySQL boards
    • +
    • mssql, msaccess and mssql-odbc DB classes re-written
    • +
    • Avatar issues addressed and fixed
    • +
    • Search (INSERT) bug using MySQL fixed
    • +
    • Search highlighting issues addressed
    • +
    • Search own/other users posts fixed
    • +
    • BBCode fixes for magic URIs and other issues
    • +
    • Template updates for subSilver
    • +
    • User and group permissions problems fixed
    • +
    • Forum management problems (deletion of forum causing category not to display) fixed
    • +
    • Pagination problem with groupcp fixed
    • +
    • Backslash issues with posting and profile fixed
    • +
    • Backslash issues with emails fixed
    • +
    • preg_quote problems fixed
    • +
    • User management updated with full avatar control and missing fields
    • +
    • Private messaging box limits fixed
    • +
    • Private messaging ?folder= strangeness fixed
    • +
    • Forum pruning code updated to cope with search system
    • +
    • Emoticon system in posting updated
    • +
    • BBCode FAQ link added to posting form
    • +
    • Language file updates to address concerns of translators
    • +
    • Various other bug fixes and updates
    • +
    + +

    Note that a full list of fixed bugs can be found at the bug tracker (see section on bug reporting here)

    + +

    2. Copyright and disclaimer

    + +

    This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

    + + +
    + + + diff --git a/phpBB2_old/docs/COPYING b/phpBB2_old/docs/COPYING new file mode 100644 index 0000000..ce992b2 --- /dev/null +++ b/phpBB2_old/docs/COPYING @@ -0,0 +1,281 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + diff --git a/phpBB2_old/docs/FAQ.html b/phpBB2_old/docs/FAQ.html new file mode 100644 index 0000000..80076ee --- /dev/null +++ b/phpBB2_old/docs/FAQ.html @@ -0,0 +1,206 @@ + + + + + +phpBB 2.0.x :: FAQ + + + + + + + + + +
    + + + +
    + + + + + + +
    phpBB 2 : Creating CommunitiesphpBB 2.0.x FAQ
    + + +

    This is a very basic Frequently Asked Questions (FAQ) page which attempts to answer some of the more commonly asked questions. It is by no means exhaustive and should be used in combination with the 'built-in' User FAQ within phpBB2, the community forums (particularly the Tutorials forum) and our IRC channel (see README for details).

    + +
      + +
    1. I cannot install this it is too difficult! Will you do it?
    2. + +

      Simple answer, no we will not. We are not being difficult when we say this we are actually trying to help you. phpBB has a reputation for being easy to install, that reputation is we believe well deserved. It is a simple process of unarchiving a single file, uploading the resulting directory/files to their intended location and entering some data in a web based form. The sequence of events, what to type where, etc. is covered in detail in the accompanying INSTALL.html documentation. If you cannot install phpBB 2.0.x the chances are you will be unable to administer or update it.

      + +

      There are people, companies (unrelated to your hosting provider), etc. that will install your forum, either for free or for a payment. We do not recommend you make use of these offers. Unless the service is provided by your hosting company you will have to divulge passwords and other sensitive details. If you did not know how to use an ATM would you give a passer-by your bank card and PIN and ask them to show you what to do? No, probably not! The same applies to your hosting account details!

      + +

      We think a better solution is for you to carefully read the enclosed documentation, read our tutorials forum at www.phpbb.com and if necessary ask for help on any thing you get stuck on. However, the decision is yours but please note we may not offer support if we believe you have had the board installed by a third party. In such cases you should direct your questions to that company or person/s.

      + +
    3. How do I install this board on Lycos/coolfreepages/other free host?
    4. + +

      The old addage "You get what you pay for" is particularly true for hosting services! However if you must use a free service (and recognise its limitations) you will find details on common pitfalls in our tutorials forum at http://www.phpbb.com/phpBB/.

      + +
    5. I am having problems with the admin at a certain board, help!
    6. +
    7. A board has ripped off my graphics/software/etc., stop them!
    8. +
    9. A board is dealing in warez/porn/etc., you need to prevent them doing this!
    10. + +

      We provide the software, we have absolutely nothing to do with any board that runs it (beyond phpbb.com of course!). The GPL grants the user an unlimited right of use subject to their adherence of that licence. Therefore we cannot prevent, dictate, control or otherwise limit the use of phpBB 2 software. So please do not contact us for such matters.

      + +

      If you have a problem with a given board please take it up with them, not us. We are not and cannot be held legally responsible for any third party use of this software (much like Microsoft et al cannot be held responsible for the use of Windows in illegal activities, etc.). Additionally we do not track the use of phpBB software in any way. So please do not ask us for details on a "given" board we will not be able to help you. If any law firms or lawyers out there send us writs, Cease and Desist orders, etc. for third party website use of this software we reserve the right to charge for time wasted dealing with such issues ...

      + +
    11. According to viewonline a user is doing/reading something they should not be able to!
    12. + +

      No, they probably are not. phpBB uses sessions to keep track of users as they move between pages. The session information tells us who this user is. Therefore in order to determine what a user can do on a page we first need the session details. Once this data is available we can check whether the user is permitted to do whatever it is they are trying to do. This can result in it appearing as if a user is reading a topic in a forum they should not be able to access. Or perhaps viewing private messages when they are only guests, etc. In practice the user is not doing these things, they are viewing a "You are not permitted to do this" type message. The session data has simply been updated before we were able to determine what the user could or could not do.

      + +

      Of course this only applies where permissions have been set correctly!

      + +
    13. I keep getting Mail sending errors when I (or my users) post/send PM's/etc.!
    14. + +

      This error will occur if phpBB cannot send mail. phpBB can send email two ways; using the PHP mail() function or directly via SMTP. Some hosting providers limit the mail() function to prevent its use in spamming, others may rename it or limit its functionality. In either case you may need to make use of SMTP. This requires that you have access to such a facility, e.g. your hosting provider may provide one (perhaps requiring specific written authorisation), etc. Note that if your provider requires authorisation we only support the simple AUTH method using plaintext username/password. We do not support secure sockets layer (SSL), POP3 send or any other method. Please see http://www.phpbb.com/phpBB/ for additional help on this matter.

      + +

      If you do require SMTP services please do not ask (on our forums or elsewhere) for someone to provide you with one. Open relays are now things of the past thanks to the unthinking spammers out there. Therefore you are unlikely to find someone willing to offer you (free) services.

      + +
    15. My users are complaining that emails are not in their selected language!
    16. + +

      You must have deleted a language pack or the language pack is incomplete. phpBB will try to send emails in the users selected language. If it cannot find a suitable email template it will switch to the boards default language.

      + +
    17. The first four letters of my text disappeared when I hit submit!
    18. + +

      Some forms in phpBB make use of arrays to "post" or submit data, e.g. polls, forum management, etc. A bug exists in PHP 4.2.3 (and perhaps older versions) which can cause such data to lose the first four characters of text. This bug is related to the presence of the mbstring module and certain compile time parameters (the problem exists for both compiled in and modular version of mbstring). Please see: http://bugs.php.net/bug.php?id=19460 for more details. Note the bug is fixed in PHP CVS and thus future versions should be immune. Remember, this is not a bug in phpBB 2.

      + +
    19. My AOL based users keep getting logged out!
    20. + +

      phpBB2 uses sessions to keep track of users as they browse the board. These sessions use a combination of a unique session id and the users IP to identify each user. We make use of the IP as an extra safe-guard to help prevent sessions being hijacked (by discovering the unique session id).

      + +

      Unfortunately this only works when the users IP is constant as they browse the board. For most users this will be the case. However certain providers route their users via a cluster of proxys. In some cases, particularly AOL this results in different IPs being forwarded as the user moves between pages. We take account of this by not checking the entire IP but only the first "three quads". Again in most cases this will be fine. However again AOL uses IPs which can vary so much that checking only the first two quads results in a fairly static IP being available for session validation.

      + +

      If you are experiencing problems related to this you can make a small change to the code. Please note that reducing the IP validation length does potentially increase the risk of sessions being hijacked (this is something for you to consider, phpBB Group takes no responsibility should anything happen!). The change requires you to open the file sessions.php in the includes/ directory of the distribution. Find line 250, it contains the following

      $ip_check_s = substr($userdata['session_ip'], 0, 6);
      change this to:
      $ip_check_s = substr($userdata['session_ip'], 0, 4);
      You need to make exactly the same change to the number 6 in the next line. Save the file (and upload it if required). This should reduce or eliminate the problem noted.

      + +
    21. I selected X for my timezone but the time is not correct!
    22. + +

      I suspect the time is correct but that you may have switched (locally) to daylight savings time. At present we do not support daylight savings only standard local times. Therefore during summer months (depending on whether your nation/state switches to daylight savings) the board times may appear to be one hour behind the real local time. The solution is to either put up with it (just let your users know) or to move the timezone of everyone who is affected (remember that not all your users may be from nations who have switched to daylight savings) on one hour, eg. GMT becomes GMT+1. This requires running some SQL and you should search our forums for information.

      + +

      If this is not the case then I suspect your servers time is at fault. phpBB 2 stores all times in the form of a unix timestamp. This is a 32bit integer value containing the number of seconds since the unix epoch event, 1st January 1970 00:00:00 GMT. This value is global in nature and will be the same wherever you are in the world. So, if your time is incorrect and you have selected the appropriate timezone chances are your server time is off.

      + +
    23. I am seeing &#nnnn; sequences output instead of what I typed!
    24. + +

      To enable compliance with HTML and XHTML specifications as well as enabling browsers to automatically support a users selected language we enable a charset tag to be output to the browser. This identifies the primary character set the user has selected, eg. iso-8859-1 for Western European languages (English, German, French, etc.), windows-1251 for Cyrillic alphabets (Russian, Bulgarian, etc.) and so on. The downside to doing this is that most modern browsers (such as Internet Explorer) convert any character not present in that character set into what are termed Numerical Character References or NCR's. These take the form of &#nnnn; where nnnn is the hexadecimal number of that characters UNICODE reference.

      + +

      Unfortunately PHP (which effectively supports only iso-8859-1 at this time) does not appear to attempt to process this data back into normal characters. Therefore phpBB treats them as text the user has entered and wishes to see. phpBB enables this by turning the & into &amp;. This results in the characters appearing as they do. Although we could ignore &#nnnn; (there are pro's and of course con's to doing so) at present we don't.

      + +

      If you are finding this to be problem the solution is to remove the

      charset={S_CONTENT_ENCODING}
      text from all the _header.tpl template files in all templates. The downside to this is a users browser will not automatically switch its charset to that selected by the user (however this is unlikely to be a big problem since users typically run their browser by default in the language they wish to use). Alternatively you can modify the $lang['ENCODING'] entry in the appropriate language file. Until PHP (and all browsers!) trully support UNICODE these problems will persist across all boards.

      + +
    25. I cannot search for certain words! + +

      phpBB 2 uses a Fulltext search system, this has both advantages and disadvantages. The advantage is that on large or busy forums it has far less impact on server load than standard search methods as used by many alternative forums (including phpBB 1.x). The disadvantage is that to reduce the size of the database (every post is examined and unique words stored in a table) we have to limit the size and type of words we store. By default words must contain at least three characters but no more than 25, they must be either alpha or combinations of alpha and numerals (numbers alone are not stored). In addition all non-alphanumeric characters are removed, eg. _, +, -, etc. This is standard practice for fulltext search solutions.

      + +

      A further downside is that non-latin alphabets, eg. Cyrillic, Greek, etc. require proper locale support to be compiled in and available on the server your board is running on. If this is not the case it is quite likely that words will not be properly indexed for storage. In many cases this can be recified by altering the setlocale(LC_ALL, '[LOCALE_HERE]'); statement in the appropriate language file. If you are experiencing problems you should change whatever is currently in place of [LOCALE_HERE] with the locale as available on your server. If you do not know this please ask your hosting provider. Some examples may be ru_RU.WIN_CP_1251 for the codepage used for the Russian translation, ko.KOI8 for Korean, etc.

      + +

      Please note that support for multibyte character sets remains very limited in PHP4 and therefore Japanese, Chinese, etc. may have difficulty getting the fulltext search working correctly at all.

      + +
    26. My screen is filled with errors when I try to view the forum! + +

      Are they errors? Are you sure they are not warnings? They probably are ... What you're seeing is PHP warn you about unset variables. Great care has been taken with phpBB 2.0 to ensure it is secure. Unset variables while being a potential security risk really shouldn't be in 2.0. Unfortunately some hosting providers have decided that any unset variables equal security problems and force PHP to output these warnings even though phpBB 2.0 is set to ignore them.

      + +

      We have worked some way toward checking and/or setting all variables before use but this will take time to complete (if it can be). Therefore I am afraid for the time being you will have to manually modify the code or ask your hosting provider to be more realistic with their setup.

    27. + +
    28. How do I use the avatar settings? + +

      There are three types of avatar; upload, remote and local.

      +

        +
      • Upload types require you to create a directory (the default is images/avatars) and to set this to public read/write (ie. chmod a+rw), users can then upload avatars (subject to width, height and size limits definable by you).
      • +
      • Remote avatars allow the user to supply a URI pointing to an image available on the internet, PLEASE NOTE that size limits do not apply to remote avatars!
      • +
      • Local avatars allow you to upload your own avatars to a set directory, users can then pick from this avatar gallery. The default location for this is images/avatars/gallery. PLEASE NOTE that avatars are categorised according to sub-folders in this location! ie. you MUST place your avatars in subdirectories, eg. images/avatars/gallery/cartoons, images/avatars/gallery/real-life, etc.
      • +

    29. + +
    30. No matter what I set the uploadable avatars to I cannot upload one from my computer! + +

      There are two possibilities here, the first is you have not created the directory you specified as the storage location for avatars, ie. as specified in the Admin->General Configuration->Avatars section. If the directory does not exist uploadeable avatars are automatically disabled. You should create the required directory (ensuring it has global write access or other appropriate permissions to allow the webserver to write files to it).

      + +

      The second possibility is that your provider has disabled file_upload support, possibly because of a recently found serious security issue with PHP before version 4.1.2. You should contact your provider and ask them if this is the case. It may be unrelated to the security issue and your provider has simply decided to disable such things in general. In either case I'm afraid there is not a lot you can do, there are still three other avatar settings left to choose from including uploading via a URL which will work fine

    31. + +
    32. I just cannot get gallery avatars to appear! + +

      Chances are you have not followed our instructions above. phpBB 2 categorises gallery avatars and it does this by reading through folders contained in the location you specified as being the gallery path. For example, if you set the gallery path to "images/avatars/gallery" phpBB 2 will expect to find a series of folders within that path, eg. "images/avatars/gallery/moviestars", "images/avatars/gallery/cartoons", "images/avatars/gallery/misc", etc. Placing images directly in "images/avatars/gallery/" will result in nothing being listed in your gallery.

    33. + +
    34. How do I set forum permissions? + +

      You set forum permissions from the administration control panel -> Forums -> Permissions. This system has two modes of operation; Simple and Advanced. Simple uses a set of pre-defined authorisation levels, these set each type of authorisation setting to a specific level. Advanced settings allow you to specify individual levels for each operation in each forum. Experiment!

    35. + +
    36. How do I set user and group permissions? + +

      These are set from Admin -> Users (Groups) -> Permissions. The system may appear strange but it's very powerful. When you look up a user or group it will give you basic information (at the top of the page) followed by the available forum listing and current settings for this user. You can assign moderator status to users and groups and if you have PRIVATE forums (or forums with any of their individual operations set to PRIVATE) you can also assign access.

    37. + +
    38. How do I set a user (group) as moderator? + +

      See above

    39. + +
    40. Why are there no entries in the user (group) permission "Allow Access" column? + +

      You can only allow (or deny) users access to PRIVATE forums, or forums which have one or more operations set to PRIVATE

    41. + +
    42. How come I cannot set "Vote" to ALL?
    43. + +

      phpBB does not by default allow guest voting. This was done to prevent guest users (who cannot be reliably tracked) from voting time and time again in the same poll. There is a Mod available if you really need this feature, please see our Mod forums at http://www.phpbb.com/phpBB/.

      + +
    44. I (or my users) cannot stay logged in to the forum! + +

      If you (or your users) are, after attempting a login, being returned to the index (or other page) without appearing to be logged in the most likely problem is incorrect cookie settings. phpBB 2 uses cookies to store a session id and a small amount of user data. For this data to be stored correctly the cookie domain, path and secure settings must be correct. You can check this in Admin->General Configuration->Cookie settings. Typically the cookie domain can be left blank and the cookie path set to / (a single forward slash). Do not set the cookie as being secure unless your board is running over a secure sockets layer connection, ie. https://

      + +

      If you still have problems try setting the cookie domain to your full domain name, eg. www.mysystem.tld, www.something.mydomain.tld. You must ensure the domain name contains at least two dots or browsers will be unlikely to recognise the cookie, eg. .mydomain.com, mydomain.com. Do not add http:// or anything else to the domain name!

    45. + +
    46. My users are complaining about being logged out too quickly! + +

      You can increase the default length of sessions (ie. how long before a users session is considered 'dead') in Admin->General->Configuration->Cookie Settings->Session Length. Set it to whatever value your users feel comfortable with, remember that security issues may affect your decision (ie. having too long a session may allow non-users to abuse your board should a user forget to logout or otherwise leave a current session on a public workstation).

    47. + +
    48. I am having problems with HTML! + +

      If you want to allow your users to make use of HTML in posts you need to do two things. Firstly enable HTML in Admin -> General -> Configuration. Secondly to need to make sure that the tags your users will post are in the Allowed HTML Tags field (again Admin -> General -> Configuration). If users post using tags not on this list they won't be displayed as HTML! eg. to enable someone to post Flash you could add the embed tag to this field. Be careful which tags you allow, it is very easy to break the boards own output if the wrong tags are used in posts.

    49. + +
    50. Can I suggest a feature for phpBB 2.2? + +

      Yes you most certainly can, phpBB 2.0.0 is now feature frozen and only bug fix releases will be made from this line. However, work has already started on the next release of phpBB, phpBB 2.2. We already have a number of features in mind and these are listed on our task manager:

      + +

      http://sourceforge.net/pm/task.php?group_project_id=13524&group_id=7885&func=browse.

      + +

      Some of these features will also be discussed on forums at http://www.phpbb.com/phpBB/.

      + +

      To suggest a feature first consult the task list mentioned above, if your idea is already listed then the chances are good that it will appear in 2.2. If your suggestion is not listed please submit it to our feature request tracker:

      + +

      http://sourceforge.net/tracker/index.php?group_id=7885&atid=357885.

      + +

      Before submitting please read through the already present suggestions, if one matches or is similar to yours please add to it rather than creating a new entry.

      + +

      We make no promises to the inclusion of features but we will endeavour to introduce the most requested or most interesting ones.

    51. + +
    52. Why is phpBB 1.x faster than phpBB 2.0? + +

      The original phpBB 1.0 saw a very large decrease in page generation times from version 1.0/1.2 to 1.4. This was achieved by rewriting many of the SQL queries and splitting the database. These changes came about from work on phpBB 2.0. With phpBB 2.0 we have introduced numerous additional functions and features, not least of which is full templating (the separation of page design from code). This results in a slowdown from phpBB 1.4, we suspect though that the new features will outweigh the small difference in page generation times.

    53. + + +
    54. My question isn't answered here! + +Feel free to search our community forum for the information you require. PLEASE DO NOT post your question without having first used search, chances are someone has already asked and answered your question. You can find our board here:

      + +

      http://www.phpbb.com/phpBB/

    55. + +
    + +

    Copyright and disclaimer

    + +

    This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

    + + +
    + + + \ No newline at end of file diff --git a/phpBB2_old/docs/INSTALL.html b/phpBB2_old/docs/INSTALL.html new file mode 100644 index 0000000..ec16eaa --- /dev/null +++ b/phpBB2_old/docs/INSTALL.html @@ -0,0 +1,257 @@ + + + + + +phpBB 2.0.11 :: Install + + + + + + + + + +
    + + + +
    + + + + + + +
    phpBB 2 : Creating CommunitiesphpBB 2.0.11 INSTALL
    + + +

    Please read this document completely before proceeding with installation.

    + +

    Please note these instructions are not fully comprehensive, a more thorough userguide will be available on the phpBB website in the near future. However, this document will walk you through the basics on installing the forum software.

    + +

    A basic overview of running phpBB 2.0.11 can be found in the accompanying README documentation. Please ensure you read that document in addition to this! For more detailed information on using phpBB 2 you should read Userguide now available online.

    + +
      +
    1. Quick Install
    2. +
    3. Requirements
    4. +
    5. New Installations
    6. +
        +
      1. Changing the file extension
      2. +
      3. Replacing an old phpBB 1.x install
      4. +
      5. Installing on MySQL 3 and 4, PostgreSQL 7.x, MS SQL 7/2000 (inc. via ODBC)
      6. +
      7. Installing on MS Access 2000/XP
      8. +
      9. Entering required data
      10. +
      11. Completing installation
      12. +
      +
    7. Upgrade from phpBB 1.4.x
    8. +
    9. Upgrade from phpBB 2.0 beta-1
    10. +
    11. Upgrade from previous Release Candidate versions of phpBB 2
    12. +
        +
      1. Changes in language pack format and templates
      2. +
      +
    13. Upgrade from stable releases of phpBB 2.0.x
    14. +
        +
      1. Full package
      2. +
      3. Changed files only
      4. +
      5. Patch file
      6. +
      7. All package types
      8. +
      +
    15. Important (security related) post-Install tasks for all installation methods
    16. +
        +
      1. Uploadable avatars
      2. +
      3. Safe Mode
      4. +
      5. Optional extras
      6. +
      +
    17. Disclaimer
    18. +
    + +

    1. Quick Install

    + +

    If you have basic knowledge of using FTP and are sure your hosting service or server will run phpBB 2 you can use these steps to quickly get started. For a more detailed explanation you should skip this and go to section 2 below.

    + +
      +
    1. Decompress the phpBB 2 archive to a local directory on your system.
    2. +
    3. Upload all the files contained in this archive (retaining the directory structure) to a web accessible directory on your server or hosting account. +
    4. Change the permissions on config.php to be writeable by all (666 or -rw-rw-rw- within your FTP Client)
    5. +
    6. Using your web browser visit the location you placed phpBB 2 with the addition of install/install.php, e.g. http://www.mydomain.com/phpBB2/install/install.php, http://www.mydomain.com/forum/install/install.php etc. +
    7. Fill out all the requested information and hit Submit
    8. +
    9. Change the permissions on config.php to be writeable only by yourself (644 or -rw-r--r-- within your FTP Client)
    10. +
    11. Click the Complete Installation button or revisit the location you entered above.
    12. +
    13. phpBB 2 should now be available, please MAKE SURE you read at least Section 8 below for important, security related post-installation instructions.
    14. +
    + +

    If you experienced problems or do not know how to proceed with any of the steps above please read the rest of this document.

    + +

    2. Requirements

    + +

    Installation of phpBB 2.0.11 requires the following:

    +
      +
    • A webserver or web hosting account running on any major Operating System
    • +
    • A SQL database system, one of: +
        +
      • MySQL (3.22 or higher)
      • +
      • PostgreSQL 7.0.3 or higher (preferably 7.1.x or 7.2.x)
      • +
      • MS SQL Server (7 or 2000) directly or via ODBC
      • +
      • MS Access (2000 or XP) via ODBC
      • +
      +
    • +
    • PHP (3.0.9 and above or preferably a recent 4.x) with support for the database you intend to use above
    • +
    + +

    If your server or hosting account does not meet the requirements above I am afraid phpBB 2.0 is not for you.

    + +

    3. New Installations

    + +

    Installation of phpBB 2 will vary according to your server and database. If you have shell access to your account (via telnet or ssh for example) you may want to upload the entire phpBB 2 archive (in binary mode!) to a directory on your host and unarchive it there.

    + +

    If you do not have shell access or do not wish to use it you will need to decompress the phpBB 2 archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP ALL the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do NOT force filenames to all lower or upper case doing so will cause errors later.

    + +

    All .php, .inc, .sql, .cfg and .htm files should be uploaded in ASCII mode, while all graphics should be uploaded in BINARY mode. If you are unfamiliar with what this means please refer to your FTP client documentation. In most cases this is all handled transparantly by your ftp client but if you encounter problems later you should be sure the files where uploaded correctly as described here.

    + +

    phpBB2 comes supplied with English as its standard language. However a number of seperate packs for different languages are available. If you are not a native English speaker you may wish to install one or more of these packages before continuing. The installation process below will allow you to select a default language from those available (you can of course change this default at a later stage). For more details of language packs, where to obtain them and how to install them please see the README.

    + +

    Once all the files have been uploaded to your site you should point your browser at this location with the addition of install/install.php (please note that if you changed the extension from php, see Section 3.i below, you should alter install.php appropriately). For example if your domain name is www.mydomain.tld and you placed phpBB 2 in a directory /phpBB2 off your web root you would enter http://www.mydomain.tld/phpBB2/install/install.php into your browser. When you have done this you should see the phpBB 2 Installation screen appear.

    + +

    3.i. Changing the file extension

    + +

    If the file extension used to execute PHP scripts on your server is NOT .php but for example .php3 or .phtml you should first rename ALL files ending in .php and change the value of $phpEx in extension.inc. In the vast majority of cases this step will be unncessary.

    + +

    3.ii. Replacing an old phpBB 1.x install

    + +

    NOTE, you should NOT place phpBB 2 files into the same directory as any previous installation of phpBB 1.x! Create a new directory (or move your old phpBB 1.x out of the way), failure to do this will result in runtime errors.

    + +

    3.iii. Installing on MySQL 3 and 4, PostgreSQL 7.x, MS SQL 7/2000 (inc. via ODBC)

    + +

    Before proceeding with installation you should ensure you have a database available. Most good hosting accounts now come with at least one database as part of the basic package although it may need to be setup before first use. Ask your provider for details if you are unsure whether you do or not. If you are running your own server and are unsure how to create a database you should refer to your SQL servers documentation or website, e.g. http://www.mysql.com/doc/, http://www.postgresql.org/users-lounge/, etc.

    + +

    If your database server is MySQL PLEASE ensure you select the appropriate version from the dropdown box. Do NOT select MySQL 4.x if you have MySQL 3.x (the most common type) installed, if in doubt select MySQL 3.x.

    + +

    3.iv. Installing on MS Access 2000/XP

    + +

    Before you install phpBB 2 you need to create a Data Source Name or DSN. The exact way to do this will depend on your hosting provider, if you are unsure you should check with them before proceeding. In general though you should create a System DSN which points to the location where you have stored an unarchived copy of the ms_access_primer.mdb file (this is contained in the ms_access_primer.zip which can be found in install/schemas/). The name you give this DSN will be used during installation. Do not proceed until this step is complete!

    + +

    Please note that MS Access support is not designed for busy boards. If you anticipate more than one or two users being online at any given time you should upgrade to a more robust server solution.

    + +

    3.v. Entering required data

    + +

    Once you have reached the installation page you need to fill out several fields. Be sure to select the right database type! If you do not have or do not know the database name, database server, etc. please check with your hosting provider. For non-ODBC databases the database server is typically localhost but this is NOT universal! If you are using an ODBC based database (such as MS Access or MSSQL via ODBC) you should enter the DSN here (see 2.iv.).

    + +

    The database prefix allows you to enter a few characters, short name, etc. which all tables used by this installation will be prefixed with. The default (phpbb_) will usually be fine. However if you have more than one copy of phpBB 2 using the same database be sure to alter it or you will receive errors during installation.

    + +

    The remaining information is personal to you and your site. You will need to enter a username and password for the initial administration account (more administrators can be created later). The server name, server port and script path are essential because all emails containing URLs will use these values. The installer will guess initial values, however they may not be correct so be sure to check them!

    + +

    Remember that a domain (or server) name does NOT include http://! Enter just the domain name, eg. www.mydomain.tld and NOT http://www.mydomain.tld/. The server port can, in the great majority of cases be left as 80, this is the standard http port. However if your web server listens to a different port because for example port 80 is blocked then alter this appropriately. The script path is the relative path from your webroot where phpBB 2 is installed, e.g. if you install phpBB 2 into phpBB 2/ in your webroot then enter phpBB 2 (or /phpBB 2/) as the script path.

    + +

    3.vi. Completing installation

    + +

    Once you have checked all the data press submit. The installation script will create and populate all the necessary tables. It will then attempt to write to the config.php file which will contain the basic configuration data used to run phpBB 2. If the installer cannot write config.php directly you will be given the option of either downloading the file or even FTPing it to the correct location. If you choose to download you should then re-upload the file to your server, overwriting the existing config.php in the process. If you attempt to FTP via the install script you should supply the requested information. Should FTP fail you will be able to download the file and then re-upload as described earlier.

    + +

    During the installation procedure phpBB 2 will check to ensure the relevant PHP database module is available and will not proceed if it cannot be found. Should this happen be sure to check you have selected the correct database and/or ask your hosting provider for advice.

    + +

    Do not proceed untill the installation is completed and (if necessary) you have uploaded the config.php file.

    + +

    4. Upgrade from phpBB 1.4.x

    + +

    Before upgrading we heavily recommend you do a full backup of your database! If you are unsure how to achieve this please ask your hosting provider for advice. One you have backed up your database you should follow the basic instructions given for New Installations above. However instead of selecting Install as the Installation Method you should select Upgrade.

    + +

    As with install the upgrade is automated. The config.php will be written automatically (if possible, else you will be able to download a copy as with New Installation above). Once the config.php is in place everything should proceed without error. Please note that this upgrading process may take quite some time and depending on your hosting provider this may result in it failing (due to web server or other timeout issues). If this is the case you should ask your provider if they are willing to allow the upgrade script to temporarily exceed their limits (be nice and they will probably be quite helpful).

    + +

    Once completed your board should be immediately available. If you encountered errors you should restore your original database and report the problems to our bug tracker or seek help via our forums (see README for details).

    + +

    5. Upgrade from phpBB 2.0 beta-1

    + +

    Sorry but no direct upgrade is available from beta-1 (we did warn you!). If you are reasonably confident with the use of SQL, etc. you may be able to make the required changes to the database manually. You will need to examine the CVS check-ins to determine what needs changing where.

    + +

    6. Upgrade from previous Release Candidate versions of phpBB 2

    + +

    Upgrading from these versions is generally quite easy. First you should make a copy of your existing config.php, keep it in a safe place! Next delete all the existing phpBB 2 files, do not leave any in place otherwise you may encounter errors later. You can leave alternative templates in-place but you should note they may not function correctly with the final release. It is therefore recommended you switch back to subSilver if you are currently using a different style. With this complete you can upload the new phpBB 2.0.0 files (see New Installations for details if necessary). Once complete copy back your saved config.php, replacing the new one.

    + +

    You should now run install/update_to_210.php which, depending on your previous version, will make a number of database changes. You may receive FAILURES during this procedure, they should not be a cause for concern unless you see an actual ERROR, in which case the script will stop (in this case you should seek help via our forums or bug tracker).

    + +

    RC-2 and below MSSQL users, please note that during the update procedure your existing forums table will be dropped and re-created. All data in standard fields will be retained. However if you have modified the forums table and added additional fields or altered existing ones these changes WILL be lost. If this is a significant issue for you we advise you comment out the "DROP FORUM TABLE" section in update_to_210.php and instead, manually alter the forum_id column to remove the IDENTITY setting (if it exists).

    + +

    Once the update_to_210.php has completed you MUST proceed to the Administration General Configuration panel and check all the values in General Configuration. This is essential if you were running any version before RC-3 since extra information needs to be entered to enable correct URLs to be output in emails.

    + +

    6.i. Changes in language pack format and templates

    + +

    Please note that changes have been made to the format of language, image localisations and templates from previous RC's to FINAL. If you were running a release candidate prior to RC-3 you will need to download new language and image localisation packs. You can safely delete any existing *_lang.gif files in the subSilver/images directory since these are no longer utilised. If you are using or have installed any 3rd party template set you must either remove it or update it. Changes have been made to a number of template variables which will result in these not working unless they have been updated to meet phpBB 2.0.x standards.

    + +

    7. Upgrade from previous stable (released) versions of phpBB 2

    + +

    If you are currently using a stable release of phpBB 2 updating to this version is straightforward. You would have downloaded one of three packages and your choice determines what you need to do. Please Note: That before upgrading we heavily recommend you do a full backup of your database and existing phpBB2 source files! If you are unsure how to achieve this please ask your hosting provider for advice.

    + +

    MySQL Users Please Note: Changes introduced in 2.0.4 may increase the size of your database, more specifically the search_wordmatch table. There are other changes in that release which are designed to reduce the database size. However these additional changes may not apply to all types of forum (particularly non-English boards). While any increases will be relatively small compared to the overall database size it may be an issue for some users. In particular users on hosting plans which limit database size and where the database is near that limit.

    + +

    7.i. Full package

    + +

    If you have downloaded the full package you should follow the same general upgrade path as for "Upgrade from previous Release Candidate versions of phpBB 2". The exception to this being the need to switch or update styles. In addition there is generally little need to visit the admin panel (though it is adviseable).

    + +

    7.ii. Changed files only

    + +

    This package contains a number of archives, each contains the files changed from a given release to 2.0.11. You should select the appropriate archive for your current version, e.g. if you currently have 2.0.10 you should select the phpBB-2.0.10_to_2.0.11.zip/tar.gz file.

    + +

    The directory structure has been preserved enabling you (if you wish) to simply upload the contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any Mods these files will overwrite the originals possibly destroying them in the process. You will need to re-add Mods to any affected file before uploading.

    + +

    As for the other upgrade procedures you should run install/update_to_210.php after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.

    + +

    7.iii. Patch file

    + +

    The patch file is probably the best solution for those with many Mods or other changes who do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type patch application.

    + +

    A number of patch files are provided to allow you to upgrade from previous stable releases. Select the correct patch, e.g. if your current version is 2.0.10 you need the phpBB-2.0.10_to_2.0.11.patch. Place the correct patch in the parent directory containing the phpBB 2 core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME] (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB2, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.

    + +

    If you do get failures you should look at using the Changed files only package to replace the files which failed to patch, please note that you will need to manually re-add any Mods to these particular files. Alternatively if you know how you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.

    + +

    You should of course delete the patch file (or files) after use. As for the other upgrade procedures you should run install/update_to_210.php after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.

    + +

    7.iv. All package types

    + +

    If you have non-English language packs installed you may want to see if a new version has been made available. A number of missing strings have been added which, though not essential, may be beneficial to users. Please note that at this time not all language packs have been updated so you should be prepared to periodically check for updates.

    + +

    8. Important (security related) post-Install tasks for all installation methods

    + +

    Once you have succssfully installed phpBB 2.0.11 you MUST ensure you remove the entire install/ and contrib/ directories. Leaving these in place is a very serious potential security issue which may lead to deletion or alteration of files, etc. Please note that until these directories are remove phpBB2 will not operate and a warning message will be displayed. Beyond these essential deletions you may also wish to delete the docs/ directories if you wish.

    + +

    With these directories deleted you should proceed to the administration panel. Depending on how the installation completed you may have been directed there automatically. If not, login as the administrator you specified during install/upgrade and click the "Administration Panel" link at the bottom of any page. Ensure that details specified in General -> Configuration are correct!

    + +

    8.i. Uploadable avatars

    + +

    phpBB 2 supports several methods for allowing users to select their own avatar (an avatar is a small image generally unique to a user and displayed just below their username in posts).

    + +

    Two of these options allow users to upload an avatar from their machine or a remote location (via a URL). If you wish to enable this function you should first ensure the correct paths for uploadeable avatars is set in Admin -> General -> Configuration -> Avatars. By default this is images/avatars but you can set it to whatever you like, just ensure the configuration setting is updated. You must also ensure this directory can be written to by the webserver. Usually this means you have to alter its permissions to allow anyone to read and write to. Exactly how you should do this depends on your ftp client or server operating system.

    + +

    On UNIX systems for example you set the directory to a+rwx (or ugo+rwx or even 777). This can be done from a command line on your server using chmod or via your FTP client (using the Change Permissions, chmod or other Permissions dialoge box, see your FTP clients documentation for help). Most FTP clients list permissions in the form of User (Read, Write, Execute), Group (Read, Write, Execute) and Other (Read, Write, Execute). You need to tick all of these boxes to set correct permissions.

    + +

    On Windows system you need to ensure the directory is not write-protected and that it has global write permissions (see your servers documentation or contact your hosting provider if you are unsure on how to achieve this).

    + +

    Please be aware that setting a directories permissions to global write access is a potential security issue. While it is unlikely that anything nasty will occur (such as all the avatars being deleted) there are always people out there out to cause trouble. Therefore you should monitor this directory and if possible make regular backups.

    + +

    8.ii. Safe Mode

    + +

    phpBB 2.0.11 includes support for using uploadable avatars on systems running PHP in safe mode. If this applies to your hosting service you will need to create a sub-directory called tmp in the directory you specified for storage of uploaded avatars (by default this is images/avatars as explained above). Give it the same access rights as for uploadable avatars above.

    + +

    This safe mode support includes compatibility with various directory restrictions your host may impose (assuming they are not too restrictive and that the PHP installed is version 4.0.3 or later). There is generally no need for any manual setup for safe mode support it is typically handled transparantly.

    + +

    8.iii. Optional extras

    + +

    Included with this package are two extra (optional) files, you will find them in the contrib/ directory. These extras, template_file_cache.php and template_db_cache.php address concerns over server load and page generation times on slower or heavily loaded systems. These updated template modules compile each template and uses this rather than compiling each file everytime it is viewed. Tests seem to indicate a noticeable decrease in page generation times and more importantly a significant decrease in overall server load in virtual hosting environments.

    + +

    You should see the README contained within the contrib directory for more details.

    + +

    9. Copyright and disclaimer

    + +

    This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

    + + +
    + + + diff --git a/phpBB2_old/docs/README.html b/phpBB2_old/docs/README.html new file mode 100644 index 0000000..7e25480 --- /dev/null +++ b/phpBB2_old/docs/README.html @@ -0,0 +1,226 @@ + + + + + +phpBB 2.0.11 :: Readme + + + + + + + + + +
    + + + +
    + + + + + + +
    phpBB 2 : Creating CommunitiesphpBB 2.0.11 README
    + + +

    Thank you for downloading phpBB 2, the long awaited re-write of the popular phpBB 1.x online community forum. This README will guide through the basics of installation and operation of phpBB 2. Please ensure you read this and the accompanying documentation fully before proceeding with the installation.

    + +
      +
    1. Installing phpBB 2
    2. +
    3. Running phpBB 2
    4. +
        +
      1. Internationalisation (i18n)
      2. +
      3. Styles
      4. +
      5. Mods
      6. +
      +
    5. Getting help with phpBB 2
    6. +
        +
      1. Userguide
      2. +
      3. Community Forums
      4. +
      5. Internet Relay Chat
      6. +
      +
    7. Status of this version
    8. +
    9. Reporting Bugs
    10. +
        +
      1. Security related bugs
      2. +
      +
    11. Overview of current bug list
    12. +
    13. PHP compatibility issues
    14. +
        +
      1. Notice on PHP security issues
      2. +
      +
    15. Disclaimer
    16. +
    + +

    1. Installing phpBB 2

    + +

    Installation and upgrade instructions can be found in the INSTALL document contained in this distribution. If you are intending to upgrade from a previous phpBB 1.4.x installation we highly recommend you backup any existing data before proceeding!

    + +

    Please note that users of Release Candidate (RC) versions of phpBB 2 should run the update_to_205.php script BEFORE attempting to access your board. Failing to do so may result in errors and unexpected behaviour! While these won't do any damage they will prevent you using your board.

    + +

    If you are using RC-1 (pre) you may find some other DB changes have occured and should examine the schemas to see if your installation requires any modifications (note that most of these have already been discussed on the phpBB 2 forums and are handled by the update script). If you are uncomfortable doing any of this we recommend you re-install (you may backup your existing data if you wish, re-install phpBB 2 and then insert your backup).

    + +

    Users of phpBB 2.0 Beta-1 cannot directly upgrade to phpBB 2.0 RC-2, 3 or 4, sorry.

    + +

    2. Running phpBB 2

    + +

    Once installed phpBB 2.0 is easily managed by both admin and moderator control panels. If you need help or advice with phpBB 2 please see Section 3 below.

    + +

    2.i. Internationalisation, i18n

    + +

    A number of language packs and subSilver localisations are now available. You can find them on our official download page:

    + +

    http://www.phpbb.com/downloads.php

    + +

    This is the Official location for all support language sets. If you download a package from a 3rd party site you do so with the understanding that we cannot offer support. So please, do not ask for help in these cases!

    + +

    Installation of these packages is straightforward, simply download the required language pack and unarchive it into the languages/ folder. Please ensure you retain the directory structure when doing this! To install the subSilver image packs you should unarchive the file/s into the templates/subSilver/images directory, again you must retain the directory structure. Once installed the languages will become immediately available.

    + +

    If your language is not available please visit our forums where you will find a topic listing translations currently available or in preparation. This topic also gives you information should you wish to volunteer to translate a language not currently listed

    + +

    Please note that users who have upgraded to 2.0.11 from versions prior to RC-3 should will need to download new versions of the language/subSilver image packs. Any package downloaded prior to the availability of RC-3 will not function correctly with this version of phpBB 2.

    + +

    If you have upgraded from 2.0.0 and make use of non-English language packs you will benefit from downloading updated versions which will become available shortly. These introduce a number of strings which went missing from the first version plus a few updates and additions.

    + +

    2.ii. Styles

    + +

    Although phpBB Group are rather proud of the subSilver style (which has influenced many of our competitors boards updated designs!) we realise that it may not be to everyones tastes. Therefore phpBB 2 allows styles to be switched with relative ease. Firstly you need to locate and download a style you like. We maintain such a site at

    + +

    http://www.phpbb.com/styles/

    + +

    Please note that 3rd party styles downloaded for versions of phpBB 2 prior to its final (2.0.x) release will not function correctly. You should either remove these styles or (if available) update them to meet changes in 2.0.x.

    + +

    Once you have downloaded a style the usual next step is to unarchive (or upload the unarchived contents of) the package into your templates/ directory. You then need to visit Administration -> Styles -> Add, you should see the new style available, click add and it will become available for all your users.

    + +

    2.iii. Mods

    + +

    Although not officially supported by phpBB Group, phpBB 2 has a thriving mod (formerly known as hacks) scene. These third party modifications to the standard phpBB 2 extend its capabilities still further and can be found at:

    + +

    http://www.phpbb.com/mods

    + +

    Please remember that any bugs or other issues that occur after you have added any modification should NOT be reported to the bug tracker (see below). First remove the modification and see if the problem is resolved.

    + +

    Also remember that any modifications which modify the database in any way may render upgrading your forum to future versions more difficult unless we state otherwise. With all this said many users have and continue to utilise many of the mods already available with great success

    + +

    3. Getting help with phpBB 2

    + +

    phpBB 2 can seem a little daunting to new users in places, particularly with regard the permission system. The first thing you should do is check the FAQ which covers a few basic getting started questions. If you need additional help there are several places you should look.

    + +

    3.i. phpBB 2 Userguide

    + +

    A comprehensive userguide is now available online and can be accessed from the following location:

    + +

    http://www.phpbb.com/guide/phpBB_Users_Guide.html

    + +

    This covers everything from installation through setting permissions and managing users.

    + +

    3.ii. Community Forums

    + +

    phpBB Group maintains a thriving community where a number of people have generously decided to donate their time to help support users. This site can be found at:

    + +

    http://www.phpbb.com/

    + +

    If you do seek help via our forums please be sure to do a Search before posting. This may well save both you and us time and allow the developer, moderator and support groups to spend more time responding to people with unknown issues and problems. Please also remember that phpBB is an entirely volunteer effort, no one receives any compensation for the time they give, this includes moderators as well as developers. So please be respectful and mindful when awaiting responses.

    + +

    3.iii Internet Relay Chat

    + +

    Another place you may find help is our IRC channel. This operates on the Openprojects IRC network, irc.openprojects.net and the channel is #phpbb and can be accessed by any good IRC client such as mIRC, XChat, etc. Again, please do not abuse this service and be respectful of other users.

    + +

    4. Status of this version

    + +

    This is the second stable release of phpBB 2. The 2.0.x line is essentially feature frozen, point releases will see only bugs and such like fixed. Our next major release will be phpBB 2.2 and work is progressing on this (the unstable development version is 2.1). Please do not post questions asking when 2.2 will be available, no release date has been set. Feel free to suggest new features for phpBB 2.2, we already have a number of improvements in mind and these can be viewed using our task tracker:

    + +

    http://sourceforge.net/pm/task.php?group_project_id=13524&group_id=7885

    + +

    We do not guarantee that all these will appear in 2.2 but we will do our best! If your idea does not appear on this list please visit our feature request list:

    + +

    http://sourceforge.net/tracker/?atid=357885&group_id=7885

    + +

    Before submitting your idea please ensure you have read through the entries in that list. If your idea is similar to an existing one please feel free to add a comment to it. Please do not submit duplicate suggestions!

    + +

    For some suggestions we may ask for your feedback via our forums. For those interested in the development of phpBB 2.2 you should keep an eye on the community forums (particularly the Feature Discussion forum) where you may be able to influence the direction we take with certain new features. Finally you may like to visit our development forum to see how things are progressing:

    + +

    http://area51.phpbb.com/phpBB 2/

    + +

    Please note that this forum should NOT be used to obtain support for or ask questions about phpBB 2.0.x, the main community forums are the place for this. Any such posts will be locked and go unanswered.

    + +

    5. Reporting Bugs

    + +

    The phpBB Group uses a bug tracking system to store, list and manage all reported bugs, it can be found at the location listed below. Please DO NOT post bug reports to our forums, they will be locked. In addition please DO NOT use the bug tracker for support requests. Posting such a request will only see you directed to the support forums (while taking time away from working on real bugs).

    + +

    http://www.phpbb.com/bugs/

    + +

    While we very much appreciate receiving bug reports (the more reports the more stable phpBB 2 will be) we ask you carry out a few steps before adding new entries:

    +
      +
    • Firstly determine if your bug is reproduceable, how to determine this depends on the bug in question. Only if the bug is reproduceable is it likely to be a problem with phpBB 2.0 (or in some way connected). If something cannot be reproduced it may turn out to have been your hosting provider working on something, a user doing something silly, etc. Bug reports for non-reproduceable events can slow down our attempts to fix real, reproduceable issues

    • +
    • Next please read or search through the existing bug reports (remember to check open AND closed reports!) to see if your bug (or one very similar to it) is already listed. If it is please add to that existing bug rather than creating a new duplicate entry (all this does is slow us down).

    • +
    • Check the forums (use search!) to see if people have discussed anything that sounds similar to what you are seeing. However, as noted above please DO NOT post your particular bug to the forum unless it's non-reproduceable or you are sure it's related to something you have done rather phpBB 2.0

    • +
    • If no existing bug exists then please feel free to add it
    • +
    + +

    If you do post a new bug (i.e. one that isn't already listed in the bug tracker) firstly make sure you have logged in (your username and password are the same as for the community forums) then please include the following details:

    +
      +
    • Your server type/version, eg. Apache 1.2.22, IIS 4, Sambar, etc.
    • +
    • PHP version and mode of operation, eg. PHP 4.1.1 as a module, PHP 4.0.1 running as CGI, etc.
    • +
    • DB type/version, eg. MySQL 3.23.32, PostgreSQL 7.1.2, MSSQL Server 2000 SP1, etc.
    • +
    + +

    Please also be as detailed as you can in your report, if possible list the steps required to duplicate the problem. If you have a fix which you are VERY SURE works (and is consistent with our coding guidelines) and does not introduce further problems or incompatibilities please let us know. However only include it in the bug report if you really must, if we need it we'll ask you for it.

    + +

    Once a bug has been submitted you will be emailed any follow up comments added to it. Please if you are requested to supply additional information, do so! It is extremely frustrating for us to receive bug reports, ask for additional information but get nothing. In these cases we have a policy of closing the bug, which may leave a very real problem in place. Obviously we would rather not have this situation arise.

    + +

    5.i. Security related bugs

    + +

    If you find a potential security related vulnerability in phpBB 2 please DO NOT post it to the bug tracker, public forums, mailing lists, etc.! Doing so may allow unscrupulous users to take advantage of it before we have time to put a fix in place. All security related bugs should be sent directly to one or more of the developers.

    + +

    This can be done in one of three ways; email security@phpbb.com this is forwarded to all developers, PM one of the developers (see Developer usergroup list for usernames of all developers) or email them directly (either use their listed email address if available or username@phpbb.com where username is their board username). If emailing or PM'ing developers individually please send the message to several and not just one. If you obtain no response in a reasonable timeframe (a day or two) try the other listed developers.

    + +

    6. Overview of current bug list

    + +

    This list is not complete (see above link for full list) but does represent those bugs which may effect users on a wider scale. Other bugs listed in the tracker have typically been shown to be limited to certain setups or methods of installation/upgrade.

    + +
      +
    • First four characters of some posted content disappears - this is an issue with PHP not phpBB
    • +
    • Cannot post very large messages when using PostgreSQL 7.0.x (limitation of Postgresql 7.0.x)
    • +
    • By default cannot post very large messages with MSSQL (this can be configured within MSSQL)
    • +
    • Use of non-latin charsets with MSSQL may result in post data being cropped unexpectedly
    • +
    • Upgrade may fail to complete on large boards under some hosts
    • +
    • PHP 3 compatibility issues remain and we recommend you upgrade to PHP4 as soon as possible ( phpBB 2.0.x will be the last version to support PHP 3 ) +
    + +

    7. PHP compatibility issues

    + +

    Please remember that running any application on a developmental version of PHP can lead to strange/unexpected results which may appear to be bugs in the application (which may not be true). Therefore we recommend you upgrade to the newest stable version of PHP before running phpBB 2. If you are running a developmental version of PHP please check any bugs you find on a system running a stable release before submitting.

    + +

    This board has been developed and tested under Linux and Windows (amongst others) running IIS and Apache using MySQL 3.23 and 4.0.0, MSSQL Server 2000, MS Access 2000 and XP and PostgreSQL 7.x. Versions of PHP used range from 4.0.6 to 4.3.8 without problem. There may be unconfirmed issues with PHP 4.0.1 including patch level releases. If you experience problems with phpBB and have this PHP version installed it is recommended you upgrade it before posting bug reports.

    + +

    With the recent release of the official version of PHP 5, people and hosts may be switching to the latest PHP version. At this moment, the phpBB Team does not officially support running phpBB on PHP 5, as phpBB2.0.x was not written with PHP 5 in mind. However, many users have reported using it sucessfully on PHP 5 having made a configuration change in PHP to enable support for the deprecated HTTP_*_VARS arrays which is turned off by default in new PHP 5 installations. The relevant configuration option is register_long_arrays and it is decribed in the PHP Manual. phpBB 2.0.x makes use of these arrays in order to maintain backwards compatibility with PHP 3.x and early versions of PHP 4.x which is part of the original specification.
    +For this reason we do not support PHP 5 as platform for phpBB. It has been reported working, so you can try it. It's a risk you will be taking though.

    + +

    7.i. Notice on PHP security issues

    + +

    At the end of February 2002 a major security issue was found with PHP 3 and 4 which has resulted in many hosting providers disabling file uploads (although patches fixing the security issues are available and new versions of PHP 4 have been released).

    + +

    Because of this, and to cope with situations where hosts didn't allow such uploads anyway we have implemented various checks in phpBB 2. These checks prevent you from enabling or making use of functions which will not operate correctly on PHP as installed on your server. At this time this includes locally uploaded avatars and DB restore.

    + +

    Third party mods may also be effected but these are outside our control, you should contact the mod writer for more information.

    + +

    8. Copyright and disclaimer

    + +

    This application is opensource software released under the GPL. Please see source code and the Docs directory for more details. This package and its contents are Copyright © 2002 phpBB Group, All Rights Reserved.

    + + +
    + + + \ No newline at end of file diff --git a/phpBB2_old/docs/coding-guidelines.txt b/phpBB2_old/docs/coding-guidelines.txt new file mode 100644 index 0000000..700c9d0 --- /dev/null +++ b/phpBB2_old/docs/coding-guidelines.txt @@ -0,0 +1,26 @@ +CODING GUIDELINES : Initials by psoTFX (July 2001) +----------------- + +* The coding style is defined in the codingstandards.html file, all attempts should be made to follow it as closely as possible + +* All SQL should be cross-DB compatible, if DB specific SQL is used alternatives must be provided which work on all supported DB's (MySQL, MSSQL (7.0 and 2000), PostgreSQL (7.0+), Oracle8, ODBC (generalised if possible, otherwise MS Access, DB2)) + +* All SQL commands should utilise the DataBase Abstraction Layer (DBAL) + +* All URL's (and form actions) _must_ be wrapped in append_sid, this ensures the session_id is propagated when cookies aren't available + +* The minimum amount of data should be passed via GET or POST, checking should occur within individual scripts (to prevent spoofing of information) + +* The auth function should be used for all authorisation checking + +* Sessions should be initiated on each page, as near the top as possible using the session_pagestart function (userdata should be obtained by calling the init_userprefs immediately after session initialisation) + +* Login checks should be forwarded to the login page (supplying a page to forward onto once check is complete if required) + +* All template variables should be named appropriately (using underscores for spaces), language entries should be prefixed with L_, system data with S_, urls with U_, all other variables should be presented 'as is'. + +* Functions used by more than page should be placed in functions.php, functions specific to one page should be placed on that page (at the top to maintain compatibility with PHP3) surrounded by comments indicating the start and end of the function block + +* All messages/errors should be output by the message_die function using the appropriate message type (see function for details) + +* No attempt should be made to remove any copyright information (either contained within the source or displayed interactively when the source is run/compiled), neither should the copyright information be altered in any way (it may be added to) diff --git a/phpBB2_old/docs/codingstandards.htm b/phpBB2_old/docs/codingstandards.htm new file mode 100644 index 0000000..2952c0c --- /dev/null +++ b/phpBB2_old/docs/codingstandards.htm @@ -0,0 +1,327 @@ + + +phpBB Coding Standard Guidelines + + + +

    phpBB Coding Standard Guidelines

    Comments or suggestions? email nate@phpbb.com

    Editor +Settings
    Naming +Conventions
    Code Layout
    General +Guidelines


    top +

    Editor Settings

    +

    Tabs vs Spaces: In order to make this as simple as possible, we will +be using tabs, not spaces. Feel free to set how many spaces your editor uses +when it displays tabs, but make sure that when you save the file, +it's saving tabs and not spaces. This way, we can each have the code be +displayed the way we like it, without breaking the layout of the actual files. +

    +

    Linefeeds: Ensure that your editor is saving files in the UNIX format. +This means lines are terminated with a newline, not with a CR/LF combo as they +are on Win32, or whatever the Mac uses. Any decent Win32 editor should be able +to do this, but it might not always be the default. Know your editor. If you +want advice on Windows text editors, just ask one of the developers. Some of +them do their editing on Win32.



    top +

    Naming Conventions

    +

    We will not be using any form of hungarian notation in our naming +conventions. Many of us believe that hungarian naming is one of the primary code +obfuscation techniques currently in use.

    +

    Variable Names: Variable names should be in all lowercase, with words +separated by an underscore.

        Example: $current_user is right, but $currentuser and $currentUser are not.

    Names should be descriptive, +but concise. We don't want huge sentences as our variable names, but typing an +extra couple of characters is always better than wondering what exactly a +certain variable is for.

    +

    Loop Indices: The only situation where a one-character variable +name is allowed is when it's the index for some looping construct. In this case, +the index of the outer loop should always be $i. If there's a loop inside that +loop, its index should be $j, followed by $k, and so on. If the loop is being +indexed by some already-existing variable with a meaningful name, this guideline +does not apply.

        Example:

    
    +		for ($i = 0; $i < $outer_size; $i++) 
    +		{
    +		   for ($j = 0; $j < $inner_size; $j++) 
    +		   {
    +		      foo($i, $j);
    +		   }
    +		} 
    +

    +

    Function Names: Functions should also be named descriptively. We're +not programming in C here, we don't want to write functions called things like +"stristr()". Again, all lower-case names with words separated by a single +underscore character. Function names should preferably have a verb in them +somewhere. Good function names are print_login_status(), get_user_data(), etc..

    +

    Function Arguments: Arguments are subject to the same guidelines as +variable names. We don't want a bunch of functions like: do_stuff($a, $b, $c). In most cases, we'd like to be able +to tell how to use a function by just looking at its declaration.

    +

    Summary: The basic philosophy here is to not hurt code clarity for the +sake of laziness. This has to be balanced by a little bit of common sense, +though; print_login_status_for_a_given_user() +goes too far, for example -- that function would be better named print_user_login_status() , or just print_login_status().



    top +

    Code Layout

    +

    Standard header for new files: Here a template of the header that must +be included at the start of all phpBB files:

    
    +		/***************************************************************************
    +		                                filename.php
    +		                             -------------------
    +		    begin                : Sat June 17 2000
    +		    copyright            : (C) 2000 The phpBB Group
    +		    email                : support@phpBB.com
    +		
    +		    $Id: codingstandards.htm,v 1.3 2001/06/09 21:00:12 natec Exp $
    +		
    +		 ***************************************************************************/
    +		
    +		/***************************************************************************
    +		 *                                         				                                
    +		 *   This program is free software; you can redistribute it and/or modify  	
    +		 *   it under the terms of the GNU General Public License as published by  
    +		 *   the Free Software Foundation; either version 2 of the License, or	    	
    +		 *   (at your option) any later version.
    +		 *
    +		 ***************************************************************************/
    +	
    +

    +

    Always include the braces: This is another case of being too lazy to +type 2 extra characters causing problems with code clarity. Even if the body of +some construct is only one line long, do not drop the braces. Just don't. +

       Examples:

    
    +		/* These are all wrong. */
    +		if (condition)	do_stuff();
    +		if (condition)
    +			do_stuff();
    +		while (condition) 
    +			do_stuff();
    +		for ($i = 0; $i < size; $i++)
    +			do_stuff($i);
    +		
    +		/* These are right. */
    +		if (condition) 
    +		{
    +			do_stuff();
    +		}
    +		while (condition) 
    +		{
    +			do_stuff();
    +		}
    +		for ($i = 0; $i < size; $i++) 
    +		{
    +			do_stuff();
    +		}
    +	
    +

    +

    Where to put the braces: This one is a bit of a holy war, but we're +going to use a style that can be summed up in one sentence: Braces always go on +their own line. The closing brace should also always be at the same column as +the corresponding opening brace.

       Examples:

    
    +		if (condition) 
    +		{
    +			while (condition2)
    +			{
    +				...
    +			}
    +		}
    +		else 
    +		{
    +			...
    +		}
    +
    +		for ($i = 0; $i < $size; $i++) 
    +		{
    +			...
    +		}
    +		
    +		while (condition) 
    +		{
    +			...
    +		}
    +		
    +		function do_stuff() 
    +		{
    +			...
    +		}
    +	
    +

    +

    Use spaces between tokens: This is another simple, easy step that +helps keep code readable without much effort. Whenever you write an assignment, +expression, etc.. Always leave one space between the tokens. Basically, +write code as if it was English. Put spaces between variable names and +operators. Don't put spaces just after an opening bracket or before a closing +bracket. Don't put spaces just before a comma or a semicolon. This is best shown +with a few examples.

       Examples:

    
    +		/* Each pair shows the wrong way followed by the right way. */
    +		
    +		$i=0;
    +		$i = 0;
    +		
    +		if($i<7) ...
    +		if ($i < 7) ...
    +		
    +		if ( ($i < 7)&&($j > 8) ) ...
    +		if (($i < 7) && ($j > 8)) ...
    +		
    +		do_stuff( $i, "foo", $b );
    +		do_stuff($i, "foo", $b);
    +		
    +		for($i=0; $i<$size; $i++) ...
    +		for($i = 0; $i < $size; $i++) ... 
    +		
    +		$i=($j < $size)?0:1;
    +		$i = ($j < $size) ? 0 : 1;
    +	
    +

    +

    Operator precedence: Do you know the exact precedence of all the +operators in PHP? Neither do I. Don't guess. Always make it obvious by using +brackets to force the precedence of an equation so you know what it does. +

       Examples:

    
    +		/* what's the result? who knows. */
    +		$bool = ($i < 7 && $j > 8 || $k == 4);
    +		
    +		/* now you can be certain what I'm doing here. */
    +		$bool = (($i < 7) && (($j < 8) || ($k == 4)))
    +		
    +

    +

    SQL code layout: Since we'll all be using different editor settings, +don't try to do anything complex like aligning columns in SQL code. Do, however, +break statements onto their own lines. Here's a sample of how SQL code should +look. Note where the lines break, the capitalization, and the use of brackets. +

       Examples:

    
    +		SELECT field1 AS something, field2, field3
    +		FROM table a, table b
    +		WHERE (this = that) AND (this2 = that2)
    +		
    +

    +

    SQL insert statements: SQL INSERT statements can be written in two +different ways. Either you specify explicitly the columns being inserted, or +you rely on knowing the order of the columns in the database and do not +specify them. We want to use the former approach, where it is explicitly +stated whcih columns are being inserted. This means our application-level code +will not depend on the order of the fields in the database, and will not be broken +if we add additional fields (unless they're specified as NOT NULL, of course). +

       Examples:

    
    +		# This is not what we want.
    +		INSERT INTO mytable
    +		VALUES ('something', 1, 'else')
    +		
    +		# This is correct.
    +		INSERT INTO mytable (column1, column2, column3)
    +		VALUES ('something', 1, 'else')
    +		
    +



    top +

    General Guidelines

    +

    Quoting strings: There are two different ways to quote strings in PHP +- either with single quotes or with double quotes. The main difference is that +the parser does variable interpolation in double-quoted strings, but not in +single quoted strings. Because of this, you should always use single +quotes unless you specifically need variable interpolation to be done on +that string. This way, we can save the parser the trouble of parsing a bunch of +strings where no interpolation needs to be done. Also, if you are using a string +variable as part of a function call, you do not need to enclose that variable in +quotes. Again, this will just make unnecessary work for the parser. Note, +however, that nearly all of the escape sequences that exist for double-quoted +strings will not work with single-quoted strings. Be careful, and feel free to +break this guideline if it's making your code harder to read. +

       Examples:

    
    +		/* wrong */
    +		$str = "This is a really long string with no variables for the parser to find.";
    +		do_stuff("$str");
    +		
    +		/* right */
    +		$str = 'This is a really long string with no variables for the parser to find.';
    +		do_stuff($str);
    +		
    +

    +

    Associative array keys: In PHP, it's legal to use a literal string as +a key to an associative array without quoting that string. We don't want to do +this -- the string should always be quoted to avoid confusion. Note that this is +only when we're using a literal, not when we're using a variable. +

       Examples:

    
    +		/* wrong */
    +		$foo = $assoc_array[blah];
    +		
    +		/* right */
    +		$foo = $assoc_array['blah'];
    +		
    +

    +

    Comments: Each function should be preceded by a comment that tells a +programmer everything they need to know to use that function. The meaning of +every parameter, the expected input, and the output are required as a minimal +comment. The function's behaviour in error conditions (and what those error +conditions are) should also be present. Nobody should have to look at the actual +source of a function in order to be able to call it with confidence in their own +code.

    In addition, commenting any tricky, obscure, or otherwise +not-immediately-obvious code is clearly something we should be doing. Especially +important to document are any assumptions your code makes, or preconditions for +its proper operation. Any one of the developers should be able to look at any +part of the application and figure out what's going on in a reasonable amount of +time.

    +

    Magic numbers: Don't use them. Use named constants for any literal +value other than obvious special cases. Basically, it's OK to check if an array +has 0 elements by using the literal 0. It's not OK to assign some special +meaning to a number and then use it everywhere as a literal. This hurts +readability AND maintainability. Included in this guideline is that we should be +using the constants TRUE and FALSE in place of the literals 1 and 0 -- even +though they have the same values, it's more obvious what the actual logic is +when you use the named constants.

    +

    Shortcut operators: The only shortcut operators that cause readability +problems are the shortcut increment ($i++) and decrement ($j--) operators. These +operators should not be used as part of an expression. They can, however, be +used on their own line. Using them in expressions is just not worth the +headaches when debugging.

       Examples:

    
    +		/* wrong */
    +		$array[++$i] = $j;
    +		$array[$i++] = $k;
    +		
    +		
    +		/* right */
    +		$i++;
    +		$array[$i] = $j;
    +		
    +		$array[$i] = $k;
    +		$i++;
    +		
    +

    +

    Inline conditionals: Inline conditionals should only be used to do +very simple things. Preferably, they will only be used to do assignments, and +not for function calls or anything complex at all. They can be harmful to +readability if used incorrectly, so don't fall in love with saving typing by +using them.

       Examples:

    
    +		/* Bad place to use them */
    +		(($i < $size) && ($j > $size)) ? do_stuff($foo) : do_stuff($bar);
    +		
    +		
    +		/* OK place to use them */
    +		$min = ($i < $j) ? $i : $j;
    +		
    +

    +

    Don't use uninitialized variables. for phpBB 2, we intend to use a +higher level of run-time error reporting. This will mean that the use of an +uninitialized variable will be reported as an error. This will come up most +often when checking which HTML form variables were passed. These errors can be +avoided by using the built-in isset() function to check whether a variable has +been set.

       Examples:

    
    +		/* Old way */
    +		if ($forum) ...
    +		
    +		
    +		/* New way */
    +		if (isset($forum)) ...
    +		
    +



    Return +to top
    diff --git a/phpBB2_old/extension.inc b/phpBB2_old/extension.inc new file mode 100644 index 0000000..46a742f --- /dev/null +++ b/phpBB2_old/extension.inc @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/phpBB2_old/faq.php b/phpBB2_old/faq.php new file mode 100644 index 0000000..bc760a7 --- /dev/null +++ b/phpBB2_old/faq.php @@ -0,0 +1,150 @@ +set_filenames(array( + 'body' => 'faq_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_FAQ_TITLE' => $l_title, + 'L_BACK_TO_TOP' => $lang['Back_to_top']) +); + +for($i = 0; $i < count($faq_block); $i++) +{ + if( count($faq_block[$i]) ) + { + $template->assign_block_vars('faq_block', array( + 'BLOCK_TITLE' => $faq_block_titles[$i]) + ); + $template->assign_block_vars('faq_block_link', array( + 'BLOCK_TITLE' => $faq_block_titles[$i]) + ); + + for($j = 0; $j < count($faq_block[$i]); $j++) + { + $row_color = ( !($j % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($j % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('faq_block.faq_row', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FAQ_QUESTION' => $faq_block[$i][$j]['question'], + 'FAQ_ANSWER' => $faq_block[$i][$j]['answer'], + + 'U_FAQ_ID' => $faq_block[$i][$j]['id']) + ); + + $template->assign_block_vars('faq_block_link.faq_row_link', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FAQ_LINK' => $faq_block[$i][$j]['question'], + + 'U_FAQ_LINK' => '#' . $faq_block[$i][$j]['id']) + ); + } + } +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/groupcp.php b/phpBB2_old/groupcp.php new file mode 100644 index 0000000..086fdda --- /dev/null +++ b/phpBB2_old/groupcp.php @@ -0,0 +1,1279 @@ +' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + if ( !empty($row['user_viewemail']) || $group_mod ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $row['user_id']) : 'mailto:' . $row['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ' '; + $email = ' '; + } + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $row['user_id']); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + $www_img = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($row['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']); + $msn_img = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts"); + $search_img = '' . $lang['Search_user_posts'] . ''; + $search = '' . $lang['Search_user_posts'] . ''; + + return; +} +// +// -------------------------- + +// +// Start session management +// +$userdata = session_pagestart($user_ip, PAGE_GROUPCP); +init_userprefs($userdata); +// +// End session management +// + +$script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path'])); +$script_name = ( $script_name != '' ) ? $script_name . '/groupcp.'.$phpEx : 'groupcp.'.$phpEx; +$server_name = trim($board_config['server_name']); +$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://'; +$server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + +$server_url = $server_protocol . $server_name . $server_port . $script_name; + +if ( isset($HTTP_GET_VARS[POST_GROUPS_URL]) || isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) +{ + $group_id = ( isset($HTTP_POST_VARS[POST_GROUPS_URL]) ) ? intval($HTTP_POST_VARS[POST_GROUPS_URL]) : intval($HTTP_GET_VARS[POST_GROUPS_URL]); +} +else +{ + $group_id = ''; +} + +if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) ) +{ + $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ''; +} + +$confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : 0; +$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : 0; + +$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0; + +// +// Default var values +// +$is_moderator = FALSE; + +if ( isset($HTTP_POST_VARS['groupstatus']) && $group_id ) +{ + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + $sql = "SELECT group_moderator + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['group_moderator'] != $userdata['user_id'] && $userdata['user_level'] != ADMIN ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Not_group_moderator'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + $sql = "UPDATE " . GROUPS_TABLE . " + SET group_type = " . intval($HTTP_POST_VARS['group_type']) . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Group_type_updated'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + +} +else if ( isset($HTTP_POST_VARS['joingroup']) && $group_id ) +{ + // + // First, joining a group + // If the user isn't logged in redirect them to login + // + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + $sql = "SELECT ug.user_id, g.group_type + FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE g.group_id = $group_id + AND g.group_type <> " . GROUP_HIDDEN . " + AND ug.group_id = g.group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( $row['group_type'] == GROUP_OPEN ) + { + do + { + if ( $userdata['user_id'] == $row['user_id'] ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Already_member_group'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } while ( $row = $db->sql_fetchrow($result) ); + } + else + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['This_closed_group'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_groups_exist']); + } + + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending) + VALUES ($group_id, " . $userdata['user_id'] . ", 1)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Error inserting user group subscription", "", __LINE__, __FILE__, $sql); + } + + $sql = "SELECT u.user_email, u.username, u.user_lang, g.group_name + FROM ".USERS_TABLE . " u, " . GROUPS_TABLE . " g + WHERE u.user_id = g.group_moderator + AND g.group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Error getting group moderator data", "", __LINE__, __FILE__, $sql); + } + + $moderator = $db->sql_fetchrow($result); + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('group_request', $moderator['user_lang']); + $emailer->email_address($moderator['user_email']); + $emailer->set_subject($lang['Group_request']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_MODERATOR' => $moderator['username'], + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id&validate=true") + ); + $emailer->send(); + $emailer->reset(); + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Group_joined'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); +} +else if ( isset($HTTP_POST_VARS['unsub']) || isset($HTTP_POST_VARS['unsubpending']) && $group_id ) +{ + // + // Second, unsubscribing from a group + // Check for confirmation of unsub. + // + if ( $cancel ) + { + redirect(append_sid("groupcp.$phpEx", true)); + } + elseif ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + if ( $confirm ) + { + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id = " . $userdata['user_id'] . " + AND group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not delete group memebership data', '', __LINE__, __FILE__, $sql); + } + + if ( $userdata['user_level'] != ADMIN && $userdata['user_level'] == MOD ) + { + $sql = "SELECT COUNT(auth_mod) AS is_auth_mod + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = " . $userdata['user_id'] . " + AND aa.group_id = ug.group_id + AND aa.auth_mod = 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator status', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Unsub_success'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $unsub_msg = ( isset($HTTP_POST_VARS['unsub']) ) ? $lang['Confirm_unsub'] : $lang['Confirm_unsub_pending']; + + $s_hidden_fields = ''; + + $page_title = $lang['Group_Control_Panel']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'confirm' => 'confirm_body.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $unsub_msg, + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + 'S_CONFIRM_ACTION' => append_sid("groupcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('confirm'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + +} +else if ( $group_id ) +{ + // + // Did the group moderator get here through an email? + // If so, check to see if they are logged in. + // + if ( isset($HTTP_GET_VARS['validate']) ) + { + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + } + + // + // For security, get the ID of the group moderator. + // + switch(SQL_LAYER) + { + case 'postgresql': + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa + WHERE g.group_id = $group_id + AND aa.group_id = g.group_id + UNION ( + SELECT g.group_moderator, g.group_type, NULL + FROM " . GROUPS_TABLE . " g + WHERE g.group_id = $group_id + AND NOT EXISTS ( + SELECT aa.group_id + FROM " . AUTH_ACCESS_TABLE . " aa + WHERE aa.group_id = g.group_id + ) + )"; + break; + + case 'oracle': + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM " . GROUPS_TABLE . " g, " . AUTH_ACCESS_TABLE . " aa + WHERE g.group_id = $group_id + AND aa.group_id (+) = g.group_id"; + break; + + default: + $sql = "SELECT g.group_moderator, g.group_type, aa.auth_mod + FROM ( " . GROUPS_TABLE . " g + LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = g.group_id ) + WHERE g.group_id = $group_id"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get moderator information', '', __LINE__, __FILE__, $sql); + } + + if ( $group_info = $db->sql_fetchrow($result) ) + { + $group_moderator = $group_info['group_moderator']; + + if ( $group_moderator == $userdata['user_id'] || $userdata['user_level'] == ADMIN ) + { + $is_moderator = TRUE; + } + + // + // Handle Additions, removals, approvals and denials + // + if ( !empty($HTTP_POST_VARS['add']) || !empty($HTTP_POST_VARS['remove']) || isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) + { + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=groupcp.$phpEx&" . POST_GROUPS_URL . "=$group_id", true)); + } + + if ( !$is_moderator ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Not_group_moderator'] . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + if ( isset($HTTP_POST_VARS['add']) ) + { + $username = ( isset($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : ''; + + $sql = "SELECT user_id, user_email, user_lang, user_level + FROM " . USERS_TABLE . " + WHERE username = '" . str_replace("\'", "''", $username) . "'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not get user information", $lang['Error'], __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Could_not_add_user'] . "

    " . sprintf($lang['Click_return_group'], "", "") . "

    " . sprintf($lang['Click_return_index'], "", ""); + + message_die(GENERAL_MESSAGE, $message); + } + + if ( $row['user_id'] == ANONYMOUS ) + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Could_not_anon_user'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + + $sql = "SELECT ug.user_id, u.user_level + FROM " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE u.user_id = " . $row['user_id'] . " + AND ug.user_id = u.user_id + AND ug.group_id = $group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE__, __FILE__, $sql); + } + + if ( !($db->sql_fetchrow($result)) ) + { + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) + VALUES (" . $row['user_id'] . ", $group_id, 0)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not add user to group', '', __LINE__, __FILE__, $sql); + } + + if ( $row['user_level'] != ADMIN && $row['user_level'] != MOD && $group_info['auth_mod'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id = " . $row['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + // + // Get the group name + // Email the user and tell them they're in the group + // + $group_sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($group_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql); + } + + $group_name_row = $db->sql_fetchrow($result); + + $group_name = $group_name_row['group_name']; + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('group_added', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['Group_added']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_NAME' => $group_name, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") + ); + $emailer->send(); + $emailer->reset(); + } + else + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['User_is_member_group'] . '

    ' . sprintf($lang['Click_return_group'], '', '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + if ( ( ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) && isset($HTTP_POST_VARS['pending_members']) ) || ( isset($HTTP_POST_VARS['remove']) && isset($HTTP_POST_VARS['members']) ) ) + { + + $members = ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) ? $HTTP_POST_VARS['pending_members'] : $HTTP_POST_VARS['members']; + + $sql_in = ''; + for($i = 0; $i < count($members); $i++) + { + $sql_in .= ( ( $sql_in != '' ) ? ', ' : '' ) . intval($members[$i]); + } + + if ( isset($HTTP_POST_VARS['approve']) ) + { + if ( $group_info['auth_mod'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . MOD . " + WHERE user_id IN ($sql_in) + AND user_level NOT IN (" . MOD . ", " . ADMIN . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "UPDATE " . USER_GROUP_TABLE . " + SET user_pending = 0 + WHERE user_id IN ($sql_in) + AND group_id = $group_id"; + $sql_select = "SELECT user_email + FROM ". USERS_TABLE . " + WHERE user_id IN ($sql_in)"; + } + else if ( isset($HTTP_POST_VARS['deny']) || isset($HTTP_POST_VARS['remove']) ) + { + if ( $group_info['auth_mod'] ) + { + $sql = "SELECT ug.user_id, ug.group_id + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id IN ($sql_in) + AND aa.group_id = ug.group_id + AND aa.auth_mod = 1 + GROUP BY ug.user_id, ug.group_id + ORDER BY ug.user_id, ug.group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain moderator status', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $group_check = array(); + $remove_mod_sql = ''; + + do + { + $group_check[$row['user_id']][] = $row['group_id']; + } + while ( $row = $db->sql_fetchrow($result) ); + + while( list($user_id, $group_list) = @each($group_check) ) + { + if ( count($group_list) == 1 ) + { + $remove_mod_sql .= ( ( $remove_mod_sql != '' ) ? ', ' : '' ) . $user_id; + } + } + + if ( $remove_mod_sql != '' ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_level = " . USER . " + WHERE user_id IN ($remove_mod_sql) + AND user_level NOT IN (" . ADMIN . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql); + } + } + } + } + + $sql = "DELETE FROM " . USER_GROUP_TABLE . " + WHERE user_id IN ($sql_in) + AND group_id = $group_id"; + } + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user group table', '', __LINE__, __FILE__, $sql); + } + + // + // Email users when they are approved + // + if ( isset($HTTP_POST_VARS['approve']) ) + { + if ( !($result = $db->sql_query($sql_select)) ) + { + message_die(GENERAL_ERROR, 'Could not get user email information', '', __LINE__, __FILE__, $sql); + } + + $bcc_list = array(); + while ($row = $db->sql_fetchrow($result)) + { + $bcc_list[] = $row['user_email']; + } + + // + // Get the group name + // + $group_sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id"; + if ( !($result = $db->sql_query($group_sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql); + } + + $group_name_row = $db->sql_fetchrow($result); + $group_name = $group_name_row['group_name']; + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + for ($i = 0; $i < count($bcc_list); $i++) + { + $emailer->bcc($bcc_list[$i]); + } + + $emailer->use_template('group_approved'); + $emailer->set_subject($lang['Group_approved']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'GROUP_NAME' => $group_name, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_GROUPCP' => $server_url . '?' . POST_GROUPS_URL . "=$group_id") + ); + $emailer->send(); + $emailer->reset(); + } + } + } + } + // + // END approve or deny + // + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_groups_exist']); + } + + // + // Get group details + // + $sql = "SELECT * + FROM " . GROUPS_TABLE . " + WHERE group_id = $group_id + AND group_single_user = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if ( !($group_info = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['Group_not_exist']); + } + + // + // Get moderator details for this group + // + $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm + FROM " . USERS_TABLE . " + WHERE user_id = " . $group_info['group_moderator']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql); + } + + $group_moderator = $db->sql_fetchrow($result); + + // + // Get user information for this group + // + $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending + FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug + WHERE ug.group_id = $group_id + AND u.user_id = ug.user_id + AND ug.user_pending = 0 + AND ug.user_id <> " . $group_moderator['user_id'] . " + ORDER BY u.username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql); + } + + $group_members = $db->sql_fetchrowset($result); + $members_count = count($group_members); + $db->sql_freeresult($result); + + $sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm + FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u + WHERE ug.group_id = $group_id + AND g.group_id = ug.group_id + AND ug.user_pending = 1 + AND u.user_id = ug.user_id + ORDER BY u.username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting user pending information', '', __LINE__, __FILE__, $sql); + } + + $modgroup_pending_list = $db->sql_fetchrowset($result); + $modgroup_pending_count = count($modgroup_pending_list); + $db->sql_freeresult($result); + + $is_group_member = 0; + if ( $members_count ) + { + for($i = 0; $i < $members_count; $i++) + { + if ( $group_members[$i]['user_id'] == $userdata['user_id'] && $userdata['session_logged_in'] ) + { + $is_group_member = TRUE; + } + } + } + + $is_group_pending_member = 0; + if ( $modgroup_pending_count ) + { + for($i = 0; $i < $modgroup_pending_count; $i++) + { + if ( $modgroup_pending_list[$i]['user_id'] == $userdata['user_id'] && $userdata['session_logged_in'] ) + { + $is_group_pending_member = TRUE; + } + } + } + + if ( $userdata['user_level'] == ADMIN ) + { + $is_moderator = TRUE; + } + + if ( $userdata['user_id'] == $group_info['group_moderator'] ) + { + $is_moderator = TRUE; + + $group_details = $lang['Are_group_moderator']; + + $s_hidden_fields = ''; + } + else if ( $is_group_member || $is_group_pending_member ) + { + $template->assign_block_vars('switch_unsubscribe_group_input', array()); + + $group_details = ( $is_group_pending_member ) ? $lang['Pending_this_group'] : $lang['Member_this_group']; + + $s_hidden_fields = ''; + } + else if ( $userdata['user_id'] == ANONYMOUS ) + { + $group_details = $lang['Login_to_join']; + $s_hidden_fields = ''; + } + else + { + if ( $group_info['group_type'] == GROUP_OPEN ) + { + $template->assign_block_vars('switch_subscribe_group_input', array()); + + $group_details = $lang['This_open_group']; + $s_hidden_fields = ''; + } + else if ( $group_info['group_type'] == GROUP_CLOSED ) + { + $group_details = $lang['This_closed_group']; + $s_hidden_fields = ''; + } + else if ( $group_info['group_type'] == GROUP_HIDDEN ) + { + $group_details = $lang['This_hidden_group']; + $s_hidden_fields = ''; + } + } + + $page_title = $lang['Group_Control_Panel']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + // + // Load templates + // + $template->set_filenames(array( + 'info' => 'groupcp_info_body.tpl', + 'pendinginfo' => 'groupcp_pending_info.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + // + // Add the moderator + // + $username = $group_moderator['username']; + $user_id = $group_moderator['user_id']; + + generate_user_info($group_moderator, $board_config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim); + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + 'L_GROUP_INFORMATION' => $lang['Group_Information'], + 'L_GROUP_NAME' => $lang['Group_name'], + 'L_GROUP_DESC' => $lang['Group_description'], + 'L_GROUP_TYPE' => $lang['Group_type'], + 'L_GROUP_MEMBERSHIP' => $lang['Group_membership'], + 'L_SUBSCRIBE' => $lang['Subscribe'], + 'L_UNSUBSCRIBE' => $lang['Unsubscribe'], + 'L_JOIN_GROUP' => $lang['Join_group'], + 'L_UNSUBSCRIBE_GROUP' => $lang['Unsubscribe'], + 'L_GROUP_OPEN' => $lang['Group_open'], + 'L_GROUP_CLOSED' => $lang['Group_closed'], + 'L_GROUP_HIDDEN' => $lang['Group_hidden'], + 'L_UPDATE' => $lang['Update'], + 'L_GROUP_MODERATOR' => $lang['Group_Moderator'], + 'L_GROUP_MEMBERS' => $lang['Group_Members'], + 'L_PENDING_MEMBERS' => $lang['Pending_members'], + 'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'], + 'L_PM' => $lang['Private_Message'], + 'L_EMAIL' => $lang['Email'], + 'L_POSTS' => $lang['Posts'], + 'L_WEBSITE' => $lang['Website'], + 'L_FROM' => $lang['Location'], + 'L_ORDER' => $lang['Order'], + 'L_SORT' => $lang['Sort'], + 'L_SUBMIT' => $lang['Sort'], + 'L_AIM' => $lang['AIM'], + 'L_YIM' => $lang['YIM'], + 'L_MSNM' => $lang['MSNM'], + 'L_ICQ' => $lang['ICQ'], + 'L_SELECT' => $lang['Select'], + 'L_REMOVE_SELECTED' => $lang['Remove_selected'], + 'L_ADD_MEMBER' => $lang['Add_member'], + 'L_FIND_USERNAME' => $lang['Find_username'], + + 'GROUP_NAME' => $group_info['group_name'], + 'GROUP_DESC' => $group_info['group_description'], + 'GROUP_DETAILS' => $group_details, + 'MOD_ROW_COLOR' => '#' . $theme['td_color1'], + 'MOD_ROW_CLASS' => $theme['td_class1'], + 'MOD_USERNAME' => $username, + 'MOD_FROM' => $from, + 'MOD_JOINED' => $joined, + 'MOD_POSTS' => $posts, + 'MOD_AVATAR_IMG' => $poster_avatar, + 'MOD_PROFILE_IMG' => $profile_img, + 'MOD_PROFILE' => $profile, + 'MOD_SEARCH_IMG' => $search_img, + 'MOD_SEARCH' => $search, + 'MOD_PM_IMG' => $pm_img, + 'MOD_PM' => $pm, + 'MOD_EMAIL_IMG' => $email_img, + 'MOD_EMAIL' => $email, + 'MOD_WWW_IMG' => $www_img, + 'MOD_WWW' => $www, + 'MOD_ICQ_STATUS_IMG' => $icq_status_img, + 'MOD_ICQ_IMG' => $icq_img, + 'MOD_ICQ' => $icq, + 'MOD_AIM_IMG' => $aim_img, + 'MOD_AIM' => $aim, + 'MOD_MSN_IMG' => $msn_img, + 'MOD_MSN' => $msn, + 'MOD_YIM_IMG' => $yim_img, + 'MOD_YIM' => $yim, + + 'U_MOD_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"), + 'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"), + + 'S_GROUP_OPEN_TYPE' => GROUP_OPEN, + 'S_GROUP_CLOSED_TYPE' => GROUP_CLOSED, + 'S_GROUP_HIDDEN_TYPE' => GROUP_HIDDEN, + 'S_GROUP_OPEN_CHECKED' => ( $group_info['group_type'] == GROUP_OPEN ) ? ' checked="checked"' : '', + 'S_GROUP_CLOSED_CHECKED' => ( $group_info['group_type'] == GROUP_CLOSED ) ? ' checked="checked"' : '', + 'S_GROUP_HIDDEN_CHECKED' => ( $group_info['group_type'] == GROUP_HIDDEN ) ? ' checked="checked"' : '', + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_MODE_SELECT' => $select_sort_mode, + 'S_ORDER_SELECT' => $select_sort_order, + 'S_GROUPCP_ACTION' => append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id")) + ); + + // + // Dump out the remaining users + // + for($i = $start; $i < min($board_config['topics_per_page'] + $start, $members_count); $i++) + { + $username = $group_members[$i]['username']; + $user_id = $group_members[$i]['user_id']; + + generate_user_info($group_members[$i], $board_config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim); + + if ( $group_info['group_type'] != GROUP_HIDDEN || $is_group_member || $is_moderator ) + { + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('member_row', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'USER_ID' => $user_id, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) + ); + + if ( $is_moderator ) + { + $template->assign_block_vars('member_row.switch_mod_option', array()); + } + } + } + + if ( !$members_count ) + { + // + // No group members + // + $template->assign_block_vars('switch_no_members', array()); + $template->assign_vars(array( + 'L_NO_MEMBERS' => $lang['No_group_members']) + ); + } + + $current_page = ( !$members_count ) ? 1 : ceil( $members_count / $board_config['topics_per_page'] ); + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("groupcp.$phpEx?" . POST_GROUPS_URL . "=$group_id", $members_count, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), $current_page ), + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + + if ( $group_info['group_type'] == GROUP_HIDDEN && !$is_group_member && !$is_moderator ) + { + // + // No group members + // + $template->assign_block_vars('switch_hidden_group', array()); + $template->assign_vars(array( + 'L_HIDDEN_MEMBERS' => $lang['Group_hidden_members']) + ); + } + + // + // We've displayed the members who belong to the group, now we + // do that pending memebers... + // + if ( $is_moderator ) + { + // + // Users pending in ONLY THIS GROUP (which is moderated by this user) + // + if ( $modgroup_pending_count ) + { + for($i = 0; $i < $modgroup_pending_count; $i++) + { + $username = $modgroup_pending_list[$i]['username']; + $user_id = $modgroup_pending_list[$i]['user_id']; + + generate_user_info($modgroup_pending_list[$i], $board_config['default_dateformat'], $is_moderator, $from, $posts, $joined, $poster_avatar, $profile_img, $profile, $search_img, $search, $pm_img, $pm, $email_img, $email, $www_img, $www, $icq_status_img, $icq_img, $icq, $aim_img, $aim, $msn_img, $msn, $yim_img, $yim); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $user_select = ''; + + $template->assign_block_vars('pending_members_row', array( + 'ROW_CLASS' => $row_class, + 'ROW_COLOR' => '#' . $row_color, + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'USER_ID' => $user_id, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) + ); + } + + $template->assign_block_vars('switch_pending_members', array() ); + + $template->assign_vars(array( + 'L_SELECT' => $lang['Select'], + 'L_APPROVE_SELECTED' => $lang['Approve_selected'], + 'L_DENY_SELECTED' => $lang['Deny_selected']) + ); + + $template->assign_var_from_handle('PENDING_USER_BOX', 'pendinginfo'); + + } + } + + if ( $is_moderator ) + { + $template->assign_block_vars('switch_mod_option', array()); + $template->assign_block_vars('switch_add_member', array()); + } + + $template->pparse('info'); +} +else +{ + // + // Show the main groupcp.php screen where the user can select a group. + // + // Select all group that the user is a member of or where the user has + // a pending membership. + // + $in_group = array(); + + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT g.group_id, g.group_name, g.group_type, ug.user_pending + FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = " . $userdata['user_id'] . " + AND ug.group_id = g.group_id + AND g.group_single_user <> " . TRUE . " + ORDER BY g.group_name, ug.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $in_group = array(); + $s_member_groups_opt = ''; + $s_pending_groups_opt = ''; + + do + { + $in_group[] = $row['group_id']; + if ( $row['user_pending'] ) + { + $s_pending_groups_opt .= ''; + } + else + { + $s_member_groups_opt .= ''; + } + } + while( $row = $db->sql_fetchrow($result) ); + + $s_pending_groups = '"; + $s_member_groups = '"; + } + } + + // + // Select all other groups i.e. groups that this user is not a member of + // + $ignore_group_sql = ( count($in_group) ) ? "AND group_id NOT IN (" . implode(', ', $in_group) . ")" : ''; + $sql = "SELECT group_id, group_name, group_type + FROM " . GROUPS_TABLE . " g + WHERE group_single_user <> " . TRUE . " + $ignore_group_sql + ORDER BY g.group_name"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting group information', '', __LINE__, __FILE__, $sql); + } + + $s_group_list_opt = ''; + while( $row = $db->sql_fetchrow($result) ) + { + if ( $row['group_type'] != GROUP_HIDDEN || $userdata['user_level'] == ADMIN ) + { + $s_group_list_opt .=''; + } + } + $s_group_list = ''; + + if ( $s_group_list_opt != '' || $s_pending_groups_opt != '' || $s_member_groups_opt != '' ) + { + // + // Load and process templates + // + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'user' => 'groupcp_user_body.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + if ( $s_pending_groups_opt != '' || $s_member_groups_opt != '' ) + { + $template->assign_block_vars('switch_groups_joined', array() ); + } + + if ( $s_member_groups_opt != '' ) + { + $template->assign_block_vars('switch_groups_joined.switch_groups_member', array() ); + } + + if ( $s_pending_groups_opt != '' ) + { + $template->assign_block_vars('switch_groups_joined.switch_groups_pending', array() ); + } + + if ( $s_group_list_opt != '' ) + { + $template->assign_block_vars('switch_groups_remaining', array() ); + } + + $s_hidden_fields = ''; + + $template->assign_vars(array( + 'L_GROUP_MEMBERSHIP_DETAILS' => $lang['Group_member_details'], + 'L_JOIN_A_GROUP' => $lang['Group_member_join'], + 'L_YOU_BELONG_GROUPS' => $lang['Current_memberships'], + 'L_SELECT_A_GROUP' => $lang['Non_member_groups'], + 'L_PENDING_GROUPS' => $lang['Memberships_pending'], + 'L_SUBSCRIBE' => $lang['Subscribe'], + 'L_UNSUBSCRIBE' => $lang['Unsubscribe'], + 'L_VIEW_INFORMATION' => $lang['View_Information'], + + 'S_USERGROUP_ACTION' => append_sid("groupcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + + 'GROUP_LIST_SELECT' => $s_group_list, + 'GROUP_PENDING_SELECT' => $s_pending_groups, + 'GROUP_MEMBER_SELECT' => $s_member_groups) + ); + + $template->pparse('user'); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_groups_exist']); + } + +} + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/hs_err_pid14072.log b/phpBB2_old/hs_err_pid14072.log new file mode 100644 index 0000000..69d5b00 --- /dev/null +++ b/phpBB2_old/hs_err_pid14072.log @@ -0,0 +1,203 @@ + +Unexpected Signal : 11 occurred at PC=0x2A95DF3ADA +Function=(null) +Library=/usr/lib/j2se/1.4/jre/lib/amd64/server/libjvm.so + +NOTE: We are unable to locate the function name symbol for the error + just occurred. Please refer to release documentation for possible + reason and solutions. + + +Current Java thread: + at sun.plugin.navig.motif.AThread.handleRequest(Native Method) + at sun.plugin.navig.motif.AThread.JNIHandleLoop(AThread.java:35) + at sun.plugin.navig.motif.AThread.run(AThread.java:27) + +Dynamic libraries: +40000000-40003000 r-xp 00000000 03:03 311764 /usr/lib/j2se/1.4/jre/bin/java_vm +40102000-40103000 rwxp 00002000 03:03 311764 /usr/lib/j2se/1.4/jre/bin/java_vm +2a95556000-2a9556a000 r-xp 00000000 03:01 233033 /lib/ld-2.3.2.so +2a9556a000-2a9556b000 rwxp 2a9556a000 00:00 0 +2a95578000-2a95579000 rwxp 2a95578000 00:00 0 +2a9566a000-2a9566c000 rwxp 00014000 03:01 233033 /lib/ld-2.3.2.so +2a9566c000-2a9567a000 r-xp 00000000 03:01 233052 /lib/libpthread-0.60.so +2a9567a000-2a9576c000 ---p 0000e000 03:01 233052 /lib/libpthread-0.60.so +2a9576c000-2a9577c000 rwxp 00000000 03:01 233052 /lib/libpthread-0.60.so +2a9577c000-2a95780000 rwxp 2a9577c000 00:00 0 +2a95780000-2a95783000 r-xp 00000000 03:01 233041 /lib/libdl-2.3.2.so +2a95783000-2a95880000 ---p 00003000 03:01 233041 /lib/libdl-2.3.2.so +2a95880000-2a95883000 rwxp 00000000 03:01 233041 /lib/libdl-2.3.2.so +2a95883000-2a959a5000 r-xp 00000000 03:01 233039 /lib/libc-2.3.2.so +2a959a5000-2a95a83000 ---p 00122000 03:01 233039 /lib/libc-2.3.2.so +2a95a83000-2a95abe000 rwxp 00100000 03:01 233039 /lib/libc-2.3.2.so +2a95abe000-2a95ac3000 rwxp 2a95abe000 00:00 0 +2a95ac3000-2a96006000 r-xp 00000000 03:03 312232 /usr/lib/j2se/1.4/jre/lib/amd64/server/libjvm.so +2a96006000-2a960c3000 ---p 00543000 03:03 312232 /usr/lib/j2se/1.4/jre/lib/amd64/server/libjvm.so +2a960c3000-2a96232000 rwxp 00500000 03:03 312232 /usr/lib/j2se/1.4/jre/lib/amd64/server/libjvm.so +2a96232000-2a96263000 rwxp 2a96232000 00:00 0 +2a96270000-2a96282000 r-xp 00000000 03:01 233044 /lib/libnsl-2.3.2.so +2a96282000-2a96370000 ---p 00012000 03:01 233044 /lib/libnsl-2.3.2.so +2a96370000-2a96384000 rwxp 00000000 03:01 233044 /lib/libnsl-2.3.2.so +2a96384000-2a96386000 rwxp 2a96384000 00:00 0 +2a96386000-2a96409000 r-xp 00000000 03:01 233042 /lib/libm-2.3.2.so +2a96409000-2a96486000 ---p 00083000 03:01 233042 /lib/libm-2.3.2.so +2a96486000-2a9650c000 rwxp 00000000 03:01 233042 /lib/libm-2.3.2.so +2a9650c000-2a96514000 r-xp 00000000 03:03 312221 /usr/lib/j2se/1.4/jre/lib/amd64/native_threads/libhpi.so +2a96514000-2a9660c000 ---p 00008000 03:03 312221 /usr/lib/j2se/1.4/jre/lib/amd64/native_threads/libhpi.so +2a9660c000-2a96616000 rwxp 00000000 03:03 312221 /usr/lib/j2se/1.4/jre/lib/amd64/native_threads/libhpi.so +2a96616000-2a96617000 rwxp 2a96616000 00:00 0 +2a96617000-2a9661b000 rwxs 00000000 03:07 159434 /tmp/hsperfdata_frederik/14072 +2a96624000-2a9662b000 r-xp 00000000 03:01 233045 /lib/libnss_compat-2.3.2.so +2a9662b000-2a96724000 ---p 00007000 03:01 233045 /lib/libnss_compat-2.3.2.so +2a96724000-2a9672c000 rwxp 00000000 03:01 233045 /lib/libnss_compat-2.3.2.so +2a9672c000-2a96735000 r-xp 00000000 03:01 233049 /lib/libnss_nis-2.3.2.so +2a96735000-2a9682c000 ---p 00009000 03:01 233049 /lib/libnss_nis-2.3.2.so +2a9682c000-2a96836000 rwxp 00000000 03:01 233049 /lib/libnss_nis-2.3.2.so +2a96836000-2a9683f000 r-xp 00000000 03:01 233047 /lib/libnss_files-2.3.2.so +2a9683f000-2a96936000 ---p 00009000 03:01 233047 /lib/libnss_files-2.3.2.so +2a96936000-2a96940000 rwxp 00000000 03:01 233047 /lib/libnss_files-2.3.2.so +2a96940000-2a96952000 r-xp 00000000 03:03 312214 /usr/lib/j2se/1.4/jre/lib/amd64/libverify.so +2a96952000-2a96a40000 ---p 00012000 03:03 312214 /usr/lib/j2se/1.4/jre/lib/amd64/libverify.so +2a96a40000-2a96a54000 rwxp 00000000 03:03 312214 /usr/lib/j2se/1.4/jre/lib/amd64/libverify.so +2a96a54000-2a96a74000 r-xp 00000000 03:03 312226 /usr/lib/j2se/1.4/jre/lib/amd64/libjava.so +2a96a74000-2a96b54000 ---p 00020000 03:03 312226 /usr/lib/j2se/1.4/jre/lib/amd64/libjava.so +2a96b54000-2a96b79000 rwxp 00000000 03:03 312226 /usr/lib/j2se/1.4/jre/lib/amd64/libjava.so +2a96b79000-2a96b8a000 r-xp 00000000 03:03 312219 /usr/lib/j2se/1.4/jre/lib/amd64/libzip.so +2a96b8a000-2a96c79000 ---p 00011000 03:03 312219 /usr/lib/j2se/1.4/jre/lib/amd64/libzip.so +2a96c79000-2a96c8d000 rwxp 00000000 03:03 312219 /usr/lib/j2se/1.4/jre/lib/amd64/libzip.so +2a96c8d000-2a98638000 r-xs 00000000 03:03 312315 /usr/lib/j2se/1.4/jre/lib/rt.jar +2a98638000-2a98682000 rwxp 2a98638000 00:00 0 +2a98682000-2a98698000 r-xs 00000000 03:03 312274 /usr/lib/j2se/1.4/jre/lib/sunrsasign.jar +2a98698000-2a98775000 r-xs 00000000 03:03 312258 /usr/lib/j2se/1.4/jre/lib/jsse.jar +2a98775000-2a98786000 r-xs 00000000 03:03 312313 /usr/lib/j2se/1.4/jre/lib/jce.jar +2a98786000-2a98cdf000 r-xs 00000000 03:03 312259 /usr/lib/j2se/1.4/jre/lib/charsets.jar +2a98cdf000-2a98f2b000 r-xs 00000000 03:03 312260 /usr/lib/j2se/1.4/jre/lib/plugin.jar +2a98f2b000-2a9902b000 rwxp 2a98f2b000 00:00 0 +2a9902b000-2ad8f2b000 rwxp 2a9902b000 00:00 0 +2ad8f2b000-2ad8f2f000 rwxp 2ad8f2b000 00:00 0 +2ad8f2f000-2ad9f2b000 rwxp 2ad8f2f000 00:00 0 +2ad9f2b000-2ad9f7a000 rwxp 2ad9f2b000 00:00 0 +2ad9f80000-2ada180000 rwxp 2ad9f80000 00:00 0 +2ada180000-2adb4d0000 rwxp 2ada180000 00:00 0 +2adb4d0000-2adb747000 rwxp 2adb4d0000 00:00 0 +2adb747000-2addf80000 rwxp 2adb747000 00:00 0 +2addf80000-2adef80000 rwxp 2addf80000 00:00 0 +2adef80000-2ae1f80000 rwxp 2adef80000 00:00 0 +2ae1f80000-2ae1f81000 rwxp 2ae1f80000 00:00 0 +2ae1f81000-2ae1f8a000 rwxp 2ae1f81000 00:00 0 +2ae1f8a000-2ae1f8c000 rwxp 2ae1f8a000 00:00 0 +2ae1f8c000-2ae1fa0000 rwxp 2ae1f8c000 00:00 0 +2ae1fa0000-2ae1fa8000 rwxp 2ae1fa0000 00:00 0 +2ae1fa8000-2ae1fc0000 rwxp 2ae1fa8000 00:00 0 +2ae1fc0000-2ae1fc3000 rwxp 2ae1fc0000 00:00 0 +2ae1fc3000-2ae1fd7000 rwxp 2ae1fc3000 00:00 0 +2ae1fd7000-2ae1fe0000 rwxp 2ae1fd7000 00:00 0 +2ae1fe0000-2ae1ff8000 rwxp 2ae1fe0000 00:00 0 +2ae1ff8000-2ae217f000 r-xp 00000000 03:03 213070 /usr/lib/locale/locale-archive +2ae217f000-2ae227f000 rwxp 2ae217f000 00:00 0 +2ae227f000-2ae229b000 r-xs 00000000 03:03 312204 /usr/lib/j2se/1.4/jre/lib/ext/sunjce_provider.jar +2ae229b000-2ae229e000 r-xs 00000000 03:03 312203 /usr/lib/j2se/1.4/jre/lib/ext/dnsns.jar +2ae2300000-2ae233a000 rwxp 2ae2300000 00:00 0 +2ae233a000-2ae2400000 ---p 2ae233a000 00:00 0 +2ae2400000-2ae24bc000 r-xs 00000000 03:03 312206 /usr/lib/j2se/1.4/jre/lib/ext/localedata.jar +2ae24bc000-2ae24ca000 r-xs 00000000 03:03 312205 /usr/lib/j2se/1.4/jre/lib/ext/ldapsec.jar +2ae24ca000-2ae25ad000 r-xp 00000000 03:03 312240 /usr/lib/j2se/1.4/jre/lib/amd64/libawt.so +2ae25ad000-2ae25ca000 ---p 000e3000 03:03 312240 /usr/lib/j2se/1.4/jre/lib/amd64/libawt.so +2ae25ca000-2ae26cf000 rwxp 00000000 03:03 312240 /usr/lib/j2se/1.4/jre/lib/amd64/libawt.so +2ae26cf000-2ae26f4000 rwxp 2ae26cf000 00:00 0 +2ae26f4000-2ae274c000 r-xp 00000000 03:03 312224 /usr/lib/j2se/1.4/jre/lib/amd64/libmlib_image.so +2ae274c000-2ae27f4000 ---p 00058000 03:03 312224 /usr/lib/j2se/1.4/jre/lib/amd64/libmlib_image.so +2ae27f4000-2ae284f000 rwxp 00000000 03:03 312224 /usr/lib/j2se/1.4/jre/lib/amd64/libmlib_image.so +2ae284f000-2ae2a94000 r-xp 00000000 03:03 312209 /usr/lib/j2se/1.4/jre/lib/amd64/libXm.so.3 +2ae2a94000-2ae2b4f000 ---p 00245000 03:03 312209 /usr/lib/j2se/1.4/jre/lib/amd64/libXm.so.3 +2ae2b4f000-2ae2bfd000 rwxp 00200000 03:03 312209 /usr/lib/j2se/1.4/jre/lib/amd64/libXm.so.3 +2ae2bfd000-2ae2c00000 rwxp 2ae2bfd000 00:00 0 +2ae2c0b000-2ae2c13000 r-xp 00000000 03:03 819689 /usr/X11R6/lib/libXp.so.6.2 +2ae2c13000-2ae2d0b000 ---p 00008000 03:03 819689 /usr/X11R6/lib/libXp.so.6.2 +2ae2d0b000-2ae2d13000 rwxp 00000000 03:03 819689 /usr/X11R6/lib/libXp.so.6.2 +2ae2d13000-2ae2d66000 r-xp 00000000 03:03 819683 /usr/X11R6/lib/libXt.so.6.0 +2ae2d66000-2ae2e13000 ---p 00053000 03:03 819683 /usr/X11R6/lib/libXt.so.6.0 +2ae2e13000-2ae2e73000 rwxp 00000000 03:03 819683 /usr/X11R6/lib/libXt.so.6.0 +2ae2e73000-2ae2e74000 rwxp 2ae2e73000 00:00 0 +2ae2e74000-2ae2e7d000 r-xp 00000000 03:03 819222 /usr/X11R6/lib/libSM.so.6.0 +2ae2e7d000-2ae2f74000 ---p 00009000 03:03 819222 /usr/X11R6/lib/libSM.so.6.0 +2ae2f74000-2ae2f7e000 rwxp 00000000 03:03 819222 /usr/X11R6/lib/libSM.so.6.0 +2ae2f7e000-2ae2f92000 r-xp 00000000 03:03 819220 /usr/X11R6/lib/libICE.so.6.3 +2ae2f92000-2ae307e000 ---p 00014000 03:03 819220 /usr/X11R6/lib/libICE.so.6.3 +2ae307e000-2ae3094000 rwxp 00000000 03:03 819220 /usr/X11R6/lib/libICE.so.6.3 +2ae3094000-2ae3097000 rwxp 2ae3094000 00:00 0 +2ae3097000-2ae30a5000 r-xp 00000000 03:03 819207 /usr/X11R6/lib/libXext.so.6.4 +2ae30a5000-2ae3197000 ---p 0000e000 03:03 819207 /usr/X11R6/lib/libXext.so.6.4 +2ae3197000-2ae31a8000 rwxp 00000000 03:03 819207 /usr/X11R6/lib/libXext.so.6.4 +2ae31a8000-2ae31ad000 r-xp 00000000 03:03 819697 /usr/X11R6/lib/libXtst.so.6.1 +2ae31ad000-2ae32a8000 ---p 00005000 03:03 819697 /usr/X11R6/lib/libXtst.so.6.1 +2ae32a8000-2ae32ae000 rwxp 00000000 03:03 819697 /usr/X11R6/lib/libXtst.so.6.1 +2ae32ae000-2ae3376000 r-xp 00000000 03:03 819676 /usr/X11R6/lib/libX11.so.6.2 +2ae3376000-2ae33ae000 ---p 000c8000 03:03 819676 /usr/X11R6/lib/libX11.so.6.2 +2ae33ae000-2ae3488000 rwxp 00000000 03:03 819676 /usr/X11R6/lib/libX11.so.6.2 +2ae3488000-2ae3489000 rwxp 2ae3488000 00:00 0 +2ae3489000-2ae349a000 r-xp 00000000 03:03 312239 /usr/lib/j2se/1.4/jre/lib/amd64/libjavaplugin_jni.so +2ae349a000-2ae3589000 ---p 00011000 03:03 312239 /usr/lib/j2se/1.4/jre/lib/amd64/libjavaplugin_jni.so +2ae3589000-2ae359c000 rwxp 00000000 03:03 312239 /usr/lib/j2se/1.4/jre/lib/amd64/libjavaplugin_jni.so +2ae359c000-2ae35c4000 rwxp 2ae359c000 00:00 0 +2ae35c4000-2ae3661000 r-xp 00000000 03:03 312217 /usr/lib/j2se/1.4/jre/lib/amd64/libfontmanager.so +2ae3661000-2ae36c4000 ---p 0009d000 03:03 312217 /usr/lib/j2se/1.4/jre/lib/amd64/libfontmanager.so +2ae36c4000-2ae377f000 rwxp 00000000 03:03 312217 /usr/lib/j2se/1.4/jre/lib/amd64/libfontmanager.so +2ae377f000-2ae3890000 rwxp 2ae377f000 00:00 0 +2ae38bd000-2ae3abd000 rwxp 2ae38bd000 00:00 0 +2ae3abd000-2ae3abf000 r-xp 00000000 03:03 819671 /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2 +2ae3abf000-2ae3bbd000 ---p 00002000 03:03 819671 /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2 +2ae3bbd000-2ae3bc0000 rwxp 00000000 03:03 819671 /usr/X11R6/lib/X11/locale/lib/common/xlcDef.so.2 +2ae3bc0000-2ae3bc9000 r-xp 00000000 03:03 213999 /usr/lib/libXcursor.so.1.0.2 +2ae3bc9000-2ae3cc0000 ---p 00009000 03:03 213999 /usr/lib/libXcursor.so.1.0.2 +2ae3cc0000-2ae3cca000 rwxp 00000000 03:03 213999 /usr/lib/libXcursor.so.1.0.2 +2ae3cca000-2ae3cd2000 r-xp 00000000 03:03 213995 /usr/lib/libXrender.so.1.2.2 +2ae3cd2000-2ae3dca000 ---p 00008000 03:03 213995 /usr/lib/libXrender.so.1.2.2 +2ae3dca000-2ae3dd3000 rwxp 00000000 03:03 213995 /usr/lib/libXrender.so.1.2.2 +2ae3dd3000-2ae3def000 r-xp 00000000 03:03 819670 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 +2ae3def000-2ae3ed3000 ---p 0001c000 03:03 819670 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 +2ae3ed3000-2ae3ef5000 rwxp 00000000 03:03 819670 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 +2ae3ef6000-2ae3ef8000 r-xp 00000000 03:03 213228 /usr/lib/gconv/ISO8859-15.so +2ae3ef8000-2ae3ff6000 ---p 00002000 03:03 213228 /usr/lib/gconv/ISO8859-15.so +2ae3ff6000-2ae3ff8000 rwxp 00000000 03:03 213228 /usr/lib/gconv/ISO8859-15.so +2ae3ff8000-2ae43f8000 rwxp 2ae3ff8000 00:00 0 +2ae43f8000-2ae4406000 r-xp 00000000 03:03 312210 /usr/lib/j2se/1.4/jre/lib/amd64/libnet.so +2ae4406000-2ae44f8000 ---p 0000e000 03:03 312210 /usr/lib/j2se/1.4/jre/lib/amd64/libnet.so +2ae44f8000-2ae4508000 rwxp 00000000 03:03 312210 /usr/lib/j2se/1.4/jre/lib/amd64/libnet.so +2ae4508000-2ae450c000 r-xp 00000000 03:01 233046 /lib/libnss_dns-2.3.2.so +2ae450c000-2ae4608000 ---p 00004000 03:01 233046 /lib/libnss_dns-2.3.2.so +2ae4608000-2ae460c000 rwxp 00000000 03:01 233046 /lib/libnss_dns-2.3.2.so +2ae460c000-2ae461b000 r-xp 00000000 03:01 233053 /lib/libresolv-2.3.2.so +2ae461b000-2ae470c000 ---p 0000f000 03:01 233053 /lib/libresolv-2.3.2.so +2ae470c000-2ae471e000 rwxp 00000000 03:01 233053 /lib/libresolv-2.3.2.so +2ae471e000-2ae4720000 rwxp 2ae471e000 00:00 0 +2ae4720000-2ae4739000 r-xp 00000000 03:03 312234 /usr/lib/j2se/1.4/jre/lib/amd64/libdcpr.so +2ae4739000-2ae4820000 ---p 00019000 03:03 312234 /usr/lib/j2se/1.4/jre/lib/amd64/libdcpr.so +2ae4820000-2ae484f000 rwxp 00000000 03:03 312234 /usr/lib/j2se/1.4/jre/lib/amd64/libdcpr.so +2ae484f000-2ae4881000 r-xs 00000000 03:08 1091591 /home/frederik/.java/deployment/cache/javapi/v1.0/jar/Security_J2.jar-7c400c49-6bd33237.zip +7fbfe00000-7fbfe02000 rwxp 7fbfe00000 00:00 0 +7fbfe02000-7fbfe05000 ---p 7fbfe02000 00:00 0 +7fbffdb000-7fc0000000 rwxp 7fbffdb000 00:00 0 +ffffffffff600000-ffffffffffe00000 ---p 00000000 00:00 0 + +Heap at VM Abort: +Heap + def new generation total 1856K, used 1334K [0x0000002ad9f80000, 0x0000002ada180000, 0x0000002adb4d0000) + eden space 1664K, 68% used [0x0000002ad9f80000, 0x0000002ada09d960, 0x0000002ada120000) + from space 192K, 100% used [0x0000002ada150000, 0x0000002ada180000, 0x0000002ada180000) + to space 192K, 0% used [0x0000002ada120000, 0x0000002ada120000, 0x0000002ada150000) + tenured generation total 2524K, used 1726K [0x0000002adb4d0000, 0x0000002adb747000, 0x0000002addf80000) + the space 2524K, 68% used [0x0000002adb4d0000, 0x0000002adb67f9c8, 0x0000002adb67fa00, 0x0000002adb747000) + compacting perm gen total 16384K, used 10200K [0x0000002addf80000, 0x0000002adef80000, 0x0000002ae1f80000) + the space 16384K, 62% used [0x0000002addf80000, 0x0000002ade9761d8, 0x0000002ade976200, 0x0000002adef80000) + +Local Time = Wed Mar 9 23:57:11 2005 +Elapsed Time = 5 +# +# HotSpot Virtual Machine Error : 11 +# Error ID : 4F530E43505002EF +# Please report this error at +# http://www.blackdown.org/cgi-bin/jdk +# +# Java VM: Java HotSpot(TM) 64-Bit Server VM (Blackdown-1.4.2-01 mixed mode) +# diff --git a/phpBB2_old/images/avatars/gallery/index.htm b/phpBB2_old/images/avatars/gallery/index.htm new file mode 100755 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/images/avatars/gallery/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/images/avatars/index.htm b/phpBB2_old/images/avatars/index.htm new file mode 100755 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/images/avatars/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/images/index.htm b/phpBB2_old/images/index.htm new file mode 100755 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/images/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/images/smiles/crazy/crazy_2gunsfiring_v1.gif b/phpBB2_old/images/smiles/crazy/crazy_2gunsfiring_v1.gif new file mode 100644 index 0000000..cb5ddef Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_2gunsfiring_v1.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_321.gif b/phpBB2_old/images/smiles/crazy/crazy_321.gif new file mode 100644 index 0000000..b577c06 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_321.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_Eyecrazy.gif b/phpBB2_old/images/smiles/crazy/crazy_Eyecrazy.gif new file mode 100644 index 0000000..487eb01 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_Eyecrazy.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_Llol.gif b/phpBB2_old/images/smiles/crazy/crazy_Llol.gif new file mode 100644 index 0000000..faf609c Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_Llol.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_alien.gif b/phpBB2_old/images/smiles/crazy/crazy_alien.gif new file mode 100644 index 0000000..7b71766 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_alien.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_all_coholic.gif b/phpBB2_old/images/smiles/crazy/crazy_all_coholic.gif new file mode 100644 index 0000000..f625b24 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_all_coholic.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_angel.gif b/phpBB2_old/images/smiles/crazy/crazy_angel.gif new file mode 100644 index 0000000..3345a6f Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_angel.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_argue.gif b/phpBB2_old/images/smiles/crazy/crazy_argue.gif new file mode 100644 index 0000000..83f3b0a Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_argue.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_asthanos.gif b/phpBB2_old/images/smiles/crazy/crazy_asthanos.gif new file mode 100644 index 0000000..ea9b61b Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_asthanos.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_bat_angel.gif b/phpBB2_old/images/smiles/crazy/crazy_bat_angel.gif new file mode 100644 index 0000000..f9855cd Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_bat_angel.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_bdaysmile.gif b/phpBB2_old/images/smiles/crazy/crazy_bdaysmile.gif new file mode 100644 index 0000000..c0b3e95 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_bdaysmile.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_beammeup.gif b/phpBB2_old/images/smiles/crazy/crazy_beammeup.gif new file mode 100644 index 0000000..027e42c Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_beammeup.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_bigcrowd.gif b/phpBB2_old/images/smiles/crazy/crazy_bigcrowd.gif new file mode 100644 index 0000000..e9a4bfe Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_bigcrowd.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_birthday.gif b/phpBB2_old/images/smiles/crazy/crazy_birthday.gif new file mode 100644 index 0000000..1edaa2c Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_birthday.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_blackey.gif b/phpBB2_old/images/smiles/crazy/crazy_blackey.gif new file mode 100644 index 0000000..a69b44a Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_blackey.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_blowingup.gif b/phpBB2_old/images/smiles/crazy/crazy_blowingup.gif new file mode 100644 index 0000000..105efbe Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_blowingup.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_bluegrab.gif b/phpBB2_old/images/smiles/crazy/crazy_bluegrab.gif new file mode 100644 index 0000000..5ebc515 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_bluegrab.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_borgsmile.gif b/phpBB2_old/images/smiles/crazy/crazy_borgsmile.gif new file mode 100644 index 0000000..76dd0d7 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_borgsmile.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_butterfly.gif b/phpBB2_old/images/smiles/crazy/crazy_butterfly.gif new file mode 100644 index 0000000..1b4b437 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_butterfly.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_color_.gif b/phpBB2_old/images/smiles/crazy/crazy_color_.gif new file mode 100644 index 0000000..69ca6bf Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_color_.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_cussing.gif b/phpBB2_old/images/smiles/crazy/crazy_cussing.gif new file mode 100644 index 0000000..19eb9d8 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_cussing.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_eggface.gif b/phpBB2_old/images/smiles/crazy/crazy_eggface.gif new file mode 100644 index 0000000..46dda3d Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_eggface.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_evil.gif b/phpBB2_old/images/smiles/crazy/crazy_evil.gif new file mode 100644 index 0000000..9440af3 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_evil.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_gmorning.gif b/phpBB2_old/images/smiles/crazy/crazy_gmorning.gif new file mode 100644 index 0000000..86ec594 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_gmorning.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_icecream.gif b/phpBB2_old/images/smiles/crazy/crazy_icecream.gif new file mode 100644 index 0000000..70843cd Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_icecream.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_infinity.gif b/phpBB2_old/images/smiles/crazy/crazy_infinity.gif new file mode 100644 index 0000000..aaaf1c8 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_infinity.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_kodomagnam.gif b/phpBB2_old/images/smiles/crazy/crazy_kodomagnam.gif new file mode 100644 index 0000000..dbd1e84 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_kodomagnam.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_let_it_all_out.gif b/phpBB2_old/images/smiles/crazy/crazy_let_it_all_out.gif new file mode 100644 index 0000000..4d76a52 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_let_it_all_out.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_littleangel.gif b/phpBB2_old/images/smiles/crazy/crazy_littleangel.gif new file mode 100644 index 0000000..d82d8e5 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_littleangel.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_llying.gif b/phpBB2_old/images/smiles/crazy/crazy_llying.gif new file mode 100644 index 0000000..09159c0 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_llying.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_microwave.gif b/phpBB2_old/images/smiles/crazy/crazy_microwave.gif new file mode 100644 index 0000000..06c1e58 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_microwave.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_monalisa.gif b/phpBB2_old/images/smiles/crazy/crazy_monalisa.gif new file mode 100644 index 0000000..2980156 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_monalisa.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_multi.gif b/phpBB2_old/images/smiles/crazy/crazy_multi.gif new file mode 100644 index 0000000..5c6023e Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_multi.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_newbie.gif b/phpBB2_old/images/smiles/crazy/crazy_newbie.gif new file mode 100644 index 0000000..8322095 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_newbie.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_olympic1.gif b/phpBB2_old/images/smiles/crazy/crazy_olympic1.gif new file mode 100644 index 0000000..a94b97a Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_olympic1.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_popcornsmiley.gif b/phpBB2_old/images/smiles/crazy/crazy_popcornsmiley.gif new file mode 100644 index 0000000..1414b24 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_popcornsmiley.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_puppy_dog_eyes.gif b/phpBB2_old/images/smiles/crazy/crazy_puppy_dog_eyes.gif new file mode 100644 index 0000000..ae49736 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_puppy_dog_eyes.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_rainbow.gif b/phpBB2_old/images/smiles/crazy/crazy_rainbow.gif new file mode 100644 index 0000000..390aa2e Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_rainbow.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_rainfro.gif b/phpBB2_old/images/smiles/crazy/crazy_rainfro.gif new file mode 100644 index 0000000..12be964 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_rainfro.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_rofl.gif b/phpBB2_old/images/smiles/crazy/crazy_rofl.gif new file mode 100644 index 0000000..a2c52ed Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_rofl.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_rotcol.gif b/phpBB2_old/images/smiles/crazy/crazy_rotcol.gif new file mode 100644 index 0000000..df5659f Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_rotcol.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_scatter.gif b/phpBB2_old/images/smiles/crazy/crazy_scatter.gif new file mode 100644 index 0000000..d8d5409 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_scatter.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_scrambles.gif b/phpBB2_old/images/smiles/crazy/crazy_scrambles.gif new file mode 100644 index 0000000..44a3ad7 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_scrambles.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_shocked.gif b/phpBB2_old/images/smiles/crazy/crazy_shocked.gif new file mode 100644 index 0000000..2c370cb Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_shocked.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_silly.gif b/phpBB2_old/images/smiles/crazy/crazy_silly.gif new file mode 100644 index 0000000..4d4b79d Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_silly.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_sleeping.gif b/phpBB2_old/images/smiles/crazy/crazy_sleeping.gif new file mode 100644 index 0000000..c3386ef Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_sleeping.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_smile-l.gif b/phpBB2_old/images/smiles/crazy/crazy_smile-l.gif new file mode 100644 index 0000000..80e6af6 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_smile-l.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_smileyb.gif b/phpBB2_old/images/smiles/crazy/crazy_smileyb.gif new file mode 100644 index 0000000..b1bbad2 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_smileyb.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_smilie_colors1.gif b/phpBB2_old/images/smiles/crazy/crazy_smilie_colors1.gif new file mode 100644 index 0000000..8e8a4a6 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_smilie_colors1.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_snipersmilie.gif b/phpBB2_old/images/smiles/crazy/crazy_snipersmilie.gif new file mode 100644 index 0000000..6be1fb6 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_snipersmilie.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_spiral.gif b/phpBB2_old/images/smiles/crazy/crazy_spiral.gif new file mode 100644 index 0000000..6acaa77 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_spiral.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_squarecycle.gif b/phpBB2_old/images/smiles/crazy/crazy_squarecycle.gif new file mode 100644 index 0000000..8d4e816 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_squarecycle.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_squarewink.gif b/phpBB2_old/images/smiles/crazy/crazy_squarewink.gif new file mode 100644 index 0000000..e2610b0 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_squarewink.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_terminator.gif b/phpBB2_old/images/smiles/crazy/crazy_terminator.gif new file mode 100644 index 0000000..64423f5 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_terminator.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_tomato.gif b/phpBB2_old/images/smiles/crazy/crazy_tomato.gif new file mode 100644 index 0000000..903ec37 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_tomato.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_ukliam2.gif b/phpBB2_old/images/smiles/crazy/crazy_ukliam2.gif new file mode 100644 index 0000000..3baaa26 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_ukliam2.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_usa.gif b/phpBB2_old/images/smiles/crazy/crazy_usa.gif new file mode 100644 index 0000000..bc866be Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_usa.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_vampv.gif b/phpBB2_old/images/smiles/crazy/crazy_vampv.gif new file mode 100644 index 0000000..72088ab Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_vampv.gif differ diff --git a/phpBB2_old/images/smiles/crazy/crazy_xmas.gif b/phpBB2_old/images/smiles/crazy/crazy_xmas.gif new file mode 100644 index 0000000..2691af4 Binary files /dev/null and b/phpBB2_old/images/smiles/crazy/crazy_xmas.gif differ diff --git a/phpBB2_old/images/smiles/icon_arrow.gif b/phpBB2_old/images/smiles/icon_arrow.gif new file mode 100755 index 0000000..2880055 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_arrow.gif differ diff --git a/phpBB2_old/images/smiles/icon_biggrin.gif b/phpBB2_old/images/smiles/icon_biggrin.gif new file mode 100755 index 0000000..d352772 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_biggrin.gif differ diff --git a/phpBB2_old/images/smiles/icon_confused.gif b/phpBB2_old/images/smiles/icon_confused.gif new file mode 100755 index 0000000..0c49e06 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_confused.gif differ diff --git a/phpBB2_old/images/smiles/icon_cool.gif b/phpBB2_old/images/smiles/icon_cool.gif new file mode 100755 index 0000000..cead030 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_cool.gif differ diff --git a/phpBB2_old/images/smiles/icon_cry.gif b/phpBB2_old/images/smiles/icon_cry.gif new file mode 100755 index 0000000..7d54b1f Binary files /dev/null and b/phpBB2_old/images/smiles/icon_cry.gif differ diff --git a/phpBB2_old/images/smiles/icon_eek.gif b/phpBB2_old/images/smiles/icon_eek.gif new file mode 100755 index 0000000..5d39781 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_eek.gif differ diff --git a/phpBB2_old/images/smiles/icon_evil.gif b/phpBB2_old/images/smiles/icon_evil.gif new file mode 100755 index 0000000..ab1aa8e Binary files /dev/null and b/phpBB2_old/images/smiles/icon_evil.gif differ diff --git a/phpBB2_old/images/smiles/icon_exclaim.gif b/phpBB2_old/images/smiles/icon_exclaim.gif new file mode 100755 index 0000000..6e50e2e Binary files /dev/null and b/phpBB2_old/images/smiles/icon_exclaim.gif differ diff --git a/phpBB2_old/images/smiles/icon_frown.gif b/phpBB2_old/images/smiles/icon_frown.gif new file mode 100755 index 0000000..d2ac78c Binary files /dev/null and b/phpBB2_old/images/smiles/icon_frown.gif differ diff --git a/phpBB2_old/images/smiles/icon_idea.gif b/phpBB2_old/images/smiles/icon_idea.gif new file mode 100755 index 0000000..a40ae0d Binary files /dev/null and b/phpBB2_old/images/smiles/icon_idea.gif differ diff --git a/phpBB2_old/images/smiles/icon_lol.gif b/phpBB2_old/images/smiles/icon_lol.gif new file mode 100755 index 0000000..374ba15 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_lol.gif differ diff --git a/phpBB2_old/images/smiles/icon_mad.gif b/phpBB2_old/images/smiles/icon_mad.gif new file mode 100755 index 0000000..1f6c3c2 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_mad.gif differ diff --git a/phpBB2_old/images/smiles/icon_mrgreen.gif b/phpBB2_old/images/smiles/icon_mrgreen.gif new file mode 100755 index 0000000..b54cd0f Binary files /dev/null and b/phpBB2_old/images/smiles/icon_mrgreen.gif differ diff --git a/phpBB2_old/images/smiles/icon_neutral.gif b/phpBB2_old/images/smiles/icon_neutral.gif new file mode 100755 index 0000000..4f31156 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_neutral.gif differ diff --git a/phpBB2_old/images/smiles/icon_question.gif b/phpBB2_old/images/smiles/icon_question.gif new file mode 100755 index 0000000..9d07226 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_question.gif differ diff --git a/phpBB2_old/images/smiles/icon_razz.gif b/phpBB2_old/images/smiles/icon_razz.gif new file mode 100755 index 0000000..29da2a2 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_razz.gif differ diff --git a/phpBB2_old/images/smiles/icon_redface.gif b/phpBB2_old/images/smiles/icon_redface.gif new file mode 100755 index 0000000..ad76283 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_redface.gif differ diff --git a/phpBB2_old/images/smiles/icon_rolleyes.gif b/phpBB2_old/images/smiles/icon_rolleyes.gif new file mode 100755 index 0000000..d7f5f2f Binary files /dev/null and b/phpBB2_old/images/smiles/icon_rolleyes.gif differ diff --git a/phpBB2_old/images/smiles/icon_sad.gif b/phpBB2_old/images/smiles/icon_sad.gif new file mode 100755 index 0000000..d2ac78c Binary files /dev/null and b/phpBB2_old/images/smiles/icon_sad.gif differ diff --git a/phpBB2_old/images/smiles/icon_smile.gif b/phpBB2_old/images/smiles/icon_smile.gif new file mode 100755 index 0000000..7b1f6d3 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_smile.gif differ diff --git a/phpBB2_old/images/smiles/icon_surprised.gif b/phpBB2_old/images/smiles/icon_surprised.gif new file mode 100755 index 0000000..cb21424 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_surprised.gif differ diff --git a/phpBB2_old/images/smiles/icon_twisted.gif b/phpBB2_old/images/smiles/icon_twisted.gif new file mode 100755 index 0000000..502fe24 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_twisted.gif differ diff --git a/phpBB2_old/images/smiles/icon_wink.gif b/phpBB2_old/images/smiles/icon_wink.gif new file mode 100755 index 0000000..d148288 Binary files /dev/null and b/phpBB2_old/images/smiles/icon_wink.gif differ diff --git a/phpBB2_old/images/smiles/signs.zip b/phpBB2_old/images/smiles/signs.zip new file mode 100644 index 0000000..a469137 Binary files /dev/null and b/phpBB2_old/images/smiles/signs.zip differ diff --git a/phpBB2_old/images/smiles/signs/signs_champion.gif b/phpBB2_old/images/smiles/signs/signs_champion.gif new file mode 100644 index 0000000..2cbe336 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_champion.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_help.gif b/phpBB2_old/images/smiles/signs/signs_help.gif new file mode 100644 index 0000000..2744db1 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_help.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_hm.gif b/phpBB2_old/images/smiles/signs/signs_hm.gif new file mode 100644 index 0000000..74c7d92 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_hm.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_lol.gif b/phpBB2_old/images/smiles/signs/signs_lol.gif new file mode 100644 index 0000000..8197970 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_lol.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_noparking.gif b/phpBB2_old/images/smiles/signs/signs_noparking.gif new file mode 100644 index 0000000..2ea1883 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_noparking.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_nopass.gif b/phpBB2_old/images/smiles/signs/signs_nopass.gif new file mode 100644 index 0000000..68f4b78 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_nopass.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_oneway.gif b/phpBB2_old/images/smiles/signs/signs_oneway.gif new file mode 100644 index 0000000..55bbe69 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_oneway.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_prepare.gif b/phpBB2_old/images/smiles/signs/signs_prepare.gif new file mode 100644 index 0000000..e5ad304 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_prepare.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_rant.gif b/phpBB2_old/images/smiles/signs/signs_rant.gif new file mode 100644 index 0000000..15c4dc9 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_rant.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_rantoff.gif b/phpBB2_old/images/smiles/signs/signs_rantoff.gif new file mode 100644 index 0000000..39e824c Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_rantoff.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_ranton.gif b/phpBB2_old/images/smiles/signs/signs_ranton.gif new file mode 100644 index 0000000..414ff2d Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_ranton.gif differ diff --git a/phpBB2_old/images/smiles/signs/signs_welcome.gif b/phpBB2_old/images/smiles/signs/signs_welcome.gif new file mode 100644 index 0000000..b059e78 Binary files /dev/null and b/phpBB2_old/images/smiles/signs/signs_welcome.gif differ diff --git a/phpBB2_old/images/smiles/signs_champion.gif b/phpBB2_old/images/smiles/signs_champion.gif new file mode 100644 index 0000000..2cbe336 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_champion.gif differ diff --git a/phpBB2_old/images/smiles/signs_help.gif b/phpBB2_old/images/smiles/signs_help.gif new file mode 100644 index 0000000..2744db1 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_help.gif differ diff --git a/phpBB2_old/images/smiles/signs_hm.gif b/phpBB2_old/images/smiles/signs_hm.gif new file mode 100644 index 0000000..74c7d92 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_hm.gif differ diff --git a/phpBB2_old/images/smiles/signs_lol.gif b/phpBB2_old/images/smiles/signs_lol.gif new file mode 100644 index 0000000..8197970 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_lol.gif differ diff --git a/phpBB2_old/images/smiles/signs_noparking.gif b/phpBB2_old/images/smiles/signs_noparking.gif new file mode 100644 index 0000000..2ea1883 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_noparking.gif differ diff --git a/phpBB2_old/images/smiles/signs_nopass.gif b/phpBB2_old/images/smiles/signs_nopass.gif new file mode 100644 index 0000000..68f4b78 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_nopass.gif differ diff --git a/phpBB2_old/images/smiles/signs_oneway.gif b/phpBB2_old/images/smiles/signs_oneway.gif new file mode 100644 index 0000000..55bbe69 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_oneway.gif differ diff --git a/phpBB2_old/images/smiles/signs_prepare.gif b/phpBB2_old/images/smiles/signs_prepare.gif new file mode 100644 index 0000000..e5ad304 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_prepare.gif differ diff --git a/phpBB2_old/images/smiles/signs_rant.gif b/phpBB2_old/images/smiles/signs_rant.gif new file mode 100644 index 0000000..15c4dc9 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_rant.gif differ diff --git a/phpBB2_old/images/smiles/signs_rantoff.gif b/phpBB2_old/images/smiles/signs_rantoff.gif new file mode 100644 index 0000000..39e824c Binary files /dev/null and b/phpBB2_old/images/smiles/signs_rantoff.gif differ diff --git a/phpBB2_old/images/smiles/signs_ranton.gif b/phpBB2_old/images/smiles/signs_ranton.gif new file mode 100644 index 0000000..414ff2d Binary files /dev/null and b/phpBB2_old/images/smiles/signs_ranton.gif differ diff --git a/phpBB2_old/images/smiles/signs_welcome.gif b/phpBB2_old/images/smiles/signs_welcome.gif new file mode 100644 index 0000000..b059e78 Binary files /dev/null and b/phpBB2_old/images/smiles/signs_welcome.gif differ diff --git a/phpBB2_old/images/smiles/sports.zip b/phpBB2_old/images/smiles/sports.zip new file mode 100644 index 0000000..6e1fd49 Binary files /dev/null and b/phpBB2_old/images/smiles/sports.zip differ diff --git a/phpBB2_old/images/smiles/sports/sports_basket.gif b/phpBB2_old/images/smiles/sports/sports_basket.gif new file mode 100644 index 0000000..2d39735 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_basket.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_bronze.gif b/phpBB2_old/images/smiles/sports/sports_bronze.gif new file mode 100644 index 0000000..c0f0867 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_bronze.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_cycling.gif b/phpBB2_old/images/smiles/sports/sports_cycling.gif new file mode 100644 index 0000000..332081e Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_cycling.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_drop.gif b/phpBB2_old/images/smiles/sports/sports_drop.gif new file mode 100644 index 0000000..9eb2904 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_drop.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_fairplay.jpg b/phpBB2_old/images/smiles/sports/sports_fairplay.jpg new file mode 100644 index 0000000..ea2aadb Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_fairplay.jpg differ diff --git a/phpBB2_old/images/smiles/sports/sports_goal.gif b/phpBB2_old/images/smiles/sports/sports_goal.gif new file mode 100644 index 0000000..52d1dc9 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_goal.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_keep.gif b/phpBB2_old/images/smiles/sports/sports_keep.gif new file mode 100644 index 0000000..c9fa6c5 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_keep.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_maillotjaune.gif b/phpBB2_old/images/smiles/sports/sports_maillotjaune.gif new file mode 100644 index 0000000..21e3016 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_maillotjaune.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ping.gif b/phpBB2_old/images/smiles/sports/sports_ping.gif new file mode 100644 index 0000000..407c9ff Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ping.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_podium.gif b/phpBB2_old/images/smiles/sports/sports_podium.gif new file mode 100644 index 0000000..9079b35 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_podium.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_putgolf.gif b/phpBB2_old/images/smiles/sports/sports_putgolf.gif new file mode 100644 index 0000000..bb14fd4 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_putgolf.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski.gif b/phpBB2_old/images/smiles/sports/sports_ski.gif new file mode 100644 index 0000000..9ac7397 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski1.gif b/phpBB2_old/images/smiles/sports/sports_ski1.gif new file mode 100644 index 0000000..5101d60 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski1.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski2.gif b/phpBB2_old/images/smiles/sports/sports_ski2.gif new file mode 100644 index 0000000..0971128 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski2.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski3.gif b/phpBB2_old/images/smiles/sports/sports_ski3.gif new file mode 100644 index 0000000..bf5f4ea Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski3.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski4.gif b/phpBB2_old/images/smiles/sports/sports_ski4.gif new file mode 100644 index 0000000..9844a6a Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski4.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski5.gif b/phpBB2_old/images/smiles/sports/sports_ski5.gif new file mode 100644 index 0000000..83b1116 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski5.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski6.gif b/phpBB2_old/images/smiles/sports/sports_ski6.gif new file mode 100644 index 0000000..2ed1c96 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski6.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski_fallen.gif b/phpBB2_old/images/smiles/sports/sports_ski_fallen.gif new file mode 100644 index 0000000..9d37f39 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski_fallen.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski_falling.gif b/phpBB2_old/images/smiles/sports/sports_ski_falling.gif new file mode 100644 index 0000000..799ed6c Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski_falling.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski_jump.gif b/phpBB2_old/images/smiles/sports/sports_ski_jump.gif new file mode 100644 index 0000000..7534a66 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski_jump.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski_jumpintree.gif b/phpBB2_old/images/smiles/sports/sports_ski_jumpintree.gif new file mode 100644 index 0000000..cd6f963 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski_jumpintree.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_ski_slalom.gif b/phpBB2_old/images/smiles/sports/sports_ski_slalom.gif new file mode 100644 index 0000000..0b255eb Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_ski_slalom.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_skismile.gif b/phpBB2_old/images/smiles/sports/sports_skismile.gif new file mode 100644 index 0000000..2d2a393 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_skismile.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_swinggolf.gif b/phpBB2_old/images/smiles/sports/sports_swinggolf.gif new file mode 100644 index 0000000..2bd1e24 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_swinggolf.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_velo.gif b/phpBB2_old/images/smiles/sports/sports_velo.gif new file mode 100644 index 0000000..a98d044 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_velo.gif differ diff --git a/phpBB2_old/images/smiles/sports/sports_wave.gif b/phpBB2_old/images/smiles/sports/sports_wave.gif new file mode 100644 index 0000000..beb46e6 Binary files /dev/null and b/phpBB2_old/images/smiles/sports/sports_wave.gif differ diff --git a/phpBB2_old/images/smiles/sports_boat.gif b/phpBB2_old/images/smiles/sports_boat.gif new file mode 100644 index 0000000..624cb47 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_boat.gif differ diff --git a/phpBB2_old/images/smiles/sports_boxing.gif b/phpBB2_old/images/smiles/sports_boxing.gif new file mode 100644 index 0000000..8818c3e Binary files /dev/null and b/phpBB2_old/images/smiles/sports_boxing.gif differ diff --git a/phpBB2_old/images/smiles/sports_checkeredflag.gif b/phpBB2_old/images/smiles/sports_checkeredflag.gif new file mode 100644 index 0000000..28582d7 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_checkeredflag.gif differ diff --git a/phpBB2_old/images/smiles/sports_cup.gif b/phpBB2_old/images/smiles/sports_cup.gif new file mode 100644 index 0000000..92eb4ab Binary files /dev/null and b/phpBB2_old/images/smiles/sports_cup.gif differ diff --git a/phpBB2_old/images/smiles/sports_diver.gif b/phpBB2_old/images/smiles/sports_diver.gif new file mode 100644 index 0000000..57da08b Binary files /dev/null and b/phpBB2_old/images/smiles/sports_diver.gif differ diff --git a/phpBB2_old/images/smiles/sports_footballhelmet.gif b/phpBB2_old/images/smiles/sports_footballhelmet.gif new file mode 100644 index 0000000..9ceda34 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_footballhelmet.gif differ diff --git a/phpBB2_old/images/smiles/sports_garchery.gif b/phpBB2_old/images/smiles/sports_garchery.gif new file mode 100644 index 0000000..74dbe4d Binary files /dev/null and b/phpBB2_old/images/smiles/sports_garchery.gif differ diff --git a/phpBB2_old/images/smiles/sports_grouphug.gif b/phpBB2_old/images/smiles/sports_grouphug.gif new file mode 100644 index 0000000..defa5db Binary files /dev/null and b/phpBB2_old/images/smiles/sports_grouphug.gif differ diff --git a/phpBB2_old/images/smiles/sports_jab.gif b/phpBB2_old/images/smiles/sports_jab.gif new file mode 100644 index 0000000..fc2d889 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_jab.gif differ diff --git a/phpBB2_old/images/smiles/sports_skateboard.gif b/phpBB2_old/images/smiles/sports_skateboard.gif new file mode 100644 index 0000000..40b8aff Binary files /dev/null and b/phpBB2_old/images/smiles/sports_skateboard.gif differ diff --git a/phpBB2_old/images/smiles/sports_snorkel.gif b/phpBB2_old/images/smiles/sports_snorkel.gif new file mode 100644 index 0000000..2a963a2 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_snorkel.gif differ diff --git a/phpBB2_old/images/smiles/sports_surfing.gif b/phpBB2_old/images/smiles/sports_surfing.gif new file mode 100644 index 0000000..d9b3685 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_surfing.gif differ diff --git a/phpBB2_old/images/smiles/sports_target.gif b/phpBB2_old/images/smiles/sports_target.gif new file mode 100644 index 0000000..d043647 Binary files /dev/null and b/phpBB2_old/images/smiles/sports_target.gif differ diff --git a/phpBB2_old/images/smiles/sports_waterskiing.gif b/phpBB2_old/images/smiles/sports_waterskiing.gif new file mode 100644 index 0000000..d735c3f Binary files /dev/null and b/phpBB2_old/images/smiles/sports_waterskiing.gif differ diff --git a/phpBB2_old/images/smiles/sports_weightlifter.gif b/phpBB2_old/images/smiles/sports_weightlifter.gif new file mode 100644 index 0000000..4bdfd6f Binary files /dev/null and b/phpBB2_old/images/smiles/sports_weightlifter.gif differ diff --git a/phpBB2_old/images/smiles/valentine/Valentine.pak b/phpBB2_old/images/smiles/valentine/Valentine.pak new file mode 100644 index 0000000..a5c56d5 --- /dev/null +++ b/phpBB2_old/images/smiles/valentine/Valentine.pak @@ -0,0 +1,17 @@ +valentine_bemine.gif=+:valentine_bemine.gif=+:[valentine_bemine.gif] +valentine_callme.gif=+:valentine_callme.gif=+:[valentine_callme.gif] +valentine_Happy.gif=+:valentine_Happy.gif=+:[valentine_Happy.gif] +valentine_Heartfillwithlove.gif=+:valentine_Heartfillwithlove.gif=+:[valentine_Heartfillwithlove.gif] +valentine_Hiya.gif=+:valentine_Hiya.gif=+:[valentine_Hiya.gif] +valentine_hotoveryou.gif=+:valentine_hotoveryou.gif=+:[valentine_hotoveryou.gif] +valentine_Iloveyou1.gif=+:valentine_Iloveyou1.gif=+:[valentine_Iloveyou1.gif] +valentine_iloveyou2.gif=+:valentine_iloveyou2.gif=+:[valentine_iloveyou2.gif] +valentine_Kissoflove.gif=+:valentine_Kissoflove.gif=+:[valentine_Kissoflove.gif] +valentine_lovesick.gif=+:valentine_lovesick.gif=+:[valentine_lovesick.gif] +valentine_lovetogether.gif=+:valentine_lovetogether.gif=+:[valentine_lovetogether.gif] +valentine_myHeartfireupforyou.gif=+:valentine_myHeartfireupforyou.gif=+:[valentine_myHeartfireupforyou.gif] +valentine_mylove.gif=+:valentine_mylove.gif=+:[valentine_mylove.gif] +valentine_Peekaboo.gif=+:valentine_Peekaboo.gif=+:[valentine_Peekaboo.gif] +valentine_Realmad.gif=+:valentine_Realmad.gif=+:[valentine_Realmad.gif] +valentine_Tofunny.gif=+:valentine_Tofunny.gif=+:[valentine_Tofunny.gif] +valentine_winyourlove.gif=+:valentine_winyourlove.gif=+:[valentine_winyourlove.gif] diff --git a/phpBB2_old/images/smiles/valentine/valentine_Happy.gif b/phpBB2_old/images/smiles/valentine/valentine_Happy.gif new file mode 100644 index 0000000..5d9b1d7 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Happy.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Heartfillwithlove.gif b/phpBB2_old/images/smiles/valentine/valentine_Heartfillwithlove.gif new file mode 100644 index 0000000..a86912a Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Heartfillwithlove.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Hiya.gif b/phpBB2_old/images/smiles/valentine/valentine_Hiya.gif new file mode 100644 index 0000000..575f1a2 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Hiya.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Iloveyou1.gif b/phpBB2_old/images/smiles/valentine/valentine_Iloveyou1.gif new file mode 100644 index 0000000..6b2ded9 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Iloveyou1.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Kissoflove.gif b/phpBB2_old/images/smiles/valentine/valentine_Kissoflove.gif new file mode 100644 index 0000000..0d83c27 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Kissoflove.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Peekaboo.gif b/phpBB2_old/images/smiles/valentine/valentine_Peekaboo.gif new file mode 100644 index 0000000..8822714 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Peekaboo.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Realmad.gif b/phpBB2_old/images/smiles/valentine/valentine_Realmad.gif new file mode 100644 index 0000000..baad2d0 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Realmad.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_Tofunny.gif b/phpBB2_old/images/smiles/valentine/valentine_Tofunny.gif new file mode 100644 index 0000000..7b62901 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_Tofunny.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_bemine.gif b/phpBB2_old/images/smiles/valentine/valentine_bemine.gif new file mode 100644 index 0000000..c0b1620 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_bemine.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_callme.gif b/phpBB2_old/images/smiles/valentine/valentine_callme.gif new file mode 100644 index 0000000..5d130f4 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_callme.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_hotoveryou.gif b/phpBB2_old/images/smiles/valentine/valentine_hotoveryou.gif new file mode 100644 index 0000000..5c4c2e7 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_hotoveryou.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_iloveyou2.gif b/phpBB2_old/images/smiles/valentine/valentine_iloveyou2.gif new file mode 100644 index 0000000..e00ae8b Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_iloveyou2.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_lovesick.gif b/phpBB2_old/images/smiles/valentine/valentine_lovesick.gif new file mode 100644 index 0000000..df98b94 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_lovesick.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_lovetogether.gif b/phpBB2_old/images/smiles/valentine/valentine_lovetogether.gif new file mode 100644 index 0000000..bd73373 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_lovetogether.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_myHeartfireupforyou.gif b/phpBB2_old/images/smiles/valentine/valentine_myHeartfireupforyou.gif new file mode 100644 index 0000000..db37b5c Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_myHeartfireupforyou.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_mylove.gif b/phpBB2_old/images/smiles/valentine/valentine_mylove.gif new file mode 100644 index 0000000..9486e4d Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_mylove.gif differ diff --git a/phpBB2_old/images/smiles/valentine/valentine_winyourlove.gif b/phpBB2_old/images/smiles/valentine/valentine_winyourlove.gif new file mode 100644 index 0000000..4539e22 Binary files /dev/null and b/phpBB2_old/images/smiles/valentine/valentine_winyourlove.gif differ diff --git a/phpBB2_old/images/spacer.gif b/phpBB2_old/images/spacer.gif new file mode 100755 index 0000000..cd29009 Binary files /dev/null and b/phpBB2_old/images/spacer.gif differ diff --git a/phpBB2_old/includes/auth.php b/phpBB2_old/includes/auth.php new file mode 100644 index 0000000..2e35a32 --- /dev/null +++ b/phpBB2_old/includes/auth.php @@ -0,0 +1,326 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Failed obtaining forum access control lists', '', __LINE__, __FILE__, $sql); + } + + $sql_fetchrow = ( $forum_id != AUTH_LIST_ALL ) ? 'sql_fetchrow' : 'sql_fetchrowset'; + + if ( !($f_access = $db->$sql_fetchrow($result)) ) + { + $db->sql_freeresult($result); + return array(); + } + $db->sql_freeresult($result); + } + + // + // If the user isn't logged on then all we need do is check if the forum + // has the type set to ALL, if yes they are good to go, if not then they + // are denied access + // + $u_access = array(); + if ( $userdata['session_logged_in'] ) + { + $forum_match_sql = ( $forum_id != AUTH_LIST_ALL ) ? "AND a.forum_id = $forum_id" : ''; + + $sql = "SELECT a.forum_id, $a_sql, a.auth_mod + FROM " . AUTH_ACCESS_TABLE . " a, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = ".$userdata['user_id']. " + AND ug.user_pending = 0 + AND a.group_id = ug.group_id + $forum_match_sql"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Failed obtaining forum access control lists', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + if ( $forum_id != AUTH_LIST_ALL) + { + $u_access[] = $row; + } + else + { + $u_access[$row['forum_id']][] = $row; + } + } + while( $row = $db->sql_fetchrow($result) ); + } + $db->sql_freeresult($result); + } + + $is_admin = ( $userdata['user_level'] == ADMIN && $userdata['session_logged_in'] ) ? TRUE : 0; + + $auth_user = array(); + for($i = 0; $i < count($auth_fields); $i++) + { + $key = $auth_fields[$i]; + + // + // If the user is logged on and the forum type is either ALL or REG then the user has access + // + // If the type if ACL, MOD or ADMIN then we need to see if the user has specific permissions + // to do whatever it is they want to do ... to do this we pull relevant information for the + // user (and any groups they belong to) + // + // Now we compare the users access level against the forums. We assume here that a moderator + // and admin automatically have access to an ACL forum, similarly we assume admins meet an + // auth requirement of MOD + // + if ( $forum_id != AUTH_LIST_ALL ) + { + $value = $f_access[$key]; + + switch( $value ) + { + case AUTH_ALL: + $auth_user[$key] = TRUE; + $auth_user[$key . '_type'] = $lang['Auth_Anonymous_Users']; + break; + + case AUTH_REG: + $auth_user[$key] = ( $userdata['session_logged_in'] ) ? TRUE : 0; + $auth_user[$key . '_type'] = $lang['Auth_Registered_Users']; + break; + + case AUTH_ACL: + $auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access, $is_admin) : 0; + $auth_user[$key . '_type'] = $lang['Auth_Users_granted_access']; + break; + + case AUTH_MOD: + $auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0; + $auth_user[$key . '_type'] = $lang['Auth_Moderators']; + break; + + case AUTH_ADMIN: + $auth_user[$key] = $is_admin; + $auth_user[$key . '_type'] = $lang['Auth_Administrators']; + break; + + default: + $auth_user[$key] = 0; + break; + } + } + else + { + for($k = 0; $k < count($f_access); $k++) + { + $value = $f_access[$k][$key]; + $f_forum_id = $f_access[$k]['forum_id']; + + switch( $value ) + { + case AUTH_ALL: + $auth_user[$f_forum_id][$key] = TRUE; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Anonymous_Users']; + break; + + case AUTH_REG: + $auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? TRUE : 0; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Registered_Users']; + break; + + case AUTH_ACL: + $auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access[$f_forum_id], $is_admin) : 0; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Users_granted_access']; + break; + + case AUTH_MOD: + $auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Moderators']; + break; + + case AUTH_ADMIN: + $auth_user[$f_forum_id][$key] = $is_admin; + $auth_user[$f_forum_id][$key . '_type'] = $lang['Auth_Administrators']; + break; + + default: + $auth_user[$f_forum_id][$key] = 0; + break; + } + } + } + } + + // + // Is user a moderator? + // + if ( $forum_id != AUTH_LIST_ALL ) + { + $auth_user['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0; + } + else + { + for($k = 0; $k < count($f_access); $k++) + { + $f_forum_id = $f_access[$k]['forum_id']; + + $auth_user[$f_forum_id]['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0; + } + } + + return $auth_user; +} + +function auth_check_user($type, $key, $u_access, $is_admin) +{ + $auth_user = 0; + + if ( count($u_access) ) + { + for($j = 0; $j < count($u_access); $j++) + { + $result = 0; + switch($type) + { + case AUTH_ACL: + $result = $u_access[$j][$key]; + + case AUTH_MOD: + $result = $result || $u_access[$j]['auth_mod']; + + case AUTH_ADMIN: + $result = $result || $is_admin; + break; + } + + $auth_user = $auth_user || $result; + } + } + else + { + $auth_user = $is_admin; + } + + return $auth_user; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/bbcode.php b/phpBB2_old/includes/bbcode.php new file mode 100644 index 0000000..c9c8cb6 --- /dev/null +++ b/phpBB2_old/includes/bbcode.php @@ -0,0 +1,785 @@ +make_filename('bbcode.tpl'); + $tpl = fread(fopen($tpl_filename, 'r'), filesize($tpl_filename)); + + // replace \ with \\ and then ' with \'. + $tpl = str_replace('\\', '\\\\', $tpl); + $tpl = str_replace('\'', '\\\'', $tpl); + + // strip newlines. + $tpl = str_replace("\n", '', $tpl); + + // Turn template blocks into PHP assignment statements for the values of $bbcode_tpls.. + $tpl = preg_replace('#(.*?)#', "\n" . '$bbcode_tpls[\'\\1\'] = \'\\2\';', $tpl); + + $bbcode_tpls = array(); + + eval($tpl); + + return $bbcode_tpls; +} + + +/** + * Prepares the loaded bbcode templates for insertion into preg_replace() + * or str_replace() calls in the bbencode_second_pass functions. This + * means replacing template placeholders with the appropriate preg backrefs + * or with language vars. NOTE: If you change how the regexps work in + * bbencode_second_pass(), you MUST change this function. + * + * Nathan Codding, Sept 26 2001 + * + */ +function prepare_bbcode_template($bbcode_tpl) +{ + global $lang; + + $bbcode_tpl['olist_open'] = str_replace('{LIST_TYPE}', '\\1', $bbcode_tpl['olist_open']); + + $bbcode_tpl['color_open'] = str_replace('{COLOR}', '\\1', $bbcode_tpl['color_open']); + + $bbcode_tpl['size_open'] = str_replace('{SIZE}', '\\1', $bbcode_tpl['size_open']); + + $bbcode_tpl['quote_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_open']); + + $bbcode_tpl['quote_username_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_username_open']); + $bbcode_tpl['quote_username_open'] = str_replace('{L_WROTE}', $lang['wrote'], $bbcode_tpl['quote_username_open']); + $bbcode_tpl['quote_username_open'] = str_replace('{USERNAME}', '\\1', $bbcode_tpl['quote_username_open']); + + $bbcode_tpl['code_open'] = str_replace('{L_CODE}', $lang['Code'], $bbcode_tpl['code_open']); + + $bbcode_tpl['img'] = str_replace('{URL}', '\\1', $bbcode_tpl['img']); + + // We do URLs in several different ways.. + $bbcode_tpl['url1'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']); + $bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']); + + $bbcode_tpl['url2'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']); + $bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url2']); + + $bbcode_tpl['url3'] = str_replace('{URL}', '\\1', $bbcode_tpl['url']); + $bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['url3']); + + $bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']); + $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']); + + $bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']); + + define("BBCODE_TPL_READY", true); + + return $bbcode_tpl; +} + + +/** + * Does second-pass bbencoding. This should be used before displaying the message in + * a thread. Assumes the message is already first-pass encoded, and we are given the + * correct UID as used in first-pass encoding. + */ +function bbencode_second_pass($text, $uid) +{ + global $lang, $bbcode_tpl; + + // pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0). + // This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it. + $text = " " . $text; + + // First: If there isn't a "[" and a "]" in the message, don't bother. + if (! (strpos($text, "[") && strpos($text, "]")) ) + { + // Remove padding, return. + $text = substr($text, 1); + return $text; + } + + // Only load the templates ONCE.. + if (!defined("BBCODE_TPL_READY")) + { + // load templates from file into array. + $bbcode_tpl = load_bbcode_template(); + + // prepare array for use in regexps. + $bbcode_tpl = prepare_bbcode_template($bbcode_tpl); + } + + // [CODE] and [/CODE] for posting code (HTML, PHP, C etc etc) in your posts. + $text = bbencode_second_pass_code($text, $uid, $bbcode_tpl); + + // [QUOTE] and [/QUOTE] for posting replies with quote, or just for quoting stuff. + $text = str_replace("[quote:$uid]", $bbcode_tpl['quote_open'], $text); + $text = str_replace("[/quote:$uid]", $bbcode_tpl['quote_close'], $text); + + // New one liner to deal with opening quotes with usernames... + // replaces the two line version that I had here before.. + $text = preg_replace("/\[quote:$uid=\"(.*?)\"\]/si", $bbcode_tpl['quote_username_open'], $text); + + // [list] and [list=x] for (un)ordered lists. + // unordered lists + $text = str_replace("[list:$uid]", $bbcode_tpl['ulist_open'], $text); + // li tags + $text = str_replace("[*:$uid]", $bbcode_tpl['listitem'], $text); + // ending tags + $text = str_replace("[/list:u:$uid]", $bbcode_tpl['ulist_close'], $text); + $text = str_replace("[/list:o:$uid]", $bbcode_tpl['olist_close'], $text); + // Ordered lists + $text = preg_replace("/\[list=([a1]):$uid\]/si", $bbcode_tpl['olist_open'], $text); + + // colours + $text = preg_replace("/\[color=(\#[0-9A-F]{6}|[a-z]+):$uid\]/si", $bbcode_tpl['color_open'], $text); + $text = str_replace("[/color:$uid]", $bbcode_tpl['color_close'], $text); + + // size + $text = preg_replace("/\[size=([1-2]?[0-9]):$uid\]/si", $bbcode_tpl['size_open'], $text); + $text = str_replace("[/size:$uid]", $bbcode_tpl['size_close'], $text); + + // [b] and [/b] for bolding text. + $text = str_replace("[b:$uid]", $bbcode_tpl['b_open'], $text); + $text = str_replace("[/b:$uid]", $bbcode_tpl['b_close'], $text); + + // [u] and [/u] for underlining text. + $text = str_replace("[u:$uid]", $bbcode_tpl['u_open'], $text); + $text = str_replace("[/u:$uid]", $bbcode_tpl['u_close'], $text); + + // [i] and [/i] for italicizing text. + $text = str_replace("[i:$uid]", $bbcode_tpl['i_open'], $text); + $text = str_replace("[/i:$uid]", $bbcode_tpl['i_close'], $text); + + // Patterns and replacements for URL and email tags.. + $patterns = array(); + $replacements = array(); + + // [img]image_url_here[/img] code.. + // This one gets first-passed.. + $patterns[] = "#\[img:$uid\](.*?)\[/img:$uid\]#si"; + $replacements[] = $bbcode_tpl['img']; + + // matches a [url]xxxx://www.phpbb.com[/url] code.. + $patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url1']; + + // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix). + $patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url2']; + + // [url=xxxx://www.phpbb.com]phpBB[/url] code.. + $patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url3']; + + // [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix). + $patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is"; + $replacements[] = $bbcode_tpl['url4']; + + // [email]user@domain.tld[/email] code.. + $patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si"; + $replacements[] = $bbcode_tpl['email']; + + $text = preg_replace($patterns, $replacements, $text); + + // Remove our padding from the string.. + $text = substr($text, 1); + + return $text; + +} // bbencode_second_pass() + +// Need to initialize the random numbers only ONCE +mt_srand( (double) microtime() * 1000000); + +function make_bbcode_uid() +{ + // Unique ID for this message.. + + $uid = md5(mt_rand()); + $uid = substr($uid, 0, BBCODE_UID_LEN); + + return $uid; +} + +function bbencode_first_pass($text, $uid) +{ + // pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0). + // This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it. + $text = " " . $text; + + // [CODE] and [/CODE] for posting code (HTML, PHP, C etc etc) in your posts. + $text = bbencode_first_pass_pda($text, $uid, '[code]', '[/code]', '', true, ''); + + // [QUOTE] and [/QUOTE] for posting replies with quote, or just for quoting stuff. + $text = bbencode_first_pass_pda($text, $uid, '[quote]', '[/quote]', '', false, ''); + $text = bbencode_first_pass_pda($text, $uid, '/\[quote=(\\\".*?\\\")\]/is', '[/quote]', '', false, '', "[quote:$uid=\\1]"); + + // [list] and [list=x] for (un)ordered lists. + $open_tag = array(); + $open_tag[0] = "[list]"; + + // unordered.. + $text = bbencode_first_pass_pda($text, $uid, $open_tag, "[/list]", "[/list:u]", false, 'replace_listitems'); + + $open_tag[0] = "[list=1]"; + $open_tag[1] = "[list=a]"; + + // ordered. + $text = bbencode_first_pass_pda($text, $uid, $open_tag, "[/list]", "[/list:o]", false, 'replace_listitems'); + + // [color] and [/color] for setting text color + $text = preg_replace("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "[color=\\1:$uid]\\2[/color:$uid]", $text); + + // [size] and [/size] for setting text size + $text = preg_replace("#\[size=([1-2]?[0-9])\](.*?)\[/size\]#si", "[size=\\1:$uid]\\2[/size:$uid]", $text); + + // [b] and [/b] for bolding text. + $text = preg_replace("#\[b\](.*?)\[/b\]#si", "[b:$uid]\\1[/b:$uid]", $text); + + // [u] and [/u] for underlining text. + $text = preg_replace("#\[u\](.*?)\[/u\]#si", "[u:$uid]\\1[/u:$uid]", $text); + + // [i] and [/i] for italicizing text. + $text = preg_replace("#\[i\](.*?)\[/i\]#si", "[i:$uid]\\1[/i:$uid]", $text); + + // [img]image_url_here[/img] code.. + $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text); + + // Remove our padding from the string.. + return substr($text, 1);; + +} // bbencode_first_pass() + +/** + * $text - The text to operate on. + * $uid - The UID to add to matching tags. + * $open_tag - The opening tag to match. Can be an array of opening tags. + * $close_tag - The closing tag to match. + * $close_tag_new - The closing tag to replace with. + * $mark_lowest_level - boolean - should we specially mark the tags that occur + * at the lowest level of nesting? (useful for [code], because + * we need to match these tags first and transform HTML tags + * in their contents.. + * $func - This variable should contain a string that is the name of a function. + * That function will be called when a match is found, and passed 2 + * parameters: ($text, $uid). The function should return a string. + * This is used when some transformation needs to be applied to the + * text INSIDE a pair of matching tags. If this variable is FALSE or the + * empty string, it will not be executed. + * If open_tag is an array, then the pda will try to match pairs consisting of + * any element of open_tag followed by close_tag. This allows us to match things + * like [list=A]...[/list] and [list=1]...[/list] in one pass of the PDA. + * + * NOTES: - this function assumes the first character of $text is a space. + * - every opening tag and closing tag must be of the [...] format. + */ +function bbencode_first_pass_pda($text, $uid, $open_tag, $close_tag, $close_tag_new, $mark_lowest_level, $func, $open_regexp_replace = false) +{ + $open_tag_count = 0; + + if (!$close_tag_new || ($close_tag_new == '')) + { + $close_tag_new = $close_tag; + } + + $close_tag_length = strlen($close_tag); + $close_tag_new_length = strlen($close_tag_new); + $uid_length = strlen($uid); + + $use_function_pointer = ($func && ($func != '')); + + $stack = array(); + + if (is_array($open_tag)) + { + if (0 == count($open_tag)) + { + // No opening tags to match, so return. + return $text; + } + $open_tag_count = count($open_tag); + } + else + { + // only one opening tag. make it into a 1-element array. + $open_tag_temp = $open_tag; + $open_tag = array(); + $open_tag[0] = $open_tag_temp; + $open_tag_count = 1; + } + + $open_is_regexp = false; + + if ($open_regexp_replace) + { + $open_is_regexp = true; + if (!is_array($open_regexp_replace)) + { + $open_regexp_temp = $open_regexp_replace; + $open_regexp_replace = array(); + $open_regexp_replace[0] = $open_regexp_temp; + } + } + + if ($mark_lowest_level && $open_is_regexp) + { + message_die(GENERAL_ERROR, "Unsupported operation for bbcode_first_pass_pda()."); + } + + // Start at the 2nd char of the string, looking for opening tags. + $curr_pos = 1; + while ($curr_pos && ($curr_pos < strlen($text))) + { + $curr_pos = strpos($text, "[", $curr_pos); + + // If not found, $curr_pos will be 0, and the loop will end. + if ($curr_pos) + { + // We found a [. It starts at $curr_pos. + // check if it's a starting or ending tag. + $found_start = false; + $which_start_tag = ""; + $start_tag_index = -1; + + for ($i = 0; $i < $open_tag_count; $i++) + { + // Grab everything until the first "]"... + $possible_start = substr($text, $curr_pos, strpos($text, ']', $curr_pos + 1) - $curr_pos + 1); + + // + // We're going to try and catch usernames with "[' characters. + // + if( preg_match('#\[quote=\\\"#si', $possible_start, $match) && !preg_match('#\[quote=\\\"(.*?)\\\"\]#si', $possible_start) ) + { + // OK we are in a quote tag that probably contains a ] bracket. + // Grab a bit more of the string to hopefully get all of it.. + if ($close_pos = strpos($text, '"]', $curr_pos + 9)) + { + if (strpos(substr($text, $curr_pos + 9, $close_pos - ($curr_pos + 9)), '[quote') === false) + { + $possible_start = substr($text, $curr_pos, $close_pos - $curr_pos + 2); + } + } + } + + // Now compare, either using regexp or not. + if ($open_is_regexp) + { + $match_result = array(); + if (preg_match($open_tag[$i], $possible_start, $match_result)) + { + $found_start = true; + $which_start_tag = $match_result[0]; + $start_tag_index = $i; + break; + } + } + else + { + // straightforward string comparison. + if (0 == strcasecmp($open_tag[$i], $possible_start)) + { + $found_start = true; + $which_start_tag = $open_tag[$i]; + $start_tag_index = $i; + break; + } + } + } + + if ($found_start) + { + // We have an opening tag. + // Push its position, the text we matched, and its index in the open_tag array on to the stack, and then keep going to the right. + $match = array("pos" => $curr_pos, "tag" => $which_start_tag, "index" => $start_tag_index); + bbcode_array_push($stack, $match); + // + // Rather than just increment $curr_pos + // Set it to the ending of the tag we just found + // Keeps error in nested tag from breaking out + // of table structure.. + // + $curr_pos += strlen($possible_start); + } + else + { + // check for a closing tag.. + $possible_end = substr($text, $curr_pos, $close_tag_length); + if (0 == strcasecmp($close_tag, $possible_end)) + { + // We have an ending tag. + // Check if we've already found a matching starting tag. + if (sizeof($stack) > 0) + { + // There exists a starting tag. + $curr_nesting_depth = sizeof($stack); + // We need to do 2 replacements now. + $match = bbcode_array_pop($stack); + $start_index = $match['pos']; + $start_tag = $match['tag']; + $start_length = strlen($start_tag); + $start_tag_index = $match['index']; + + if ($open_is_regexp) + { + $start_tag = preg_replace($open_tag[$start_tag_index], $open_regexp_replace[$start_tag_index], $start_tag); + } + + // everything before the opening tag. + $before_start_tag = substr($text, 0, $start_index); + + // everything after the opening tag, but before the closing tag. + $between_tags = substr($text, $start_index + $start_length, $curr_pos - $start_index - $start_length); + + // Run the given function on the text between the tags.. + if ($use_function_pointer) + { + $between_tags = $func($between_tags, $uid); + } + + // everything after the closing tag. + $after_end_tag = substr($text, $curr_pos + $close_tag_length); + + // Mark the lowest nesting level if needed. + if ($mark_lowest_level && ($curr_nesting_depth == 1)) + { + if ($open_tag[0] == '[code]') + { + $code_entities_match = array('#<#', '#>#', '#"#', '#:#', '#\[#', '#\]#', '#\(#', '#\)#', '#\{#', '#\}#'); + $code_entities_replace = array('<', '>', '"', ':', '[', ']', '(', ')', '{', '}'); + $between_tags = preg_replace($code_entities_match, $code_entities_replace, $between_tags); + } + $text = $before_start_tag . substr($start_tag, 0, $start_length - 1) . ":$curr_nesting_depth:$uid]"; + $text .= $between_tags . substr($close_tag_new, 0, $close_tag_new_length - 1) . ":$curr_nesting_depth:$uid]"; + } + else + { + if ($open_tag[0] == '[code]') + { + $text = $before_start_tag . '[code]'; + $text .= $between_tags . '[/code]'; + } + else + { + if ($open_is_regexp) + { + $text = $before_start_tag . $start_tag; + } + else + { + $text = $before_start_tag . substr($start_tag, 0, $start_length - 1) . ":$uid]"; + } + $text .= $between_tags . substr($close_tag_new, 0, $close_tag_new_length - 1) . ":$uid]"; + } + } + + $text .= $after_end_tag; + + // Now.. we've screwed up the indices by changing the length of the string. + // So, if there's anything in the stack, we want to resume searching just after it. + // otherwise, we go back to the start. + if (sizeof($stack) > 0) + { + $match = bbcode_array_pop($stack); + $curr_pos = $match['pos']; +// bbcode_array_push($stack, $match); +// ++$curr_pos; + } + else + { + $curr_pos = 1; + } + } + else + { + // No matching start tag found. Increment pos, keep going. + ++$curr_pos; + } + } + else + { + // No starting tag or ending tag.. Increment pos, keep looping., + ++$curr_pos; + } + } + } + } // while + + return $text; + +} // bbencode_first_pass_pda() + +/** + * Does second-pass bbencoding of the [code] tags. This includes + * running htmlspecialchars() over the text contained between + * any pair of [code] tags that are at the first level of + * nesting. Tags at the first level of nesting are indicated + * by this format: [code:1:$uid] ... [/code:1:$uid] + * Other tags are in this format: [code:$uid] ... [/code:$uid] + */ +function bbencode_second_pass_code($text, $uid, $bbcode_tpl) +{ + global $lang; + + $code_start_html = $bbcode_tpl['code_open']; + $code_end_html = $bbcode_tpl['code_close']; + + // First, do all the 1st-level matches. These need an htmlspecialchars() run, + // so they have to be handled differently. + $match_count = preg_match_all("#\[code:1:$uid\](.*?)\[/code:1:$uid\]#si", $text, $matches); + + for ($i = 0; $i < $match_count; $i++) + { + $before_replace = $matches[1][$i]; + $after_replace = $matches[1][$i]; + + // Replace 2 spaces with "  " so non-tabbed code indents without making huge long lines. + $after_replace = str_replace(" ", "  ", $after_replace); + // now Replace 2 spaces with "  " to catch odd #s of spaces. + $after_replace = str_replace(" ", "  ", $after_replace); + + // Replace tabs with "   " so tabbed code indents sorta right without making huge long lines. + $after_replace = str_replace("\t", "   ", $after_replace); + + // now Replace space occurring at the beginning of a line + $after_replace = preg_replace("/^ {1}/m", ' ', $after_replace); + + $str_to_match = "[code:1:$uid]" . $before_replace . "[/code:1:$uid]"; + + $replacement = $code_start_html; + $replacement .= $after_replace; + $replacement .= $code_end_html; + + $text = str_replace($str_to_match, $replacement, $text); + } + + // Now, do all the non-first-level matches. These are simple. + $text = str_replace("[code:$uid]", $code_start_html, $text); + $text = str_replace("[/code:$uid]", $code_end_html, $text); + + return $text; + +} // bbencode_second_pass_code() + +/** + * Rewritten by Nathan Codding - Feb 6, 2001. + * - Goes through the given string, and replaces xxxx://yyyy with an HTML tag linking + * to that URL + * - Goes through the given string, and replaces www.xxxx.yyyy[zzzz] with an HTML tag linking + * to http://www.xxxx.yyyy[/zzzz] + * - Goes through the given string, and replaces xxxx@yyyy with an HTML mailto: tag linking + * to that email address + * - Only matches these 2 patterns either after a space, or at the beginning of a line + * + * Notes: the email one might get annoying - it's easy to make it more restrictive, though.. maybe + * have it require something like xxxx@yyyy.zzzz or such. We'll see. + */ +function make_clickable($text) +{ + + // pad it with a space so we can match things at the start of the 1st line. + $ret = ' ' . $text; + + // matches an "xxxx://yyyy" URL at the start of a line, or after a space. + // xxxx can only be alpha characters. + // yyyy is anything up to the first space, newline, comma, double quote or < + $ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1\\2", $ret); + + // matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing + // Must contain at least 2 dots. xxxx contains either alphanum, or "-" + // zzzz is optional.. will contain everything up to the first space, newline, + // comma, double quote or <. + $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1\\2", $ret); + + // matches an email@domain type address at the start of a line, or after a space. + // Note: Only the followed chars are valid; alphanums, "-", "_" and or ".". + $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1\\2@\\3", $ret); + + // Remove our padding.. + $ret = substr($ret, 1); + + return($ret); +} + +/** + * Nathan Codding - Feb 6, 2001 + * Reverses the effects of make_clickable(), for use in editpost. + * - Does not distinguish between "www.xxxx.yyyy" and "http://aaaa.bbbb" type URLs. + * + */ +function undo_make_clickable($text) +{ + $text = preg_replace("#.*?#i", "\\1", $text); + $text = preg_replace("#.*?#i", "\\1", $text); + + return $text; + +} + +/** + * Nathan Codding - August 24, 2000. + * Takes a string, and does the reverse of the PHP standard function + * htmlspecialchars(). + */ +function undo_htmlspecialchars($input) +{ + $input = preg_replace("/>/i", ">", $input); + $input = preg_replace("/</i", "<", $input); + $input = preg_replace("/"/i", "\"", $input); + $input = preg_replace("/&/i", "&", $input); + + return $input; +} + +/** + * This is used to change a [*] tag into a [*:$uid] tag as part + * of the first-pass bbencoding of [list] tags. It fits the + * standard required in order to be passed as a variable + * function into bbencode_first_pass_pda(). + */ +function replace_listitems($text, $uid) +{ + $text = str_replace("[*]", "[*:$uid]", $text); + + return $text; +} + +/** + * Escapes the "/" character with "\/". This is useful when you need + * to stick a runtime string into a PREG regexp that is being delimited + * with slashes. + */ +function escape_slashes($input) +{ + $output = str_replace('/', '\/', $input); + return $output; +} + +/** + * This function does exactly what the PHP4 function array_push() does + * however, to keep phpBB compatable with PHP 3 we had to come up with our own + * method of doing it. + */ +function bbcode_array_push(&$stack, $value) +{ + $stack[] = $value; + return(sizeof($stack)); +} + +/** + * This function does exactly what the PHP4 function array_pop() does + * however, to keep phpBB compatable with PHP 3 we had to come up with our own + * method of doing it. + */ +function bbcode_array_pop(&$stack) +{ + $arrSize = count($stack); + $x = 1; + + while(list($key, $val) = each($stack)) + { + if($x < count($stack)) + { + $tmpArr[] = $val; + } + else + { + $return_val = $val; + } + $x++; + } + $stack = $tmpArr; + + return($return_val); +} + +// +// Smilies code ... would this be better tagged on to the end of bbcode.php? +// Probably so and I'll move it before B2 +// +function smilies_pass($message) +{ + static $orig, $repl; + + if (!isset($orig)) + { + global $db, $board_config; + $orig = $repl = array(); + + $sql = 'SELECT * FROM ' . SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql); + } + $smilies = $db->sql_fetchrowset($result); + + if (count($smilies)) + { + usort($smilies, 'smiley_sort'); + } + + for ($i = 0; $i < count($smilies); $i++) + { + $orig[] = "/(?<=.\W|\W.|^\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\W|\W.|\W$)/"; + $repl[] = '' . $smilies[$i]['emoticon'] . ''; + } + } + + if (count($orig)) + { + $message = preg_replace($orig, $repl, ' ' . $message . ' '); + $message = substr($message, 1, -1); + } + + return $message; +} + +function smiley_sort($a, $b) +{ + if ( strlen($a['code']) == strlen($b['code']) ) + { + return 0; + } + + return ( strlen($a['code']) > strlen($b['code']) ) ? -1 : 1; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/constants.php b/phpBB2_old/includes/constants.php new file mode 100644 index 0000000..b0471ac --- /dev/null +++ b/phpBB2_old/includes/constants.php @@ -0,0 +1,182 @@ + \ No newline at end of file diff --git a/phpBB2_old/includes/db.php b/phpBB2_old/includes/db.php new file mode 100644 index 0000000..88cbc50 --- /dev/null +++ b/phpBB2_old/includes/db.php @@ -0,0 +1,66 @@ +db_connect_id) +{ + message_die(CRITICAL_ERROR, "Could not connect to the database"); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/emailer.php b/phpBB2_old/includes/emailer.php new file mode 100644 index 0000000..72f2f98 --- /dev/null +++ b/phpBB2_old/includes/emailer.php @@ -0,0 +1,373 @@ +reset(); + $this->use_smtp = $use_smtp; + $this->reply_to = $this->from = ''; + } + + // Resets all the data (address, template file, etc etc to default + function reset() + { + $this->addresses = array(); + $this->vars = $this->msg = $this->extra_headers = ''; + } + + // Sets an email address to send to + function email_address($address) + { + $this->addresses['to'] = trim($address); + } + + function cc($address) + { + $this->addresses['cc'][] = trim($address); + } + + function bcc($address) + { + $this->addresses['bcc'][] = trim($address); + } + + function replyto($address) + { + $this->reply_to = trim($address); + } + + function from($address) + { + $this->from = trim($address); + } + + // set up subject for mail + function set_subject($subject = '') + { + $this->subject = trim(preg_replace('#[\n\r]+#s', '', $subject)); + } + + // set up extra mail headers + function extra_headers($headers) + { + $this->extra_headers .= trim($headers) . "\n"; + } + + function use_template($template_file, $template_lang = '') + { + global $board_config, $phpbb_root_path; + + if (trim($template_file) == '') + { + message_die(GENERAL_ERROR, 'No template file set', '', __LINE__, __FILE__); + } + + if (trim($template_lang) == '') + { + $template_lang = $board_config['default_lang']; + } + + if (empty($this->tpl_msg[$template_lang . $template_file])) + { + $tpl_file = $phpbb_root_path . 'language/lang_' . $template_lang . '/email/' . $template_file . '.tpl'; + + if (!@file_exists(@phpbb_realpath($tpl_file))) + { + $tpl_file = $phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/email/' . $template_file . '.tpl'; + + if (!@file_exists(@phpbb_realpath($tpl_file))) + { + message_die(GENERAL_ERROR, 'Could not find email template file :: ' . $template_file, '', __LINE__, __FILE__); + } + } + + if (!($fd = @fopen($tpl_file, 'r'))) + { + message_die(GENERAL_ERROR, 'Failed opening template file :: ' . $tpl_file, '', __LINE__, __FILE__); + } + + $this->tpl_msg[$template_lang . $template_file] = fread($fd, filesize($tpl_file)); + fclose($fd); + } + + $this->msg = $this->tpl_msg[$template_lang . $template_file]; + + return true; + } + + // assign variables + function assign_vars($vars) + { + $this->vars = (empty($this->vars)) ? $vars : $this->vars . $vars; + } + + // Send the mail out to the recipients set previously in var $this->address + function send() + { + global $board_config, $lang, $phpEx, $phpbb_root_path, $db; + + // Escape all quotes, else the eval will fail. + $this->msg = str_replace ("'", "\'", $this->msg); + $this->msg = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->msg); + + // Set vars + reset ($this->vars); + while (list($key, $val) = each($this->vars)) + { + $$key = $val; + } + + eval("\$this->msg = '$this->msg';"); + + // Clear vars + reset ($this->vars); + while (list($key, $val) = each($this->vars)) + { + unset($$key); + } + + // We now try and pull a subject from the email body ... if it exists, + // do this here because the subject may contain a variable + $drop_header = ''; + $match = array(); + if (preg_match('#^(Subject:(.*?))$#m', $this->msg, $match)) + { + $this->subject = (trim($match[2]) != '') ? trim($match[2]) : (($this->subject != '') ? $this->subject : 'No Subject'); + $drop_header .= '[\r\n]*?' . phpbb_preg_quote($match[1], '#'); + } + else + { + $this->subject = (($this->subject != '') ? $this->subject : 'No Subject'); + } + + if (preg_match('#^(Charset:(.*?))$#m', $this->msg, $match)) + { + $this->encoding = (trim($match[2]) != '') ? trim($match[2]) : trim($lang['ENCODING']); + $drop_header .= '[\r\n]*?' . phpbb_preg_quote($match[1], '#'); + } + else + { + $this->encoding = trim($lang['ENCODING']); + } + + if ($drop_header != '') + { + $this->msg = trim(preg_replace('#' . $drop_header . '#s', '', $this->msg)); + } + + $to = $this->addresses['to']; + + $cc = (count($this->addresses['cc'])) ? implode(', ', $this->addresses['cc']) : ''; + $bcc = (count($this->addresses['bcc'])) ? implode(', ', $this->addresses['bcc']) : ''; + + // Build header + $this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $board_config['board_email'] . "\n") . "Return-Path: " . $board_config['board_email'] . "\nMessage-ID: <" . md5(uniqid(time())) . "@" . $board_config['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/plain; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', time()) . "\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\nX-MimeOLE: Produced By phpBB2\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : ''); + + // Send message ... removed $this->encode() from subject for time being + if ( $this->use_smtp ) + { + if ( !defined('SMTP_INCLUDED') ) + { + include($phpbb_root_path . 'includes/smtp.' . $phpEx); + } + + $result = smtpmail($to, $this->subject, $this->msg, $this->extra_headers); + } + else + { + $empty_to_header = ($to == '') ? TRUE : FALSE; + $to = ($to == '') ? (($board_config['sendmail_fix']) ? ' ' : 'Undisclosed-recipients:;') : $to; + + $result = @mail($to, $this->subject, preg_replace("#(?msg), $this->extra_headers); + + if (!$result && !$board_config['sendmail_fix'] && $empty_to_header) + { + $to = ' '; + + $sql = "UPDATE " . CONFIG_TABLE . " + SET config_value = '1' + WHERE config_name = 'sendmail_fix'"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Unable to update config table', '', __LINE__, __FILE__, $sql); + } + + $board_config['sendmail_fix'] = 1; + $result = @mail($to, $this->subject, preg_replace("#(?msg), $this->extra_headers); + } + } + + // Did it work? + if (!$result) + { + message_die(GENERAL_ERROR, 'Failed sending email :: ' . (($this->use_smtp) ? 'SMTP' : 'PHP') . ' :: ' . $result, '', __LINE__, __FILE__); + } + + return true; + } + + // Encodes the given string for proper display for this encoding ... nabbed + // from php.net and modified. There is an alternative encoding method which + // may produce lesd output but it's questionable as to its worth in this + // scenario IMO + function encode($str) + { + if ($this->encoding == '') + { + return $str; + } + + // define start delimimter, end delimiter and spacer + $end = "?="; + $start = "=?$this->encoding?B?"; + $spacer = "$end\r\n $start"; + + // determine length of encoded text within chunks and ensure length is even + $length = 75 - strlen($start) - strlen($end); + $length = floor($length / 2) * 2; + + // encode the string and split it into chunks with spacers after each chunk + $str = chunk_split(base64_encode($str), $length, $spacer); + + // remove trailing spacer and add start and end delimiters + $str = preg_replace('#' . phpbb_preg_quote($spacer, '#') . '$#', '', $str); + + return $start . $str . $end; + } + + // + // Attach files via MIME. + // + function attachFile($filename, $mimetype = "application/octet-stream", $szFromAddress, $szFilenameToDisplay) + { + global $lang; + $mime_boundary = "--==================_846811060==_"; + + $this->msg = '--' . $mime_boundary . "\nContent-Type: text/plain;\n\tcharset=\"" . $lang['ENCODING'] . "\"\n\n" . $this->msg; + + if ($mime_filename) + { + $filename = $mime_filename; + $encoded = $this->encode_file($filename); + } + + $fd = fopen($filename, "r"); + $contents = fread($fd, filesize($filename)); + + $this->mimeOut = "--" . $mime_boundary . "\n"; + $this->mimeOut .= "Content-Type: " . $mimetype . ";\n\tname=\"$szFilenameToDisplay\"\n"; + $this->mimeOut .= "Content-Transfer-Encoding: quoted-printable\n"; + $this->mimeOut .= "Content-Disposition: attachment;\n\tfilename=\"$szFilenameToDisplay\"\n\n"; + + if ( $mimetype == "message/rfc822" ) + { + $this->mimeOut .= "From: ".$szFromAddress."\n"; + $this->mimeOut .= "To: ".$this->emailAddress."\n"; + $this->mimeOut .= "Date: ".date("D, d M Y H:i:s") . " UT\n"; + $this->mimeOut .= "Reply-To:".$szFromAddress."\n"; + $this->mimeOut .= "Subject: ".$this->mailSubject."\n"; + $this->mimeOut .= "X-Mailer: PHP/".phpversion()."\n"; + $this->mimeOut .= "MIME-Version: 1.0\n"; + } + + $this->mimeOut .= $contents."\n"; + $this->mimeOut .= "--" . $mime_boundary . "--" . "\n"; + + return $out; + // added -- to notify email client attachment is done + } + + function getMimeHeaders($filename, $mime_filename="") + { + $mime_boundary = "--==================_846811060==_"; + + if ($mime_filename) + { + $filename = $mime_filename; + } + + $out = "MIME-Version: 1.0\n"; + $out .= "Content-Type: multipart/mixed;\n\tboundary=\"$mime_boundary\"\n\n"; + $out .= "This message is in MIME format. Since your mail reader does not understand\n"; + $out .= "this format, some or all of this message may not be legible."; + + return $out; + } + + // + // Split string by RFC 2045 semantics (76 chars per line, end with \r\n). + // + function myChunkSplit($str) + { + $stmp = $str; + $len = strlen($stmp); + $out = ""; + + while ($len > 0) + { + if ($len >= 76) + { + $out .= substr($stmp, 0, 76) . "\r\n"; + $stmp = substr($stmp, 76); + $len = $len - 76; + } + else + { + $out .= $stmp . "\r\n"; + $stmp = ""; + $len = 0; + } + } + return $out; + } + + // + // Split the specified file up into a string and return it + // + function encode_file($sourcefile) + { + if (is_readable(phpbb_realpath($sourcefile))) + { + $fd = fopen($sourcefile, "r"); + $contents = fread($fd, filesize($sourcefile)); + $encoded = $this->myChunkSplit(base64_encode($contents)); + fclose($fd); + } + + return $encoded; + } + +} // class emailer + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/functions.php b/phpBB2_old/includes/functions.php new file mode 100644 index 0000000..fe9b8c8 --- /dev/null +++ b/phpBB2_old/includes/functions.php @@ -0,0 +1,781 @@ + " . ANONYMOUS; + break; + + case 'newestuser': + $sql = "SELECT user_id, username + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + ORDER BY user_id DESC + LIMIT 1"; + break; + + case 'postcount': + case 'topiccount': + $sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total + FROM " . FORUMS_TABLE; + break; + } + + if ( !($result = $db->sql_query($sql)) ) + { + return false; + } + + $row = $db->sql_fetchrow($result); + + switch ( $mode ) + { + case 'usercount': + return $row['total']; + break; + case 'newestuser': + return $row; + break; + case 'postcount': + return $row['post_total']; + break; + case 'topiccount': + return $row['topic_total']; + break; + } + + return false; +} + +// added at phpBB 2.0.11 to properly format the username +function phpbb_clean_username($username) +{ + $username = htmlspecialchars(rtrim(trim($username), "\\")); + $username = substr(str_replace("\\'", "'", $username), 0, 25); + $username = str_replace("'", "\\'", $username); + + return $username; +} + +// +// Get Userdata, $user can be username or user_id. If force_str is true, the username will be forced. +// +function get_userdata($user, $force_str = false) +{ + global $db; + + if (intval($user) == 0 || $force_str) + { + $user = phpbb_clean_username($user); + } + else + { + $user = intval($user); + } + + $sql = "SELECT * + FROM " . USERS_TABLE . " + WHERE "; + $sql .= ( ( is_integer($user) ) ? "user_id = $user" : "username = '" . $user . "'" ) . " AND user_id <> " . ANONYMOUS; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Tried obtaining data for a non-existent user', '', __LINE__, __FILE__, $sql); + } + + return ( $row = $db->sql_fetchrow($result) ) ? $row : false; +} + +function make_jumpbox($action, $match_forum_id = 0) +{ + global $template, $userdata, $lang, $db, $nav_links, $phpEx, $SID; + +// $is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); + + $sql = "SELECT c.cat_id, c.cat_title, c.cat_order + FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f + WHERE f.cat_id = c.cat_id + GROUP BY c.cat_id, c.cat_title, c.cat_order + ORDER BY c.cat_order"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain category list.", "", __LINE__, __FILE__, $sql); + } + + $category_rows = array(); + while ( $row = $db->sql_fetchrow($result) ) + { + $category_rows[] = $row; + } + + if ( $total_categories = count($category_rows) ) + { + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + ORDER BY cat_id, forum_order"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); + } + + $boxstring = ''; + } + else + { + $boxstring .= ''; + } + + // Let the jumpbox work again in sites having additional session id checks. +// if ( !empty($SID) ) +// { + $boxstring .= ''; +// } + + $template->set_filenames(array( + 'jumpbox' => 'jumpbox.tpl') + ); + $template->assign_vars(array( + 'L_GO' => $lang['Go'], + 'L_JUMP_TO' => $lang['Jump_to'], + 'L_SELECT_FORUM' => $lang['Select_forum'], + + 'S_JUMPBOX_SELECT' => $boxstring, + 'S_JUMPBOX_ACTION' => append_sid($action)) + ); + $template->assign_var_from_handle('JUMPBOX', 'jumpbox'); + + return; +} + +// +// Initialise user settings on page load +function init_userprefs($userdata) +{ + global $board_config, $theme, $images; + global $template, $lang, $phpEx, $phpbb_root_path; + global $nav_links; + + if ( $userdata['user_id'] != ANONYMOUS ) + { + if ( !empty($userdata['user_lang'])) + { + $board_config['default_lang'] = $userdata['user_lang']; + } + + if ( !empty($userdata['user_dateformat']) ) + { + $board_config['default_dateformat'] = $userdata['user_dateformat']; + } + + if ( isset($userdata['user_timezone']) ) + { + $board_config['board_timezone'] = $userdata['user_timezone']; + } + } + + if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) ) + { + $board_config['default_lang'] = 'english'; + } + + include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx); + + if ( defined('IN_ADMIN') ) + { + if( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.'.$phpEx)) ) + { + $board_config['default_lang'] = 'english'; + } + + include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx); + } + + // + // Set up style + // + if ( !$board_config['override_user_style'] ) + { + if ( $userdata['user_id'] != ANONYMOUS && $userdata['user_style'] > 0 ) + { + if ( $theme = setup_style($userdata['user_style']) ) + { + return; + } + } + } + + $theme = setup_style($board_config['default_style']); + + // + // Mozilla navigation bar + // Default items that should be valid on all pages. + // Defined here to correctly assign the Language Variables + // and be able to change the variables within code. + // + $nav_links['top'] = array ( + 'url' => append_sid($phpbb_root_path . 'index.' . $phpEx), + 'title' => sprintf($lang['Forum_Index'], $board_config['sitename']) + ); + $nav_links['search'] = array ( + 'url' => append_sid($phpbb_root_path . 'search.' . $phpEx), + 'title' => $lang['Search'] + ); + $nav_links['help'] = array ( + 'url' => append_sid($phpbb_root_path . 'faq.' . $phpEx), + 'title' => $lang['FAQ'] + ); + $nav_links['author'] = array ( + 'url' => append_sid($phpbb_root_path . 'memberlist.' . $phpEx), + 'title' => $lang['Memberlist'] + ); + + return; +} + +function setup_style($style) +{ + global $db, $board_config, $template, $images, $phpbb_root_path; + + $sql = "SELECT * + FROM " . THEMES_TABLE . " + WHERE themes_id = $style"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not query database for theme info'); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(CRITICAL_ERROR, "Could not get theme data for themes_id [$style]"); + } + + $template_path = 'templates/' ; + $template_name = $row['template_name'] ; + + $template = new Template($phpbb_root_path . $template_path . $template_name); + + if ( $template ) + { + $current_template_path = $template_path . $template_name; + @include($phpbb_root_path . $template_path . $template_name . '/' . $template_name . '.cfg'); + + if ( !defined('TEMPLATE_CONFIG') ) + { + message_die(CRITICAL_ERROR, "Could not open $template_name template config file", '', __LINE__, __FILE__); + } + + $img_lang = ( file_exists(@phpbb_realpath($phpbb_root_path . $current_template_path . '/images/lang_' . $board_config['default_lang'])) ) ? $board_config['default_lang'] : 'english'; + + while( list($key, $value) = @each($images) ) + { + if ( !is_array($value) ) + { + $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value); + } + } + } + + return $row; +} + +function encode_ip($dotquad_ip) +{ + $ip_sep = explode('.', $dotquad_ip); + return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]); +} + +function decode_ip($int_ip) +{ + $hexipbang = explode('.', chunk_split($int_ip, 2, '.')); + return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]); +} + +// +// Create date/time from format and timezone +// +function create_date($format, $gmepoch, $tz) +{ + global $board_config, $lang; + static $translate; + + if ( empty($translate) && $board_config['default_lang'] != 'english' ) + { + @reset($lang['datetime']); + while ( list($match, $replace) = @each($lang['datetime']) ) + { + $translate[$match] = $replace; + } + } + + return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz)); +} + +// +// Pagination routine, generates +// page number sequence +// +function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE) +{ + global $lang; + + $total_pages = ceil($num_items/$per_page); + + if ( $total_pages == 1 ) + { + return ''; + } + + $on_page = floor($start_item / $per_page) + 1; + + $page_string = ''; + if ( $total_pages > 10 ) + { + $init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages; + + for($i = 1; $i < $init_page_max + 1; $i++) + { + $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; + if ( $i < $init_page_max ) + { + $page_string .= ", "; + } + } + + if ( $total_pages > 3 ) + { + if ( $on_page > 1 && $on_page < $total_pages ) + { + $page_string .= ( $on_page > 5 ) ? ' ... ' : ', '; + + $init_page_min = ( $on_page > 4 ) ? $on_page : 5; + $init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4; + + for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++) + { + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + if ( $i < $init_page_max + 1 ) + { + $page_string .= ', '; + } + } + + $page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', '; + } + else + { + $page_string .= ' ... '; + } + + for($i = $total_pages - 2; $i < $total_pages + 1; $i++) + { + $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; + if( $i < $total_pages ) + { + $page_string .= ", "; + } + } + } + } + else + { + for($i = 1; $i < $total_pages + 1; $i++) + { + $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; + if ( $i < $total_pages ) + { + $page_string .= ', '; + } + } + } + + if ( $add_prevnext_text ) + { + if ( $on_page > 1 ) + { + $page_string = ' ' . $lang['Previous'] . '  ' . $page_string; + } + + if ( $on_page < $total_pages ) + { + $page_string .= '  ' . $lang['Next'] . ''; + } + + } + + $page_string = $lang['Goto_page'] . ' ' . $page_string; + + return $page_string; +} + +// +// This does exactly what preg_quote() does in PHP 4-ish +// If you just need the 1-parameter preg_quote call, then don't bother using this. +// +function phpbb_preg_quote($str, $delimiter) +{ + $text = preg_quote($str); + $text = str_replace($delimiter, '\\' . $delimiter, $text); + + return $text; +} + +// +// Obtain list of naughty words and build preg style replacement arrays for use by the +// calling script, note that the vars are passed as references this just makes it easier +// to return both sets of arrays +// +function obtain_word_list(&$orig_word, &$replacement_word) +{ + global $db; + + // + // Define censored word matches + // + $sql = "SELECT word, replacement + FROM " . WORDS_TABLE; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get censored words from database', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + $orig_word[] = '#\b(' . str_replace('\*', '\w*?', phpbb_preg_quote($row['word'], '#')) . ')\b#i'; + $replacement_word[] = $row['replacement']; + } + while ( $row = $db->sql_fetchrow($result) ); + } + + return true; +} + +// +// This is general replacement for die(), allows templated +// output in users (or default) language, etc. +// +// $msg_code can be one of these constants: +// +// GENERAL_MESSAGE : Use for any simple text message, eg. results +// of an operation, authorisation failures, etc. +// +// GENERAL ERROR : Use for any error which occurs _AFTER_ the +// common.php include and session code, ie. most errors in +// pages/functions +// +// CRITICAL_MESSAGE : Used when basic config data is available but +// a session may not exist, eg. banned users +// +// CRITICAL_ERROR : Used when config data cannot be obtained, eg +// no database connection. Should _not_ be used in 99.5% of cases +// +function message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '', $err_file = '', $sql = '') +{ + global $db, $template, $board_config, $theme, $lang, $phpEx, $phpbb_root_path, $nav_links, $gen_simple_header, $images; + global $userdata, $user_ip, $session_length; + global $starttime; + + if(defined('HAS_DIED')) + { + die("message_die() was called multiple times. This isn't supposed to happen. Was message_die() used in page_tail.php?"); + } + + define(HAS_DIED, 1); + + + $sql_store = $sql; + + // + // Get SQL error if we are debugging. Do this as soon as possible to prevent + // subsequent queries from overwriting the status of sql_error() + // + if ( DEBUG && ( $msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR ) ) + { + $sql_error = $db->sql_error(); + + $debug_text = ''; + + if ( $sql_error['message'] != '' ) + { + $debug_text .= '

    SQL Error : ' . $sql_error['code'] . ' ' . $sql_error['message']; + } + + if ( $sql_store != '' ) + { + $debug_text .= "

    $sql_store"; + } + + if ( $err_line != '' && $err_file != '' ) + { + $debug_text .= '

    Line : ' . $err_line . '
    File : ' . $err_file; + } + } + + if( empty($userdata) && ( $msg_code == GENERAL_MESSAGE || $msg_code == GENERAL_ERROR ) ) + { + $userdata = session_pagestart($user_ip, PAGE_INDEX); + init_userprefs($userdata); + } + + // + // If the header hasn't been output then do it + // + if ( !defined('HEADER_INC') && $msg_code != CRITICAL_ERROR ) + { + if ( empty($lang) ) + { + if ( !empty($board_config['default_lang']) ) + { + include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx); + } + else + { + include($phpbb_root_path . 'language/lang_english/lang_main.'.$phpEx); + } + } + + if ( empty($template) ) + { + $template = new Template($phpbb_root_path . 'templates/' . $board_config['board_template']); + } + if ( empty($theme) ) + { + $theme = setup_style($board_config['default_style']); + } + + // + // Load the Page Header + // + if ( !defined('IN_ADMIN') ) + { + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + } + else + { + include($phpbb_root_path . 'admin/page_header_admin.'.$phpEx); + } + } + + switch($msg_code) + { + case GENERAL_MESSAGE: + if ( $msg_title == '' ) + { + $msg_title = $lang['Information']; + } + break; + + case CRITICAL_MESSAGE: + if ( $msg_title == '' ) + { + $msg_title = $lang['Critical_Information']; + } + break; + + case GENERAL_ERROR: + if ( $msg_text == '' ) + { + $msg_text = $lang['An_error_occured']; + } + + if ( $msg_title == '' ) + { + $msg_title = $lang['General_Error']; + } + break; + + case CRITICAL_ERROR: + // + // Critical errors mean we cannot rely on _ANY_ DB information being + // available so we're going to dump out a simple echo'd statement + // + include($phpbb_root_path . 'language/lang_english/lang_main.'.$phpEx); + + if ( $msg_text == '' ) + { + $msg_text = $lang['A_critical_error']; + } + + if ( $msg_title == '' ) + { + $msg_title = 'phpBB : ' . $lang['Critical_Error'] . ''; + } + break; + } + + // + // Add on DEBUG info if we've enabled debug mode and this is an error. This + // prevents debug info being output for general messages should DEBUG be + // set TRUE by accident (preventing confusion for the end user!) + // + if ( DEBUG && ( $msg_code == GENERAL_ERROR || $msg_code == CRITICAL_ERROR ) ) + { + if ( $debug_text != '' ) + { + $msg_text = $msg_text . '

    DEBUG MODE' . $debug_text; + } + } + + if ( $msg_code != CRITICAL_ERROR ) + { + if ( !empty($lang[$msg_text]) ) + { + $msg_text = $lang[$msg_text]; + } + + if ( !defined('IN_ADMIN') ) + { + $template->set_filenames(array( + 'message_body' => 'message_body.tpl') + ); + } + else + { + $template->set_filenames(array( + 'message_body' => 'admin/admin_message_body.tpl') + ); + } + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $msg_title, + 'MESSAGE_TEXT' => $msg_text) + ); + $template->pparse('message_body'); + + if ( !defined('IN_ADMIN') ) + { + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + include($phpbb_root_path . 'admin/page_footer_admin.'.$phpEx); + } + } + else + { + echo "\n\n" . $msg_title . "\n

    \n" . $msg_text . "\n"; + } + + exit; +} + +// +// This function is for compatibility with PHP 4.x's realpath() +// function. In later versions of PHP, it needs to be called +// to do checks with some functions. Older versions of PHP don't +// seem to need this, so we'll just return the original value. +// dougk_ff7 +function phpbb_realpath($path) +{ + global $phpbb_root_path, $phpEx; + + return (!@function_exists('realpath') || !@realpath($phpbb_root_path . 'includes/functions.'.$phpEx)) ? $path : @realpath($path); +} + +function redirect($url) +{ + global $db, $board_config; + + if (!empty($db)) + { + $db->sql_close(); + } + + if (strstr(urldecode($url), "\n") || strstr(urldecode($url), "\r")) + { + message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); + } + + $server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://'; + $server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name'])); + $server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : ''; + $script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path'])); + $script_name = ($script_name == '') ? $script_name : '/' . $script_name; + $url = preg_replace('#^\/?(.*?)\/?$#', '/\1', trim($url)); + + // Redirect via an HTML form for PITA webservers + if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE'))) + { + header('Refresh: 0; URL=' . $server_protocol . $server_name . $server_port . $script_name . $url); + echo 'Redirect
    If your browser does not support meta redirection please click HERE to be redirected
    '; + exit; + } + + // Behave as per HTTP/1.1 spec for others + header('Location: ' . $server_protocol . $server_name . $server_port . $script_name . $url); + exit; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/functions_admin.php b/phpBB2_old/includes/functions_admin.php new file mode 100644 index 0000000..23fe1b2 --- /dev/null +++ b/phpBB2_old/includes/functions_admin.php @@ -0,0 +1,155 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Couldn not obtain forums information', '', __LINE__, __FILE__, $sql); + } + + $forum_list = ''; + while( $row = $db->sql_fetchrow($result) ) + { + if ( $is_auth_ary[$row['forum_id']]['auth_read'] && $ignore_forum != $row['forum_id'] ) + { + $selected = ( $select_forum == $row['forum_id'] ) ? ' selected="selected"' : ''; + $forum_list .= ''; + } + } + + $forum_list = ( $forum_list == '' ) ? '' : ''; + + return $forum_list; +} + +// +// Synchronise functions for forums/topics +// +function sync($type, $id = false) +{ + global $db; + + switch($type) + { + case 'all forums': + $sql = "SELECT forum_id + FROM " . FORUMS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get forum IDs', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + sync('forum', $row['forum_id']); + } + break; + + case 'all topics': + $sql = "SELECT topic_id + FROM " . TOPICS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic ID', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + sync('topic', $row['topic_id']); + } + break; + + case 'forum': + $sql = "SELECT MAX(post_id) AS last_post, COUNT(post_id) AS total + FROM " . POSTS_TABLE . " + WHERE forum_id = $id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $last_post = ( $row['last_post'] ) ? $row['last_post'] : 0; + $total_posts = ($row['total']) ? $row['total'] : 0; + } + else + { + $last_post = 0; + $total_posts = 0; + } + + $sql = "SELECT COUNT(topic_id) AS total + FROM " . TOPICS_TABLE . " + WHERE forum_id = $id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic count', '', __LINE__, __FILE__, $sql); + } + + $total_topics = ( $row = $db->sql_fetchrow($result) ) ? ( ( $row['total'] ) ? $row['total'] : 0 ) : 0; + + $sql = "UPDATE " . FORUMS_TABLE . " + SET forum_last_post_id = $last_post, forum_posts = $total_posts, forum_topics = $total_topics + WHERE forum_id = $id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update forum', '', __LINE__, __FILE__, $sql); + } + break; + + case 'topic': + $sql = "SELECT MAX(post_id) AS last_post, MIN(post_id) AS first_post, COUNT(post_id) AS total_posts + FROM " . POSTS_TABLE . " + WHERE topic_id = $id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $sql = ( $row['total_posts'] ) ? "UPDATE " . TOPICS_TABLE . " SET topic_replies = " . ( $row['total_posts'] - 1 ) . ", topic_first_post_id = " . $row['first_post'] . ", topic_last_post_id = " . $row['last_post'] . " WHERE topic_id = $id" : "DELETE FROM " . TOPICS_TABLE . " WHERE topic_id = $id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql); + } + } + break; + } + + return true; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/functions_post.php b/phpBB2_old/includes/functions_post.php new file mode 100644 index 0000000..076c6d9 --- /dev/null +++ b/phpBB2_old/includes/functions_post.php @@ -0,0 +1,862 @@ +#'); +$html_entities_replace = array('&', '<', '>'); + +$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#'); +$unhtml_specialchars_replace = array('>', '<', '"', '&'); + +// +// This function will prepare a posted message for +// entry into the database. +// +function prepare_message($message, $html_on, $bbcode_on, $smile_on, $bbcode_uid = 0) +{ + global $board_config, $html_entities_match, $html_entities_replace; + + // + // Clean up the message + // + $message = trim($message); + + if ($html_on) + { + $allowed_html_tags = split(',', $board_config['allow_html_tags']); + + $end_html = 0; + $start_html = 1; + $tmp_message = ''; + $message = ' ' . $message . ' '; + + while ($start_html = strpos($message, '<', $start_html)) + { + $tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($message, $end_html + 1, ($start_html - $end_html - 1))); + + if ($end_html = strpos($message, '>', $start_html)) + { + $length = $end_html - $start_html + 1; + $hold_string = substr($message, $start_html, $length); + + if (($unclosed_open = strrpos(' ' . $hold_string, '<')) != 1) + { + $tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($hold_string, 0, $unclosed_open - 1)); + $hold_string = substr($hold_string, $unclosed_open - 1); + } + + $tagallowed = false; + for ($i = 0; $i < sizeof($allowed_html_tags); $i++) + { + $match_tag = trim($allowed_html_tags[$i]); + if (preg_match('#^<\/?' . $match_tag . '[> ]#i', $hold_string)) + { + $tagallowed = (preg_match('#^<\/?' . $match_tag . ' .*?(style[\t ]*?=|on[\w]+[\t ]*?=)#i', $hold_string)) ? false : true; + } + } + + $tmp_message .= ($length && !$tagallowed) ? preg_replace($html_entities_match, $html_entities_replace, $hold_string) : $hold_string; + + $start_html += $length; + } + else + { + $tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($message, $start_html, strlen($message))); + + $start_html = strlen($message); + $end_html = $start_html; + } + } + + if (!$end_html || ($end_html != strlen($message) && $tmp_message != '')) + { + $tmp_message .= preg_replace($html_entities_match, $html_entities_replace, substr($message, $end_html + 1)); + } + + $message = ($tmp_message != '') ? trim($tmp_message) : trim($message); + } + else + { + $message = preg_replace($html_entities_match, $html_entities_replace, $message); + } + + if($bbcode_on && $bbcode_uid != '') + { + $message = bbencode_first_pass($message, $bbcode_uid); + } + + return $message; +} + +function unprepare_message($message) +{ + global $unhtml_specialchars_match, $unhtml_specialchars_replace; + + return preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, $message); +} + +// +// Prepare a message for posting +// +function prepare_post(&$mode, &$post_data, &$bbcode_on, &$html_on, &$smilies_on, &$error_msg, &$username, &$bbcode_uid, &$subject, &$message, &$poll_title, &$poll_options, &$poll_length) +{ + global $board_config, $userdata, $lang, $phpEx, $phpbb_root_path; + + // Check username + if (!empty($username)) + { + $username = phpbb_clean_username($username); + + if (!$userdata['session_logged_in'] || ($userdata['session_logged_in'] && $username != $userdata['username'])) + { + include($phpbb_root_path . 'includes/functions_validate.'.$phpEx); + + $result = validate_username($username); + if ($result['error']) + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $result['error_msg'] : $result['error_msg']; + } + } + else + { + $username = ''; + } + } + + // Check subject + if (!empty($subject)) + { + $subject = htmlspecialchars(trim($subject)); + } + else if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $lang['Empty_subject'] : $lang['Empty_subject']; + } + + // Check message + if (!empty($message)) + { + $bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : ''; + $message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid); + } + else if ($mode != 'delete' && $mode != 'poll_delete') + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $lang['Empty_message'] : $lang['Empty_message']; + } + + // + // Handle poll stuff + // + if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) + { + $poll_length = (isset($poll_length)) ? max(0, intval($poll_length)) : 0; + + if (!empty($poll_title)) + { + $poll_title = htmlspecialchars(trim($poll_title)); + } + + if(!empty($poll_options)) + { + $temp_option_text = array(); + while(list($option_id, $option_text) = @each($poll_options)) + { + $option_text = trim($option_text); + if (!empty($option_text)) + { + $temp_option_text[$option_id] = htmlspecialchars($option_text); + } + } + $option_text = $temp_option_text; + + if (count($poll_options) < 2) + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $lang['To_few_poll_options'] : $lang['To_few_poll_options']; + } + else if (count($poll_options) > $board_config['max_poll_options']) + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $lang['To_many_poll_options'] : $lang['To_many_poll_options']; + } + else if ($poll_title == '') + { + $error_msg .= (!empty($error_msg)) ? '
    ' . $lang['Empty_poll_title'] : $lang['Empty_poll_title']; + } + } + } + + return; +} + +// +// Post a new topic/reply/poll or edit existing post/poll +// +function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, &$post_username, &$post_subject, &$post_message, &$poll_title, &$poll_options, &$poll_length) +{ + global $board_config, $lang, $db, $phpbb_root_path, $phpEx; + global $userdata, $user_ip; + + include($phpbb_root_path . 'includes/functions_search.'.$phpEx); + + $current_time = time(); + + if ($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost') + { + // + // Flood control + // + $where_sql = ($userdata['user_id'] == ANONYMOUS) ? "poster_ip = '$user_ip'" : 'poster_id = ' . $userdata['user_id']; + $sql = "SELECT MAX(post_time) AS last_post_time + FROM " . POSTS_TABLE . " + WHERE $where_sql"; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval'])) + { + message_die(GENERAL_MESSAGE, $lang['Flood_Error']); + } + } + } + } + + if ($mode == 'editpost') + { + remove_search_post($post_id); + } + + if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post'])) + { + $topic_vote = (!empty($poll_title) && count($poll_options) >= 2) ? 1 : 0; + + $sql = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . " WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + if ($mode == 'newtopic') + { + $topic_id = $db->sql_nextid(); + } + } + + $edited_sql = ($mode == 'editpost' && !$post_data['last_post'] && $post_data['poster_post']) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1 " : ""; + $sql = ($mode != "editpost") ? "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig)" : "UPDATE " . POSTS_TABLE . " SET post_username = '$post_username', enable_bbcode = $bbcode_on, enable_html = $html_on, enable_smilies = $smilies_on, enable_sig = $attach_sig" . $edited_sql . " WHERE post_id = $post_id"; + if (!$db->sql_query($sql, BEGIN_TRANSACTION)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + if ($mode != 'editpost') + { + $post_id = $db->sql_nextid(); + } + + $sql = ($mode != 'editpost') ? "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$post_subject', '$bbcode_uid', '$post_message')" : "UPDATE " . POSTS_TEXT_TABLE . " SET post_text = '$post_message', bbcode_uid = '$bbcode_uid', post_subject = '$post_subject' WHERE post_id = $post_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject)); + + // + // Add poll + // + if (($mode == 'newtopic' || ($mode == 'editpost' && $post_data['edit_poll'])) && !empty($poll_title) && count($poll_options) >= 2) + { + $sql = (!$post_data['has_poll']) ? "INSERT INTO " . VOTE_DESC_TABLE . " (topic_id, vote_text, vote_start, vote_length) VALUES ($topic_id, '$poll_title', $current_time, " . ($poll_length * 86400) . ")" : "UPDATE " . VOTE_DESC_TABLE . " SET vote_text = '$poll_title', vote_length = " . ($poll_length * 86400) . " WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + $delete_option_sql = ''; + $old_poll_result = array(); + if ($mode == 'editpost' && $post_data['has_poll']) + { + $sql = "SELECT vote_option_id, vote_result + FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id = $poll_id + ORDER BY vote_option_id ASC"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain vote data results for this topic', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $old_poll_result[$row['vote_option_id']] = $row['vote_result']; + + if (!isset($poll_options[$row['vote_option_id']])) + { + $delete_option_sql .= ($delete_option_sql != '') ? ', ' . $row['vote_option_id'] : $row['vote_option_id']; + } + } + } + else + { + $poll_id = $db->sql_nextid(); + } + + @reset($poll_options); + + $poll_option_id = 1; + while (list($option_id, $option_text) = each($poll_options)) + { + if (!empty($option_text)) + { + $option_text = str_replace("\'", "''", htmlspecialchars($option_text)); + $poll_result = ($mode == "editpost" && isset($old_poll_result[$option_id])) ? $old_poll_result[$option_id] : 0; + + $sql = ($mode != "editpost" || !isset($old_poll_result[$option_id])) ? "INSERT INTO " . VOTE_RESULTS_TABLE . " (vote_id, vote_option_id, vote_option_text, vote_result) VALUES ($poll_id, $poll_option_id, '$option_text', $poll_result)" : "UPDATE " . VOTE_RESULTS_TABLE . " SET vote_option_text = '$option_text', vote_result = $poll_result WHERE vote_option_id = $option_id AND vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + $poll_option_id++; + } + } + + if ($delete_option_sql != '') + { + $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_option_id IN ($delete_option_sql) + AND vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error deleting pruned poll options', '', __LINE__, __FILE__, $sql); + } + } + } + + $meta = ''; + $message = $lang['Stored'] . '

    ' . sprintf($lang['Click_view_message'], '', '') . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + return false; +} + +// +// Update post stats and details +// +function update_post_stats(&$mode, &$post_data, &$forum_id, &$topic_id, &$post_id, &$user_id) +{ + global $db; + + $sign = ($mode == 'delete') ? '- 1' : '+ 1'; + $forum_update_sql = "forum_posts = forum_posts $sign"; + $topic_update_sql = ''; + + if ($mode == 'delete') + { + if ($post_data['last_post']) + { + if ($post_data['first_post']) + { + $forum_update_sql .= ', forum_topics = forum_topics - 1'; + } + else + { + + $topic_update_sql .= 'topic_replies = topic_replies - 1'; + + $sql = "SELECT MAX(post_id) AS last_post_id + FROM " . POSTS_TABLE . " + WHERE topic_id = $topic_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $topic_update_sql .= ', topic_last_post_id = ' . $row['last_post_id']; + } + } + + if ($post_data['last_topic']) + { + $sql = "SELECT MAX(post_id) AS last_post_id + FROM " . POSTS_TABLE . " + WHERE forum_id = $forum_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $forum_update_sql .= ($row['last_post_id']) ? ', forum_last_post_id = ' . $row['last_post_id'] : ', forum_last_post_id = 0'; + } + } + } + else if ($post_data['first_post']) + { + $sql = "SELECT MIN(post_id) AS first_post_id + FROM " . POSTS_TABLE . " + WHERE topic_id = $topic_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $topic_update_sql .= 'topic_replies = topic_replies - 1, topic_first_post_id = ' . $row['first_post_id']; + } + } + else + { + $topic_update_sql .= 'topic_replies = topic_replies - 1'; + } + } + else if ($mode != 'poll_delete') + { + $forum_update_sql .= ", forum_last_post_id = $post_id" . (($mode == 'newtopic') ? ", forum_topics = forum_topics $sign" : ""); + $topic_update_sql = "topic_last_post_id = $post_id" . (($mode == 'reply') ? ", topic_replies = topic_replies $sign" : ", topic_first_post_id = $post_id"); + } + else + { + $topic_update_sql .= 'topic_vote = 0'; + } + + $sql = "UPDATE " . FORUMS_TABLE . " SET + $forum_update_sql + WHERE forum_id = $forum_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + + if ($topic_update_sql != '') + { + $sql = "UPDATE " . TOPICS_TABLE . " SET + $topic_update_sql + WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + } + + if ($mode != 'poll_delete') + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_posts = user_posts $sign + WHERE user_id = $user_id"; + if (!$db->sql_query($sql, END_TRANSACTION)) + { + message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql); + } + } + + return; +} + +// +// Delete a post/poll +// +function delete_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id) +{ + global $board_config, $lang, $db, $phpbb_root_path, $phpEx; + global $userdata, $user_ip; + + if ($mode != 'poll_delete') + { + include($phpbb_root_path . 'includes/functions_search.'.$phpEx); + + $sql = "DELETE FROM " . POSTS_TABLE . " + WHERE post_id = $post_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . POSTS_TEXT_TABLE . " + WHERE post_id = $post_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + if ($post_data['last_post']) + { + if ($post_data['first_post']) + { + $forum_update_sql .= ', forum_topics = forum_topics - 1'; + $sql = "DELETE FROM " . TOPICS_TABLE . " + WHERE topic_id = $topic_id + OR topic_moved_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + } + } + + remove_search_post($post_id); + } + + if ($mode == 'poll_delete' || ($mode == 'delete' && $post_data['first_post'] && $post_data['last_post']) && $post_data['has_poll'] && $post_data['edit_poll']) + { + $sql = "DELETE FROM " . VOTE_DESC_TABLE . " + WHERE topic_id = $topic_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $poll_id"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql); + } + } + + if ($mode == 'delete' && $post_data['first_post'] && $post_data['last_post']) + { + $meta = ''; + $message = $lang['Deleted']; + } + else + { + $meta = ''; + $message = (($mode == 'poll_delete') ? $lang['Poll_delete'] : $lang['Deleted']) . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + } + + $message .= '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + return; +} + +// +// Handle user notification on new post +// +function user_notification($mode, &$post_data, &$topic_title, &$forum_id, &$topic_id, &$post_id, &$notify_user) +{ + global $board_config, $lang, $db, $phpbb_root_path, $phpEx; + global $userdata, $user_ip; + + $current_time = time(); + + if ($mode == 'delete') + { + $delete_sql = (!$post_data['first_post'] && !$post_data['last_post']) ? " AND user_id = " . $userdata['user_id'] : ''; + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " WHERE topic_id = $topic_id" . $delete_sql; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not change topic notify data', '', __LINE__, __FILE__, $sql); + } + } + else + { + if ($mode == 'reply') + { + $sql = "SELECT ban_userid + FROM " . BANLIST_TABLE; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain banlist', '', __LINE__, __FILE__, $sql); + } + + $user_id_sql = ''; + while ($row = $db->sql_fetchrow($result)) + { + if (isset($row['ban_userid']) && !empty($row['ban_userid'])) + { + $user_id_sql .= ', ' . $row['ban_userid']; + } + } + + $sql = "SELECT u.user_id, u.user_email, u.user_lang + FROM " . TOPICS_WATCH_TABLE . " tw, " . USERS_TABLE . " u + WHERE tw.topic_id = $topic_id + AND tw.user_id NOT IN (" . $userdata['user_id'] . ", " . ANONYMOUS . $user_id_sql . ") + AND tw.notify_status = " . TOPIC_WATCH_UN_NOTIFIED . " + AND u.user_id = tw.user_id"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain list of topic watchers', '', __LINE__, __FILE__, $sql); + } + + $update_watched_sql = ''; + $bcc_list_ary = array(); + + if ($row = $db->sql_fetchrow($result)) + { + // Sixty second limit + @set_time_limit(60); + + do + { + if ($row['user_email'] != '') + { + $bcc_list_ary[$row['user_lang']][] = $row['user_email']; + } + $update_watched_sql .= ($update_watched_sql != '') ? ', ' . $row['user_id'] : $row['user_id']; + } + while ($row = $db->sql_fetchrow($result)); + + // + // Let's do some checking to make sure that mass mail functions + // are working in win32 versions of php. + // + if (preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery']) + { + $ini_val = (@phpversion() >= '4.0.0') ? 'ini_get' : 'get_cfg_var'; + + // We are running on windows, force delivery to use our smtp functions + // since php's are broken by default + $board_config['smtp_delivery'] = 1; + $board_config['smtp_host'] = @$ini_val('SMTP'); + } + + if (sizeof($bcc_list_ary)) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path'])); + $script_name = ($script_name != '') ? $script_name . '/viewtopic.'.$phpEx : 'viewtopic.'.$phpEx; + $server_name = trim($board_config['server_name']); + $server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://'; + $server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) . '/' : '/'; + + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $topic_title = (count($orig_word)) ? preg_replace($orig_word, $replacement_word, unprepare_message($topic_title)) : unprepare_message($topic_title); + + @reset($bcc_list_ary); + while (list($user_lang, $bcc_list) = each($bcc_list_ary)) + { + $emailer->use_template('topic_notify', $user_lang); + + for ($i = 0; $i < count($bcc_list); $i++) + { + $emailer->bcc($bcc_list[$i]); + } + + // The Topic_reply_notification lang string below will be used + // if for some reason the mail template subject cannot be read + // ... note it will not necessarily be in the posters own language! + $emailer->set_subject($lang['Topic_reply_notification']); + + // This is a nasty kludge to remove the username var ... till (if?) + // translators update their templates + $emailer->msg = preg_replace('#[ ]?{USERNAME}#', '', $emailer->msg); + + $emailer->assign_vars(array( + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + 'SITENAME' => $board_config['sitename'], + 'TOPIC_TITLE' => $topic_title, + + 'U_TOPIC' => $server_protocol . $server_name . $server_port . $script_name . '?' . POST_POST_URL . "=$post_id#$post_id", + 'U_STOP_WATCHING_TOPIC' => $server_protocol . $server_name . $server_port . $script_name . '?' . POST_TOPIC_URL . "=$topic_id&unwatch=topic") + ); + + $emailer->send(); + $emailer->reset(); + } + } + } + $db->sql_freeresult($result); + + if ($update_watched_sql != '') + { + $sql = "UPDATE " . TOPICS_WATCH_TABLE . " + SET notify_status = " . TOPIC_WATCH_NOTIFIED . " + WHERE topic_id = $topic_id + AND user_id IN ($update_watched_sql)"; + $db->sql_query($sql); + } + } + + $sql = "SELECT topic_id + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain topic watch information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if (!$notify_user && !empty($row['topic_id'])) + { + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not delete topic watch information', '', __LINE__, __FILE__, $sql); + } + } + else if ($notify_user && empty($row['topic_id'])) + { + $sql = "INSERT INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status) + VALUES (" . $userdata['user_id'] . ", $topic_id, 0)"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not insert topic watch information', '', __LINE__, __FILE__, $sql); + } + } + } +} + +// +// Fill smiley templates (or just the variables) with smileys +// Either in a window or inline +// +function generate_smilies($mode, $page_id) +{ + global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path; + global $user_ip, $session_length, $starttime; + global $userdata; + + $inline_columns = 4; + $inline_rows = 5; + $window_columns = 8; + + if ($mode == 'window') + { + $userdata = session_pagestart($user_ip, $page_id); + init_userprefs($userdata); + + $gen_simple_header = TRUE; + + $page_title = $lang['Emoticons'] . " - $topic_title"; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'smiliesbody' => 'posting_smilies.tpl') + ); + } + + $sql = "SELECT emoticon, code, smile_url + FROM " . SMILIES_TABLE . " + ORDER BY smilies_id"; + if ($result = $db->sql_query($sql)) + { + $num_smilies = 0; + $rowset = array(); + while ($row = $db->sql_fetchrow($result)) + { + if (empty($rowset[$row['smile_url']])) + { + $rowset[$row['smile_url']]['code'] = str_replace("'", "\\'", str_replace('\\', '\\\\', $row['code'])); + $rowset[$row['smile_url']]['emoticon'] = $row['emoticon']; + $num_smilies++; + } + } + + if ($num_smilies) + { + $smilies_count = ($mode == 'inline') ? min(19, $num_smilies) : $num_smilies; + $smilies_split_row = ($mode == 'inline') ? $inline_columns - 1 : $window_columns - 1; + + $s_colspan = 0; + $row = 0; + $col = 0; + + while (list($smile_url, $data) = @each($rowset)) + { + if (!$col) + { + $template->assign_block_vars('smilies_row', array()); + } + + $template->assign_block_vars('smilies_row.smilies_col', array( + 'SMILEY_CODE' => $data['code'], + 'SMILEY_IMG' => $board_config['smilies_path'] . '/' . $smile_url, + 'SMILEY_DESC' => $data['emoticon']) + ); + + $s_colspan = max($s_colspan, $col + 1); + + if ($col == $smilies_split_row) + { + if ($mode == 'inline' && $row == $inline_rows - 1) + { + break; + } + $col = 0; + $row++; + } + else + { + $col++; + } + } + + if ($mode == 'inline' && $num_smilies > $inline_rows * $inline_columns) + { + $template->assign_block_vars('switch_smilies_extra', array()); + + $template->assign_vars(array( + 'L_MORE_SMILIES' => $lang['More_emoticons'], + 'U_MORE_SMILIES' => append_sid("posting.$phpEx?mode=smilies")) + ); + } + + $template->assign_vars(array( + 'L_EMOTICONS' => $lang['Emoticons'], + 'L_CLOSE_WINDOW' => $lang['Close_window'], + 'S_SMILIES_COLSPAN' => $s_colspan) + ); + } + } + + if ($mode == 'window') + { + $template->pparse('smiliesbody'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/functions_search.php b/phpBB2_old/includes/functions_search.php new file mode 100644 index 0000000..2fcbb54 --- /dev/null +++ b/phpBB2_old/includes/functions_search.php @@ -0,0 +1,498 @@ +', '`', '\'', '"', '|', ',', '@', '_', '?', '%', '-', '~', '+', '.', '[', ']', '{', '}', ':', '\\', '/', '=', '#', '\'', ';', '!'); + static $drop_char_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', '', '', ' ', ' ', ' ', ' ', '', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' , ' ', ' ', ' ', ' ', ' ', ' '); + + $entry = ' ' . strip_tags(strtolower($entry)) . ' '; + + if ( $mode == 'post' ) + { + // Replace line endings by a space + $entry = preg_replace('/[\n\r]/is', ' ', $entry); + // HTML entities like   + $entry = preg_replace('/\b&[a-z]+;\b/', ' ', $entry); + // Remove URL's + $entry = preg_replace('/\b[a-z0-9]+:\/\/[a-z0-9\.\-]+(\/[a-z0-9\?\.%_\-\+=&\/]+)?/', ' ', $entry); + // Quickly remove BBcode. + $entry = preg_replace('/\[img:[a-z0-9]{10,}\].*?\[\/img:[a-z0-9]{10,}\]/', ' ', $entry); + $entry = preg_replace('/\[\/?url(=.*?)?\]/', ' ', $entry); + $entry = preg_replace('/\[\/?[a-z\*=\+\-]+(\:?[0-9a-z]+)?:[a-z0-9]{10,}(\:[a-z0-9]+)?=?.*?\]/', ' ', $entry); + } + else if ( $mode == 'search' ) + { + $entry = str_replace(' +', ' and ', $entry); + $entry = str_replace(' -', ' not ', $entry); + } + + // + // Filter out strange characters like ^, $, &, change "it's" to "its" + // + for($i = 0; $i < count($drop_char_match); $i++) + { + $entry = str_replace($drop_char_match[$i], $drop_char_replace[$i], $entry); + } + + if ( $mode == 'post' ) + { + $entry = str_replace('*', ' ', $entry); + + // 'words' that consist of <3 or >20 characters are removed. + $entry = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $entry); + } + + if ( !empty($stopword_list) ) + { + for ($j = 0; $j < count($stopword_list); $j++) + { + $stopword = trim($stopword_list[$j]); + + if ( $mode == 'post' || ( $stopword != 'not' && $stopword != 'and' && $stopword != 'or' ) ) + { + $entry = str_replace(' ' . trim($stopword) . ' ', ' ', $entry); + } + } + } + + if ( !empty($synonym_list) ) + { + for ($j = 0; $j < count($synonym_list); $j++) + { + list($replace_synonym, $match_synonym) = split(' ', trim(strtolower($synonym_list[$j]))); + if ( $mode == 'post' || ( $match_synonym != 'not' && $match_synonym != 'and' && $match_synonym != 'or' ) ) + { + $entry = str_replace(' ' . trim($match_synonym) . ' ', ' ' . trim($replace_synonym) . ' ', $entry); + } + } + } + + return $entry; +} + +function split_words(&$entry, $mode = 'post') +{ + // If you experience problems with the new method, uncomment this block. +/* + $rex = ( $mode == 'post' ) ? "/\b([\w±µ-ÿ][\w±µ-ÿ']*[\w±µ-ÿ]+|[\w±µ-ÿ]+?)\b/" : '/(\*?[a-z0-9±µ-ÿ]+\*?)|\b([a-z0-9±µ-ÿ]+)\b/'; + preg_match_all($rex, $entry, $split_entries); + + return $split_entries[1]; +*/ + // Trim 1+ spaces to one space and split this trimmed string into words. + return explode(' ', trim(preg_replace('#\s+#', ' ', $entry))); +} + +function add_search_words($mode, $post_id, $post_text, $post_title = '') +{ + global $db, $phpbb_root_path, $board_config, $lang; + + $stopword_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_stopwords.txt"); + $synonym_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . "/search_synonyms.txt"); + + $search_raw_words = array(); + $search_raw_words['text'] = split_words(clean_words('post', $post_text, $stopword_array, $synonym_array)); + $search_raw_words['title'] = split_words(clean_words('post', $post_title, $stopword_array, $synonym_array)); + + @set_time_limit(0); + + $word = array(); + $word_insert_sql = array(); + while ( list($word_in, $search_matches) = @each($search_raw_words) ) + { + $word_insert_sql[$word_in] = ''; + if ( !empty($search_matches) ) + { + for ($i = 0; $i < count($search_matches); $i++) + { + $search_matches[$i] = trim($search_matches[$i]); + + if( $search_matches[$i] != '' ) + { + $word[] = $search_matches[$i]; + if ( !strstr($word_insert_sql[$word_in], "'" . $search_matches[$i] . "'") ) + { + $word_insert_sql[$word_in] .= ( $word_insert_sql[$word_in] != "" ) ? ", '" . $search_matches[$i] . "'" : "'" . $search_matches[$i] . "'"; + } + } + } + } + } + + if ( count($word) ) + { + sort($word); + + $prev_word = ''; + $word_text_sql = ''; + $temp_word = array(); + for($i = 0; $i < count($word); $i++) + { + if ( $word[$i] != $prev_word ) + { + $temp_word[] = $word[$i]; + $word_text_sql .= ( ( $word_text_sql != '' ) ? ', ' : '' ) . "'" . $word[$i] . "'"; + } + $prev_word = $word[$i]; + } + $word = $temp_word; + + $check_words = array(); + switch( SQL_LAYER ) + { + case 'postgresql': + case 'msaccess': + case 'mssql-odbc': + case 'oracle': + case 'db2': + $sql = "SELECT word_id, word_text + FROM " . SEARCH_WORD_TABLE . " + WHERE word_text IN ($word_text_sql)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select words', '', __LINE__, __FILE__, $sql); + } + + while ( $row = $db->sql_fetchrow($result) ) + { + $check_words[$row['word_text']] = $row['word_id']; + } + break; + } + + $value_sql = ''; + $match_word = array(); + for ($i = 0; $i < count($word); $i++) + { + $new_match = true; + if ( isset($check_words[$word[$i]]) ) + { + $new_match = false; + } + + if ( $new_match ) + { + switch( SQL_LAYER ) + { + case 'mysql': + case 'mysql4': + $value_sql .= ( ( $value_sql != '' ) ? ', ' : '' ) . '(\'' . $word[$i] . '\', 0)'; + break; + case 'mssql': + case 'mssql-odbc': + $value_sql .= ( ( $value_sql != '' ) ? ' UNION ALL ' : '' ) . "SELECT '" . $word[$i] . "', 0"; + break; + default: + $sql = "INSERT INTO " . SEARCH_WORD_TABLE . " (word_text, word_common) + VALUES ('" . $word[$i] . "', 0)"; + if( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new word', '', __LINE__, __FILE__, $sql); + } + break; + } + } + } + + if ( $value_sql != '' ) + { + switch ( SQL_LAYER ) + { + case 'mysql': + case 'mysql4': + $sql = "INSERT IGNORE INTO " . SEARCH_WORD_TABLE . " (word_text, word_common) + VALUES $value_sql"; + break; + case 'mssql': + case 'mssql-odbc': + $sql = "INSERT INTO " . SEARCH_WORD_TABLE . " (word_text, word_common) + $value_sql"; + break; + } + + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new word', '', __LINE__, __FILE__, $sql); + } + } + } + + while( list($word_in, $match_sql) = @each($word_insert_sql) ) + { + $title_match = ( $word_in == 'title' ) ? 1 : 0; + + if ( $match_sql != '' ) + { + $sql = "INSERT INTO " . SEARCH_MATCH_TABLE . " (post_id, word_id, title_match) + SELECT $post_id, word_id, $title_match + FROM " . SEARCH_WORD_TABLE . " + WHERE word_text IN ($match_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert new word matches', '', __LINE__, __FILE__, $sql); + } + } + } + + if ($mode == 'single') + { + remove_common('single', 4/10, $word); + } + + return; +} + +// +// Check if specified words are too common now +// +function remove_common($mode, $fraction, $word_id_list = array()) +{ + global $db; + + $sql = "SELECT COUNT(post_id) AS total_posts + FROM " . POSTS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post count', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['total_posts'] >= 100 ) + { + $common_threshold = floor($row['total_posts'] * $fraction); + + if ( $mode == 'single' && count($word_id_list) ) + { + $word_id_sql = ''; + for($i = 0; $i < count($word_id_list); $i++) + { + $word_id_sql .= ( ( $word_id_sql != '' ) ? ', ' : '' ) . "'" . $word_id_list[$i] . "'"; + } + + $sql = "SELECT m.word_id + FROM " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w + WHERE w.word_text IN ($word_id_sql) + AND m.word_id = w.word_id + GROUP BY m.word_id + HAVING COUNT(m.word_id) > $common_threshold"; + } + else + { + $sql = "SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + GROUP BY word_id + HAVING COUNT(word_id) > $common_threshold"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain common word list', '', __LINE__, __FILE__, $sql); + } + + $common_word_id = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $common_word_id .= ( ( $common_word_id != '' ) ? ', ' : '' ) . $row['word_id']; + } + $db->sql_freeresult($result); + + if ( $common_word_id != '' ) + { + $sql = "UPDATE " . SEARCH_WORD_TABLE . " + SET word_common = " . TRUE . " + WHERE word_id IN ($common_word_id)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete word list entry', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . SEARCH_MATCH_TABLE . " + WHERE word_id IN ($common_word_id)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete word match entry', '', __LINE__, __FILE__, $sql); + } + } + } + + return; +} + +function remove_search_post($post_id_sql) +{ + global $db; + + $words_removed = false; + + switch ( SQL_LAYER ) + { + case 'mysql': + case 'mysql4': + $sql = "SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE post_id IN ($post_id_sql) + GROUP BY word_id"; + if ( $result = $db->sql_query($sql) ) + { + $word_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $word_id_sql .= ( $word_id_sql != '' ) ? ', ' . $row['word_id'] : $row['word_id']; + } + + $sql = "SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE word_id IN ($word_id_sql) + GROUP BY word_id + HAVING COUNT(word_id) = 1"; + if ( $result = $db->sql_query($sql) ) + { + $word_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $word_id_sql .= ( $word_id_sql != '' ) ? ', ' . $row['word_id'] : $row['word_id']; + } + + if ( $word_id_sql != '' ) + { + $sql = "DELETE FROM " . SEARCH_WORD_TABLE . " + WHERE word_id IN ($word_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete word list entry', '', __LINE__, __FILE__, $sql); + } + + $words_removed = $db->sql_affectedrows(); + } + } + } + break; + + default: + $sql = "DELETE FROM " . SEARCH_WORD_TABLE . " + WHERE word_id IN ( + SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE word_id IN ( + SELECT word_id + FROM " . SEARCH_MATCH_TABLE . " + WHERE post_id IN ($post_id_sql) + GROUP BY word_id + ) + GROUP BY word_id + HAVING COUNT(word_id) = 1 + )"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete old words from word table', '', __LINE__, __FILE__, $sql); + } + + $words_removed = $db->sql_affectedrows(); + + break; + } + + $sql = "DELETE FROM " . SEARCH_MATCH_TABLE . " + WHERE post_id IN ($post_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql); + } + + return $words_removed; +} + +// +// Username search +// +function username_search($search_match) +{ + global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path; + global $starttime, $gen_simple_header; + + $gen_simple_header = TRUE; + + $username_list = ''; + if ( !empty($search_match) ) + { + $username_search = preg_replace('/\*/', '%', phpbb_clean_username($search_match)); + + $sql = "SELECT username + FROM " . USERS_TABLE . " + WHERE username LIKE '" . str_replace("\'", "''", $username_search) . "' AND user_id <> " . ANONYMOUS . " + ORDER BY username"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + $username_list .= ''; + } + while ( $row = $db->sql_fetchrow($result) ); + } + else + { + $username_list .= ''; + } + $db->sql_freeresult($result); + } + + $page_title = $lang['Search']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'search_user_body' => 'search_username.tpl') + ); + + $template->assign_vars(array( + 'USERNAME' => (!empty($search_match)) ? phpbb_clean_username($search_match) : '', + + 'L_CLOSE_WINDOW' => $lang['Close_window'], + 'L_SEARCH_USERNAME' => $lang['Find_username'], + 'L_UPDATE_USERNAME' => $lang['Select_username'], + 'L_SELECT' => $lang['Select'], + 'L_SEARCH' => $lang['Search'], + 'L_SEARCH_EXPLAIN' => $lang['Search_author_explain'], + 'L_CLOSE_WINDOW' => $lang['Close_window'], + + 'S_USERNAME_OPTIONS' => $username_list, + 'S_SEARCH_ACTION' => append_sid("search.$phpEx?mode=searchuser")) + ); + + if ( $username_list != '' ) + { + $template->assign_block_vars('switch_select_name', array()); + } + + $template->pparse('search_user_body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/functions_selects.php b/phpBB2_old/includes/functions_selects.php new file mode 100644 index 0000000..3d16c05 --- /dev/null +++ b/phpBB2_old/includes/functions_selects.php @@ -0,0 +1,111 @@ +'; + while ( list($displayname, $filename) = @each($lang) ) + { + $selected = ( strtolower($default) == strtolower($filename) ) ? ' selected="selected"' : ''; + $lang_select .= ''; + } + $lang_select .= ''; + + return $lang_select; +} + +// +// Pick a template/theme combo, +// +function style_select($default_style, $select_name = "style", $dirname = "templates") +{ + global $db; + + $sql = "SELECT themes_id, style_name + FROM " . THEMES_TABLE . " + ORDER BY template_name, themes_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql); + } + + $style_select = '"; + + return $style_select; +} + +// +// Pick a timezone +// +function tz_select($default, $select_name = 'timezone') +{ + global $sys_timezone, $lang; + + if ( !isset($default) ) + { + $default == $sys_timezone; + } + $tz_select = ''; + + return $tz_select; +} + +?> diff --git a/phpBB2_old/includes/functions_validate.php b/phpBB2_old/includes/functions_validate.php new file mode 100644 index 0000000..bd7767e --- /dev/null +++ b/phpBB2_old/includes/functions_validate.php @@ -0,0 +1,207 @@ +sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + if (($userdata['session_logged_in'] && $row['username'] != $userdata['username']) || !$userdata['session_logged_in']) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_taken']); + } + } + } + $db->sql_freeresult($result); + + $sql = "SELECT group_name + FROM " . GROUPS_TABLE . " + WHERE LOWER(group_name) = '" . strtolower($username) . "'"; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_taken']); + } + } + $db->sql_freeresult($result); + + $sql = "SELECT disallow_username + FROM " . DISALLOW_TABLE; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + do + { + if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['disallow_username'], '#')) . ")\b#i", $username)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_disallowed']); + } + } + while($row = $db->sql_fetchrow($result)); + } + } + $db->sql_freeresult($result); + + $sql = "SELECT word + FROM " . WORDS_TABLE; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + do + { + if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $username)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Username_disallowed']); + } + } + while ($row = $db->sql_fetchrow($result)); + } + } + $db->sql_freeresult($result); + + // Don't allow " and ALT-255 in username. + if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160))) + { + return array('error' => true, 'error_msg' => $lang['Username_invalid']); + } + + return array('error' => false, 'error_msg' => ''); +} + +// +// Check to see if email address is banned +// or already present in the DB +// +function validate_email($email) +{ + global $db, $lang; + + if ($email != '') + { + if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email)) + { + $sql = "SELECT ban_email + FROM " . BANLIST_TABLE; + if ($result = $db->sql_query($sql)) + { + if ($row = $db->sql_fetchrow($result)) + { + do + { + $match_email = str_replace('*', '.*?', $row['ban_email']); + if (preg_match('/^' . $match_email . '$/is', $email)) + { + $db->sql_freeresult($result); + return array('error' => true, 'error_msg' => $lang['Email_banned']); + } + } + while($row = $db->sql_fetchrow($result)); + } + } + $db->sql_freeresult($result); + + $sql = "SELECT user_email + FROM " . USERS_TABLE . " + WHERE user_email = '" . str_replace("\'", "''", $email) . "'"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, "Couldn't obtain user email information.", "", __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + return array('error' => true, 'error_msg' => $lang['Email_taken']); + } + $db->sql_freeresult($result); + + return array('error' => false, 'error_msg' => ''); + } + } + + return array('error' => true, 'error_msg' => $lang['Email_invalid']); +} + +// +// Does supplementary validation of optional profile fields. This expects common stuff like trim() and strip_tags() +// to have already been run. Params are passed by-ref, so we can set them to the empty string if they fail. +// +function validate_optional_fields(&$icq, &$aim, &$msnm, &$yim, &$website, &$location, &$occupation, &$interests, &$sig) +{ + $check_var_length = array('aim', 'msnm', 'yim', 'location', 'occupation', 'interests', 'sig'); + + for($i = 0; $i < count($check_var_length); $i++) + { + if (strlen($$check_var_length[$i]) < 2) + { + $$check_var_length[$i] = ''; + } + } + + // ICQ number has to be only numbers. + if (!preg_match('/^[0-9]+$/', $icq)) + { + $icq = ''; + } + + // website has to start with http://, followed by something with length at least 3 that + // contains at least one dot. + if ($website != "") + { + if (!preg_match('#^http[s]?:\/\/#i', $website)) + { + $website = 'http://' . $website; + } + + if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $website)) + { + $website = ''; + } + } + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/index.htm b/phpBB2_old/includes/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/includes/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/includes/page_header.php b/phpBB2_old/includes/page_header.php new file mode 100644 index 0000000..58e7b0d --- /dev/null +++ b/phpBB2_old/includes/page_header.php @@ -0,0 +1,482 @@ += '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) ) + { + if ( extension_loaded('zlib') ) + { + ob_start('ob_gzhandler'); + } + } + else if ( $phpver > '4.0' ) + { + if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') ) + { + if ( extension_loaded('zlib') ) + { + $do_gzip_compress = TRUE; + ob_start(); + ob_implicit_flush(0); + + header('Content-Encoding: gzip'); + } + } + } +} + +// +// Parse and show the overall header. +// +$template->set_filenames(array( + 'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl') +); + +// +// Generate logged in/logged out status +// +if ( $userdata['session_logged_in'] ) +{ + $u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id']; + $l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]'; +} +else +{ + $u_login_logout = 'login.'.$phpEx; + $l_login_logout = $lang['Login']; +} + +$s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config['default_dateformat'], $userdata['user_lastvisit'], $board_config['board_timezone']) : ''; + +// +// Get basic (usernames + totals) online +// situation +// +$logged_visible_online = 0; +$logged_hidden_online = 0; +$guests_online = 0; +$online_userlist = ''; +$l_online_users = ''; + +if (defined('SHOW_ONLINE')) +{ + + $user_forum_sql = ( !empty($forum_id) ) ? "AND s.session_page = " . intval($forum_id) : ''; + $sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip + FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s + WHERE u.user_id = s.session_user_id + AND s.session_time >= ".( time() - 300 ) . " + $user_forum_sql + ORDER BY u.username ASC, s.session_ip ASC"; + if( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql); + } + + $userlist_ary = array(); + $userlist_visible = array(); + + $prev_user_id = 0; + $prev_user_ip = $prev_session_ip = ''; + + while( $row = $db->sql_fetchrow($result) ) + { + // User is logged in and therefor not a guest + if ( $row['session_logged_in'] ) + { + // Skip multiple sessions for one user + if ( $row['user_id'] != $prev_user_id ) + { + $style_color = ''; + if ( $row['user_level'] == ADMIN ) + { + $row['username'] = '' . $row['username'] . ''; + $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; + } + else if ( $row['user_level'] == MOD ) + { + $row['username'] = '' . $row['username'] . ''; + $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; + } + + if ( $row['user_allow_viewonline'] ) + { + $user_online_link = '' . $row['username'] . ''; + $logged_visible_online++; + } + else + { + $user_online_link = '' . $row['username'] . ''; + $logged_hidden_online++; + } + + if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) + { + $online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link; + } + } + + $prev_user_id = $row['user_id']; + } + else + { + // Skip multiple sessions for one user + if ( $row['session_ip'] != $prev_session_ip ) + { + $guests_online++; + } + } + + $prev_session_ip = $row['session_ip']; + } + $db->sql_freeresult($result); + + if ( empty($online_userlist) ) + { + $online_userlist = $lang['None']; + } + $online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' . $online_userlist; + + $total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online; + + if ( $total_online_users > $board_config['record_online_users']) + { + $board_config['record_online_users'] = $total_online_users; + $board_config['record_online_date'] = time(); + + $sql = "UPDATE " . CONFIG_TABLE . " + SET config_value = '$total_online_users' + WHERE config_name = 'record_online_users'"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . CONFIG_TABLE . " + SET config_value = '" . $board_config['record_online_date'] . "' + WHERE config_name = 'record_online_date'"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql); + } + } + + if ( $total_online_users == 0 ) + { + $l_t_user_s = $lang['Online_users_zero_total']; + } + else if ( $total_online_users == 1 ) + { + $l_t_user_s = $lang['Online_user_total']; + } + else + { + $l_t_user_s = $lang['Online_users_total']; + } + + if ( $logged_visible_online == 0 ) + { + $l_r_user_s = $lang['Reg_users_zero_total']; + } + else if ( $logged_visible_online == 1 ) + { + $l_r_user_s = $lang['Reg_user_total']; + } + else + { + $l_r_user_s = $lang['Reg_users_total']; + } + + if ( $logged_hidden_online == 0 ) + { + $l_h_user_s = $lang['Hidden_users_zero_total']; + } + else if ( $logged_hidden_online == 1 ) + { + $l_h_user_s = $lang['Hidden_user_total']; + } + else + { + $l_h_user_s = $lang['Hidden_users_total']; + } + + if ( $guests_online == 0 ) + { + $l_g_user_s = $lang['Guest_users_zero_total']; + } + else if ( $guests_online == 1 ) + { + $l_g_user_s = $lang['Guest_user_total']; + } + else + { + $l_g_user_s = $lang['Guest_users_total']; + } + + $l_online_users = sprintf($l_t_user_s, $total_online_users); + $l_online_users .= sprintf($l_r_user_s, $logged_visible_online); + $l_online_users .= sprintf($l_h_user_s, $logged_hidden_online); + $l_online_users .= sprintf($l_g_user_s, $guests_online); +} + +// +// Obtain number of new private messages +// if user is logged in +// +if ( ($userdata['session_logged_in']) && (empty($gen_simple_header)) ) +{ + if ( $userdata['user_new_privmsg'] ) + { + $l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms']; + $l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']); + + if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_last_privmsg = " . $userdata['user_lastvisit'] . " + WHERE user_id = " . $userdata['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql); + } + + $s_privmsg_new = 1; + $icon_pm = $images['pm_new_msg']; + } + else + { + $s_privmsg_new = 0; + $icon_pm = $images['pm_new_msg']; + } + } + else + { + $l_privmsgs_text = $lang['No_new_pm']; + + $s_privmsg_new = 0; + $icon_pm = $images['pm_no_new_msg']; + } + + if ( $userdata['user_unread_privmsg'] ) + { + $l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms']; + $l_privmsgs_text_unread = sprintf($l_message_unread, $userdata['user_unread_privmsg']); + } + else + { + $l_privmsgs_text_unread = $lang['No_unread_pm']; + } +} +else +{ + $icon_pm = $images['pm_no_new_msg']; + $l_privmsgs_text = $lang['Login_check_pm']; + $l_privmsgs_text_unread = ''; + $s_privmsg_new = 0; +} + +// +// Generate HTML required for Mozilla Navigation bar +// +if (!isset($nav_links)) +{ + $nav_links = array(); +} + +$nav_links_html = ''; +$nav_link_proto = '' . "\n"; +while( list($nav_item, $nav_array) = @each($nav_links) ) +{ + if ( !empty($nav_array['url']) ) + { + $nav_links_html .= sprintf($nav_link_proto, $nav_item, append_sid($nav_array['url']), $nav_array['title']); + } + else + { + // We have a nested array, used for items like that can occur more than once. + while( list(,$nested_array) = each($nav_array) ) + { + $nav_links_html .= sprintf($nav_link_proto, $nav_item, $nested_array['url'], $nested_array['title']); + } + } +} + +// Format Timezone. We are unable to use array_pop here, because of PHP3 compatibility +$l_timezone = explode('.', $board_config['board_timezone']); +$l_timezone = (count($l_timezone) > 1 && $l_timezone[count($l_timezone)-1] != 0) ? $lang[sprintf('%.1f', $board_config['board_timezone'])] : $lang[number_format($board_config['board_timezone'])]; +// +// The following assigns all _common_ variables that may be used at any point +// in a template. +// +$template->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'SITE_DESCRIPTION' => $board_config['site_desc'], + 'PAGE_TITLE' => $page_title, + 'LAST_VISIT_DATE' => sprintf($lang['You_last_visit'], $s_last_visit), + 'CURRENT_TIME' => sprintf($lang['Current_time'], create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])), + 'TOTAL_USERS_ONLINE' => $l_online_users, + 'LOGGED_IN_USER_LIST' => $online_userlist, + 'RECORD_USERS' => sprintf($lang['Record_online_users'], $board_config['record_online_users'], create_date($board_config['default_dateformat'], $board_config['record_online_date'], $board_config['board_timezone'])), + 'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text, + 'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread, + 'PRIVATE_MESSAGE_NEW_FLAG' => $s_privmsg_new, + + 'PRIVMSG_IMG' => $icon_pm, + + 'L_USERNAME' => $lang['Username'], + 'L_PASSWORD' => $lang['Password'], + 'L_LOGIN_LOGOUT' => $l_login_logout, + 'L_LOGIN' => $lang['Login'], + 'L_LOG_ME_IN' => $lang['Log_me_in'], + 'L_AUTO_LOGIN' => $lang['Log_me_in'], + 'L_INDEX' => sprintf($lang['Forum_Index'], $board_config['sitename']), + 'L_REGISTER' => $lang['Register'], + 'L_PROFILE' => $lang['Profile'], + 'L_SEARCH' => $lang['Search'], + 'L_PRIVATEMSGS' => $lang['Private_Messages'], + 'L_WHO_IS_ONLINE' => $lang['Who_is_Online'], + 'L_MEMBERLIST' => $lang['Memberlist'], + 'L_FAQ' => $lang['FAQ'], + 'L_USERGROUPS' => $lang['Usergroups'], + 'L_SEARCH_NEW' => $lang['Search_new'], + 'L_SEARCH_UNANSWERED' => $lang['Search_unanswered'], + 'L_SEARCH_SELF' => $lang['Search_your_posts'], + 'L_WHOSONLINE_ADMIN' => sprintf($lang['Admin_online_color'], '', ''), + 'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '', ''), + + 'U_SEARCH_UNANSWERED' => append_sid('search.'.$phpEx.'?search_id=unanswered'), + 'U_SEARCH_SELF' => append_sid('search.'.$phpEx.'?search_id=egosearch'), + 'U_SEARCH_NEW' => append_sid('search.'.$phpEx.'?search_id=newposts'), + 'U_INDEX' => append_sid('index.'.$phpEx), + 'U_REGISTER' => append_sid('profile.'.$phpEx.'?mode=register'), + 'U_PROFILE' => append_sid('profile.'.$phpEx.'?mode=editprofile'), + 'U_PRIVATEMSGS' => append_sid('privmsg.'.$phpEx.'?folder=inbox'), + 'U_PRIVATEMSGS_POPUP' => append_sid('privmsg.'.$phpEx.'?mode=newpm'), + 'U_SEARCH' => append_sid('search.'.$phpEx), + 'U_MEMBERLIST' => append_sid('memberlist.'.$phpEx), + 'U_MODCP' => append_sid('modcp.'.$phpEx), + 'U_FAQ' => append_sid('faq.'.$phpEx), + 'U_VIEWONLINE' => append_sid('viewonline.'.$phpEx), + 'U_LOGIN_LOGOUT' => append_sid($u_login_logout), + 'U_GROUP_CP' => append_sid('groupcp.'.$phpEx), + + 'S_CONTENT_DIRECTION' => $lang['DIRECTION'], + 'S_CONTENT_ENCODING' => $lang['ENCODING'], + 'S_CONTENT_DIR_LEFT' => $lang['LEFT'], + 'S_CONTENT_DIR_RIGHT' => $lang['RIGHT'], + 'S_TIMEZONE' => sprintf($lang['All_times'], $l_timezone), + 'S_LOGIN_ACTION' => append_sid('login.'.$phpEx), + + 'T_HEAD_STYLESHEET' => $theme['head_stylesheet'], + 'T_BODY_BACKGROUND' => $theme['body_background'], + 'T_BODY_BGCOLOR' => '#'.$theme['body_bgcolor'], + 'T_BODY_TEXT' => '#'.$theme['body_text'], + 'T_BODY_LINK' => '#'.$theme['body_link'], + 'T_BODY_VLINK' => '#'.$theme['body_vlink'], + 'T_BODY_ALINK' => '#'.$theme['body_alink'], + 'T_BODY_HLINK' => '#'.$theme['body_hlink'], + 'T_TR_COLOR1' => '#'.$theme['tr_color1'], + 'T_TR_COLOR2' => '#'.$theme['tr_color2'], + 'T_TR_COLOR3' => '#'.$theme['tr_color3'], + 'T_TR_CLASS1' => $theme['tr_class1'], + 'T_TR_CLASS2' => $theme['tr_class2'], + 'T_TR_CLASS3' => $theme['tr_class3'], + 'T_TH_COLOR1' => '#'.$theme['th_color1'], + 'T_TH_COLOR2' => '#'.$theme['th_color2'], + 'T_TH_COLOR3' => '#'.$theme['th_color3'], + 'T_TH_CLASS1' => $theme['th_class1'], + 'T_TH_CLASS2' => $theme['th_class2'], + 'T_TH_CLASS3' => $theme['th_class3'], + 'T_TD_COLOR1' => '#'.$theme['td_color1'], + 'T_TD_COLOR2' => '#'.$theme['td_color2'], + 'T_TD_COLOR3' => '#'.$theme['td_color3'], + 'T_TD_CLASS1' => $theme['td_class1'], + 'T_TD_CLASS2' => $theme['td_class2'], + 'T_TD_CLASS3' => $theme['td_class3'], + 'T_FONTFACE1' => $theme['fontface1'], + 'T_FONTFACE2' => $theme['fontface2'], + 'T_FONTFACE3' => $theme['fontface3'], + 'T_FONTSIZE1' => $theme['fontsize1'], + 'T_FONTSIZE2' => $theme['fontsize2'], + 'T_FONTSIZE3' => $theme['fontsize3'], + 'T_FONTCOLOR1' => '#'.$theme['fontcolor1'], + 'T_FONTCOLOR2' => '#'.$theme['fontcolor2'], + 'T_FONTCOLOR3' => '#'.$theme['fontcolor3'], + 'T_SPAN_CLASS1' => $theme['span_class1'], + 'T_SPAN_CLASS2' => $theme['span_class2'], + 'T_SPAN_CLASS3' => $theme['span_class3'], + + 'NAV_LINKS' => $nav_links_html) +); + +// +// Login box? +// +if ( !$userdata['session_logged_in'] ) +{ + $template->assign_block_vars('switch_user_logged_out', array()); +} +else +{ + $template->assign_block_vars('switch_user_logged_in', array()); + + if ( !empty($userdata['user_popup_pm']) ) + { + $template->assign_block_vars('switch_enable_pm_popup', array()); + } +} + +// Add no-cache control for cookies if they are set +//$c_no_cache = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_sid']) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_data'])) ? 'no-cache="set-cookie", ' : ''; + +// Work around for "current" Apache 2 + PHP module which seems to not +// cope with private cache control setting +if (!empty($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache/2')) +{ + header ('Cache-Control: no-cache, pre-check=0, post-check=0'); +} +else +{ + header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0'); +} +header ('Expires: 0'); +header ('Pragma: no-cache'); + +$template->pparse('overall_header'); + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/page_tail.php b/phpBB2_old/includes/page_tail.php new file mode 100644 index 0000000..a0e28f5 --- /dev/null +++ b/phpBB2_old/includes/page_tail.php @@ -0,0 +1,75 @@ +' . $lang['Admin_panel'] . '

    ' : ''; + +$template->set_filenames(array( + 'overall_footer' => ( empty($gen_simple_header) ) ? 'overall_footer.tpl' : 'simple_footer.tpl') +); + +$template->assign_vars(array( + 'PHPBB_VERSION' => '2' . $board_config['version'], + 'TRANSLATION_INFO' => ( isset($lang['TRANSLATION_INFO']) ) ? $lang['TRANSLATION_INFO'] : '', + 'ADMIN_LINK' => $admin_link) +); + +$template->pparse('overall_footer'); + +// +// Close our DB connection. +// +$db->sql_close(); + +// +// Compress buffered output if required and send to browser +// +if ( $do_gzip_compress ) +{ + // + // Borrowed from php.net! + // + $gzip_contents = ob_get_contents(); + ob_end_clean(); + + $gzip_size = strlen($gzip_contents); + $gzip_crc = crc32($gzip_contents); + + $gzip_contents = gzcompress($gzip_contents, 9); + $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); + + echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; + echo $gzip_contents; + echo pack('V', $gzip_crc); + echo pack('V', $gzip_size); +} + +exit; + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/prune.php b/phpBB2_old/includes/prune.php new file mode 100644 index 0000000..f025893 --- /dev/null +++ b/phpBB2_old/includes/prune.php @@ -0,0 +1,161 @@ + ' . POST_ANNOUNCE; + // + // Those without polls and announcements ... unless told otherwise! + // + $sql = "SELECT t.topic_id + FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t + WHERE t.forum_id = $forum_id + $prune_all + AND ( p.post_id = t.topic_last_post_id + OR t.topic_last_post_id = 0 )"; + if ( $prune_date != '' ) + { + $sql .= " AND p.post_time < $prune_date"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain lists of topics to prune', '', __LINE__, __FILE__, $sql); + } + + $sql_topics = ''; + while( $row = $db->sql_fetchrow($result) ) + { + $sql_topics .= ( ( $sql_topics != '' ) ? ', ' : '' ) . $row['topic_id']; + } + $db->sql_freeresult($result); + + if( $sql_topics != '' ) + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE forum_id = $forum_id + AND topic_id IN ($sql_topics)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain list of posts to prune', '', __LINE__, __FILE__, $sql); + } + + $sql_post = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $sql_post .= ( ( $sql_post != '' ) ? ', ' : '' ) . $row['post_id']; + } + $db->sql_freeresult($result); + + if ( $sql_post != '' ) + { + $sql = "DELETE FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id IN ($sql_topics)"; + if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete watched topics during prune', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($sql_topics)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete topics during prune', '', __LINE__, __FILE__, $sql); + } + + $pruned_topics = $db->sql_affectedrows(); + + $sql = "DELETE FROM " . POSTS_TABLE . " + WHERE post_id IN ($sql_post)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete post_text during prune', '', __LINE__, __FILE__, $sql); + } + + $pruned_posts = $db->sql_affectedrows(); + + $sql = "DELETE FROM " . POSTS_TEXT_TABLE . " + WHERE post_id IN ($sql_post)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete post during prune', '', __LINE__, __FILE__, $sql); + } + + remove_search_post($sql_post); + + return array ('topics' => $pruned_topics, 'posts' => $pruned_posts); + } + } + + return array('topics' => 0, 'posts' => 0); +} + +// +// Function auto_prune(), this function will read the configuration data from +// the auto_prune table and call the prune function with the necessary info. +// +function auto_prune($forum_id = 0) +{ + global $db, $lang; + + $sql = "SELECT * + FROM " . PRUNE_TABLE . " + WHERE forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not read auto_prune table', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( $row['prune_freq'] && $row['prune_days'] ) + { + $prune_date = time() - ( $row['prune_days'] * 86400 ); + $next_prune = time() + ( $row['prune_freq'] * 86400 ); + + prune($forum_id, $prune_date); + sync('forum', $forum_id); + + $sql = "UPDATE " . FORUMS_TABLE . " + SET prune_next = $next_prune + WHERE forum_id = $forum_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update forum table', '', __LINE__, __FILE__, $sql); + } + } + } + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/sessions.php b/phpBB2_old/includes/sessions.php new file mode 100644 index 0000000..10a85fd --- /dev/null +++ b/phpBB2_old/includes/sessions.php @@ -0,0 +1,400 @@ +sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not obtain lastvisit data from user table', '', __LINE__, __FILE__, $sql); + } + + $userdata = $db->sql_fetchrow($result); + + if ( $user_id != ANONYMOUS ) + { + $auto_login_key = $userdata['user_password']; + + if ( $auto_create ) + { + if ( isset($sessiondata['autologinid']) && $userdata['user_active'] ) + { + // We have to login automagically + if( $sessiondata['autologinid'] == $auto_login_key ) + { + // autologinid matches password + $login = 1; + $enable_autologin = 1; + } + else + { + // No match; don't login, set as anonymous user + $login = 0; + $enable_autologin = 0; + $user_id = $userdata['user_id'] = ANONYMOUS; + } + } + else + { + // Autologin is not set. Don't login, set as anonymous user + $login = 0; + $enable_autologin = 0; + $user_id = $userdata['user_id'] = ANONYMOUS; + } + } + else + { + $login = 1; + } + } + else + { + $login = 0; + $enable_autologin = 0; + } + + // + // Initial ban check against user id, IP and email address + // + preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts); + + $sql = "SELECT ban_ip, ban_userid, ban_email + FROM " . BANLIST_TABLE . " + WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff') + OR ban_userid = $user_id"; + if ( $user_id != ANONYMOUS ) + { + $sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "' + OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'"; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql); + } + + if ( $ban_info = $db->sql_fetchrow($result) ) + { + if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] ) + { + message_die(CRITICAL_MESSAGE, 'You_been_banned'); + } + } + + // + // Create or update the session + // + $sql = "UPDATE " . SESSIONS_TABLE . " + SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login + WHERE session_id = '" . $session_id . "' + AND session_ip = '$user_ip'"; + if ( !$db->sql_query($sql) || !$db->sql_affectedrows() ) + { + $session_id = md5(uniqid($user_ip)); + + $sql = "INSERT INTO " . SESSIONS_TABLE . " + (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) + VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql); + } + } + + if ( $user_id != ANONYMOUS ) + {// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : ( + $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; + + $sql = "UPDATE " . USERS_TABLE . " + SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit + WHERE user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql); + } + + $userdata['user_lastvisit'] = $last_visit; + + $sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : ''; + $sessiondata['userid'] = $user_id; + } + + $userdata['session_id'] = $session_id; + $userdata['session_ip'] = $user_ip; + $userdata['session_user_id'] = $user_id; + $userdata['session_logged_in'] = $login; + $userdata['session_page'] = $page_id; + $userdata['session_start'] = $current_time; + $userdata['session_time'] = $current_time; + + setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); + setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); + + $SID = 'sid=' . $session_id; + + return $userdata; +} + +// +// Checks for a given user session, tidies session table and updates user +// sessions at each page refresh +// +function session_pagestart($user_ip, $thispage_id) +{ + global $db, $lang, $board_config; + global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID; + + $cookiename = $board_config['cookie_name']; + $cookiepath = $board_config['cookie_path']; + $cookiedomain = $board_config['cookie_domain']; + $cookiesecure = $board_config['cookie_secure']; + + $current_time = time(); + unset($userdata); + + if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ) + { + $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array(); + $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : ''; + $sessionmethod = SESSION_METHOD_COOKIE; + } + else + { + $sessiondata = array(); + $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : ''; + $sessionmethod = SESSION_METHOD_GET; + } + + // + if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) + { + $session_id = ''; + } + + // + // Does a session exist? + // + if ( !empty($session_id) ) + { + // + // session_id exists so go ahead and attempt to grab all + // data in preparation + // + $sql = "SELECT u.*, s.* + FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u + WHERE s.session_id = '$session_id' + AND u.user_id = s.session_user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql); + } + + $userdata = $db->sql_fetchrow($result); + + // + // Did the session exist in the DB? + // + if ( isset($userdata['user_id']) ) + { + // + // Do not check IP assuming equivalence, if IPv4 we'll check only first 24 + // bits ... I've been told (by vHiker) this should alleviate problems with + // load balanced et al proxies while retaining some reliance on IP security. + // + $ip_check_s = substr($userdata['session_ip'], 0, 6); + $ip_check_u = substr($user_ip, 0, 6); + + if ($ip_check_s == $ip_check_u) + { + $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : ''; + + // + // Only update session DB a minute or so after last update + // + if ( $current_time - $userdata['session_time'] > 60 ) + { + $sql = "UPDATE " . SESSIONS_TABLE . " + SET session_time = $current_time, session_page = $thispage_id + WHERE session_id = '" . $userdata['session_id'] . "'"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); + } + + if ( $userdata['user_id'] != ANONYMOUS ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_session_time = $current_time, user_session_page = $thispage_id + WHERE user_id = " . $userdata['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql); + } + } + + // + // Delete expired sessions + // + $expiry_time = $current_time - $board_config['session_length']; + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE session_time < $expiry_time + AND session_id <> '$session_id'"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql); + } + + setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); + setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); + } + + return $userdata; + } + } + } + + // + // If we reach here then no (valid) session exists. So we'll create a new one, + // using the cookie user_id if available to pull basic user prefs. + // + $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS; + + if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) ) + { + message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql); + } + + return $userdata; + +} + +// +// session_end closes out a session +// deleting the corresponding entry +// in the sessions table +// +function session_end($session_id, $user_id) +{ + global $db, $lang, $board_config; + global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID; + + $cookiename = $board_config['cookie_name']; + $cookiepath = $board_config['cookie_path']; + $cookiedomain = $board_config['cookie_domain']; + $cookiesecure = $board_config['cookie_secure']; + + $current_time = time(); + + // + // Pull cookiedata or grab the URI propagated sid + // + if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ) + { + $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : ''; + $sessionmethod = SESSION_METHOD_COOKIE; + } + else + { + $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : ''; + $sessionmethod = SESSION_METHOD_GET; + } + + if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) + { + return; + } + + // + // Delete existing session + // + $sql = "DELETE FROM " . SESSIONS_TABLE . " + WHERE session_id = '$session_id' + AND session_user_id = $user_id"; + if ( !$db->sql_query($sql) ) + { + message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql); + } + + setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure); + setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure); + + return true; +} + +// +// Append $SID to a url. Borrowed from phplib and modified. This is an +// extra routine utilised by the session code above and acts as a wrapper +// around every single URL and form action. If you replace the session +// code you must include this routine, even if it's empty. +// +function append_sid($url, $non_html_amp = false) +{ + global $SID; + + if ( !empty($SID) && !preg_match('#sid=#', $url) ) + { + $url .= ( ( strpos($url, '?') != false ) ? ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID; + } + + return $url; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/smtp.php b/phpBB2_old/includes/smtp.php new file mode 100644 index 0000000..d0d59ef --- /dev/null +++ b/phpBB2_old/includes/smtp.php @@ -0,0 +1,209 @@ + 1) + { + $headers = join("\n", $headers); + } + else + { + $headers = $headers[0]; + } + } + $headers = chop($headers); + + // Make sure there are no bare linefeeds in the headers + $headers = preg_replace('#(?\r\n"); + server_parse($socket, "250", __LINE__); + + // Specify each user to send to and build to header. + $to_header = ''; + + // Add an additional bit of error checking to the To field. + $mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to); + if (preg_match('#[^ ]+\@[^ ]+#', $mail_to)) + { + fputs($socket, "RCPT TO: <$mail_to>\r\n"); + server_parse($socket, "250", __LINE__); + } + + // Ok now do the CC and BCC fields... + @reset($bcc); + while(list(, $bcc_address) = each($bcc)) + { + // Add an additional bit of error checking to bcc header... + $bcc_address = trim($bcc_address); + if (preg_match('#[^ ]+\@[^ ]+#', $bcc_address)) + { + fputs($socket, "RCPT TO: <$bcc_address>\r\n"); + server_parse($socket, "250", __LINE__); + } + } + + @reset($cc); + while(list(, $cc_address) = each($cc)) + { + // Add an additional bit of error checking to cc header + $cc_address = trim($cc_address); + if (preg_match('#[^ ]+\@[^ ]+#', $cc_address)) + { + fputs($socket, "RCPT TO: <$cc_address>\r\n"); + server_parse($socket, "250", __LINE__); + } + } + + // Ok now we tell the server we are ready to start sending data + fputs($socket, "DATA\r\n"); + + // This is the last response code we look for until the end of the message. + server_parse($socket, "354", __LINE__); + + // Send the Subject Line... + fputs($socket, "Subject: $subject\r\n"); + + // Now the To Header. + fputs($socket, "To: $mail_to\r\n"); + + // Now any custom headers.... + fputs($socket, "$headers\r\n\r\n"); + + // Ok now we are ready for the message... + fputs($socket, "$message\r\n"); + + // Ok the all the ingredients are mixed in let's cook this puppy... + fputs($socket, ".\r\n"); + server_parse($socket, "250", __LINE__); + + // Now tell the server we are done and close the socket... + fputs($socket, "QUIT\r\n"); + fclose($socket); + + return TRUE; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/sql_parse.php b/phpBB2_old/includes/sql_parse.php new file mode 100644 index 0000000..ad27bb3 --- /dev/null +++ b/phpBB2_old/includes/sql_parse.php @@ -0,0 +1,192 @@ + 0)) + { + if ($lines[$i][0] != "#") + { + $output .= $lines[$i] . "\n"; + } + else + { + $output .= "\n"; + } + // Trading a bit of speed for lower mem. use here. + $lines[$i] = ""; + } + } + + return $output; + +} + +// +// split_sql_file will split an uploaded sql file into single sql statements. +// Note: expects trim() to have already been run on $sql. +// +function split_sql_file($sql, $delimiter) +{ + // Split up our string into "possible" SQL statements. + $tokens = explode($delimiter, $sql); + + // try to save mem. + $sql = ""; + $output = array(); + + // we don't actually care about the matches preg gives us. + $matches = array(); + + // this is faster than calling count($oktens) every time thru the loop. + $token_count = count($tokens); + for ($i = 0; $i < $token_count; $i++) + { + // Don't wanna add an empty string as the last thing in the array. + if (($i != ($token_count - 1)) || (strlen($tokens[$i] > 0))) + { + // This is the total number of single quotes in the token. + $total_quotes = preg_match_all("/'/", $tokens[$i], $matches); + // Counts single quotes that are preceded by an odd number of backslashes, + // which means they're escaped quotes. + $escaped_quotes = preg_match_all("/(? \ No newline at end of file diff --git a/phpBB2_old/includes/template.php b/phpBB2_old/includes/template.php new file mode 100644 index 0000000..e6ec18b --- /dev/null +++ b/phpBB2_old/includes/template.php @@ -0,0 +1,2209 @@ +_tpldata[block.][iteration#][child.][iteration#][child2.][iteration#][variablename] == value + // if it's a root-level variable, it'll be like this: + // $this->vars[varname] == value or $this->_tpldata['.'][0][varname] == value + // array "vars" is added for easier access to data + var $_tpldata = array('.' => array(0 => array())); + var $vars; + + // Hash of filenames for each template handle. + var $files = array(); + var $files_cache = array(); // array of cache files that exists + var $files_cache2 = array(); // array of cache files (exists or not exists) + + // Root template directory. + var $root = ''; + + // Cache directory (compatible with default cache mod) + var $cachedir = ''; + + // Search/replace for unknown files + var $cache_search = array(); + var $cache_replace = array(); + + // Template root directory (generated by set_rootdir) + var $tpldir = ''; + var $tpldir_len = 0; + + // Default template directory. + // If file for default template isn't found file from this template is used. + var $tpldef = 'subSilver'; + + // this will hash handle names to the compiled code for that handle. + var $compiled_code = array(); + + // This will hold the uncompiled code for that handle. + var $uncompiled_code = array(); + + // Cache settings + var $use_cache = 1; + var $cache_writable = 1; + + // Auto-compile setting + var $auto_compile = 1; + + // Current template name + var $tpl = ''; + + // List of replacements. tpl files in this list will be replaced with other tpl files + // according to configuration in xs.cfg + var $replace = array(); + + // counter for include + var $include_count = 0; + + // php extension. will be replaced by $phpEx in Template() function unless you disable it there + var $php = 'php'; + + // True if check switches + var $xs_check_switches = 1; + + // eXtreme Styles variables + var $xs_started = 0; + var $xs_version = 5; // number version. internal. do not change. + var $xs_versiontxt = '2.0.1'; // text version + + // These handles will be parsed if pparse() is executed. + // Can be used to automatically include header/footer if there is any content. + var $preparse = ''; + var $postparse = ''; + + // subtemplates mod detection + var $subtemplates = false; + + // list of switches that are known typos in some mods. + // when error checking is enabled these errors will be auto-fixed. + // format: + // array(start_tag, end_tag) + var $bugs = array( + // ezportal typo: + array('fetchpost_row', 'fetch_post_row'), + // mycalendar 2.2.7 typos: + array('date_cell', 'date_cells'), + array('date_row', 'date_rows'), + // history mod typo: + array('site_today', 'site_week'), + ); + + /** + * Constructor. Installs XS mod on first run or updates it and sets the root dir. + */ + function Template($root = '.') + { + // setting pointer "vars" + $this->vars = &$this->_tpldata['.'][0]; + // load configuration + $this->load_config($root, true); + } + + /** + * Load mod configuration + */ + function load_config($root, $edit_db) + { + global $board_config, $phpbb_root_path, $phpEx; + // getting mod version from config and comparing with real data + $ver = isset($board_config['xs_version']) ? $board_config['xs_version'] : 0; + // check configuration + // set config values if there aren't any + $add = array(); + $del = array(); + $up = array(); + // list of outdated variables + $outdated = array( + 'xs_versoin', // was a typo in one of previous versions + 'xs_separator', // no longer used + 'xs_cache_dir_absolute', // no longer used + 'xs_cache_dir', // no longer used + 'xs_use_isset', // no longer used + ); + // list of default values + $default = array( + 'xs_auto_compile' => 1, + 'xs_auto_recompile' => 1, + 'xs_use_cache' => 1, + 'xs_php' => $phpEx, + 'xs_def_template' => 'subSilver', + 'xs_check_switches' => 1, + 'xs_warn_includes' => 1, + 'xs_add_comments' => 0, + 'xs_ftp_host' => '', + 'xs_ftp_login' => '', + 'xs_ftp_path' => '', + 'xs_downloads_count' => '0', + 'xs_downloads_default' => '0', + 'xs_shownav' => '1', + 'xs_template_time' => '0', + ); + // checking if all variables exist + foreach($default as $var => $value) + { + if(!isset($board_config[$var])) + { + $board_config[$var] = $value; + $add[] = $var; + } + } + // checking if there are any outdated variables that should be deleted + for($i=0; $ixs_version; + $add[] = 'xs_version'; + } + elseif($board_config['xs_version'] != $this->xs_version) + { + $board_config['xs_version'] = $this->xs_version; + $up[] = 'xs_version'; + } + // check config + if(!empty($board_config['xs_auto_recompile'])) + { + if(!$board_config['xs_auto_compile']) + { + $board_config['xs_auto_compile'] = 1; + if(!in_array('xs_auto_compile', $up) && !in_array('xs_auto_compile', $add)) + { + $up[] = 'xs_auto_compile'; + } + } + } + // install/upgrade + if($edit_db && ((count($add) > 0) || (count($up) > 0) || (count($del) > 0))) + { + $board_config['xs_template_time'] = time(); + if(!in_array('xs_template_time', $up)) + { + $up[] = 'xs_template_time'; + } + global $db; + if(isset($db) && (@get_class($db) === 'sql_db')) + { + // adding new config values + for($i=0; $isql_query($sql); + } + // removing old configuration variables that aren't used + for($i=0; $isql_query($sql); + } + // updating variables that should be overwritten + for($i=0; $isql_query($sql); + } + } + } + $this->php = $board_config['xs_php']; + $this->tpldef = $board_config['xs_def_template']; + $this->use_cache = $board_config['xs_use_cache']; + $this->auto_compile = $board_config['xs_auto_compile']; + $this->xs_check_switches = $board_config['xs_check_switches']; + $this->cache_search = array('.', '\\', '/', '_tpl'); + $this->cache_replace = array('_', XS_SEPARATOR, XS_SEPARATOR, '.'.$this->php); + $old_root = $this->root; + $this->set_rootdir($root); + if(!empty($this->tpl)) + { + $this->load_replacements($this->tpldir . $this->tpl . '/xs.cfg'); + } + if($old_root !== $this->root) + { + $this->clear_files(); + } + } + + /** + * Sets the template root directory for this Template object. + */ + function set_rootdir($dir) + { + global $board_config, $phpbb_root_path; + if (!@is_dir($dir)) + { + return false; + } + $dir = str_replace('\\', '/', $dir); + // creating absolute path for cache + $this->cachedir = $phpbb_root_path . XS_DIR_CACHE . '/'; + // creating absolute path for current template and root dir + $this->tpldir = $phpbb_root_path . 'templates/'; + $this->tpldir_len = strlen($this->tpldir); + $this->root = $dir; + $this->tpl = $this->template_name($dir); + // check subtemplates mod + $sub_templates_cfg = $this->root . '/sub_templates.cfg'; + if(defined('LANG_EXTEND_DONE') && @file_exists($sub_templates_cfg)) + { + $this->subtemplates = true; + } + return true; + } + + /** + * Destroys this template object. Should be called when you're done with it, in order + * to clear out the template data so you can load/parse a new template set. + */ + function destroy() + { + $this->_tpldata = array('.' => array(0 => array())); + $this->vars = &$this->_tpldata['.'][0]; + $this->xs_started = 0; + } + + /** + * Clears list of compiled files. + */ + function clear_files() + { + $this->files = array(); + $this->files_cache = array(); + $this->files_cache2 = array(); + $this->compiled_code = array(); + $this->uncompiled_code = array(); + } + + /** + * Loads replacements from .cfg file + */ + function load_replacements($file) + { + if(@file_exists($file)) + { + $replace = array(); + @include($file); + $this->replace = array_merge($this->replace, $replace); + } + } + + /** + * Extracts template name from path + */ + function template_name($dir) + { + $tpl = XS_TPL_ANY; // can start at any position + $tpl_null = XS_TPL_START; // can start only at zero position + // searching for 'templates/' and removing everything before it + $pos = strpos($dir, $tpl); + if($pos === false) + { + if(substr($dir, 0, strlen($tpl_null)) !== $tpl_null) + { + return ''; + } + $str = substr($dir, strlen($tpl_null), strlen($dir)); + } + else + { + $str = substr($dir, $pos + strlen($tpl), strlen($dir)); + } + // searching for one more 'templates/' + // that can happen if full path is like /home/some_dude/templates/phpbb/templates/subSilver/ + $dir = $this->template_name($str); + if(!$dir) + { + $dir = $str; + } + if(strpos($str, $tpl) !== false) + { + $dir = $this->template_name($str); + } + // check for another subdirectory + $pos = strpos($dir, '/'); + if($pos) + { + $dir = substr($dir, 0, $pos); + } + return $dir; + } + + function subtemplates_make_filename($filename) + { + global $HTTP_GET_VARS, $HTTP_POST_VARS, $db, $board_config, $images, $theme; + global $sub_template_key_image, $sub_templates; + global $tree; + + // initiate the sub-template image pack that will be use + $sub_template_key_image = POST_CAT_URL . '0'; + + // Check if sub_templates are defined for this theme + if ( $board_config['version'] > '.0.5' ) + { + $sub_templates_cfg = @phpbb_realpath($this->root . '/sub_templates.cfg'); + } + else + { + $sub_templates_cfg = $this->root . '/sub_templates.cfg'; + } + @include($sub_templates_cfg); + if ( isset($sub_templates) ) + { + // search an id + $cat_id = 0; + $forum_id = 0; + $topic_id = 0; + $post_id = 0; + + if ( !defined('IN_PRIVMSG') && ( isset($HTTP_GET_VARS[POST_POST_URL]) || isset($HTTP_POST_VARS[POST_POST_URL]) ) ) + { + $post_id = isset($HTTP_GET_VARS[POST_POST_URL]) ? intval($HTTP_GET_VARS[POST_POST_URL]) : intval($HTTP_POST_VARS[POST_POST_URL]); + } + + if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) || isset($HTTP_POST_VARS[POST_TOPIC_URL]) ) + { + $topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]) ? intval($HTTP_GET_VARS[POST_TOPIC_URL]) : intval($HTTP_POST_VARS[POST_TOPIC_URL]); + } + + if ( isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL]) ) + { + $forum_id = isset($HTTP_GET_VARS[POST_FORUM_URL]) ? intval($HTTP_GET_VARS[POST_FORUM_URL]) : intval($HTTP_POST_VARS[POST_FORUM_URL]); + } + + if ( isset($HTTP_GET_VARS[POST_CAT_URL]) || isset($HTTP_POST_VARS[POST_CAT_URL]) ) + { + $cat_id = isset($HTTP_GET_VARS[POST_CAT_URL]) ? intval($HTTP_GET_VARS[POST_CAT_URL]) : intval($HTTP_POST_VARS[POST_CAT_URL]); + } + + if ( isset($HTTP_GET_VARS['selected_id']) || isset($HTTP_POST_VARS['selected_id']) ) + { + $selected_id = isset($HTTP_GET_VARS['selected_id']) ? $HTTP_GET_VARS['selected_id'] : $HTTP_POST_VARS['selected_id']; + $type = substr($selected_id, 0, 1); + $id = intval(substr($selected_id, 1)); + if (!empty($id)) switch ($type) + { + case POST_CAT_URL: + $cat_id = $id; + break; + case POST_FORUM_URL: + $forum_id = $id; + break; + case POST_TOPIC_URL: + $topic_id = $id; + break; + case POST_POST_URL: + if ( !defined('IN_PRIVMSG') ) + { + $post_id = $id; + break; + } + default: + break; + } + } + + // find the forum + if ( ($forum_id <= 0) && ($cat_id <= 0) ) + { + if ($post_id > 0) + { + $sql = "SELECT * FROM " . POSTS_TABLE . " WHERE post_id=$post_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Wasn\'t able to access posts', '', __LINE__, __FILE__, $sql); + } + if ( $row = $db->sql_fetchrow($result) ) + { + $forum_id = $row['forum_id']; + } + } + + if ($topic_id > 0) + { + $sql = "SELECT * FROM " . TOPICS_TABLE . " WHERE topic_id=$topic_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Wasn\'t able to access topics', '', __LINE__, __FILE__, $sql); + } + if ( $row = $db->sql_fetchrow($result) ) + { + $forum_id = $row['forum_id']; + } + } + } + + // is the categories hierarchy v 2 installed ? + $cat_hierarchy = function_exists(get_auth_keys); + + // get the ids (forums and cats) + $fids = array(); + if (!$cat_hierarchy) + { + if ($forum_id > 0) + { + // add the forum_id + $fids[] = POST_FORUM_URL . $forum_id; + + // get the cat_id + $sql = "SELECT * FROM " . FORUMS_TABLE . " WHERE forum_id=$forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Wasn\'t able to access forums', '', __LINE__, __FILE__, $sql); + } + if ( $row = $db->sql_fetchrow($result) ) + { + $cat_id = $row['cat_id']; + } + } + + // add the cat_id + if ($cat_id > 0) + { + $fids[] = POST_CAT_URL . $cat_id; + } + + // add the root level + $fids[] = 'Root'; + } + else + { + // categories hierarchy v 2 compliancy + $cur = 'Root'; + if ($forum_id > 0) + { + $cur = POST_FORUM_URL . $forum_id; + } + else if ($cat_id > 0) + { + $cur = POST_CAT_URL . $cat_id; + } + + // add start + $fids[] = $cur; + while ( ($cur != 'Root') && !empty($cur) ) + { + // get parent level + $cur = (isset($tree['main'][ $tree['keys'][$cur] ])) ? $tree['main'][ $tree['keys'][$cur] ] : 'Root'; + + // add the parent level + if ( !empty($cur) ) + { + $fids[] = $cur; + } + } + } + + // search if this file is part of a sub-template + $sub_tpl_file = ''; + $sub_css_file = ''; + $sub_img_file = ''; + $sub_img_path = ''; + $template_path = 'templates/'; + $template_name = substr( $this->root, strpos($this->root, $template_path) + strlen($template_path) ); + $real_root = $this->root; + if ( $board_config['version'] > '.0.5' ) + { + $real_root = @phpbb_realpath($this->root); + } + if (substr($filename, 0, 1) != '/') + { + $found = false; + $num_fids = count($fids); + for ($i = 0; !$found && ($i < $num_fids); $i++) + { + $key = $fids[$i]; + + // convert root into c0 category + if ( ($key == 'Root') || empty($key) ) + { + $key = POST_CAT_URL . '0'; + } + + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + + // set the filename + if ( empty($sub_tpl_file) && file_exists($root_template_path . '/' . $filename) ) + { + $found = true; + $sub_tpl_file = $sub_templates[$key]['dir'] . '/' . $filename; + break; + } + } + } + + // set the css file name + $found = false; + $num_fids = count($fids); + for ($i = 0; !$found && ($i < $num_fids); $i++) + { + $key = $fids[$i]; + + // convert root into c0 category + if ( ($key == 'Root') || empty($key) ) + { + $key = POST_CAT_URL . '0'; + } + + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( empty($sub_css_file) && isset($sub_templates[$key]['head_stylesheet']) && file_exists($root_template_path . '/' . $sub_templates[$key]['head_stylesheet']) ) + { + $found = true; + $sub_css_file = $sub_templates[$key]['dir'] . '/' . $sub_templates[$key]['head_stylesheet']; + break; + } + } + } + + // set the img file name + $found = false; + $num_fids = count($fids); + for ($i = 0; !$found && ($i < $num_fids); $i++) + { + $key = $fids[$i]; + + // convert root into c0 category + if ( ($key == 'Root') || empty($key) ) + { + $key = POST_CAT_URL . '0'; + } + + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( isset($sub_templates[$key]['imagefile']) && file_exists($root_template_path . '/' . $sub_templates[$key]['imagefile']) ) + { + $sub_img_path = $sub_templates[$key]['dir']; + $sub_img_file = $sub_templates[$key]['imagefile']; + + // send back the lowest level of the images file + $found = true; + $sub_template_key_image = $key; + break; + } + } + } + } + + // set the tpl file + if ( !empty($sub_tpl_file) ) + { + $filename = $sub_tpl_file; + } + + // set the css file + if ( !empty($sub_css_file) ) + { + $theme['head_stylesheet'] = $sub_css_file; + } + + // get the root level images + $key = POST_CAT_URL . '0'; + if ( isset($sub_templates[$key]) ) + { + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( isset($sub_templates[$key]['imagefile']) && file_exists($root_template_path . '/' . $sub_templates[$key]['imagefile']) ) + { + $sav_images = $images; + $images = array(); + @include($root_template_path . '/' . $sub_templates[$key]['imagefile']); + $img_lang = ( file_exists($root_template_path . '/images/lang_' . $board_config['default_lang']) ) ? $board_config['default_lang'] : 'english'; + foreach($images as $key => $value) + { + if ( !is_array($value) ) + { + $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value); + } + $sav_images[$key] = $images[$key]; + } + $images = $sav_images; + $sav_images = array(); + } + } + + // get the current images + if ( !empty($sub_template_key_image) && ($sub_template_key_image != POST_CAT_URL . '0') ) + { + $key = $sub_template_key_image; + + // get the sub-template path + $current_template_path = $template_path . $template_name . '/' . $sub_templates[$key]['dir']; + $root_template_path = $real_root . '/' . $sub_templates[$key]['dir']; + if ( isset($sub_templates[$key]['imagefile']) && file_exists($root_template_path . '/' . $sub_templates[$key]['imagefile']) ) + { + $sav_images = $images; + $images = array(); + @include($root_template_path . '/' . $sub_templates[$key]['imagefile']); + $img_lang = ( file_exists($root_template_path . '/images/lang_' . $board_config['default_lang']) ) ? $board_config['default_lang'] : 'english'; + foreach($images as $key => $value) + { + if ( !is_array($value) ) + { + $images[$key] = str_replace('{LANG}', 'lang_' . $img_lang, $value); + } + $sav_images[$key] = $images[$key]; + } + $images = $sav_images; + $sav_images = array(); + } + } + } + return $filename; + } + + /** + * Generates a full path+filename for the given filename, which can either + * be an absolute name, or a name relative to the rootdir for this Template + * object. + */ + function make_filename($filename, $xs_include = false) + { + if($this->subtemplates) + { + $filename = $this->subtemplates_make_filename($filename); + } + // Check replacements list + if(!$xs_include && isset($this->replace[$filename])) + { + $filename = $this->replace[$filename]; + } + // Check if it's an absolute or relative path. + if ((substr($filename, 0, 1) !== '/') && (substr($filename, 1, 1) !== ':')) + { + return $this->root . '/' . $filename; + } + else + { + return str_replace('\\', '/', $filename); + } + } + + /** + * Converts template filename to cache filename. + * Returns empty string if non-cachable (for tpl files outside of root dir). + * $file should be absolute filename + */ + function make_filename_cache($file) + { + $str = str_replace($this->cache_search, $this->cache_replace, $file); + if(substr($file, 0, $this->tpldir_len) !== $this->tpldir || empty($this->tpl)) + { + return $this->cachedir . XS_TPL_PREFIX2 . $str; + } + // removing not needed part + $file = substr($file, $this->tpldir_len, strlen($file)); + // creating filename + return $this->cachedir . XS_TPL_PREFIX . str_replace($this->cache_search, $this->cache_replace, $file); + } + + /** + * Sets the template filenames for handles. $filename_array + * should be a hash of handle => filename pairs. + */ + function set_filenames($filename_array) + { + if (!is_array($filename_array)) + { + return false; + } + + foreach($filename_array as $handle => $filename) + { + $this->set_filename($handle, $filename); + } + + return true; + } + + + /** + * Assigns template filename for handle. + */ + function set_filename($handle, $filename, $xs_include = false, $quiet = false) + { + global $board_config; + $can_cache = $this->use_cache; + if(strpos($filename, '..') !== false) + { + $can_cache = false; + } + $this->files[$handle] = $this->make_filename($filename, $xs_include); + $this->files_cache[$handle] = ''; + $this->files_cache2[$handle] = ''; + // check if we are in admin control panel and override extreme styles mod controls if needed + if(defined('XS_ADMIN_OVERRIDE') && XS_ADMIN_OVERRIDE === true && @function_exists('xs_admin_override')) + { + xs_admin_override(); + } + // checking if we have valid filename + if(!$this->files[$handle]) + { + if($xs_include || $quiet) + { + return false; + } + else + { + die("Template->make_filename(): Error - invalid template $filename"); + } + } + // creating cache filename + if($can_cache) + { + $this->files_cache2[$handle] = $this->make_filename_cache($this->files[$handle]); + if(@file_exists($this->files_cache2[$handle])) + { + $this->files_cache[$handle] = $this->files_cache2[$handle]; + } + } + // checking if tpl and/or php file exists + if(empty($this->files_cache[$handle]) && !@file_exists($this->files[$handle])) + { + // trying to load alternative filename (usually subSilver) + if(!empty($this->tpldef) && !empty($this->tpl) && ($this->tpldef !== $this->tpl)) + { + $this->files[$handle] = ''; + // save old configuration + $root = $this->root; + $tpl_name = $this->tpl; + // set temporary configuration + $this->root = $this->tpldir . $this->tpldef; + $this->tpl = $this->tpldef; + // recursively run set_filename + $res = $this->set_filename($handle, $filename, $xs_include, $quiet); + // restore old configuration + $this->root = $root; + $this->tpl = $tpl_name; + return $res; + } + if($quiet) + { + return false; + } + if($xs_include) + { + if($board_config['xs_warn_includes']) + { + die('Template->make_filename(): Error - included template file not found: ' . $filename); + } + return false; + } + else + { + die('Template->make_filename(): Error - template file not found: ' . $filename); + } + } + // checking if we should recompile cache + if(!empty($this->files_cache[$handle]) && !empty($board_config['xs_auto_recompile'])) + { + $cache_time = @filemtime($this->files_cache[$handle]); + if(@filemtime($this->files[$handle]) > $cache_time || $board_config['xs_template_time'] > $cache_time) + { + // file was changed. don't use cache file (will be recompled if configuration allowes it) + $this->files_cache[$handle] = ''; + } + } + return true; + } + + /** + * includes file or executes code + */ + function execute($filename, $code, $handle) + { + global $lang, $theme, $board_config; + $template = $theme['template_name']; + global $$template; + $theme_info = &$$template; + if($board_config['xs_add_comments'] && $handle) + { + echo ''; + } + if($filename) + { + include($filename); + } + else + { + eval($code); + } + if($board_config['xs_add_comments'] && $handle) + { + echo ''; + } + return true; + } + + /** + * Load the file for the handle, compile the file, + * and run the compiled code. This will print out + * the results of executing the template. + */ + function pparse($handle) + { + global $board_config; + // parsing header if there is one + if($this->preparse || $this->postparse) + { + $preparse = $this->preparse; + $postparse = $this->postparse; + $this->preparse = $this->postparse = ''; + if($preparse) + { + $this->pparse($preparse); + } + if($postparse) + { + $str = $handle; + $handle = $postparse; + $this->pparse($str); + } + } + // checking if handle exists + if (empty($this->files[$handle]) && empty($this->files_cache[$handle])) + { + die("Template->loadfile(): No files found for handle $handle"); + } + $this->xs_startup(); + $force_recompile = empty($this->uncompiled_code[$handle]) ? false : true; + // checking if php file exists. + if (!empty($this->files_cache[$handle]) && !$force_recompile) + { + // php file exists - running it instead of tpl + $this->execute($this->files_cache[$handle], '', $handle); + return true; + } + if (!$this->loadfile($handle)) + { + die("Template->pparse(): Couldn't load template file for handle $handle"); + } + // actually compile the template now. + if (empty($this->compiled_code[$handle])) + { + // Actually compile the code now. + if(!empty($this->files_cache2[$handle]) && empty($this->files_cache[$handle]) && !$force_recompile) + { + $this->compiled_code[$handle] = $this->compile2($this->uncompiled_code[$handle], $handle, $this->files_cache2[$handle]); + } + else + { + $this->compiled_code[$handle] = $this->compile2($this->uncompiled_code[$handle], '', ''); + } + } + // Run the compiled code. + if (empty($this->files_cache[$handle]) || $force_recompile) + { + $this->execute('', $this->compiled_code[$handle], $handle); + } + else + { + $this->execute($this->files_cache[$handle], '', $handle); + } + return true; + } + + /** + * Precompile file + */ + function precompile($template, $filename) + { + global $precompile_num, $board_config; + if(empty($precompile_num)) + { + $precompile_num = 0; + } + $precompile_num ++; + $handle = 'precompile_' . $precompile_num; + // save old configuration + $root = $this->root; + $tpl_name = $this->tpl; + $old_config = $this->use_cache; + $old_autosave = $this->auto_compile; + // set temporary configuration + $this->root = $this->tpldir . $template; + $this->tpl = $template; + $this->use_cache = 1; + $this->auto_compile = 1; + // set filename + $res = $this->set_filename($handle, $filename, true, true); + if(!$res || !$this->files_cache2[$handle]) + { + $this->root = $root; + $this->tpl = $tpl_name; + $this->use_cache = $old_config; + $this->auto_compile = $old_autosave; + return false; + } + $this->files_cache[$handle] = ''; + // load template + $res = $this->loadfile($handle); + if(!$res || empty($this->uncompiled_code[$handle])) + { + $this->root = $root; + $this->tpl = $tpl_name; + $this->use_cache = $old_config; + $this->auto_compile = $old_autosave; + return false; + } + // compile the code + $this->compile2($this->uncompiled_code[$handle], $handle, $this->files_cache2[$handle]); + // restore confirugation + $this->root = $root; + $this->tpl = $tpl_name; + $this->use_cache = $old_config; + $this->auto_compile = $old_autosave; + return true; + } + + /** + * Inserts the uncompiled code for $handle as the + * value of $varname in the root-level. This can be used + * to effectively include a template in the middle of another + * template. + * Note that all desired assignments to the variables in $handle should be done + * BEFORE calling this function. + */ + function assign_var_from_handle($varname, $handle) + { + ob_start(); + $res = $this->pparse($handle); + $this->vars[$varname] = ob_get_contents(); + ob_end_clean(); + return $res; + } + + /** + * Block-level variable assignment. Adds a new block iteration with the given + * variable assignments. Note that this should only be called once per block + * iteration. + */ + function assign_block_vars($blockname, $vararray) + { + if (strstr($blockname, '.')) + { + // Nested block. + $blocks = explode('.', $blockname); + $blockcount = sizeof($blocks) - 1; + + $str = &$this->_tpldata; + for($i = 0; $i < $blockcount; $i++) + { + $str = &$str[$blocks[$i].'.']; + $str = &$str[sizeof($str)-1]; + } + // Now we add the block that we're actually assigning to. + // We're adding a new iteration to this block with the given + // variable assignments. + $str[$blocks[$blockcount].'.'][] = $vararray; + } + else + { + // Top-level block. + // Add a new iteration to this block with the variable assignments + // we were given. + $this->_tpldata[$blockname.'.'][] = $vararray; + } + + return true; + } + + /** + * Root-level variable assignment. Adds to current assignments, overriding + * any existing variable assignment with the same name. + */ + function assign_vars($vararray) + { + foreach($vararray as $key => $val) + { + $this->vars[$key] = $val; + } + return true; + } + + /** + * Root-level variable assignment. Adds to current assignments, overriding + * any existing variable assignment with the same name. + */ + function assign_var($varname, $varval) + { + $this->vars[$varname] = $varval; + + return true; + } + + /** + * If not already done, load the file for the given handle and populate + * the uncompiled_code[] hash with its code. Do not compile. + */ + function loadfile($handle) + { + global $board_config; + // If cached file exists do nothing - it will be included via include() + if(!empty($this->files_cache[$handle])) + { + return true; + } + + // If the file for this handle is already loaded and compiled, do nothing. + if (!empty($this->uncompiled_code[$handle])) + { + return true; + } + + // If we don't have a file assigned to this handle, die. + if (empty($this->files[$handle])) + { + die("Template->loadfile(): No file specified for handle $handle"); + } + + $filename = $this->files[$handle]; + + $str = implode('', @file($filename)); + if (empty($str)) + { + die("Template->loadfile(): File $filename for handle $handle is empty"); + } + + $this->uncompiled_code[$handle] = $str; + + return true; + } + + + + /** + * Generates a reference to the given variable inside the given (possibly nested) + * block namespace. This is a string of the form: + * ' . $this->_tpldata['parent.'][$_parent_i]['$child1.'][$_child1_i]['$child2.'][$_child2_i]...['varname'] . ' + * It's ready to be inserted into an "echo" line in one of the templates. + * NOTE: expects a trailing "." on the namespace. + */ + function generate_block_varref($namespace, $varname, $use_isset = true) + { + // Strip the trailing period. + $namespace = substr($namespace, 0, strlen($namespace) - 1); + + // Get a reference to the data block for this namespace. + $varref = $this->generate_block_data_ref($namespace, true); + // Prepend the necessary code to stick this in an echo line. + + // Append the variable reference. + $varref .= '[\'' . $varname . '\']'; + + if($use_isset) + { + $varref = '<'.'?php echo isset(' . $varref . ') ? ' . $varref . ' : \'\'; ?'.'>'; + } + else + { + $varref = '<'.'?php echo ' . $varref . '; ?'.'>'; + } + + return $varref; + + } + + + /** + * Generates a reference to the array of data values for the given + * (possibly nested) block namespace. This is a string of the form: + * $this->_tpldata['parent.'][$_parent_i]['$child1.'][$_child1_i]['$child2.'][$_child2_i]...['$childN.'] + * + * If $include_last_iterator is true, then [$_childN_i] will be appended to the form shown above. + * NOTE: does not expect a trailing "." on the blockname. + */ + function generate_block_data_ref($blockname, $include_last_iterator, $defop = false) + { + // Get an array of the blocks involved. + $blocks = explode('.', $blockname); + $blockcount = sizeof($blocks) - 1; + if($defop) + { + $varref = '$this->_tpldata[\'DEFINE\']'; + // Build up the string with everything but the last child. + for ($i = 0; $i < $blockcount; $i++) + { + $varref .= "['" . $blocks[$i] . ".'][\$" . $blocks[$i] . '_i]'; + } + // Add the block reference for the last child. + $varref .= "['" . $blocks[$blockcount] . ".']"; + // Add the iterator for the last child if requried. + if ($include_last_iterator) + { + $varref .= '[$' . $blocks[$blockcount] . '_i]'; + } + return $varref; + } + if($include_last_iterator) + { + return '$'. $blocks[$blockcount]. '_item'; + } + else + { + return '$'. $blocks[$blockcount-1]. '_item[\''. $blocks[$blockcount]. '.\']'; + } + } + + function compile_code($filename, $code, $use_isset = false) + { + // $filename - file to load code from. used if $code is empty + // $code - tpl code + // $use_isset - if false then compiled code looks more beautiful and easier + // to understand and it adds error_reporting() to supress php warnings. + // if true then isset() is used to check variables instead of supressing + // php warnings. note: for extreme styles mod 2.x it works only for + // block variables and for usual variables its always true. + + // load code from file + if(!$code && !empty($filename)) + { + $code = @implode('', @file($filename)); + } + + // Replace phpBB 2.2 tags + $search = array('', ''); + $replace = array('<'.'?php ', ' ?'.'>'); + $code = str_replace($search, $replace, $code); + + // Break it up into lines and put " -->" back. + $code_lines = explode(' -->', $code); + $count = count($code_lines); + for ($i = 0; $i < ($count - 1); $i++) + { + $code_lines[$i] .= ' -->'; + } + + $block_nesting_level = 0; + $block_names = array(); + $block_names[0] = "."; + $block_items = array(); + $count_if = 0; + + // prepare array for compiled code + $compiled = array(); + $count_bugs = count($this->bugs); + + // array of switches + $sw = array(); + + // replace all short php tags + $new_code = array(); + $line_count = count($code_lines); + for($i=0; $i<$line_count; $i++) + { + $line = $code_lines[$i]; + $pos = strpos($line, ''; + $code_lines[$i] = substr($line, $pos + 2); + $i --; + } + $code_lines = $new_code; + + // main loop + $line_count = count($code_lines); + for($i=0; $i<$line_count; $i++) + { + $line = $code_lines[$i]; + // reset keyword type + $keyword_type = XS_TAG_NONE; + // check if we have valid keyword in current line + $pos1 = strpos($line, '', $pos1); + if($pos2 !== false) + { + // find end of keyword in comment + $pos3 = strpos($line, ' ', $pos1 + 5); + if($pos3 !== false && $pos3 <= $pos2) + { + $keyword = substr($line, $pos1 + 5, $pos3 - $pos1 - 5); + // check keyword against list of supported keywords. case-sensitive + if($keyword === 'BEGIN') + { + $keyword_type = XS_TAG_BEGIN; + } + elseif($keyword === 'END') + { + $keyword_type = XS_TAG_END; + } + elseif($keyword === 'INCLUDE') + { + $keyword_type = XS_TAG_INCLUDE; + } + elseif($keyword === 'IF') + { + $keyword_type = XS_TAG_IF; + } + elseif($keyword === 'ELSE') + { + $keyword_type = XS_TAG_ELSE; + } + elseif($keyword === 'ELSEIF') + { + $keyword_type = XS_TAG_ELSEIF; + } + elseif($keyword === 'ENDIF') + { + $keyword_type = XS_TAG_ENDIF; + } + elseif($keyword === 'DEFINE') + { + $keyword_type = XS_TAG_DEFINE; + } + elseif($keyword === 'UNDEFINE') + { + $keyword_type = XS_TAG_UNDEFINE; + } + } + } + if(!$keyword_type) + { + // not valid keyword. process the rest of line + $compiled[] = $this->_compile_text(substr($line, 0, $pos1 + 4), $use_isset); + $code_lines[$i] = substr($line, $pos1 + 4); + $i --; + continue; + } + // remove code before keyword + if($pos1 > 0) + { + $compiled[] = $this->_compile_text(substr($line, 0, $pos1), $use_isset); + } + // remove keyword + $keyword_str = substr($line, $pos1, $pos2 - $pos1 + 4); + $params_str = $pos2 == $pos3 ? '' : substr($line, $pos3 + 1, $pos2 - $pos3 - 1); + $code_lines[$i] = substr($line, $pos2 + 4); + $i--; + // Check keywords + + /* + * + */ + if($keyword_type == XS_TAG_BEGIN) + { + $params = explode(' ', $params_str); + $num_params = count($params); + // get variable name + if($num_params == 1) + { + $var = $params[0]; + } + elseif($num_params == 2) + { + if($params[0] === '') + { + $var = $params[1]; + } + elseif($params[1] === '') + { + $var = $params[0]; + } + else + { + // invalid tag + $compiled[] = $keyword_str; + continue; + } + } + else + { + // invalid tag + $compiled[] = $keyword_str; + continue; + } + // check variable for matching end + if($this->xs_check_switches) + { + $found = 0; + $str = ''; + for ($j = $i+1; ($j < $line_count) && !$found; $j++) + { + $pos = strpos($code_lines[$j], $str); + if($pos !== false) + { + $found = 1; + $found_var = $var; + } + } + if(!$found && ($this->xs_check_switches == 1)) + { + // checking list of known buggy switches + $item = -1; + for($j=0; $j<$count_bugs; $j++) + { + if($this->bugs[$j][0] === $var) + { + $item = $j; + } + } + if($item >= 0) + { + $str1 = ''; + for ($j = $i+1; ($j < $line_count) && !$found; $j++) + { + $pos = strpos($code_lines[$j], $str1); + if($pos !== false) + { + $found_var = $this->bugs[$item][1]; + $found = 1; + $code_lines[$j] = str_replace($str, $str1, $code_lines[$j]); + } + } + } + } + if(!$found) + { + $compiled[] = $keyword_str; + continue; + } + // adding to list of switches + if(isset($sw[$found_var])) + { + $sw[$found_var] ++; + } + else + { + $sw[$found_var] = 1; + } + } + // adding code + $block_nesting_level++; + $block_names[$block_nesting_level] = $var; + if(isset($block_items[$var])) + { + $block_items[$var] ++; + } + else + { + $block_items[$var] = 1; + } + if ($block_nesting_level < 2) + { + // Block is not nested. + $line = '<'."?php\n\n"; + if($use_isset) + { + $line .= '$'. $var. '_count = ( isset($this->_tpldata[\''. $var. '.\']) ) ? sizeof($this->_tpldata[\''. $var. '.\']) : 0;'; + } + else + { + $line .= '$'. $var. '_count = sizeof($this->_tpldata[\''. $var. '.\']);'; + } + $line .= "\n" . 'for ($'. $var. '_i = 0; $'. $var. '_i < $'. $var. '_count; $'. $var. '_i++)'; + $line .= "\n". '{'. "\n"; + $line .= ' $'. $var. '_item = &$this->_tpldata[\''. $var. '.\'][$'. $var. '_i];'."\n"; + $line .= " \${$var}_item['S_ROW_COUNT'] = \${$var}_i;\n"; + $line .= " \${$var}_item['S_NUM_ROWS'] = \${$var}_count;\n"; + $line .= "\n?".">"; + } + else + { + // This block is nested. + // Generate a namespace string for this block. + $namespace = implode('.', $block_names); + // strip leading period from root level.. + $namespace = substr($namespace, 2); + // Get a reference to the data array for this block that depends on the + // current indices of all parent blocks. + $varref = $this->generate_block_data_ref($namespace, false); + // Create the for loop code to iterate over this block. + $line = '<'."?php\n\n"; + if($use_isset) + { + $line .= '$'. $var. '_count = ( isset('. $varref. ') ) ? sizeof('. $varref. ') : 0;'; + } + else + { + $line .= '$'. $var. '_count = sizeof('. $varref. ');'; + } + $line .= "\n". 'for ($'. $var. '_i = 0; $'. $var. '_i < $'. $var. '_count; $'. $var. '_i++)'; + $line .= "\n". '{'. "\n"; + $line .= ' $'. $var. '_item = &'. $varref. '[$'. $var. '_i];'."\n"; + $line .= " \${$var}_item['S_ROW_COUNT'] = \${$var}_i;\n"; + $line .= " \${$var}_item['S_NUM_ROWS'] = \${$var}_count;\n"; + $line .= "\n?".">"; + } + $compiled[] = $line; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_END) + { + $params = explode(' ', $params_str); + $num_params = count($params); + if($num_params == 1) + { + $var = $params[0]; + } + elseif($num_params == 2 && $params[0] === '') + { + $var = $params[1]; + } + elseif($num_params == 2 && $params[1] === '') + { + $var = $params[0]; + } + else + { + $compiled[] = $keyword_str; + continue; + } + if($this->xs_check_switches) + { + // checking if this switch was opened + if(!isset($sw[$var]) || ($sw[$var] < 1)) + { + // there is no opening switch + $compiled[] = $keyword_str; + continue; + } + $sw[$var] --; + } + // We have the end of a block. + $line = '<'."?php\n\n"; + $line .= '} // END ' . $var . "\n\n"; + $line .= 'if(isset($' . $var . '_item)) { unset($' . $var . '_item); } '; + $line .= "\n\n?".">"; + if(isset($block_items[$var])) + { + $block_items[$var] --; + } + else + { + $block_items[$var] = -1; + } + unset($block_names[$block_nesting_level]); + $block_nesting_level--; + $compiled[] = $line; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_INCLUDE) + { + $params = explode(' ', $params_str); + $num_params = count($params); + if($num_params != 1) + { + $compiled[] = $keyword_str; + continue; + } + $line = '<'.'?php '; + $line .= ' $this->set_filename(\'xs_include' . $this->include_count . '\', \'' . $params_str .'\', true); '; + $line .= ' $this->pparse(\'xs_include' . $this->include_count . '\'); '; + $line .= ' ?'.'>'; + $this->include_count ++; + $compiled[] = $line; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_IF || $keyword_type == XS_TAG_ELSEIF) + { + if(!$count_if) + { + $keyword_type = XS_TAG_IF; + } + $str = $this->compile_tag_if($params_str, $keyword_type == XS_TAG_IF ? false : true); + if($str) + { + $compiled[] = ''; + if($keyword_type == XS_TAG_IF) + { + $count_if ++; + } + } + else + { + $compiled[] = $keyword_str; + } + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_ELSE && $count_if > 0) + { + $compiled[] = ''; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_ENDIF && $count_if > 0) + { + $compiled[] = ''; + $count_if --; + continue; + } + /* + * + */ + if($keyword_type == XS_TAG_DEFINE) + { + $str = $this->compile_tag_define($params_str); + if($str) + { + $compiled[] = ''; + } + else + { + $compiled[] = $keyword_str; + } + } + /* + * + */ + if($keyword_type == XS_TAG_UNDEFINE) + { + $str = $this->compile_tag_undefine($params_str); + if($str) + { + $compiled[] = ''; + } + else + { + $compiled[] = $keyword_str; + } + } + } + + // bring it back into a single string. + $code_header = ''; + $code_footer = ''; + if(!$use_isset) + { + $code_header = "<". "?php\n\$old_level = @error_reporting(E_ERROR | E_WARNING | E_PARSE); \n?".">"; + $code_footer = '<'."?php @error_reporting(\$old_level); ?".'>'; + } + + return $code_header . implode('', $compiled) . $code_footer; + } + + /* + * Compile code between tags + */ + function _compile_text($code, $use_isset) + { + if(strlen($code) < 3) + { + return $code; + } + // change template varrefs into PHP varrefs + // This one will handle varrefs WITH namespaces + $varrefs = array(); + preg_match_all('#\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}#is', $code, $varrefs); + $varcount = sizeof($varrefs[1]); + $search = array(); + $replace = array(); + for ($i = 0; $i < $varcount; $i++) + { + $namespace = $varrefs[1][$i]; + $varname = $varrefs[3][$i]; + $new = $this->generate_block_varref($namespace, $varname, $use_isset); + $search[] = $varrefs[0][$i]; + $replace[] = $new; + } + if(count($search) > 0) + { + $code = str_replace($search, $replace, $code); + } + // This will handle the remaining root-level varrefs + $code = preg_replace('#\{([a-z0-9\-_]*?)\}#is', '<'.'?php echo isset($this->vars[\'\1\']) ? $this->vars[\'\1\'] : $this->lang(\'\1\'); ?'.'>', $code); + $code = preg_replace('#\{\$([a-z0-9\-_]*?)\}#is', '<'.'?php echo isset($this->_tpldata[\'DEFINE\'][\'.\'][\'\\1\']) ? $this->_tpldata[\'DEFINE\'][\'.\'][\'\\1\'] : \'\'; ?'.'>', $code); + return $code; + } + + // + // Compile IF tags - much of this is from Smarty with + // some adaptions for our block level methods + // + function compile_tag_if($tag_args, $elseif) + { + /* Tokenize args for 'if' tag. */ + preg_match_all('/(?: + "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | + \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | + [(),] | + [^\s(),]+)/x', $tag_args, $match); + + $tokens = $match[0]; + $is_arg_stack = array(); + + for ($i = 0; $i < count($tokens); $i++) + { + $token = &$tokens[$i]; + + switch ($token) + { + case '!': + case '%': + case '!==': + case '==': + case '===': + case '>': + case '<': + case '!=': + case '<>': + case '<<': + case '>>': + case '<=': + case '>=': + case '&&': + case '||': + case '|': + case '^': + case '&': + case '~': + case ')': + case ',': + case '+': + case '-': + case '*': + case '/': + case '@': + break; + + case 'eq': + $token = '=='; + break; + + case 'ne': + case 'neq': + $token = '!='; + break; + + case 'lt': + $token = '<'; + break; + + case 'le': + case 'lte': + $token = '<='; + break; + + case 'gt': + $token = '>'; + break; + + case 'ge': + case 'gte': + $token = '>='; + break; + + case 'and': + $token = '&&'; + break; + + case 'or': + $token = '||'; + break; + + case 'not': + $token = '!'; + break; + + case 'mod': + $token = '%'; + break; + + case '(': + array_push($is_arg_stack, $i); + break; + + case 'is': + $is_arg_start = ($tokens[$i-1] == ')') ? array_pop($is_arg_stack) : $i-1; + $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start)); + + $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i+1)); + + array_splice($tokens, $is_arg_start, count($tokens), $new_tokens); + + $i = $is_arg_start; + + default: + if (preg_match('#^(([a-z0-9\-_]+?\.)+?)?(\$)?([A-Z]+[A-Z0-9\-_]+)$#s', $token, $varrefs)) + { + $token = (!empty($varrefs[1])) ? $this->generate_block_data_ref(substr($varrefs[1], 0, -1), true, $varrefs[3]) . '[\'' . $varrefs[4] . '\']' : (($varrefs[3]) ? '$this->_tpldata[\'DEFINE\'][\'.\'][\'' . $varrefs[4] . '\']' : '$this->vars[\'' . $varrefs[4] . '\']'); + } + break; + } + } + + $code = (($elseif) ? '} elseif (' : 'if (') . (implode(' ', $tokens) . ') { '); + + return $code; + } + + // This is from Smarty + function _parse_is_expr($is_arg, $tokens) + { + $expr_end = 0; + $negate_expr = false; + + if (($first_token = array_shift($tokens)) == 'not') + { + $negate_expr = true; + $expr_type = array_shift($tokens); + } + else + { + $expr_type = $first_token; + } + + switch ($expr_type) + { + case 'even': + if (@$tokens[$expr_end] == 'by') + { + $expr_end++; + $expr_arg = $tokens[$expr_end++]; + $expr = "!(($is_arg / $expr_arg) % $expr_arg)"; + } + else + { + $expr = "!($is_arg % 2)"; + } + break; + + case 'odd': + if (@$tokens[$expr_end] == 'by') + { + $expr_end++; + $expr_arg = $tokens[$expr_end++]; + $expr = "(($is_arg / $expr_arg) % $expr_arg)"; + } + else + { + $expr = "($is_arg % 2)"; + } + break; + + case 'div': + if (@$tokens[$expr_end] == 'by') + { + $expr_end++; + $expr_arg = $tokens[$expr_end++]; + $expr = "!($is_arg % $expr_arg)"; + } + break; + + default: + break; + } + + if ($negate_expr) + { + $expr = "!($expr)"; + } + + array_splice($tokens, 0, $expr_end, $expr); + + return $tokens; + } + + + function compile_tag_define($tag_args) + { + preg_match('#^(([a-z0-9\-_]+?\.)+?)?\$([A-Z][A-Z0-9_\-]*?) = (\'?)(.*?)(\'?)$#', $tag_args, $match); + + if (empty($match[3]) || empty($match[5])) + { + return ''; + } + + // Are we a string? + if ($match[4] && $match[6]) + { + $match[5] = "'" . addslashes(str_replace(array('\\\'', '\\\\'), array('\'', '\\'), $match[5])) . "'"; + } + else + { + preg_match('#(true|false|\.)#i', $match[5], $type); + + switch (strtolower($type[1])) + { + case 'true': + case 'false': + $match[5] = strtoupper($match[5]); + break; + case '.'; + $match[5] = doubleval($match[5]); + break; + default: + $match[5] = intval($match[5]); + break; + } + } + + return (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[3] . '\']' : '$this->_tpldata[\'DEFINE\'][\'.\'][\'' . $match[3] . '\']') . ' = ' . $match[5] . ';'; + } + + function compile_tag_undefine($tag_args) + { + preg_match('#^(([a-z0-9\-_]+?\.)+?)?\$([A-Z][A-Z0-9_\-]*?)$#', $tag_args, $match); + if (empty($match[3])) + { + return ''; + } + return 'unset(' . (($match[1]) ? $this->generate_block_data_ref(substr($match[1], 0, -1), true, true) . '[\'' . $match[3] . '\']' : '$this->_tpldata[\'DEFINE\'][\'.\'][\'' . $match[3] . '\']') . ');'; + } + + /** + * Compiles code and writes to cache if needed + */ + function compile2($code, $handle, $cache_file) + { + $code = $this->compile_code('', $code, XS_USE_ISSET); + if($cache_file && !empty($this->use_cache) && !empty($this->auto_compile)) + { + $res = $this->write_cache($cache_file, $code); + if($handle && $res) + { + $this->files_cache[$handle] = $cache_file; + } + } + $code = '?'.'>'.$code.'<'."?php\n"; + return $code; + } + + /** + * Compiles the given string of code, and returns + * the result in a string. + * If "do_not_echo" is true, the returned code will not be directly + * executable, but can be used as part of a variable assignment + * for use in assign_code_from_handle(). + * This function isn't used and kept only for compatibility with original template.php + */ + function compile($code, $do_not_echo = false, $retvar = '') + { + $code = ' ?'.'>' . $this->compile_code('', $code, true) . '<'."?php \n"; + if($do_not_echo) + { + $code = "ob_start();\n". $code. "\n\${$retvar} = ob_get_contents();\nob_end_clean();\n"; + } + return $code; + } + + /** + * Write cache to disk + */ + function write_cache($filename, $code) + { + // check if cache is writable + if(!$this->cache_writable) + { + return false; + } + // check if filename is valid + if(substr($filename, 0, strlen($this->cachedir)) !== $this->cachedir) + { + return false; + } + // try to open file + $file = @fopen($filename, 'w'); + if(!$file) + { + // try to create directories + $dir = substr($filename, strlen($this->cachedir), strlen($filename)); + $dirs = explode('/', $dir); + $path = $this->cachedir; + @umask(0); + if(!@is_dir($path)) + { + if(!@mkdir($path)) + { + $this->cache_writable = 0; + return false; + } + else + { + @chmod($path, 0777); + } + } + $count = count($dirs); + if($count > 0) + for($i=0; $i<$count-1; $i++) + { + if($i>0) + { + $path .= '/'; + } + $path .= $dirs[$i]; + if(!@is_dir($path)) + { + if(!@mkdir($path)) + { + $this->cache_writable = 0; + return false; + } + else + { + @chmod($path, 0777); + } + } + } + // try to open file again after directories were created + $file = @fopen($filename, 'w'); + } + if(!$file) + { + $this->cache_writable = 0; + return false; + } + fputs($file, ""); + fputs($file, $code); + fclose($file); + @chmod($filename, 0777); + return true; + } + + function xs_startup() + { + global $phpEx, $board_config, $phpbb_root_path; + if(empty($this->xs_started)) + { // adding predefined variables + $this->xs_started = 1; + // file extension with session ID (eg: "php?sid=123&" or "php?") + // can be used to make custom URLs without modding phpbb + // contains "&" or "?" at the end so you can easily append paramenters + $php = append_sid($phpEx); + if(strpos($php, '?')) + { + $php .= '&'; + } + else + { + $php .= '?'; + } + $this->vars['PHP'] = $php; + // adding language variable (eg: "english" or "german") + // can be used to make truly multi-lingual templates + $this->vars['LANG'] = $board_config['default_lang']; + // adding current template + $tpl = $this->root . '/'; // $phpbb_root_path . 'templates/' . $this->tpl . '/'; + if(substr($tpl, 0, 2) === './') + { + $tpl = substr($tpl, 2, strlen($tpl)); + } + $this->vars['TEMPLATE'] = $tpl; + $this->vars['TEMPLATE_NAME'] = $this->tpl; + $this->_tpldata['switch_xs_enabled.'] = array(array('version' => $this->xs_versiontxt)); + } + } + + /** + * Checks for empty variable and shows language variable if possible. + */ + function lang($var) + { + global $lang; + if(substr($var, 0, 2) === 'L_') + { + $var = substr($var, 2); + // check variable as it is + if(isset($lang[$var])) + { + return $lang[$var]; + } + // check variable in lower case + if(isset($lang[strtolower($var)])) + { + return $lang[strtolower($var)]; + } + // check variable with first letter in upper case + $str = ucfirst(strtolower($var)); + if(isset($lang[$str])) + { + return $lang[$str]; + } + return ''; //str_replace('_', ' ', $var); + } + return ''; + } + + // + // + // Functions added for USERGROUP MOD (optimized) + // + // + function append_var_from_handle_to_block($blockname, $varname, $handle) + { + $this->assign_var_from_handle('_tmp', $handle); + // assign the value of the generated variable to the given varname. + $this->append_block_vars($blockname, array($varname => $this->vars['_tmp'])); + return true; + } + + function append_block_vars($blockname, $vararray) + { + if(strstr($blockname, '.')) + { + // Nested block. + $blocks = explode('.', $blockname); + $blockcount = sizeof($blocks) - 1; + $str = &$this->_tpldata; + for($i = 0; $i < $blockcount; $i++) + { + $str = &$str[$blocks[$i].'.']; + $str = &$str[sizeof($str)-1]; + } + // Now we add the block that we're actually assigning to. + // We're adding a new iteration to this block with the given + // variable assignments. + $str = &$str[$blocks[$blockcount].'.']; + $count = sizeof($str) - 1; + if($count >= 0) + { + // adding only if there is at least one item + $str[$count] = array_merge($str[$count], $vararray); + } + } + else + { + // Top-level block. + // Add a new iteration to this block with the variable assignments + // we were given. + $str = &$this->_tpldata[$blockname.'.']; + $count = sizeof($str) - 1; + if($count >= 0) + { + // adding only if there is at least one item + $str[$count] = array_merge($str[$count], $vararray); + } + } + return true; + } + + /* + * Flush a root level block, so it becomes empty. + */ + function flush_block_vars($blockname) + { + // Top-level block. + // flush a existing block we were given. + $current_iteration = sizeof($this->_tpldata[$blockname . '.']) - 1; + unset($this->_tpldata[$blockname . '.']); + return true; + } +} + +function xs_switch($tpl, $name) +{ + return (isset($tpl->_tpldata[$name.'.']) && count($tpl->_tpldata[$name.'.']) > 0); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/topic_review.php b/phpBB2_old/includes/topic_review.php new file mode 100644 index 0000000..1597f20 --- /dev/null +++ b/phpBB2_old/includes/topic_review.php @@ -0,0 +1,228 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); + } + + if ( !($forum_row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); + } + $db->sql_freeresult($result); + + $forum_id = $forum_row['forum_id']; + $topic_title = $forum_row['topic_title']; + + // + // Start session management + // + $userdata = session_pagestart($user_ip, $forum_id); + init_userprefs($userdata); + // + // End session management + // + + $is_auth = array(); + $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row); + + if ( !$is_auth['auth_read'] ) + { + message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type'])); + } + } + + // + // Define censored word matches + // + if ( empty($orig_word) && empty($replacement_word) ) + { + $orig_word = array(); + $replacement_word = array(); + + obtain_word_list($orig_word, $replacement_word); + } + + // + // Dump out the page header and load viewtopic body template + // + if ( !$is_inline_review ) + { + $gen_simple_header = TRUE; + + $page_title = $lang['Topic_review'] . ' - ' . $topic_title; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'reviewbody' => 'posting_topic_review.tpl') + ); + } + + // + // Go ahead and pull all data for this topic + // + $sql = "SELECT u.username, u.user_id, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + AND p.poster_id = u.user_id + AND p.post_id = pt.post_id + ORDER BY p.post_time DESC + LIMIT " . $board_config['posts_per_page']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post/user information', '', __LINE__, __FILE__, $sql); + } + + // + // Okay, let's do the loop, yeah come on baby let's do the loop + // and it goes like this ... + // + if ( $row = $db->sql_fetchrow($result) ) + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + + $i = 0; + do + { + $poster_id = $row['user_id']; + $poster = $row['username']; + + $post_date = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']); + + // + // Handle anon users posting with usernames + // + if( $poster_id == ANONYMOUS && $row['post_username'] != '' ) + { + $poster = $row['post_username']; + $poster_rank = $lang['Guest']; + } + elseif ( $poster_id == ANONYMOUS ) + { + $poster = $lang['Guest']; + $poster_rank = ''; + } + + $post_subject = ( $row['post_subject'] != '' ) ? $row['post_subject'] : ''; + + $message = $row['post_text']; + $bbcode_uid = $row['bbcode_uid']; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] && $row['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $message); + } + + if ( $bbcode_uid != "" ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + + $message = make_clickable($message); + + if ( count($orig_word) ) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + $message = preg_replace($orig_word, $replacement_word, $message); + } + + if ( $board_config['allow_smilies'] && $row['enable_smilies'] ) + { + $message = smilies_pass($message); + } + + $message = str_replace("\n", '
    ', $message); + + // + // Again this will be handled by the templating + // code at some point + // + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + + 'MINI_POST_IMG' => $mini_post_img, + 'POSTER_NAME' => $poster, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + + 'L_MINI_POST_ALT' => $mini_post_alt) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + } + else + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist', '', __LINE__, __FILE__, $sql); + } + $db->sql_freeresult($result); + + $template->assign_vars(array( + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_POSTED' => $lang['Posted'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_TOPIC_REVIEW' => $lang['Topic_review']) + ); + + if ( !$is_inline_review ) + { + $template->pparse('reviewbody'); + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } +} + +?> diff --git a/phpBB2_old/includes/usercp_activate.php b/phpBB2_old/includes/usercp_activate.php new file mode 100644 index 0000000..c769c40 --- /dev/null +++ b/phpBB2_old/includes/usercp_activate.php @@ -0,0 +1,107 @@ +sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql); +} + +if ( $row = $db->sql_fetchrow($result) ) +{ + if ( $row['user_active'] && trim($row['user_actkey']) == '' ) + { + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Already_activated']); + } + else if ((trim($row['user_actkey']) == trim($HTTP_GET_VARS['act_key'])) && (trim($row['user_actkey']) != '')) + { + $sql_update_pass = ( $row['user_newpasswd'] != '' ) ? ", user_password = '" . str_replace("\'", "''", $row['user_newpasswd']) . "', user_newpasswd = ''" : ''; + + $sql = "UPDATE " . USERS_TABLE . " + SET user_active = 1, user_actkey = ''" . $sql_update_pass . " + WHERE user_id = " . $row['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql_update); + } + + if ( intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $sql_update_pass == '' ) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('admin_welcome_activated', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['Account_activated_subject']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => $row['username'], + 'PASSWORD' => $password_confirm, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '') + ); + $emailer->send(); + $emailer->reset(); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Account_active_admin']); + } + else + { + $template->assign_vars(array( + 'META' => '') + ); + + $message = ( $sql_update_pass == '' ) ? $lang['Account_active'] : $lang['Password_activated']; + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + message_die(GENERAL_MESSAGE, $lang['Wrong_activation']); + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['No_such_user']); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/usercp_avatar.php b/phpBB2_old/includes/usercp_avatar.php new file mode 100644 index 0000000..b95f27d --- /dev/null +++ b/phpBB2_old/includes/usercp_avatar.php @@ -0,0 +1,345 @@ +' . $lang['Avatar_filetype'] : $lang['Avatar_filetype']; + break; + } + + return false; +} + +function user_avatar_delete($avatar_type, $avatar_file) +{ + global $board_config, $userdata; + + if ( $avatar_type == USER_AVATAR_UPLOAD && $avatar_file != '' ) + { + if ( @file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $avatar_file)) ) + { + @unlink('./' . $board_config['avatar_path'] . '/' . $avatar_file); + } + } + + return ", user_avatar = '', user_avatar_type = " . USER_AVATAR_NONE; +} + +function user_avatar_gallery($mode, &$error, &$error_msg, $avatar_filename) +{ + global $board_config; + if ( file_exists(@phpbb_realpath($board_config['avatar_gallery_path'] . '/' . $avatar_filename)) && ($mode == 'editprofile') ) + { + $return = ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_GALLERY; + } + else + { + $return = ''; + } + return $return; +} + +function user_avatar_url($mode, &$error, &$error_msg, $avatar_filename) +{ + if ( !preg_match('#^(http)|(ftp):\/\/#i', $avatar_filename) ) + { + $avatar_filename = 'http://' . $avatar_filename; + } + + if ( !preg_match("#^((ht|f)tp://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png))$)#is", $avatar_filename) ) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $lang['Wrong_remote_avatar_format'] : $lang['Wrong_remote_avatar_format']; + return; + } + + return ( $mode == 'editprofile' ) ? ", user_avatar = '" . str_replace("\'", "''", $avatar_filename) . "', user_avatar_type = " . USER_AVATAR_REMOTE : ''; + +} + +function user_avatar_upload($mode, $avatar_mode, &$current_avatar, &$current_type, &$error, &$error_msg, $avatar_filename, $avatar_realname, $avatar_filesize, $avatar_filetype) +{ + global $board_config, $db, $lang; + + $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + + if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $avatar_filename, $url_ary) ) + { + if ( empty($url_ary[4]) ) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $lang['Incomplete_URL'] : $lang['Incomplete_URL']; + return; + } + + $base_get = '/' . $url_ary[4]; + $port = ( !empty($url_ary[3]) ) ? $url_ary[3] : 80; + + if ( !($fsock = @fsockopen($url_ary[2], $port, $errno, $errstr)) ) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $lang['No_connection_URL'] : $lang['No_connection_URL']; + return; + } + + @fputs($fsock, "GET $base_get HTTP/1.1\r\n"); + @fputs($fsock, "HOST: " . $url_ary[2] . "\r\n"); + @fputs($fsock, "Connection: close\r\n\r\n"); + + unset($avatar_data); + while( !@feof($fsock) ) + { + $avatar_data .= @fread($fsock, $board_config['avatar_filesize']); + } + @fclose($fsock); + + if (!preg_match('#Content-Length\: ([0-9]+)[^ /][\s]+#i', $avatar_data, $file_data1) || !preg_match('#Content-Type\: image/[x\-]*([a-z]+)[\s]+#i', $avatar_data, $file_data2)) + { + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $lang['File_no_data'] : $lang['File_no_data']; + return; + } + + $avatar_filesize = $file_data1[1]; + $avatar_filetype = $file_data2[1]; + + if ( !$error && $avatar_filesize > 0 && $avatar_filesize < $board_config['avatar_filesize'] ) + { + $avatar_data = substr($avatar_data, strlen($avatar_data) - $avatar_filesize, $avatar_filesize); + + $tmp_path = ( !@$ini_val('safe_mode') ) ? '/tmp' : './' . $board_config['avatar_path'] . '/tmp'; + $tmp_filename = tempnam($tmp_path, uniqid(rand()) . '-'); + + $fptr = @fopen($tmp_filename, 'wb'); + $bytes_written = @fwrite($fptr, $avatar_data, $avatar_filesize); + @fclose($fptr); + + if ( $bytes_written != $avatar_filesize ) + { + @unlink($tmp_filename); + message_die(GENERAL_ERROR, 'Could not write avatar file to local storage. Please contact the board administrator with this message', '', __LINE__, __FILE__); + } + + list($width, $height) = @getimagesize($tmp_filename); + } + else + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $l_avatar_size : $l_avatar_size; + } + } + else if ( ( file_exists(@phpbb_realpath($avatar_filename)) ) && preg_match('/\.(jpg|jpeg|gif|png)$/i', $avatar_realname) ) + { + if ( $avatar_filesize <= $board_config['avatar_filesize'] && $avatar_filesize > 0 ) + { + preg_match('#image\/[x\-]*([a-z]+)#', $avatar_filetype, $avatar_filetype); + $avatar_filetype = $avatar_filetype[1]; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $l_avatar_size : $l_avatar_size; + return; + } + + list($width, $height) = @getimagesize($avatar_filename); + } + + if ( !($imgtype = check_image_type($avatar_filetype, $error, $error_msg)) ) + { + return; + } + + if ( $width <= $board_config['avatar_max_width'] && $height <= $board_config['avatar_max_height'] ) + { + $new_filename = uniqid(rand()) . $imgtype; + + if ( $mode == 'editprofile' && $current_type == USER_AVATAR_UPLOAD && $current_avatar != '' ) + { + if ( file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $current_avatar)) ) + { + @unlink('./' . $board_config['avatar_path'] . '/' . $current_avatar); + } + } + + if( $avatar_mode == 'remote' ) + { + @copy($tmp_filename, './' . $board_config['avatar_path'] . "/$new_filename"); + @unlink($tmp_filename); + } + else + { + if ( @$ini_val('open_basedir') != '' ) + { + if ( @phpversion() < '4.0.3' ) + { + message_die(GENERAL_ERROR, 'open_basedir is set and your PHP version does not allow move_uploaded_file', '', __LINE__, __FILE__); + } + + $move_file = 'move_uploaded_file'; + } + else + { + $move_file = 'copy'; + } + + $move_file($avatar_filename, './' . $board_config['avatar_path'] . "/$new_filename"); + } + + @chmod('./' . $board_config['avatar_path'] . "/$new_filename", 0777); + + $avatar_sql = ( $mode == 'editprofile' ) ? ", user_avatar = '$new_filename', user_avatar_type = " . USER_AVATAR_UPLOAD : "'$new_filename', " . USER_AVATAR_UPLOAD; + } + else + { + $l_avatar_size = sprintf($lang['Avatar_imagesize'], $board_config['avatar_max_width'], $board_config['avatar_max_height']); + + $error = true; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $l_avatar_size : $l_avatar_size; + } + + return $avatar_sql; +} + +function display_avatar_gallery($mode, &$category, &$user_id, &$email, &$current_email, &$coppa, &$username, &$email, &$new_password, &$cur_password, &$password_confirm, &$icq, &$aim, &$msn, &$yim, &$website, &$location, &$occupation, &$interests, &$signature, &$viewemail, &$notifypm, &$popup_pm, &$notifyreply, &$attachsig, &$allowhtml, &$allowbbcode, &$allowsmilies, &$hideonline, &$style, &$language, &$timezone, &$dateformat, &$session_id) +{ + global $board_config, $db, $template, $lang, $images, $theme; + global $phpbb_root_path, $phpEx; + + $dir = @opendir($board_config['avatar_gallery_path']); + + $avatar_images = array(); + while( $file = @readdir($dir) ) + { + if( $file != '.' && $file != '..' && !is_file($board_config['avatar_gallery_path'] . '/' . $file) && !is_link($board_config['avatar_gallery_path'] . '/' . $file) ) + { + $sub_dir = @opendir($board_config['avatar_gallery_path'] . '/' . $file); + + $avatar_row_count = 0; + $avatar_col_count = 0; + while( $sub_file = @readdir($sub_dir) ) + { + if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) ) + { + $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file; + $avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file))); + + $avatar_col_count++; + if( $avatar_col_count == 5 ) + { + $avatar_row_count++; + $avatar_col_count = 0; + } + } + } + } + } + + @closedir($dir); + + @ksort($avatar_images); + @reset($avatar_images); + + if( empty($category) ) + { + list($category, ) = each($avatar_images); + } + @reset($avatar_images); + + $s_categories = ''; + + $s_colspan = 0; + for($i = 0; $i < count($avatar_images[$category]); $i++) + { + $template->assign_block_vars("avatar_row", array()); + + $s_colspan = max($s_colspan, count($avatar_images[$category][$i])); + + for($j = 0; $j < count($avatar_images[$category][$i]); $j++) + { + $template->assign_block_vars('avatar_row.avatar_column', array( + "AVATAR_IMAGE" => $board_config['avatar_gallery_path'] . '/' . $avatar_images[$category][$i][$j], + "AVATAR_NAME" => $avatar_name[$category][$i][$j]) + ); + + $template->assign_block_vars('avatar_row.avatar_option_column', array( + "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j]) + ); + } + } + + $params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popup_pm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat'); + + $s_hidden_vars = ''; + + for($i = 0; $i < count($params); $i++) + { + $s_hidden_vars .= ''; + } + + $template->assign_vars(array( + 'L_AVATAR_GALLERY' => $lang['Avatar_gallery'], + 'L_SELECT_AVATAR' => $lang['Select_avatar'], + 'L_RETURN_PROFILE' => $lang['Return_profile'], + 'L_CATEGORY' => $lang['Select_category'], + + 'S_CATEGORY_SELECT' => $s_categories, + 'S_COLSPAN' => $s_colspan, + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx?mode=$mode"), + 'S_HIDDEN_FIELDS' => $s_hidden_vars) + ); + + return; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/usercp_confirm.php b/phpBB2_old/includes/usercp_confirm.php new file mode 100644 index 0000000..3b51164 --- /dev/null +++ b/phpBB2_old/includes/usercp_confirm.php @@ -0,0 +1,435 @@ +sql_query($sql); + +// If we have a row then grab data else create a new id +if ($row = $db->sql_fetchrow($result)) +{ + $db->sql_freeresult($result); + $code = $row['code']; +} +else +{ + exit; +} + +// If we can we will generate a single filtered png else we will have to simply +// output six seperate original pngs ... first way is preferable! +if (@extension_loaded('zlib')) +{ + $_png = define_filtered_pngs(); + + $total_width = 320; + $total_height = 50; + $img_height = 40; + $img_width = 0; + $l = 0; + + list($usec, $sec) = explode(' ', microtime()); + mt_srand($sec * $usec); + + $char_widths = array(); + for ($i = 0; $i < strlen($code); $i++) + { + $char = $code{$i}; + + $width = mt_rand(0, 4); + $char_widths[] = $width; + $img_width += $_png[$char]['width'] - $width; + } + + $offset_x = mt_rand(0, $total_width - $img_width); + $offset_y = mt_rand(0, $total_height - $img_height); + + $image = ''; + $hold_chars = array(); + for ($i = 0; $i < $total_height; $i++) + { + $image .= chr(0); + + if ($i > $offset_y && $i < $offset_y + $img_height) + { + $j = 0; + + for ($k = 0; $k < $offset_x; $k++) + { + $image .= chr(mt_rand(140, 255)); + } + + for ($k = 0; $k < strlen($code); $k++) + { + $char = $code{$k}; + + if (empty($hold_chars[$char])) + { + $hold_chars[$char] = explode("\n", chunk_split(base64_decode($_png[$char]['data']), $_png[$char]['width'] + 1, "\n")); + } + $image .= randomise(substr($hold_chars[$char][$l], 1), $char_widths[$j]); + $j++; + } + + for ($k = $offset_x + $img_width; $k < $total_width; $k++) + { + $image .= chr(mt_rand(140, 255)); + } + + $l++; + } + else + { + for ($k = 0; $k < $total_width; $k++) + { + $image .= chr(mt_rand(140, 255)); + } + } + + } + unset($hold); + + $image = create_png(gzcompress($image), $total_width, $total_height); + + // Output image + header('Content-Type: image/png'); + header('Cache-control: no-cache, no-store'); + echo $image; + + unset($image); + unset($_png); + exit; + +} +else +{ + if (!empty($HTTP_GET_VARS['c'])) + { + $_png = define_raw_pngs(); + + $char = substr($code, intval($HTTP_GET_VARS['c']) - 1, 1); + header('Content-Type: image/png'); + header('Cache-control: no-cache, no-store'); + echo base64_decode($_png[$char]); + + unset($_png); + exit; + } +} + +exit; + +// This is designed to randomise the pixels of the image data within +// certain limits so as to keep it readable. It also varies the image +// width a little +function randomise($scanline, $width) +{ + $new_line = ''; + $start = floor($width/2); + $end = strlen($scanline) - ceil($width/2); + + for ($i = $start; $i < $end; $i++) + { + $pixel = ord($scanline{$i}); + + if ($pixel < 190) + { + $new_line .= chr(mt_rand(0, 205)); + } + else if ($pixel > 190) + { + $new_line .= chr(mt_rand(145, 255)); + } + else + { + $new_line .= $scanline{$i}; + } + } + + return $new_line; +} + +// This creates a chunk of the given type, with the given data +// of the given length adding the relevant crc +function png_chunk($length, $type, $data) +{ + $raw = $type; + $raw .= $data; + $crc = crc32($raw); + $raw .= pack('C4', $crc >> 24, $crc >> 16, $crc >> 8, $crc); + + return pack('C4', $length >> 24, $length >> 16, $length >> 8, $length) . $raw; +} + +// Creates greyscale 8bit png - The PNG spec can be found at +// http://www.libpng.org/pub/png/spec/PNG-Contents.html we use +// png because it's a fully recognised open standard and supported +// by practically all modern browsers and OSs +function create_png($gzimage, $width, $height) +{ + // SIG + $image = pack('C8', 137, 80, 78, 71, 13, 10, 26, 10); + // IHDR + $raw = pack('C4', $width >> 24, $width >> 16, $width >> 8, $width); + $raw .= pack('C4', $height >> 24, $height >> 16, $height >> 8, $height); + $raw .= pack('C5', 8, 0, 0, 0, 0); + $image .= png_chunk(13, 'IHDR', $raw); + // IDAT + $image .= png_chunk(strlen($gzimage), 'IDAT', $gzimage); + // IEND + $image .= png_chunk(0, 'IEND', ''); + + return $image; +} + +// Each 'data' element is base64_encoded uncompressed IDAT +// png image data +function define_filtered_pngs() +{ + $_png = array( + '0' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A///////////////////olFAkBAAAGDyA4P///M31/////////////wD////////////////0dAgAAAAAAAAAAAAEcPipFGHn////////////AP//////////////6DAAAAAAAAAAAAAAAAAALSEAN+T///////////8A//////////////xAAAAAAAAAAAAAAAAAAAAAACPA/////////////wD/////////////oAAAAAAAAAAAAAAAAAAAAAAAev//////////////AP////////////8oAAAAAAAAPNj/zDAAAAAAAABD//////////////8A////////////1AAAAAAAABjw////5BAAAAAAAADo/////////////wD///////////+QAAAAAAAAbP//////QgAAAAAAAKj/////////////AP///////////1wAAAAAAACs/////8AXAAAAAAAAcP////////////8A////////////OAAAAAAAAND////dNwAAAAAAAABI/////////////wD///////////8gAAAAAAAA4P//7koACwAAAAAAACT/////////////AP///////////wgAAAAAAAD///VqAwaPAAAAAAAAEP////////////8A////////////AAAAAAAAAP/8kQYDavUAAAAAAAAA/////////////wD///////////8AAAAAAAAA/6kNAEru/wAAAAAAAAD/////////////AP///////////wAAAAAAAADAIwA33f//AAAAAAAAAP////////////8A////////////FAAAAAAAADYAI8D///8AAAAAAAAQ/////////////wD///////////8kAAAAAAAAAA2p////5AAAAAAAACD/////////////AP///////////0gAAAAAAAAFkfz////UAAAAAAAAQP////////////8A////////////cAAAAAAAAET1/////7AAAAAAAABo/////////////wD///////////+oAAAAAAAAXfX/////sAAAAAAAAGj/////////////AAAAALgAAAAAAAAwAAAAAAAAAAAAAAD////////////oAAAAAAAACOT////oEAAAAAAAAOD/////////////AP////////////8+AAAAAAAAKMz/zDQAAAAAAAA0//////////////8A////////////7jgAAAAAAAAAAAAAAAAAAAAAAKT//////////////wD///////////VqAwIAAAAAAAAAAAAAAAAAAAA8////////////////AP//////////rQcDaVEAAAAAAAAAAAAAAAAAKOj///////////////8A///////////nblnu/IAIAAAAAAAAAAAAAFzw/////////////////wD////////////79////+iITCAAAAAgSITg////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////w==', + 'width' => 40 + ), + '1' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////8BAAAAAAAP//////////////////AP////////////////////////9sAAAAAAAA//////////////////8A////////////////////////pAAAAAAAAAD//////////////////wD//////////////////////6wEAAAAAAAAAP//////////////////AP////////////////////h4AAAAAAAAAAAA//////////////////8A//////////////////ygJAAAAAAAAAAAAAD//////////////////wD//////////////9x8HAAAAAAAAAAAAAAAAP//////////////////AP//////////////AAAAAAAAAAAAAAAAAAAA//////////////////8A//////////////8AAAAAAAAAAAAAAAAAAAD//////////////////wD//////////////wAAAAAAAAR4AAAAAAAAAP//////////////////AP//////////////AAAAAAA4zP8AAAAAAAAA//////////////////8A//////////////8AAAA4sP///wAAAAAAAAD//////////////////wD//////////////yR80P//////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////AAAAAAAAAP//////////////////AP////////////////////////8AAAAAAAAA//////////////////8A/////////////////////////wAAAAAAAAD//////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '2' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP/////////////////okFAkCAAABCBIfNT///////////////////8A///////////////8hAgAAAAAAAAAAAAAAFTo/////////////////wD//////////////1QAAAAAAAAAAAAAAAAAACjo////////////////AP////////////+MAAAAAAAAAAAAAAAAAAAAADj///////////////8A////////////9BAAAAAAAAAAAAAAAAAAAAAAALD//////////////wD///////////+gAAAAAAAAAHjs+KwMAAAAAAAAVP//////////////AP///////////1gAAAAAAABM/////6QAAAAAAAAU//////////////8A////////////KAAAAAAAALj/////+AAAAAAAAAD//////////////wD///////////+MfGBMOCAI8P/////wAAAAAAAACP//////////////AP///////////////////////////5wAAAAAAAAw//////////////8A///////////////////////////oFAAAAAAAAHz//////////////wD/////////////////////////6CgAAAAAAAAE3P//////////////AP///////////////////////9ggAAAAAAAAAHT///////////////8A//////////////////////+0DAAAAAAAAAA8+P///////////////wD/////////////////////gAAAAAAAAAAAKOj/////////////////AP//////////////////9FAAAAAAAAAAADzw//////////////////8A/////////////////+g4AAAAAAAAAABk/P///////////////////wD////////////////oKAAAAAAAAAAMqP//////////////////////AP//////////////6CgAAAAAAAAAMNz///////////////////////8A//////////////g4AAAAAAAAAFT0/////////////////////////wD/////////////bAAAAAAAAABU/P//////////////////////////AP///////////8wAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A////////////SAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////9wAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////hAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////9AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////xAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '3' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD////////////////8sGg0FAAAACA4cLz8////////////////////AP//////////////rBgAAAAAAAAAAAAAACTA//////////////////8A/////////////3QAAAAAAAAAAAAAAAAAAASs/////////////////wD///////////+YAAAAAAAAAAAAAAAAAAAAAAjc////////////////AP//////////6AwAAAAAAAAAAAAAAAAAAAAAAGT///////////////8A//////////94AAAAAAAABJDw/8g4AAAAAAAAHP///////////////wD//////////yAAAAAAAACE/////9gAAAAAAAAA////////////////AP///////////NSwiGQ4FOT//////AAAAAAAABD///////////////8A//////////////////////////+YAAAAAAAAVP///////////////wD//////////////////////P/ggAQAAAAAAATM////////////////AP////////////////////9gAAAAAAAAAAAElP////////////////8A/////////////////////0AAAAAAAAAAHLj//////////////////wD/////////////////////OAAAAAAAAAAwkPj/////////////////AP////////////////////8gAAAAAAAAAAAAINj///////////////8A/////////////////////xAAAAAAAAAAAAAAIPD//////////////wD/////////////////////uOz/4HgEAAAAAAAAhP//////////////AP///////////////////////////3wAAAAAAAAw//////////////8A////////////////////////////6AAAAAAAAAj//////////////wD/////////////////////////////AAAAAAAAAP//////////////AP//////////tJh8YEQoDNz//////+AAAAAAAAAY//////////////8A//////////88AAAAAAAAaP//////dAAAAAAAAEz//////////////wD//////////6QAAAAAAAAAdOD/5HQAAAAAAAAApP//////////////AP///////////CgAAAAAAAAAAAAAAAAAAAAAACD4//////////////8A////////////yAQAAAAAAAAAAAAAAAAAAAAEuP///////////////wD/////////////rAQAAAAAAAAAAAAAAAAABJD/////////////////AP//////////////zDQAAAAAAAAAAAAAACTA//////////////////8A/////////////////8BwOCAAAAAUNGi0/P///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '4' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////////////////nAAAAAAAAAD///////////////8A/////////////////////////8AEAAAAAAAAAP///////////////wD////////////////////////gGAAAAAAAAAAA////////////////AP//////////////////////9DAAAAAAAAAAAAD///////////////8A//////////////////////9UAAAAAAAAAAAAAP///////////////wD/////////////////////hAAAAAAAAAAAAAAA////////////////AP///////////////////7QAAAAAAAAAAAAAAAD///////////////8A///////////////////UDAAAAAAUAAAAAAAAAP///////////////wD/////////////////7CQAAAAABMAAAAAAAAAA////////////////AP////////////////xEAAAAAACU/wAAAAAAAAD///////////////8A////////////////cAAAAAAAZP//AAAAAAAAAP///////////////wD//////////////6AAAAAAADz8//8AAAAAAAAA////////////////AP/////////////IBAAAAAAc6P///wAAAAAAAAD///////////////8A////////////5BgAAAAADMz/////AAAAAAAAAP///////////////wD///////////g0AAAAAACk//////8AAAAAAAAA////////////////AP//////////XAAAAAAAfP///////wAAAAAAAAD///////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A////////////////////////////AAAAAAAAAP///////////////wD///////////////////////////8AAAAAAAAA////////////////AP///////////////////////////wAAAAAAAAD///////////////8A////////////////////////////AAAAAAAAAP///////////////wD///////////////////////////8AAAAAAAAA////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '5' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////8AAAAAAAAAAAAAAAAAAAAAAA//////////////8A///////////////MAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////////6wAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////////iAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////////9kAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////////0QAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////////IAAAAAAAYP////////////////////////////8A//////////////wAAAAAAAB8/////////////////////////////wD/////////////3AAAAAAAAIj/////////////////////////////AP////////////+4AAAAAAAAoLRYHAAEKGTE//////////////////8A/////////////5QAAAAAAAAQAAAAAAAAAABY9P///////////////wD/////////////dAAAAAAAAAAAAAAAAAAAAAA89P//////////////AP////////////9QAAAAAAAAAAAAAAAAAAAAAABg//////////////8A/////////////zAAAAAAAAAAAAAAAAAAAAAAAADQ/////////////wD/////////////IAAAAAAAAGjY/+h4BAAAAAAAAGz/////////////AP//////////////9NS0lHSc//////90AAAAAAAALP////////////8A/////////////////////////////9QAAAAAAAAE/////////////wD//////////////////////////////wAAAAAAAAD/////////////AP/////////////////////////////8AAAAAAAAEP////////////8A////////////pIRwWEAgDOD//////8wAAAAAAAA8/////////////wD///////////9EAAAAAAAAaP//////ZAAAAAAAAHz/////////////AP///////////6QAAAAAAAAAaOD/4GQAAAAAAAAE4P////////////8A/////////////CQAAAAAAAAAAAAAAAAAAAAAAGD//////////////wD/////////////yAQAAAAAAAAAAAAAAAAAAAAc7P//////////////AP//////////////rAwAAAAAAAAAAAAAAAAAGNj///////////////8A////////////////0EAAAAAAAAAAAAAAAFTo/////////////////wD//////////////////8h4QCAAAAAcQHzU////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '6' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////////////+0ZCwMAAAUNGjI////////////////////AP/////////////////EMAAAAAAAAAAAAABM6P////////////////8A////////////////lAQAAAAAAAAAAAAAAAAo6P///////////////wD//////////////6wAAAAAAAAAAAAAAAAAAABI////////////////AP/////////////oEAAAAAAAAAAAAAAAAAAAAACw//////////////8A/////////////3AAAAAAAAAoxP/YPAAAAAAAAEj//////////////wD////////////4EAAAAAAACOD////YDCBAVGiAoP//////////////AP///////////7gAAAAAAABY//////////////////////////////8A////////////eAAAAAAAAJT//////////////////////////////wD///////////9MAAAAAAAAvP/IXBgABCx03P//////////////////AP///////////ygAAAAAAADcdAAAAAAAAAAEiP////////////////8A////////////FAAAAAAAAFAAAAAAAAAAAAAAcP///////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAlP//////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAQ8P////////////8A////////////AAAAAAAAAABAyP/kZAAAAAAAAACQ/////////////wD///////////8MAAAAAAAALPj/////WAAAAAAAAET/////////////AP///////////yQAAAAAAACY///////MAAAAAAAAFP////////////8A////////////SAAAAAAAAMD///////wAAAAAAAAA/////////////wD///////////9wAAAAAAAAvP///////wAAAAAAAAD/////////////AP///////////7QAAAAAAACI///////UAAAAAAAAJP////////////8A////////////+AwAAAAAACDw/////2wAAAAAAABY/////////////wD/////////////cAAAAAAAADC8/Ox4AAAAAAAAAKj/////////////AP/////////////oEAAAAAAAAAAAAAAAAAAAAAAk/P////////////8A//////////////+oAAAAAAAAAAAAAAAAAAAABLj//////////////wD///////////////+QAAAAAAAAAAAAAAAAAACQ////////////////AP////////////////+0JAAAAAAAAAAAAAAkuP////////////////8A///////////////////8sGg0FAAADCxgqPz//////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '7' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAABP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAy4/////////////wD//////////////////////////+QUAAAAAAAEuP//////////////AP/////////////////////////8QAAAAAAAAKT///////////////8A/////////////////////////4wAAAAAAAB0/////////////////wD////////////////////////cCAAAAAAANPz/////////////////AP///////////////////////0QAAAAAAATY//////////////////8A//////////////////////+0AAAAAAAAeP///////////////////wD//////////////////////CQAAAAAABTw////////////////////AP////////////////////+gAAAAAAAAkP////////////////////8A/////////////////////ywAAAAAABDw/////////////////////wD///////////////////+4AAAAAAAAbP//////////////////////AP///////////////////1wAAAAAAADQ//////////////////////8A///////////////////4DAAAAAAAMP///////////////////////wD//////////////////7QAAAAAAAB8////////////////////////AP//////////////////aAAAAAAAAMj///////////////////////8A//////////////////8oAAAAAAAM/P///////////////////////wD/////////////////8AAAAAAAAET/////////////////////////AP////////////////+0AAAAAAAAcP////////////////////////8A/////////////////4wAAAAAAACY/////////////////////////wD/////////////////WAAAAAAAAMD/////////////////////////AP////////////////80AAAAAAAA4P////////////////////////8A/////////////////xAAAAAAAAD4/////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '8' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD////////////////////IdDQUAAAEIEiA1P//////////////////AP/////////////////gRAAAAAAAAAAAAAAAROD///////////////8A////////////////0BgAAAAAAAAAAAAAAAAAEMj//////////////wD///////////////AcAAAAAAAAAAAAAAAAAAAAHPD/////////////AP//////////////hAAAAAAAAAAAAAAAAAAAAAAAhP////////////8A//////////////8sAAAAAAAAKMz/zCgAAAAAAAAs/////////////wD//////////////wAAAAAAAADM////zAAAAAAAAAD/////////////AP//////////////BAAAAAAAAP//////AAAAAAAABP////////////8A//////////////8sAAAAAAAAzP///9QAAAAAAAAw/////////////wD//////////////3wAAAAAAAAoyP/YNAAAAAAAAIT/////////////AP//////////////7BgAAAAAAAAAAAAAAAAAAAAc8P////////////8A////////////////xBgAAAAAAAAAAAAAAAAAGNj//////////////wD/////////////////tAQAAAAAAAAAAAAAAACo////////////////AP///////////////HAAAAAAAAAAAAAAAAAAAAB8//////////////8A//////////////9gAAAAAAAAAAAAAAAAAAAAAAB8/////////////wD/////////////wAAAAAAAAABk4P/UWAAAAAAAAATQ////////////AP////////////9UAAAAAAAAaP//////XAAAAAAAAGT///////////8A/////////////xgAAAAAAADg///////cAAAAAAAAJP///////////wD/////////////AAAAAAAAAP////////8AAAAAAAAA////////////AP////////////8AAAAAAAAA4P//////3AAAAAAAAAT///////////8A/////////////ygAAAAAAABg//////9cAAAAAAAALP///////////wD/////////////ZAAAAAAAAABY1P/cXAAAAAAAAABw////////////AP/////////////QAAAAAAAAAAAAAAAAAAAAAAAABNz///////////8A//////////////9gAAAAAAAAAAAAAAAAAAAAAAB0/////////////wD///////////////Q8AAAAAAAAAAAAAAAAAAAAUPz/////////////AP////////////////x4CAAAAAAAAAAAAAAAEIT8//////////////8A///////////////////smFQwGAAAABg0ZKT0/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + '9' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////////////ysYCwMAAAUNGiw/P//////////////////AP////////////////+4JAAAAAAAAAAAAAAkuP////////////////8A////////////////lAQAAAAAAAAAAAAAAAAAkP///////////////wD//////////////8AEAAAAAAAAAAAAAAAAAAAAqP//////////////AP/////////////8JAAAAAAAAAAAAAAAAAAAAAAQ7P////////////8A/////////////6wAAAAAAAAAfOz8vCwAAAAAAABw/////////////wD/////////////WAAAAAAAAHD/////7BgAAAAAAAz4////////////AP////////////8kAAAAAAAA1P//////hAAAAAAAALT///////////8A/////////////wAAAAAAAAD///////+4AAAAAAAAcP///////////wD/////////////AAAAAAAAAPz//////8AAAAAAAABI////////////AP////////////8UAAAAAAAAzP//////lAAAAAAAACT///////////8A/////////////0QAAAAAAABY//////gsAAAAAAAADP///////////wD/////////////kAAAAAAAAABw5P/IPAAAAAAAAAAA////////////AP/////////////wEAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A//////////////+UAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD///////////////9wAAAAAAAAAAAAAFAAAAAAAAAU////////////AP////////////////+IBAAAAAAAAABw3AAAAAAAACj///////////8A///////////////////cdCwEABhcxP+8AAAAAAAATP///////////wD//////////////////////////////5AAAAAAAAB4////////////AP//////////////////////////////UAAAAAAAALj///////////8A//////////////+kgGxUQCAM2P///+AIAAAAAAAQ+P///////////wD//////////////0gAAAAAAAA42P/EKAAAAAAAAHD/////////////AP//////////////sAAAAAAAAAAAAAAAAAAAAAAQ6P////////////8A////////////////TAAAAAAAAAAAAAAAAAAAAKz//////////////wD////////////////oKAAAAAAAAAAAAAAAAASU////////////////AP/////////////////sUAAAAAAAAAAAAAAwxP////////////////8A////////////////////yHA0FAAADCxktP///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'A' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////////////////+QAAAAAAAAAAAAAAOT/////////////////AP//////////////////kAAAAAAAAAAAAAAAkP////////////////8A//////////////////88AAAAAAAAAAAAAAA8/////////////////wD/////////////////5AAAAAAAAAAAAAAAAADk////////////////AP////////////////+QAAAAAAAAAAAAAAAAAJD///////////////8A/////////////////zwAAAAAAAAAAAAAAAAAPP///////////////wD////////////////kAAAAAAAAAAgAAAAAAAAA5P//////////////AP///////////////5AAAAAAAAAAgAAAAAAAAACQ//////////////8A////////////////PAAAAAAAAAz8HAAAAAAAADz//////////////wD//////////////+QAAAAAAAAAWP9kAAAAAAAAANz/////////////AP//////////////kAAAAAAAAACk/7wAAAAAAAAAhP////////////8A//////////////88AAAAAAAABOz//BQAAAAAAAAw/////////////wD/////////////4AAAAAAAAAA8////ZAAAAAAAAADc////////////AP////////////+EAAAAAAAAAIj///+8AAAAAAAAAIT///////////8A/////////////zAAAAAAAAAA2P////wQAAAAAAAAMP///////////wD////////////cAAAAAAAAACT//////1wAAAAAAAAA3P//////////AP///////////4QAAAAAAAAAAAAAAAAAAAAAAAAAAACE//////////8A////////////MAAAAAAAAAAAAAAAAAAAAAAAAAAAADD//////////wD//////////9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANz/////////AP//////////hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhP////////8A//////////8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw/////////wD/////////3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc////////AP////////+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIT///////8A/////////zAAAAAAAAAAhP///////////2QAAAAAAAAAMP///////wD////////cAAAAAAAAAADM////////////vAAAAAAAAAAA3P//////AP///////4QAAAAAAAAAHP/////////////4DAAAAAAAAACE//////8A////////MAAAAAAAAABk//////////////9cAAAAAAAAADD//////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'B' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAEDh83P///////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAEhP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAeP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAxP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAABY////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAABT///////////8A//////////8AAAAAAAAAAP/////4zEwAAAAAAAAAAP///////////wD//////////wAAAAAAAAAA////////7AAAAAAAAAAQ////////////AP//////////AAAAAAAAAAD////////sAAAAAAAAAEj///////////8A//////////8AAAAAAAAAAP/////4zEQAAAAAAAAAtP///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAFz/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAiA/P////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAIjPj//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAGKz/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJT///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAABNz//////////wD//////////wAAAAAAAAAA///////sqCAAAAAAAAAAbP//////////AP//////////AAAAAAAAAAD/////////yAAAAAAAAAAs//////////8A//////////8AAAAAAAAAAP//////////AAAAAAAAAAT//////////wD//////////wAAAAAAAAAA/////////7wAAAAAAAAAAP//////////AP//////////AAAAAAAAAAD//////+ikGAAAAAAAAAAY//////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFT//////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsP//////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAADj///////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAc6P///////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAATOj/////////////AP//////////AAAAAAAAAAAAAAAAAAAEIEBkkNj///////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'C' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////////////5JRULBAAAAgkTIDQ//////////////////8A////////////////1FAAAAAAAAAAAAAAAABAyP///////////////wD//////////////4gEAAAAAAAAAAAAAAAAAAAElP//////////////AP////////////9wAAAAAAAAAAAAAAAAAAAAAAAAlP////////////8A////////////kAAAAAAAAAAAAAAAAAAAAAAAAAAEyP///////////wD//////////9wIAAAAAAAAAAAAAAAAAAAAAAAAAAAw////////////AP//////////WAAAAAAAAAAAWMz/8JwQAAAAAAAAAACw//////////8A/////////+wEAAAAAAAAAID//////9QMAAAAAAAAAET//////////wD/////////nAAAAAAAAAAo/P///////3wAAAAABDBspP//////////AP////////9gAAAAAAAAAIz/////////3BxQjMT0//////////////8A/////////zQAAAAAAAAAzP///////////////////////////////wD/////////GAAAAAAAAADo////////////////////////////////AP////////8AAAAAAAAAAP////////////////////////////////8A/////////wAAAAAAAAAA/////////////////////////////////wD/////////AAAAAAAAAAD/////////////////////////////////AP////////8cAAAAAAAAAOj///////////////////////////////8A/////////zgAAAAAAAAA0P/////////kIGio7P///////////////wD/////////bAAAAAAAAACg/////////5wAAAAAMHS49P//////////AP////////+oAAAAAAAAAEz/////////PAAAAAAAAAAc//////////8A//////////QIAAAAAAAAALz//////6QAAAAAAAAAAGT//////////wD//////////3AAAAAAAAAADIzo/+SEBAAAAAAAAAAAyP//////////AP//////////7BAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A////////////rAAAAAAAAAAAAAAAAAAAAAAAAAAE0P///////////wD/////////////fAAAAAAAAAAAAAAAAAAAAAAAAJz/////////////AP//////////////iAQAAAAAAAAAAAAAAAAAAASY//////////////8A////////////////yEAAAAAAAAAAAAAAAAA8yP///////////////wD//////////////////9yIUCwQAAAAIEB4yP//////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'D' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////////8AAAAAAAAAAAAAAAAADChQkOT/////////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAABGjw//////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAACDY/////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAABjk////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKj//////////wD///////////8AAAAAAAAAAP///+isSAAAAAAAAAAANP//////////AP///////////wAAAAAAAAAA////////hAAAAAAAAAAA2P////////8A////////////AAAAAAAAAAD/////////MAAAAAAAAACQ/////////wD///////////8AAAAAAAAAAP////////+MAAAAAAAAAFj/////////AP///////////wAAAAAAAAAA/////////8gAAAAAAAAAMP////////8A////////////AAAAAAAAAAD/////////5AAAAAAAAAAY/////////wD///////////8AAAAAAAAAAP//////////AAAAAAAAAAD/////////AP///////////wAAAAAAAAAA//////////8AAAAAAAAAAP////////8A////////////AAAAAAAAAAD//////////wAAAAAAAAAA/////////wD///////////8AAAAAAAAAAP/////////wAAAAAAAAABD/////////AP///////////wAAAAAAAAAA/////////9QAAAAAAAAAJP////////8A////////////AAAAAAAAAAD/////////qAAAAAAAAABI/////////wD///////////8AAAAAAAAAAP////////9QAAAAAAAAAHj/////////AP///////////wAAAAAAAAAA////////uAAAAAAAAAAAvP////////8A////////////AAAAAAAAAAD////w0HwEAAAAAAAAACT8/////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAADz8//////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAY6P///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAKNz/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAACHT0//////////////8A////////////AAAAAAAAAAAAAAAAABg4bKj0/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'E' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAD///////////////////////////////8A//////////8AAAAAAAAAAP///////////////////////////////wD//////////wAAAAAAAAAA////////////////////////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'F' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'G' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////////////////MB8TCgQAAAACCA4YJzs////////////////AP///////////////JQcAAAAAAAAAAAAAAAAAAhw8P////////////8A/////////////9gwAAAAAAAAAAAAAAAAAAAAAAAk2P///////////wD////////////EDAAAAAAAAAAAAAAAAAAAAAAAAAAc7P//////////AP//////////2AwAAAAAAAAAAAAAAAAAAAAAAAAAAABY//////////8A//////////wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/////////wD/////////kAAAAAAAAAAAEHzQ/P/gmCAAAAAAAAAAAFz/////////AP////////wcAAAAAAAAACjg////////8CwAAAAAAAAgWP////////8A////////vAAAAAAAAAAI2P//////////yBRAcJjI8P///////////wD///////94AAAAAAAAAGD/////////////////////////////////AP///////0AAAAAAAAAAsP////////////////////////////////8A////////IAAAAAAAAADc/////////////////////////////////wD///////8AAAAAAAAAAP///////wAAAAAAAAAAAAAAAAD/////////AP///////wAAAAAAAAAA////////AAAAAAAAAAAAAAAAAP////////8A////////AAAAAAAAAAD///////8AAAAAAAAAAAAAAAAA/////////wD///////8gAAAAAAAAAOD//////wAAAAAAAAAAAAAAAAD/////////AP///////0AAAAAAAAAAtP//////AAAAAAAAAAAAAAAAAP////////8A////////cAAAAAAAAABw//////8AAAAAAAAAAAAAAAAA/////////wD///////+8AAAAAAAAABDs////////////AAAAAAAAAAD/////////AP////////wYAAAAAAAAADz0//////////AAAAAAAAAAAP////////8A/////////5AAAAAAAAAAACCY4P//3KhcCAAAAAAAAAAA/////////wD/////////+CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AP//////////xAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIP////////8A////////////rAQAAAAAAAAAAAAAAAAAAAAAAAAAAGTw/////////wD/////////////vBQAAAAAAAAAAAAAAAAAAAAAADjI////////////AP//////////////8HAQAAAAAAAAAAAAAAAAAEiw//////////////8A//////////////////iwcEAgBAAABCA4aKDk/////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'H' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'I' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAP///////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAA////////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAD///////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'J' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAD//////////////wD///////////////////////////8AAAAAAAAAAP//////////////AP///////////////////////////wAAAAAAAAAA//////////////8A////////////////////////////AAAAAAAAAAj//////////////wD//////////+zMrIxwUDAQ//////wAAAAAAAAAIP//////////////AP//////////DAAAAAAAAADo////2AAAAAAAAAA0//////////////8A//////////8wAAAAAAAAAKj///+YAAAAAAAAAFj//////////////wD//////////2gAAAAAAAAAIND/yBgAAAAAAAAAkP//////////////AP//////////vAAAAAAAAAAAAAAAAAAAAAAAAADc//////////////8A////////////MAAAAAAAAAAAAAAAAAAAAAAAUP///////////////wD////////////EBAAAAAAAAAAAAAAAAAAAABjk////////////////AP////////////+sBAAAAAAAAAAAAAAAAAAY2P////////////////8A///////////////EMAAAAAAAAAAAAAAAVOj//////////////////wD/////////////////vHBAIAAAABg8fNT/////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'K' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////8AAAAAAAAAAP//////////wAQAAAAAAAAAAABw////////AP///////wAAAAAAAAAA/////////9AMAAAAAAAAAAAAcP////////8A////////AAAAAAAAAAD////////cGAAAAAAAAAAAAHD//////////wD///////8AAAAAAAAAAP//////6CgAAAAAAAAAAABs////////////AP///////wAAAAAAAAAA//////Q0AAAAAAAAAAAAVPz///////////8A////////AAAAAAAAAAD////8RAAAAAAAAAAAAFT8/////////////wD///////8AAAAAAAAAAP///1gAAAAAAAAAAABU/P//////////////AP///////wAAAAAAAAAA//9wAAAAAAAAAAAASPz///////////////8A////////AAAAAAAAAAD/jAAAAAAAAAAAADz0/////////////////wD///////8AAAAAAAAAAKQAAAAAAAAAAAA89P//////////////////AP///////wAAAAAAAAAABAAAAAAAAAAAFPT///////////////////8A////////AAAAAAAAAAAAAAAAAAAAAAAApP///////////////////wD///////8AAAAAAAAAAAAAAAAAAAAAAAAU8P//////////////////AP///////wAAAAAAAAAAAAAAAAAAAAAAAABk//////////////////8A////////AAAAAAAAAAAAAAAAAAAAAAAAAADE/////////////////wD///////8AAAAAAAAAAAAAAAAoEAAAAAAAACz8////////////////AP///////wAAAAAAAAAAAAAAGNiAAAAAAAAAAIj///////////////8A////////AAAAAAAAAAAAABjY//gYAAAAAAAACOD//////////////wD///////8AAAAAAAAAAAAY2P///5wAAAAAAAAASP//////////////AP///////wAAAAAAAAAAGNj//////CgAAAAAAAAAqP////////////8A////////AAAAAAAAAADI////////sAAAAAAAAAAc8P///////////wD///////8AAAAAAAAAAP//////////QAAAAAAAAABs////////////AP///////wAAAAAAAAAA///////////IAAAAAAAAAATI//////////8A////////AAAAAAAAAAD///////////9YAAAAAAAAADD8/////////wD///////8AAAAAAAAAAP///////////9wEAAAAAAAAAJD/////////AP///////wAAAAAAAAAA/////////////3AAAAAAAAAADOT///////8A////////AAAAAAAAAAD/////////////7BAAAAAAAAAAUP///////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'L' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAD/////////////////////////////AP////////////8AAAAAAAAAAP////////////////////////////8A/////////////wAAAAAAAAAA/////////////////////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'M' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////8AAAAAAAAAAAAAAHz//////3wAAAAAAAAAAAAAAP///////wD//////wAAAAAAAAAAAAAATP//////UAAAAAAAAAAAAAAA////////AP//////AAAAAAAAAAAAAAAc//////8cAAAAAAAAAAAAAAD///////8A//////8AAAAAAAAAAAAAAADw////8AAAAAAAAAAAAAAAAP///////wD//////wAAAAAAAAAAAAAAALz////AAAAAAAAAAAAAAAAA////////AP//////AAAAAAAAAAAAAAAAkP///5AAAAAAAAAAAAAAAAD///////8A//////8AAAAAAAAAAAAAAABc////ZAAAAAAAAAAAAAAAAP///////wD//////wAAAAAAAAAoAAAAADD///8wAAAAACQAAAAAAAAA////////AP//////AAAAAAAAAFwAAAAABPz//AgAAAAAXAAAAAAAAAD///////8A//////8AAAAAAAAAkAAAAAAA0P/UAAAAAACQAAAAAAAAAP///////wD//////wAAAAAAAADMAAAAAACg/6gAAAAAAMQAAAAAAAAA////////AP//////AAAAAAAAAPgEAAAAAHD/dAAAAAAE+AAAAAAAAAD///////8A//////8AAAAAAAAA/zQAAAAAQP9IAAAAADD/AAAAAAAAAP///////wD//////wAAAAAAAAD/bAAAAAAQ/xQAAAAAaP8AAAAAAAAA////////AP//////AAAAAAAAAP+gAAAAAADQAAAAAACc/wAAAAAAAAD///////8A//////8AAAAAAAAA/9QAAAAAAGgAAAAAAND/AAAAAAAAAP///////wD//////wAAAAAAAAD//wwAAAAAFAAAAAAM/P8AAAAAAAAA////////AP//////AAAAAAAAAP//RAAAAAAAAAAAADz//wAAAAAAAAD///////8A//////8AAAAAAAAA//94AAAAAAAAAAAAcP//AAAAAAAAAP///////wD//////wAAAAAAAAD//7AAAAAAAAAAAACo//8AAAAAAAAA////////AP//////AAAAAAAAAP//5AAAAAAAAAAAANz//wAAAAAAAAD///////8A//////8AAAAAAAAA////HAAAAAAAAAAQ////AAAAAAAAAP///////wD//////wAAAAAAAAD///9QAAAAAAAAAEz///8AAAAAAAAA////////AP//////AAAAAAAAAP///4gAAAAAAAAAfP///wAAAAAAAAD///////8A//////8AAAAAAAAA////vAAAAAAAAACw////AAAAAAAAAP///////wD//////wAAAAAAAAD////wAAAAAAAAAOz///8AAAAAAAAA////////AP//////AAAAAAAAAP////8sAAAAAAAc/////wAAAAAAAAD///////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'N' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////AAAAAAAAALD/////////////AAAAAAAAAP//////////AP////////8AAAAAAAAAFOj///////////8AAAAAAAAA//////////8A/////////wAAAAAAAAAASP///////////wAAAAAAAAD//////////wD/////////AAAAAAAAAAAAkP//////////AAAAAAAAAP//////////AP////////8AAAAAAAAAAAAI1P////////8AAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAw+P///////wAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAABw////////AAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAC8//////8AAAAAAAAA//////////8A/////////wAAAAAAAAAAAAAAABzs/////wAAAAAAAAD//////////wD/////////AAAAAAAAAAAAAAAAAFD/////AAAAAAAAAP//////////AP////////8AAAAAAAAAAAAAAAAAAJz///8AAAAAAAAA//////////8A/////////wAAAAAAAAAUAAAAAAAADNz//wAAAAAAAAD//////////wD/////////AAAAAAAAALQAAAAAAAAANPz/AAAAAAAAAP//////////AP////////8AAAAAAAAA/2wAAAAAAAAAfP8AAAAAAAAA//////////8A/////////wAAAAAAAAD/+CwAAAAAAAAExAAAAAAAAAD//////////wD/////////AAAAAAAAAP//0AQAAAAAAAAgAAAAAAAAAP//////////AP////////8AAAAAAAAA////jAAAAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAD/////RAAAAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAP/////kFAAAAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAA//////+sAAAAAAAAAAAAAAAA//////////8A/////////wAAAAAAAAD///////9kAAAAAAAAAAAAAAD//////////wD/////////AAAAAAAAAP////////QkAAAAAAAAAAAAAP//////////AP////////8AAAAAAAAA/////////8wEAAAAAAAAAAAA//////////8A/////////wAAAAAAAAD//////////4QAAAAAAAAAAAD//////////wD/////////AAAAAAAAAP///////////DwAAAAAAAAAAP//////////AP////////8AAAAAAAAA////////////4BAAAAAAAAAA//////////8A/////////wAAAAAAAAD/////////////qAAAAAAAAAD//////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'O' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A///////////////////0qGw4HAAAABw4aKT0/////////////////wD////////////////wcAwAAAAAAAAAAAAAAAho6P//////////////AP//////////////uBQAAAAAAAAAAAAAAAAAAAAMoP////////////8A/////////////6AEAAAAAAAAAAAAAAAAAAAAAAAAkP///////////wD///////////+4BAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP//////////8BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAM5P////////8A//////////9wAAAAAAAAAAAsrPD/7KQsAAAAAAAAAABg/////////wD/////////+BAAAAAAAAAAUPj///////hQAAAAAAAAAAjs////////AP////////+sAAAAAAAAABDw//////////AYAAAAAAAAAKD///////8A/////////2wAAAAAAAAAdP///////////3wAAAAAAAAAYP///////wD/////////OAAAAAAAAAC4////////////xAAAAAAAAAAw////////AP////////8cAAAAAAAAAOD////////////oAAAAAAAAABT///////8A/////////wAAAAAAAAAA//////////////8AAAAAAAAAAP///////wD/////////AAAAAAAAAAD//////////////wAAAAAAAAAA////////AP////////8AAAAAAAAAAP/////////////8AAAAAAAAAAD///////8A/////////xwAAAAAAAAA5P///////////+AAAAAAAAAAHP///////wD/////////NAAAAAAAAAC8////////////uAAAAAAAAAA4////////AP////////9oAAAAAAAAAHj///////////98AAAAAAAAAGT///////8A/////////6gAAAAAAAAAGPD/////////+BgAAAAAAAAApP///////wD/////////9AwAAAAAAAAAUPz///////xcAAAAAAAAAAjs////////AP//////////cAAAAAAAAAAALKjs//CwOAAAAAAAAAAAYP////////8A///////////wFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzk/////////wD///////////+4BAAAAAAAAAAAAAAAAAAAAAAAAAAAoP//////////AP////////////+QAAAAAAAAAAAAAAAAAAAAAAAAAJD///////////8A//////////////+sEAAAAAAAAAAAAAAAAAAAAAyg/////////////wD////////////////oZAgAAAAAAAAAAAAAAARg4P//////////////AP//////////////////9KhsOCAAAAAUMFyc7P////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'P' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP///////////wAAAAAAAAAAAAAAAAAACCxguP////////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAOOD//////////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAGOD/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAARP////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAxP///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAABo////////////AP///////////wAAAAAAAAAA////6JwMAAAAAAAAADD///////////8A////////////AAAAAAAAAAD//////6AAAAAAAAAADP///////////wD///////////8AAAAAAAAAAP//////9AAAAAAAAAAA////////////AP///////////wAAAAAAAAAA///////0AAAAAAAAAAD///////////8A////////////AAAAAAAAAAD//////5gAAAAAAAAAHP///////////wD///////////8AAAAAAAAAAP///9iICAAAAAAAAABI////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAJD///////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAI6P///////////wD///////////8AAAAAAAAAAAAAAAAAAAAAAAAAAIT/////////////AP///////////wAAAAAAAAAAAAAAAAAAAAAAAABU/P////////////8A////////////AAAAAAAAAAAAAAAAAAAAAAAIhPz//////////////wD///////////8AAAAAAAAAAAAAAAAABCRMkOz/////////////////AP///////////wAAAAAAAAAA//////////////////////////////8A////////////AAAAAAAAAAD//////////////////////////////wD///////////8AAAAAAAAAAP//////////////////////////////AP///////////wAAAAAAAAAA//////////////////////////////8A////////////AAAAAAAAAAD//////////////////////////////wD///////////8AAAAAAAAAAP//////////////////////////////AP///////////wAAAAAAAAAA//////////////////////////////8A////////////AAAAAAAAAAD//////////////////////////////wD///////////8AAAAAAAAAAP//////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'Q' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////SoaDQcAAAAHDhoqPT///////////////////8A//////////////BwDAAAAAAAAAAAAAAACHDo/////////////////wD///////////+4FAAAAAAAAAAAAAAAAAAAABCo////////////////AP//////////nAQAAAAAAAAAAAAAAAAAAAAAAACQ//////////////8A/////////7gEAAAAAAAAAAAAAAAAAAAAAAAAAACg/////////////wD////////wFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzo////////////AP///////3AAAAAAAAAAACyo8P/sqCwAAAAAAAAAAGT///////////8A///////4EAAAAAAAAABM+P///////FQAAAAAAAAACPT//////////wD//////7AAAAAAAAAAFPD/////////9BgAAAAAAAAApP//////////AP//////bAAAAAAAAAB4////////////fAAAAAAAAABk//////////8A//////84AAAAAAAAALz///////////+8AAAAAAAAADT//////////wD//////xwAAAAAAAAA6P///////////+QAAAAAAAAAHP//////////AP//////AAAAAAAAAAD//////////////wAAAAAAAAAA//////////8A//////8AAAAAAAAAAP//////////////AAAAAAAAAAD//////////wD//////wAAAAAAAAAA/P////////////8AAAAAAAAAAP//////////AP//////GAAAAAAAAADg////////////4AAAAAAAAAAc//////////8A//////84AAAAAAAAALT////MJHTo//+8AAAAAAAAADT//////////wD//////2wAAAAAAAAAdP///2AAABCg/3wAAAAAAAAAZP//////////AP//////rAAAAAAAAAAY9P/sCAAAAABMGAAAAAAAAACk//////////8A///////4EAAAAAAAAABU/P+0OAAAAAAAAAAAAAAACPT//////////wD///////94AAAAAAAAAAA4sPD/gAAAAAAAAAAAAABk////////////AP////////AcAAAAAAAAAAAAAAAAAAAAAAAAAAAADOT///////////8A/////////7wEAAAAAAAAAAAAAAAAAAAAAAAAAACQ/////////////wD//////////6wEAAAAAAAAAAAAAAAAAAAAAAAAABSs////////////AP///////////7gUAAAAAAAAAAAAAAAAAAAAAAAAAABAwP////////8A//////////////BwDAAAAAAAAAAAAAAABAgAAAAAAAA8/////////wD////////////////0qGg0GAAAABgwXJjkxBgAAAAAALD/////////AP//////////////////////////////////5DQAAAAk/P////////8A////////////////////////////////////+GwAAJD//////////wD//////////////////////////////////////8A49P//////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'R' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////wAAAAAAAAAAAAAAAAAAAAQgOGSk+P///////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAcuP//////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAEsP////////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ6P///////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD///////////8A/////////wAAAAAAAAAA///////svDgAAAAAAAAACP///////////wD/////////AAAAAAAAAAD/////////7AAAAAAAAAAA////////////AP////////8AAAAAAAAAAP/////////cAAAAAAAAABD///////////8A/////////wAAAAAAAAAA//////DQoCQAAAAAAAAAQP///////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIPj///////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAzU/////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAA02P//////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAxctPz///////////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAEDY/////////////////wD/////////AAAAAAAAAAD/9LAsAAAAAAAAAAzc////////////////AP////////8AAAAAAAAAAP///+wkAAAAAAAAADD8//////////////8A/////////wAAAAAAAAAA/////8QAAAAAAAAAAJD//////////////wD/////////AAAAAAAAAAD//////1QAAAAAAAAAFPD/////////////AP////////8AAAAAAAAAAP//////3AQAAAAAAAAAgP////////////8A/////////wAAAAAAAAAA////////aAAAAAAAAAAM6P///////////wD/////////AAAAAAAAAAD////////oCAAAAAAAAABs////////////AP////////8AAAAAAAAAAP////////+AAAAAAAAAAATc//////////8A/////////wAAAAAAAAAA//////////AUAAAAAAAAAFj//////////wD/////////AAAAAAAAAAD//////////5AAAAAAAAAAAND/////////AP////////8AAAAAAAAAAP//////////+CQAAAAAAAAAQP////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'S' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP/////////////////8vHBEIAgAAAQgQHC8/P////////////////8A////////////////pCQAAAAAAAAAAAAAAAAcoP///////////////wD//////////////FwAAAAAAAAAAAAAAAAAAAAAXP//////////////AP////////////9oAAAAAAAAAAAAAAAAAAAAAAAAhP////////////8A////////////zAAAAAAAAAAAAAAAAAAAAAAAAAAI6P///////////wD///////////9cAAAAAAAAAAAAAAAAAAAAAAAAAACA////////////AP///////////xgAAAAAAAAAUOD/8KwkAAAAAAAAADj///////////8A////////////AAAAAAAAAAD0/////8wABCAgICxASP///////////wD///////////8MAAAAAAAAAMz/////////////////////////////AP///////////0AAAAAAAAAACFiQxPT///////////////////////8A////////////oAAAAAAAAAAAAAAAADBwtPT//////////////////wD////////////8QAAAAAAAAAAAAAAAAAAACFTA////////////////AP/////////////oOAAAAAAAAAAAAAAAAAAAAABM6P////////////8A///////////////4fAgAAAAAAAAAAAAAAAAAAAAY2P///////////wD/////////////////7IwwAAAAAAAAAAAAAAAAAAAo+P//////////AP/////////////////////koGw0BAAAAAAAAAAAAACU//////////8A///////////////////////////4uFgAAAAAAAAAADz//////////wD//////////2BgSEA0IBwA6P///////5QAAAAAAAAADP//////////AP//////////JAAAAAAAAACc/////////AAAAAAAAAAA//////////8A//////////9YAAAAAAAAACDo///////AAAAAAAAAABT//////////wD//////////6QAAAAAAAAAACCk7P/snBQAAAAAAAAAUP//////////AP//////////+BAAAAAAAAAAAAAAAAAAAAAAAAAAAACs//////////8A////////////kAAAAAAAAAAAAAAAAAAAAAAAAAAAOP///////////wD////////////8RAAAAAAAAAAAAAAAAAAAAAAAABjc////////////AP/////////////0PAAAAAAAAAAAAAAAAAAAAAAg2P////////////8A///////////////8hBQAAAAAAAAAAAAAAAAMdPT//////////////wD/////////////////+LRwSCAMAAAAHDhoqPT/////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'T' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD///////////////////8AAAAAAAAAAP//////////////////////AP///////////////////wAAAAAAAAAA//////////////////////8A////////////////////AAAAAAAAAAD//////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'U' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////AAAAAAAAAAD///////////8AAAAAAAAAAP//////////AP////////8AAAAAAAAAAP///////////wAAAAAAAAAA//////////8A/////////wAAAAAAAAAA////////////AAAAAAAAAAD//////////wD/////////JAAAAAAAAADk/////////+gAAAAAAAAAHP//////////AP////////9MAAAAAAAAAJz/////////nAAAAAAAAABE//////////8A/////////4gAAAAAAAAAHOj//////+ggAAAAAAAAAHz//////////wD/////////0AAAAAAAAAAAIJzs/+ykIAAAAAAAAAAA0P//////////AP//////////QAAAAAAAAAAAAAAAAAAAAAAAAAAAAED///////////8A///////////IBAAAAAAAAAAAAAAAAAAAAAAAAAAE0P///////////wD///////////+YAAAAAAAAAAAAAAAAAAAAAAAAAJj/////////////AP////////////+UBAAAAAAAAAAAAAAAAAAAAASU//////////////8A///////////////IPAAAAAAAAAAAAAAAAAAwyP///////////////wD/////////////////0IxYOCAIAAAEIEiAyP//////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'V' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD//////zAAAAAAAAAAYP//////////////ZAAAAAAAAAAw////////AP//////kAAAAAAAAAAU/P////////////8UAAAAAAAAAJD///////8A///////oBAAAAAAAAADE////////////xAAAAAAAAAAE7P///////wD///////9MAAAAAAAAAHD///////////94AAAAAAAAAEz/////////AP///////6gAAAAAAAAAJP///////////yQAAAAAAAAArP////////8A////////+BAAAAAAAAAA1P/////////YAAAAAAAAABT4/////////wD/////////aAAAAAAAAACE/////////4QAAAAAAAAAbP//////////AP/////////EAAAAAAAAADT/////////OAAAAAAAAADM//////////8A//////////8kAAAAAAAAAOT//////+QAAAAAAAAAKP///////////wD//////////4QAAAAAAAAAmP//////nAAAAAAAAACI////////////AP//////////5AAAAAAAAABE//////9EAAAAAAAABOT///////////8A////////////QAAAAAAAAAT0////9AgAAAAAAABI/////////////wD///////////+gAAAAAAAAAKT///+kAAAAAAAAAKj/////////////AP////////////QIAAAAAAAAXP///1wAAAAAAAAM+P////////////8A/////////////1wAAAAAAAAM+P/8DAAAAAAAAGT//////////////wD/////////////vAAAAAAAAAC8/7wAAAAAAAAAxP//////////////AP//////////////HAAAAAAAAGj/aAAAAAAAACT///////////////8A//////////////94AAAAAAAAHP8cAAAAAAAAhP///////////////wD//////////////9gAAAAAAAAAkAAAAAAAAADk////////////////AP///////////////zgAAAAAAAAQAAAAAAAAQP////////////////8A////////////////lAAAAAAAAAAAAAAAAACg/////////////////wD////////////////sCAAAAAAAAAAAAAAADPT/////////////////AP////////////////9QAAAAAAAAAAAAAABg//////////////////8A/////////////////7AAAAAAAAAAAAAAAMD//////////////////wD//////////////////BQAAAAAAAAAAAAc////////////////////AP//////////////////cAAAAAAAAAAAAHz///////////////////8A///////////////////MAAAAAAAAAAAA3P///////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'W' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//8cAAAAAAAAALz/////4AAAAAAAAAAA6P////+8AAAAAAAAABz//wD//1QAAAAAAAAAjP////+gAAAAAAAAAACo/////4wAAAAAAAAAUP//AP//jAAAAAAAAABU/////2AAAAAAAAAAAGj/////VAAAAAAAAACM//8A///EAAAAAAAAACT/////IAAAAAAAAAAAKP////8kAAAAAAAAAMT//wD///gEAAAAAAAAAPD//+AAAAAAAAAAAAAA6P//8AAAAAAAAAAE9P//AP///zAAAAAAAAAAvP//oAAAAAAAAAAAAACo//+8AAAAAAAAADD///8A////bAAAAAAAAACM//9gAAAAAAAAAAAAAGT//4wAAAAAAAAAaP///wD///+kAAAAAAAAAFT//yAAAAAAAAAAAAAAIP//VAAAAAAAAACc////AP///9gAAAAAAAAAJP/gAAAAAAAAAAAAAAAA4P8kAAAAAAAAANT///8A/////xAAAAAAAAAA8KAAAAAAAAAAAAAAAACg8AAAAAAAAAAQ/////wD/////TAAAAAAAAAC8YAAAAAAAAAAAAAAAAGC8AAAAAAAAAET/////AP////+AAAAAAAAAAIwgAAAAAAAAAAAAAAAAIIwAAAAAAAAAfP////8A/////7gAAAAAAAAANAAAAAAAACwwAAAAAAAANAAAAAAAAACw/////wD/////8AAAAAAAAAAAAAAAAAAAdHgAAAAAAAAAAAAAAAAAAOz/////AP//////KAAAAAAAAAAAAAAAAAC4vAAAAAAAAAAAAAAAAAAg//////8A//////9gAAAAAAAAAAAAAAAACPj4CAAAAAAAAAAAAAAAAFj//////wD//////5QAAAAAAAAAAAAAAABE//9IAAAAAAAAAAAAAAAAkP//////AP//////0AAAAAAAAAAAAAAAAIj//4wAAAAAAAAAAAAAAADI//////8A///////8DAAAAAAAAAAAAAAAzP//1AAAAAAAAAAAAAAABPj//////wD///////88AAAAAAAAAAAAABT/////GAAAAAAAAAAAAAA0////////AP///////3QAAAAAAAAAAAAAWP////9gAAAAAAAAAAAAAHD///////8A////////sAAAAAAAAAAAAACg/////6QAAAAAAAAAAAAApP///////wD////////kAAAAAAAAAAAAAOT/////6AAAAAAAAAAAAADc////////AP////////8cAAAAAAAAAAAo////////MAAAAAAAAAAAEP////////8A/////////1QAAAAAAAAAAHD///////94AAAAAAAAAABM/////////wD/////////jAAAAAAAAAAAtP///////7wAAAAAAAAAAID/////////AP/////////EAAAAAAAAAAT0////////+AgAAAAAAAAAuP////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'X' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD///////9UAAAAAAAAAKz///////////+sAAAAAAAAAFD/////////AP///////+QQAAAAAAAAFOT/////////8BwAAAAAAAAM5P////////8A/////////5gAAAAAAAAATP////////9kAAAAAAAAAJD//////////wD//////////0AAAAAAAAAAoP//////wAAAAAAAAAA0/P//////////AP//////////2AgAAAAAAAAQ4P////gkAAAAAAAABMz///////////8A////////////iAAAAAAAAABA////dAAAAAAAAABw/////////////wD////////////8MAAAAAAAAACU/9AEAAAAAAAAHPD/////////////AP/////////////IBAAAAAAAAAzYMAAAAAAAAACs//////////////8A//////////////90AAAAAAAAABAAAAAAAAAATP///////////////wD///////////////QgAAAAAAAAAAAAAAAAAAzg////////////////AP///////////////7wAAAAAAAAAAAAAAAAAjP////////////////8A/////////////////2AAAAAAAAAAAAAAADD8/////////////////wD/////////////////7BQAAAAAAAAAAAAEyP//////////////////AP/////////////////gDAAAAAAAAAAAAAjY//////////////////8A/////////////////0AAAAAAAAAAAAAAADj8/////////////////wD///////////////+UAAAAAAAAAAAAAAAAAJD/////////////////AP//////////////4AwAAAAAAAAAAAAAAAAADOD///////////////8A//////////////9AAAAAAAAAAAAAAAAAAAAAQP///////////////wD/////////////nAAAAAAAAAAAWAAAAAAAAAAAlP//////////////AP///////////+QQAAAAAAAAAGD/YAAAAAAAAAAM4P////////////8A////////////TAAAAAAAAAAs9P/0LAAAAAAAAABM/////////////wD//////////6AAAAAAAAAADNT////UDAAAAAAAAACg////////////AP/////////kEAAAAAAAAACg//////+gAAAAAAAAABDk//////////8A/////////0wAAAAAAAAAYP////////9gAAAAAAAAAEz//////////wD///////+oAAAAAAAAACz0//////////QsAAAAAAAAAKT/////////AP//////7BQAAAAAAAAM1P///////////9QMAAAAAAAAFOz///////8A//////9UAAAAAAAAAKD//////////////6AAAAAAAAAAVP///////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'Y' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP///////1QAAAAAAAAAAGj//////////2gAAAAAAAAAAFT///////8A////////5BAAAAAAAAAAAMT////////EAAAAAAAAAAAQ5P///////wD/////////mAAAAAAAAAAAKPj/////+CgAAAAAAAAAAJj/////////AP//////////PAAAAAAAAAAAgP////+AAAAAAAAAAAA8//////////8A///////////YCAAAAAAAAAAE2P//2AQAAAAAAAAACNj//////////wD///////////+AAAAAAAAAAAA4//84AAAAAAAAAACA////////////AP////////////woAAAAAAAAAACUlAAAAAAAAAAAKPz///////////8A/////////////8gAAAAAAAAAABAQAAAAAAAAAADI/////////////wD//////////////2wAAAAAAAAAAAAAAAAAAAAAbP//////////////AP//////////////8BwAAAAAAAAAAAAAAAAAABzw//////////////8A////////////////tAAAAAAAAAAAAAAAAAAAtP///////////////wD/////////////////VAAAAAAAAAAAAAAAAFT/////////////////AP/////////////////oEAAAAAAAAAAAAAAQ6P////////////////8A//////////////////+cAAAAAAAAAAAAAJz//////////////////wD///////////////////9AAAAAAAAAAABA////////////////////AP///////////////////9gAAAAAAAAAANj///////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////8AAAAAAAAAAP////////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////8AAAAAAAAAAP////////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////8AAAAAAAAAAP////////////////////8A/////////////////////wAAAAAAAAAA/////////////////////wD/////////////////////AAAAAAAAAAD/////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + 'Z' => array( + 'data' => 'AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////8A//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////AP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAQ//////////////8A/////////////////////////1AAAAAAAAAABLz//////////////wD///////////////////////98AAAAAAAAAACY////////////////AP//////////////////////pAAAAAAAAAAAaP////////////////8A/////////////////////8QIAAAAAAAAAET8/////////////////wD////////////////////gGAAAAAAAAAAo9P//////////////////AP//////////////////9CwAAAAAAAAAFNz///////////////////8A//////////////////xMAAAAAAAAAATA/////////////////////wD/////////////////eAAAAAAAAAAAnP//////////////////////AP///////////////5wAAAAAAAAAAHT///////////////////////8A///////////////ABAAAAAAAAABM/P///////////////////////wD/////////////3BQAAAAAAAAALPT/////////////////////////AP////////////QoAAAAAAAAABjg//////////////////////////8A///////////8SAAAAAAAAAAExP///////////////////////////wD//////////2wAAAAAAAAAAKD/////////////////////////////AP////////+YAAAAAAAAAAB8//////////////////////////////8A/////////wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////wD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8A/////////////////////////////////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////////////8=', + 'width' => 40 + ), + ); + + return $_png; +} + +// These define base64_encoded raw png image data used +// when we cannot generate our own single png image +function define_raw_pngs() +{ + $_png = array( + '0' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QKCNGXKO6AAAAB3RJTUUH0wUOEDQ6EUG1VwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAXNJREFUeNpj/M9AHGAiUt2wVvhyaqAqKyOjpG3jQwaGv+e+IUn9RwJfSjjg4iwFP1aKJD6HyyErfGGAYrquIoP5E2wK/zigu0v5wH9sChdgeKDqP1aFGhBZmxv/z0Dd4IxV4RWIpMQHIPuJAITzAqEQETx7IFQIP5CQNoJwDmALxzMQCuyjg1chnBPYwtECwr8AZN41h0p6YHOjAkTuwf//77wYuCEcFWwKOWA2fM1iZuuHcASwKYQ55c9ENuasrxgRjKlwJS+D17v/hBUeUGYwv/sfn0IRiJQZJIbxuFEFagjvSlDUQNgK2GIGqpC1JRhIfoAqxBYz0DRhn8IMJO+giKEqhMaMJBeI3AHhIKdkRPqG8DlAifqFADyasKRHO6h1Z/6fMYEwTbCmx3cWGCl8CTaFwBhGz+M2/7EpXMvOnBmIok7jBVaFz/Mi3/1pQORrhpgPyOr+M8IL0j9/gKpeLjhy5QEwoDVsYuRR3cE4IktcAJNx8cJaZBeQAAAAAElFTkSuQmCC', + '1' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMi//xxVKAAAAB3RJTUUH0wUOEDYLcqnX7wAAAAlwSFlzAAALEgAACxIB0t1+/AAAAHpJREFUeNpj/M9AHGAiUh1WhR8FGUGAsMKaD9iM/I8BlmCVwVS4hoUohT8qcNiFyv2zQIWBCIV3amRwu54RKcDRAgQ1KigIcJYK7CqR3QsCFmf+Y8qgeQakbANMAz6FKjUXECbj8zWa76nm61GFw1UhI10KqVGFNFQIADdK9Zj7PsV9AAAAAElFTkSuQmCC', + '2' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMwPUBEjoAAAAB3RJTUUH0wUOEDUqFe2UcgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAQxJREFUeNpj/M9AHGAiUt2owkGrkAWF93LFgStPfjCwyGiYRGijqfyPAH9aOJAkQl78RwbICkNQjdB4gUNhD7qzLLAr/CKA4YENSAoRvl7zAUJXvPmxhgfCXILVMxEQvg+IDVUhgtVqDYjkDhD7B2aQIMIx5cOTN29evLAAsaEKObBajQzmQOQMcIQjHLwQgSisIaDwBdS5LHfwK7yhAHVVyX+8CrdAA5HB5gdehQ3Yoxpd4ZcAmDqbD//xKISEIjhU//zHoxDmXQaeFRhOZ8CmzuDOf3wKf8DsDfnyH6/CHJi6P//xKjyDJethVehBpMI7DPgVwrPCCgb8AK5wDwGFcNMF8EkCASOx1QcAGUxu1untnFIAAAAASUVORK5CYII=', + '3' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMxBQugk2AAAAB3RJTUUH0wUOEDU3duv4qwAAAAlwSFlzAAALEgAACxIB0t1+/AAAATdJREFUeNpj/M9AHGAiUt0IVciCzPm7ZceZB28YGBQkLHwcmNFU/keANRJI4ioH/qMAJIUlaHatwaFwBrqrOO5gVfiCB8P9KVgVVkAtnPDh/wkLCFsGq0IFiGQLiH0D06P/GWHJ7O+NOzfuXLlzQRrEhgSawHscwYPurxAcwQMBf/4/aIAYyHIGr8IEeDhO+Y9XoQNUncwOVHGMRPEDSovc+IkzrpGDCQgUbuC1WgBhhsIHfAp3vPn/oIIFKfRxKQSDGohCA4IKX0DTD7YoRAWMUJ9iyQpbn4DBBWUQ5yFEDDnFw622gXAzwBxoYvfB5sYlUI0lD/4/gWWKJdgU/tHAcKjCD6y+PsGCpo4FJbaRgmcNqkqWCThTzxkTJHXo+Ro1HA9uOPHiATDlKJj4eKCVFIzDqWgGAK7GW/haPS+zAAAAAElFTkSuQmCC', + '4' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMyqWttCEAAAAB3RJTUUH0wUOEDUxn4hdngAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKBJREFUeNpj/M9AHGAiUh2FCucyQgCK4H9McIAFixwWhQ8kGIhS+MWAgTiFIQzEKWxhIE7hFgbiFF7hASkQIajwjQpInuUAIYV/XMDyU/4TUlgAlk75T0jhArCszR9CCk+AY07mxX8CCp+AY47nzH8CCn+YgOWW/CekMAYsVfMfl0JGmCBq4kNEDp2zAn0UMmItABjRvDykPTO43DgyFQIANP6pTFLWAdoAAAAASUVORK5CYII=', + '5' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QMzPy3XhEAAAAB3RJTUUH0wUOEDUk8lW5dQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAQpJREFUeNpj/M9AHGAiUt2oQuIVfmREBzgU3iHWxAfEKiTaRFpZnfAfAbAr/AsxUYagiVCbeQgqhPpFYmukLCOrZupRNJUIB02BCAjAZCK+/Ed2LoJZgm6bzRfsCgMw3JWAXaEBpg8uIGSRPPMBQmXc+P+iggXCnoOQZUQK1K8PgEAjGcQs7QGL6FzG5mtkcAUiyYIQYcRRUkDTLEIWR1b4ixamQMPhrKUP3rx48eDNFXmwdyFiOthixgXqaTAnBcKpwRaOS6A6Mx78fwBVx/IAm8I/KsTGzAkWNHUyb7Ar/L8GNSlK3MCRev7/v+CApC7kBUoUoAX4yQ0nHjwAWqpiE6GNFgNDoAwHAKC2Q2lMNcCmAAAAAElFTkSuQmCC', + '6' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNAObRd4vAAAAB3RJTUUH0wUOEDUc2lcB6wAAAAlwSFlzAAALEgAACxIB0t1+/AAAATtJREFUeNpj/M9AHGAiUh2Gwq2puryMjKKmmSfRVf5HBkcMEBI+L1CkUBROYUE2QuMFLoVr0CzzwKHwhQC6szZgV1gAtfHI/xs2mEYywsPxp8QHEMVxQ56B4aaJiIKIiIRCPDZf74DwI/5jB4hwPAChbAgG+BWoExlOxkoysuqW3sUV4BoQ/p0SqARLB44AF4HIByDMKMCuEIu7phCrUOADNl/DgMOJ/09SIMwPC7B5hgfC1/kB4kRAOC7YrFaByM0Ac85AOCLYrFaBhSMIQNPlG2wBDg3HP2CSGU/MuEAoiKVXUWxB9cwPiG8UwEGSg5FCMNOjwZ4/byqgpqwgMoWr/MGeZ1agqWPZgSNz/Z+AqnDCf1wK/29B8qbKDhQpRtTE8HfLjjMP3jDwKJh4hKCGJSPNC6lRhTRWCABWpdoxd/bZ4QAAAABJRU5ErkJggg==', + '7' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNA18/fMoAAAAB3RJTUUH0wUOEDUVo4u5TwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAM9JREFUeNpj/M9AHGAiUt2oQnorZIGzGLFJIyJ40HqGhUiFPFuQ/YUFPBGBmLcDSQybwj8OEDOW/CegsAeiruQ/AYV3OMDqTP4QUugCceCN/wQUQn1a8Z+Awj8qYHUiHwgpXAAxcMJ/Qgp1wOoEPhBSuANiYM5/QgpjIAovEFL4gweszgAz0NASxZ4vYMqHYDKDBiIWhWhWa0CS1x9CVn+8AaYsmAlZfQRC6RDMChADGTQIKjxDrMI7EEoBi0JGlMJe8AOY+sFOSCEeQHQBAABCZ7xyT9fJhwAAAABJRU5ErkJggg==', + '8' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNBeBnwpSAAAAB3RJTUUH0wUOEDUOKe5wowAAAAlwSFlzAAALEgAACxIB0t1+/AAAATVJREFUeNpj/M9AHGAiUt1AKmRB459cc+DBGwYWGQ2LEG1Umf/I4IELkozLA2QpFIUXJFDMEDiBQ+EHGTR3yHzArrAFwwct2BXqQGQ1zvw/owFh6mBXCDXmDJB5BsOrjEhxzfoHIgkiGCGB9xtrgEPtOwvEV6FWY4+ZAAgVc5LhZgKEGYI9wN+gBiPu4Pl/BFWlxA1cMfN/C0rUr8AVhX8K0KyuwaEwASNmarAqPACVTXnw/0oENBFewKYQGhYZYE4MVBM2hVAvQ1LhHQhHBVsUMjIgYhCdhy3PPASTd6GOxBYz0KhOQHajDjY3pkC1Rlz5fweqjqEAm8ILGK5gYLlDZICXYI+ZLzZo6gL+4EgUfyo4kJQJtCCpQ8kKQPB2zZ47L14AU5iMgUMAN7IM43AqHwdQIQAhMPz6Gz5V/wAAAABJRU5ErkJggg==', + '9' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QNCQ+T2tEAAAAB3RJTUUH0wUOEDUHUDLIBwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAUZJREFUeNpj/M9AHGAiUh26wr9rE3V5GRlFTTM3/kVT+R8Z7FBBSKjsQJFCUTiFBcWMCbgUHmBBs20FdoV/VNDUMQi8wapwDVS65s2fPToQZgFWhRFIkm8kwGyeH9gUQm2+Aua0QDhb4LJI4XgHQmmDSRMIZw+emIEENAeEcwObQhEIdQHiABRbUGPGBSIQAWL/gHqbB5tnJkC1Fjz5f8IGwxwkhR8EsCQarFE4hViF/wsQCgKgHsSu8H8HLFkUQL2rgUPh/zslOiwMEjFH/kND2geXQvQgqMAWhSjgAIRygAswIuXCpXfevHjz4M0ZdQaGhxo/wAnyBTuWmPnvARGxuPH/iAa+9Ph/A7r9Ai+wK/zvg6ZwzX8cCl9oICtjmfIfl8L/bwIQ6gyO/Met8P//EwUmwHTJo5OyBU2CkdaF1KhCWisEAM/sJxmZkdWnAAAAAElFTkSuQmCC', + 'A' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QFwy1U7TfAAAAB3RJTUUH0wUOEC0ZKCZtPQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAO1JREFUeNrt1LERwiAUBuAHZ2GRwsIypQMwQEZwgBQpM4QDZBSLFI7gCA5gQWGRdA5gkTuMSh48eMTUnq96wH98B+QiDCwruTD3D76qF676ueAp0Y9lSBXeSkFWaLAje3T+kkzK4SgpBzZw8pqxJWcdOJuRsyGPbWDk0tS20zw9SXsobdfytJVXdzNsP61i6Zt3K7Ht0UeUgbPdjsrOXMd+2IS2C2qb271HVWi7YANcNXFQsUEVBTXwNdl46jYRxPl52dnwRUZbhkLSDmS8DnxFRWiULxg8UxvobefuRR8ZQYDKtffVVcQWv/RrfgJC4bd0upw4MQAAAABJRU5ErkJggg==', + 'B' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGAusrz2zAAAAB3RJTUUH0wUOEC01Gv4B3gAAAAlwSFlzAAALEgAACxIB0t1+/AAAANJJREFUeNpj/M9AHGAiUh0tFTKiAUHL2rsoKv9DARZDWFr+IwA+hQwMFcQqZDhCrMIIYhWK4FYIYv8444PuV+wK//9/A+UJwBUSCHAL3OEIsdoFyttCpGdiiAtHjoY/RCnk6PlBbBRKrCE6CqcQq5DlDs5whIT3CgUI788EvOEIBCegXB2YPCNMBSNMISqf5TeUjysK90LpP/itfrFEAhZCMHkWdKMYUbk2MAah7BqD02pUYEFkgMu8IE6hD0IdpmegwSejoKLjoY7syaFU7A0HhQA2e4cJytImvAAAAABJRU5ErkJggg==', + 'C' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGBbPqVFqAAAAB3RJTUUH0wUOEC4BEGemqAAAAAlwSFlzAAALEgAACxIB0t1+/AAAASlJREFUeNpj/M9AHGAiUt2owkGrkAWV+3TDgRtPPjBwyGiYBOijSv1HAlcCkGUcTiDLISvsQDOeZQp2hQWYDpuCTeEEbD44ganwDgc2vxpgKoyAyUWc+f9hjgCMtwFd4RuYRxog/ueBcl3QFc6BSmj8gfBrwE40yFmCrjABqrAH5mSZgJ4jX7AEjwlU4Zn/OAAsrp9AaRlccc0IzdeMsBilOPWQrBDmtpfEKnwBpZ8qZq58i6IS6vscKHcBcgQYlOz4gh6OK6AKfaB8G5hN6Aq/wBLPHjB3CczCFIzUA0u2PD0v/j9pgaf1ExgK3wgwYAEOWFL4GizqWC5gyzM1mArnEJkLZ2DPhf//n3BAVmeDkq8ZUZPL3TUn7gBLCgYFBYsAcxQZRmKrDwABNsv9SJSDwwAAAABJRU5ErkJggg==', + 'D' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGC1+orhOAAAAB3RJTUUH0wUOEC4yr7fHvgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAM9JREFUeNpj/M9AHGAiUt1AKmSBsxiRhXlkNBxCpFFU/ocBTDMyPvxHADwKGRgUbhCpkEHiCZEKGRyIVciwArdCIPPFGg8YzwSvQiBogXFvEFD43wDKnQDl44yZGCh9glAU2sCsJqRQBkq/gMUw3G2wuP6PnU/H9PgRSgsQUvgESosQUngFSqsQUrgCSsNiCFcU7oBx9+CL6w8XamB5SeUPkelxAZEJ1+YPcQolXhCXFTTuEJULOUq+IOVrFgasQELBxMaHG1mEcTiVjwOoEADAIkCnGpmJKgAAAABJRU5ErkJggg==', + 'E' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGDeDwEE0AAAAB3RJTUUH0wUOEC8CkHXGUwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAD5JREFUeNpj/M9AHGAiUt2owkGrkAXGYMQqjUgJQ8EzpPsa05+D140oMYTk4KEQ4MMqZqgUhcM1czESW30AABfqB1XDnLzcAAAAAElFTkSuQmCC', + 'F' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGQe8AkDZAAAAB3RJTUUH0wUOEC8JB6cf2wAAAAlwSFlzAAALEgAACxIB0t1+/AAAADlJREFUeNpj/M9AHGAiUt3wUsiCYDJikUYE3lDwDDm+xvTp4HUjIoaQXTsUAnxYxcyoQryAcUSWuAAW/gZTg/yEMAAAAABJRU5ErkJggg==', + 'G' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGRFI1vWIAAAAB3RJTUUH0wUOEC8QY8y3GwAAAAlwSFlzAAALEgAACxIB0t1+/AAAASZJREFUeNpj/M9AHGAiUt0IVciCwvt7ZM+FOy8+MDBwSEho2AQII8v9R4A/U2RQtHEUfEBIIim8YYBhn8oNLAqP8GBxmcwbDIU3sKljYIhAV/jHgAE7uICmcAJMQqDmwp//D2YowPgxqAr/wPyr8QAi8EEHwleIQFW4BxYicG+eEHEomHECET5QhRVQhQn/cQFoFJ6AKgwgFNcPoFwdnAoZIXmGERahKDwkIdqlR1j4PiRW4RVCCmExvQenQrSYEXiDiAoUBfC4loAK23yBSnzArhCRehRmAJPFnRUxHDgU/lDA7zZECj/Cgl2dAkaeWYNVZcoHDIX/94hgKLM4gS27/v9QIICizGMDkiQjSon7c8eBCw+e/GFgkZEwsHCRRpZiHE5FMwCa2YE+WcAOUwAAAABJRU5ErkJggg==', + 'H' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGRw2Z4k1AAAAB3RJTUUH0wUOEC8agxleBQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAD1JREFUeNpj/M9AHGAiUt2oQvyABUozQml4+KMLDAXPDAWFLGh8RlwKh4JnaB88GOlxELhxVCFewDgEynAAN2sFVHAvevkAAAAASUVORK5CYII=', + 'I' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGSlg1E0WAAAAB3RJTUUH0wUOEC86uHd+zQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAD5JREFUeNpj/M9AHGAiUt1AKmRBMBkxJJE9OhQ8Q32FjGhxDQsjjCQwFDwzqnCwKkRKZqO5EBMwDqcSl2iFAMMeB0s/kLo2AAAAAElFTkSuQmCC', + 'J' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QGywiiNsbAAAAB3RJTUUH0wUOEDAFw0tdbgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKdJREFUeNpj/M9AHGAiUh3xClmwijJCaSR3Ud/qUYWjCklTyIHEhifctw8ePHgCxO+B7L9QMQlsChW+QOiX4gwMd6BiItisVoHSB6AYWQwM/kNBBszkC/9PwKyc8B8B4Ar3YPHMHWwK/xtgqAv4j1XhEfScK/EEu8L/a1BVStz4j0Ph/yPItoe8QFH3nxGlkNq75cKDB0DDVBwitNEcwjhwpdmoQrwAAN6ioiFapgUdAAAAAElFTkSuQmCC', + 'K' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHAEoFhGpAAAAB3RJTUUH0wUOEDANzZDVXAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAPZJREFUeNpj/M9AHGAiUt2owgFSyAgFMOGDrDARxkKo0H8wYEDh/b/AAzepACqEVeEdCQx1WBW+0ICry/mPR+EXE7i6kD94FP5xwaYOi8IIrOowFRbA1Xkgq8NQ2ANXZ/PlPx6FS3CpQ1fIAmOIoKn7jxbXf2CMNxvQIxvVRAQQ+YDXaiSQQqxChiOEFGoIQGidP/gVStxogLI68CqUuPH/BzSVcTzAoxCo7v//ObBIxK0QrO7/H1iCXIFT4QkIFxbaMh9wKYQJO0D5OYQUnoDF/QkCCuHJ1+APAYV3YOloAgGF8JTO84SAwjfQiGQIgPAZqV4rAACnKSarzdlc4gAAAABJRU5ErkJggg==', + 'L' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHA64qQw4AAAAB3RJTUUH0wUOEDAXMPIsJgAAAAlwSFlzAAALEgAACxIB0t1+/AAAADlJREFUeNpj/M9AHGAiUt2QUMiCYDJCaezhMBQ8M6pwVCEdFLJgCjEisRH5Zyh4hvoKGUdkQUq0QgARaARRV9jUFQAAAABJRU5ErkJggg==', + 'M' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHBhMfblpAAAAB3RJTUUH0wUOEDAqaJpgNwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAPNJREFUeNrdlK0OgzAUhS8bCQYxMYmcmEAgEAgejQfZQyG2pAIxOYlATkAu691o2tvSYia2iv7lyzn3NG0jhG1tt5H7Aggom7ZuaKPhBFqKV+pFWDGjjcxStEAYXuvBkrKtoVX+gdRiK9i6sxjgeVGUMJzWwZLACaZOTqoAOAronmrlBuvPkQsIgHn8BqnE2AMmhaaYJ57jqTRFMwsDyW249XaJLhAujizm7UFM5XCUXTqiTvBLQYWRc7H3WWt+3NmlyGbOGh9q/45mjQxUb+CA6A2jSqu5MweX0ooQWLJxLYx6fz0GwmBOsww5GP3At/dX4Ayb7qpFI9y5ygAAAABJRU5ErkJggg==', + 'N' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHC6DxyzwAAAAB3RJTUUH0wUOEDAye/b4YQAAAAlwSFlzAAALEgAACxIB0t1+/AAAALRJREFUeNpj/M9AHGAiUt0IV8gIARsRMlAROP8/BEB5Ii/+/0cVgXNRhRk8iFXIMIFYhRxXiFTIYPCDSIUMBcQqZNhDrEKZN0QqZAggViHDHIIKRSAUzx1CCrdAaZM/BBT+z4Eyaggp/KEDYbAcIaDw/wUWCEuBkML/PagBgFvhfxdiFT4RIVLh/zXEKvyfQqzCLypEKvx/hoVIhf9biFX4x4ZIhf8fCBCp8P8KNBHG4VQ0AwDEOyeZhO5p1AAAAABJRU5ErkJggg==', + 'O' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHQExDSDoAAAAB3RJTUUH0wUOEDA4myMRfwAAAAlwSFlzAAALEgAACxIB0t1+/AAAATtJREFUeNpj/M9AHGAiUt3wUsiCyv265ciZJ08YGGRkDGwCuFGk/iOBDwU8SDIcGS+Q5JAV7hBBs45nAVaFC1gwXTYBi8IdWNQxMCzAUPhBBJs6Bp4n6AoLYFI6az78f7NEB8ZNQFP4QwAqEfADwg+A+f0NqsI1UHGBDzCnSKC6EhYzB6B0Cj+UwZ+CKgNTeAZKu8C94QGlL6DGjAyU+wAeXC+gIiIQLiM0KzDC9CFCBlWICsnsL3aFMDc+hcs8QZWBKYSF2g24whvYFZpA6T1whUegNCwyoYGxAmYyLGZ+wOxYghqFX2BpO+APmP8nBspHj2uk1LPizf8PGyxgXPTUQ3x6JDqF//8/AYs6bHkGmCYF0O3FnguBCSaFA0kZS8IDJDlG1IIUVFK8eABMWzI6DgHCyDKMI7LEBQCD5YgI9wbKGgAAAABJRU5ErkJggg==', + 'P' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHQvR2Mn2AAAAB3RJTUUH0wUOEDEDMzPJGgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKVJREFUeNpj/M9AHGAiUh05ChlRAKdu4k5Ulf9hANMQiwf/EQCfQgaJB0QqZHAhViHDEbg0AV8vwRM8QN0v5vBAOSfw+BrMWQDl8MClGeEKGGEKQcRXHmQemTGD1RMy+N14o4MDyvGAS7NgGMaIzPHAYyIy4HhBZMy0EBmFIX+IUsjRgqQOi2fAgEVBwyVGGEUEQw2O3EbLzDWSFDIOhtJsVCEWAAC/Yt2X+2PYcgAAAABJRU5ErkJggg==', + 'Q' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHRxSC0wxAAAAB3RJTUUH0wUOEDEKSu9xvgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAW1JREFUeNpj/M9AHGAiUt2QUMiCzPm65cCZF08YGGRkDBx8uNFU/oeDDwU8SOIcBS/+IwOEwh0iaEYIrMCqcA4LprsmYFG4A4s6BoYFGAo/iGBTx8DzAl1hAUxKZ8WH/29W6MC4KWgKfwhAJXx+gPl/QmB+/4KqcANUXOQDVPiLBFRkCUwhJGb2wGzihzK4U6CMA6hReAbKc4F7wwFKX0CNGRkoB+HJJ1ARGZgAIziFM8J0IUIGXYjMZPaXkEJYYDyBiz+EuRFVoQKUdwWIz6qWvmRguAMVkUBVaIIUalPu9GgshIefAWrwrIHp//L/DQc4KjFiBi2uQ/7832KB5AX0uP5fAZOx2PDhfwNCIXrq+f9BhgEb4HmCkcL3YE3hSHkBnmfWYFMpsoaYXAgGDgcwFKLlaxYOCG2DqRCYrldkmIACUMIgZsaTI5Cg3IBNISp4AoovlT+EFf7/kYPkb3wK//8/YAGPGcYhUIYDAHBC9Yak1w7iAAAAAElFTkSuQmCC', + 'R' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHSkEuIgSAAAAB3RJTUUH0wUOEDEUsOBM3QAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOZJREFUeNpj/M9AHGAiUh0NFLJAaUY0YRkJHYcQdmSh/xCAzRCZHf8RAJ9CBpYNRCpkEHgBV4jfMx+mEOVGIDDAaTWY82aPBZTLgV8hUCkaH6cbP8B8gxHgyODjgwstMDfiVIgWQyFE+lrhB3EBznOFuJgxuUFMXPPEbPmDpA53FH55osKMIoAe4F826MDMvPMfj9WgWFGBBeIf/Ar/H4FxJhBQ+B8WzCIfCCi8A4uvBgIK/2fA/POCgMIXHFBuDqH02ABLM3cIKPwgAuVHEFD4fwJM4AIBhT9goe4AFWAcAsXesFIIAEvJyZHTCSiTAAAAAElFTkSuQmCC', + 'S' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHTRnvuTLAAAAB3RJTUUH0wUOEDEbIF9RTAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAVZJREFUeNpj/M9AHGAiUt2oQvyABYX398CWK3de/GBgkVEw8HFgRpH7jwSWqCDLyCxAlkNS+CcG3boY7AozMB3Wgk3hGSw+4HgBl0b4egIWhT9mYPGMBFQg4MH/D2tgvrKASzPC0yMjlP7CDSTOmrDIMDDwiHBsxzSRBypw5j9WgFDoAPNAxIQjX/ApXIDsC4OCLV9wKfzjwIACOEIO4IiZFxbooePzAqvC/z9qONBUStzAqvD//zc9BqgqNX5gVwgETxbkmCClvSk4FYLdsCMCptAGI2YSGV78+PLmz5MX4mDu1ByIMM9n9JiBxe4caGChy8MZMMsUIEFyAMoVwVC4BGaEwpI3/9/MEYGlJQyFPwQYsIE1mL7GlnCR0iNSXLtgqpO4gy1mvtigq1NAxCBKgP9pEUFWxlOCnNIYUYrmn3v23Ljx5gsw88sYOPhwI0sxDoEyHAABtSc836a1EQAAAABJRU5ErkJggg==', + 'T' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHgUdTbcyAAAAB3RJTUUH0wUOEDEgkVS4aAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADdJREFUeNpj/M9AHGAiUt0IVcgCpRlxyMODeSh4hmiFjGipB+Z7jEQ1FDwzqnBU4WBSyDicimYAb/AFTaJpyH8AAAAASUVORK5CYII=', + 'U' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHhEHl2NPAAAAB3RJTUUH0wUOEDEon48wWgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAKlJREFUeNpj/M9AHGAiUh3xClmgNCOUhrsEXYD6Vo8qHFVIuUIVKP0USr+E0jLoCjWg9A4ovQVNHJjUIaADZsILMPeFApRfA5X/D1N4AaZRYc6b/2+WwNQxXEBX+N8Bqxcc/mMoPMGCRR3LBUyF/2dgUTjjPxaF/6egm8ky5T9Whf9P2KCoMziBJPefEaWQurjnzIMXL34wsMhoWHiYo2hjHLjSbFQhXgAAKzejCLAOcVMAAAAASUVORK5CYII=', + 'V' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHh/gL05IAAAAB3RJTUUH0wUOEDEuduyVbwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAVNJREFUeNpj/M9AHGAiUt2owoFRaMgIAYlIMqlQMUMo/z8ITIByRP78hwMRqNgECBei8AULVPQIXN0RqAjLGwgfYrW4B1R4DdzmLVDaQxjZ6v8roDwVuIkqMK3/ka3+/0MAKn4FKn4D5uof/5GtZmCPgEpsQHNDBDsDitVwt5tA+RZQ/pn/qFYj3PQEzHsC5WnA3QyPmQQU3+5AE0VYDTfDBcxzgQbik/8YVv93gMp9AbK/cEAD8T+m1TBb/oD8veEHhs0IE2GmxADZMRAmz4//WKxGkv3DA2Gm/MeqcA/Ujj1w1hHsCv/LQKQz/megRzyawgqIvAxMRwsuhbCEAEvGT3AphEUwNCU5IEv9R8lcUH9/wAxE5HAEgjccSBI8X3CbKOyBxAnhxm3i/w1IEgdQZFA98/+PCFydDKo6VKsZmGPQ0wgOq/+fgYvfQTORkeq1AgCIAvD7+THsDgAAAABJRU5ErkJggg==', + 'W' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QFhZRKnzkAAAAB3RJTUUH0wUOEDIR66frkQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAXNJREFUeNrtlK1ywkAUhZdMZsJMKyIqKhAIBAKBiEBEVCDyCJV9iIo+Do9QGRERgUBEVCAqKhAIREVERURnTvfn3t27xSA6g+kOQ/ZkP/aec5NlBHXZSC7k/sE/AhUwoVkDPQ58/2RUQ2IC6B1XpN7MV8tg62/pUdjSDO7OwR2J0pbekpqZYlMG50bNSGwBDQ4pyV5YtCZ7mqZf1mO2IN2Jynba0XRx49pThjQCbEKWFfVRpIlBzlK4PuLdpxEWlTr4LHvYMEDOaTYS3HCW3DAJt8mmaSXYchZbOfEzkyYGZRbrEbX8qe7GMpLqFeyxV9F4fon1pwcxjxbqJpJTBPBJLoyHYSz1I3xq78aOMssepHZZHFjKhbX9/AZd6e9bsdABeyHTQXiE2PLO6PugCwiP/r1QVLYSlpXwKE1Wno7b7jY+hoWj0aegPyA9+jPrzgqwZJ0j8hhMVtElmDoD19FFPAvamc+sOXBm+KdYEzC63p/9D7Tr72kj/8qjAAAAAElFTkSuQmCC', + 'X' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHi/G9n7kAAAAB3RJTUUH0wUOEDIXAsROpAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAT9JREFUeNpj/M9AHGAiUt3IVhjKCAFr4RJroSKBMIH/YPBEAMITeQLh//8gAxHggQlAFf6fAdXnA+WnQPkT/qMp/O8AlVkA5h2A8kz+YCi8wQGREngA5PxQgXBYzvzHUPi/A2qIA5BdAmUX/Mei8I8BVHbK/wssEJbMB2wK/5+ASvPcgGlZ8x+rQriFAmghgKHwiwJKXPA8wKXw/x4UhT3/cSr8n4CkzuAPHoVvRODqWE6gyPxHTT1ffiAUCjCgAhRtDkgSFnisnoJixAScCh/wEBk8DmiucsChcA5MQQSMMQWrQlgiZ0iAByey5QiFPlBZnS//v+hgxjZc4QKYKVeAnCswby3AUAi3eAGKNoEn6Ap94A5EjXUfNIUrEA6EALgzl6AohCUGsAMhAOZMkTfICkMw3I5wZgiEyzicimYAFRFkVwgDfJ0AAAAASUVORK5CYII=', + 'Y' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHjkyIsu1AAAAB3RJTUUH0wUOEDIkvRQvsgAAAAlwSFlzAAALEgAACxIB0t1+/AAAANJJREFUeNrt1L0NgzAQBWAcUVB6AAZgBAoKhmAICoZgCAoKxmAECkbwABSUlBRILwF8duwYhFJEihJ37+6T5T9g8K6N20X3FdDDNjKKOeTIqZLtWcKBU73bCx1lPhgQNTWieY1zRLmGCZFQp1xTSSmBDUUgW754BF+GQLxAPUkMxMb0FlzUsqpKLXhxQPRqo+oIerggCvuMC7jhFJounA4gWhO2OIL6Jp/uzglHrh0fTyAaDRucQaTkUpxDQVBYDWZ/hYze6bsv/A8/DNlP/kgvwzuer4kCMGPZDgAAAABJRU5ErkJggg==', + 'Z' => 'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAAAAACpleexAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfTBQ4QHwfqWOdfAAAAB3RJTUUH0wUOEDIrLasyIwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAL5JREFUeNrl1C0OwkAQBWCWQIJEVPQIFT0GAlHBMRBIBKIHqahAIDlERY9R0UOs3ORh5qVLunmp5GfUZvczbzKzDqtltV7ofgtueHCp16h33xBGwn0KYqoTO/J868Csaj418e0cPujOkLDfmTsECcfcXOGhoC/NZQMUDBUDd5DwxiAtJGzprpCw48xVQcIhM1d6KOgLc/kIBcORgXtIeGGQOyRs6Oq0g7P92YbkRE7bRZhcwhh+6nLF5f7yx30B8Z7FgxzMWtEAAAAASUVORK5CYII=', + ); + + return $_png; +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/usercp_email.php b/phpBB2_old/includes/usercp_email.php new file mode 100644 index 0000000..c79dbcc --- /dev/null +++ b/phpBB2_old/includes/usercp_email.php @@ -0,0 +1,210 @@ +sql_query($sql) ) +{ + $row = $db->sql_fetchrow($result); + + $username = $row['username']; + $user_email = $row['user_email']; + $user_lang = $row['user_lang']; + + if ( $row['user_viewemail'] || $userdata['user_level'] == ADMIN ) + { + if ( time() - $userdata['user_emailtime'] < $board_config['flood_interval'] ) + { + message_die(GENERAL_MESSAGE, $lang['Flood_email_limit']); + } + + if ( isset($HTTP_POST_VARS['submit']) ) + { + $error = FALSE; + + if ( !empty($HTTP_POST_VARS['subject']) ) + { + $subject = trim(stripslashes($HTTP_POST_VARS['subject'])); + } + else + { + $error = TRUE; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $lang['Empty_subject_email'] : $lang['Empty_subject_email']; + } + + if ( !empty($HTTP_POST_VARS['message']) ) + { + $message = trim(stripslashes($HTTP_POST_VARS['message'])); + } + else + { + $error = TRUE; + $error_msg = ( !empty($error_msg) ) ? $error_msg . '
    ' . $lang['Empty_message_email'] : $lang['Empty_message_email']; + } + + if ( !$error ) + { + $sql = "UPDATE " . USERS_TABLE . " + SET user_emailtime = " . time() . " + WHERE user_id = " . $userdata['user_id']; + if ( $result = $db->sql_query($sql) ) + { + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($userdata['user_email']); + $emailer->replyto($userdata['user_email']); + + $email_headers = 'X-AntiAbuse: Board servername - ' . $server_name . "\n"; + $email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n"; + $email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n"; + $email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n"; + + $emailer->use_template('profile_send_email', $user_lang); + $emailer->email_address($user_email); + $emailer->set_subject($subject); + $emailer->extra_headers($email_headers); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'BOARD_EMAIL' => $board_config['board_email'], + 'FROM_USERNAME' => $userdata['username'], + 'TO_USERNAME' => $username, + 'MESSAGE' => $message) + ); + $emailer->send(); + $emailer->reset(); + + if ( !empty($HTTP_POST_VARS['cc_email']) ) + { + $emailer->from($userdata['user_email']); + $emailer->replyto($userdata['user_email']); + $emailer->use_template('profile_send_email'); + $emailer->email_address($userdata['user_email']); + $emailer->set_subject($subject); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'BOARD_EMAIL' => $board_config['board_email'], + 'FROM_USERNAME' => $userdata['username'], + 'TO_USERNAME' => $username, + 'MESSAGE' => $message) + ); + $emailer->send(); + $emailer->reset(); + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Email_sent'] . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + message_die(GENERAL_ERROR, 'Could not update last email time', '', __LINE__, __FILE__, $sql); + } + } + } + + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'profile_send_email.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + if ( $error ) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } + + $template->assign_vars(array( + 'USERNAME' => $username, + + 'S_HIDDEN_FIELDS' => '', + 'S_POST_ACTION' => append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL . "=$user_id"), + + 'L_SEND_EMAIL_MSG' => $lang['Send_email_msg'], + 'L_RECIPIENT' => $lang['Recipient'], + 'L_SUBJECT' => $lang['Subject'], + 'L_MESSAGE_BODY' => $lang['Message_body'], + 'L_MESSAGE_BODY_DESC' => $lang['Email_message_desc'], + 'L_EMPTY_SUBJECT_EMAIL' => $lang['Empty_subject_email'], + 'L_EMPTY_MESSAGE_EMAIL' => $lang['Empty_message_email'], + 'L_OPTIONS' => $lang['Options'], + 'L_CC_EMAIL' => $lang['CC_email'], + 'L_SPELLCHECK' => $lang['Spellcheck'], + 'L_SEND_EMAIL' => $lang['Send_email']) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + message_die(GENERAL_MESSAGE, $lang['User_prevent_email']); + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['User_not_exist']); +} + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/usercp_register.php b/phpBB2_old/includes/usercp_register.php new file mode 100644 index 0000000..f9643a1 --- /dev/null +++ b/phpBB2_old/includes/usercp_register.php @@ -0,0 +1,1137 @@ +', '<', '"', '&'); + +// --------------------------------------- +// Load agreement template since user has not yet +// agreed to registration conditions/coppa +// +function show_coppa() +{ + global $userdata, $template, $lang, $phpbb_root_path, $phpEx; + + $template->set_filenames(array( + 'body' => 'agreement.tpl') + ); + + $template->assign_vars(array( + 'REGISTRATION' => $lang['Registration'], + 'AGREEMENT' => $lang['Reg_agreement'], + "AGREE_OVER_13" => $lang['Agree_over_13'], + "AGREE_UNDER_13" => $lang['Agree_under_13'], + 'DO_NOT_AGREE' => $lang['Agree_not'], + + "U_AGREE_OVER13" => append_sid("profile.$phpEx?mode=register&agreed=true"), + "U_AGREE_UNDER13" => append_sid("profile.$phpEx?mode=register&agreed=true&coppa=true")) + ); + + $template->pparse('body'); + +} +// +// --------------------------------------- + +$error = FALSE; +$page_title = ( $mode == 'editprofile' ) ? $lang['Edit_profile'] : $lang['Register']; + +if ( $mode == 'register' && !isset($HTTP_POST_VARS['agreed']) && !isset($HTTP_GET_VARS['agreed']) ) +{ + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + show_coppa(); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); +} + +$coppa = ( empty($HTTP_POST_VARS['coppa']) && empty($HTTP_GET_VARS['coppa']) ) ? 0 : TRUE; + +// +// Check and initialize some variables if needed +// +if ( + isset($HTTP_POST_VARS['submit']) || + isset($HTTP_POST_VARS['avatargallery']) || + isset($HTTP_POST_VARS['submitavatar']) || + isset($HTTP_POST_VARS['cancelavatar']) || + $mode == 'register' ) +{ + include($phpbb_root_path . 'includes/functions_validate.'.$phpEx); + include($phpbb_root_path . 'includes/bbcode.'.$phpEx); + include($phpbb_root_path . 'includes/functions_post.'.$phpEx); + + if ( $mode == 'editprofile' ) + { + $user_id = intval($HTTP_POST_VARS['user_id']); + $current_email = trim(htmlspecialchars($HTTP_POST_VARS['current_email'])); + } + + $strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests'); + $strip_var_list['confirm_code'] = 'confirm_code'; + + // Strip all tags from data ... may p**s some people off, bah, strip_tags is + // doing the job but can still break HTML output ... have no choice, have + // to use htmlspecialchars ... be prepared to be moaned at. + while( list($var, $param) = @each($strip_var_list) ) + { + if ( !empty($HTTP_POST_VARS[$param]) ) + { + $$var = trim(htmlspecialchars($HTTP_POST_VARS[$param])); + } + } + + $trim_var_list = array('cur_password' => 'cur_password', 'new_password' => 'new_password', 'password_confirm' => 'password_confirm', 'signature' => 'signature'); + + while( list($var, $param) = @each($trim_var_list) ) + { + if ( !empty($HTTP_POST_VARS[$param]) ) + { + $$var = trim($HTTP_POST_VARS[$param]); + } + } + + $signature = str_replace('
    ', "\n", $signature); + + // Run some validation on the optional fields. These are pass-by-ref, so they'll be changed to + // empty strings if they fail. + validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature); + + $viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : 0; + $allowviewonline = ( isset($HTTP_POST_VARS['hideonline']) ) ? ( ($HTTP_POST_VARS['hideonline']) ? 0 : TRUE ) : TRUE; + $notifyreply = ( isset($HTTP_POST_VARS['notifyreply']) ) ? ( ($HTTP_POST_VARS['notifyreply']) ? TRUE : 0 ) : 0; + $notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE : 0 ) : TRUE; + $popup_pm = ( isset($HTTP_POST_VARS['popup_pm']) ) ? ( ($HTTP_POST_VARS['popup_pm']) ? TRUE : 0 ) : TRUE; + + if ( $mode == 'register' ) + { + $attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( ($HTTP_POST_VARS['attachsig']) ? TRUE : 0 ) : $board_config['allow_sig']; + + $allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $board_config['allow_html']; + $allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $board_config['allow_bbcode']; + $allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $board_config['allow_smilies']; + } + else + { + $attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( ($HTTP_POST_VARS['attachsig']) ? TRUE : 0 ) : 0; + + $allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $userdata['user_allowhtml']; + $allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $userdata['user_allowbbcode']; + $allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $userdata['user_allowsmile']; + } + + $user_style = ( isset($HTTP_POST_VARS['style']) ) ? intval($HTTP_POST_VARS['style']) : $board_config['default_style']; + + if ( !empty($HTTP_POST_VARS['language']) ) + { + if ( preg_match('/^[a-z_]+$/i', $HTTP_POST_VARS['language']) ) + { + $user_lang = htmlspecialchars($HTTP_POST_VARS['language']); + } + else + { + $error = true; + $error_msg = $lang['Fields_empty']; + } + } + else + { + $user_lang = $board_config['default_lang']; + } + + $user_timezone = ( isset($HTTP_POST_VARS['timezone']) ) ? doubleval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone']; + + $sql = "SELECT config_value + FROM " . CONFIG_TABLE . " + WHERE config_name = 'default_dateformat'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select default dateformat', '', __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + $board_config['default_dateformat'] = $row['config_value']; + $user_dateformat = ( !empty($HTTP_POST_VARS['dateformat']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['dateformat'])) : $board_config['default_dateformat']; + + $user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarselect']) : ( ( isset($HTTP_POST_VARS['avatarlocal']) ) ? htmlspecialchars($HTTP_POST_VARS['avatarlocal']) : '' ); + + $user_avatar_remoteurl = ( !empty($HTTP_POST_VARS['avatarremoteurl']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['avatarremoteurl'])) : ''; + $user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' ); + $user_avatar_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : ''; + $user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0; + $user_avatar_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : ''; + + $user_avatar = ( empty($user_avatar_loc) && $mode == 'editprofile' ) ? $userdata['user_avatar'] : ''; + $user_avatar_type = ( empty($user_avatar_loc) && $mode == 'editprofile' ) ? $userdata['user_avatar_type'] : ''; + + if ( (isset($HTTP_POST_VARS['avatargallery']) || isset($HTTP_POST_VARS['submitavatar']) || isset($HTTP_POST_VARS['cancelavatar'])) && (!isset($HTTP_POST_VARS['submit'])) ) + { + $username = stripslashes($username); + $email = stripslashes($email); + $cur_password = htmlspecialchars(stripslashes($cur_password)); + $new_password = htmlspecialchars(stripslashes($new_password)); + $password_confirm = htmlspecialchars(stripslashes($password_confirm)); + + $icq = stripslashes($icq); + $aim = stripslashes($aim); + $msn = stripslashes($msn); + $yim = stripslashes($yim); + + $website = stripslashes($website); + $location = stripslashes($location); + $occupation = stripslashes($occupation); + $interests = stripslashes($interests); + $signature = stripslashes($signature); + + $user_lang = stripslashes($user_lang); + $user_dateformat = stripslashes($user_dateformat); + + if ( !isset($HTTP_POST_VARS['cancelavatar'])) + { + $user_avatar = $user_avatar_local; + $user_avatar_type = USER_AVATAR_GALLERY; + } + } +} + +// +// Let's make sure the user isn't logged in while registering, +// and ensure that they were trying to register a second time +// (Prevents double registrations) +// +if ($mode == 'register' && ($userdata['session_logged_in'] || $username == $userdata['username'])) +{ + message_die(GENERAL_MESSAGE, $lang['Username_taken'], '', __LINE__, __FILE__); +} + +// +// Did the user submit? In this case build a query to update the users profile in the DB +// +if ( isset($HTTP_POST_VARS['submit']) ) +{ + include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx); + + $passwd_sql = ''; + if ( $mode == 'editprofile' ) + { + if ( $user_id != $userdata['user_id'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Wrong_Profile']; + } + } + else if ( $mode == 'register' ) + { + if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Fields_empty']; + } + } + + if ($board_config['enable_confirm'] && $mode == 'register') + { + if (empty($HTTP_POST_VARS['confirm_id'])) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Confirm_code_wrong']; + } + else + { + $confirm_id = htmlspecialchars($HTTP_POST_VARS['confirm_id']); + if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id)) + { + $confirm_id = ''; + } + + $sql = 'SELECT code + FROM ' . CONFIRM_TABLE . " + WHERE confirm_id = '$confirm_id' + AND session_id = '" . $userdata['session_id'] . "'"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain confirmation code', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + if ($row['code'] != $confirm_code) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Confirm_code_wrong']; + } + else + { + $sql = 'DELETE FROM ' . CONFIRM_TABLE . " + WHERE confirm_id = '$confirm_id' + AND session_id = '" . $userdata['session_id'] . "'"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not delete confirmation code', __LINE__, __FILE__, $sql); + } + } + } + else + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Confirm_code_wrong']; + } + $db->sql_freeresult($result); + } + } + + $passwd_sql = ''; + if ( !empty($new_password) && !empty($password_confirm) ) + { + if ( $new_password != $password_confirm ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Password_mismatch']; + } + else if ( strlen($new_password) > 32 ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Password_long']; + } + else + { + if ( $mode == 'editprofile' ) + { + $sql = "SELECT user_password + FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['user_password'] != md5($cur_password) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Current_password_mismatch']; + } + } + + if ( !$error ) + { + $new_password = md5($new_password); + $passwd_sql = "user_password = '$new_password', "; + } + } + } + else if ( ( empty($new_password) && !empty($password_confirm) ) || ( !empty($new_password) && empty($password_confirm) ) ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Password_mismatch']; + } + + // + // Do a ban check on this email address + // + if ( $email != $userdata['user_email'] || $mode == 'register' ) + { + $result = validate_email($email); + if ( $result['error'] ) + { + $email = $userdata['user_email']; + + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $result['error_msg']; + } + + if ( $mode == 'editprofile' ) + { + $sql = "SELECT user_password + FROM " . USERS_TABLE . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrow($result); + + if ( $row['user_password'] != md5($cur_password) ) + { + $email = $userdata['user_email']; + + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Current_password_mismatch']; + } + } + } + + $username_sql = ''; + if ( $board_config['allow_namechange'] || $mode == 'register' ) + { + if ( empty($username) ) + { + // Error is already triggered, since one field is empty. + $error = TRUE; + } + else if ( $username != $userdata['username'] || $mode == 'register' ) + { + if (strtolower($username) != strtolower($userdata['username'])) + { + $result = validate_username($username); + if ( $result['error'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $result['error_msg']; + } + } + + if (!$error) + { + $username_sql = "username = '" . str_replace("\'", "''", $username) . "', "; + } + } + } + + if ( $signature != '' ) + { + if ( strlen($signature) > $board_config['max_sig_chars'] ) + { + $error = TRUE; + $error_msg .= ( ( isset($error_msg) ) ? '
    ' : '' ) . $lang['Signature_too_long']; + } + + if ( $signature_bbcode_uid == '' ) + { + $signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : ''; + } + $signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid); + } + + if ( $website != '' ) + { + rawurlencode($website); + } + + $avatar_sql = ''; + + if ( isset($HTTP_POST_VARS['avatardel']) && $mode == 'editprofile' ) + { + $avatar_sql = user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']); + } + + if ( ( !empty($user_avatar_upload) || !empty($user_avatar_name) ) && $board_config['allow_avatar_upload'] ) + { + if ( !empty($user_avatar_upload) ) + { + $avatar_mode = ( !empty($user_avatar_name) ) ? 'local' : 'remote'; + $avatar_sql = user_avatar_upload($mode, $avatar_mode, $userdata['user_avatar'], $userdata['user_avatar_type'], $error, $error_msg, $user_avatar_upload, $user_avatar_name, $user_avatar_size, $user_avatar_filetype); + } + else if ( !empty($user_avatar_name) ) + { + $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024)); + + $error = true; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $l_avatar_size; + } + } + else if ( $user_avatar_remoteurl != '' && $board_config['allow_avatar_remote'] ) + { + if ( @file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])) ) + { + @unlink(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])); + } + $avatar_sql = user_avatar_url($mode, $error, $error_msg, $user_avatar_remoteurl); + } + else if ( $user_avatar_local != '' && $board_config['allow_avatar_local'] ) + { + if ( @file_exists(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])) ) + { + @unlink(@phpbb_realpath('./' . $board_config['avatar_path'] . '/' . $userdata['user_avatar'])); + } + $avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local); + } + + if ( !$error ) + { + if ( $avatar_sql == '' ) + { + $avatar_sql = ( $mode == 'editprofile' ) ? '' : "'', " . USER_AVATAR_NONE; + } + + if ( $mode == 'editprofile' ) + { + if ( $email != $userdata['user_email'] && $board_config['require_activation'] != USER_ACTIVATION_NONE && $userdata['user_level'] != ADMIN ) + { + $user_active = 0; + + $user_actkey = gen_rand_string(true); + $key_len = 54 - ( strlen($server_url) ); + $key_len = ( $key_len > 6 ) ? $key_len : 6; + $user_actkey = substr($user_actkey, 0, $key_len); + + if ( $userdata['session_logged_in'] ) + { + session_end($userdata['session_id'], $userdata['user_id']); + } + } + else + { + $user_active = 1; + $user_actkey = ''; + } + + $sql = "UPDATE " . USERS_TABLE . " + SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . " + WHERE user_id = $user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql); + } + + if ( !$user_active ) + { + // + // The users account has been deactivated, send them an email with a new activation key + // + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('user_activate', stripslashes($user_lang)); + $emailer->email_address($email); + $emailer->set_subject($lang['Reactivate']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + + $message = $lang['Profile_updated_inactive'] . '

    ' . sprintf($lang['Click_return_index'], '', ''); + } + else + { + $message = $lang['Profile_updated'] . '

    ' . sprintf($lang['Click_return_index'], '', ''); + } + + $template->assign_vars(array( + "META" => '') + ); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + $sql = "SELECT MAX(user_id) AS total + FROM " . USERS_TABLE; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain next user_id information', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain next user_id information', '', __LINE__, __FILE__, $sql); + } + $user_id = $row['total'] + 1; + + // + // Get current date + // + $sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey) + VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popup_pm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, 0, 1, "; + if ( $board_config['require_activation'] == USER_ACTIVATION_SELF || $board_config['require_activation'] == USER_ACTIVATION_ADMIN || $coppa ) + { + $user_actkey = gen_rand_string(true); + $key_len = 54 - (strlen($server_url)); + $key_len = ( $key_len > 6 ) ? $key_len : 6; + $user_actkey = substr($user_actkey, 0, $key_len); + $sql .= "0, '" . str_replace("\'", "''", $user_actkey) . "')"; + } + else + { + $sql .= "1, '')"; + } + + if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, 'Could not insert data into users table', '', __LINE__, __FILE__, $sql); + } + + $sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user, group_moderator) + VALUES ('', 'Personal User', 1, 0)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql); + } + + $group_id = $db->sql_nextid(); + + $sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) + VALUES ($user_id, $group_id, 0)"; + if( !($result = $db->sql_query($sql, END_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql); + } + + if ( $coppa ) + { + $message = $lang['COPPA']; + $email_template = 'coppa_welcome_inactive'; + } + else if ( $board_config['require_activation'] == USER_ACTIVATION_SELF ) + { + $message = $lang['Account_inactive']; + $email_template = 'user_welcome_inactive'; + } + else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) + { + $message = $lang['Account_inactive_admin']; + $email_template = 'admin_welcome_inactive'; + } + else + { + $message = $lang['Account_added']; + $email_template = 'user_welcome'; + } + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template($email_template, stripslashes($user_lang)); + $emailer->email_address($email); + $emailer->set_subject(sprintf($lang['Welcome_subject'], $board_config['sitename'])); + + if( $coppa ) + { + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']), + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'PASSWORD' => $password_confirm, + 'EMAIL_SIG' => str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']), + + 'FAX_INFO' => $board_config['coppa_fax'], + 'MAIL_INFO' => $board_config['coppa_mail'], + 'EMAIL_ADDRESS' => $email, + 'ICQ' => $icq, + 'AIM' => $aim, + 'YIM' => $yim, + 'MSN' => $msn, + 'WEB_SITE' => $website, + 'FROM' => $location, + 'OCC' => $occupation, + 'INTERESTS' => $interests, + 'SITENAME' => $board_config['sitename'])); + } + else + { + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']), + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'PASSWORD' => $password_confirm, + 'EMAIL_SIG' => str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']), + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + } + + $emailer->send(); + $emailer->reset(); + + if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) + { + $sql = "SELECT user_email, user_lang + FROM " . USERS_TABLE . " + WHERE user_level = " . ADMIN; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->email_address(trim($row['user_email'])); + $emailer->use_template("admin_activate", $row['user_lang']); + $emailer->set_subject($lang['New_account_subject']); + + $emailer->assign_vars(array( + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']), + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + } + $db->sql_freeresult($result); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } // if mode == register + } +} // End of submit + + +if ( $error ) +{ + // + // If an error occured we need to stripslashes on returned data + // + $username = stripslashes($username); + $email = stripslashes($email); + $new_password = ''; + $password_confirm = ''; + + $icq = stripslashes($icq); + $aim = str_replace('+', ' ', stripslashes($aim)); + $msn = stripslashes($msn); + $yim = stripslashes($yim); + + $website = stripslashes($website); + $location = stripslashes($location); + $occupation = stripslashes($occupation); + $interests = stripslashes($interests); + $signature = stripslashes($signature); + $signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $signature) : $signature; + + $user_lang = stripslashes($user_lang); + $user_dateformat = stripslashes($user_dateformat); + +} +else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) ) +{ + $user_id = $userdata['user_id']; + $username = $userdata['username']; + $email = $userdata['user_email']; + $new_password = ''; + $password_confirm = ''; + + $icq = $userdata['user_icq']; + $aim = str_replace('+', ' ', $userdata['user_aim']); + $msn = $userdata['user_msnm']; + $yim = $userdata['user_yim']; + + $website = $userdata['user_website']; + $location = $userdata['user_from']; + $occupation = $userdata['user_occ']; + $interests = $userdata['user_interests']; + $signature_bbcode_uid = $userdata['user_sig_bbcode_uid']; + $signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $userdata['user_sig']) : $userdata['user_sig']; + + $viewemail = $userdata['user_viewemail']; + $notifypm = $userdata['user_notify_pm']; + $popup_pm = $userdata['user_popup_pm']; + $notifyreply = $userdata['user_notify']; + $attachsig = $userdata['user_attachsig']; + $allowhtml = $userdata['user_allowhtml']; + $allowbbcode = $userdata['user_allowbbcode']; + $allowsmilies = $userdata['user_allowsmile']; + $allowviewonline = $userdata['user_allow_viewonline']; + + $user_avatar = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar'] : ''; + $user_avatar_type = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar_type'] : USER_AVATAR_NONE; + + $user_style = $userdata['user_style']; + $user_lang = $userdata['user_lang']; + $user_timezone = $userdata['user_timezone']; + $user_dateformat = $userdata['user_dateformat']; +} + +// +// Default pages +// +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +make_jumpbox('viewforum.'.$phpEx); + +if ( $mode == 'editprofile' ) +{ + if ( $user_id != $userdata['user_id'] ) + { + $error = TRUE; + $error_msg = $lang['Wrong_Profile']; + } +} + +if( isset($HTTP_POST_VARS['avatargallery']) && !$error ) +{ + include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx); + + $avatar_category = ( !empty($HTTP_POST_VARS['avatarcategory']) ) ? htmlspecialchars($HTTP_POST_VARS['avatarcategory']) : ''; + + $template->set_filenames(array( + 'body' => 'profile_avatar_gallery.tpl') + ); + + $allowviewonline = !$allowviewonline; + + display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, &$new_password, &$cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popup_pm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']); +} +else +{ + include($phpbb_root_path . 'includes/functions_selects.'.$phpEx); + + if ( !isset($coppa) ) + { + $coppa = FALSE; + } + + if ( !isset($user_template) ) + { + $selected_template = $board_config['system_template']; + } + + $avatar_img = ''; + if ( $user_avatar_type ) + { + switch( $user_avatar_type ) + { + case USER_AVATAR_UPLOAD: + $avatar_img = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $avatar_img = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $avatar_img = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + $s_hidden_fields = ''; + if( $mode == 'editprofile' ) + { + $s_hidden_fields .= ''; + // + // Send the users current email address. If they change it, and account activation is turned on + // the user account will be disabled and the user will have to reactivate their account. + // + $s_hidden_fields .= ''; + } + + if ( !empty($user_avatar_local) ) + { + $s_hidden_fields .= ''; + } + + $html_status = ( $userdata['user_allowhtml'] && $board_config['allow_html'] ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; + $bbcode_status = ( $userdata['user_allowbbcode'] && $board_config['allow_bbcode'] ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; + $smilies_status = ( $userdata['user_allowsmile'] && $board_config['allow_smilies'] ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; + + if ( $error ) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } + + $template->set_filenames(array( + 'body' => 'profile_add_body.tpl') + ); + + if ( $mode == 'editprofile' ) + { + $template->assign_block_vars('switch_edit_profile', array()); + } + + if ( ($mode == 'register') || ($board_config['allow_namechange']) ) + { + $template->assign_block_vars('switch_namechange_allowed', array()); + } + else + { + $template->assign_block_vars('switch_namechange_disallowed', array()); + } + + + // Visual Confirmation + $confirm_image = ''; + if (!empty($board_config['enable_confirm']) && $mode == 'register') + { + $sql = 'SELECT session_id + FROM ' . SESSIONS_TABLE; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $confirm_sql = ''; + do + { + $confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'"; + } + while ($row = $db->sql_fetchrow($result)); + + $sql = 'DELETE FROM ' . CONFIRM_TABLE . " + WHERE session_id NOT IN ($confirm_sql)"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql); + } + } + $db->sql_freeresult($result); + + $sql = 'SELECT COUNT(session_id) AS attempts + FROM ' . CONFIRM_TABLE . " + WHERE session_id = '" . $userdata['session_id'] . "'"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not obtain confirm code count', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + if ($row['attempts'] > 3) + { + message_die(GENERAL_MESSAGE, $lang['Too_many_registers']); + } + } + $db->sql_freeresult($result); + + $confirm_chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9'); + + list($usec, $sec) = explode(' ', microtime()); + mt_srand($sec * $usec); + + $max_chars = count($confirm_chars) - 1; + $code = ''; + for ($i = 0; $i < 6; $i++) + { + $code .= $confirm_chars[mt_rand(0, $max_chars)]; + } + + $confirm_id = md5(uniqid($user_ip)); + + $sql = 'INSERT INTO ' . CONFIRM_TABLE . " (confirm_id, session_id, code) + VALUES ('$confirm_id', '". $userdata['session_id'] . "', '$code')"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not insert new confirm code information', '', __LINE__, __FILE__, $sql); + } + + unset($code); + + $confirm_image = (@extension_loaded('zlib')) ? '' : ''; + $s_hidden_fields .= ''; + + $template->assign_block_vars('switch_confirm', array()); + } + + + // + // Let's do an overall check for settings/versions which would prevent + // us from doing file uploads.... + // + $ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; + $form_enctype = ( @$ini_val('file_uploads') == '0' || strtolower(@$ini_val('file_uploads') == 'off') || phpversion() == '4.0.4pl1' || !$board_config['allow_avatar_upload'] || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"'; + + $template->assign_vars(array( + 'USERNAME' => $username, + 'CUR_PASSWORD' => $cur_password, + 'NEW_PASSWORD' => $new_password, + 'PASSWORD_CONFIRM' => $password_confirm, + 'EMAIL' => $email, + 'CONFIRM_IMG' => $confirm_image, + 'YIM' => $yim, + 'ICQ' => $icq, + 'MSN' => $msn, + 'AIM' => $aim, + 'OCCUPATION' => $occupation, + 'INTERESTS' => $interests, + 'LOCATION' => $location, + 'WEBSITE' => $website, + 'SIGNATURE' => str_replace('
    ', "\n", $signature), + 'VIEW_EMAIL_YES' => ( $viewemail ) ? 'checked="checked"' : '', + 'VIEW_EMAIL_NO' => ( !$viewemail ) ? 'checked="checked"' : '', + 'HIDE_USER_YES' => ( !$allowviewonline ) ? 'checked="checked"' : '', + 'HIDE_USER_NO' => ( $allowviewonline ) ? 'checked="checked"' : '', + 'NOTIFY_PM_YES' => ( $notifypm ) ? 'checked="checked"' : '', + 'NOTIFY_PM_NO' => ( !$notifypm ) ? 'checked="checked"' : '', + 'POPUP_PM_YES' => ( $popup_pm ) ? 'checked="checked"' : '', + 'POPUP_PM_NO' => ( !$popup_pm ) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_YES' => ( $attachsig ) ? 'checked="checked"' : '', + 'ALWAYS_ADD_SIGNATURE_NO' => ( !$attachsig ) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_YES' => ( $notifyreply ) ? 'checked="checked"' : '', + 'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_YES' => ( $allowbbcode ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_BBCODE_NO' => ( !$allowbbcode ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_YES' => ( $allowhtml ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_HTML_NO' => ( !$allowhtml ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_YES' => ( $allowsmilies ) ? 'checked="checked"' : '', + 'ALWAYS_ALLOW_SMILIES_NO' => ( !$allowsmilies ) ? 'checked="checked"' : '', + 'ALLOW_AVATAR' => $board_config['allow_avatar_upload'], + 'AVATAR' => $avatar_img, + 'AVATAR_SIZE' => $board_config['avatar_filesize'], + 'LANGUAGE_SELECT' => language_select($user_lang, 'language'), + 'STYLE_SELECT' => style_select($user_style, 'style'), + 'TIMEZONE_SELECT' => tz_select($user_timezone, 'timezone'), + 'DATE_FORMAT' => $user_dateformat, + 'HTML_STATUS' => $html_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'SMILIES_STATUS' => $smilies_status, + + 'L_CURRENT_PASSWORD' => $lang['Current_password'], + 'L_NEW_PASSWORD' => ( $mode == 'register' ) ? $lang['Password'] : $lang['New_password'], + 'L_CONFIRM_PASSWORD' => $lang['Confirm_password'], + 'L_CONFIRM_PASSWORD_EXPLAIN' => ( $mode == 'editprofile' ) ? $lang['Confirm_password_explain'] : '', + 'L_PASSWORD_IF_CHANGED' => ( $mode == 'editprofile' ) ? $lang['password_if_changed'] : '', + 'L_PASSWORD_CONFIRM_IF_CHANGED' => ( $mode == 'editprofile' ) ? $lang['password_confirm_if_changed'] : '', + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + 'L_ICQ_NUMBER' => $lang['ICQ'], + 'L_MESSENGER' => $lang['MSNM'], + 'L_YAHOO' => $lang['YIM'], + 'L_WEBSITE' => $lang['Website'], + 'L_AIM' => $lang['AIM'], + 'L_LOCATION' => $lang['Location'], + 'L_OCCUPATION' => $lang['Occupation'], + 'L_BOARD_LANGUAGE' => $lang['Board_lang'], + 'L_BOARD_STYLE' => $lang['Board_style'], + 'L_TIMEZONE' => $lang['Timezone'], + 'L_DATE_FORMAT' => $lang['Date_format'], + 'L_DATE_FORMAT_EXPLAIN' => $lang['Date_format_explain'], + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + 'L_INTERESTS' => $lang['Interests'], + 'L_ALWAYS_ALLOW_SMILIES' => $lang['Always_smile'], + 'L_ALWAYS_ALLOW_BBCODE' => $lang['Always_bbcode'], + 'L_ALWAYS_ALLOW_HTML' => $lang['Always_html'], + 'L_HIDE_USER' => $lang['Hide_user'], + 'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'], + + 'L_AVATAR_PANEL' => $lang['Avatar_panel'], + 'L_AVATAR_EXPLAIN' => sprintf($lang['Avatar_explain'], $board_config['avatar_max_width'], $board_config['avatar_max_height'], (round($board_config['avatar_filesize'] / 1024))), + 'L_UPLOAD_AVATAR_FILE' => $lang['Upload_Avatar_file'], + 'L_UPLOAD_AVATAR_URL' => $lang['Upload_Avatar_URL'], + 'L_UPLOAD_AVATAR_URL_EXPLAIN' => $lang['Upload_Avatar_URL_explain'], + 'L_AVATAR_GALLERY' => $lang['Select_from_gallery'], + 'L_SHOW_GALLERY' => $lang['View_avatar_gallery'], + 'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'], + 'L_LINK_REMOTE_AVATAR_EXPLAIN' => $lang['Link_remote_Avatar_explain'], + 'L_DELETE_AVATAR' => $lang['Delete_Image'], + 'L_CURRENT_IMAGE' => $lang['Current_Image'], + + 'L_SIGNATURE' => $lang['Signature'], + 'L_SIGNATURE_EXPLAIN' => sprintf($lang['Signature_explain'], $board_config['max_sig_chars']), + 'L_NOTIFY_ON_REPLY' => $lang['Always_notify'], + 'L_NOTIFY_ON_REPLY_EXPLAIN' => $lang['Always_notify_explain'], + 'L_NOTIFY_ON_PRIVMSG' => $lang['Notify_on_privmsg'], + 'L_POPUP_ON_PRIVMSG' => $lang['Popup_on_privmsg'], + 'L_POPUP_ON_PRIVMSG_EXPLAIN' => $lang['Popup_on_privmsg_explain'], + 'L_PREFERENCES' => $lang['Preferences'], + 'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'], + 'L_ITEMS_REQUIRED' => $lang['Items_required'], + 'L_REGISTRATION_INFO' => $lang['Registration_info'], + 'L_PROFILE_INFO' => $lang['Profile_info'], + 'L_PROFILE_INFO_NOTICE' => $lang['Profile_info_warn'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + + 'L_CONFIRM_CODE_IMPAIRED' => sprintf($lang['Confirm_code_impaired'], '', ''), + 'L_CONFIRM_CODE' => $lang['Confirm_code'], + 'L_CONFIRM_CODE_EXPLAIN' => $lang['Confirm_code_explain'], + + 'S_ALLOW_AVATAR_UPLOAD' => $board_config['allow_avatar_upload'], + 'S_ALLOW_AVATAR_LOCAL' => $board_config['allow_avatar_local'], + 'S_ALLOW_AVATAR_REMOTE' => $board_config['allow_avatar_remote'], + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_FORM_ENCTYPE' => $form_enctype, + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx")) + ); + + // + // This is another cheat using the block_var capability + // of the templates to 'fake' an IF...ELSE...ENDIF solution + // it works well :) + // + if ( $mode != 'register' ) + { + if ( $userdata['user_allowavatar'] && ( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] ) ) + { + $template->assign_block_vars('switch_avatar_block', array() ); + + if ( $board_config['allow_avatar_upload'] && file_exists(@phpbb_realpath('./' . $board_config['avatar_path'])) ) + { + if ( $form_enctype != '' ) + { + $template->assign_block_vars('switch_avatar_block.switch_avatar_local_upload', array() ); + } + $template->assign_block_vars('switch_avatar_block.switch_avatar_remote_upload', array() ); + } + + if ( $board_config['allow_avatar_remote'] ) + { + $template->assign_block_vars('switch_avatar_block.switch_avatar_remote_link', array() ); + } + + if ( $board_config['allow_avatar_local'] && file_exists(@phpbb_realpath('./' . $board_config['avatar_gallery_path'])) ) + { + $template->assign_block_vars('switch_avatar_block.switch_avatar_local_gallery', array() ); + } + } + } +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/usercp_sendpasswd.php b/phpBB2_old/includes/usercp_sendpasswd.php new file mode 100644 index 0000000..6e2a7e8 --- /dev/null +++ b/phpBB2_old/includes/usercp_sendpasswd.php @@ -0,0 +1,138 @@ +sql_query($sql) ) + { + if ( $row = $db->sql_fetchrow($result) ) + { + if ( !$row['user_active'] ) + { + message_die(GENERAL_MESSAGE, $lang['No_send_account_inactive']); + } + + $username = $row['username']; + $user_id = $row['user_id']; + + $user_actkey = gen_rand_string(true); + $key_len = 54 - strlen($server_url); + $key_len = ( $str_len > 6 ) ? $key_len : 6; + $user_actkey = substr($user_actkey, 0, $key_len); + $user_password = gen_rand_string(false); + + $sql = "UPDATE " . USERS_TABLE . " + SET user_newpasswd = '" . md5($user_password) . "', user_actkey = '$user_actkey' + WHERE user_id = " . $row['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update new password information', '', __LINE__, __FILE__, $sql); + } + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('user_activate_passwd', $row['user_lang']); + $emailer->email_address($row['user_email']); + $emailer->set_subject($lang['New_password_activation']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => $username, + 'PASSWORD' => $user_password, + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Password_updated'] . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_email_match']); + } + } + else + { + message_die(GENERAL_ERROR, 'Could not obtain user information for sendpassword', '', __LINE__, __FILE__, $sql); + } +} +else +{ + $username = ''; + $email = ''; +} + +// +// Output basic page +// +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'profile_send_pass.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'USERNAME' => $username, + 'EMAIL' => $email, + + 'L_SEND_PASSWORD' => $lang['Send_password'], + 'L_ITEMS_REQUIRED' => $lang['Items_required'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'L_SUBMIT' => $lang['Submit'], + 'L_RESET' => $lang['Reset'], + + 'S_HIDDEN_FIELDS' => '', + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx?mode=sendpassword")) +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/includes/usercp_viewprofile.php b/phpBB2_old/includes/usercp_viewprofile.php new file mode 100644 index 0000000..b4f1c01 --- /dev/null +++ b/phpBB2_old/includes/usercp_viewprofile.php @@ -0,0 +1,244 @@ +sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain ranks information', '', __LINE__, __FILE__, $sql); +} + +$ranksrow = array(); +while ( $row = $db->sql_fetchrow($result) ) +{ + $ranksrow[] = $row; +} +$db->sql_freeresult($result); + +// +// Output page header and profile_view template +// +$template->set_filenames(array( + 'body' => 'profile_view_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +// +// Calculate the number of days this user has been a member ($memberdays) +// Then calculate their posts per day +// +$regdate = $profiledata['user_regdate']; +$memberdays = max(1, round( ( time() - $regdate ) / 86400 )); +$posts_per_day = $profiledata['user_posts'] / $memberdays; + +// Get the users percentage of total posts +if ( $profiledata['user_posts'] != 0 ) +{ + $total_posts = get_db_stat('postcount'); + $percentage = ( $total_posts ) ? min(100, ($profiledata['user_posts'] / $total_posts) * 100) : 0; +} +else +{ + $percentage = 0; +} + +$avatar_img = ''; +if ( $profiledata['user_avatar_type'] && $profiledata['user_allowavatar'] ) +{ + switch( $profiledata['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $avatar_img = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $avatar_img = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $avatar_img = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } +} + +$poster_rank = ''; +$rank_image = ''; +if ( $profiledata['user_rank'] ) +{ + for($i = 0; $i < count($ranksrow); $i++) + { + if ( $profiledata['user_rank'] == $ranksrow[$i]['rank_id'] && $ranksrow[$i]['rank_special'] ) + { + $poster_rank = $ranksrow[$i]['rank_title']; + $rank_image = ( $ranksrow[$i]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } +} +else +{ + for($i = 0; $i < count($ranksrow); $i++) + { + if ( $profiledata['user_posts'] >= $ranksrow[$i]['rank_min'] && !$ranksrow[$i]['rank_special'] ) + { + $poster_rank = $ranksrow[$i]['rank_title']; + $rank_image = ( $ranksrow[$i]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } +} + +$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=" . $profiledata['user_id']); +$pm_img = '' . $lang['Send_private_message'] . ''; +$pm = '' . $lang['Send_private_message'] . ''; + +if ( !empty($profiledata['user_viewemail']) || $userdata['user_level'] == ADMIN ) +{ + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $profiledata['user_id']) : 'mailto:' . $profiledata['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; +} +else +{ + $email_img = ' '; + $email = ' '; +} + +$www_img = ( $profiledata['user_website'] ) ? '' . $lang['Visit_website'] . '' : ' '; +$www = ( $profiledata['user_website'] ) ? '' . $profiledata['user_website'] . '' : ' '; + +if ( !empty($profiledata['user_icq']) ) +{ + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; +} +else +{ + $icq_status_img = ' '; + $icq_img = ' '; + $icq = ' '; +} + +$aim_img = ( $profiledata['user_aim'] ) ? '' . $lang['AIM'] . '' : ' '; +$aim = ( $profiledata['user_aim'] ) ? '' . $lang['AIM'] . '' : ' '; + +$msn_img = ( $profiledata['user_msnm'] ) ? $profiledata['user_msnm'] : ' '; +$msn = $msn_img; + +$yim_img = ( $profiledata['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; +$yim = ( $profiledata['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + +$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($profiledata['username']) . "&showresults=posts"); +$search_img = '' . $lang['Search_user_posts'] . ''; +$search = '' . $lang['Search_user_posts'] . ''; + +// +// Generate page +// +$page_title = $lang['Viewing_profile']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +if (function_exists('get_html_translation_table')) +{ + $u_search_author = urlencode(strtr($profiledata['username'], array_flip(get_html_translation_table(HTML_ENTITIES)))); +} +else +{ + $u_search_author = urlencode(str_replace(array('&', ''', '"', '<', '>'), array('&', "'", '"', '<', '>'), $profiledata['username'])); +} + +$template->assign_vars(array( + 'USERNAME' => $profiledata['username'], + 'JOINED' => create_date($lang['DATE_FORMAT'], $profiledata['user_regdate'], $board_config['board_timezone']), + 'POSTER_RANK' => $poster_rank, + 'RANK_IMAGE' => $rank_image, + 'POSTS_PER_DAY' => $posts_per_day, + 'POSTS' => $profiledata['user_posts'], + 'PERCENTAGE' => $percentage . '%', + 'POST_DAY_STATS' => sprintf($lang['User_post_day_stats'], $posts_per_day), + 'POST_PERCENT_STATS' => sprintf($lang['User_post_pct_stats'], $percentage), + + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'LOCATION' => ( $profiledata['user_from'] ) ? $profiledata['user_from'] : ' ', + 'OCCUPATION' => ( $profiledata['user_occ'] ) ? $profiledata['user_occ'] : ' ', + 'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ', + 'AVATAR_IMG' => $avatar_img, + + 'L_VIEWING_PROFILE' => sprintf($lang['Viewing_user_profile'], $profiledata['username']), + 'L_ABOUT_USER' => sprintf($lang['About_user'], $profiledata['username']), + 'L_AVATAR' => $lang['Avatar'], + 'L_POSTER_RANK' => $lang['Poster_rank'], + 'L_JOINED' => $lang['Joined'], + 'L_TOTAL_POSTS' => $lang['Total_posts'], + 'L_SEARCH_USER_POSTS' => sprintf($lang['Search_user_posts'], $profiledata['username']), + 'L_CONTACT' => $lang['Contact'], + 'L_EMAIL_ADDRESS' => $lang['Email_address'], + 'L_EMAIL' => $lang['Email'], + 'L_PM' => $lang['Private_Message'], + 'L_ICQ_NUMBER' => $lang['ICQ'], + 'L_YAHOO' => $lang['YIM'], + 'L_AIM' => $lang['AIM'], + 'L_MESSENGER' => $lang['MSNM'], + 'L_WEBSITE' => $lang['Website'], + 'L_LOCATION' => $lang['Location'], + 'L_OCCUPATION' => $lang['Occupation'], + 'L_INTERESTS' => $lang['Interests'], + + 'U_SEARCH_USER' => append_sid("search.$phpEx?search_author=" . $u_search_author), + + 'S_PROFILE_ACTION' => append_sid("profile.$phpEx")) +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/index.php b/phpBB2_old/index.php new file mode 100644 index 0000000..650ea43 --- /dev/null +++ b/phpBB2_old/index.php @@ -0,0 +1,460 @@ +assign_vars(array( + "META" => '') + ); + + $message = $lang['Forums_marked_read'] . '

    ' . sprintf($lang['Click_return_index'], '', ' '); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End handle marking posts +// + +$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_t"]) : array(); +$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . "_f"]) : array(); + +// +// If you don't use these stats on your index you may want to consider +// removing them +// +$total_posts = get_db_stat('postcount'); +$total_users = get_db_stat('usercount'); +$newest_userdata = get_db_stat('newestuser'); +$newest_user = $newest_userdata['username']; +$newest_uid = $newest_userdata['user_id']; + +if( $total_posts == 0 ) +{ + $l_total_post_s = $lang['Posted_articles_zero_total']; +} +else if( $total_posts == 1 ) +{ + $l_total_post_s = $lang['Posted_article_total']; +} +else +{ + $l_total_post_s = $lang['Posted_articles_total']; +} + +if( $total_users == 0 ) +{ + $l_total_user_s = $lang['Registered_users_zero_total']; +} +else if( $total_users == 1 ) +{ + $l_total_user_s = $lang['Registered_user_total']; +} +else +{ + $l_total_user_s = $lang['Registered_users_total']; +} + + +// +// Start page proper +// +$sql = "SELECT c.cat_id, c.cat_title, c.cat_order + FROM " . CATEGORIES_TABLE . " c + ORDER BY c.cat_order"; +if( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql); +} + +$category_rows = array(); +while( $category_rows[] = $db->sql_fetchrow($result) ); +$db->sql_freeresult($result); + +if( ( $total_categories = count($category_rows) ) ) +{ + // + // Define appropriate SQL + // + switch(SQL_LAYER) + { + case 'postgresql': + $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id + FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u + WHERE p.post_id = f.forum_last_post_id + AND u.user_id = p.poster_id + UNION ( + SELECT f.*, NULL, NULL, NULL, NULL + FROM " . FORUMS_TABLE . " f + WHERE NOT EXISTS ( + SELECT p.post_time + FROM " . POSTS_TABLE . " p + WHERE p.post_id = f.forum_last_post_id + ) + ) + ORDER BY cat_id, forum_order"; + break; + + case 'oracle': + $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id + FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u + WHERE p.post_id = f.forum_last_post_id(+) + AND u.user_id = p.poster_id(+) + ORDER BY f.cat_id, f.forum_order"; + break; + + default: + $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id + FROM (( " . FORUMS_TABLE . " f + LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id ) + LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) + ORDER BY f.cat_id, f.forum_order"; + break; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql); + } + + $forum_data = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_data[] = $row; + } + $db->sql_freeresult($result); + + if ( !($total_forums = count($forum_data)) ) + { + message_die(GENERAL_MESSAGE, $lang['No_forums']); + } + + // + // Obtain a list of topic ids which contain + // posts made since user last visited + // + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT t.forum_id, t.topic_id, p.post_time + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE p.post_id = t.topic_last_post_id + AND p.post_time > " . $userdata['user_lastvisit'] . " + AND t.topic_moved_id = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query new topic information', '', __LINE__, __FILE__, $sql); + } + + $new_topic_data = array(); + while( $topic_data = $db->sql_fetchrow($result) ) + { + $new_topic_data[$topic_data['forum_id']][$topic_data['topic_id']] = $topic_data['post_time']; + } + $db->sql_freeresult($result); + } + + // + // Obtain list of moderators of each forum + // First users, then groups ... broken into two queries + // + $sql = "SELECT aa.forum_id, u.user_id, u.username + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u + WHERE aa.auth_mod = " . TRUE . " + AND g.group_single_user = 1 + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + AND u.user_id = ug.user_id + GROUP BY u.user_id, u.username, aa.forum_id + ORDER BY aa.forum_id, u.user_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); + } + + $forum_moderators = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $forum_moderators[$row['forum_id']][] = '' . $row['username'] . ''; + } + $db->sql_freeresult($result); + + $sql = "SELECT aa.forum_id, g.group_id, g.group_name + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE aa.auth_mod = " . TRUE . " + AND g.group_single_user = 0 + AND g.group_type <> " . GROUP_HIDDEN . " + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + GROUP BY g.group_id, g.group_name, aa.forum_id + ORDER BY aa.forum_id, g.group_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + $forum_moderators[$row['forum_id']][] = '' . $row['group_name'] . ''; + } + $db->sql_freeresult($result); + + // + // Find which forums are visible for this user + // + $is_auth_ary = array(); + $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data); + + // + // Start output of page + // + define('SHOW_ONLINE', true); + $page_title = $lang['Index']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'index_body.tpl') + ); + + $template->assign_vars(array( + 'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts), + 'TOTAL_USERS' => sprintf($l_total_user_s, $total_users), + 'NEWEST_USER' => sprintf($lang['Newest_user'], '', $newest_user, ''), + + 'FORUM_IMG' => $images['forum'], + 'FORUM_NEW_IMG' => $images['forum_new'], + 'FORUM_LOCKED_IMG' => $images['forum_locked'], + + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_VIEWS' => $lang['Views'], + 'L_POSTS' => $lang['Posts'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_NO_NEW_POSTS' => $lang['No_new_posts'], + 'L_NEW_POSTS' => $lang['New_posts'], + 'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], + 'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], + 'L_ONLINE_EXPLAIN' => $lang['Online_explain'], + + 'L_MODERATOR' => $lang['Moderators'], + 'L_FORUM_LOCKED' => $lang['Forum_is_locked'], + 'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'], + + 'U_MARK_READ' => append_sid("index.$phpEx?mark=forums")) + ); + + // + // Okay, let's build the index + // + for($i = 0; $i < $total_categories; $i++) + { + $cat_id = $category_rows[$i]['cat_id']; + + // + // Should we display this category/forum set? + // + $display_forums = false; + for($j = 0; $j < $total_forums; $j++) + { + if ( $is_auth_ary[$forum_data[$j]['forum_id']]['auth_view'] && $forum_data[$j]['cat_id'] == $cat_id ) + { + $display_forums = true; + } + } + + // + // Yes, we should, so first dump out the category + // title, then, if appropriate the forum list + // + if ( $display_forums ) + { + $template->assign_block_vars('catrow', array( + 'CAT_ID' => $cat_id, + 'CAT_DESC' => $category_rows[$i]['cat_title'], + 'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id")) + ); + + if ( $viewcat == $cat_id || $viewcat == -1 ) + { + for($j = 0; $j < $total_forums; $j++) + { + if ( $forum_data[$j]['cat_id'] == $cat_id ) + { + $forum_id = $forum_data[$j]['forum_id']; + + if ( $is_auth_ary[$forum_id]['auth_view'] ) + { + if ( $forum_data[$j]['forum_status'] == FORUM_LOCKED ) + { + $folder_image = $images['forum_locked']; + $folder_alt = $lang['Forum_locked']; + } + else + { + $unread_topics = false; + if ( $userdata['session_logged_in'] ) + { + if ( !empty($new_topic_data[$forum_id]) ) + { + $forum_last_post_time = 0; + + while( list($check_topic_id, $check_post_time) = @each($new_topic_data[$forum_id]) ) + { + if ( empty($tracking_topics[$check_topic_id]) ) + { + $unread_topics = true; + $forum_last_post_time = max($check_post_time, $forum_last_post_time); + + } + else + { + if ( $tracking_topics[$check_topic_id] < $check_post_time ) + { + $unread_topics = true; + $forum_last_post_time = max($check_post_time, $forum_last_post_time); + } + } + } + + if ( !empty($tracking_forums[$forum_id]) ) + { + if ( $tracking_forums[$forum_id] > $forum_last_post_time ) + { + $unread_topics = false; + } + } + + if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $forum_last_post_time ) + { + $unread_topics = false; + } + } + + } + } + + $folder_image = ( $unread_topics ) ? $images['forum_new'] : $images['forum']; + $folder_alt = ( $unread_topics ) ? $lang['New_posts'] : $lang['No_new_posts']; + } + + $posts = $forum_data[$j]['forum_posts']; + $topics = $forum_data[$j]['forum_topics']; + + if ( $forum_data[$j]['forum_last_post_id'] ) + { + $last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']); + + $last_post = $last_post_time . '
    '; + + $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '' . $forum_data[$j]['username'] . ' '; + + $last_post .= '' . $lang['View_latest_post'] . ''; + } + else + { + $last_post = $lang['No_Posts']; + } + + if ( count($forum_moderators[$forum_id]) > 0 ) + { + $l_moderators = ( count($forum_moderators[$forum_id]) == 1 ) ? $lang['Moderator'] : $lang['Moderators']; + $moderator_list = implode(', ', $forum_moderators[$forum_id]); + } + else + { + $l_moderators = ' '; + $moderator_list = ' '; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('catrow.forumrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_FOLDER_IMG' => $folder_image, + 'FORUM_NAME' => $forum_data[$j]['forum_name'], + 'FORUM_DESC' => $forum_data[$j]['forum_desc'], + 'POSTS' => $forum_data[$j]['forum_posts'], + 'TOPICS' => $forum_data[$j]['forum_topics'], + 'LAST_POST' => $last_post, + 'MODERATORS' => $moderator_list, + + 'L_MODERATOR' => $l_moderators, + 'L_FORUM_FOLDER_ALT' => $folder_alt, + + 'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id")) + ); + } + } + } + } + } + } // for ... categories + +}// if ... total_categories +else +{ + message_die(GENERAL_MESSAGE, $lang['No_forums']); +} + +// +// Generate the page +// +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/language/index.htm b/phpBB2_old/language/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/language/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/language/lang_english/email/admin_activate.tpl b/phpBB2_old/language/lang_english/email/admin_activate.tpl new file mode 100644 index 0000000..ea0af53 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/admin_activate.tpl @@ -0,0 +1,10 @@ +Subject: New user account +Charset: iso-8859-1 + +Hello, + +The account owned by "{USERNAME}" has been deactivated or newly created, you should check the details of this user (if required) and activate it using the following link: + +{U_ACTIVATE} + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/admin_send_email.tpl b/phpBB2_old/language/lang_english/email/admin_send_email.tpl new file mode 100644 index 0000000..234f61d --- /dev/null +++ b/phpBB2_old/language/lang_english/email/admin_send_email.tpl @@ -0,0 +1,12 @@ +Charset: iso-8859-1 + +The following is an email sent to you by an administrator of "{SITENAME}". If this message is spam, contains abusive or other comments you find offensive please contact the webmaster of the board at the following address: + +{BOARD_EMAIL} + +Include this full email (particularly the headers). + +Message sent to you follows: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/phpBB2_old/language/lang_english/email/admin_welcome_activated.tpl b/phpBB2_old/language/lang_english/email/admin_welcome_activated.tpl new file mode 100644 index 0000000..3b7aa48 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/admin_welcome_activated.tpl @@ -0,0 +1,8 @@ +Subject: Account Activated +Charset: iso-8859-1 + +Hello {USERNAME}, + +Your account on "{SITENAME}" has now been activated, you may login using the username and password you received in a previous email. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/admin_welcome_inactive.tpl b/phpBB2_old/language/lang_english/email/admin_welcome_inactive.tpl new file mode 100644 index 0000000..905e716 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/admin_welcome_inactive.tpl @@ -0,0 +1,19 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Your account is currently inactive, the administrator of the board will need to activate it before you can log in. You will receive another email when this has occured. + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/coppa_welcome_inactive.tpl b/phpBB2_old/language/lang_english/email/coppa_welcome_inactive.tpl new file mode 100644 index 0000000..5d9b250 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/coppa_welcome_inactive.tpl @@ -0,0 +1,53 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +In compliance with the COPPA act your account is currently inactive. + +Please print this message out and have your parent or guardian sign and date it. Then fax it to: + +{FAX_INFO} + +OR mail it to: + +{MAIL_INFO} + +------------------------------ CUT HERE ------------------------------ +Permission to Participate at {SITENAME} + +Username: {USERNAME} +Password: {PASSWORD} +Email: {EMAIL_ADDRESS} + +ICQ Number: {ICQ} +AIM Address: {AIM} +MSN Messenger: {MSN} +Yahoo Messenger: {YIM} +Web Site: {WEB_SITE} +From: {FROM} +Occupation: {OCC} +Interests: {INTERESTS} + +I HAVE REVIEWED THE INFORMATION PROVIDED BY MY CHILD AND HEREBY GRANT PERMISSION TO {SITENAME} TO STORE THIS INFORMATION. +I UNDERSTAND THIS INFORMATION CAN BE CHANGED AT ANY TIME BY ENTERING A PASSWORD. +I UNDERSTAND THAT I MAY REQUEST FOR THIS INFORMATION TO BE REMOVED FROM {SITENAME} AT ANY TIME. + + +Parent or Guardian +(print your name here): _____________________ + +(sign here): __________________ + +Date: _______________ + +------------------------------ CUT HERE ------------------------------ + + +Once the administrator has received the above form via fax or regular mail your account will be activated. + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} diff --git a/phpBB2_old/language/lang_english/email/group_added.tpl b/phpBB2_old/language/lang_english/email/group_added.tpl new file mode 100644 index 0000000..5707da9 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/group_added.tpl @@ -0,0 +1,12 @@ +Subject: You have been added to this usergroup +Charset: iso-8859-1 + +Congratulations, + +You have been added to the "{GROUP_NAME}" group on {SITENAME}. +This action was done by the group moderator or the site administrator, contact them for more information. + +You can view your groups information here: +{U_GROUPCP} + +{EMAIL_SIG} diff --git a/phpBB2_old/language/lang_english/email/group_approved.tpl b/phpBB2_old/language/lang_english/email/group_approved.tpl new file mode 100644 index 0000000..38773c5 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/group_approved.tpl @@ -0,0 +1,11 @@ +Subject: Your request has been approved +Charset: iso-8859-1 + +Congratulations, + +Your request to join the "{GROUP_NAME}" group on {SITENAME} has been approved. +Click on the following link to see your group membership. + +{U_GROUPCP} + +{EMAIL_SIG} diff --git a/phpBB2_old/language/lang_english/email/group_request.tpl b/phpBB2_old/language/lang_english/email/group_request.tpl new file mode 100644 index 0000000..8da7fa9 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/group_request.tpl @@ -0,0 +1,11 @@ +Subject: A request to join your group has been made +Charset: iso-8859-1 + +Dear {GROUP_MODERATOR}, + +A user has requested to join a group you moderator on {SITENAME}. +To approve or deny this request for group membership please visit the following link: + +{U_GROUPCP} + +{EMAIL_SIG} diff --git a/phpBB2_old/language/lang_english/email/index.htm b/phpBB2_old/language/lang_english/email/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/language/lang_english/email/privmsg_notify.tpl b/phpBB2_old/language/lang_english/email/privmsg_notify.tpl new file mode 100644 index 0000000..2a96ee8 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/privmsg_notify.tpl @@ -0,0 +1,12 @@ +Subject: New Private Message has arrived +Charset: iso-8859-1 + +Hello {USERNAME}, + +You have received a new private message to your account on "{SITENAME}" and you have requested that you be notified on this event. You can view your new message by clicking on the following link: + +{U_INBOX} + +Remember that you can always choose not to be notified of new messages by changing the appropriate setting in your profile. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/profile_send_email.tpl b/phpBB2_old/language/lang_english/email/profile_send_email.tpl new file mode 100644 index 0000000..00dcde1 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/profile_send_email.tpl @@ -0,0 +1,14 @@ +Charset: iso-8859-1 + +Hello {TO_USERNAME}, + +The following is an email sent to you by {FROM_USERNAME} via your account on {SITENAME}. If this message is spam, contains abusive or other comments you find offensive please contact the webmaster of the board at the following address: + +{BOARD_EMAIL} + +Include this full email (particularly the headers). Please note that the reply address to this email has been set to that of {FROM_USERNAME}. + +Message sent to you follows +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +{MESSAGE} diff --git a/phpBB2_old/language/lang_english/email/topic_notify.tpl b/phpBB2_old/language/lang_english/email/topic_notify.tpl new file mode 100644 index 0000000..9682ebb --- /dev/null +++ b/phpBB2_old/language/lang_english/email/topic_notify.tpl @@ -0,0 +1,14 @@ +Subject: Topic Reply Notification - {TOPIC_TITLE} +Charset: iso-8859-1 + +Hello {USERNAME}, + +You are receiving this email because you are watching the topic, "{TOPIC_TITLE}" at {SITENAME}. This topic has received a reply since your last visit. You can use the following link to view the replies made, no more notifications will be sent until you visit the topic. + +{U_TOPIC} + +If you no longer wish to watch this topic you can either click the "Stop watching this topic link" found at the bottom of the topic above, or by clicking the following link: + +{U_STOP_WATCHING_TOPIC} + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/user_activate.tpl b/phpBB2_old/language/lang_english/email/user_activate.tpl new file mode 100644 index 0000000..0adeb5b --- /dev/null +++ b/phpBB2_old/language/lang_english/email/user_activate.tpl @@ -0,0 +1,10 @@ +Subject: Reactivate your account +Charset: iso-8859-1 + +Hello {USERNAME}, + +Your account on "{SITENAME}" has been deactivated, most likely due to changes made to your profile. In order to reactivate your account you must click on the link below: + +{U_ACTIVATE} + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/user_activate_passwd.tpl b/phpBB2_old/language/lang_english/email/user_activate_passwd.tpl new file mode 100644 index 0000000..8c45d03 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/user_activate_passwd.tpl @@ -0,0 +1,18 @@ +Subject: New password activation +Charset: iso-8859-1 + +Hello {USERNAME} + +You are receiving this email because you have (or someone pretending to be you has) requested a new password be sent for your account on {SITENAME}. If you did not request this email then please ignore it, if you keep receiving it please contact the board administrator. + +To use the new password you need to activate it. To do this click the link provided below. + +{U_ACTIVATE} + +If sucessful you will be able to login using the following password: + +Password: {PASSWORD} + +You can of course change this password yourself via the profile page. If you have any difficulties please contact the board administrator. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/user_welcome.tpl b/phpBB2_old/language/lang_english/email/user_welcome.tpl new file mode 100644 index 0000000..42dc56d --- /dev/null +++ b/phpBB2_old/language/lang_english/email/user_welcome.tpl @@ -0,0 +1,17 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/email/user_welcome_inactive.tpl b/phpBB2_old/language/lang_english/email/user_welcome_inactive.tpl new file mode 100644 index 0000000..6ece2d4 --- /dev/null +++ b/phpBB2_old/language/lang_english/email/user_welcome_inactive.tpl @@ -0,0 +1,21 @@ +Subject: Welcome to {SITENAME} Forums +Charset: iso-8859-1 + +{WELCOME_MSG} + +Please keep this email for your records. Your account information is as follows: + +---------------------------- +Username: {USERNAME} +Password: {PASSWORD} +---------------------------- + +Your account is currently inactive. You cannot use it until you visit the following link: + +{U_ACTIVATE} + +Please do not forget your password as it has been encrypted in our database and we cannot retrieve it for you. However, should you forget your password you can request a new one which will be activated in the same way as this account. + +Thank you for registering. + +{EMAIL_SIG} \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/index.htm b/phpBB2_old/language/lang_english/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/language/lang_english/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/language/lang_english/lang_admin.php b/phpBB2_old/language/lang_english/lang_admin.php new file mode 100644 index 0000000..06eca30 --- /dev/null +++ b/phpBB2_old/language/lang_english/lang_admin.php @@ -0,0 +1,731 @@ +Admin Index link in the left pane. To return to the index of your board, click the phpBB logo also in the left pane. The other links on the left hand side of this screen will allow you to control every aspect of your forum experience. Each screen will have instructions on how to use the tools.'; +$lang['Main_index'] = 'Forum Index'; +$lang['Forum_stats'] = 'Forum Statistics'; +$lang['Admin_Index'] = 'Admin Index'; +$lang['Preview_forum'] = 'Preview Forum'; + +$lang['Click_return_admin_index'] = 'Click %sHere%s to return to the Admin Index'; + +$lang['Statistic'] = 'Statistic'; +$lang['Value'] = 'Value'; +$lang['Number_posts'] = 'Number of posts'; +$lang['Posts_per_day'] = 'Posts per day'; +$lang['Number_topics'] = 'Number of topics'; +$lang['Topics_per_day'] = 'Topics per day'; +$lang['Number_users'] = 'Number of users'; +$lang['Users_per_day'] = 'Users per day'; +$lang['Board_started'] = 'Board started'; +$lang['Avatar_dir_size'] = 'Avatar directory size'; +$lang['Database_size'] = 'Database size'; +$lang['Gzip_compression'] ='Gzip compression'; +$lang['Not_available'] = 'Not available'; + +$lang['ON'] = 'ON'; // This is for GZip compression +$lang['OFF'] = 'OFF'; + + +// +// DB Utils +// +$lang['Database_Utilities'] = 'Database Utilities'; + +$lang['Restore'] = 'Restore'; +$lang['Backup'] = 'Backup'; +$lang['Restore_explain'] = 'This will perform a full restore of all phpBB tables from a saved file. If your server supports it, you may upload a gzip-compressed text file and it will automatically be decompressed. WARNING: This will overwrite any existing data. The restore may take a long time to process, so please do not move from this page until it is complete.'; +$lang['Backup_explain'] = 'Here you can back up all your phpBB-related data. If you have any additional custom tables in the same database with phpBB that you would like to back up as well, please enter their names, separated by commas, in the Additional Tables textbox below. If your server supports it you may also gzip-compress the file to reduce its size before download.'; + +$lang['Backup_options'] = 'Backup options'; +$lang['Start_backup'] = 'Start Backup'; +$lang['Full_backup'] = 'Full backup'; +$lang['Structure_backup'] = 'Structure-Only backup'; +$lang['Data_backup'] = 'Data only backup'; +$lang['Additional_tables'] = 'Additional tables'; +$lang['Gzip_compress'] = 'Gzip compress file'; +$lang['Select_file'] = 'Select a file'; +$lang['Start_Restore'] = 'Start Restore'; + +$lang['Restore_success'] = 'The Database has been successfully restored.

    Your board should be back to the state it was when the backup was made.'; +$lang['Backup_download'] = 'Your download will start shortly; please wait until it begins.'; +$lang['Backups_not_supported'] = 'Sorry, but database backups are not currently supported for your database system.'; + +$lang['Restore_Error_uploading'] = 'Error in uploading the backup file'; +$lang['Restore_Error_filename'] = 'Filename problem; please try an alternative file'; +$lang['Restore_Error_decompress'] = 'Cannot decompress a gzip file; please upload a plain text version'; +$lang['Restore_Error_no_file'] = 'No file was uploaded'; + + +// +// Auth pages +// +$lang['Select_a_User'] = 'Select a User'; +$lang['Select_a_Group'] = 'Select a Group'; +$lang['Select_a_Forum'] = 'Select a Forum'; +$lang['Auth_Control_User'] = 'User Permissions Control'; +$lang['Auth_Control_Group'] = 'Group Permissions Control'; +$lang['Auth_Control_Forum'] = 'Forum Permissions Control'; +$lang['Look_up_User'] = 'Look up User'; +$lang['Look_up_Group'] = 'Look up Group'; +$lang['Look_up_Forum'] = 'Look up Forum'; + +$lang['Group_auth_explain'] = 'Here you can alter the permissions and moderator status assigned to each user group. Do not forget when changing group permissions that individual user permissions may still allow the user entry to forums, etc. You will be warned if this is the case.'; +$lang['User_auth_explain'] = 'Here you can alter the permissions and moderator status assigned to each individual user. Do not forget when changing user permissions that group permissions may still allow the user entry to forums, etc. You will be warned if this is the case.'; +$lang['Forum_auth_explain'] = 'Here you can alter the authorisation levels of each forum. You will have both a simple and advanced method for doing this, where advanced offers greater control of each forum operation. Remember that changing the permission level of forums will affect which users can carry out the various operations within them.'; + +$lang['Simple_mode'] = 'Simple Mode'; +$lang['Advanced_mode'] = 'Advanced Mode'; +$lang['Moderator_status'] = 'Moderator status'; + +$lang['Allowed_Access'] = 'Allowed Access'; +$lang['Disallowed_Access'] = 'Disallowed Access'; +$lang['Is_Moderator'] = 'Is Moderator'; +$lang['Not_Moderator'] = 'Not Moderator'; + +$lang['Conflict_warning'] = 'Authorisation Conflict Warning'; +$lang['Conflict_access_userauth'] = 'This user still has access rights to this forum via group membership. You may want to alter the group permissions or remove this user the group to fully prevent them having access rights. The groups granting rights (and the forums involved) are noted below.'; +$lang['Conflict_mod_userauth'] = 'This user still has moderator rights to this forum via group membership. You may want to alter the group permissions or remove this user the group to fully prevent them having moderator rights. The groups granting rights (and the forums involved) are noted below.'; + +$lang['Conflict_access_groupauth'] = 'The following user (or users) still have access rights to this forum via their user permission settings. You may want to alter the user permissions to fully prevent them having access rights. The users granted rights (and the forums involved) are noted below.'; +$lang['Conflict_mod_groupauth'] = 'The following user (or users) still have moderator rights to this forum via their user permissions settings. You may want to alter the user permissions to fully prevent them having moderator rights. The users granted rights (and the forums involved) are noted below.'; + +$lang['Public'] = 'Public'; +$lang['Private'] = 'Private'; +$lang['Registered'] = 'Registered'; +$lang['Administrators'] = 'Administrators'; +$lang['Hidden'] = 'Hidden'; + +// These are displayed in the drop down boxes for advanced +// mode forum auth, try and keep them short! +$lang['Forum_ALL'] = 'ALL'; +$lang['Forum_REG'] = 'REG'; +$lang['Forum_PRIVATE'] = 'PRIVATE'; +$lang['Forum_MOD'] = 'MOD'; +$lang['Forum_ADMIN'] = 'ADMIN'; + +$lang['View'] = 'View'; +$lang['Read'] = 'Read'; +$lang['Post'] = 'Post'; +$lang['Reply'] = 'Reply'; +$lang['Edit'] = 'Edit'; +$lang['Delete'] = 'Delete'; +$lang['Sticky'] = 'Sticky'; +$lang['Announce'] = 'Announce'; +$lang['Vote'] = 'Vote'; +$lang['Pollcreate'] = 'Poll create'; + +$lang['Permissions'] = 'Permissions'; +$lang['Simple_Permission'] = 'Simple Permissions'; + +$lang['User_Level'] = 'User Level'; +$lang['Auth_User'] = 'User'; +$lang['Auth_Admin'] = 'Administrator'; +$lang['Group_memberships'] = 'Usergroup memberships'; +$lang['Usergroup_members'] = 'This group has the following members'; + +$lang['Forum_auth_updated'] = 'Forum permissions updated'; +$lang['User_auth_updated'] = 'User permissions updated'; +$lang['Group_auth_updated'] = 'Group permissions updated'; + +$lang['Auth_updated'] = 'Permissions have been updated'; +$lang['Click_return_userauth'] = 'Click %sHere%s to return to User Permissions'; +$lang['Click_return_groupauth'] = 'Click %sHere%s to return to Group Permissions'; +$lang['Click_return_forumauth'] = 'Click %sHere%s to return to Forum Permissions'; + + +// +// Banning +// +$lang['Ban_control'] = 'Ban Control'; +$lang['Ban_explain'] = 'Here you can control the banning of users. You can achieve this by banning either or both of a specific user or an individual or range of IP addresses or hostnames. These methods prevent a user from even reaching the index page of your board. To prevent a user from registering under a different username you can also specify a banned email address. Please note that banning an email address alone will not prevent that user from being able to log on or post to your board. You should use one of the first two methods to achieve this.'; +$lang['Ban_explain_warn'] = 'Please note that entering a range of IP addresses results in all the addresses between the start and end being added to the banlist. Attempts will be made to minimise the number of addresses added to the database by introducing wildcards automatically where appropriate. If you really must enter a range, try to keep it small or better yet state specific addresses.'; + +$lang['Select_username'] = 'Select a Username'; +$lang['Select_ip'] = 'Select an IP address'; +$lang['Select_email'] = 'Select an Email address'; + +$lang['Ban_username'] = 'Ban one or more specific users'; +$lang['Ban_username_explain'] = 'You can ban multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Ban_IP'] = 'Ban one or more IP addresses or hostnames'; +$lang['IP_hostname'] = 'IP addresses or hostnames'; +$lang['Ban_IP_explain'] = 'To specify several different IP addresses or hostnames separate them with commas. To specify a range of IP addresses, separate the start and end with a hyphen (-); to specify a wildcard, use an asterisk (*).'; + +$lang['Ban_email'] = 'Ban one or more email addresses'; +$lang['Ban_email_explain'] = 'To specify more than one email address, separate them with commas. To specify a wildcard username, use * like *@hotmail.com'; + +$lang['Unban_username'] = 'Un-ban one more specific users'; +$lang['Unban_username_explain'] = 'You can unban multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Unban_IP'] = 'Un-ban one or more IP addresses'; +$lang['Unban_IP_explain'] = 'You can unban multiple IP addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['Unban_email'] = 'Un-ban one or more email addresses'; +$lang['Unban_email_explain'] = 'You can unban multiple email addresses in one go using the appropriate combination of mouse and keyboard for your computer and browser'; + +$lang['No_banned_users'] = 'No banned usernames'; +$lang['No_banned_ip'] = 'No banned IP addresses'; +$lang['No_banned_email'] = 'No banned email addresses'; + +$lang['Ban_update_sucessful'] = 'The banlist has been updated successfully'; +$lang['Click_return_banadmin'] = 'Click %sHere%s to return to Ban Control'; + + +// +// Configuration +// +$lang['General_Config'] = 'General Configuration'; +$lang['Config_explain'] = 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side.'; + +$lang['Click_return_config'] = 'Click %sHere%s to return to General Configuration'; + +$lang['General_settings'] = 'General Board Settings'; +$lang['Server_name'] = 'Domain Name'; +$lang['Server_name_explain'] = 'The domain name from which this board runs'; +$lang['Script_path'] = 'Script path'; +$lang['Script_path_explain'] = 'The path where phpBB2 is located relative to the domain name'; +$lang['Server_port'] = 'Server Port'; +$lang['Server_port_explain'] = 'The port your server is running on, usually 80. Only change if different'; +$lang['Site_name'] = 'Site name'; +$lang['Site_desc'] = 'Site description'; +$lang['Board_disable'] = 'Disable board'; +$lang['Board_disable_explain'] = 'This will make the board unavailable to users. Administrators are able to access the Administration Panel while the board is disabled.'; +$lang['Acct_activation'] = 'Enable account activation'; +$lang['Acc_None'] = 'None'; // These three entries are the type of activation +$lang['Acc_User'] = 'User'; +$lang['Acc_Admin'] = 'Admin'; + +$lang['Abilities_settings'] = 'User and Forum Basic Settings'; +$lang['Max_poll_options'] = 'Max number of poll options'; +$lang['Flood_Interval'] = 'Flood Interval'; +$lang['Flood_Interval_explain'] = 'Number of seconds a user must wait between posts'; +$lang['Board_email_form'] = 'User email via board'; +$lang['Board_email_form_explain'] = 'Users send email to each other via this board'; +$lang['Topics_per_page'] = 'Topics Per Page'; +$lang['Posts_per_page'] = 'Posts Per Page'; +$lang['Hot_threshold'] = 'Posts for Popular Threshold'; +$lang['Default_style'] = 'Default Style'; +$lang['Override_style'] = 'Override user style'; +$lang['Override_style_explain'] = 'Replaces users style with the default'; +$lang['Default_language'] = 'Default Language'; +$lang['Date_format'] = 'Date Format'; +$lang['System_timezone'] = 'System Timezone'; +$lang['Enable_gzip'] = 'Enable GZip Compression'; +$lang['Enable_prune'] = 'Enable Forum Pruning'; +$lang['Allow_HTML'] = 'Allow HTML'; +$lang['Allow_BBCode'] = 'Allow BBCode'; +$lang['Allowed_tags'] = 'Allowed HTML tags'; +$lang['Allowed_tags_explain'] = 'Separate tags with commas'; +$lang['Allow_smilies'] = 'Allow Smilies'; +$lang['Smilies_path'] = 'Smilies Storage Path'; +$lang['Smilies_path_explain'] = 'Path under your phpBB root dir, e.g. images/smiles'; +$lang['Allow_sig'] = 'Allow Signatures'; +$lang['Max_sig_length'] = 'Maximum signature length'; +$lang['Max_sig_length_explain'] = 'Maximum number of characters in user signatures'; +$lang['Allow_name_change'] = 'Allow Username changes'; + +$lang['Avatar_settings'] = 'Avatar Settings'; +$lang['Allow_local'] = 'Enable gallery avatars'; +$lang['Allow_remote'] = 'Enable remote avatars'; +$lang['Allow_remote_explain'] = 'Avatars linked to from another website'; +$lang['Allow_upload'] = 'Enable avatar uploading'; +$lang['Max_filesize'] = 'Maximum Avatar File Size'; +$lang['Max_filesize_explain'] = 'For uploaded avatar files'; +$lang['Max_avatar_size'] = 'Maximum Avatar Dimensions'; +$lang['Max_avatar_size_explain'] = '(Height x Width in pixels)'; +$lang['Avatar_storage_path'] = 'Avatar Storage Path'; +$lang['Avatar_storage_path_explain'] = 'Path under your phpBB root dir, e.g. images/avatars'; +$lang['Avatar_gallery_path'] = 'Avatar Gallery Path'; +$lang['Avatar_gallery_path_explain'] = 'Path under your phpBB root dir for pre-loaded images, e.g. images/avatars/gallery'; + +$lang['COPPA_settings'] = 'COPPA Settings'; +$lang['COPPA_fax'] = 'COPPA Fax Number'; +$lang['COPPA_mail'] = 'COPPA Mailing Address'; +$lang['COPPA_mail_explain'] = 'This is the mailing address to which parents will send COPPA registration forms'; + +$lang['Email_settings'] = 'Email Settings'; +$lang['Admin_email'] = 'Admin Email Address'; +$lang['Email_sig'] = 'Email Signature'; +$lang['Email_sig_explain'] = 'This text will be attached to all emails the board sends'; +$lang['Use_SMTP'] = 'Use SMTP Server for email'; +$lang['Use_SMTP_explain'] = 'Say yes if you want or have to send email via a named server instead of the local mail function'; +$lang['SMTP_server'] = 'SMTP Server Address'; +$lang['SMTP_username'] = 'SMTP Username'; +$lang['SMTP_username_explain'] = 'Only enter a username if your SMTP server requires it'; +$lang['SMTP_password'] = 'SMTP Password'; +$lang['SMTP_password_explain'] = 'Only enter a password if your SMTP server requires it'; + +$lang['Disable_privmsg'] = 'Private Messaging'; +$lang['Inbox_limits'] = 'Max posts in Inbox'; +$lang['Sentbox_limits'] = 'Max posts in Sentbox'; +$lang['Savebox_limits'] = 'Max posts in Savebox'; + +$lang['Cookie_settings'] = 'Cookie settings'; +$lang['Cookie_settings_explain'] = 'These details define how cookies are sent to your users\' browsers. In most cases the default values for the cookie settings should be sufficient, but if you need to change them do so with care -- incorrect settings can prevent users from logging in'; +$lang['Cookie_domain'] = 'Cookie domain'; +$lang['Cookie_name'] = 'Cookie name'; +$lang['Cookie_path'] = 'Cookie path'; +$lang['Cookie_secure'] = 'Cookie secure'; +$lang['Cookie_secure_explain'] = 'If your server is running via SSL, set this to enabled, else leave as disabled'; +$lang['Session_length'] = 'Session length [ seconds ]'; + +// Visual Confirmation +$lang['Visual_confirm'] = 'Enable Visual Confirmation'; +$lang['Visual_confirm_explain'] = 'Requires users enter a code defined by an image when registering.'; + +// +// Forum Management +// +$lang['Forum_admin'] = 'Forum Administration'; +$lang['Forum_admin_explain'] = 'From this panel you can add, delete, edit, re-order and re-synchronise categories and forums'; +$lang['Edit_forum'] = 'Edit forum'; +$lang['Create_forum'] = 'Create new forum'; +$lang['Create_category'] = 'Create new category'; +$lang['Remove'] = 'Remove'; +$lang['Action'] = 'Action'; +$lang['Update_order'] = 'Update Order'; +$lang['Config_updated'] = 'Forum Configuration Updated Successfully'; +$lang['Edit'] = 'Edit'; +$lang['Delete'] = 'Delete'; +$lang['Move_up'] = 'Move up'; +$lang['Move_down'] = 'Move down'; +$lang['Resync'] = 'Resync'; +$lang['No_mode'] = 'No mode was set'; +$lang['Forum_edit_delete_explain'] = 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side'; + +$lang['Move_contents'] = 'Move all contents'; +$lang['Forum_delete'] = 'Delete Forum'; +$lang['Forum_delete_explain'] = 'The form below will allow you to delete a forum (or category) and decide where you want to put all topics (or forums) it contained.'; + +$lang['Status_locked'] = 'Locked'; +$lang['Status_unlocked'] = 'Unlocked'; +$lang['Forum_settings'] = 'General Forum Settings'; +$lang['Forum_name'] = 'Forum name'; +$lang['Forum_desc'] = 'Description'; +$lang['Forum_status'] = 'Forum status'; +$lang['Forum_pruning'] = 'Auto-pruning'; + +$lang['prune_freq'] = 'Check for topic age every'; +$lang['prune_days'] = 'Remove topics that have not been posted to in'; +$lang['Set_prune_data'] = 'You have turned on auto-prune for this forum but did not set a frequency or number of days to prune. Please go back and do so.'; + +$lang['Move_and_Delete'] = 'Move and Delete'; + +$lang['Delete_all_posts'] = 'Delete all posts'; +$lang['Nowhere_to_move'] = 'Nowhere to move to'; + +$lang['Edit_Category'] = 'Edit Category'; +$lang['Edit_Category_explain'] = 'Use this form to modify a category\'s name.'; + +$lang['Forums_updated'] = 'Forum and Category information updated successfully'; + +$lang['Must_delete_forums'] = 'You need to delete all forums before you can delete this category'; + +$lang['Click_return_forumadmin'] = 'Click %sHere%s to return to Forum Administration'; + + +// +// Smiley Management +// +$lang['smiley_title'] = 'Smiles Editing Utility'; +$lang['smile_desc'] = 'From this page you can add, remove and edit the emoticons or smileys that your users can use in their posts and private messages.'; + +$lang['smiley_config'] = 'Smiley Configuration'; +$lang['smiley_code'] = 'Smiley Code'; +$lang['smiley_url'] = 'Smiley Image File'; +$lang['smiley_emot'] = 'Smiley Emotion'; +$lang['smile_add'] = 'Add a new Smiley'; +$lang['Smile'] = 'Smile'; +$lang['Emotion'] = 'Emotion'; + +$lang['Select_pak'] = 'Select Pack (.pak) File'; +$lang['replace_existing'] = 'Replace Existing Smiley'; +$lang['keep_existing'] = 'Keep Existing Smiley'; +$lang['smiley_import_inst'] = 'You should unzip the smiley package and upload all files to the appropriate Smiley directory for your installation. Then select the correct information in this form to import the smiley pack.'; +$lang['smiley_import'] = 'Smiley Pack Import'; +$lang['choose_smile_pak'] = 'Choose a Smile Pack .pak file'; +$lang['import'] = 'Import Smileys'; +$lang['smile_conflicts'] = 'What should be done in case of conflicts'; +$lang['del_existing_smileys'] = 'Delete existing smileys before import'; +$lang['import_smile_pack'] = 'Import Smiley Pack'; +$lang['export_smile_pack'] = 'Create Smiley Pack'; +$lang['export_smiles'] = 'To create a smiley pack from your currently installed smileys, click %sHere%s to download the smiles.pak file. Name this file appropriately making sure to keep the .pak file extension. Then create a zip file containing all of your smiley images plus this .pak configuration file.'; + +$lang['smiley_add_success'] = 'The Smiley was successfully added'; +$lang['smiley_edit_success'] = 'The Smiley was successfully updated'; +$lang['smiley_import_success'] = 'The Smiley Pack was imported successfully!'; +$lang['smiley_del_success'] = 'The Smiley was successfully removed'; +$lang['Click_return_smileadmin'] = 'Click %sHere%s to return to Smiley Administration'; + + +// +// User Management +// +$lang['User_admin'] = 'User Administration'; +$lang['User_admin_explain'] = 'Here you can change your users\' information and certain options. To modify the users\' permissions, please use the user and group permissions system.'; + +$lang['Look_up_user'] = 'Look up user'; + +$lang['Admin_user_fail'] = 'Couldn\'t update the user\'s profile.'; +$lang['Admin_user_updated'] = 'The user\'s profile was successfully updated.'; +$lang['Click_return_useradmin'] = 'Click %sHere%s to return to User Administration'; + +$lang['User_delete'] = 'Delete this user'; +$lang['User_delete_explain'] = 'Click here to delete this user; this cannot be undone.'; +$lang['User_deleted'] = 'User was successfully deleted.'; + +$lang['User_status'] = 'User is active'; +$lang['User_allowpm'] = 'Can send Private Messages'; +$lang['User_allowavatar'] = 'Can display avatar'; + +$lang['Admin_avatar_explain'] = 'Here you can see and delete the user\'s current avatar.'; + +$lang['User_special'] = 'Special admin-only fields'; +$lang['User_special_explain'] = 'These fields are not able to be modified by the users. Here you can set their status and other options that are not given to users.'; + + +// +// Group Management +// +$lang['Group_administration'] = 'Group Administration'; +$lang['Group_admin_explain'] = 'From this panel you can administer all your usergroups. You can delete, create and edit existing groups. You may choose moderators, toggle open/closed group status and set the group name and description'; +$lang['Error_updating_groups'] = 'There was an error while updating the groups'; +$lang['Updated_group'] = 'The group was successfully updated'; +$lang['Added_new_group'] = 'The new group was successfully created'; +$lang['Deleted_group'] = 'The group was successfully deleted'; +$lang['New_group'] = 'Create new group'; +$lang['Edit_group'] = 'Edit group'; +$lang['group_name'] = 'Group name'; +$lang['group_description'] = 'Group description'; +$lang['group_moderator'] = 'Group moderator'; +$lang['group_status'] = 'Group status'; +$lang['group_open'] = 'Open group'; +$lang['group_closed'] = 'Closed group'; +$lang['group_hidden'] = 'Hidden group'; +$lang['group_delete'] = 'Delete group'; +$lang['group_delete_check'] = 'Delete this group'; +$lang['submit_group_changes'] = 'Submit Changes'; +$lang['reset_group_changes'] = 'Reset Changes'; +$lang['No_group_name'] = 'You must specify a name for this group'; +$lang['No_group_moderator'] = 'You must specify a moderator for this group'; +$lang['No_group_mode'] = 'You must specify a mode for this group, open or closed'; +$lang['No_group_action'] = 'No action was specified'; +$lang['delete_group_moderator'] = 'Delete the old group moderator?'; +$lang['delete_moderator_explain'] = 'If you\'re changing the group moderator, check this box to remove the old moderator from the group. Otherwise, do not check it, and the user will become a regular member of the group.'; +$lang['Click_return_groupsadmin'] = 'Click %sHere%s to return to Group Administration.'; +$lang['Select_group'] = 'Select a group'; +$lang['Look_up_group'] = 'Look up group'; + + +// +// Prune Administration +// +$lang['Forum_Prune'] = 'Forum Prune'; +$lang['Forum_Prune_explain'] = 'This will delete any topic which has not been posted to within the number of days you select. If you do not enter a number then all topics will be deleted. It will not remove topics in which polls are still running nor will it remove announcements. You will need to remove those topics manually.'; +$lang['Do_Prune'] = 'Do Prune'; +$lang['All_Forums'] = 'All Forums'; +$lang['Prune_topics_not_posted'] = 'Prune topics with no replies in this many days'; +$lang['Topics_pruned'] = 'Topics pruned'; +$lang['Posts_pruned'] = 'Posts pruned'; +$lang['Prune_success'] = 'Pruning of forums was successful'; + + +// +// Word censor +// +$lang['Words_title'] = 'Word Censoring'; +$lang['Words_explain'] = 'From this control panel you can add, edit, and remove words that will be automatically censored on your forums. In addition people will not be allowed to register with usernames containing these words. Wildcards (*) are accepted in the word field. For example, *test* will match detestable, test* would match testing, *test would match detest.'; +$lang['Word'] = 'Word'; +$lang['Edit_word_censor'] = 'Edit word censor'; +$lang['Replacement'] = 'Replacement'; +$lang['Add_new_word'] = 'Add new word'; +$lang['Update_word'] = 'Update word censor'; + +$lang['Must_enter_word'] = 'You must enter a word and its replacement'; +$lang['No_word_selected'] = 'No word selected for editing'; + +$lang['Word_updated'] = 'The selected word censor has been successfully updated'; +$lang['Word_added'] = 'The word censor has been successfully added'; +$lang['Word_removed'] = 'The selected word censor has been successfully removed'; + +$lang['Click_return_wordadmin'] = 'Click %sHere%s to return to Word Censor Administration'; + + +// +// Mass Email +// +$lang['Mass_email_explain'] = 'Here you can email a message to either all of your users or all users of a specific group. To do this, an email will be sent out to the administrative email address supplied, with a blind carbon copy sent to all recipients. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time and you will be notified when the script has completed'; +$lang['Compose'] = 'Compose'; + +$lang['Recipients'] = 'Recipients'; +$lang['All_users'] = 'All Users'; + +$lang['Email_successfull'] = 'Your message has been sent'; +$lang['Click_return_massemail'] = 'Click %sHere%s to return to the Mass Email form'; + + +// +// Ranks admin +// +$lang['Ranks_title'] = 'Rank Administration'; +$lang['Ranks_explain'] = 'Using this form you can add, edit, view and delete ranks. You can also create custom ranks which can be applied to a user via the user management facility'; + +$lang['Add_new_rank'] = 'Add new rank'; + +$lang['Rank_title'] = 'Rank Title'; +$lang['Rank_special'] = 'Set as Special Rank'; +$lang['Rank_minimum'] = 'Minimum Posts'; +$lang['Rank_maximum'] = 'Maximum Posts'; +$lang['Rank_image'] = 'Rank Image (Relative to phpBB2 root path)'; +$lang['Rank_image_explain'] = 'Use this to define a small image associated with the rank'; + +$lang['Must_select_rank'] = 'You must select a rank'; +$lang['No_assigned_rank'] = 'No special rank assigned'; + +$lang['Rank_updated'] = 'The rank was successfully updated'; +$lang['Rank_added'] = 'The rank was successfully added'; +$lang['Rank_removed'] = 'The rank was successfully deleted'; +$lang['No_update_ranks'] = 'The rank was successfully deleted. However, user accounts using this rank were not updated. You will need to manually reset the rank on these accounts'; + +$lang['Click_return_rankadmin'] = 'Click %sHere%s to return to Rank Administration'; + + +// +// Disallow Username Admin +// +$lang['Disallow_control'] = 'Username Disallow Control'; +$lang['Disallow_explain'] = 'Here you can control usernames which will not be allowed to be used. Disallowed usernames are allowed to contain a wildcard character of *. Please note that you will not be allowed to specify any username that has already been registered. You must first delete that name then disallow it.'; + +$lang['Delete_disallow'] = 'Delete'; +$lang['Delete_disallow_title'] = 'Remove a Disallowed Username'; +$lang['Delete_disallow_explain'] = 'You can remove a disallowed username by selecting the username from this list and clicking submit'; + +$lang['Add_disallow'] = 'Add'; +$lang['Add_disallow_title'] = 'Add a disallowed username'; +$lang['Add_disallow_explain'] = 'You can disallow a username using the wildcard character * to match any character'; + +$lang['No_disallowed'] = 'No Disallowed Usernames'; + +$lang['Disallowed_deleted'] = 'The disallowed username has been successfully removed'; +$lang['Disallow_successful'] = 'The disallowed username has been successfully added'; +$lang['Disallowed_already'] = 'The name you entered could not be disallowed. It either already exists in the list, exists in the word censor list, or a matching username is present.'; + +$lang['Click_return_disallowadmin'] = 'Click %sHere%s to return to Disallow Username Administration'; + + +// +// Styles Admin +// +$lang['Styles_admin'] = 'Styles Administration'; +$lang['Styles_explain'] = 'Using this facility you can add, remove and manage styles (templates and themes) available to your users'; +$lang['Styles_addnew_explain'] = 'The following list contains all the themes that are available for the templates you currently have. The items on this list have not yet been installed into the phpBB database. To install a theme, simply click the install link beside an entry.'; + +$lang['Select_template'] = 'Select a Template'; + +$lang['Style'] = 'Style'; +$lang['Template'] = 'Template'; +$lang['Install'] = 'Install'; +$lang['Download'] = 'Download'; + +$lang['Edit_theme'] = 'Edit Theme'; +$lang['Edit_theme_explain'] = 'In the form below you can edit the settings for the selected theme'; + +$lang['Create_theme'] = 'Create Theme'; +$lang['Create_theme_explain'] = 'Use the form below to create a new theme for a selected template. When entering colours (for which you should use hexadecimal notation) you must not include the initial #, i.e.. CCCCCC is valid, #CCCCCC is not'; + +$lang['Export_themes'] = 'Export Themes'; +$lang['Export_explain'] = 'In this panel you will be able to export the theme data for a selected template. Select the template from the list below and the script will create the theme configuration file and attempt to save it to the selected template directory. If it cannot save the file itself it will give you the option to download it. In order for the script to save the file you must give write access to the webserver for the selected template dir. For more information on this see the phpBB 2 users guide.'; + +$lang['Theme_installed'] = 'The selected theme has been installed successfully'; +$lang['Style_removed'] = 'The selected style has been removed from the database. To fully remove this style from your system you must delete the appropriate style from your templates directory.'; +$lang['Theme_info_saved'] = 'The theme information for the selected template has been saved. You should now return the permissions on the theme_info.cfg (and if applicable the selected template directory) to read-only'; +$lang['Theme_updated'] = 'The selected theme has been updated. You should now export the new theme settings'; +$lang['Theme_created'] = 'Theme created. You should now export the theme to the theme configuration file for safe keeping or use elsewhere'; + +$lang['Confirm_delete_style'] = 'Are you sure you want to delete this style?'; + +$lang['Download_theme_cfg'] = 'The exporter could not write the theme information file. Click the button below to download this file with your browser. Once you have downloaded it you can transfer it to the directory containing the template files. You can then package the files for distribution or use elsewhere if you desire'; +$lang['No_themes'] = 'The template you selected has no themes attached to it. To create a new theme click the Create New link on the left hand panel'; +$lang['No_template_dir'] = 'Could not open the template directory. It may be unreadable by the webserver or may not exist'; +$lang['Cannot_remove_style'] = 'You cannot remove the style selected since it is currently the forum default. Please change the default style and try again.'; +$lang['Style_exists'] = 'The style name to selected already exists, please go back and choose a different name.'; + +$lang['Click_return_styleadmin'] = 'Click %sHere%s to return to Style Administration'; + +$lang['Theme_settings'] = 'Theme Settings'; +$lang['Theme_element'] = 'Theme Element'; +$lang['Simple_name'] = 'Simple Name'; +$lang['Value'] = 'Value'; +$lang['Save_Settings'] = 'Save Settings'; + +$lang['Stylesheet'] = 'CSS Stylesheet'; +$lang['Background_image'] = 'Background Image'; +$lang['Background_color'] = 'Background Colour'; +$lang['Theme_name'] = 'Theme Name'; +$lang['Link_color'] = 'Link Colour'; +$lang['Text_color'] = 'Text Colour'; +$lang['VLink_color'] = 'Visited Link Colour'; +$lang['ALink_color'] = 'Active Link Colour'; +$lang['HLink_color'] = 'Hover Link Colour'; +$lang['Tr_color1'] = 'Table Row Colour 1'; +$lang['Tr_color2'] = 'Table Row Colour 2'; +$lang['Tr_color3'] = 'Table Row Colour 3'; +$lang['Tr_class1'] = 'Table Row Class 1'; +$lang['Tr_class2'] = 'Table Row Class 2'; +$lang['Tr_class3'] = 'Table Row Class 3'; +$lang['Th_color1'] = 'Table Header Colour 1'; +$lang['Th_color2'] = 'Table Header Colour 2'; +$lang['Th_color3'] = 'Table Header Colour 3'; +$lang['Th_class1'] = 'Table Header Class 1'; +$lang['Th_class2'] = 'Table Header Class 2'; +$lang['Th_class3'] = 'Table Header Class 3'; +$lang['Td_color1'] = 'Table Cell Colour 1'; +$lang['Td_color2'] = 'Table Cell Colour 2'; +$lang['Td_color3'] = 'Table Cell Colour 3'; +$lang['Td_class1'] = 'Table Cell Class 1'; +$lang['Td_class2'] = 'Table Cell Class 2'; +$lang['Td_class3'] = 'Table Cell Class 3'; +$lang['fontface1'] = 'Font Face 1'; +$lang['fontface2'] = 'Font Face 2'; +$lang['fontface3'] = 'Font Face 3'; +$lang['fontsize1'] = 'Font Size 1'; +$lang['fontsize2'] = 'Font Size 2'; +$lang['fontsize3'] = 'Font Size 3'; +$lang['fontcolor1'] = 'Font Colour 1'; +$lang['fontcolor2'] = 'Font Colour 2'; +$lang['fontcolor3'] = 'Font Colour 3'; +$lang['span_class1'] = 'Span Class 1'; +$lang['span_class2'] = 'Span Class 2'; +$lang['span_class3'] = 'Span Class 3'; +$lang['img_poll_size'] = 'Polling Image Size [px]'; +$lang['img_pm_size'] = 'Private Message Status size [px]'; + + +// +// Install Process +// +$lang['Welcome_install'] = 'Welcome to phpBB 2 Installation'; +$lang['Initial_config'] = 'Basic Configuration'; +$lang['DB_config'] = 'Database Configuration'; +$lang['Admin_config'] = 'Admin Configuration'; +$lang['continue_upgrade'] = 'Once you have downloaded your config file to your local machine you may\'Continue Upgrade\' button below to move forward with the upgrade process. Please wait to upload the config file until the upgrade process is complete.'; +$lang['upgrade_submit'] = 'Continue Upgrade'; + +$lang['Installer_Error'] = 'An error has occurred during installation'; +$lang['Previous_Install'] = 'A previous installation has been detected'; +$lang['Install_db_error'] = 'An error occurred trying to update the database'; + +$lang['Re_install'] = 'Your previous installation is still active.

    If you would like to re-install phpBB 2 you should click the Yes button below. Please be aware that doing so will destroy all existing data and no backups will be made! The administrator username and password you have used to login in to the board will be re-created after the re-installation and no other settings will be retained.

    Think carefully before pressing Yes!'; + +$lang['Inst_Step_0'] = 'Thank you for choosing phpBB 2. In order to complete this install please fill out the details requested below. Please note that the database you install into should already exist. If you are installing to a database that uses ODBC, e.g. MS Access you should first create a DSN for it before proceeding.'; + +$lang['Start_Install'] = 'Start Install'; +$lang['Finish_Install'] = 'Finish Installation'; + +$lang['Default_lang'] = 'Default board language'; +$lang['DB_Host'] = 'Database Server Hostname / DSN'; +$lang['DB_Name'] = 'Your Database Name'; +$lang['DB_Username'] = 'Database Username'; +$lang['DB_Password'] = 'Database Password'; +$lang['Database'] = 'Your Database'; +$lang['Install_lang'] = 'Choose Language for Installation'; +$lang['dbms'] = 'Database Type'; +$lang['Table_Prefix'] = 'Prefix for tables in database'; +$lang['Admin_Username'] = 'Administrator Username'; +$lang['Admin_Password'] = 'Administrator Password'; +$lang['Admin_Password_confirm'] = 'Administrator Password [ Confirm ]'; + +$lang['Inst_Step_2'] = 'Your admin username has been created. At this point your basic installation is complete. You will now be taken to a screen which will allow you to administer your new installation. Please be sure to check the General Configuration details and make any required changes. Thank you for choosing phpBB 2.'; + +$lang['Unwriteable_config'] = 'Your config file is un-writeable at present. A copy of the config file will be downloaded to your computer when you click the button below. You should upload this file to the same directory as phpBB 2. Once this is done you should log in using the administrator name and password you provided on the previous form and visit the admin control center (a link will appear at the bottom of each screen once logged in) to check the general configuration. Thank you for choosing phpBB 2.'; +$lang['Download_config'] = 'Download Config'; + +$lang['ftp_choose'] = 'Choose Download Method'; +$lang['ftp_option'] = '
    Since FTP extensions are enabled in this version of PHP you may also be given the option of first trying to automatically FTP the config file into place.'; +$lang['ftp_instructs'] = 'You have chosen to FTP the file to the account containing phpBB 2 automatically. Please enter the information below to facilitate this process. Note that the FTP path should be the exact path via FTP to your phpBB2 installation as if you were FTPing to it using any normal client.'; +$lang['ftp_info'] = 'Enter Your FTP Information'; +$lang['Attempt_ftp'] = 'Attempt to FTP config file into place'; +$lang['Send_file'] = 'Just send the file to me and I\'ll FTP it manually'; +$lang['ftp_path'] = 'FTP path to phpBB 2'; +$lang['ftp_username'] = 'Your FTP Username'; +$lang['ftp_password'] = 'Your FTP Password'; +$lang['Transfer_config'] = 'Start Transfer'; +$lang['NoFTP_config'] = 'The attempt to FTP the config file into place failed. Please download the config file and FTP it into place manually.'; + +$lang['Install'] = 'Install'; +$lang['Upgrade'] = 'Upgrade'; + + +$lang['Install_Method'] = 'Choose your installation method'; + +$lang['Install_No_Ext'] = 'The PHP configuration on your server doesn\'t support the database type that you chose'; + +$lang['Install_No_PCRE'] = 'phpBB2 Requires the Perl-Compatible Regular Expressions Module for PHP which your PHP configuration doesn\'t appear to support!'; + +// +// That's all Folks! +// ------------------------------------------------- + +?> \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/lang_bbcode.php b/phpBB2_old/language/lang_english/lang_bbcode.php new file mode 100644 index 0000000..8ee19b0 --- /dev/null +++ b/phpBB2_old/language/lang_english/lang_bbcode.php @@ -0,0 +1,75 @@ +
  • To make a piece of text bold enclose it in [b][/b], eg.

    [b]Hello[/b]

    will become Hello
  • For underlining use [u][/u], for example:

    [u]Good Morning[/u]

    becomes Good Morning
  • To italicise text use [i][/i], eg.

    This is [i]Great![/i]

    would give This is Great!
  • "); +$faq[] = array("How to change the text colour or size", "To alter the color or size of your text the following tags can be used. Keep in mind that how the output appears will depend on the viewers browser and system:
    • Changing the colour of text is achieved by wrapping it in [color=][/color]. You can specify either a recognised colour name (eg. red, blue, yellow, etc.) or the hexadecimal triplet alternative, eg. #FFFFFF, #000000. For example, to create red text you could use:

      [color=red]Hello![/color]

      or

      [color=#FF0000]Hello![/color]

      will both output Hello!
    • Changing the text size is achieved in a similar way using [size=][/size]. This tag is dependent on the template you are using but the recommended format is a numerical value representing the text size in pixels, starting at 1 (so tiny you will not see it) through to 29 (very large). For example:

      [size=9]SMALL[/size]

      will generally be SMALL

      whereas:

      [size=24]HUGE![/size]

      will be HUGE!
    "); +$faq[] = array("Can I combine formatting tags?", "Yes, of course you can; for example to get someones attention you may write:

    [size=18][color=red][b]LOOK AT ME![/b][/color][/size]

    this would output LOOK AT ME!

    We don't recommend you output lots of text that looks like this, though! Remember that it is up to you, the poster, to ensure that tags are closed correctly. For example, the following is incorrect:

    [b][u]This is wrong[/b][/u]"); + +$faq[] = array("--","Quoting and outputting fixed-width text"); +$faq[] = array("Quoting text in replies", "There are two ways you can quote text: with a reference or without.
    • When you utilise the Quote function to reply to a post on the board you should notice that the post text is added to the message window enclosed in a [quote=\"\"][/quote] block. This method allows you to quote with a reference to a person or whatever else you choose to put. For example, to quote a piece of text Mr. Blobby wrote, you would enter:

      [quote=\"Mr. Blobby\"]The text Mr. Blobby wrote would go here[/quote]

      The resulting output will automatically add: Mr. Blobby wrote: before the actual text. Remember that you must include the quotation marks \"\" around the name you are quoting -- they are not optional.
    • The second method allows you to blindly quote something. To utilise this enclose the text in [quote][/quote] tags. When you view the message it will simply show: Quote: before the text itself.
    "); +$faq[] = array("Outputting code or fixed width data", "If you want to output a piece of code or in fact anything that requires a fixed width with a Courier-type font, you should enclose the text in [code][/code] tags, eg.

    [code]echo \"This is some code\";[/code]

    All formatting used within [code][/code] tags is retained when you later view it."); + +$faq[] = array("--","Generating lists"); +$faq[] = array("Creating an Un-ordered list", "BBCode supports two types of lists, unordered and ordered. They are essentially the same as their HTML equivalents. An unordered list ouputs each item in your list sequentially one after the other indenting each with a bullet character. To create an unordered list you use [list][/list] and define each item within the list using [*]. For example, to list your favorite colours you could use:

    [list]
    [*]Red
    [*]Blue
    [*]Yellow
    [/list]

    This would generate the following list:
    • Red
    • Blue
    • Yellow
    "); +$faq[] = array("Creating an Ordered list", "The second type of list, an ordered list gives you control over what is output before each item. To create an ordered list you use [list=1][/list] to create a numbered list or alternatively [list=a][/list] for an alphabetical list. As with the unordered list items are specified using [*]. For example:

    [list=1]
    [*]Go to the shops
    [*]Buy a new computer
    [*]Swear at computer when it crashes
    [/list]

    will generate the following:
    1. Go to the shops
    2. Buy a new computer
    3. Swear at computer when it crashes
    Whereas for an alphabetical list you would use:

    [list=a]
    [*]The first possible answer
    [*]The second possible answer
    [*]The third possible answer
    [/list]

    giving
    1. The first possible answer
    2. The second possible answer
    3. The third possible answer
    "); + +$faq[] = array("--", "Creating Links"); +$faq[] = array("Linking to another site", "phpBB BBCode supports a number of ways of creating URIs, Uniform Resource Indicators better known as URLs.
    • The first of these uses the [url=][/url] tag; whatever you type after the = sign will cause the contents of that tag to act as a URL. For example, to link to phpBB.com you could use:

      [url=http://www.phpbb.com/]Visit phpBB![/url]

      This would generate the following link, Visit phpBB! You will notice the link opens in a new window so the user can continue browsing the forums if they wish.
    • If you want the URL itself displayed as the link you can do this by simply using:

      [url]http://www.phpbb.com/[/url]

      This would generate the following link: http://www.phpbb.com/
    • Additionally phpBB features something called Magic Linkswhich will turn any syntatically correct URL into a link without you needing to specify any tags or even the leading http://. For example typing www.phpbb.com into your message will automatically lead to www.phpbb.com being output when you view the message.
    • The same thing applies equally to email addresses; you can either specify an address explicitly, like:

      [email]no.one@domain.adr[/email]

      which will output no.one@domain.adr or you can just type no.one@domain.adr into your message and it will be automatically converted when you view.
    As with all the BBCode tags you can wrap URLs around any of the other tags such as [img][/img] (see next entry), [b][/b], etc. As with the formatting tags it is up to you to ensure the correct open and close order is following. For example:

    [url=http://www.phpbb.com/][img]http://www.phpbb.com/images/phplogo.gif[/url][/img]

    is not correct which may lead to your post being deleted so take care."); + +$faq[] = array("--", "Showing images in posts"); +$faq[] = array("Adding an image to a post", "phpBB BBCode incorporates a tag for including images in your posts. Two very important things to remember when using this tag are: many users do not appreciate lots of images being shown in posts and second, the image you display must already be available on the Internet (it cannot exist only on your computer, for example, unless you run a webserver!). There is currently no way of storing images locally with phpBB (all these issues are expected to be addressed in the next release of phpBB). To display an image, you must surround the URL pointing to the image with [img][/img] tags. For example:

    [img]http://www.phpbb.com/images/phplogo.gif[/img]

    As noted in the URL section above you can wrap an image in a [url][/url] tag if you wish, eg.

    [url=http://www.phpbb.com/][img]http://www.phpbb.com/images/phplogo.gif[/img][/url]

    would generate:

    \"\"
    "); + +$faq[] = array("--", "Other matters"); +$faq[] = array("Can I add my own tags?", "No, I am afraid not directly in phpBB 2.0. We are looking at offering customisable BBCode tags for the next major version."); + +// +// This ends the BBCode guide entries +// + +?> \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/lang_faq.php b/phpBB2_old/language/lang_english/lang_faq.php new file mode 100644 index 0000000..608d3f7 --- /dev/null +++ b/phpBB2_old/language/lang_english/lang_faq.php @@ -0,0 +1,106 @@ +Log me in automatically
    box when you log in, the board will only keep you logged in for a preset time. This prevents misuse of your account by anyone else. To stay logged in, check the box during login. This is not recommended if you access the board from a shared computer, e.g. library, internet cafe, university cluster, etc."); +$faq[] = array("How do I prevent my username from appearing in the online user listings?", "In your profile you will find an option Hide your online status; if you switch this on you'll only appear to board administrators or to yourself. You will be counted as a hidden user."); +$faq[] = array("I've lost my password!", "Don't panic! While your password cannot be retrieved it can be reset. To do this go to the login page and click I've forgotten my password. Follow the instructions and you should be back online in no time."); +$faq[] = array("I registered but cannot log in!", "First check that you are entering the correct username and password. If they are okay then one of two things may have happened: if COPPA support is enabled and you clicked the I am under 13 years old link while registering then you will have to follow the instructions you received. If this is not the case then maybe your account need activating. Some boards will require all new registrations be activated, either by yourself or by the administrator before you can log on. When you registered it would have told you whether activation was required. If you were sent an email then follow the instructions; if you did not receive the email then check that your email address is valid. One reason activation is used is to reduce the possibility of rogue users abusing the board anonymously. If you are sure the email address you used is valid then try contacting the board administrator."); +$faq[] = array("I registered in the past but cannot log in anymore!", "The most likely reasons for this are: you entered an incorrect username or password (check the email you were sent when you first registered) or the administrator has deleted your account for some reason. If it is the latter case then perhaps you did not post anything? It is usual for boards to periodically remove users who have not posted anything so as to reduce the size of the database. Try registering again and get involved in discussions."); + + +$faq[] = array("--","User Preferences and settings"); +$faq[] = array("How do I change my settings?", "All your settings (if you are registered) are stored in the database. To alter them click the Profile link (generally shown at the top of pages but this may not be the case). This will allow you to change all your settings."); +$faq[] = array("The times are not correct!", "The times are almost certainly correct; however, what you may be seeing are times displayed in a timezone different from the one you are in. If this is the case, you should change your profile setting for the timezone to match your particular area, e.g. London, Paris, New York, Sydney, etc. Please note that changing the timezone, like most settings, can only be done by registered users. So if you are not registered, this is a good time to do so, if you pardon the pun!"); +$faq[] = array("I changed the timezone and the time is still wrong!", "If you are sure you have set the timezone correctly and the time is still different, the most likely answer is daylight savings time (or summer time as it is known in the UK and other places). The board is not designed to handle the changeovers between standard and daylight time so during summer months the time may be an hour different from the real local time."); +$faq[] = array("My language is not in the list!", "The most likely reasons for this are either the administrator did not install your language or someone has not translated this board into your language. Try asking the board administrator if they can install the language pack you need or if it does not exist, please feel free to create a new translation. More information can be found at the phpBB Group website (see link at bottom of pages)"); +$faq[] = array("How do I show an image below my username?", "There may be two images below a username when viewing posts. The first is an image associated with your rank; generally these take the form of stars or blocks indicating how many posts you have made or your status on the forums. Below this may be a larger image known as an avatar; this is generally unique or personal to each user. It is up to the board administrator to enable avatars and they have a choice over the way in which avatars can be made available. If you are unable to use avatars then this is the decision of the board admin and you should ask them their reasons (we're sure they'll be good!)"); +$faq[] = array("How do I change my rank?", "In general you cannot directly change the wording of any rank (ranks appear below your username in topics and on your profile depending on the style used). Most boards use ranks to indicate the number of posts you have made and to identify certain users. For example, moderators and administrators may have a special rank. Please do not abuse the board by posting unnecessarily just to increase your rank -- you will probably find the moderator or administrator will simply lower your post count."); +$faq[] = array("When I click the email link for a user it asks me to log in.", "Sorry, but only registered users can send email to people via the built-in email form (if the admin has enabled this feature). This is to prevent malicious use of the email system by anonymous users."); + + +$faq[] = array("--","Posting Issues"); +$faq[] = array("How do I post a topic in a forum?", "Easy -- click the relevant button on either the forum or topic screens. You may need to register before you can post a message. The facilities available to you are listed at the bottom of the forum and topic screens (the You can post new topics, You can vote in polls, etc. list)"); +$faq[] = array("How do I edit or delete a post?", "Unless you are the board admin or forum moderator you can only edit or delete your own posts. You can edit a post (sometimes for only a limited time after it was made) by clicking the edit button for the relevant post. If someone has already replied to the post, you will find a small piece of text output below the post when you return to the topic that lists the number of times you edited it. This will only appear if no one has replied; it also will not appear if moderators or administrators edit the post (they should leave a message saying what they altered and why). Please note that normal users cannot delete a post once someone has replied."); +$faq[] = array("How do I add a signature to my post?", "To add a signature to a post you must first create one; this is done via your profile. Once created you can check the Add Signature box on the posting form to add your signature. You can also add a signature by default to all your posts by checking the appropriate radio box in your profile. You can still prevent a signature being added to individual posts by un-checking the add signature box on the posting form."); +$faq[] = array("How do I create a poll?", "Creating a poll is easy -- when you post a new topic (or edit the first post of a topic, if you have permission) you should see a Add Poll form below the main posting box. If you cannot see this then you probably do not have rights to create polls. You should enter a title for the poll and then at least two options -- to set an option type in the poll question and click the Add option button. You can also set a time limit for the poll, 0 being an infinite amount. There will be a limit to the number of options you can list, which is set by the board administrator"); +$faq[] = array("How do I edit or delete a poll?", "As with posts, polls can only be edited by the original poster, a moderator, or board administrator. To edit a poll, click the first post in the topic, which always has the poll associated with it. If no one has cast a vote then users can delete the poll or edit any poll option. However, if people have already placed votes only moderators or administrators can edit or delete it; this is to prevent people rigging polls by changing options mid-way through a poll"); +$faq[] = array("Why can't I access a forum?", "Some forums may be limited to certain users or groups. To view, read, post, etc. you may need special authorization which only the forum moderator and board administrator can grant, so you should contact them."); +$faq[] = array("Why can't I vote in polls?", "Only registered users can vote in polls so as to prevent spoofing of results. If you have registered and still cannot vote then you probably do not have appropriate access rights."); + + +$faq[] = array("--","Formatting and Topic Types"); +$faq[] = array("What is BBCode?", "BBCode is a special implementation of HTML. Whether you can use BBCode is determined by the administrator. You can also disable it on a per post basis from the posting form. BBCode itself is similar in style to HTML: tags are enclosed in square braces [ and ] rather than < and > and it offers greater control over what and how something is displayed. For more information on BBCode see the guide which can be accessed from the posting page."); +$faq[] = array("Can I use HTML?", "That depends on whether the administrator allows you to; they have complete control over it. If you are allowed to use it, you will probably find only certain tags work. This is a safety feature to prevent people from abusing the board by using tags which may destroy the layout or cause other problems. If HTML is enabled you can disable it on a per post basis from the posting form."); +$faq[] = array("What are Smileys?", "Smileys, or Emoticons, are small graphical images which can be used to express some feeling using a short code, e.g. :) means happy, :( means sad. The full list of emoticons can be seen via the posting form. Try not to overuse smileys, though, as they can quickly render a post unreadable and a moderator may decide to edit them out or remove the post altogether."); +$faq[] = array("Can I post Images?", "Images can indeed be shown in your posts. However, there is no facility at present for uploading images directly to this board. Therefore you must link to an image stored on a publicly accessible web server, e.g. http://www.some-unknown-place.net/my-picture.gif. You cannot link to pictures stored on your own PC (unless it is a publicly accessible server) nor to images stored behind authentication mechanisms such as Hotmail or Yahoo mailboxes, password-protected sites, etc. To display the image use either the BBCode [img] tag or appropriate HTML (if allowed)."); +$faq[] = array("What are Announcements?", "Announcements often contain important information and you should read them as soon as possible. Announcements appear at the top of every page in the forum to which they are posted. Whether or not you can post an announcement depends on the permissions required, which are set by the administrator."); +$faq[] = array("What are Sticky topics?", "Sticky topics appear below any announcements in viewforum and only on the first page. They are often quite important so you should read them where possible. As with announcements the board administrator determines what permissions are required to post sticky topics in each forum."); +$faq[] = array("What are Locked topics?", "Locked topics are set this way by either the forum moderator or board administrator. You cannot reply to locked topics and any poll contained inside is automatically ended. Topics may be locked for many reasons."); + + +$faq[] = array("--","User Levels and Groups"); +$faq[] = array("What are Administrators?", "Administrators are people assigned the highest level of control over the entire board. These people can control all facets of board operation which include setting permissions, banning users, creating usergroups or moderators, etc. They also have full moderator capabilities in all the forums."); +$faq[] = array("What are Moderators?", "Moderators are individuals (or groups of individuals) whose job it is to look after the running of the forums from day to day. They have the power to edit or delete posts and lock, unlock, move, delete and split topics in the forum they moderate. Generally moderators are there to prevent people going off-topic or posting abusive or offensive material."); +$faq[] = array("What are Usergroups?", "Usergroups are a way in which board administrators can group users. Each user can belong to several groups (this differs from most other boards) and each group can be assigned individual access rights. This makes it easy for administrators to set up several users as moderators of a forum, or to give them access to a private forum, etc."); +$faq[] = array("How do I join a Usergroup?", "To join a usergroup click the usergroup link on the page header (dependent on template design) and you can then view all usergroups. Not all groups are open access -- some are closed and some may even have hidden memberships. If the board is open then you can request to join it by clicking the appropriate button. The user group moderator will need to approve your request; they may ask why you want to join the group. Please do not pester a group moderator if they turn your request down -- they will have their reasons."); +$faq[] = array("How do I become a Usergroup Moderator?", "Usergroups are initially created by the board administrator who also assigns a board moderator. If you are interested in creating a usergroup then your first point of contact should be the administrator, so try dropping them a private message."); + + +$faq[] = array("--","Private Messaging"); +$faq[] = array("I cannot send private messages!", "There are three reasons for this; you are not registered and/or not logged on, the board administrator has disabled private messaging for the entire board, or the board administrator has prevented you individually from sending messages. If it is the latter case you should try asking the administrator why."); +$faq[] = array("I keep getting unwanted private messages!", "In the future we will be adding an ignore list to the private messaging system. For now, though, if you keep receiving unwanted private messages from someone, inform the board administrator -- they have the power to prevent a user from sending private messages at all."); +$faq[] = array("I have received a spamming or abusive email from someone on this board!", "We are sorry to hear that. The email form feature of this board includes safeguards to try to track users who send such posts. You should email the board administrator with a full copy of the email you received and it is very important this include the headers (these list details of the user that sent the email). They can then take action."); + +// +// These entries should remain in all languages and for all modifications +// +$faq[] = array("--","phpBB 2 Issues"); +$faq[] = array("Who wrote this bulletin board?", "This software (in its unmodified form) is produced, released and is copyrighted phpBB Group. It is made available under the GNU General Public License and may be freely distributed; see link for more details"); +$faq[] = array("Why isn't X feature available?", "This software was written by and licensed through phpBB Group. If you believe a feature needs to be added then please visit the phpbb.com website and see what the phpBB Group has to say. Please do not post feature requests to the board at phpbb.com, as the Group uses sourceforge to handle tasking of new features. Please read through the forums and see what, if any, our position may already be for features and then follow the procedure given there."); +$faq[] = array("Whom do I contact about abusive and/or legal matters related to this board?", "You should contact the administrator of this board. If you cannot find who that is, you should first contact one of the forum moderators and ask them who you should in turn contact. If still get no response you should contact the owner of the domain (do a whois lookup) or, if this is running on a free service (e.g. yahoo, free.fr, f2s.com, etc.), the management or abuse department of that service. Please note that phpBB Group has absolutely no control and cannot in any way be held liable over how, where or by whom this board is used. It is absolutely pointless contacting phpBB Group in relation to any legal (cease and desist, liable, defamatory comment, etc.) matter not directly related to the phpbb.com website or the discrete software of phpBB itself. If you do email phpBB Group about any third party use of this software then you should expect a terse response or no response at all."); + +// +// This ends the FAQ entries +// + +?> \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/lang_main.php b/phpBB2_old/language/lang_english/lang_main.php new file mode 100644 index 0000000..01239f8 --- /dev/null +++ b/phpBB2_old/language/lang_english/lang_main.php @@ -0,0 +1,1025 @@ + $lang['message'] = 'text'; +// +// You should also try to set a locale and a character encoding (plus direction). The encoding and direction +// will be sent to the template. The locale may or may not work, it's dependent on OS support and the syntax +// varies ... give it your best guess! +// + +$lang['ENCODING'] = 'iso-8859-1'; +$lang['DIRECTION'] = 'ltr'; +$lang['LEFT'] = 'left'; +$lang['RIGHT'] = 'right'; +$lang['DATE_FORMAT'] = 'd M Y'; // This should be changed to the default date format for your language, php date() format + +// This is optional, if you would like a _SHORT_ message output +// along with our copyright message indicating you are the translator +// please add it here. +// $lang['TRANSLATION'] = ''; + +// +// Common, these terms are used +// extensively on several pages +// +$lang['Forum'] = 'Forum'; +$lang['Category'] = 'Category'; +$lang['Topic'] = 'Topic'; +$lang['Topics'] = 'Topics'; +$lang['Replies'] = 'Replies'; +$lang['Views'] = 'Views'; +$lang['Post'] = 'Post'; +$lang['Posts'] = 'Posts'; +$lang['Posted'] = 'Posted'; +$lang['Username'] = 'Username'; +$lang['Password'] = 'Password'; +$lang['Email'] = 'Email'; +$lang['Poster'] = 'Poster'; +$lang['Author'] = 'Author'; +$lang['Time'] = 'Time'; +$lang['Hours'] = 'Hours'; +$lang['Message'] = 'Message'; + +$lang['1_Day'] = '1 Day'; +$lang['7_Days'] = '7 Days'; +$lang['2_Weeks'] = '2 Weeks'; +$lang['1_Month'] = '1 Month'; +$lang['3_Months'] = '3 Months'; +$lang['6_Months'] = '6 Months'; +$lang['1_Year'] = '1 Year'; + +$lang['Go'] = 'Go'; +$lang['Jump_to'] = 'Jump to'; +$lang['Submit'] = 'Submit'; +$lang['Reset'] = 'Reset'; +$lang['Cancel'] = 'Cancel'; +$lang['Preview'] = 'Preview'; +$lang['Confirm'] = 'Confirm'; +$lang['Spellcheck'] = 'Spellcheck'; +$lang['Yes'] = 'Yes'; +$lang['No'] = 'No'; +$lang['Enabled'] = 'Enabled'; +$lang['Disabled'] = 'Disabled'; +$lang['Error'] = 'Error'; + +$lang['Next'] = 'Next'; +$lang['Previous'] = 'Previous'; +$lang['Goto_page'] = 'Goto page'; +$lang['Joined'] = 'Joined'; +$lang['IP_Address'] = 'IP Address'; + +$lang['Select_forum'] = 'Select a forum'; +$lang['View_latest_post'] = 'View latest post'; +$lang['View_newest_post'] = 'View newest post'; +$lang['Page_of'] = 'Page %d of %d'; // Replaces with: Page 1 of 2 for example + +$lang['ICQ'] = 'ICQ Number'; +$lang['AIM'] = 'AIM Address'; +$lang['MSNM'] = 'MSN Messenger'; +$lang['YIM'] = 'Yahoo Messenger'; + +$lang['Forum_Index'] = '%s Forum Index'; // eg. sitename Forum Index, %s can be removed if you prefer + +$lang['Post_new_topic'] = 'Post new topic'; +$lang['Reply_to_topic'] = 'Reply to topic'; +$lang['Reply_with_quote'] = 'Reply with quote'; + +$lang['Click_return_topic'] = 'Click %sHere%s to return to the topic'; // %s's here are for uris, do not remove! +$lang['Click_return_login'] = 'Click %sHere%s to try again'; +$lang['Click_return_forum'] = 'Click %sHere%s to return to the forum'; +$lang['Click_view_message'] = 'Click %sHere%s to view your message'; +$lang['Click_return_modcp'] = 'Click %sHere%s to return to the Moderator Control Panel'; +$lang['Click_return_group'] = 'Click %sHere%s to return to group information'; + +$lang['Admin_panel'] = 'Go to Administration Panel'; + +$lang['Board_disable'] = 'Sorry, but this board is currently unavailable. Please try again later.'; + + +// +// Global Header strings +// +$lang['Registered_users'] = 'Registered Users:'; +$lang['Browsing_forum'] = 'Users browsing this forum:'; +$lang['Online_users_zero_total'] = 'In total there are 0 users online :: '; +$lang['Online_users_total'] = 'In total there are %d users online :: '; +$lang['Online_user_total'] = 'In total there is %d user online :: '; +$lang['Reg_users_zero_total'] = '0 Registered, '; +$lang['Reg_users_total'] = '%d Registered, '; +$lang['Reg_user_total'] = '%d Registered, '; +$lang['Hidden_users_zero_total'] = '0 Hidden and '; +$lang['Hidden_user_total'] = '%d Hidden and '; +$lang['Hidden_users_total'] = '%d Hidden and '; +$lang['Guest_users_zero_total'] = '0 Guests'; +$lang['Guest_users_total'] = '%d Guests'; +$lang['Guest_user_total'] = '%d Guest'; +$lang['Record_online_users'] = 'Most users ever online was %s on %s'; // first %s = number of users, second %s is the date. + +$lang['Admin_online_color'] = '%sAdministrator%s'; +$lang['Mod_online_color'] = '%sModerator%s'; + +$lang['You_last_visit'] = 'You last visited on %s'; // %s replaced by date/time +$lang['Current_time'] = 'The time now is %s'; // %s replaced by time + +$lang['Search_new'] = 'View posts since last visit'; +$lang['Search_your_posts'] = 'View your posts'; +$lang['Search_unanswered'] = 'View unanswered posts'; + +$lang['Register'] = 'Register'; +$lang['Profile'] = 'Profile'; +$lang['Edit_profile'] = 'Edit your profile'; +$lang['Search'] = 'Search'; +$lang['Memberlist'] = 'Memberlist'; +$lang['FAQ'] = 'FAQ'; +$lang['BBCode_guide'] = 'BBCode Guide'; +$lang['Usergroups'] = 'Usergroups'; +$lang['Last_Post'] = 'Last Post'; +$lang['Moderator'] = 'Moderator'; +$lang['Moderators'] = 'Moderators'; + + +// +// Stats block text +// +$lang['Posted_articles_zero_total'] = 'Our users have posted a total of 0 articles'; // Number of posts +$lang['Posted_articles_total'] = 'Our users have posted a total of %d articles'; // Number of posts +$lang['Posted_article_total'] = 'Our users have posted a total of %d article'; // Number of posts +$lang['Registered_users_zero_total'] = 'We have 0 registered users'; // # registered users +$lang['Registered_users_total'] = 'We have %d registered users'; // # registered users +$lang['Registered_user_total'] = 'We have %d registered user'; // # registered users +$lang['Newest_user'] = 'The newest registered user is %s%s%s'; // a href, username, /a + +$lang['No_new_posts_last_visit'] = 'No new posts since your last visit'; +$lang['No_new_posts'] = 'No new posts'; +$lang['New_posts'] = 'New posts'; +$lang['New_post'] = 'New post'; +$lang['No_new_posts_hot'] = 'No new posts [ Popular ]'; +$lang['New_posts_hot'] = 'New posts [ Popular ]'; +$lang['No_new_posts_locked'] = 'No new posts [ Locked ]'; +$lang['New_posts_locked'] = 'New posts [ Locked ]'; +$lang['Forum_is_locked'] = 'Forum is locked'; + + +// +// Login +// +$lang['Enter_password'] = 'Please enter your username and password to log in.'; +$lang['Login'] = 'Log in'; +$lang['Logout'] = 'Log out'; + +$lang['Forgotten_password'] = 'I forgot my password'; + +$lang['Log_me_in'] = 'Log me on automatically each visit'; + +$lang['Error_login'] = 'You have specified an incorrect or inactive username, or an invalid password.'; + + +// +// Index page +// +$lang['Index'] = 'Index'; +$lang['No_Posts'] = 'No Posts'; +$lang['No_forums'] = 'This board has no forums'; + +$lang['Private_Message'] = 'Private Message'; +$lang['Private_Messages'] = 'Private Messages'; +$lang['Who_is_Online'] = 'Who is Online'; + +$lang['Mark_all_forums'] = 'Mark all forums read'; +$lang['Forums_marked_read'] = 'All forums have been marked read'; + + +// +// Viewforum +// +$lang['View_forum'] = 'View Forum'; + +$lang['Forum_not_exist'] = 'The forum you selected does not exist.'; +$lang['Reached_on_error'] = 'You have reached this page in error.'; + +$lang['Display_topics'] = 'Display topics from previous'; +$lang['All_Topics'] = 'All Topics'; + +$lang['Topic_Announcement'] = 'Announcement:'; +$lang['Topic_Sticky'] = 'Sticky:'; +$lang['Topic_Moved'] = 'Moved:'; +$lang['Topic_Poll'] = '[ Poll ]'; + +$lang['Mark_all_topics'] = 'Mark all topics read'; +$lang['Topics_marked_read'] = 'The topics for this forum have now been marked read'; + +$lang['Rules_post_can'] = 'You can post new topics in this forum'; +$lang['Rules_post_cannot'] = 'You cannot post new topics in this forum'; +$lang['Rules_reply_can'] = 'You can reply to topics in this forum'; +$lang['Rules_reply_cannot'] = 'You cannot reply to topics in this forum'; +$lang['Rules_edit_can'] = 'You can edit your posts in this forum'; +$lang['Rules_edit_cannot'] = 'You cannot edit your posts in this forum'; +$lang['Rules_delete_can'] = 'You can delete your posts in this forum'; +$lang['Rules_delete_cannot'] = 'You cannot delete your posts in this forum'; +$lang['Rules_vote_can'] = 'You can vote in polls in this forum'; +$lang['Rules_vote_cannot'] = 'You cannot vote in polls in this forum'; +$lang['Rules_moderate'] = 'You can %smoderate this forum%s'; // %s replaced by a href links, do not remove! + +$lang['No_topics_post_one'] = 'There are no posts in this forum.
    Click on the Post New Topic link on this page to post one.'; + + +// +// Viewtopic +// +$lang['View_topic'] = 'View topic'; + +$lang['Guest'] = 'Guest'; +$lang['Post_subject'] = 'Post subject'; +$lang['View_next_topic'] = 'View next topic'; +$lang['View_previous_topic'] = 'View previous topic'; +$lang['Submit_vote'] = 'Submit Vote'; +$lang['View_results'] = 'View Results'; + +$lang['No_newer_topics'] = 'There are no newer topics in this forum'; +$lang['No_older_topics'] = 'There are no older topics in this forum'; +$lang['Topic_post_not_exist'] = 'The topic or post you requested does not exist'; +$lang['No_posts_topic'] = 'No posts exist for this topic'; + +$lang['Display_posts'] = 'Display posts from previous'; +$lang['All_Posts'] = 'All Posts'; +$lang['Newest_First'] = 'Newest First'; +$lang['Oldest_First'] = 'Oldest First'; + +$lang['Back_to_top'] = 'Back to top'; + +$lang['Read_profile'] = 'View user\'s profile'; +$lang['Send_email'] = 'Send e-mail to user'; +$lang['Visit_website'] = 'Visit poster\'s website'; +$lang['ICQ_status'] = 'ICQ Status'; +$lang['Edit_delete_post'] = 'Edit/Delete this post'; +$lang['View_IP'] = 'View IP address of poster'; +$lang['Delete_post'] = 'Delete this post'; + +$lang['wrote'] = 'wrote'; // proceeds the username and is followed by the quoted text +$lang['Quote'] = 'Quote'; // comes before bbcode quote output. +$lang['Code'] = 'Code'; // comes before bbcode code output. + +$lang['Edited_time_total'] = 'Last edited by %s on %s; edited %d time in total'; // Last edited by me on 12 Oct 2001; edited 1 time in total +$lang['Edited_times_total'] = 'Last edited by %s on %s; edited %d times in total'; // Last edited by me on 12 Oct 2001; edited 2 times in total + +$lang['Lock_topic'] = 'Lock this topic'; +$lang['Unlock_topic'] = 'Unlock this topic'; +$lang['Move_topic'] = 'Move this topic'; +$lang['Delete_topic'] = 'Delete this topic'; +$lang['Split_topic'] = 'Split this topic'; + +$lang['Stop_watching_topic'] = 'Stop watching this topic'; +$lang['Start_watching_topic'] = 'Watch this topic for replies'; +$lang['No_longer_watching'] = 'You are no longer watching this topic'; +$lang['You_are_watching'] = 'You are now watching this topic'; + +$lang['Total_votes'] = 'Total Votes'; + +// +// Posting/Replying (Not private messaging!) +// +$lang['Message_body'] = 'Message body'; +$lang['Topic_review'] = 'Topic review'; + +$lang['No_post_mode'] = 'No post mode specified'; // If posting.php is called without a mode (newtopic/reply/delete/etc, shouldn't be shown normaly) + +$lang['Post_a_new_topic'] = 'Post a new topic'; +$lang['Post_a_reply'] = 'Post a reply'; +$lang['Post_topic_as'] = 'Post topic as'; +$lang['Edit_Post'] = 'Edit post'; +$lang['Options'] = 'Options'; + +$lang['Post_Announcement'] = 'Announcement'; +$lang['Post_Sticky'] = 'Sticky'; +$lang['Post_Normal'] = 'Normal'; + +$lang['Confirm_delete'] = 'Are you sure you want to delete this post?'; +$lang['Confirm_delete_poll'] = 'Are you sure you want to delete this poll?'; + +$lang['Flood_Error'] = 'You cannot make another post so soon after your last; please try again in a short while.'; +$lang['Empty_subject'] = 'You must specify a subject when posting a new topic.'; +$lang['Empty_message'] = 'You must enter a message when posting.'; +$lang['Forum_locked'] = 'This forum is locked: you cannot post, reply to, or edit topics.'; +$lang['Topic_locked'] = 'This topic is locked: you cannot edit posts or make replies.'; +$lang['No_post_id'] = 'You must select a post to edit'; +$lang['No_topic_id'] = 'You must select a topic to reply to'; +$lang['No_valid_mode'] = 'You can only post, reply, edit, or quote messages. Please return and try again.'; +$lang['No_such_post'] = 'There is no such post. Please return and try again.'; +$lang['Edit_own_posts'] = 'Sorry, but you can only edit your own posts.'; +$lang['Delete_own_posts'] = 'Sorry, but you can only delete your own posts.'; +$lang['Cannot_delete_replied'] = 'Sorry, but you may not delete posts that have been replied to.'; +$lang['Cannot_delete_poll'] = 'Sorry, but you cannot delete an active poll.'; +$lang['Empty_poll_title'] = 'You must enter a title for your poll.'; +$lang['To_few_poll_options'] = 'You must enter at least two poll options.'; +$lang['To_many_poll_options'] = 'You have tried to enter too many poll options.'; +$lang['Post_has_no_poll'] = 'This post has no poll.'; +$lang['Already_voted'] = 'You have already voted in this poll.'; +$lang['No_vote_option'] = 'You must specify an option when voting.'; + +$lang['Add_poll'] = 'Add a Poll'; +$lang['Add_poll_explain'] = 'If you do not want to add a poll to your topic, leave the fields blank.'; +$lang['Poll_question'] = 'Poll question'; +$lang['Poll_option'] = 'Poll option'; +$lang['Add_option'] = 'Add option'; +$lang['Update'] = 'Update'; +$lang['Delete'] = 'Delete'; +$lang['Poll_for'] = 'Run poll for'; +$lang['Days'] = 'Days'; // This is used for the Run poll for ... Days + in admin_forums for pruning +$lang['Poll_for_explain'] = '[ Enter 0 or leave blank for a never-ending poll ]'; +$lang['Delete_poll'] = 'Delete Poll'; + +$lang['Disable_HTML_post'] = 'Disable HTML in this post'; +$lang['Disable_BBCode_post'] = 'Disable BBCode in this post'; +$lang['Disable_Smilies_post'] = 'Disable Smilies in this post'; + +$lang['HTML_is_ON'] = 'HTML is ON'; +$lang['HTML_is_OFF'] = 'HTML is OFF'; +$lang['BBCode_is_ON'] = '%sBBCode%s is ON'; // %s are replaced with URI pointing to FAQ +$lang['BBCode_is_OFF'] = '%sBBCode%s is OFF'; +$lang['Smilies_are_ON'] = 'Smilies are ON'; +$lang['Smilies_are_OFF'] = 'Smilies are OFF'; + +$lang['Attach_signature'] = 'Attach signature (signatures can be changed in profile)'; +$lang['Notify'] = 'Notify me when a reply is posted'; +$lang['Delete_post'] = 'Delete this post'; + +$lang['Stored'] = 'Your message has been entered successfully.'; +$lang['Deleted'] = 'Your message has been deleted successfully.'; +$lang['Poll_delete'] = 'Your poll has been deleted successfully.'; +$lang['Vote_cast'] = 'Your vote has been cast.'; + +$lang['Topic_reply_notification'] = 'Topic Reply Notification'; + +$lang['bbcode_b_help'] = 'Bold text: [b]text[/b] (alt+b)'; +$lang['bbcode_i_help'] = 'Italic text: [i]text[/i] (alt+i)'; +$lang['bbcode_u_help'] = 'Underline text: [u]text[/u] (alt+u)'; +$lang['bbcode_q_help'] = 'Quote text: [quote]text[/quote] (alt+q)'; +$lang['bbcode_c_help'] = 'Code display: [code]code[/code] (alt+c)'; +$lang['bbcode_l_help'] = 'List: [list]text[/list] (alt+l)'; +$lang['bbcode_o_help'] = 'Ordered list: [list=]text[/list] (alt+o)'; +$lang['bbcode_p_help'] = 'Insert image: [img]http://image_url[/img] (alt+p)'; +$lang['bbcode_w_help'] = 'Insert URL: [url]http://url[/url] or [url=http://url]URL text[/url] (alt+w)'; +$lang['bbcode_a_help'] = 'Close all open bbCode tags'; +$lang['bbcode_s_help'] = 'Font color: [color=red]text[/color] Tip: you can also use color=#FF0000'; +$lang['bbcode_f_help'] = 'Font size: [size=x-small]small text[/size]'; + +$lang['Emoticons'] = 'Emoticons'; +$lang['More_emoticons'] = 'View more Emoticons'; + +$lang['Font_color'] = 'Font colour'; +$lang['color_default'] = 'Default'; +$lang['color_dark_red'] = 'Dark Red'; +$lang['color_red'] = 'Red'; +$lang['color_orange'] = 'Orange'; +$lang['color_brown'] = 'Brown'; +$lang['color_yellow'] = 'Yellow'; +$lang['color_green'] = 'Green'; +$lang['color_olive'] = 'Olive'; +$lang['color_cyan'] = 'Cyan'; +$lang['color_blue'] = 'Blue'; +$lang['color_dark_blue'] = 'Dark Blue'; +$lang['color_indigo'] = 'Indigo'; +$lang['color_violet'] = 'Violet'; +$lang['color_white'] = 'White'; +$lang['color_black'] = 'Black'; + +$lang['Font_size'] = 'Font size'; +$lang['font_tiny'] = 'Tiny'; +$lang['font_small'] = 'Small'; +$lang['font_normal'] = 'Normal'; +$lang['font_large'] = 'Large'; +$lang['font_huge'] = 'Huge'; + +$lang['Close_Tags'] = 'Close Tags'; +$lang['Styles_tip'] = 'Tip: Styles can be applied quickly to selected text.'; + + +// +// Private Messaging +// +$lang['Private_Messaging'] = 'Private Messaging'; + +$lang['Login_check_pm'] = 'Log in to check your private messages'; +$lang['New_pms'] = 'You have %d new messages'; // You have 2 new messages +$lang['New_pm'] = 'You have %d new message'; // You have 1 new message +$lang['No_new_pm'] = 'You have no new messages'; +$lang['Unread_pms'] = 'You have %d unread messages'; +$lang['Unread_pm'] = 'You have %d unread message'; +$lang['No_unread_pm'] = 'You have no unread messages'; +$lang['You_new_pm'] = 'A new private message is waiting for you in your Inbox'; +$lang['You_new_pms'] = 'New private messages are waiting for you in your Inbox'; +$lang['You_no_new_pm'] = 'No new private messages are waiting for you'; + +$lang['Unread_message'] = 'Unread message'; +$lang['Read_message'] = 'Read message'; + +$lang['Read_pm'] = 'Read message'; +$lang['Post_new_pm'] = 'Post message'; +$lang['Post_reply_pm'] = 'Reply to message'; +$lang['Post_quote_pm'] = 'Quote message'; +$lang['Edit_pm'] = 'Edit message'; + +$lang['Inbox'] = 'Inbox'; +$lang['Outbox'] = 'Outbox'; +$lang['Savebox'] = 'Savebox'; +$lang['Sentbox'] = 'Sentbox'; +$lang['Flag'] = 'Flag'; +$lang['Subject'] = 'Subject'; +$lang['From'] = 'From'; +$lang['To'] = 'To'; +$lang['Date'] = 'Date'; +$lang['Mark'] = 'Mark'; +$lang['Sent'] = 'Sent'; +$lang['Saved'] = 'Saved'; +$lang['Delete_marked'] = 'Delete Marked'; +$lang['Delete_all'] = 'Delete All'; +$lang['Save_marked'] = 'Save Marked'; +$lang['Save_message'] = 'Save Message'; +$lang['Delete_message'] = 'Delete Message'; + +$lang['Display_messages'] = 'Display messages from previous'; // Followed by number of days/weeks/months +$lang['All_Messages'] = 'All Messages'; + +$lang['No_messages_folder'] = 'You have no messages in this folder'; + +$lang['PM_disabled'] = 'Private messaging has been disabled on this board.'; +$lang['Cannot_send_privmsg'] = 'Sorry, but the administrator has prevented you from sending private messages.'; +$lang['No_to_user'] = 'You must specify a username to whom to send this message.'; +$lang['No_such_user'] = 'Sorry, but no such user exists.'; + +$lang['Disable_HTML_pm'] = 'Disable HTML in this message'; +$lang['Disable_BBCode_pm'] = 'Disable BBCode in this message'; +$lang['Disable_Smilies_pm'] = 'Disable Smilies in this message'; + +$lang['Message_sent'] = 'Your message has been sent.'; + +$lang['Click_return_inbox'] = 'Click %sHere%s to return to your Inbox'; +$lang['Click_return_index'] = 'Click %sHere%s to return to the Index'; + +$lang['Send_a_new_message'] = 'Send a new private message'; +$lang['Send_a_reply'] = 'Reply to a private message'; +$lang['Edit_message'] = 'Edit private message'; + +$lang['Notification_subject'] = 'New Private Message has arrived!'; + +$lang['Find_username'] = 'Find a username'; +$lang['Find'] = 'Find'; +$lang['No_match'] = 'No matches found.'; + +$lang['No_post_id'] = 'No post ID was specified'; +$lang['No_such_folder'] = 'No such folder exists'; +$lang['No_folder'] = 'No folder specified'; + +$lang['Mark_all'] = 'Mark all'; +$lang['Unmark_all'] = 'Unmark all'; + +$lang['Confirm_delete_pm'] = 'Are you sure you want to delete this message?'; +$lang['Confirm_delete_pms'] = 'Are you sure you want to delete these messages?'; + +$lang['Inbox_size'] = 'Your Inbox is %d%% full'; // eg. Your Inbox is 50% full +$lang['Sentbox_size'] = 'Your Sentbox is %d%% full'; +$lang['Savebox_size'] = 'Your Savebox is %d%% full'; + +$lang['Click_view_privmsg'] = 'Click %sHere%s to visit your Inbox'; + + +// +// Profiles/Registration +// +$lang['Viewing_user_profile'] = 'Viewing profile :: %s'; // %s is username +$lang['About_user'] = 'All about %s'; // %s is username + +$lang['Preferences'] = 'Preferences'; +$lang['Items_required'] = 'Items marked with a * are required unless stated otherwise.'; +$lang['Registration_info'] = 'Registration Information'; +$lang['Profile_info'] = 'Profile Information'; +$lang['Profile_info_warn'] = 'This information will be publicly viewable'; +$lang['Avatar_panel'] = 'Avatar control panel'; +$lang['Avatar_gallery'] = 'Avatar gallery'; + +$lang['Website'] = 'Website'; +$lang['Location'] = 'Location'; +$lang['Contact'] = 'Contact'; +$lang['Email_address'] = 'E-mail address'; +$lang['Email'] = 'E-mail'; +$lang['Send_private_message'] = 'Send private message'; +$lang['Hidden_email'] = '[ Hidden ]'; +$lang['Search_user_posts'] = 'Search for posts by this user'; +$lang['Interests'] = 'Interests'; +$lang['Occupation'] = 'Occupation'; +$lang['Poster_rank'] = 'Poster rank'; + +$lang['Total_posts'] = 'Total posts'; +$lang['User_post_pct_stats'] = '%.2f%% of total'; // 1.25% of total +$lang['User_post_day_stats'] = '%.2f posts per day'; // 1.5 posts per day +$lang['Search_user_posts'] = 'Find all posts by %s'; // Find all posts by username + +$lang['No_user_id_specified'] = 'Sorry, but that user does not exist.'; +$lang['Wrong_Profile'] = 'You cannot modify a profile that is not your own.'; + +$lang['Only_one_avatar'] = 'Only one type of avatar can be specified'; +$lang['File_no_data'] = 'The file at the URL you gave contains no data'; +$lang['No_connection_URL'] = 'A connection could not be made to the URL you gave'; +$lang['Incomplete_URL'] = 'The URL you entered is incomplete'; +$lang['Wrong_remote_avatar_format'] = 'The URL of the remote avatar is not valid'; +$lang['No_send_account_inactive'] = 'Sorry, but your password cannot be retrieved because your account is currently inactive. Please contact the forum administrator for more information.'; + +$lang['Always_smile'] = 'Always enable Smilies'; +$lang['Always_html'] = 'Always allow HTML'; +$lang['Always_bbcode'] = 'Always allow BBCode'; +$lang['Always_add_sig'] = 'Always attach my signature'; +$lang['Always_notify'] = 'Always notify me of replies'; +$lang['Always_notify_explain'] = 'Sends an e-mail when someone replies to a topic you have posted in. This can be changed whenever you post.'; + +$lang['Board_style'] = 'Board Style'; +$lang['Board_lang'] = 'Board Language'; +$lang['No_themes'] = 'No Themes In database'; +$lang['Timezone'] = 'Timezone'; +$lang['Date_format'] = 'Date format'; +$lang['Date_format_explain'] = 'The syntax used is identical to the PHP date() function.'; +$lang['Signature'] = 'Signature'; +$lang['Signature_explain'] = 'This is a block of text that can be added to posts you make. There is a %d character limit'; +$lang['Public_view_email'] = 'Always show my e-mail address'; + +$lang['Current_password'] = 'Current password'; +$lang['New_password'] = 'New password'; +$lang['Confirm_password'] = 'Confirm password'; +$lang['Confirm_password_explain'] = 'You must confirm your current password if you wish to change it or alter your e-mail address'; +$lang['password_if_changed'] = 'You only need to supply a password if you want to change it'; +$lang['password_confirm_if_changed'] = 'You only need to confirm your password if you changed it above'; + +$lang['Avatar'] = 'Avatar'; +$lang['Avatar_explain'] = 'Displays a small graphic image below your details in posts. Only one image can be displayed at a time, its width can be no greater than %d pixels, the height no greater than %d pixels, and the file size no more than %d KB.'; +$lang['Upload_Avatar_file'] = 'Upload Avatar from your machine'; +$lang['Upload_Avatar_URL'] = 'Upload Avatar from a URL'; +$lang['Upload_Avatar_URL_explain'] = 'Enter the URL of the location containing the Avatar image, it will be copied to this site.'; +$lang['Pick_local_Avatar'] = 'Select Avatar from the gallery'; +$lang['Link_remote_Avatar'] = 'Link to off-site Avatar'; +$lang['Link_remote_Avatar_explain'] = 'Enter the URL of the location containing the Avatar image you wish to link to.'; +$lang['Avatar_URL'] = 'URL of Avatar Image'; +$lang['Select_from_gallery'] = 'Select Avatar from gallery'; +$lang['View_avatar_gallery'] = 'Show gallery'; + +$lang['Select_avatar'] = 'Select avatar'; +$lang['Return_profile'] = 'Cancel avatar'; +$lang['Select_category'] = 'Select category'; + +$lang['Delete_Image'] = 'Delete Image'; +$lang['Current_Image'] = 'Current Image'; + +$lang['Notify_on_privmsg'] = 'Notify on new Private Message'; +$lang['Popup_on_privmsg'] = 'Pop up window on new Private Message'; +$lang['Popup_on_privmsg_explain'] = 'Some templates may open a new window to inform you when new private messages arrive.'; +$lang['Hide_user'] = 'Hide your online status'; + +$lang['Profile_updated'] = 'Your profile has been updated'; +$lang['Profile_updated_inactive'] = 'Your profile has been updated. However, you have changed vital details, thus your account is now inactive. Check your e-mail to find out how to reactivate your account, or if admin activation is required, wait for the administrator to reactivate it.'; + +$lang['Password_mismatch'] = 'The passwords you entered did not match.'; +$lang['Current_password_mismatch'] = 'The current password you supplied does not match that stored in the database.'; +$lang['Password_long'] = 'Your password must be no more than 32 characters.'; +$lang['Too_many_registers'] = 'You have made too many registration attempts. Please try again later.'; +$lang['Username_taken'] = 'Sorry, but this username has already been taken.'; +$lang['Username_invalid'] = 'Sorry, but this username contains an invalid character such as \'.'; +$lang['Username_disallowed'] = 'Sorry, but this username has been disallowed.'; +$lang['Email_taken'] = 'Sorry, but that e-mail address is already registered to a user.'; +$lang['Email_banned'] = 'Sorry, but this e-mail address has been banned.'; +$lang['Email_invalid'] = 'Sorry, but this e-mail address is invalid.'; +$lang['Signature_too_long'] = 'Your signature is too long.'; +$lang['Fields_empty'] = 'You must fill in the required fields.'; +$lang['Avatar_filetype'] = 'The avatar filetype must be .jpg, .gif or .png'; +$lang['Avatar_filesize'] = 'The avatar image file size must be less than %d KB'; // The avatar image file size must be less than 6 KB +$lang['Avatar_imagesize'] = 'The avatar must be less than %d pixels wide and %d pixels high'; + +$lang['Welcome_subject'] = 'Welcome to %s Forums'; // Welcome to my.com forums +$lang['New_account_subject'] = 'New user account'; +$lang['Account_activated_subject'] = 'Account Activated'; + +$lang['Account_added'] = 'Thank you for registering. Your account has been created. You may now log in with your username and password'; +$lang['Account_inactive'] = 'Your account has been created. However, this forum requires account activation. An activation key has been sent to the e-mail address you provided. Please check your e-mail for further information'; +$lang['Account_inactive_admin'] = 'Your account has been created. However, this forum requires account activation by the administrator. An e-mail has been sent to them and you will be informed when your account has been activated'; +$lang['Account_active'] = 'Your account has now been activated. Thank you for registering'; +$lang['Account_active_admin'] = 'The account has now been activated'; +$lang['Reactivate'] = 'Reactivate your account!'; +$lang['Already_activated'] = 'You have already activated your account'; +$lang['COPPA'] = 'Your account has been created but has to be approved. Please check your e-mail for details.'; + +$lang['Registration'] = 'Registration Agreement Terms'; +$lang['Reg_agreement'] = 'While the administrators and moderators of this forum will attempt to remove or edit any generally objectionable material as quickly as possible, it is impossible to review every message. Therefore you acknowledge that all posts made to these forums express the views and opinions of the author and not the administrators, moderators or webmaster (except for posts by these people) and hence will not be held liable.

    You agree not to post any abusive, obscene, vulgar, slanderous, hateful, threatening, sexually-oriented or any other material that may violate any applicable laws. Doing so may lead to you being immediately and permanently banned (and your service provider being informed). The IP address of all posts is recorded to aid in enforcing these conditions. You agree that the webmaster, administrator and moderators of this forum have the right to remove, edit, move or close any topic at any time should they see fit. As a user you agree to any information you have entered above being stored in a database. While this information will not be disclosed to any third party without your consent the webmaster, administrator and moderators cannot be held responsible for any hacking attempt that may lead to the data being compromised.

    This forum system uses cookies to store information on your local computer. These cookies do not contain any of the information you have entered above; they serve only to improve your viewing pleasure. The e-mail address is used only for confirming your registration details and password (and for sending new passwords should you forget your current one).

    By clicking Register below you agree to be bound by these conditions.'; + +$lang['Agree_under_13'] = 'I Agree to these terms and am under 13 years of age'; +$lang['Agree_over_13'] = 'I Agree to these terms and am over or exactly 13 years of age'; +$lang['Agree_not'] = 'I do not agree to these terms'; + +$lang['Wrong_activation'] = 'The activation key you supplied does not match any in the database.'; +$lang['Send_password'] = 'Send me a new password'; +$lang['Password_updated'] = 'A new password has been created; please check your e-mail for details on how to activate it.'; +$lang['No_email_match'] = 'The e-mail address you supplied does not match the one listed for that username.'; +$lang['New_password_activation'] = 'New password activation'; +$lang['Password_activated'] = 'Your account has been re-activated. To log in, please use the password supplied in the e-mail you received.'; + +$lang['Send_email_msg'] = 'Send an e-mail message'; +$lang['No_user_specified'] = 'No user was specified'; +$lang['User_prevent_email'] = 'This user does not wish to receive e-mail. Try sending them a private message.'; +$lang['User_not_exist'] = 'That user does not exist'; +$lang['CC_email'] = 'Send a copy of this e-mail to yourself'; +$lang['Email_message_desc'] = 'This message will be sent as plain text, so do not include any HTML or BBCode. The return address for this message will be set to your e-mail address.'; +$lang['Flood_email_limit'] = 'You cannot send another e-mail at this time. Try again later.'; +$lang['Recipient'] = 'Recipient'; +$lang['Email_sent'] = 'The e-mail has been sent.'; +$lang['Send_email'] = 'Send e-mail'; +$lang['Empty_subject_email'] = 'You must specify a subject for the e-mail.'; +$lang['Empty_message_email'] = 'You must enter a message to be e-mailed.'; + + +// +// Visual confirmation system strings +// +$lang['Confirm_code_wrong'] = 'The confirmation code you entered was incorrect'; +$lang['Too_many_registers'] = 'You have exceeded the number of registration attempts for this session. Please try again later.'; +$lang['Confirm_code_impaired'] = 'If you are visually impaired or cannot otherwise read this code please contact the %sAdministrator%s for help.'; +$lang['Confirm_code'] = 'Confirmation code'; +$lang['Confirm_code_explain'] = 'Enter the code exactly as you see it. The code is case sensitive and zero has a diagonal line through it.'; + + + +// +// Memberslist +// +$lang['Select_sort_method'] = 'Select sort method'; +$lang['Sort'] = 'Sort'; +$lang['Sort_Top_Ten'] = 'Top Ten Posters'; +$lang['Sort_Joined'] = 'Joined Date'; +$lang['Sort_Username'] = 'Username'; +$lang['Sort_Location'] = 'Location'; +$lang['Sort_Posts'] = 'Total posts'; +$lang['Sort_Email'] = 'Email'; +$lang['Sort_Website'] = 'Website'; +$lang['Sort_Ascending'] = 'Ascending'; +$lang['Sort_Descending'] = 'Descending'; +$lang['Order'] = 'Order'; + + +// +// Group control panel +// +$lang['Group_Control_Panel'] = 'Group Control Panel'; +$lang['Group_member_details'] = 'Group Membership Details'; +$lang['Group_member_join'] = 'Join a Group'; + +$lang['Group_Information'] = 'Group Information'; +$lang['Group_name'] = 'Group name'; +$lang['Group_description'] = 'Group description'; +$lang['Group_membership'] = 'Group membership'; +$lang['Group_Members'] = 'Group Members'; +$lang['Group_Moderator'] = 'Group Moderator'; +$lang['Pending_members'] = 'Pending Members'; + +$lang['Group_type'] = 'Group type'; +$lang['Group_open'] = 'Open group'; +$lang['Group_closed'] = 'Closed group'; +$lang['Group_hidden'] = 'Hidden group'; + +$lang['Current_memberships'] = 'Current memberships'; +$lang['Non_member_groups'] = 'Non-member groups'; +$lang['Memberships_pending'] = 'Memberships pending'; + +$lang['No_groups_exist'] = 'No Groups Exist'; +$lang['Group_not_exist'] = 'That user group does not exist'; + +$lang['Join_group'] = 'Join Group'; +$lang['No_group_members'] = 'This group has no members'; +$lang['Group_hidden_members'] = 'This group is hidden; you cannot view its membership'; +$lang['No_pending_group_members'] = 'This group has no pending members'; +$lang['Group_joined'] = 'You have successfully subscribed to this group.
    You will be notified when your subscription is approved by the group moderator.'; +$lang['Group_request'] = 'A request to join your group has been made.'; +$lang['Group_approved'] = 'Your request has been approved.'; +$lang['Group_added'] = 'You have been added to this usergroup.'; +$lang['Already_member_group'] = 'You are already a member of this group'; +$lang['User_is_member_group'] = 'User is already a member of this group'; +$lang['Group_type_updated'] = 'Successfully updated group type.'; + +$lang['Could_not_add_user'] = 'The user you selected does not exist.'; +$lang['Could_not_anon_user'] = 'You cannot make Anonymous a group member.'; + +$lang['Confirm_unsub'] = 'Are you sure you want to unsubscribe from this group?'; +$lang['Confirm_unsub_pending'] = 'Your subscription to this group has not yet been approved; are you sure you want to unsubscribe?'; + +$lang['Unsub_success'] = 'You have been un-subscribed from this group.'; + +$lang['Approve_selected'] = 'Approve Selected'; +$lang['Deny_selected'] = 'Deny Selected'; +$lang['Not_logged_in'] = 'You must be logged in to join a group.'; +$lang['Remove_selected'] = 'Remove Selected'; +$lang['Add_member'] = 'Add Member'; +$lang['Not_group_moderator'] = 'You are not this group\'s moderator, therefore you cannot perform that action.'; + +$lang['Login_to_join'] = 'Log in to join or manage group memberships'; +$lang['This_open_group'] = 'This is an open group: click to request membership'; +$lang['This_closed_group'] = 'This is a closed group: no more users accepted'; +$lang['This_hidden_group'] = 'This is a hidden group: automatic user addition is not allowed'; +$lang['Member_this_group'] = 'You are a member of this group'; +$lang['Pending_this_group'] = 'Your membership of this group is pending'; +$lang['Are_group_moderator'] = 'You are the group moderator'; +$lang['None'] = 'None'; + +$lang['Subscribe'] = 'Subscribe'; +$lang['Unsubscribe'] = 'Unsubscribe'; +$lang['View_Information'] = 'View Information'; + + +// +// Search +// +$lang['Search_query'] = 'Search Query'; +$lang['Search_options'] = 'Search Options'; + +$lang['Search_keywords'] = 'Search for Keywords'; +$lang['Search_keywords_explain'] = 'You can use AND to define words which must be in the results, OR to define words which may be in the result and NOT to define words which should not be in the result. Use * as a wildcard for partial matches'; +$lang['Search_author'] = 'Search for Author'; +$lang['Search_author_explain'] = 'Use * as a wildcard for partial matches'; + +$lang['Search_for_any'] = 'Search for any terms or use query as entered'; +$lang['Search_for_all'] = 'Search for all terms'; +$lang['Search_title_msg'] = 'Search topic title and message text'; +$lang['Search_msg_only'] = 'Search message text only'; + +$lang['Return_first'] = 'Return first'; // followed by xxx characters in a select box +$lang['characters_posts'] = 'characters of posts'; + +$lang['Search_previous'] = 'Search previous'; // followed by days, weeks, months, year, all in a select box + +$lang['Sort_by'] = 'Sort by'; +$lang['Sort_Time'] = 'Post Time'; +$lang['Sort_Post_Subject'] = 'Post Subject'; +$lang['Sort_Topic_Title'] = 'Topic Title'; +$lang['Sort_Author'] = 'Author'; +$lang['Sort_Forum'] = 'Forum'; + +$lang['Display_results'] = 'Display results as'; +$lang['All_available'] = 'All available'; +$lang['No_searchable_forums'] = 'You do not have permissions to search any forum on this site.'; + +$lang['No_search_match'] = 'No topics or posts met your search criteria'; +$lang['Found_search_match'] = 'Search found %d match'; // eg. Search found 1 match +$lang['Found_search_matches'] = 'Search found %d matches'; // eg. Search found 24 matches + +$lang['Close_window'] = 'Close Window'; + + +// +// Auth related entries +// +// Note the %s will be replaced with one of the following 'user' arrays +$lang['Sorry_auth_announce'] = 'Sorry, but only %s can post announcements in this forum.'; +$lang['Sorry_auth_sticky'] = 'Sorry, but only %s can post sticky messages in this forum.'; +$lang['Sorry_auth_read'] = 'Sorry, but only %s can read topics in this forum.'; +$lang['Sorry_auth_post'] = 'Sorry, but only %s can post topics in this forum.'; +$lang['Sorry_auth_reply'] = 'Sorry, but only %s can reply to posts in this forum.'; +$lang['Sorry_auth_edit'] = 'Sorry, but only %s can edit posts in this forum.'; +$lang['Sorry_auth_delete'] = 'Sorry, but only %s can delete posts in this forum.'; +$lang['Sorry_auth_vote'] = 'Sorry, but only %s can vote in polls in this forum.'; + +// These replace the %s in the above strings +$lang['Auth_Anonymous_Users'] = 'anonymous users'; +$lang['Auth_Registered_Users'] = 'registered users'; +$lang['Auth_Users_granted_access'] = 'users granted special access'; +$lang['Auth_Moderators'] = 'moderators'; +$lang['Auth_Administrators'] = 'administrators'; + +$lang['Not_Moderator'] = 'You are not a moderator of this forum.'; +$lang['Not_Authorised'] = 'Not Authorised'; + +$lang['You_been_banned'] = 'You have been banned from this forum.
    Please contact the webmaster or board administrator for more information.'; + + +// +// Viewonline +// +$lang['Reg_users_zero_online'] = 'There are 0 Registered users and '; // There are 5 Registered and +$lang['Reg_users_online'] = 'There are %d Registered users and '; // There are 5 Registered and +$lang['Reg_user_online'] = 'There is %d Registered user and '; // There is 1 Registered and +$lang['Hidden_users_zero_online'] = '0 Hidden users online'; // 6 Hidden users online +$lang['Hidden_users_online'] = '%d Hidden users online'; // 6 Hidden users online +$lang['Hidden_user_online'] = '%d Hidden user online'; // 6 Hidden users online +$lang['Guest_users_online'] = 'There are %d Guest users online'; // There are 10 Guest users online +$lang['Guest_users_zero_online'] = 'There are 0 Guest users online'; // There are 10 Guest users online +$lang['Guest_user_online'] = 'There is %d Guest user online'; // There is 1 Guest user online +$lang['No_users_browsing'] = 'There are no users currently browsing this forum'; + +$lang['Online_explain'] = 'This data is based on users active over the past five minutes'; + +$lang['Forum_Location'] = 'Forum Location'; +$lang['Last_updated'] = 'Last Updated'; + +$lang['Forum_index'] = 'Forum index'; +$lang['Logging_on'] = 'Logging on'; +$lang['Posting_message'] = 'Posting a message'; +$lang['Searching_forums'] = 'Searching forums'; +$lang['Viewing_profile'] = 'Viewing profile'; +$lang['Viewing_online'] = 'Viewing who is online'; +$lang['Viewing_member_list'] = 'Viewing member list'; +$lang['Viewing_priv_msgs'] = 'Viewing Private Messages'; +$lang['Viewing_FAQ'] = 'Viewing FAQ'; + + +// +// Moderator Control Panel +// +$lang['Mod_CP'] = 'Moderator Control Panel'; +$lang['Mod_CP_explain'] = 'Using the form below you can perform mass moderation operations on this forum. You can lock, unlock, move or delete any number of topics.'; + +$lang['Select'] = 'Select'; +$lang['Delete'] = 'Delete'; +$lang['Move'] = 'Move'; +$lang['Lock'] = 'Lock'; +$lang['Unlock'] = 'Unlock'; + +$lang['Topics_Removed'] = 'The selected topics have been successfully removed from the database.'; +$lang['Topics_Locked'] = 'The selected topics have been locked.'; +$lang['Topics_Moved'] = 'The selected topics have been moved.'; +$lang['Topics_Unlocked'] = 'The selected topics have been unlocked.'; +$lang['No_Topics_Moved'] = 'No topics were moved.'; + +$lang['Confirm_delete_topic'] = 'Are you sure you want to remove the selected topic/s?'; +$lang['Confirm_lock_topic'] = 'Are you sure you want to lock the selected topic/s?'; +$lang['Confirm_unlock_topic'] = 'Are you sure you want to unlock the selected topic/s?'; +$lang['Confirm_move_topic'] = 'Are you sure you want to move the selected topic/s?'; + +$lang['Move_to_forum'] = 'Move to forum'; +$lang['Leave_shadow_topic'] = 'Leave shadow topic in old forum.'; + +$lang['Split_Topic'] = 'Split Topic Control Panel'; +$lang['Split_Topic_explain'] = 'Using the form below you can split a topic in two, either by selecting the posts individually or by splitting at a selected post'; +$lang['Split_title'] = 'New topic title'; +$lang['Split_forum'] = 'Forum for new topic'; +$lang['Split_posts'] = 'Split selected posts'; +$lang['Split_after'] = 'Split from selected post'; +$lang['Topic_split'] = 'The selected topic has been split successfully'; + +$lang['Too_many_error'] = 'You have selected too many posts. You can only select one post to split a topic after!'; + +$lang['None_selected'] = 'You have not selected any topics to perform this operation on. Please go back and select at least one.'; +$lang['New_forum'] = 'New forum'; + +$lang['This_posts_IP'] = 'IP address for this post'; +$lang['Other_IP_this_user'] = 'Other IP addresses this user has posted from'; +$lang['Users_this_IP'] = 'Users posting from this IP address'; +$lang['IP_info'] = 'IP Information'; +$lang['Lookup_IP'] = 'Look up IP address'; + + +// +// Timezones ... for display on each page +// +$lang['All_times'] = 'All times are %s'; // eg. All times are GMT - 12 Hours (times from next block) + +$lang['-12'] = 'GMT - 12 Hours'; +$lang['-11'] = 'GMT - 11 Hours'; +$lang['-10'] = 'GMT - 10 Hours'; +$lang['-9'] = 'GMT - 9 Hours'; +$lang['-8'] = 'GMT - 8 Hours'; +$lang['-7'] = 'GMT - 7 Hours'; +$lang['-6'] = 'GMT - 6 Hours'; +$lang['-5'] = 'GMT - 5 Hours'; +$lang['-4'] = 'GMT - 4 Hours'; +$lang['-3.5'] = 'GMT - 3.5 Hours'; +$lang['-3'] = 'GMT - 3 Hours'; +$lang['-2'] = 'GMT - 2 Hours'; +$lang['-1'] = 'GMT - 1 Hours'; +$lang['0'] = 'GMT'; +$lang['1'] = 'GMT + 1 Hour'; +$lang['2'] = 'GMT + 2 Hours'; +$lang['3'] = 'GMT + 3 Hours'; +$lang['3.5'] = 'GMT + 3.5 Hours'; +$lang['4'] = 'GMT + 4 Hours'; +$lang['4.5'] = 'GMT + 4.5 Hours'; +$lang['5'] = 'GMT + 5 Hours'; +$lang['5.5'] = 'GMT + 5.5 Hours'; +$lang['6'] = 'GMT + 6 Hours'; +$lang['6.5'] = 'GMT + 6.5 Hours'; +$lang['7'] = 'GMT + 7 Hours'; +$lang['8'] = 'GMT + 8 Hours'; +$lang['9'] = 'GMT + 9 Hours'; +$lang['9.5'] = 'GMT + 9.5 Hours'; +$lang['10'] = 'GMT + 10 Hours'; +$lang['11'] = 'GMT + 11 Hours'; +$lang['12'] = 'GMT + 12 Hours'; +$lang['13'] = 'GMT + 13 Hours'; + +// These are displayed in the timezone select box +$lang['tz']['-12'] = 'GMT - 12 Hours'; +$lang['tz']['-11'] = 'GMT - 11 Hours'; +$lang['tz']['-10'] = 'GMT - 10 Hours'; +$lang['tz']['-9'] = 'GMT - 9 Hours'; +$lang['tz']['-8'] = 'GMT - 8 Hours'; +$lang['tz']['-7'] = 'GMT - 7 Hours'; +$lang['tz']['-6'] = 'GMT - 6 Hours'; +$lang['tz']['-5'] = 'GMT - 5 Hours'; +$lang['tz']['-4'] = 'GMT - 4 Hours'; +$lang['tz']['-3.5'] = 'GMT - 3.5 Hours'; +$lang['tz']['-3'] = 'GMT - 3 Hours'; +$lang['tz']['-2'] = 'GMT - 2 Hours'; +$lang['tz']['-1'] = 'GMT - 1 Hours'; +$lang['tz']['0'] = 'GMT'; +$lang['tz']['1'] = 'GMT + 1 Hour'; +$lang['tz']['2'] = 'GMT + 2 Hours'; +$lang['tz']['3'] = 'GMT + 3 Hours'; +$lang['tz']['3.5'] = 'GMT + 3.5 Hours'; +$lang['tz']['4'] = 'GMT + 4 Hours'; +$lang['tz']['4.5'] = 'GMT + 4.5 Hours'; +$lang['tz']['5'] = 'GMT + 5 Hours'; +$lang['tz']['5.5'] = 'GMT + 5.5 Hours'; +$lang['tz']['6'] = 'GMT + 6 Hours'; +$lang['tz']['6.5'] = 'GMT + 6.5 Hours'; +$lang['tz']['7'] = 'GMT + 7 Hours'; +$lang['tz']['8'] = 'GMT + 8 Hours'; +$lang['tz']['9'] = 'GMT + 9 Hours'; +$lang['tz']['9.5'] = 'GMT + 9.5 Hours'; +$lang['tz']['10'] = 'GMT + 10 Hours'; +$lang['tz']['11'] = 'GMT + 11 Hours'; +$lang['tz']['12'] = 'GMT + 12 Hours'; +$lang['tz']['13'] = 'GMT + 13 Hours'; + +$lang['datetime']['Sunday'] = 'Sunday'; +$lang['datetime']['Monday'] = 'Monday'; +$lang['datetime']['Tuesday'] = 'Tuesday'; +$lang['datetime']['Wednesday'] = 'Wednesday'; +$lang['datetime']['Thursday'] = 'Thursday'; +$lang['datetime']['Friday'] = 'Friday'; +$lang['datetime']['Saturday'] = 'Saturday'; +$lang['datetime']['Sun'] = 'Sun'; +$lang['datetime']['Mon'] = 'Mon'; +$lang['datetime']['Tue'] = 'Tue'; +$lang['datetime']['Wed'] = 'Wed'; +$lang['datetime']['Thu'] = 'Thu'; +$lang['datetime']['Fri'] = 'Fri'; +$lang['datetime']['Sat'] = 'Sat'; +$lang['datetime']['January'] = 'January'; +$lang['datetime']['February'] = 'February'; +$lang['datetime']['March'] = 'March'; +$lang['datetime']['April'] = 'April'; +$lang['datetime']['May'] = 'May'; +$lang['datetime']['June'] = 'June'; +$lang['datetime']['July'] = 'July'; +$lang['datetime']['August'] = 'August'; +$lang['datetime']['September'] = 'September'; +$lang['datetime']['October'] = 'October'; +$lang['datetime']['November'] = 'November'; +$lang['datetime']['December'] = 'December'; +$lang['datetime']['Jan'] = 'Jan'; +$lang['datetime']['Feb'] = 'Feb'; +$lang['datetime']['Mar'] = 'Mar'; +$lang['datetime']['Apr'] = 'Apr'; +$lang['datetime']['May'] = 'May'; +$lang['datetime']['Jun'] = 'Jun'; +$lang['datetime']['Jul'] = 'Jul'; +$lang['datetime']['Aug'] = 'Aug'; +$lang['datetime']['Sep'] = 'Sep'; +$lang['datetime']['Oct'] = 'Oct'; +$lang['datetime']['Nov'] = 'Nov'; +$lang['datetime']['Dec'] = 'Dec'; + +// +// Errors (not related to a +// specific failure on a page) +// +$lang['Information'] = 'Information'; +$lang['Critical_Information'] = 'Critical Information'; + +$lang['General_Error'] = 'General Error'; +$lang['Critical_Error'] = 'Critical Error'; +$lang['An_error_occured'] = 'An Error Occurred'; +$lang['A_critical_error'] = 'A Critical Error Occurred'; + +// +// That's all, Folks! +// ------------------------------------------------- + +?> \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/lang_xs.php b/phpBB2_old/language/lang_english/lang_xs.php new file mode 100644 index 0000000..516880e --- /dev/null +++ b/phpBB2_old/language/lang_english/lang_xs.php @@ -0,0 +1,606 @@ +
    Note: This mod replaces the phpBB styles management. You will find the default phpBB functions in this list, but these functions are now optimized and have extra features.

    If you have any questions please visit support forum where you can get assistance for this mod.'; +$lang['xs_main_comment2'] = 'The eXtreme Styles mod allows an admin to store entire styles in .style files. Styles are stored in a small compressed file and by doing so this saves the trouble of downloading/uploading many files. Style files are compressed so download/upload is much more efficient than downloading/uploading usual style files.'; +$lang['xs_main_comment3'] = 'All functions of phpBB styles management are replaced with eXtreme Styles mod.

    Click here to see menu.'; +$lang['xs_main_title'] = 'eXtreme Styles Navigation Menu'; +$lang['xs_menu'] = 'eXtreme Styles Menu'; + +$lang['xs_manage_styles'] = 'Manage Styles'; +$lang['xs_import_export_styles'] = 'Import/Export Styles'; +$lang['xs_install_uninstall_styles'] = 'Install/Uninstall Styles'; +$lang['xs_edit_templates'] = 'Edit Templates'; +$lang['xs_other_functions'] = 'Other Functions'; + +$lang['xs_configuration'] = 'Configuration'; +$lang['xs_configuration_explain'] = 'This feature allows you to change the eXtreme Styles configuration.'; +$lang['xs_default_style'] = 'Default Style'; +$lang['xs_default_style_explain'] = 'This feature allows you to change the default forum style and switch users from one style to another.'; +$lang['xs_manage_cache'] = 'Manage Cache'; +$lang['xs_manage_cache_explain'] = 'This feature allows you to manage cached files.'; +$lang['xs_import_styles'] = 'Import Styles'; +$lang['xs_import_styles_explain'] = 'This feature allows you to download and install .style files.'; +$lang['xs_export_styles'] = 'Export Styles'; +$lang['xs_export_styles_explain'] = 'This feature allows you to save a style from your forum as a .style file and then easily transfer it to another forum or another website.'; +$lang['xs_clone_styles'] = 'Clone Styles'; +$lang['xs_clone_styles_explain'] = 'This feature allows you to quickly clone styles or a whole template.'; +$lang['xs_download_styles'] = 'Download Styles'; +$lang['xs_download_styles_explain'] = 'This feature allows you to quickly download and install styles from websites. You can configure a list of websites yourself.'; +$lang['xs_install_styles'] = 'Install Styles'; +$lang['xs_install_styles_explain'] = 'This feature allows you to install styles that are already uploaded to your forum.'; +$lang['xs_uninstall_styles'] = 'Uninstall Styles'; +$lang['xs_uninstall_styles_explain'] = 'This feature allows you to remove styles from your forum.'; +$lang['xs_edit_templates_explain'] = 'This feature allows you to edit tpl files online.'; +$lang['xs_edit_styles_data'] = 'Edit Styles Data'; +$lang['xs_edit_styles_data_explain'] = 'This feature allows you to edit style variables. It is used by some styles, but most styles don\'t use it and use a css file instead.'; +$lang['xs_export_styles_data'] = 'Export Styles Data'; +$lang['xs_export_styles_data_explain'] = 'This feature allows you to save style variables to theme_info.cfg.'; +$lang['xs_check_for_updates'] = 'Check for Updates'; +$lang['xs_check_for_updates_explain'] = 'This feature allows you to check for updated versions of styles and mods installed on your forum.'; + +$lang['xs_set_configuration_lc'] = 'set configuration'; +$lang['xs_set_default_style_lc'] = 'set default style'; +$lang['xs_manage_cache_lc'] = 'manage cache'; +$lang['xs_import_styles_lc'] = 'import styles'; +$lang['xs_export_styles_lc'] = 'export styles'; +$lang['xs_clone_styles_lc'] = 'clone styles'; +$lang['xs_uninstall_styles_lc'] = 'uninstall styles'; +$lang['xs_edit_templates_lc'] = 'edit templates'; +$lang['xs_edit_styles_data_lc'] = 'edit styles data'; +$lang['xs_export_styles_data_lc'] = 'export styles data'; +$lang['xs_check_for_updates_lc'] = 'check for updates'; + +/* +* ftp.tpl, ftp functions +*/ + +$lang['xs_ftp_comment1'] = 'To use this feature you must select the file upload method. If you select FTP, then a password will not be stored and eXtreme Styles will ask you for a password every time you select functions that requires FTP access. If you select local file system then make sure all required directories are writeable.'; +$lang['xs_ftp_comment2'] = 'To use this feature you must set FTP settings. A password will not be stored and eXtreme Styles will ask you for a password every time you select functions that requires FTP access.'; +$lang['xs_ftp_comment3'] = 'Warning: FTP functions are disabled on this server. You will not be able to use eXtreme Styles functionality that require FTP access.'; + +$lang['xs_ftp_title'] = 'FTP Configuration'; + +$lang['xs_ftp_explain'] = 'FTP is used to upload new styles. If you want to use the import styles feature then you should configure FTP settings accordingly. eXtreme Styles tries to auto-detect settings if and when possible.'; + +$lang['xs_ftp_error_fatal'] = 'FTP functions are disabled on this server. Cannot continue.'; +$lang['xs_ftp_error_connect'] = 'FTP error: cannot connect to {HOST}'; +$lang['xs_ftp_error_login'] = 'FTP error: cannot login'; +$lang['xs_ftp_error_chdir'] = 'FTP error: cannot change directory to {DIR}'; +$lang['xs_ftp_error_nonphpbbdir'] = 'FTP error: you have set invalid directory. There are no phpBB files in that directory'; +$lang['xs_ftp_error_noconnect'] = 'Cannot connect to ftp server'; +$lang['xs_ftp_error_login2'] = 'Invalid ftp login or password'; + +$lang['xs_ftp_log_disabled'] = 'ftp functions are disabled on this server. script cannot continue.'; +$lang['xs_ftp_log_connecting'] = 'connecting to {HOST}'; +$lang['xs_ftp_log_noconnect'] = 'cannot connect to {HOST}'; +$lang['xs_ftp_log_connected'] = 'connected. loggin in...'; +$lang['xs_ftp_log_nologin'] = 'cannot login as {USER}'; +$lang['xs_ftp_log_loggedin'] = 'logged in'; +$lang['xs_ftp_log_end'] = 'finished executing script'; +$lang['xs_ftp_log_nopwd'] = 'error: cannot retrieve current directory'; +$lang['xs_ftp_log_nomkdir'] = 'error: cannot create directory {DIR}'; +$lang['xs_ftp_log_mkdir'] = 'created directory {DIR}'; +$lang['xs_ftp_log_nochdir'] = 'error: cannot change directory to {DIR}'; +$lang['xs_ftp_log_normdir'] = 'error: cannot remove directory {DIR}'; +$lang['xs_ftp_log_rmdir'] = 'removed directory {DIR}'; +$lang['xs_ftp_log_chdir'] = 'changed directory to {DIR}'; +$lang['xs_ftp_log_noupload'] = 'error: cannot upload file {FILE}'; +$lang['xs_ftp_log_upload'] = 'uploaded file {FILE}'; +$lang['xs_ftp_log_nochmod'] = 'warning: cannot chmod file {FILE}'; +$lang['xs_ftp_log_chmod'] = 'chmod file {FILE} to {MODE}'; +$lang['xs_ftp_log_invalidcommand'] = 'error: unknown command: {COMMAND}'; +$lang['xs_ftp_log_chdir2'] = 'changing current directory back to {DIR}'; +$lang['xs_ftp_log_nochdir2'] = 'cannot change directory to {DIR}'; + +$lang['xs_ftp_config'] = 'FTP Configuration'; +$lang['xs_ftp_select_method'] = 'Select upload method'; +$lang['xs_ftp_select_local'] = 'Use local file system (no configuration required)'; +$lang['xs_ftp_select_ftp'] = 'Use FTP (set ftp settings below)'; + +$lang['xs_ftp_settings'] = 'FTP Settings'; +$lang['xs_ftp_host'] = 'FTP Host'; +$lang['xs_ftp_login'] = 'FTP Login'; +$lang['xs_ftp_path'] = 'FTP Path to phpBB'; +$lang['xs_ftp_pass'] = 'FTP Password'; +$lang['xs_ftp_remotedir'] = 'Remote Directory'; + +$lang['xs_ftp_host_guess'] = ' (probably "{HOST}" [set host])'; +$lang['xs_ftp_login_guess'] = ' (probably "{LOGIN}" [set host])'; +$lang['xs_ftp_path_guess'] = ' (probably "{PATH}" [set path])'; + + +/* +* config.tpl +*/ + +$lang['xs_config_updated'] = 'Configuration updated.'; +$lang['xs_config_updated_explain'] = 'You need to refresh this page before the new configuration can take effect. Click here to refresh page.'; +$lang['xs_config_warning'] = 'Warning: cache cannot be written.'; +$lang['xs_config_warning_explain'] = 'Cache directory is not writeable. eXtreme Styles can attempt to fix this problem.
    Click here to try to change access mode to cache directory.

    If cache doesn\'t work on your server for some reason don\'t worry - eXtreme Styles
    increases forum speed many times even without cache.'; + +$lang['xs_config_maintitle'] = 'eXtreme Styles mod Configuration'; +$lang['xs_config_subtitle'] = 'This is the configuration for eXtreme Styles. If you don\'t understand what certain variables do then don\'t change it.'; +$lang['xs_config_title'] = 'eXtreme Styles mod v{VERSION} settings'; +$lang['xs_config_cache'] = 'Cache configuration'; + +$lang['xs_config_navbar'] = 'Show on left frame:'; +$lang['xs_config_navbar_explain'] = 'You can select what items to show on left frame in admin control panel.'; + +$lang['xs_config_def_template'] = 'Default template directory'; +$lang['xs_config_def_template_explain'] = 'If a required tpl file is not found in current template directory (that might happen if you modded phpBB incorrectly) then template system will look for same file in a related directory (like if current template is "myTemplate" and script requires file "myTemplate/myfile.tpl" and that file isn\'t there template system will look for that file as "subSilver/myfile.tpl"). Set to empty to disable this feature.'; + +$lang['xs_config_check_switches'] = 'Check switches while compiling'; +$lang['xs_config_check_switches_explain'] = 'This feature checks for errors in templates. Turning it off will speed up compilation, but the compiler might skip some errors in templates if it contains errors.

    Smart check will check templates for errors and automatically fix all known errors (there are few known typos in different mods). Works little bit slower than simple check.

    But sometimes template looks proper only when error check is disabled; this happens because of bad html coding - contact whoever wrote the tpl file if you want to fix errors.

    If cache feature is disabled, then turn this off for faster compilation.'; +$lang['xs_config_check_switches_0'] = 'Off'; +$lang['xs_config_check_switches_1'] = 'Smart check'; +$lang['xs_config_check_switches_2'] = 'Simple check'; + +$lang['xs_config_show_errors'] = 'Shows errors when files are incorrectly included in tpl files'; +$lang['xs_config_show_error_explain'] = 'This feature enables/disables errors in tpl files that the user used incorrectly <!-- INCLUDE filename -->'; + +$lang['xs_config_tpl_comments'] = 'Add tpl filenames in html'; +$lang['xs_config_tpl_comments_explain'] = 'This feature adds comments to html code that allow style designers to detect which tpl file is displayed.'; + +$lang['xs_config_use_cache'] = 'Use cache'; +$lang['xs_config_use_cache_explain'] = 'Cache is saved to disk and it will accelerate templates system because there would be no need to compile template every time it is shown.'; + +$lang['xs_config_auto_compile'] = 'Automatically save cache'; +$lang['xs_config_auto_compile_explain'] = 'This will automatically compile templates that are not cached and save to cache directory.'; + +$lang['xs_config_auto_recompile'] = 'Automatically re-compile cache'; +$lang['xs_config_auto_recompile_explain'] = 'This will automatically re-compile templates if a template was changed.'; + +$lang['xs_config_php'] = 'Extension of cache filenames'; +$lang['xs_config_php_explain'] = 'This is extension of cached files. Files are stored in php format so default extension is "php". Do not include dot'; + +$lang['xs_config_back'] = 'Click here to return to configuration.'; +$lang['xs_config_sql_error'] = 'Failed to update general configuration for {VAR}'; + +// Debug info +$lang['xs_debug_header'] = 'Debug info'; +$lang['xs_debug_explain'] = 'This is debug info. Used to find/fix problems when configuring cache.'; +$lang['xs_debug_vars'] = 'Template variables'; +$lang['xs_debug_tpl_name'] = 'Template filename:'; +$lang['xs_debug_cache_filename'] = 'Cache filename:'; +$lang['xs_debug_data'] = 'Debug data:'; + +$lang['xs_check_hdr'] = 'Checking cache for %s'; +$lang['xs_check_filename'] = 'Error: invalid filename'; +$lang['xs_check_openfile1'] = 'Error: cannot open file "%s". Will try to create directories...'; +$lang['xs_check_openfile2'] = 'Error: cannot open file "%s" for the second time. Giving up...'; +$lang['xs_check_nodir'] = 'Checking "%s" - no such directory.'; +$lang['xs_check_nodir2'] = 'Error: cannot create directory "%s" - you might need to check permissions.'; +$lang['xs_check_createddir'] = 'Created directory "%s"'; +$lang['xs_check_dir'] = 'Checking "%s" - directory exists.'; +$lang['xs_check_ok'] = 'Opened file "%s" for writing. Everything seems to be ok.'; + + +/* +* chmod +*/ + +$lang['xs_chmod'] = 'CHMOD'; +$lang['xs_chmod_return'] = '

    Click here to return to configuration.'; +$lang['xs_chmod_message1'] = 'Configuration changed.'; +$lang['xs_chmod_error1'] = 'Cannot change access mode to cache directory'; + + +/* +* default style +*/ + +$lang['xs_def_title'] = 'Set Default Style'; +$lang['xs_def_explain'] = 'This feature allows you to quickly change default forum style and also switch users from one style to another.'; + +$lang['xs_styles_set_default'] = 'set default'; +$lang['xs_styles_no_override'] = 'do not override user settings'; +$lang['xs_styles_do_override'] = 'override user settings'; +$lang['xs_styles_switch_all'] = 'switch all users to this style'; +$lang['xs_styles_switch_all2'] = 'switch all users to:'; +$lang['xs_styles_defstyle'] = 'default style'; +$lang['xs_styles_available'] = 'Available styles'; +$lang['xs_styles_make_public'] = 'make style public'; +$lang['xs_styles_make_admin'] = 'make style admin-only'; +$lang['xs_styles_users'] = 'Users List'; + + +/* +* cache management +*/ + +$lang['xs_manage_cache_explain2'] = 'This feature allows you to compile or remove cached files for styles.'; +$lang['xs_clear_all_lc'] = 'clear all'; +$lang['xs_compile_all_lc'] = 'compile all'; +$lang['xs_clear_cache_lc'] = 'clear cache'; +$lang['xs_compile_cache_lc'] = 'compile cache'; +$lang['xs_cache_confirm'] = 'If you have many styles it might cause huge server load. Are you sure you want to continue?'; + +$lang['xs_cache_nowrite'] = 'Error: cannot access cache directory'; +$lang['xs_cache_log_deleted'] = 'Deleted {FILE}'; +$lang['xs_cache_log_nodelete'] = 'Error: cannot delete file {FILE}'; +$lang['xs_cache_log_nothing'] = 'Nothing to delete for template {TPL}'; +$lang['xs_cache_log_nothing2'] = 'Nothing to delete in cache directory'; +$lang['xs_cache_log_count'] = 'Successfully deleted {NUM} files'; +$lang['xs_cache_log_count2'] = 'Error deleting {NUM} files'; +$lang['xs_cache_log_compiled'] = 'Compiled: {NUM} files'; +$lang['xs_cache_log_errors'] = 'Errors: {NUM}'; +$lang['xs_cache_log_noaccess'] = 'Error: cannot access directory {DIR}'; +$lang['xs_cache_log_compiled2'] = 'Compiled: {FILE}'; +$lang['xs_cache_log_nocompile'] = 'Error compiling: {FILE}'; + +/* +* export/import/download/clone +*/ + +$lang['xs_import_explain'] = 'This feature allows you to import styles. It can also automatically install and update styles.

    Note: If you have added any mods (except for eXtreme Styles mod) on this forum then you should be careful when importing styles because styles might not be compatible with your forum. You can only install styles that have the same modifications as the other styles that you\'ve configured on your forums.'; + +$lang['xs_import_lc'] = 'import'; +$lang['xs_list_files_lc'] = 'list files'; +$lang['xs_delete_file_lc'] = 'delete file'; +$lang['xs_export_style_lc'] = 'export style'; + +$lang['xs_import_no_cached'] = 'There are no cached styles to import'; +$lang['xs_add_styles'] = 'Add Styles'; +$lang['xs_add_styles_web'] = 'Download from web'; +$lang['xs_add_styles_web_get'] = 'Get it'; +$lang['xs_add_styles_copy'] = 'Copy from local file'; +$lang['xs_add_styles_copy_get'] = 'Copy'; +$lang['xs_add_styles_upload'] = 'Upload from computer'; +$lang['xs_add_styles_upload_get'] = 'Upload'; + +$lang['xs_export_style'] = 'Export Style'; +$lang['xs_export_style_explain'] = 'This feature allows you to export a style as a single file. This single file is very small - smaller than a .zip file (because it is compressed with gzip, which works better than zip) and all styles inside is a single file. In turn, it is very easy to transfer styles from one forum to another.

    This feature also allows you to upload exported styles using ftp to a server. This system allows you to transfer a style to another forum quickly without manually copying it.'; + +$lang['xs_export_style_title'] = 'Export Template "{TPL}"'; +$lang['xs_export_tpl_name'] = 'Export as (template name)'; +$lang['xs_export_style_names'] = 'Select style(s) to export'; +$lang['xs_export_style_name'] = 'Style to export (style name)'; +$lang['xs_export_style_comment'] = 'Comment'; +$lang['xs_export_where'] = 'Where to export'; +$lang['xs_export_where_download'] = 'Download as file'; +$lang['xs_export_where_store'] = 'Store as file on server'; +$lang['xs_export_where_store_dir'] = 'Directory'; +$lang['xs_export_where_ftp'] = 'Upload via FTP'; +$lang['xs_export_filename'] = 'Export filename'; + +$lang['xs_download_explain2'] = 'This feature allows you to quickly download and install styles directly from different websites. Click on the link near the website name and you will be redirected to a style downloads page.

    You can also manage the list of websites.'; + +$lang['xs_download_locations'] = 'Download Locations'; +$lang['xs_edit_link'] = 'Edit Link'; +$lang['xs_add_link'] = 'Add Link'; +$lang['xs_link_title'] = 'Link Title'; +$lang['xs_link_url'] = 'Link URL'; +$lang['xs_delete'] = 'Delete'; + +$lang['xs_style_header_error_file'] = 'Cannot open local file'; +$lang['xs_style_header_error_server'] = 'Error on server: '; +$lang['xs_style_header_error_invalid'] = 'Invalid file header'; +$lang['xs_style_header_error_reason'] = 'Error reading file header: '; +$lang['xs_style_header_error_incomplete'] = 'File is incomplete'; +$lang['xs_style_header_error_incomplete2'] = 'Invalid file size. Probably file is incomplete.'; +$lang['xs_style_header_error_invalid2'] = 'Invalid file. Presumeably, the file is not an eXtreme Styles mod-compatible style or invalid version.'; +$lang['xs_error_cannot_open'] = 'Cannot open file.'; +$lang['xs_error_decompress_style'] = 'Error decompressing file. Probably file is corrupted.'; +$lang['xs_error_cannot_create_file'] = 'Cannot create file "{FILE}"'; +$lang['xs_error_cannot_create_tmp'] = 'Cannot create temporary file "{FILE}"'; +$lang['xs_import_invalid_file'] = 'Invalid file'; +$lang['xs_import_incomplete_file'] = 'Incomplete file'; +$lang['xs_import_uploaded'] = 'Style uploaded.'; +$lang['xs_import_installed'] = 'Style uploaded and installed.'; +$lang['xs_import_notinstall'] = 'Style uploaded, but error installing style (sql error).'; +$lang['xs_import_notinstall2'] = 'Style uploaded, but error installing style: no styles found in theme_info.cfg'; +$lang['xs_import_notinstall3'] = 'Style uploaded, but error installing style: no entry for "{STYLE}" found in theme_info.cfg'; +$lang['xs_import_notinstall4'] = 'Style uploaded, but error installing style: could not obtain next themes_id information'; +$lang['xs_import_notinstall5'] = 'Style uploaded, but error installing style: could not update styles table'; +$lang['xs_import_nodownload'] = 'Cannot download style from {URL}'; +$lang['xs_import_nodownload2'] = 'Cannot copy style from {URL}'; +$lang['xs_import_nodownload3'] = 'File not uploaded.'; +$lang['xs_import_uploaded2'] = 'Style downloaded. You can now import it.

    Click here to import style.'; +$lang['xs_import_uploaded3'] = 'Style copied. You can now import it.

    Click here to import style.'; +$lang['xs_import_uploaded4'] = 'Style uploaded. You can now import it.

    Click here to import style.'; +$lang['xs_export_no_open_dir'] = 'Cannot open directory {DIR}'; +$lang['xs_export_no_open_file'] = 'Cannot open file {FILE}'; +$lang['xs_export_no_read_file'] = 'Error reading file {FILE}'; +$lang['xs_no_theme_data'] = 'Could not get style data for selected template'; +$lang['xs_no_style_info'] = 'Could not get style information'; +$lang['xs_export_noselect_themes'] = 'You should select at least one style'; +$lang['xs_export_error'] = 'Cannot export template "{TPL}": '; +$lang['xs_export_error2'] = 'Cannot export template "{TPL}": style is empty'; +$lang['xs_export_saved'] = 'Style is saved as "{FILE}"'; +$lang['xs_export_error_uploading'] = 'Error uploading file'; +$lang['xs_export_uploaded'] = 'File uploaded.'; +$lang['xs_clone_taken'] = 'This style name is already used.'; +$lang['xs_error_new_row'] = 'Could not insert new row in table.'; +$lang['xs_theme_cloned'] = 'Style cloned.'; +$lang['xs_invalid_style_name'] = 'Invalid style name.'; +$lang['xs_clone_style_exists'] = 'That template already exists'; +$lang['xs_clone_no_select'] = 'You should select at least one style to clone.'; +$lang['xs_no_themes'] = 'Style not found in database.'; + +$lang['xs_import_back'] = 'Click here to return to import styles page.'; +$lang['xs_import_back_download'] = 'Click here to return to downloads.'; +$lang['xs_export_back'] = 'Click here to return to export styles page.'; +$lang['xs_clone_back'] = 'Click here to return to clone styles page.'; +$lang['xs_download_back'] = 'Click here to return to downloads page.'; + +$lang['xs_import_tpl'] = 'Import Template "{TPL}"'; +$lang['xs_import_tpl_comment'] = 'This feature will upload template to your forum. If template with this name already exists on your forum this feature will automatically overwrite old files so it can also be used to update styles.

    This feature can also automatically install styles. If you want to install style after importing it then select one or more styles below.'; +$lang['xs_import_tpl_filename'] = 'Filename:'; +$lang['xs_import_tpl_tplname'] = 'Template name:'; +$lang['xs_import_tpl_comment2'] = 'Comment:'; +$lang['xs_import_select_styles'] = 'Select style(s) to install:'; +$lang['xs_import_install_def_lc'] = 'make default forum style'; +$lang['xs_import_install_style'] = 'Install style:'; +$lang['xs_import'] = 'Import'; + +$lang['xs_import_list_contents'] = 'Contents of file: '; +$lang['xs_import_list_filename'] = 'Filename: '; +$lang['xs_import_list_template'] = 'Template: '; +$lang['xs_import_list_comment'] = 'Comment: '; +$lang['xs_import_list_styles'] = 'Style(s): '; +$lang['xs_import_list_files'] = 'Files ({NUM}):'; +$lang['xs_import_download_lc'] = 'download file'; +$lang['xs_import_view_lc'] = 'view file'; +$lang['xs_import_file_size'] = '({NUM} bytes)'; + +$lang['xs_import_nogzip'] = 'This function requires gz compression, and apparently that isn\'t supported on this server.'; +$lang['xs_import_nowrite_cache'] = 'Cannot write to cache. This function requires cache to be writable. Check mod configuration.

    Click here to make cache writable.

    Click here to return to import page.'; + +$lang['xs_import_download_warning'] = 'This will take you to an external website where you can quickly download styles with a few simple clicks using the eXtreme Styles import feature.'; + +$lang['xs_clone_style'] = 'Clone Style'; +$lang['xs_clone_style_explain'] = 'This feature allows you to quickly clone style or whole template.

    Warninig: If you are copying template make sure author of original template allows you to do this (unless it is subSilver - you can do whatever you want with subSilver). Usually authors allow to modify their styles, but modified style should not be distributed.'; +$lang['xs_clone_style_explain2'] = 'This feature allows you to create new style for a template. This feature will not copy any files - it will add entry in database for your new style. Both old and new style will share same templates.'; +$lang['xs_clone_style_explain3'] = 'Enter name for new style that you are going to create and click "clone" button.'; +$lang['xs_clone_style_explain4'] = 'This feature allows you to clone template. You can also copy all styles associated with that template. Later you can safely edit tpl files for new template and old template will not be affected.'; + +$lang['xs_clone_style_lc'] = 'clone style'; +$lang['xs_clone_style2'] = 'Clone style "{STYLE}":'; +$lang['xs_clone_style3'] = 'Clone Template "{STYLE}"'; +$lang['xs_clone_newdir_name'] = 'New template (directory) name:'; +$lang['xs_clone_select'] = 'Select style(s) to clone:'; +$lang['xs_clone_select_explain'] = 'You should select at least one style.'; +$lang['xs_clone_newname'] = 'New style name:'; + + +/* +* install/uninstall +*/ +$lang['xs_install_styles_explain2'] = 'This is a list of styles that are uploaded on your forum, but aren\'t installed. Click on the "install" link for the style that you want to install, or select several styles and click submit button.'; +$lang['xs_uninstall_styles_explain2'] = 'This is a list of styles that are installed on your forum. Click on the "uninstall" link to remove some styles from the forum. Uninstalling is safe - all users who employ the style that is being uninstalled will be switched to the default forum style. Also, uninstalling will automatically delete cache for that style.'; + +$lang['xs_install'] = 'Install'; +$lang['xs_install_lc'] = 'install'; +$lang['xs_uninstall'] = 'Uninstall'; +$lang['xs_remove_files'] = 'Remove Files'; +$lang['xs_style_removed'] = 'Style removed.'; +$lang['xs_uninstall_lc'] = 'uninstall'; +$lang['xs_uninstall2_lc'] = 'uninstall and delete files'; + +$lang['xs_install_back'] = 'Click here to return to styles installation.'; +$lang['xs_uninstall_back'] = 'Click here to return to styles uninstallation.'; +$lang['xs_goto_default'] = 'Click here to change default style.'; + +$lang['xs_install_installed'] = 'Style(s) installed.'; +$lang['xs_install_error'] = 'Error installing style.'; +$lang['xs_install_none'] = 'There are no new styles to install. All available styles are already installed.'; + +$lang['xs_uninstall_default'] = 'You cannot remove default style. To change default style click here.'; + +/* +* export theme_info.cfg +*/ +$lang['xs_export_styles_data_explain2'] = 'This feature saves style data in theme_info.cfg. It can be used to save database information before transferring styles from one forum to another.

    Note: If you are using the eXtreme Styles export feature to move a style to another forum you don\'t need to save theme_info.cfg - it is done automatically by the style export feature.'; +$lang['xs_export_styles_data_explain3'] = 'Select styles that you want to export.'; + +$lang['xs_export_data_back'] = 'Click here to return to export style data page.'; +$lang['xs_export_style_data_lc'] = 'export style data'; + +$lang['xs_export_data_saved'] = 'Data exported.'; + +/* +* edit templates (file manager) +*/ +$lang['xs_edit_template_comment1'] = 'This feature allows you to edit templates. File browser shows only editable files.'; +$lang['xs_edit_template_comment2'] = 'This feature allows you to edit templates.'; +$lang['xs_edit_file_saved'] = 'File is saved.'; +$lang['xs_edit_not_found'] = 'File not found.'; +$lang['xs_edittpl_back_dir'] = 'Click here to return to file manager.'; + +$lang['xs_fileman_browser'] = 'File Browser'; +$lang['xs_fileman_directory'] = 'Directory:'; +$lang['xs_fileman_dircount'] = 'Directories ({COUNT}):'; +$lang['xs_fileman_filter'] = 'Filter'; +$lang['xs_fileman_filter_ext'] = 'Show only files with extension:'; +$lang['xs_fileman_filter_content'] = 'Show only files that contain:'; +$lang['xs_fileman_filter_clear'] = 'Clear Filter'; +$lang['xs_fileman_filename'] = 'Filename'; +$lang['xs_fileman_filesize'] = 'Size'; +$lang['xs_fileman_filetime'] = 'Modification'; +$lang['xs_fileman_options'] = 'Options'; +$lang['xs_fileman_time_today'] = '(today)'; +$lang['xs_fileman_edit_lc'] = 'edit'; + +$lang['xs_fileedit_search_nomatch'] = 'Match not found'; +$lang['xs_fileedit_search_match1'] = 'Replaced 1 match'; +$lang['xs_fileedit_search_matches'] = "Replaced ' + count + ' matches"; +$lang['xs_fileedit_noundo'] = 'There is nothing to undo'; +$lang['xs_fileedit_undo_complete'] = 'Old content restored'; +$lang['xs_fileedit_edit_name'] = 'Edit file:'; +$lang['xs_fileedit_location'] = 'Location:'; +$lang['xs_fileedit_reload_lc'] = 'reload file'; +$lang['xs_fileedit_download_lc'] = 'download file'; +$lang['xs_fileedit_trim'] = 'Automatically trim spaces at beginning and end of file.'; +$lang['xs_fileedit_functions'] = 'Edit Functions'; +$lang['xs_fileedit_replace1'] = 'Replace '; +$lang['xs_fileedit_replace2'] = ' with '; +$lang['xs_fileedit_replace_first_lc'] = 'replace first match'; +$lang['xs_fileedit_replace_all_lc'] = 'replace all matches'; +$lang['xs_fileedit_replace_undo_lc'] = 'undo replacement'; +$lang['xs_fileedit_backups'] = 'Backups'; +$lang['xs_fileedit_backups_save_lc'] = 'save backup'; +$lang['xs_fileedit_backups_show_lc'] = 'show contents'; +$lang['xs_fileedit_backups_restore_lc'] = 'restore'; +$lang['xs_fileedit_backups_download_lc'] = 'download'; +$lang['xs_fileedit_backups_delete_lc'] = 'delete'; +$lang['xs_fileedit_upload'] = 'Upload'; +$lang['xs_fileedit_upload_file'] = 'Upload file:'; + +/* +* edit styles data (theme_info) +*/ +$lang['xs_data_head_stylesheet'] = 'CSS Stylesheet'; +$lang['xs_data_body_background'] = 'Background Image'; +$lang['xs_data_body_bgcolor'] = 'Background Colour'; +$lang['xs_data_style_name'] = 'Style Name'; +$lang['xs_data_body_link'] = 'Link Colour'; +$lang['xs_data_body_text'] = 'Text Colour'; +$lang['xs_data_body_vlink'] = 'Visited Link Colour'; +$lang['xs_data_body_alink'] = 'Active Link Colour'; +$lang['xs_data_body_hlink'] = 'Hover Link Colour'; +$lang['xs_data_tr_color'] = 'Table Row Colour %s'; +$lang['xs_data_tr_class'] = 'Table Row Class %s'; +$lang['xs_data_th_color'] = 'Table Header Colour %s'; +$lang['xs_data_th_class'] = 'Table Header Class %s'; +$lang['xs_data_td_color'] = 'Table Cell Colour %s'; +$lang['xs_data_td_class'] = 'Table Cell Class %s'; +$lang['xs_data_fontface'] = 'Font Face %s'; +$lang['xs_data_fontsize'] = 'Font Size %s'; +$lang['xs_data_fontcolor'] = 'Font Colour %s'; +$lang['xs_data_span_class'] = 'Span Class %s'; +$lang['xs_data_img_size_poll'] = 'Polling Image Size [px]'; +$lang['xs_data_img_size_privmsg'] = 'Private Message Status size [px]'; +$lang['xs_data_theme_public'] = 'Public Style (1 or 0)'; +$lang['xs_data_unknown'] = 'Description is not available (%s)'; + +$lang['xs_edittpl_error_updating'] = 'Error updating style.'; +$lang['xs_edittpl_style_updated'] = 'Style updated.'; +$lang['xs_invalid_style_id'] = 'Invalid style id.'; + +$lang['xs_edittpl_back_edit'] = 'Click here to return to editing.'; +$lang['xs_edittpl_back_list'] = 'Click here to return to styles list.'; + +$lang['xs_editdata_explain'] = 'This feature allows you to edit database data for installed styles. Some styles ignore database values and use css files instead, and some styles use only some of database values.'; +$lang['xs_editdata_var'] = 'Variable'; +$lang['xs_editdata_value'] = 'Value'; +$lang['xs_editdata_comment'] = 'Comment'; + +/* +* updates +*/ + +$lang['xs_updates'] = 'Updates'; +$lang['xs_updates_comment'] = 'This feature checks for updates of some styles and mods. It works only with items that have relevant update information.'; +$lang['xs_updates_comment2'] = 'This is result of version check.'; +$lang['xs_update_total1'] = 'Total: {NUM} items'; +$lang['xs_update_info1'] = 'This administrator feature will check for available updates of phpBB, certain mods, and some styles installed on your forum. When it finds available updates it shows you the link where you can download the updated file.

    This function requires sockets to be enabled. Most free web hosts do not have this feature so if this forum is on free host (like lycos) then you cannot use update feature, but if this forum is on normal server then everything should be okay.

    When you click "continue", the script will check all software installed on forum. If your website is slow it might take some time. Be patient and don\'t click "stop" in your browser if process is delayed. If this server is slow or update website is slow then script might timeout - if this happens you should increase timeout value.'; +$lang['xs_update_name'] = 'Name'; +$lang['xs_update_type'] = 'Type'; +$lang['xs_update_current_version'] = 'Your version'; +$lang['xs_update_latest_version'] = 'Latest version'; +$lang['xs_update_downloadinfo'] = 'Download URL'; +$lang['xs_update_timeout'] = 'Update script timeout (seconds):'; +$lang['xs_update_continue'] = 'Continue'; + + +$lang['xs_update_total2'] = 'Errors: {NUM}'; +$lang['xs_update_total3'] = 'Updates available: {NUM} items'; +$lang['xs_update_select1'] = 'Select items to update'; +$lang['xs_update_types'] = array( + 0 => 'Unknown', + 1 => 'Style', + 2 => 'Mod', + 3 => 'phpBB' + ); +$lang['xs_update_fileinfo'] = 'More info'; +$lang['xs_update_nothing'] = 'There is nothing to update.'; +$lang['xs_update_noupdate'] = 'You are using the latest version.'; + +$lang['xs_update_error_url'] = 'Error: cannot retrieve url %s'; +$lang['xs_update_error_noitem'] = 'Error: No update information available'; +$lang['xs_update_error_noconnect'] = 'Error: Cannot connect to update server'; + +$lang['xs_update_download'] = 'download'; +$lang['xs_update_downloadinfo2'] = 'download/info'; +$lang['xs_update_info'] = 'website'; + +$lang['xs_permission_denied'] = 'Permission Denied'; + +$lang['xs_download_lc'] = 'download'; +$lang['xs_info_lc'] = 'info'; + +?> \ No newline at end of file diff --git a/phpBB2_old/language/lang_english/search_stopwords.txt b/phpBB2_old/language/lang_english/search_stopwords.txt new file mode 100644 index 0000000..5629d9a --- /dev/null +++ b/phpBB2_old/language/lang_english/search_stopwords.txt @@ -0,0 +1,251 @@ +a +about +after +ago +all +almost +along +alot +also +am +an +and +answer +any +anybody +anybodys +anywhere +are +arent +around +as +ask +askd +at +bad +be +because +been +before +being +best +better +between +big +btw +but +by +can +cant +come +could +couldnt +day +days +days +did +didnt +do +does +doesnt +dont +down +each +etc +either +else +even +ever +every +everybody +everybodys +everyone +far +find +for +found +from +get +go +going +gone +good +got +gotten +had +has +have +havent +having +her +here +hers +him +his +home +how +hows +href +I +Ive +if +in +ini +into +is +isnt +it +its +its +just +know +large +less +like +liked +little +looking +look +looked +looking +lot +maybe +many +me +more +most +much +must +mustnt +my +near +need +never +new +news +no +none +not +nothing +now +of +off +often +old +on +once +only +oops +or +other +our +ours +out +over +page +please +put +question +questions +questioned +quote +rather +really +recent +said +saw +say +says +she +see +sees +should +sites +small +so +some +something +sometime +somewhere +soon +take +than +true +thank +that +thatd +thats +the +their +theirs +theres +theirs +them +then +there +these +they +theyll +theyd +theyre +this +those +though +through +thus +time +times +to +too +under +until +untrue +up +upon +use +users +version +very +via +want +was +way +we +well +went +were +werent +what +when +where +which +who +whom +whose +why +wide +will +with +within +without +wont +world +worse +worst +would +wrote +www +yes +yet +you +youd +youll +your +youre +yours +AFAIK +IIRC +LOL +ROTF +ROTFLMAO +YMMV diff --git a/phpBB2_old/language/lang_english/search_synonyms.txt b/phpBB2_old/language/lang_english/search_synonyms.txt new file mode 100644 index 0000000..0359039 --- /dev/null +++ b/phpBB2_old/language/lang_english/search_synonyms.txt @@ -0,0 +1,149 @@ +abcense absence +abridgement abridgment +accomodate accommodate +acknowledgment acknowledgement +airplane aeroplane +allright alright +andy andrew +anemia anaemia +anemic anaemic +anesthesia anaesthesia +appologize appologise +archean archaean +archeology archaeology +archeozoic archaeozoic +armor armour +artic arctic +attachment attachement +attendence attendance +barbecue barbeque +behavior behaviour +biassed biased +biol biology +buletin bulletin +calender calendar +canceled cancelled +car automobile +catalog catalogue +cenozoic caenozoic +center centre +check cheque +color colour +comission commission +comittee committee +commitee committee +conceed concede +creating createing +curiculum curriculum +defense defence +develope develop +discription description +dulness dullness +encyclopedia encyclopaedia +enroll enrol +esthetic aesthetic +etiology aetiology +exhorbitant exorbitant +exhuberant exuberant +existance existence +favorite favourite +fetus foetus +ficticious fictitious +flavor flavour +flourescent fluorescent +foriegn foreign +fourty forty +gage guage +geneology genealogy +grammer grammar +gray grey +guerilla guerrilla +gynecology gynaecology +harbor harbour +heighth height +hemaglobin haemaglobin +hematin haematin +hematite haematite +hematology haematology +honor honour +innoculate inoculate +installment instalment +irrelevent irrelevant +irrevelant irrelevant +jeweler jeweller +judgement judgment +labeled labelled +labor labour +laborer labourer +laborers labourers +laboring labouring +licence license +liesure leisure +liquify liquefy +maintainance maintenance +maintenence maintenance +medieval mediaeval +meter metre +milage mileage +millipede millepede +miscelaneous miscellaneous +morgage mortgage +noticable noticeable +occurence occurrence +offense offence +ommision omission +ommission omission +optimize optimize +organise organize +pajamas pyjamas +paleography palaeography +paleolithic palaeolithic +paleontological palaeontological +paleontologist palaeontologist +paleontology palaeontology +paleozoic palaeozoic +pamplet pamphlet +paralell parallel +parl parliament +parlt parliament +pediatric paediatric +pediatrician paediatrician +pediatrics paediatrics +pedodontia paedodontia +pedodontics paedodontics +personel personnel +practise practice +program programme +psych psychology +questionaire questionnaire +rarify rarefy +reccomend recommend +recieve receive +resistence resistance +restaraunt restaurant +savior saviour +sep september +seperate separate +sept september +sieze seize +summarize summarise +summerize summarise +superceed supercede +superintendant superintendent +supersede supercede +suprise surprise +surprize surprise +synchronise synchronize +temperary temporary +theater theatre +threshhold threshold +transfered transferred +truely truly +truley truly +useable usable +valor valour +vigor vigour +vol volume +whack wack +withold withhold +yeild yield diff --git a/phpBB2_old/login.php b/phpBB2_old/login.php new file mode 100644 index 0000000..cb679bd --- /dev/null +++ b/phpBB2_old/login.php @@ -0,0 +1,234 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql); + } + + if( $row = $db->sql_fetchrow($result) ) + { + if( $row['user_level'] != ADMIN && $board_config['board_disable'] ) + { + redirect(append_sid("index.$phpEx", true)); + } + else + { + if( md5($password) == $row['user_password'] && $row['user_active'] ) + { + $autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0; + + $session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin); + + if( $session_id ) + { + $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; + redirect(append_sid($url, true)); + } + else + { + message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__); + } + } + else + { + $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ''; + $redirect = str_replace('?', '&', $redirect); + + if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) + { + message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); + } + + $template->assign_vars(array( + 'META' => "") + ); + + $message = $lang['Error_login'] . '

    ' . sprintf($lang['Click_return_login'], "", '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + } + else + { + $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : ""; + $redirect = str_replace("?", "&", $redirect); + + if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r")) + { + message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.'); + } + + $template->assign_vars(array( + 'META' => "") + ); + + $message = $lang['Error_login'] . '

    ' . sprintf($lang['Click_return_login'], "", '') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + } + else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] ) + { + if( $userdata['session_logged_in'] ) + { + session_end($userdata['session_id'], $userdata['user_id']); + } + + if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect'])) + { + $url = (!empty($HTTP_POST_VARS['redirect'])) ? htmlspecialchars($HTTP_POST_VARS['redirect']) : htmlspecialchars($HTTP_GET_VARS['redirect']); + $url = str_replace('&', '&', $url); + redirect(append_sid($url, true)); + } + else + { + redirect(append_sid("index.$phpEx", true)); + } + } + else + { + $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx"; + redirect(append_sid($url, true)); + } +} +else +{ + // + // Do a full login page dohickey if + // user not already logged in + // + if( !$userdata['session_logged_in'] ) + { + $page_title = $lang['Login']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'login_body.tpl') + ); + + if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) ) + { + $forward_to = $HTTP_SERVER_VARS['QUERY_STRING']; + + if( preg_match("/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si", $forward_to, $forward_matches) ) + { + $forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1]; + $forward_match = explode('&', $forward_to); + + if(count($forward_match) > 1) + { + $forward_page = ''; + + for($i = 1; $i < count($forward_match); $i++) + { + if( !ereg("sid=", $forward_match[$i]) ) + { + if( $forward_page != '' ) + { + $forward_page .= '&'; + } + $forward_page .= $forward_match[$i]; + } + } + $forward_page = $forward_match[0] . '?' . $forward_page; + } + else + { + $forward_page = $forward_match[0]; + } + } + } + else + { + $forward_page = ''; + } + + $username = ( $userdata['user_id'] != ANONYMOUS ) ? $userdata['username'] : ''; + + $s_hidden_fields = ''; + + make_jumpbox('viewforum.'.$phpEx, $forum_id); + $template->assign_vars(array( + 'USERNAME' => $username, + + 'L_ENTER_PASSWORD' => $lang['Enter_password'], + 'L_SEND_PASSWORD' => $lang['Forgotten_password'], + + 'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"), + + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + redirect(append_sid("index.$phpEx", true)); + } + +} + +?> \ No newline at end of file diff --git a/phpBB2_old/memberlist.php b/phpBB2_old/memberlist.php new file mode 100644 index 0000000..7a3a5de --- /dev/null +++ b/phpBB2_old/memberlist.php @@ -0,0 +1,311 @@ +'; +for($i = 0; $i < count($mode_types_text); $i++) +{ + $selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : ''; + $select_sort_mode .= ''; +} +$select_sort_mode .= ''; + +$select_sort_order = ''; + +// +// Generate page +// +$page_title = $lang['Memberlist']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'memberlist_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'], + 'L_EMAIL' => $lang['Email'], + 'L_WEBSITE' => $lang['Website'], + 'L_FROM' => $lang['Location'], + 'L_ORDER' => $lang['Order'], + 'L_SORT' => $lang['Sort'], + 'L_SUBMIT' => $lang['Sort'], + 'L_AIM' => $lang['AIM'], + 'L_YIM' => $lang['YIM'], + 'L_MSNM' => $lang['MSNM'], + 'L_ICQ' => $lang['ICQ'], + 'L_JOINED' => $lang['Joined'], + 'L_POSTS' => $lang['Posts'], + 'L_PM' => $lang['Private_Message'], + + 'S_MODE_SELECT' => $select_sort_mode, + 'S_ORDER_SELECT' => $select_sort_order, + 'S_MODE_ACTION' => append_sid("memberlist.$phpEx")) +); + +switch( $mode ) +{ + case 'joined': + $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'username': + $order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'location': + $order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'posts': + $order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'email': + $order_by = "user_email $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'website': + $order_by = "user_website $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; + case 'topten': + $order_by = "user_posts $sort_order LIMIT 10"; + break; + default: + $order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page']; + break; +} + +$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS . " + ORDER BY $order_by"; +if( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql); +} + +if ( $row = $db->sql_fetchrow($result) ) +{ + $i = 0; + do + { + $username = $row['username']; + $user_id = $row['user_id']; + + $from = ( !empty($row['user_from']) ) ? $row['user_from'] : ' '; + $joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']); + $posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0; + + $poster_avatar = ''; + if ( $row['user_avatar_type'] && $user_id != ANONYMOUS && $row['user_allowavatar'] ) + { + switch( $row['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + if ( !empty($row['user_viewemail']) || $userdata['user_level'] == ADMIN ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id) : 'mailto:' . $row['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ' '; + $email = ' '; + } + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + $www_img = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $row['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($row['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $row['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); + $msn_img = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $row['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $row['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts"); + $search_img = '' . $lang['Search_user_posts'] . ''; + $search = '' . $lang['Search_user_posts'] . ''; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('memberrow', array( + 'ROW_NUMBER' => $i + ( $start + 1 ), + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'FROM' => $from, + 'JOINED' => $joined, + 'POSTS' => $posts, + 'AVATAR_IMG' => $poster_avatar, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + + 'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id")) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + $db->sql_freeresult($result); +} + +if ( $mode != 'topten' || $board_config['topics_per_page'] < 10 ) +{ + $sql = "SELECT count(*) AS total + FROM " . USERS_TABLE . " + WHERE user_id <> " . ANONYMOUS; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Error getting total users', '', __LINE__, __FILE__, $sql); + } + + if ( $total = $db->sql_fetchrow($result) ) + { + $total_members = $total['total']; + + $pagination = generate_pagination("memberlist.$phpEx?mode=$mode&order=$sort_order", $total_members, $board_config['topics_per_page'], $start). ' '; + } + $db->sql_freeresult($result); +} +else +{ + $pagination = ' '; + $total_members = 10; +} + +$template->assign_vars(array( + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $total_members / $board_config['topics_per_page'] )), + + 'L_GOTO_PAGE' => $lang['Goto_page']) +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/modcp.php b/phpBB2_old/modcp.php new file mode 100644 index 0000000..46fceb2 --- /dev/null +++ b/phpBB2_old/modcp.php @@ -0,0 +1,1202 @@ +sql_query($sql)) ) + { + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); + } + $topic_row = $db->sql_fetchrow($result); + + $forum_topics = ( $topic_row['forum_topics'] == 0 ) ? 1 : $topic_row['forum_topics']; + $forum_id = $topic_row['forum_id']; + $forum_name = $topic_row['forum_name']; +} +else if ( !empty($forum_id) ) +{ + $sql = "SELECT forum_name, forum_topics + FROM " . FORUMS_TABLE . " + WHERE forum_id = " . $forum_id; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); + } + $topic_row = $db->sql_fetchrow($result); + + $forum_topics = ( $topic_row['forum_topics'] == 0 ) ? 1 : $topic_row['forum_topics']; + $forum_name = $topic_row['forum_name']; +} +else +{ + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// session id check +if ($sid == '' || $sid != $userdata['session_id']) +{ + message_die(GENERAL_ERROR, 'Invalid_session'); +} + +// +// Check if user did or did not confirm +// If they did not, forward them to the last page they were on +// +if ( isset($HTTP_POST_VARS['cancel']) ) +{ + if ( $topic_id ) + { + $redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"; + } + else if ( $forum_id ) + { + $redirect = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"; + } + else + { + $redirect = "index.$phpEx"; + } + + redirect(append_sid($redirect, true)); +} + +// +// Start auth check +// +$is_auth = auth(AUTH_ALL, $forum_id, $userdata); + +if ( !$is_auth['auth_mod'] ) +{ + message_die(GENERAL_MESSAGE, $lang['Not_Moderator'], $lang['Not_Authorised']); +} +// +// End Auth Check +// + +// +// Do major work ... +// +switch( $mode ) +{ + case 'delete': + if (!$is_auth['auth_delete']) + { + message_die(MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type'])); + } + + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $confirm ) + { + include($phpbb_root_path . 'includes/functions_search.'.$phpEx); + + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_id_sql = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "SELECT topic_id + FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($topic_id_sql) + AND forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic id information', '', __LINE__, __FILE__, $sql); + } + + $topic_id_sql = ''; + while ($row = $db->sql_fetchrow($result)) + { + $topic_id_sql .= (($topic_id_sql != '') ? ', ' : '') . intval($row['topic_id']); + } + $db->sql_freeresult($result); + + $sql = "SELECT poster_id, COUNT(post_id) AS posts + FROM " . POSTS_TABLE . " + WHERE topic_id IN ($topic_id_sql) + GROUP BY poster_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get poster id information', '', __LINE__, __FILE__, $sql); + } + + $count_sql = array(); + while ( $row = $db->sql_fetchrow($result) ) + { + $count_sql[] = "UPDATE " . USERS_TABLE . " + SET user_posts = user_posts - " . $row['posts'] . " + WHERE user_id = " . $row['poster_id']; + } + $db->sql_freeresult($result); + + if ( sizeof($count_sql) ) + { + for($i = 0; $i < sizeof($count_sql); $i++) + { + if ( !$db->sql_query($count_sql[$i]) ) + { + message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql); + } + } + } + + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE topic_id IN ($topic_id_sql)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post id information', '', __LINE__, __FILE__, $sql); + } + + $post_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $post_id_sql .= ( ( $post_id_sql != '' ) ? ', ' : '' ) . intval($row['post_id']); + } + $db->sql_freeresult($result); + + $sql = "SELECT vote_id + FROM " . VOTE_DESC_TABLE . " + WHERE topic_id IN ($topic_id_sql)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get vote id information', '', __LINE__, __FILE__, $sql); + } + + $vote_id_sql = ''; + while ( $row = $db->sql_fetchrow($result) ) + { + $vote_id_sql .= ( ( $vote_id_sql != '' ) ? ', ' : '' ) . $row['vote_id']; + } + $db->sql_freeresult($result); + + // + // Got all required info so go ahead and start deleting everything + // + $sql = "DELETE + FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($topic_id_sql) + OR topic_moved_id IN ($topic_id_sql)"; + if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete topics', '', __LINE__, __FILE__, $sql); + } + + if ( $post_id_sql != '' ) + { + $sql = "DELETE + FROM " . POSTS_TABLE . " + WHERE post_id IN ($post_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete posts', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE + FROM " . POSTS_TEXT_TABLE . " + WHERE post_id IN ($post_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete posts text', '', __LINE__, __FILE__, $sql); + } + + remove_search_post($post_id_sql); + } + + if ( $vote_id_sql != '' ) + { + $sql = "DELETE + FROM " . VOTE_DESC_TABLE . " + WHERE vote_id IN ($vote_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete vote descriptions', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE + FROM " . VOTE_RESULTS_TABLE . " + WHERE vote_id IN ($vote_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete vote results', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id IN ($vote_id_sql)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete vote users', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "DELETE + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id IN ($topic_id_sql)"; + if ( !$db->sql_query($sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete watched post list', '', __LINE__, __FILE__, $sql); + } + + sync('forum', $forum_id); + + if ( !empty($topic_id) ) + { + $redirect_page = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $l_redirect = sprintf($lang['Click_return_forum'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $l_redirect = sprintf($lang['Click_return_modcp'], '', ''); + } + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Topics_Removed'] . '

    ' . $l_redirect); + } + else + { + // Not confirmed, show confirmation message + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $hidden_fields = ''; + + if ( isset($HTTP_POST_VARS['topic_id_list']) ) + { + $topics = $HTTP_POST_VARS['topic_id_list']; + for($i = 0; $i < count($topics); $i++) + { + $hidden_fields .= ''; + } + } + else + { + $hidden_fields .= ''; + } + + // + // Set template files + // + $template->set_filenames(array( + 'confirm' => 'confirm_body.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_delete_topic'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("modcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + + $template->pparse('confirm'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + break; + + case 'move': + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $confirm ) + { + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $new_forum_id = intval($HTTP_POST_VARS['new_forum']); + $old_forum_id = $forum_id; + + if ( $new_forum_id != $old_forum_id ) + { + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_list = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_list .= ( ( $topic_list != '' ) ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "SELECT * + FROM " . TOPICS_TABLE . " + WHERE topic_id IN ($topic_list) + AND forum_id = $old_forum_id + AND topic_status <> " . TOPIC_MOVED; + if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, 'Could not select from topic table', '', __LINE__, __FILE__, $sql); + } + + $row = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); + + for($i = 0; $i < count($row); $i++) + { + $topic_id = $row[$i]['topic_id']; + + if ( isset($HTTP_POST_VARS['move_leave_shadow']) ) + { + // Insert topic in the old forum that indicates that the forum has moved. + $sql = "INSERT INTO " . TOPICS_TABLE . " (forum_id, topic_title, topic_poster, topic_time, topic_status, topic_type, topic_vote, topic_views, topic_replies, topic_first_post_id, topic_last_post_id, topic_moved_id) + VALUES ($old_forum_id, '" . addslashes(str_replace("\'", "''", $row[$i]['topic_title'])) . "', '" . str_replace("\'", "''", $row[$i]['topic_poster']) . "', " . $row[$i]['topic_time'] . ", " . TOPIC_MOVED . ", " . POST_NORMAL . ", " . $row[$i]['topic_vote'] . ", " . $row[$i]['topic_views'] . ", " . $row[$i]['topic_replies'] . ", " . $row[$i]['topic_first_post_id'] . ", " . $row[$i]['topic_last_post_id'] . ", $topic_id)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert shadow topic', '', __LINE__, __FILE__, $sql); + } + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET forum_id = $new_forum_id + WHERE topic_id = $topic_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update old topic', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . POSTS_TABLE . " + SET forum_id = $new_forum_id + WHERE topic_id = $topic_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update post topic ids', '', __LINE__, __FILE__, $sql); + } + } + + // Sync the forum indexes + sync('forum', $new_forum_id); + sync('forum', $old_forum_id); + + $message = $lang['Topics_Moved'] . '

    '; + + } + else + { + $message = $lang['No_Topics_Moved'] . '

    '; + } + + if ( !empty($topic_id) ) + { + $redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $message .= sprintf($lang['Click_return_topic'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $message .= sprintf($lang['Click_return_modcp'], '', ''); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $message); + } + else + { + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $hidden_fields = ''; + + if ( isset($HTTP_POST_VARS['topic_id_list']) ) + { + $topics = $HTTP_POST_VARS['topic_id_list']; + + for($i = 0; $i < count($topics); $i++) + { + $hidden_fields .= ''; + } + } + else + { + $hidden_fields .= ''; + } + + // + // Set template files + // + $template->set_filenames(array( + 'movetopic' => 'modcp_move.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Confirm'], + 'MESSAGE_TEXT' => $lang['Confirm_move_topic'], + + 'L_MOVE_TO_FORUM' => $lang['Move_to_forum'], + 'L_LEAVESHADOW' => $lang['Leave_shadow_topic'], + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_FORUM_SELECT' => make_forum_select('new_forum', $forum_id), + 'S_MODCP_ACTION' => append_sid("modcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $hidden_fields) + ); + + $template->pparse('movetopic'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + break; + + case 'lock': + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_id_sql = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_status = " . TOPIC_LOCKED . " + WHERE topic_id IN ($topic_id_sql) + AND forum_id = $forum_id + AND topic_moved_id = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update topics table', '', __LINE__, __FILE__, $sql); + } + + if ( !empty($topic_id) ) + { + $redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_topic'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_modcp'], '', ''); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Topics_Locked'] . '

    ' . $message); + + break; + + case 'unlock': + if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['None_selected']); + } + + $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id); + + $topic_id_sql = ''; + for($i = 0; $i < count($topics); $i++) + { + $topic_id_sql .= ( ( $topic_id_sql != "") ? ', ' : '' ) . intval($topics[$i]); + } + + $sql = "UPDATE " . TOPICS_TABLE . " + SET topic_status = " . TOPIC_UNLOCKED . " + WHERE topic_id IN ($topic_id_sql) + AND forum_id = $forum_id + AND topic_moved_id = 0"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not update topics table', '', __LINE__, __FILE__, $sql); + } + + if ( !empty($topic_id) ) + { + $redirect_page = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_topic'], '', ''); + } + else + { + $redirect_page = "modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id']; + $message = sprintf($lang['Click_return_modcp'], '', ''); + } + + $message = $message . '

    ' . sprintf($lang['Click_return_forum'], '', ''); + + $template->assign_vars(array( + 'META' => '') + ); + + message_die(GENERAL_MESSAGE, $lang['Topics_Unlocked'] . '

    ' . $message); + + break; + + case 'split': + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $post_id_sql = ''; + + if (isset($HTTP_POST_VARS['split_type_all']) || isset($HTTP_POST_VARS['split_type_beyond'])) + { + $posts = $HTTP_POST_VARS['post_id_list']; + + for ($i = 0; $i < count($posts); $i++) + { + $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($posts[$i]); + } + } + + if ($post_id_sql != '') + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE post_id IN ($post_id_sql) + AND forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get post id information', '', __LINE__, __FILE__, $sql); + } + + $post_id_sql = ''; + while ($row = $db->sql_fetchrow($result)) + { + $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($row['post_id']); + } + $db->sql_freeresult($result); + + $sql = "SELECT post_id, poster_id, topic_id, post_time + FROM " . POSTS_TABLE . " + WHERE post_id IN ($post_id_sql) + ORDER BY post_time ASC"; + if (!($result = $db->sql_query($sql))) + { + message_die(GENERAL_ERROR, 'Could not get post information', '', __LINE__, __FILE__, $sql); + } + + if ($row = $db->sql_fetchrow($result)) + { + $first_poster = $row['poster_id']; + $topic_id = $row['topic_id']; + $post_time = $row['post_time']; + + $user_id_sql = ''; + $post_id_sql = ''; + do + { + $user_id_sql .= (($user_id_sql != '') ? ', ' : '') . intval($row['poster_id']); + $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($row['post_id']);; + } + while ($row = $db->sql_fetchrow($result)); + + $post_subject = trim(htmlspecialchars($HTTP_POST_VARS['subject'])); + if (empty($post_subject)) + { + message_die(GENERAL_MESSAGE, $lang['Empty_subject']); + } + + $new_forum_id = intval($HTTP_POST_VARS['new_forum_id']); + $topic_time = time(); + + $sql = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type) + VALUES ('" . str_replace("\'", "''", $post_subject) . "', $first_poster, " . $topic_time . ", $new_forum_id, " . TOPIC_UNLOCKED . ", " . POST_NORMAL . ")"; + if (!($db->sql_query($sql, BEGIN_TRANSACTION))) + { + message_die(GENERAL_ERROR, 'Could not insert new topic', '', __LINE__, __FILE__, $sql); + } + + $new_topic_id = $db->sql_nextid(); + + // Update topic watch table, switch users whose posts + // have moved, over to watching the new topic + $sql = "UPDATE " . TOPICS_WATCH_TABLE . " + SET topic_id = $new_topic_id + WHERE topic_id = $topic_id + AND user_id IN ($user_id_sql)"; + if (!$db->sql_query($sql)) + { + message_die(GENERAL_ERROR, 'Could not update topics watch table', '', __LINE__, __FILE__, $sql); + } + + $sql_where = (!empty($HTTP_POST_VARS['split_type_beyond'])) ? " post_time >= $post_time AND topic_id = $topic_id" : "post_id IN ($post_id_sql)"; + + $sql = "UPDATE " . POSTS_TABLE . " + SET topic_id = $new_topic_id, forum_id = $new_forum_id + WHERE $sql_where"; + if (!$db->sql_query($sql, END_TRANSACTION)) + { + message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql); + } + + sync('topic', $new_topic_id); + sync('topic', $topic_id); + sync('forum', $new_forum_id); + sync('forum', $forum_id); + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['Topic_split'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + } + else + { + // + // Set template files + // + $template->set_filenames(array( + 'split_body' => 'modcp_split.tpl') + ); + + $sql = "SELECT u.username, p.*, pt.post_text, pt.bbcode_uid, pt.post_subject, p.post_username + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + AND p.poster_id = u.user_id + AND p.post_id = pt.post_id + ORDER BY p.post_time ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get topic/post information', '', __LINE__, __FILE__, $sql); + } + + $s_hidden_fields = ''; + + if( ( $total_posts = $db->sql_numrows($result) ) > 0 ) + { + $postrow = $db->sql_fetchrowset($result); + + $template->assign_vars(array( + 'L_SPLIT_TOPIC' => $lang['Split_Topic'], + 'L_SPLIT_TOPIC_EXPLAIN' => $lang['Split_Topic_explain'], + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_SELECT' => $lang['Select'], + 'L_SPLIT_SUBJECT' => $lang['Split_title'], + 'L_SPLIT_FORUM' => $lang['Split_forum'], + 'L_POSTED' => $lang['Posted'], + 'L_SPLIT_POSTS' => $lang['Split_posts'], + 'L_SUBMIT' => $lang['Submit'], + 'L_SPLIT_AFTER' => $lang['Split_after'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_MARK_ALL' => $lang['Mark_all'], + 'L_UNMARK_ALL' => $lang['Unmark_all'], + 'L_POST' => $lang['Post'], + + 'FORUM_NAME' => $forum_name, + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + + 'S_SPLIT_ACTION' => append_sid("modcp.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_FORUM_SELECT' => make_forum_select("new_forum_id", false, $forum_id)) + ); + + // + // Define censored word matches + // + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + for($i = 0; $i < $total_posts; $i++) + { + $post_id = $postrow[$i]['post_id']; + $poster_id = $postrow[$i]['poster_id']; + $poster = $postrow[$i]['username']; + + $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']); + + $bbcode_uid = $postrow[$i]['bbcode_uid']; + $message = $postrow[$i]['post_text']; + $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : $topic_title; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] ) + { + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\\2>', $message); + } + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + + if ( count($orig_word) ) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + $message = preg_replace($orig_word, $replacement_word, $message); + } + + $message = make_clickable($message); + + if ( $board_config['allow_smilies'] && $postrow[$i]['enable_smilies'] ) + { + $message = smilies_pass($message); + } + + $message = str_replace("\n", '
    ', $message); + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $checkbox = ( $i > 0 ) ? '' : ' '; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'POSTER_NAME' => $poster, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + 'POST_ID' => $post_id, + + 'S_SPLIT_CHECKBOX' => $checkbox) + ); + } + + $template->pparse('split_body'); + } + } + break; + + case 'ip': + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $rdns_ip_num = ( isset($HTTP_GET_VARS['rdns']) ) ? $HTTP_GET_VARS['rdns'] : ""; + + if ( !$post_id ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_post']); + } + + // + // Set template files + // + $template->set_filenames(array( + 'viewip' => 'modcp_viewip.tpl') + ); + + // Look up relevent data for this post + $sql = "SELECT poster_ip, poster_id + FROM " . POSTS_TABLE . " + WHERE post_id = $post_id + AND forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get poster IP information', '', __LINE__, __FILE__, $sql); + } + + if ( !($post_row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_post']); + } + + $ip_this_post = decode_ip($post_row['poster_ip']); + $ip_this_post = ( $rdns_ip_num == $ip_this_post ) ? gethostbyaddr($ip_this_post) : $ip_this_post; + + $poster_id = $post_row['poster_id']; + + $template->assign_vars(array( + 'L_IP_INFO' => $lang['IP_info'], + 'L_THIS_POST_IP' => $lang['This_posts_IP'], + 'L_OTHER_IPS' => $lang['Other_IP_this_user'], + 'L_OTHER_USERS' => $lang['Users_this_IP'], + 'L_LOOKUP_IP' => $lang['Lookup_IP'], + 'L_SEARCH' => $lang['Search'], + + 'SEARCH_IMG' => $images['icon_search'], + + 'IP' => $ip_this_post, + + 'U_LOOKUP_IP' => "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=$post_id&" . POST_TOPIC_URL . "=$topic_id&rdns=$ip_this_post&sid=" . $userdata['session_id']) + ); + + // + // Get other IP's this user has posted under + // + $sql = "SELECT poster_ip, COUNT(*) AS postings + FROM " . POSTS_TABLE . " + WHERE poster_id = $poster_id + GROUP BY poster_ip + ORDER BY " . (( SQL_LAYER == 'msaccess' ) ? 'COUNT(*)' : 'postings' ) . " DESC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get IP information for this user', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $i = 0; + do + { + if ( $row['poster_ip'] == $post_row['poster_ip'] ) + { + $template->assign_vars(array( + 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] )) + ); + continue; + } + + $ip = decode_ip($row['poster_ip']); + $ip = ( $rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') ? gethostbyaddr($ip) : $ip; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('iprow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'IP' => $ip, + 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ), + + 'U_LOOKUP_IP' => "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=$post_id&" . POST_TOPIC_URL . "=$topic_id&rdns=" . $row['poster_ip'] . "&sid=" . $userdata['session_id']) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + } + + // + // Get other users who've posted under this IP + // + $sql = "SELECT u.user_id, u.username, COUNT(*) as postings + FROM " . USERS_TABLE ." u, " . POSTS_TABLE . " p + WHERE p.poster_id = u.user_id + AND p.poster_ip = '" . $post_row['poster_ip'] . "' + GROUP BY u.user_id, u.username + ORDER BY " . (( SQL_LAYER == 'msaccess' ) ? 'COUNT(*)' : 'postings' ) . " DESC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not get posters information based on IP', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $i = 0; + do + { + $id = $row['user_id']; + $username = ( $id == ANONYMOUS ) ? $lang['Guest'] : $row['username']; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('userrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ), + 'L_SEARCH_POSTS' => sprintf($lang['Search_user_posts'], $username), + + 'U_PROFILE' => ($id == ANONYMOUS) ? "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $post_id . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id'] : append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$id"), + 'U_SEARCHPOSTS' => append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=topics")) + ); + + $i++; + } + while ( $row = $db->sql_fetchrow($result) ); + } + + $template->pparse('viewip'); + + break; + + default: + $page_title = $lang['Mod_CP']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + + 'L_MOD_CP' => $lang['Mod_CP'], + 'L_MOD_CP_EXPLAIN' => $lang['Mod_CP_explain'], + 'L_SELECT' => $lang['Select'], + 'L_DELETE' => $lang['Delete'], + 'L_MOVE' => $lang['Move'], + 'L_LOCK' => $lang['Lock'], + 'L_UNLOCK' => $lang['Unlock'], + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_SELECT' => $lang['Select'], + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"), + 'S_HIDDEN_FIELDS' => '', + 'S_MODCP_ACTION' => append_sid("modcp.$phpEx")) + ); + + $template->set_filenames(array( + 'body' => 'modcp_body.tpl') + ); + make_jumpbox('modcp.'.$phpEx); + + // + // Define censored word matches + // + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $sql = "SELECT t.*, u.username, u.user_id, p.post_time + FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p + WHERE t.forum_id = $forum_id + AND t.topic_poster = u.user_id + AND p.post_id = t.topic_last_post_id + ORDER BY t.topic_type DESC, p.post_time DESC + LIMIT $start, " . $board_config['topics_per_page']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); + } + + while ( $row = $db->sql_fetchrow($result) ) + { + $topic_title = ''; + + if ( $row['topic_status'] == TOPIC_LOCKED ) + { + $folder_img = $images['folder_locked']; + $folder_alt = $lang['Topic_locked']; + } + else + { + if ( $row['topic_type'] == POST_ANNOUNCE ) + { + $folder_img = $images['folder_announce']; + $folder_alt = $lang['Topic_Announcement']; + } + else if ( $row['topic_type'] == POST_STICKY ) + { + $folder_img = $images['folder_sticky']; + $folder_alt = $lang['Topic_Sticky']; + } + else + { + $folder_img = $images['folder']; + $folder_alt = $lang['No_new_posts']; + } + } + + $topic_id = $row['topic_id']; + $topic_type = $row['topic_type']; + $topic_status = $row['topic_status']; + + if ( $topic_type == POST_ANNOUNCE ) + { + $topic_type = $lang['Topic_Announcement'] . ' '; + } + else if ( $topic_type == POST_STICKY ) + { + $topic_type = $lang['Topic_Sticky'] . ' '; + } + else if ( $topic_status == TOPIC_MOVED ) + { + $topic_type = $lang['Topic_Moved'] . ' '; + } + else + { + $topic_type = ''; + } + + if ( $row['topic_vote'] ) + { + $topic_type .= $lang['Topic_Poll'] . ' '; + } + + $topic_title = $row['topic_title']; + if ( count($orig_word) ) + { + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); + } + + $u_view_topic = "modcp.$phpEx?mode=split&" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id']; + $topic_replies = $row['topic_replies']; + + $last_post_time = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']); + + $template->assign_block_vars('topicrow', array( + 'U_VIEW_TOPIC' => $u_view_topic, + + 'TOPIC_FOLDER_IMG' => $folder_img, + 'TOPIC_TYPE' => $topic_type, + 'TOPIC_TITLE' => $topic_title, + 'REPLIES' => $topic_replies, + 'LAST_POST_TIME' => $last_post_time, + 'TOPIC_ID' => $topic_id, + + 'L_TOPIC_FOLDER_ALT' => $folder_alt) + ); + } + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&sid=" . $userdata['session_id'], $forum_topics, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $forum_topics / $board_config['topics_per_page'] )), + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + + $template->pparse('body'); + + break; +} + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/posting.php b/phpBB2_old/posting.php new file mode 100644 index 0000000..60995c3 --- /dev/null +++ b/phpBB2_old/posting.php @@ -0,0 +1,1108 @@ + 'post', 'preview' => 'preview', 'delete' => 'delete', 'poll_delete' => 'poll_delete', 'poll_add' => 'add_poll_option', 'poll_edit' => 'edit_poll_option', 'mode' => 'mode'); +while( list($var, $param) = @each($params) ) +{ + if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) ) + { + $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? htmlspecialchars($HTTP_POST_VARS[$param]) : htmlspecialchars($HTTP_GET_VARS[$param]); + } + else + { + $$var = ''; + } +} + +$confirm = isset($HTTP_POST_VARS['confirm']) ? true : false; + +$params = array('forum_id' => POST_FORUM_URL, 'topic_id' => POST_TOPIC_URL, 'post_id' => POST_POST_URL); +while( list($var, $param) = @each($params) ) +{ + if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) ) + { + $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? intval($HTTP_POST_VARS[$param]) : intval($HTTP_GET_VARS[$param]); + } + else + { + $$var = ''; + } +} + +$refresh = $preview || $poll_add || $poll_edit || $poll_delete; + +// +// Set topic type +// +$topic_type = ( !empty($HTTP_POST_VARS['topictype']) ) ? intval($HTTP_POST_VARS['topictype']) : POST_NORMAL; + +// +// If the mode is set to topic review then output +// that review ... +// +if ( $mode == 'topicreview' ) +{ + require($phpbb_root_path . 'includes/topic_review.'.$phpEx); + + topic_review($topic_id, false); + exit; +} +else if ( $mode == 'smilies' ) +{ + generate_smilies('window', PAGE_POSTING); + exit; +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, PAGE_POSTING); +init_userprefs($userdata); +// +// End session management +// + +// +// Was cancel pressed? If so then redirect to the appropriate +// page, no point in continuing with any further checks +// +if ( isset($HTTP_POST_VARS['cancel']) ) +{ + if ( $post_id ) + { + $redirect = "viewtopic.$phpEx?" . POST_POST_URL . "=$post_id"; + $post_append = "#$post_id"; + } + else if ( $topic_id ) + { + $redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"; + $post_append = ''; + } + else if ( $forum_id ) + { + $redirect = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"; + $post_append = ''; + } + else + { + $redirect = "index.$phpEx"; + $post_append = ''; + } + + redirect(append_sid($redirect, true) . $post_append); +} + +// +// What auth type do we need to check? +// +$is_auth = array(); +switch( $mode ) +{ + case 'newtopic': + if ( $topic_type == POST_ANNOUNCE ) + { + $is_auth_type = 'auth_announce'; + } + else if ( $topic_type == POST_STICKY ) + { + $is_auth_type = 'auth_sticky'; + } + else + { + $is_auth_type = 'auth_post'; + } + break; + case 'reply': + case 'quote': + $is_auth_type = 'auth_reply'; + break; + case 'editpost': + $is_auth_type = 'auth_edit'; + break; + case 'delete': + case 'poll_delete': + $is_auth_type = 'auth_delete'; + break; + case 'vote': + $is_auth_type = 'auth_vote'; + break; + case 'topicreview': + $is_auth_type = 'auth_read'; + break; + default: + message_die(GENERAL_MESSAGE, $lang['No_post_mode']); + break; +} + +// +// Here we do various lookups to find topic_id, forum_id, post_id etc. +// Doing it here prevents spoofing (eg. faking forum_id, topic_id or post_id +// +$error_msg = ''; +$post_data = array(); +switch ( $mode ) +{ + case 'newtopic': + if ( empty($forum_id) ) + { + message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']); + } + + $sql = "SELECT * + FROM " . FORUMS_TABLE . " + WHERE forum_id = $forum_id"; + break; + + case 'reply': + case 'vote': + if ( empty( $topic_id) ) + { + message_die(GENERAL_MESSAGE, $lang['No_topic_id']); + } + + $sql = "SELECT f.*, t.topic_status, t.topic_title + FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t + WHERE t.topic_id = $topic_id + AND f.forum_id = t.forum_id"; + break; + + case 'quote': + case 'editpost': + case 'delete': + case 'poll_delete': + if ( empty($post_id) ) + { + message_die(GENERAL_MESSAGE, $lang['No_post_id']); + } + + $select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : ''; + $from_sql = ( !$submit ) ? ", " . POSTS_TEXT_TABLE . " pt, " . USERS_TABLE . " u" : ''; + $where_sql = ( !$submit ) ? "AND pt.post_id = p.post_id AND u.user_id = p.poster_id" : ''; + + $sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . " + FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . " + WHERE p.post_id = $post_id + AND t.topic_id = p.topic_id + AND f.forum_id = p.forum_id + $where_sql"; + break; + + default: + message_die(GENERAL_MESSAGE, $lang['No_valid_mode']); +} + +if ( $result = $db->sql_query($sql) ) +{ + $post_info = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + $forum_id = $post_info['forum_id']; + $forum_name = $post_info['forum_name']; + + $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $post_info); + + if ( $post_info['forum_status'] == FORUM_LOCKED && !$is_auth['auth_mod']) + { + message_die(GENERAL_MESSAGE, $lang['Forum_locked']); + } + else if ( $mode != 'newtopic' && $post_info['topic_status'] == TOPIC_LOCKED && !$is_auth['auth_mod']) + { + message_die(GENERAL_MESSAGE, $lang['Topic_locked']); + } + + if ( $mode == 'editpost' || $mode == 'delete' || $mode == 'poll_delete' ) + { + $topic_id = $post_info['topic_id']; + + $post_data['poster_post'] = ( $post_info['poster_id'] == $userdata['user_id'] ) ? true : false; + $post_data['first_post'] = ( $post_info['topic_first_post_id'] == $post_id ) ? true : false; + $post_data['last_post'] = ( $post_info['topic_last_post_id'] == $post_id ) ? true : false; + $post_data['last_topic'] = ( $post_info['forum_last_post_id'] == $post_id ) ? true : false; + $post_data['has_poll'] = ( $post_info['topic_vote'] ) ? true : false; + $post_data['topic_type'] = $post_info['topic_type']; + $post_data['poster_id'] = $post_info['poster_id']; + + if ( $post_data['first_post'] && $post_data['has_poll'] ) + { + $sql = "SELECT * + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + ORDER BY vr.vote_option_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql); + } + + $poll_options = array(); + $poll_results_sum = 0; + if ( $row = $db->sql_fetchrow($result) ) + { + $poll_title = $row['vote_text']; + $poll_id = $row['vote_id']; + $poll_length = $row['vote_length'] / 86400; + + do + { + $poll_options[$row['vote_option_id']] = $row['vote_option_text']; + $poll_results_sum += $row['vote_result']; + } + while ( $row = $db->sql_fetchrow($result) ); + } + $db->sql_freeresult($result); + + $post_data['edit_poll'] = ( ( !$poll_results_sum || $is_auth['auth_mod'] ) && $post_data['first_post'] ) ? true : 0; + } + else + { + $post_data['edit_poll'] = ($post_data['first_post'] && $is_auth['auth_pollcreate']) ? true : false; + } + + // + // Can this user edit/delete the post/poll? + // + if ( $post_info['poster_id'] != $userdata['user_id'] && !$is_auth['auth_mod'] ) + { + $message = ( $delete || $mode == 'delete' ) ? $lang['Delete_own_posts'] : $lang['Edit_own_posts']; + $message .= '

    ' . sprintf($lang['Click_return_topic'], '', ''); + + message_die(GENERAL_MESSAGE, $message); + } + else if ( !$post_data['last_post'] && !$is_auth['auth_mod'] && ( $mode == 'delete' || $delete ) ) + { + message_die(GENERAL_MESSAGE, $lang['Cannot_delete_replied']); + } + else if ( !$post_data['edit_poll'] && !$is_auth['auth_mod'] && ( $mode == 'poll_delete' || $poll_delete ) ) + { + message_die(GENERAL_MESSAGE, $lang['Cannot_delete_poll']); + } + } + else + { + if ( $mode == 'quote' ) + { + $topic_id = $post_info['topic_id']; + } + + $post_data['first_post'] = ( $mode == 'newtopic' ) ? true : 0; + $post_data['last_post'] = false; + $post_data['has_poll'] = false; + $post_data['edit_poll'] = false; + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['No_such_post']); +} + +// +// The user is not authed, if they're not logged in then redirect +// them, else show them an error message +// +if ( !$is_auth[$is_auth_type] ) +{ + if ( $userdata['session_logged_in'] ) + { + message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_' . $is_auth_type], $is_auth[$is_auth_type . "_type"])); + } + + switch( $mode ) + { + case 'newtopic': + $redirect = "mode=newtopic&" . POST_FORUM_URL . "=" . $forum_id; + break; + case 'reply': + case 'topicreview': + $redirect = "mode=reply&" . POST_TOPIC_URL . "=" . $topic_id; + break; + case 'quote': + case 'editpost': + $redirect = "mode=quote&" . POST_POST_URL ."=" . $post_id; + break; + } + + redirect(append_sid("login.$phpEx?redirect=posting.$phpEx&" . $redirect, true)); +} + +// +// Set toggles for various options +// +if ( !$board_config['allow_html'] ) +{ + $html_on = 0; +} +else +{ + $html_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_html']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_html'] : $userdata['user_allowhtml'] ); +} + +if ( !$board_config['allow_bbcode'] ) +{ + $bbcode_on = 0; +} +else +{ + $bbcode_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_bbcode']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_bbcode'] : $userdata['user_allowbbcode'] ); +} + +if ( !$board_config['allow_smilies'] ) +{ + $smilies_on = 0; +} +else +{ + $smilies_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_smilies']) ) ? 0 : TRUE ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? $board_config['allow_smilies'] : $userdata['user_allowsmile'] ); +} + +if ( ($submit || $refresh) && $is_auth['auth_read']) +{ + $notify_user = ( !empty($HTTP_POST_VARS['notify']) ) ? TRUE : 0; +} +else +{ + if ( $mode != 'newtopic' && $userdata['session_logged_in'] && $is_auth['auth_read'] ) + { + $sql = "SELECT topic_id + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic watch information', '', __LINE__, __FILE__, $sql); + } + + $notify_user = ( $db->sql_fetchrow($result) ) ? TRUE : $userdata['user_notify']; + $db->sql_freeresult($result); + } + else + { + $notify_user = ( $userdata['session_logged_in'] && $is_auth['auth_read'] ) ? $userdata['user_notify'] : 0; + } +} + +$attach_sig = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['attach_sig']) ) ? TRUE : 0 ) : ( ( $userdata['user_id'] == ANONYMOUS ) ? 0 : $userdata['user_attachsig'] ); + +// -------------------- +// What shall we do? +// +if ( ( $delete || $poll_delete || $mode == 'delete' ) && !$confirm ) +{ + // + // Confirm deletion + // + $s_hidden_fields = ''; + $s_hidden_fields .= ( $delete || $mode == "delete" ) ? '' : ''; + + $l_confirm = ( $delete || $mode == 'delete' ) ? $lang['Confirm_delete'] : $lang['Confirm_delete_poll']; + + // + // Output confirmation page + // + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'confirm_body' => 'confirm_body.tpl') + ); + + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Information'], + 'MESSAGE_TEXT' => $l_confirm, + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("posting.$phpEx"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('confirm_body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); +} +else if ( $mode == 'vote' ) +{ + // + // Vote in a poll + // + if ( !empty($HTTP_POST_VARS['vote_id']) ) + { + $vote_option_id = intval($HTTP_POST_VARS['vote_id']); + + $sql = "SELECT vd.vote_id + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + AND vr.vote_option_id = $vote_option_id + GROUP BY vd.vote_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain vote data for this topic', '', __LINE__, __FILE__, $sql); + } + + if ( $vote_info = $db->sql_fetchrow($result) ) + { + $vote_id = $vote_info['vote_id']; + + $sql = "SELECT * + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $vote_id + AND vote_user_id = " . $userdata['user_id']; + if ( !($result2 = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user vote data for this topic', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result2)) ) + { + $sql = "UPDATE " . VOTE_RESULTS_TABLE . " + SET vote_result = vote_result + 1 + WHERE vote_id = $vote_id + AND vote_option_id = $vote_option_id"; + if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not update poll result', '', __LINE__, __FILE__, $sql); + } + + $sql = "INSERT INTO " . VOTE_USERS_TABLE . " (vote_id, vote_user_id, vote_user_ip) + VALUES ($vote_id, " . $userdata['user_id'] . ", '$user_ip')"; + if ( !$db->sql_query($sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, "Could not insert user_id for poll", "", __LINE__, __FILE__, $sql); + } + + $message = $lang['Vote_cast']; + } + else + { + $message = $lang['Already_voted']; + } + $db->sql_freeresult($result2); + } + else + { + $message = $lang['No_vote_option']; + } + $db->sql_freeresult($result); + + $template->assign_vars(array( + 'META' => '') + ); + $message .= '

    ' . sprintf($lang['Click_view_message'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true)); + } +} +else if ( $submit || $confirm ) +{ + // + // Submit post/vote (newtopic, edit, reply, etc.) + // + $return_message = ''; + $return_meta = ''; + + switch ( $mode ) + { + case 'editpost': + case 'newtopic': + case 'reply': + $username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : ''; + $subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : ''; + $message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : ''; + $poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : ''; + $poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : ''; + $poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : ''; + $bbcode_uid = ''; + + prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length); + + if ( $error_msg == '' ) + { + $topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type; + + submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length); + } + break; + + case 'delete': + case 'poll_delete': + delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id); + break; + } + + if ( $error_msg == '' ) + { + if ( $mode != 'editpost' ) + { + $user_id = ( $mode == 'reply' || $mode == 'newtopic' ) ? $userdata['user_id'] : $post_data['poster_id']; + update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id); + } + + if ($error_msg == '' && $mode != 'poll_delete') + { + user_notification($mode, $post_data, $post_info['topic_title'], $forum_id, $topic_id, $post_id, $notify_user); + } + + if ( $mode == 'newtopic' || $mode == 'reply' ) + { + $tracking_topics = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( !empty($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + if ( count($tracking_topics) + count($tracking_forums) == 100 && empty($tracking_topics[$topic_id]) ) + { + asort($tracking_topics); + unset($tracking_topics[key($tracking_topics)]); + } + + $tracking_topics[$topic_id] = time(); + + setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); + } + + $template->assign_vars(array( + 'META' => $return_meta) + ); + message_die(GENERAL_MESSAGE, $return_message); + } +} + +if( $refresh || isset($HTTP_POST_VARS['del_poll_option']) || $error_msg != '' ) +{ + $username = ( !empty($HTTP_POST_VARS['username']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['username']))) : ''; + $subject = ( !empty($HTTP_POST_VARS['subject']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['subject']))) : ''; + $message = ( !empty($HTTP_POST_VARS['message']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['message']))) : ''; + + $poll_title = ( !empty($HTTP_POST_VARS['poll_title']) ) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['poll_title']))) : ''; + $poll_length = ( isset($HTTP_POST_VARS['poll_length']) ) ? max(0, intval($HTTP_POST_VARS['poll_length'])) : 0; + + $poll_options = array(); + if ( !empty($HTTP_POST_VARS['poll_option_text']) ) + { + while( list($option_id, $option_text) = @each($HTTP_POST_VARS['poll_option_text']) ) + { + if( isset($HTTP_POST_VARS['del_poll_option'][$option_id]) ) + { + unset($poll_options[$option_id]); + } + else if ( !empty($option_text) ) + { + $poll_options[$option_id] = htmlspecialchars(trim(stripslashes($option_text))); + } + } + } + + if ( isset($poll_add) && !empty($HTTP_POST_VARS['add_poll_option_text']) ) + { + $poll_options[] = htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['add_poll_option_text']))); + } + + if ( $mode == 'newtopic' || $mode == 'reply') + { + $user_sig = ( $userdata['user_sig'] != '' && $board_config['allow_sig'] ) ? $userdata['user_sig'] : ''; + } + else if ( $mode == 'editpost' ) + { + $user_sig = ( $post_info['user_sig'] != '' && $board_config['allow_sig'] ) ? $post_info['user_sig'] : ''; + } + + if( $preview ) + { + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + $bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : ''; + $preview_message = stripslashes(prepare_message(addslashes(unprepare_message($message)), $html_on, $bbcode_on, $smilies_on, $bbcode_uid)); + $preview_subject = $subject; + $preview_username = $username; + + // + // Finalise processing as per viewtopic + // + if( !$html_on ) + { + if( $user_sig != '' || !$userdata['user_allowhtml'] ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $user_sig); + } + } + + if( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] ) + { + $user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']); + } + + if( $bbcode_on ) + { + $preview_message = bbencode_second_pass($preview_message, $bbcode_uid); + } + + if( !empty($orig_word) ) + { + $preview_username = ( !empty($username) ) ? preg_replace($orig_word, $replacement_word, $preview_username) : ''; + $preview_subject = ( !empty($subject) ) ? preg_replace($orig_word, $replacement_word, $preview_subject) : ''; + $preview_message = ( !empty($preview_message) ) ? preg_replace($orig_word, $replacement_word, $preview_message) : ''; + } + + if( $user_sig != '' ) + { + $user_sig = make_clickable($user_sig); + } + $preview_message = make_clickable($preview_message); + + if( $smilies_on ) + { + if( $userdata['user_allowsmile'] && $user_sig != '' ) + { + $user_sig = smilies_pass($user_sig); + } + + $preview_message = smilies_pass($preview_message); + } + + if( $attach_sig && $user_sig != '' ) + { + $preview_message = $preview_message . '

    _________________
    ' . $user_sig; + } + + $preview_message = str_replace("\n", '
    ', $preview_message); + + $template->set_filenames(array( + 'preview' => 'posting_preview.tpl') + ); + + $template->assign_vars(array( + 'TOPIC_TITLE' => $preview_subject, + 'POST_SUBJECT' => $preview_subject, + 'POSTER_NAME' => $preview_username, + 'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']), + 'MESSAGE' => $preview_message, + + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_PREVIEW' => $lang['Preview'], + 'L_POSTED' => $lang['Posted'], + 'L_POST' => $lang['Post']) + ); + $template->assign_var_from_handle('POST_PREVIEW_BOX', 'preview'); + } + else if( $error_msg != '' ) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } +} +else +{ + // + // User default entry point + // + if ( $mode == 'newtopic' ) + { + $user_sig = ( $userdata['user_sig'] != '' ) ? $userdata['user_sig'] : ''; + + $username = ($userdata['session_logged_in']) ? $userdata['username'] : ''; + $poll_title = ''; + $poll_length = ''; + $subject = ''; + $message = ''; + } + else if ( $mode == 'reply' ) + { + $user_sig = ( $userdata['user_sig'] != '' ) ? $userdata['user_sig'] : ''; + + $username = ( $userdata['session_logged_in'] ) ? $userdata['username'] : ''; + $subject = ''; + $message = ''; + + } + else if ( $mode == 'quote' || $mode == 'editpost' ) + { + $subject = ( $post_data['first_post'] ) ? $post_info['topic_title'] : $post_info['post_subject']; + $message = $post_info['post_text']; + + if ( $mode == 'editpost' ) + { + $attach_sig = ( $post_info['enable_sig'] && $post_info['user_sig'] != '' ) ? TRUE : 0; + $user_sig = $post_info['user_sig']; + + $html_on = ( $post_info['enable_html'] ) ? true : false; + $bbcode_on = ( $post_info['enable_bbcode'] ) ? true : false; + $smilies_on = ( $post_info['enable_smilies'] ) ? true : false; + } + else + { + $attach_sig = ( $userdata['user_attachsig'] ) ? TRUE : 0; + $user_sig = $userdata['user_sig']; + } + + if ( $post_info['bbcode_uid'] != '' ) + { + $message = preg_replace('/\:(([a-z0-9]:)?)' . $post_info['bbcode_uid'] . '/s', '', $message); + } + + $message = str_replace('<', '<', $message); + $message = str_replace('>', '>', $message); + $message = str_replace('
    ', "\n", $message); + + if ( $mode == 'quote' ) + { + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replace_word); + + $msg_date = create_date($board_config['default_dateformat'], $postrow['post_time'], $board_config['board_timezone']); + + // Use trim to get rid of spaces placed there by MS-SQL 2000 + $quote_username = ( trim($post_info['post_username']) != '' ) ? $post_info['post_username'] : $post_info['username']; + $message = '[quote="' . $quote_username . '"]' . $message . '[/quote]'; + + if ( !empty($orig_word) ) + { + $subject = ( !empty($subject) ) ? preg_replace($orig_word, $replace_word, $subject) : ''; + $message = ( !empty($message) ) ? preg_replace($orig_word, $replace_word, $message) : ''; + } + + if ( !preg_match('/^Re:/', $subject) && strlen($subject) > 0 ) + { + $subject = 'Re: ' . $subject; + } + + $mode = 'reply'; + } + else + { + $username = ( $post_info['user_id'] == ANONYMOUS && !empty($post_info['post_username']) ) ? $post_info['post_username'] : ''; + } + } +} + +// +// Signature toggle selection +// +if( $user_sig != '' ) +{ + $template->assign_block_vars('switch_signature_checkbox', array()); +} + +// +// HTML toggle selection +// +if ( $board_config['allow_html'] ) +{ + $html_status = $lang['HTML_is_ON']; + $template->assign_block_vars('switch_html_checkbox', array()); +} +else +{ + $html_status = $lang['HTML_is_OFF']; +} + +// +// BBCode toggle selection +// +if ( $board_config['allow_bbcode'] ) +{ + $bbcode_status = $lang['BBCode_is_ON']; + $template->assign_block_vars('switch_bbcode_checkbox', array()); +} +else +{ + $bbcode_status = $lang['BBCode_is_OFF']; +} + +// +// Smilies toggle selection +// +if ( $board_config['allow_smilies'] ) +{ + $smilies_status = $lang['Smilies_are_ON']; + $template->assign_block_vars('switch_smilies_checkbox', array()); +} +else +{ + $smilies_status = $lang['Smilies_are_OFF']; +} + +if( !$userdata['session_logged_in'] || ( $mode == 'editpost' && $post_info['poster_id'] == ANONYMOUS ) ) +{ + $template->assign_block_vars('switch_username_select', array()); +} + +// +// Notify checkbox - only show if user is logged in +// +if ( $userdata['session_logged_in'] && $is_auth['auth_read'] ) +{ + if ( $mode != 'editpost' || ( $mode == 'editpost' && $post_info['poster_id'] != ANONYMOUS ) ) + { + $template->assign_block_vars('switch_notify_checkbox', array()); + } +} + +// +// Delete selection +// +if ( $mode == 'editpost' && ( ( $is_auth['auth_delete'] && $post_data['last_post'] && ( !$post_data['has_poll'] || $post_data['edit_poll'] ) ) || $is_auth['auth_mod'] ) ) +{ + $template->assign_block_vars('switch_delete_checkbox', array()); +} + +// +// Topic type selection +// +$topic_type_toggle = ''; +if ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['first_post'] ) ) +{ + $template->assign_block_vars('switch_type_toggle', array()); + + if( $is_auth['auth_sticky'] ) + { + $topic_type_toggle .= ' ' . $lang['Post_Normal'] . '  ' . $topic_type_toggle; + } +} + +$hidden_form_fields = ''; + +switch( $mode ) +{ + case 'newtopic': + $page_title = $lang['Post_a_new_topic']; + $hidden_form_fields .= ''; + break; + + case 'reply': + $page_title = $lang['Post_a_reply']; + $hidden_form_fields .= ''; + break; + + case 'editpost': + $page_title = $lang['Edit_Post']; + $hidden_form_fields .= ''; + break; +} + +// Generate smilies listing for page output +generate_smilies('inline', PAGE_POSTING); + +// +// Include page header +// +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'posting_body.tpl', + 'pollbody' => 'posting_poll_body.tpl', + 'reviewbody' => 'posting_topic_review.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'FORUM_NAME' => $forum_name, + 'L_POST_A' => $page_title, + 'L_POST_SUBJECT' => $lang['Post_subject'], + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id")) +); + +// +// This enables the forum/topic title to be output for posting +// but not for privmsg (where it makes no sense) +// +$template->assign_block_vars('switch_not_privmsg', array()); + +// +// Output the data to the template +// +$template->assign_vars(array( + 'USERNAME' => $username, + 'SUBJECT' => $subject, + 'MESSAGE' => $message, + 'HTML_STATUS' => $html_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'SMILIES_STATUS' => $smilies_status, + + 'L_SUBJECT' => $lang['Subject'], + 'L_MESSAGE_BODY' => $lang['Message_body'], + 'L_OPTIONS' => $lang['Options'], + 'L_PREVIEW' => $lang['Preview'], + 'L_SPELLCHECK' => $lang['Spellcheck'], + 'L_SUBMIT' => $lang['Submit'], + 'L_CANCEL' => $lang['Cancel'], + 'L_CONFIRM_DELETE' => $lang['Confirm_delete'], + 'L_DISABLE_HTML' => $lang['Disable_HTML_post'], + 'L_DISABLE_BBCODE' => $lang['Disable_BBCode_post'], + 'L_DISABLE_SMILIES' => $lang['Disable_Smilies_post'], + 'L_ATTACH_SIGNATURE' => $lang['Attach_signature'], + 'L_NOTIFY_ON_REPLY' => $lang['Notify'], + 'L_DELETE_POST' => $lang['Delete_post'], + + 'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], + 'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], + 'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], + 'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], + 'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], + 'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], + 'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], + 'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], + 'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], + 'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], + 'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], + 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], + 'L_EMPTY_MESSAGE' => $lang['Empty_message'], + + 'L_FONT_COLOR' => $lang['Font_color'], + 'L_COLOR_DEFAULT' => $lang['color_default'], + 'L_COLOR_DARK_RED' => $lang['color_dark_red'], + 'L_COLOR_RED' => $lang['color_red'], + 'L_COLOR_ORANGE' => $lang['color_orange'], + 'L_COLOR_BROWN' => $lang['color_brown'], + 'L_COLOR_YELLOW' => $lang['color_yellow'], + 'L_COLOR_GREEN' => $lang['color_green'], + 'L_COLOR_OLIVE' => $lang['color_olive'], + 'L_COLOR_CYAN' => $lang['color_cyan'], + 'L_COLOR_BLUE' => $lang['color_blue'], + 'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], + 'L_COLOR_INDIGO' => $lang['color_indigo'], + 'L_COLOR_VIOLET' => $lang['color_violet'], + 'L_COLOR_WHITE' => $lang['color_white'], + 'L_COLOR_BLACK' => $lang['color_black'], + + 'L_FONT_SIZE' => $lang['Font_size'], + 'L_FONT_TINY' => $lang['font_tiny'], + 'L_FONT_SMALL' => $lang['font_small'], + 'L_FONT_NORMAL' => $lang['font_normal'], + 'L_FONT_LARGE' => $lang['font_large'], + 'L_FONT_HUGE' => $lang['font_huge'], + + 'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], + 'L_STYLES_TIP' => $lang['Styles_tip'], + + 'U_VIEWTOPIC' => ( $mode == 'reply' ) ? append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postorder=desc") : '', + 'U_REVIEW_TOPIC' => ( $mode == 'reply' ) ? append_sid("posting.$phpEx?mode=topicreview&" . POST_TOPIC_URL . "=$topic_id") : '', + + 'S_HTML_CHECKED' => ( !$html_on ) ? 'checked="checked"' : '', + 'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? 'checked="checked"' : '', + 'S_SMILIES_CHECKED' => ( !$smilies_on ) ? 'checked="checked"' : '', + 'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? 'checked="checked"' : '', + 'S_NOTIFY_CHECKED' => ( $notify_user ) ? 'checked="checked"' : '', + 'S_TYPE_TOGGLE' => $topic_type_toggle, + 'S_TOPIC_ID' => $topic_id, + 'S_POST_ACTION' => append_sid("posting.$phpEx"), + 'S_HIDDEN_FORM_FIELDS' => $hidden_form_fields) +); + +// +// Poll entry switch/output +// +if( ( $mode == 'newtopic' || ( $mode == 'editpost' && $post_data['edit_poll']) ) && $is_auth['auth_pollcreate'] ) +{ + $template->assign_vars(array( + 'L_ADD_A_POLL' => $lang['Add_poll'], + 'L_ADD_POLL_EXPLAIN' => $lang['Add_poll_explain'], + 'L_POLL_QUESTION' => $lang['Poll_question'], + 'L_POLL_OPTION' => $lang['Poll_option'], + 'L_ADD_OPTION' => $lang['Add_option'], + 'L_UPDATE_OPTION' => $lang['Update'], + 'L_DELETE_OPTION' => $lang['Delete'], + 'L_POLL_LENGTH' => $lang['Poll_for'], + 'L_DAYS' => $lang['Days'], + 'L_POLL_LENGTH_EXPLAIN' => $lang['Poll_for_explain'], + 'L_POLL_DELETE' => $lang['Delete_poll'], + + 'POLL_TITLE' => $poll_title, + 'POLL_LENGTH' => $poll_length) + ); + + if( $mode == 'editpost' && $post_data['edit_poll'] && $post_data['has_poll']) + { + $template->assign_block_vars('switch_poll_delete_toggle', array()); + } + + if( !empty($poll_options) ) + { + while( list($option_id, $option_text) = each($poll_options) ) + { + $template->assign_block_vars('poll_option_rows', array( + 'POLL_OPTION' => str_replace('"', '"', $option_text), + + 'S_POLL_OPTION_NUM' => $option_id) + ); + } + } + + $template->assign_var_from_handle('POLLBOX', 'pollbody'); +} + +// +// Topic review +// +if( $mode == 'reply' && $is_auth['auth_read'] ) +{ + require($phpbb_root_path . 'includes/topic_review.'.$phpEx); + topic_review($topic_id, true); + + $template->assign_block_vars('switch_inline_mode', array()); + $template->assign_var_from_handle('TOPIC_REVIEW_BOX', 'reviewbody'); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> diff --git a/phpBB2_old/privmsg.php b/phpBB2_old/privmsg.php new file mode 100644 index 0000000..ac08049 --- /dev/null +++ b/phpBB2_old/privmsg.php @@ -0,0 +1,2156 @@ +#'); +$html_entities_replace = array('&', '<', '>'); + +// +// Parameters +// +$submit = ( isset($HTTP_POST_VARS['post']) ) ? TRUE : 0; +$submit_search = ( isset($HTTP_POST_VARS['usersubmit']) ) ? TRUE : 0; +$submit_msgdays = ( isset($HTTP_POST_VARS['submit_msgdays']) ) ? TRUE : 0; +$cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : 0; +$preview = ( isset($HTTP_POST_VARS['preview']) ) ? TRUE : 0; +$confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : 0; +$delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : 0; +$delete_all = ( isset($HTTP_POST_VARS['deleteall']) ) ? TRUE : 0; +$save = ( isset($HTTP_POST_VARS['save']) ) ? TRUE : 0; + +$refresh = $preview || $submit_search; + +$mark_list = ( !empty($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : 0; + +if ( isset($HTTP_POST_VARS['folder']) || isset($HTTP_GET_VARS['folder']) ) +{ + $folder = ( isset($HTTP_POST_VARS['folder']) ) ? $HTTP_POST_VARS['folder'] : $HTTP_GET_VARS['folder']; + $folder = htmlspecialchars($folder); + + if ( $folder != 'inbox' && $folder != 'outbox' && $folder != 'sentbox' && $folder != 'savebox' ) + { + $folder = 'inbox'; + } +} +else +{ + $folder = 'inbox'; +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, PAGE_PRIVMSGS); +init_userprefs($userdata); +// +// End session management +// + +// +// Cancel +// +if ( $cancel ) +{ + redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); +} + +// +// Var definitions +// +if ( !empty($HTTP_POST_VARS['mode']) || !empty($HTTP_GET_VARS['mode']) ) +{ + $mode = ( !empty($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; + $mode = htmlspecialchars($mode); +} +else +{ + $mode = ''; +} + +$start = ( !empty($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0; + +if ( isset($HTTP_POST_VARS[POST_POST_URL]) || isset($HTTP_GET_VARS[POST_POST_URL]) ) +{ + $privmsg_id = ( isset($HTTP_POST_VARS[POST_POST_URL]) ) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]); +} +else +{ + $privmsg_id = ''; +} + +$error = FALSE; + +// +// Define the box image links +// +$inbox_img = ( $folder != 'inbox' || $mode != '' ) ? '' . $lang['Inbox'] . '' : '' . $lang['Inbox'] . ''; +$inbox_url = ( $folder != 'inbox' || $mode != '' ) ? '' . $lang['Inbox'] . '' : $lang['Inbox']; + +$outbox_img = ( $folder != 'outbox' || $mode != '' ) ? '' . $lang['Outbox'] . '' : '' . $lang['Outbox'] . ''; +$outbox_url = ( $folder != 'outbox' || $mode != '' ) ? '' . $lang['Outbox'] . '' : $lang['Outbox']; + +$sentbox_img = ( $folder != 'sentbox' || $mode != '' ) ? '' . $lang['Sentbox'] . '' : '' . $lang['Sentbox'] . ''; +$sentbox_url = ( $folder != 'sentbox' || $mode != '' ) ? '' . $lang['Sentbox'] . '' : $lang['Sentbox']; + +$savebox_img = ( $folder != 'savebox' || $mode != '' ) ? '' . $lang['Savebox'] . '' : '' . $lang['Savebox'] . ''; +$savebox_url = ( $folder != 'savebox' || $mode != '' ) ? '' . $lang['Savebox'] . '' : $lang['Savebox']; + +// ---------- +// Start main +// +if ( $mode == 'newpm' ) +{ + $gen_simple_header = TRUE; + + $page_title = $lang['Private_Messaging']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'body' => 'privmsgs_popup.tpl') + ); + + if ( $userdata['session_logged_in'] ) + { + if ( $userdata['user_new_privmsg'] ) + { + $l_new_message = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['You_new_pm'] : $lang['You_new_pms']; + } + else + { + $l_new_message = $lang['You_no_new_pm']; + } + + $l_new_message .= '

    ' . sprintf($lang['Click_view_privmsg'], '', ''); + } + else + { + $l_new_message = $lang['Login_check_pm']; + } + + $template->assign_vars(array( + 'L_CLOSE_WINDOW' => $lang['Close_window'], + 'L_MESSAGE' => $l_new_message) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +} +else if ( $mode == 'read' ) +{ + if ( !empty($HTTP_GET_VARS[POST_POST_URL]) ) + { + $privmsgs_id = intval($HTTP_GET_VARS[POST_POST_URL]); + } + else + { + message_die(GENERAL_ERROR, $lang['No_post_id']); + } + + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=$folder&mode=$mode&" . POST_POST_URL . "=$privmsgs_id", true)); + } + + // + // SQL to pull appropriate message, prevents nosey people + // reading other peoples messages ... hopefully! + // + switch( $folder ) + { + case 'inbox': + $l_box_name = $lang['Inbox']; + $pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + case 'outbox': + $l_box_name = $lang['Outbox']; + $pm_sql_user = "AND pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) "; + break; + case 'sentbox': + $l_box_name = $lang['Sentbox']; + $pm_sql_user = "AND pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + case 'savebox': + $l_box_name = $lang['Savebox']; + $pm_sql_user = "AND ( ( pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) + )"; + break; + default: + message_die(GENERAL_ERROR, $lang['No_such_folder']); + break; + } + + // + // Major query obtains the message ... + // + $sql = "SELECT u.username AS username_1, u.user_id AS user_id_1, u2.username AS username_2, u2.user_id AS user_id_2, u.user_sig_bbcode_uid, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_avatar, pm.*, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text + FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u, " . USERS_TABLE . " u2 + WHERE pm.privmsgs_id = $privmsgs_id + AND pmt.privmsgs_text_id = pm.privmsgs_id + $pm_sql_user + AND u.user_id = pm.privmsgs_from_userid + AND u2.user_id = pm.privmsgs_to_userid"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not query private message post information', '', __LINE__, __FILE__, $sql); + } + + // + // Did the query return any data? + // + if ( !($privmsg = $db->sql_fetchrow($result)) ) + { + redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); + } + + $privmsg_id = $privmsg['privmsgs_id']; + + // + // Is this a new message in the inbox? If it is then save + // a copy in the posters sent box + // + if (($privmsg['privmsgs_type'] == PRIVMSGS_NEW_MAIL || $privmsg['privmsgs_type'] == PRIVMSGS_UNREAD_MAIL) && $folder == 'inbox') + { + // Update appropriate counter + switch ($privmsg['privmsgs_type']) + { + case PRIVMSGS_NEW_MAIL: + $sql = "user_new_privmsg = user_new_privmsg - 1"; + break; + case PRIVMSGS_UNREAD_MAIL: + $sql = "user_unread_privmsg = user_unread_privmsg - 1"; + break; + } + + $sql = "UPDATE " . USERS_TABLE . " + SET $sql + WHERE user_id = " . $userdata['user_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message read status for user', '', __LINE__, __FILE__, $sql); + } + + $sql = "UPDATE " . PRIVMSGS_TABLE . " + SET privmsgs_type = " . PRIVMSGS_READ_MAIL . " + WHERE privmsgs_id = " . $privmsg['privmsgs_id']; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message read status', '', __LINE__, __FILE__, $sql); + } + + // Check to see if the poster has a 'full' sent box + $sql = "SELECT COUNT(privmsgs_id) AS sent_items, MIN(privmsgs_date) AS oldest_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " + AND privmsgs_from_userid = " . $privmsg['privmsgs_from_userid']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain sent message info for sendee', '', __LINE__, __FILE__, $sql); + } + + $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; + + if ( $sent_info = $db->sql_fetchrow($result) ) + { + if ( $sent_info['sent_items'] >= $board_config['max_sentbox_privmsgs'] ) + { + $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " + AND privmsgs_date = " . $sent_info['oldest_post_time'] . " + AND privmsgs_from_userid = " . $privmsg['privmsgs_from_userid']; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not find oldest privmsgs', '', __LINE__, __FILE__, $sql); + } + $old_privmsgs_id = $db->sql_fetchrow($result); + $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (sent)', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (sent)', '', __LINE__, __FILE__, $sql); + } + } + } + + // + // This makes a copy of the post and stores it as a SENT message from the sendee. Perhaps + // not the most DB friendly way but a lot easier to manage, besides the admin will be able to + // set limits on numbers of storable posts for users ... hopefully! + // + $sql = "INSERT $sql_priority INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig) + VALUES (" . PRIVMSGS_SENT_MAIL . ", '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_subject'])) . "', " . $privmsg['privmsgs_from_userid'] . ", " . $privmsg['privmsgs_to_userid'] . ", " . $privmsg['privmsgs_date'] . ", '" . $privmsg['privmsgs_ip'] . "', " . $privmsg['privmsgs_enable_html'] . ", " . $privmsg['privmsgs_enable_bbcode'] . ", " . $privmsg['privmsgs_enable_smilies'] . ", " . $privmsg['privmsgs_attach_sig'] . ")"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert private message sent info', '', __LINE__, __FILE__, $sql); + } + + $privmsg_sent_id = $db->sql_nextid(); + + $sql = "INSERT $sql_priority INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text) + VALUES ($privmsg_sent_id, '" . $privmsg['privmsgs_bbcode_uid'] . "', '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_text'])) . "')"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not insert private message sent text', '', __LINE__, __FILE__, $sql); + } + } + + // + // Pick a folder, any folder, so long as it's one below ... + // + $post_urls = array( + 'post' => append_sid("privmsg.$phpEx?mode=post"), + 'reply' => append_sid("privmsg.$phpEx?mode=reply&" . POST_POST_URL . "=$privmsg_id"), + 'quote' => append_sid("privmsg.$phpEx?mode=quote&" . POST_POST_URL . "=$privmsg_id"), + 'edit' => append_sid("privmsg.$phpEx?mode=edit&" . POST_POST_URL . "=$privmsg_id") + ); + $post_icons = array( + 'post_img' => '' . $lang['Post_new_pm'] . '', + 'post' => '' . $lang['Post_new_pm'] . '', + 'reply_img' => '' . $lang['Post_reply_pm'] . '', + 'reply' => '' . $lang['Post_reply_pm'] . '', + 'quote_img' => '' . $lang['Post_quote_pm'] . '', + 'quote' => '' . $lang['Post_quote_pm'] . '', + 'edit_img' => '' . $lang['Edit_pm'] . '', + 'edit' => '' . $lang['Edit_pm'] . '' + ); + + if ( $folder == 'inbox' ) + { + $post_img = $post_icons['post_img']; + $reply_img = $post_icons['reply_img']; + $quote_img = $post_icons['quote_img']; + $edit_img = ''; + $post = $post_icons['post']; + $reply = $post_icons['reply']; + $quote = $post_icons['quote']; + $edit = ''; + $l_box_name = $lang['Inbox']; + } + else if ( $folder == 'outbox' ) + { + $post_img = $post_icons['post_img']; + $reply_img = ''; + $quote_img = ''; + $edit_img = $post_icons['edit_img']; + $post = $post_icons['post']; + $reply = ''; + $quote = ''; + $edit = $post_icons['edit']; + $l_box_name = $lang['Outbox']; + } + else if ( $folder == 'savebox' ) + { + if ( $privmsg['privmsgs_type'] == PRIVMSGS_SAVED_IN_MAIL ) + { + $post_img = $post_icons['post_img']; + $reply_img = $post_icons['reply_img']; + $quote_img = $post_icons['quote_img']; + $edit_img = ''; + $post = $post_icons['post']; + $reply = $post_icons['reply']; + $quote = $post_icons['quote']; + $edit = ''; + } + else + { + $post_img = $post_icons['post_img']; + $reply_img = ''; + $quote_img = ''; + $edit_img = ''; + $post = $post_icons['post']; + $reply = ''; + $quote = ''; + $edit = ''; + } + $l_box_name = $lang['Saved']; + } + else if ( $folder == 'sentbox' ) + { + $post_img = $post_icons['post_img']; + $reply_img = ''; + $quote_img = ''; + $edit_img = ''; + $post = $post_icons['post']; + $reply = ''; + $quote = ''; + $edit = ''; + $l_box_name = $lang['Sent']; + } + + $s_hidden_fields = ''; + + $page_title = $lang['Read_pm']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + // + // Load templates + // + $template->set_filenames(array( + 'body' => 'privmsgs_read_body.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + $template->assign_vars(array( + 'INBOX_IMG' => $inbox_img, + 'SENTBOX_IMG' => $sentbox_img, + 'OUTBOX_IMG' => $outbox_img, + 'SAVEBOX_IMG' => $savebox_img, + 'INBOX' => $inbox_url, + + 'POST_PM_IMG' => $post_img, + 'REPLY_PM_IMG' => $reply_img, + 'EDIT_PM_IMG' => $edit_img, + 'QUOTE_PM_IMG' => $quote_img, + 'POST_PM' => $post, + 'REPLY_PM' => $reply, + 'EDIT_PM' => $edit, + 'QUOTE_PM' => $quote, + + 'SENTBOX' => $sentbox_url, + 'OUTBOX' => $outbox_url, + 'SAVEBOX' => $savebox_url, + + 'BOX_NAME' => $l_box_name, + + 'L_MESSAGE' => $lang['Message'], + 'L_INBOX' => $lang['Inbox'], + 'L_OUTBOX' => $lang['Outbox'], + 'L_SENTBOX' => $lang['Sent'], + 'L_SAVEBOX' => $lang['Saved'], + 'L_FLAG' => $lang['Flag'], + 'L_SUBJECT' => $lang['Subject'], + 'L_POSTED' => $lang['Posted'], + 'L_DATE' => $lang['Date'], + 'L_FROM' => $lang['From'], + 'L_TO' => $lang['To'], + 'L_SAVE_MSG' => $lang['Save_message'], + 'L_DELETE_MSG' => $lang['Delete_message'], + + 'S_PRIVMSGS_ACTION' => append_sid("privmsg.$phpEx?folder=$folder"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $username_from = $privmsg['username_1']; + $user_id_from = $privmsg['user_id_1']; + $username_to = $privmsg['username_2']; + $user_id_to = $privmsg['user_id_2']; + + $post_date = create_date($board_config['default_dateformat'], $privmsg['privmsgs_date'], $board_config['board_timezone']); + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id_from); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id_from"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + if ( !empty($privmsg['user_viewemail']) || $userdata['user_level'] == ADMIN ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $user_id_from) : 'mailto:' . $privmsg['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ''; + $email = ''; + } + + $www_img = ( $privmsg['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $privmsg['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($privmsg['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $privmsg['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $privmsg['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id_from"); + $msn_img = ( $privmsg['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $privmsg['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $privmsg['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $privmsg['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username_from) . "&showresults=posts"); + $search_img = '' . $lang['Search_user_posts'] . ''; + $search = '' . $lang['Search_user_posts'] . ''; + + // + // Processing of post + // + $post_subject = $privmsg['privmsgs_subject']; + + $private_message = $privmsg['privmsgs_text']; + $bbcode_uid = $privmsg['privmsgs_bbcode_uid']; + + if ( $board_config['allow_sig'] ) + { + $user_sig = ( $privmsg['privmsgs_from_userid'] == $userdata['user_id'] ) ? $userdata['user_sig'] : $privmsg['user_sig']; + } + else + { + $user_sig = ''; + } + + $user_sig_bbcode_uid = ( $privmsg['privmsgs_from_userid'] == $userdata['user_id'] ) ? $userdata['user_sig_bbcode_uid'] : $privmsg['user_sig_bbcode_uid']; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] ) + { + if ( $user_sig != '' && $privmsg['privmsgs_enable_sig'] && $userdata['user_allowhtml'] ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + + if ( $privmsg['privmsgs_enable_html'] ) + { + $private_message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $private_message); + } + } + + if ( $user_sig != '' && $privmsg['privmsgs_attach_sig'] && $user_sig_bbcode_uid != '' ) + { + $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig); + } + + if ( $bbcode_uid != '' ) + { + $private_message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($private_message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $private_message); + } + + $private_message = make_clickable($private_message); + + if ( $privmsg['privmsgs_attach_sig'] && $user_sig != '' ) + { + $private_message .= '

    _________________
    ' . make_clickable($user_sig); + } + + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + if ( count($orig_word) ) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + $private_message = preg_replace($orig_word, $replacement_word, $private_message); + } + + if ( $board_config['allow_smilies'] && $privmsg['privmsgs_enable_smilies'] ) + { + $private_message = smilies_pass($private_message); + } + + $private_message = str_replace("\n", '
    ', $private_message); + + // + // Dump it to the templating engine + // + $template->assign_vars(array( + 'MESSAGE_TO' => $username_to, + 'MESSAGE_FROM' => $username_from, + 'RANK_IMAGE' => $rank_image, + 'POSTER_JOINED' => $poster_joined, + 'POSTER_POSTS' => $poster_posts, + 'POSTER_FROM' => $poster_from, + 'POSTER_AVATAR' => $poster_avatar, + 'POST_SUBJECT' => $post_subject, + 'POST_DATE' => $post_date, + 'MESSAGE' => $private_message, + + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +} +else if ( ( $delete && $mark_list ) || $delete_all ) +{ + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true)); + } + + if ( isset($mark_list) && !is_array($mark_list) ) + { + // Set to empty array instead of '0' if nothing is selected. + $mark_list = array(); + } + + if ( !$confirm ) + { + $s_hidden_fields = ''; + $s_hidden_fields .= ( isset($HTTP_POST_VARS['delete']) ) ? '' : ''; + + for($i = 0; $i < count($mark_list); $i++) + { + $s_hidden_fields .= ''; + } + + // + // Output confirmation page + // + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + $template->set_filenames(array( + 'confirm_body' => 'confirm_body.tpl') + ); + $template->assign_vars(array( + 'MESSAGE_TITLE' => $lang['Information'], + 'MESSAGE_TEXT' => ( count($mark_list) == 1 ) ? $lang['Confirm_delete_pm'] : $lang['Confirm_delete_pms'], + + 'L_YES' => $lang['Yes'], + 'L_NO' => $lang['No'], + + 'S_CONFIRM_ACTION' => append_sid("privmsg.$phpEx?folder=$folder"), + 'S_HIDDEN_FIELDS' => $s_hidden_fields) + ); + + $template->pparse('confirm_body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + + } + else if ( $confirm ) + { + if ( $delete_all ) + { + switch($folder) + { + case 'inbox': + $delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND ( + privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'outbox': + $delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'sentbox': + $delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + + case 'savebox': + $delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) + OR ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )"; + break; + } + + $sql = "SELECT privmsgs_id + FROM " . PRIVMSGS_TABLE . " + WHERE $delete_type"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain id list to delete all messages', '', __LINE__, __FILE__, $sql); + } + + while ( $row = $db->sql_fetchrow($result) ) + { + $mark_list[] = $row['privmsgs_id']; + } + + unset($delete_type); + } + + if ( count($mark_list) ) + { + $delete_sql_id = ''; + for ($i = 0; $i < sizeof($mark_list); $i++) + { + $delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]); + } + + if ($folder == 'inbox' || $folder == 'outbox') + { + switch ($folder) + { + case 'inbox': + $sql = "privmsgs_to_userid = " . $userdata['user_id']; + break; + case 'outbox': + $sql = "privmsgs_from_userid = " . $userdata['user_id']; + break; + } + + // Get information relevant to new or unread mail + // so we can adjust users counters appropriately + $sql = "SELECT privmsgs_to_userid, privmsgs_type + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id) + AND $sql + AND privmsgs_type IN (" . PRIVMSGS_NEW_MAIL . ", " . PRIVMSGS_UNREAD_MAIL . ")"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user id list for outbox messages', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result)) + { + $update_users = $update_list = array(); + + do + { + switch ($row['privmsgs_type']) + { + case PRIVMSGS_NEW_MAIL: + $update_users['new'][$row['privmsgs_to_userid']]++; + break; + + case PRIVMSGS_UNREAD_MAIL: + $update_users['unread'][$row['privmsgs_to_userid']]++; + break; + } + } + while ($row = $db->sql_fetchrow($result)); + + if (sizeof($update_users)) + { + while (list($type, $users) = each($update_users)) + { + while (list($user_id, $dec) = each($users)) + { + $update_list[$type][$dec][] = $user_id; + } + } + unset($update_users); + + while (list($type, $dec_ary) = each($update_list)) + { + switch ($type) + { + case 'new': + $type = "user_new_privmsg"; + break; + + case 'unread': + $type = "user_unread_privmsg"; + break; + } + + while (list($dec, $user_ary) = each($dec_ary)) + { + $user_ids = implode(', ', $user_ary); + + $sql = "UPDATE " . USERS_TABLE . " + SET $type = $type - $dec + WHERE user_id IN ($user_ids)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user pm counters', '', __LINE__, __FILE__, $sql); + } + } + } + unset($update_list); + } + } + $db->sql_freeresult($result); + } + + // Delete the messages + $delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id IN ($delete_sql_id)"; + $delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($delete_sql_id) + AND "; + + switch( $folder ) + { + case 'inbox': + $delete_sql .= "privmsgs_to_userid = " . $userdata['user_id'] . " AND ( + privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'outbox': + $delete_sql .= "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( + privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'sentbox': + $delete_sql .= "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + + case 'savebox': + $delete_sql .= "( ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) + OR ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )"; + break; + } + + if ( !$db->sql_query($delete_sql, BEGIN_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql); + } + + if ( !$db->sql_query($delete_text_sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql); + } + } + } +} +else if ( $save && $mark_list && $folder != 'savebox' && $folder != 'outbox' ) +{ + if ( !$userdata['session_logged_in'] ) + { + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true)); + } + + if (sizeof($mark_list)) + { + // See if recipient is at their savebox limit + $sql = "SELECT COUNT(privmsgs_id) AS savebox_items, MIN(privmsgs_date) AS oldest_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") )"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain sent message info for sendee', '', __LINE__, __FILE__, $sql); + } + + $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; + + if ( $saved_info = $db->sql_fetchrow($result) ) + { + if ( $saved_info['savebox_items'] >= $board_config['max_savebox_privmsgs'] ) + { + $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " + WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") ) + AND privmsgs_date = " . $saved_info['oldest_post_time']; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not find oldest privmsgs (save)', '', __LINE__, __FILE__, $sql); + } + $old_privmsgs_id = $db->sql_fetchrow($result); + $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (save)', '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (save)', '', __LINE__, __FILE__, $sql); + } + } + } + + $saved_sql_id = ''; + for ($i = 0; $i < sizeof($mark_list); $i++) + { + $saved_sql_id .= (($saved_sql_id != '') ? ', ' : '') . intval($mark_list[$i]); + } + + // Process request + $saved_sql = "UPDATE " . PRIVMSGS_TABLE; + + // Decrement read/new counters if appropriate + if ($folder == 'inbox' || $folder == 'outbox') + { + switch ($folder) + { + case 'inbox': + $sql = "privmsgs_to_userid = " . $userdata['user_id']; + break; + case 'outbox': + $sql = "privmsgs_from_userid = " . $userdata['user_id']; + break; + } + + // Get information relevant to new or unread mail + // so we can adjust users counters appropriately + $sql = "SELECT privmsgs_to_userid, privmsgs_type + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id IN ($saved_sql_id) + AND $sql + AND privmsgs_type IN (" . PRIVMSGS_NEW_MAIL . ", " . PRIVMSGS_UNREAD_MAIL . ")"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain user id list for outbox messages', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result)) + { + $update_users = $update_list = array(); + + do + { + switch ($row['privmsgs_type']) + { + case PRIVMSGS_NEW_MAIL: + $update_users['new'][$row['privmsgs_to_userid']]++; + break; + + case PRIVMSGS_UNREAD_MAIL: + $update_users['unread'][$row['privmsgs_to_userid']]++; + break; + } + } + while ($row = $db->sql_fetchrow($result)); + + if (sizeof($update_users)) + { + while (list($type, $users) = each($update_users)) + { + while (list($user_id, $dec) = each($users)) + { + $update_list[$type][$dec][] = $user_id; + } + } + unset($update_users); + + while (list($type, $dec_ary) = each($update_list)) + { + switch ($type) + { + case 'new': + $type = "user_new_privmsg"; + break; + + case 'unread': + $type = "user_unread_privmsg"; + break; + } + + while (list($dec, $user_ary) = each($dec_ary)) + { + $user_ids = implode(', ', $user_ary); + + $sql = "UPDATE " . USERS_TABLE . " + SET $type = $type - $dec + WHERE user_id IN ($user_ids)"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update user pm counters', '', __LINE__, __FILE__, $sql); + } + } + } + unset($update_list); + } + } + $db->sql_freeresult($result); + } + + switch ($folder) + { + case 'inbox': + $saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " + WHERE privmsgs_to_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . ")"; + break; + + case 'outbox': + $saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " + WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) "; + break; + + case 'sentbox': + $saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " + WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + } + + $saved_sql .= " AND privmsgs_id IN ($saved_sql_id)"; + + if ( !$db->sql_query($saved_sql) ) + { + message_die(GENERAL_ERROR, 'Could not save private messages', '', __LINE__, __FILE__, $saved_sql); + } + + redirect(append_sid("privmsg.$phpEx?folder=savebox", true)); + } +} +else if ( $submit || $refresh || $mode != '' ) +{ + if ( !$userdata['session_logged_in'] ) + { + $user_id = ( isset($HTTP_GET_VARS[POST_USERS_URL]) ) ? '&' . POST_USERS_URL . '=' . intval($HTTP_GET_VARS[POST_USERS_URL]) : ''; + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=$folder&mode=$mode" . $user_id, true)); + } + + // + // Toggles + // + if ( !$board_config['allow_html'] ) + { + $html_on = 0; + } + else + { + $html_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_html']) ) ? 0 : TRUE ) : $userdata['user_allowhtml']; + } + + if ( !$board_config['allow_bbcode'] ) + { + $bbcode_on = 0; + } + else + { + $bbcode_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_bbcode']) ) ? 0 : TRUE ) : $userdata['user_allowbbcode']; + } + + if ( !$board_config['allow_smilies'] ) + { + $smilies_on = 0; + } + else + { + $smilies_on = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['disable_smilies']) ) ? 0 : TRUE ) : $userdata['user_allowsmile']; + } + + $attach_sig = ( $submit || $refresh ) ? ( ( !empty($HTTP_POST_VARS['attach_sig']) ) ? TRUE : 0 ) : $userdata['user_attachsig']; + $user_sig = ( $userdata['user_sig'] != '' && $board_config['allow_sig'] ) ? $userdata['user_sig'] : ""; + + if ( $submit && $mode != 'edit' ) + { + // + // Flood control + // + $sql = "SELECT MAX(privmsgs_date) AS last_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_from_userid = " . $userdata['user_id']; + if ( $result = $db->sql_query($sql) ) + { + $db_row = $db->sql_fetchrow($result); + + $last_post_time = $db_row['last_post_time']; + $current_time = time(); + + if ( ( $current_time - $last_post_time ) < $board_config['flood_interval']) + { + message_die(GENERAL_MESSAGE, $lang['Flood_Error']); + } + } + // + // End Flood control + // + } + + if ( $submit ) + { + if ( !empty($HTTP_POST_VARS['username']) ) + { + $to_username = phpbb_clean_username($HTTP_POST_VARS['username']); + + $sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active + FROM " . USERS_TABLE . " + WHERE username = '" . str_replace("\'", "''", $to_username) . "' + AND user_id <> " . ANONYMOUS; + if ( !($result = $db->sql_query($sql)) ) + { + $error = TRUE; + $error_msg = $lang['No_such_user']; + } + + $to_userdata = $db->sql_fetchrow($result); + } + else + { + $error = TRUE; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['No_to_user']; + } + + $privmsg_subject = trim(strip_tags($HTTP_POST_VARS['subject'])); + if ( empty($privmsg_subject) ) + { + $error = TRUE; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['Empty_subject']; + } + + if ( !empty($HTTP_POST_VARS['message']) ) + { + if ( !$error ) + { + if ( $bbcode_on ) + { + $bbcode_uid = make_bbcode_uid(); + } + + $privmsg_message = prepare_message($HTTP_POST_VARS['message'], $html_on, $bbcode_on, $smilies_on, $bbcode_uid); + + } + } + else + { + $error = TRUE; + $error_msg .= ( ( !empty($error_msg) ) ? '
    ' : '' ) . $lang['Empty_message']; + } + } + + if ( $submit && !$error ) + { + // + // Has admin prevented user from sending PM's? + // + if ( !$userdata['user_allow_pm'] ) + { + $message = $lang['Cannot_send_privmsg']; + message_die(GENERAL_MESSAGE, $message); + } + + $msg_time = time(); + + if ( $mode != 'edit' ) + { + // + // See if recipient is at their inbox limit + // + $sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time + FROM " . PRIVMSGS_TABLE . " + WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) + AND privmsgs_to_userid = " . $to_userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_MESSAGE, $lang['No_such_user']); + } + + $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; + + if ( $inbox_info = $db->sql_fetchrow($result) ) + { + if ( $inbox_info['inbox_items'] >= $board_config['max_inbox_privmsgs'] ) + { + $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " + WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) + AND privmsgs_date = " . $inbox_info['oldest_post_time'] . " + AND privmsgs_to_userid = " . $to_userdata['user_id']; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not find oldest privmsgs (inbox)', '', __LINE__, __FILE__, $sql); + } + $old_privmsgs_id = $db->sql_fetchrow($result); + $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " + WHERE privmsgs_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (inbox)'.$sql, '', __LINE__, __FILE__, $sql); + } + + $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " + WHERE privmsgs_text_id = $old_privmsgs_id"; + if ( !$db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (inbox)', '', __LINE__, __FILE__, $sql); + } + } + } + + $sql_info = "INSERT INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig) + VALUES (" . PRIVMSGS_NEW_MAIL . ", '" . str_replace("\'", "''", $privmsg_subject) . "', " . $userdata['user_id'] . ", " . $to_userdata['user_id'] . ", $msg_time, '$user_ip', $html_on, $bbcode_on, $smilies_on, $attach_sig)"; + } + else + { + $sql_info = "UPDATE " . PRIVMSGS_TABLE . " + SET privmsgs_type = " . PRIVMSGS_NEW_MAIL . ", privmsgs_subject = '" . str_replace("\'", "''", $privmsg_subject) . "', privmsgs_from_userid = " . $userdata['user_id'] . ", privmsgs_to_userid = " . $to_userdata['user_id'] . ", privmsgs_date = $msg_time, privmsgs_ip = '$user_ip', privmsgs_enable_html = $html_on, privmsgs_enable_bbcode = $bbcode_on, privmsgs_enable_smilies = $smilies_on, privmsgs_attach_sig = $attach_sig + WHERE privmsgs_id = $privmsg_id"; + } + + if ( !($result = $db->sql_query($sql_info, BEGIN_TRANSACTION)) ) + { + message_die(GENERAL_ERROR, "Could not insert/update private message sent info.", "", __LINE__, __FILE__, $sql_info); + } + + if ( $mode != 'edit' ) + { + $privmsg_sent_id = $db->sql_nextid(); + + $sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text) + VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . str_replace("\'", "''", $privmsg_message) . "')"; + } + else + { + $sql = "UPDATE " . PRIVMSGS_TEXT_TABLE . " + SET privmsgs_text = '" . str_replace("\'", "''", $privmsg_message) . "', privmsgs_bbcode_uid = '$bbcode_uid' + WHERE privmsgs_text_id = $privmsg_id"; + } + + if ( !$db->sql_query($sql, END_TRANSACTION) ) + { + message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info); + } + + if ( $mode != 'edit' ) + { + // + // Add to the users new pm counter + // + $sql = "UPDATE " . USERS_TABLE . " + SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . " + WHERE user_id = " . $to_userdata['user_id']; + if ( !$status = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql); + } + + if ( $to_userdata['user_notify_pm'] && !empty($to_userdata['user_email']) && $to_userdata['user_active'] ) + { + $script_name = preg_replace('/^\/?(.*?)\/?$/', "\\1", trim($board_config['script_path'])); + $script_name = ( $script_name != '' ) ? $script_name . '/privmsg.'.$phpEx : 'privmsg.'.$phpEx; + $server_name = trim($board_config['server_name']); + $server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://'; + $server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + + include($phpbb_root_path . 'includes/emailer.'.$phpEx); + $emailer = new emailer($board_config['smtp_delivery']); + + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('privmsg_notify', $to_userdata['user_lang']); + $emailer->email_address($to_userdata['user_email']); + $emailer->set_subject($lang['Notification_subject']); + + $emailer->assign_vars(array( + 'USERNAME' => $to_username, + 'SITENAME' => $board_config['sitename'], + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
    ', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_INBOX' => $server_protocol . $server_name . $server_port . $script_name . '?folder=inbox') + ); + + $emailer->send(); + $emailer->reset(); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $msg = $lang['Message_sent'] . '

    ' . sprintf($lang['Click_return_inbox'], '', ' ') . '

    ' . sprintf($lang['Click_return_index'], '', ''); + + message_die(GENERAL_MESSAGE, $msg); + } + else if ( $preview || $refresh || $error ) + { + + // + // If we're previewing or refreshing then obtain the data + // passed to the script, process it a little, do some checks + // where neccessary, etc. + // + $to_username = (isset($HTTP_POST_VARS['username']) ) ? trim(htmlspecialchars(stripslashes($HTTP_POST_VARS['username']))) : ''; + + $privmsg_subject = ( isset($HTTP_POST_VARS['subject']) ) ? trim(strip_tags(stripslashes($HTTP_POST_VARS['subject']))) : ''; + $privmsg_message = ( isset($HTTP_POST_VARS['message']) ) ? trim($HTTP_POST_VARS['message']) : ''; + $privmsg_message = preg_replace('##si', '</textarea>', $privmsg_message); + + $user_sig = ( $board_config['allow_sig'] ) ? (($privmsg['privmsgs_type'] == PRIVMSGS_NEW_MAIL) ? $user_sig : $privmsg['user_sig']) : ''; + + $to_username = $privmsg['username']; + $to_userid = $privmsg['user_id']; + + } + else if ( $mode == 'reply' || $mode == 'quote' ) + { + + $sql = "SELECT pm.privmsgs_subject, pm.privmsgs_date, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text, u.username, u.user_id + FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u + WHERE pm.privmsgs_id = $privmsg_id + AND pmt.privmsgs_text_id = pm.privmsgs_id + AND pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_from_userid"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain private message for editing', '', __LINE__, __FILE__, $sql); + } + + if ( !($privmsg = $db->sql_fetchrow($result)) ) + { + redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); + } + + $privmsg_subject = ( ( !preg_match('/^Re:/', $privmsg['privmsgs_subject']) ) ? 'Re: ' : '' ) . $privmsg['privmsgs_subject']; + + $to_username = $privmsg['username']; + $to_userid = $privmsg['user_id']; + + if ( $mode == 'quote' ) + { + $privmsg_message = $privmsg['privmsgs_text']; + $privmsg_bbcode_uid = $privmsg['privmsgs_bbcode_uid']; + + $privmsg_message = preg_replace("/\:(([a-z0-9]:)?)$privmsg_bbcode_uid/si", '', $privmsg_message); + $privmsg_message = str_replace('
    ', "\n", $privmsg_message); + $privmsg_message = preg_replace('##si', '</textarea>', $privmsg_message); + + $msg_date = create_date($board_config['default_dateformat'], $privmsg['privmsgs_date'], $board_config['board_timezone']); + + $privmsg_message = '[quote="' . $to_username . '"]' . $privmsg_message . '[/quote]'; + + $mode = 'reply'; + } + } + } + + // + // Has admin prevented user from sending PM's? + // + if ( !$userdata['user_allow_pm'] && $mode != 'edit' ) + { + $message = $lang['Cannot_send_privmsg']; + message_die(GENERAL_MESSAGE, $message); + } + + // + // Start output, first preview, then errors then post form + // + $page_title = $lang['Send_private_message']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $preview && !$error ) + { + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + if ( $bbcode_on ) + { + $bbcode_uid = make_bbcode_uid(); + } + + $preview_message = stripslashes(prepare_message($privmsg_message, $html_on, $bbcode_on, $smilies_on, $bbcode_uid)); + $privmsg_message = stripslashes(preg_replace($html_entities_match, $html_entities_replace, $privmsg_message)); + + // + // Finalise processing as per viewtopic + // + if ( !$html_on ) + { + if ( $user_sig != '' || !$userdata['user_allowhtml'] ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + } + + if ( $attach_sig && $user_sig != '' && $userdata['user_sig_bbcode_uid'] ) + { + $user_sig = bbencode_second_pass($user_sig, $userdata['user_sig_bbcode_uid']); + } + + if ( $bbcode_on ) + { + $preview_message = bbencode_second_pass($preview_message, $bbcode_uid); + } + + if ( $attach_sig && $user_sig != '' ) + { + $preview_message = $preview_message . '

    _________________
    ' . $user_sig; + } + + if ( count($orig_word) ) + { + $preview_subject = preg_replace($orig_word, $replacement_word, $privmsg_subject); + $preview_message = preg_replace($orig_word, $replacement_word, $preview_message); + } + else + { + $preview_subject = $privmsg_subject; + } + + if ( $smilies_on ) + { + $preview_message = smilies_pass($preview_message); + } + + $preview_message = make_clickable($preview_message); + $preview_message = str_replace("\n", '
    ', $preview_message); + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + + if ( isset($privmsg_id) ) + { + $s_hidden_fields .= ''; + } + + $template->set_filenames(array( + "preview" => 'privmsgs_preview.tpl') + ); + + $template->assign_vars(array( + 'TOPIC_TITLE' => $preview_subject, + 'POST_SUBJECT' => $preview_subject, + 'MESSAGE_TO' => $to_username, + 'MESSAGE_FROM' => $userdata['username'], + 'POST_DATE' => create_date($board_config['default_dateformat'], time(), $board_config['board_timezone']), + 'MESSAGE' => $preview_message, + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + + 'L_SUBJECT' => $lang['Subject'], + 'L_DATE' => $lang['Date'], + 'L_FROM' => $lang['From'], + 'L_TO' => $lang['To'], + 'L_PREVIEW' => $lang['Preview'], + 'L_POSTED' => $lang['Posted']) + ); + + $template->assign_var_from_handle('POST_PREVIEW_BOX', 'preview'); + } + + // + // Start error handling + // + if ($error) + { + $template->set_filenames(array( + 'reg_header' => 'error_body.tpl') + ); + $template->assign_vars(array( + 'ERROR_MESSAGE' => $error_msg) + ); + $template->assign_var_from_handle('ERROR_BOX', 'reg_header'); + } + + // + // Load templates + // + $template->set_filenames(array( + 'body' => 'posting_body.tpl') + ); + make_jumpbox('viewforum.'.$phpEx); + + // + // Enable extensions in posting_body + // + $template->assign_block_vars('switch_privmsg', array()); + + // + // HTML toggle selection + // + if ( $board_config['allow_html'] ) + { + $html_status = $lang['HTML_is_ON']; + $template->assign_block_vars('switch_html_checkbox', array()); + } + else + { + $html_status = $lang['HTML_is_OFF']; + } + + // + // BBCode toggle selection + // + if ( $board_config['allow_bbcode'] ) + { + $bbcode_status = $lang['BBCode_is_ON']; + $template->assign_block_vars('switch_bbcode_checkbox', array()); + } + else + { + $bbcode_status = $lang['BBCode_is_OFF']; + } + + // + // Smilies toggle selection + // + if ( $board_config['allow_smilies'] ) + { + $smilies_status = $lang['Smilies_are_ON']; + $template->assign_block_vars('switch_smilies_checkbox', array()); + } + else + { + $smilies_status = $lang['Smilies_are_OFF']; + } + + // + // Signature toggle selection - only show if + // the user has a signature + // + if ( $user_sig != '' ) + { + $template->assign_block_vars('switch_signature_checkbox', array()); + } + + if ( $mode == 'post' ) + { + $post_a = $lang['Send_a_new_message']; + } + else if ( $mode == 'reply' ) + { + $post_a = $lang['Send_a_reply']; + $mode = 'post'; + } + else if ( $mode == 'edit' ) + { + $post_a = $lang['Edit_message']; + } + + $s_hidden_fields = ''; + $s_hidden_fields .= ''; + if ( $mode == 'edit' ) + { + $s_hidden_fields .= ''; + } + + // + // Send smilies to template + // + generate_smilies('inline', PAGE_PRIVMSGS); + + $privmsg_subject = preg_replace($html_entities_match, $html_entities_replace, $privmsg_subject); + $privmsg_subject = str_replace('"', '"', $privmsg_subject); + + $template->assign_vars(array( + 'SUBJECT' => $privmsg_subject, + 'USERNAME' => $to_username, + 'MESSAGE' => $privmsg_message, + 'HTML_STATUS' => $html_status, + 'SMILIES_STATUS' => $smilies_status, + 'BBCODE_STATUS' => sprintf($bbcode_status, '', ''), + 'FORUM_NAME' => $lang['Private_Message'], + + 'BOX_NAME' => $l_box_name, + 'INBOX_IMG' => $inbox_img, + 'SENTBOX_IMG' => $sentbox_img, + 'OUTBOX_IMG' => $outbox_img, + 'SAVEBOX_IMG' => $savebox_img, + 'INBOX' => $inbox_url, + 'SENTBOX' => $sentbox_url, + 'OUTBOX' => $outbox_url, + 'SAVEBOX' => $savebox_url, + + 'L_SUBJECT' => $lang['Subject'], + 'L_MESSAGE_BODY' => $lang['Message_body'], + 'L_OPTIONS' => $lang['Options'], + 'L_SPELLCHECK' => $lang['Spellcheck'], + 'L_PREVIEW' => $lang['Preview'], + 'L_SUBMIT' => $lang['Submit'], + 'L_CANCEL' => $lang['Cancel'], + 'L_POST_A' => $post_a, + 'L_FIND_USERNAME' => $lang['Find_username'], + 'L_FIND' => $lang['Find'], + 'L_DISABLE_HTML' => $lang['Disable_HTML_pm'], + 'L_DISABLE_BBCODE' => $lang['Disable_BBCode_pm'], + 'L_DISABLE_SMILIES' => $lang['Disable_Smilies_pm'], + 'L_ATTACH_SIGNATURE' => $lang['Attach_signature'], + + 'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], + 'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], + 'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], + 'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], + 'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], + 'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], + 'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], + 'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], + 'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], + 'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], + 'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], + 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], + 'L_EMPTY_MESSAGE' => $lang['Empty_message'], + + 'L_FONT_COLOR' => $lang['Font_color'], + 'L_COLOR_DEFAULT' => $lang['color_default'], + 'L_COLOR_DARK_RED' => $lang['color_dark_red'], + 'L_COLOR_RED' => $lang['color_red'], + 'L_COLOR_ORANGE' => $lang['color_orange'], + 'L_COLOR_BROWN' => $lang['color_brown'], + 'L_COLOR_YELLOW' => $lang['color_yellow'], + 'L_COLOR_GREEN' => $lang['color_green'], + 'L_COLOR_OLIVE' => $lang['color_olive'], + 'L_COLOR_CYAN' => $lang['color_cyan'], + 'L_COLOR_BLUE' => $lang['color_blue'], + 'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], + 'L_COLOR_INDIGO' => $lang['color_indigo'], + 'L_COLOR_VIOLET' => $lang['color_violet'], + 'L_COLOR_WHITE' => $lang['color_white'], + 'L_COLOR_BLACK' => $lang['color_black'], + + 'L_FONT_SIZE' => $lang['Font_size'], + 'L_FONT_TINY' => $lang['font_tiny'], + 'L_FONT_SMALL' => $lang['font_small'], + 'L_FONT_NORMAL' => $lang['font_normal'], + 'L_FONT_LARGE' => $lang['font_large'], + 'L_FONT_HUGE' => $lang['font_huge'], + + 'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], + 'L_STYLES_TIP' => $lang['Styles_tip'], + + 'S_HTML_CHECKED' => ( !$html_on ) ? ' checked="checked"' : '', + 'S_BBCODE_CHECKED' => ( !$bbcode_on ) ? ' checked="checked"' : '', + 'S_SMILIES_CHECKED' => ( !$smilies_on ) ? ' checked="checked"' : '', + 'S_SIGNATURE_CHECKED' => ( $attach_sig ) ? ' checked="checked"' : '', + 'S_NAMES_SELECT' => $user_names_select, + 'S_HIDDEN_FORM_FIELDS' => $s_hidden_fields, + 'S_POST_ACTION' => append_sid("privmsg.$phpEx"), + + 'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"), + 'U_VIEW_FORUM' => append_sid("privmsg.$phpEx")) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); +} + +// +// Default page +// +if ( !$userdata['session_logged_in'] ) +{ + redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true)); +} + +// +// Update unread status +// +$sql = "UPDATE " . USERS_TABLE . " + SET user_unread_privmsg = user_unread_privmsg + user_new_privmsg, user_new_privmsg = 0, user_last_privmsg = " . $userdata['session_start'] . " + WHERE user_id = " . $userdata['user_id']; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql); +} + +$sql = "UPDATE " . PRIVMSGS_TABLE . " + SET privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " + WHERE privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + AND privmsgs_to_userid = " . $userdata['user_id']; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, 'Could not update private message new/read status (2) for user', '', __LINE__, __FILE__, $sql); +} + +// +// Reset PM counters +// +$userdata['user_new_privmsg'] = 0; +$userdata['user_unread_privmsg'] = ( $userdata['user_new_privmsg'] + $userdata['user_unread_privmsg'] ); + +// +// Generate page +// +$page_title = $lang['Private_Messaging']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +// +// Load templates +// +$template->set_filenames(array( + 'body' => 'privmsgs_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// New message +// +$post_new_mesg_url = '' . $lang['Send_a_new_message'] . ''; + +// +// General SQL to obtain messages +// +$sql_tot = "SELECT COUNT(privmsgs_id) AS total + FROM " . PRIVMSGS_TABLE . " "; +$sql = "SELECT pm.privmsgs_type, pm.privmsgs_id, pm.privmsgs_date, pm.privmsgs_subject, u.user_id, u.username + FROM " . PRIVMSGS_TABLE . " pm, " . USERS_TABLE . " u "; +switch( $folder ) +{ + case 'inbox': + $sql_tot .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + + $sql .= "WHERE pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_from_userid + AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'outbox': + $sql_tot .= "WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + + $sql .= "WHERE pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_to_userid + AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " + OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; + break; + + case 'sentbox': + $sql_tot .= "WHERE privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; + + $sql .= "WHERE pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND u.user_id = pm.privmsgs_to_userid + AND pm.privmsgs_type = " . PRIVMSGS_SENT_MAIL; + break; + + case 'savebox': + $sql_tot .= "WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( privmsgs_from_userid = " . $userdata['user_id'] . " + AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") )"; + + $sql .= "WHERE u.user_id = pm.privmsgs_from_userid + AND ( ( pm.privmsgs_to_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) + OR ( pm.privmsgs_from_userid = " . $userdata['user_id'] . " + AND pm.privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) )"; + break; + + default: + message_die(GENERAL_MESSAGE, $lang['No_such_folder']); + break; +} + +// +// Show messages over previous x days/months +// +if ( $submit_msgdays && ( !empty($HTTP_POST_VARS['msgdays']) || !empty($HTTP_GET_VARS['msgdays']) ) ) +{ + $msg_days = ( !empty($HTTP_POST_VARS['msgdays']) ) ? intval($HTTP_POST_VARS['msgdays']) : intval($HTTP_GET_VARS['msgdays']); + $min_msg_time = time() - ($msg_days * 86400); + + $limit_msg_time_total = " AND privmsgs_date > $min_msg_time"; + $limit_msg_time = " AND pm.privmsgs_date > $min_msg_time "; + + if ( !empty($HTTP_POST_VARS['msgdays']) ) + { + $start = 0; + } +} +else +{ + $limit_msg_time = $limit_msg_time_total = ''; + $msg_days = 0; +} + +$sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . $board_config['topics_per_page']; +$sql_all_tot = $sql_tot; +$sql_tot .= $limit_msg_time_total; + +// +// Get messages +// +if ( !($result = $db->sql_query($sql_tot)) ) +{ + message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql_tot); +} + +$pm_total = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0; + +if ( !($result = $db->sql_query($sql_all_tot)) ) +{ + message_die(GENERAL_ERROR, 'Could not query private message information', '', __LINE__, __FILE__, $sql_tot); +} + +$pm_all_total = ( $row = $db->sql_fetchrow($result) ) ? $row['total'] : 0; + +// +// Build select box +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +$select_msg_days = ''; +for($i = 0; $i < count($previous_days); $i++) +{ + $selected = ( $msg_days == $previous_days[$i] ) ? ' selected="selected"' : ''; + $select_msg_days .= ''; +} + +// +// Define correct icons +// +switch ( $folder ) +{ + case 'inbox': + $l_box_name = $lang['Inbox']; + break; + case 'outbox': + $l_box_name = $lang['Outbox']; + break; + case 'savebox': + $l_box_name = $lang['Savebox']; + break; + case 'sentbox': + $l_box_name = $lang['Sentbox']; + break; +} +$post_pm = append_sid("privmsg.$phpEx?mode=post"); +$post_pm_img = '' . $lang['Post_new_pm'] . ''; +$post_pm = '' . $lang['Post_new_pm'] . ''; + +// +// Output data for inbox status +// +if ( $folder != 'outbox' ) +{ + $inbox_limit_pct = ( $board_config['max_' . $folder . '_privmsgs'] > 0 ) ? round(( $pm_all_total / $board_config['max_' . $folder . '_privmsgs'] ) * 100) : 100; + $inbox_limit_img_length = ( $board_config['max_' . $folder . '_privmsgs'] > 0 ) ? round(( $pm_all_total / $board_config['max_' . $folder . '_privmsgs'] ) * $board_config['privmsg_graphic_length']) : $board_config['privmsg_graphic_length']; + $inbox_limit_remain = ( $board_config['max_' . $folder . '_privmsgs'] > 0 ) ? $board_config['max_' . $folder . '_privmsgs'] - $pm_all_total : 0; + + $template->assign_block_vars('switch_box_size_notice', array()); + + switch( $folder ) + { + case 'inbox': + $l_box_size_status = sprintf($lang['Inbox_size'], $inbox_limit_pct); + break; + case 'sentbox': + $l_box_size_status = sprintf($lang['Sentbox_size'], $inbox_limit_pct); + break; + case 'savebox': + $l_box_size_status = sprintf($lang['Savebox_size'], $inbox_limit_pct); + break; + default: + $l_box_size_status = ''; + break; + } +} + +// +// Dump vars to template +// +$template->assign_vars(array( + 'BOX_NAME' => $l_box_name, + 'INBOX_IMG' => $inbox_img, + 'SENTBOX_IMG' => $sentbox_img, + 'OUTBOX_IMG' => $outbox_img, + 'SAVEBOX_IMG' => $savebox_img, + 'INBOX' => $inbox_url, + 'SENTBOX' => $sentbox_url, + 'OUTBOX' => $outbox_url, + 'SAVEBOX' => $savebox_url, + + 'POST_PM_IMG' => $post_pm_img, + 'POST_PM' => $post_pm, + + 'INBOX_LIMIT_IMG_WIDTH' => $inbox_limit_img_length, + 'INBOX_LIMIT_PERCENT' => $inbox_limit_pct, + + 'BOX_SIZE_STATUS' => $l_box_size_status, + + 'L_INBOX' => $lang['Inbox'], + 'L_OUTBOX' => $lang['Outbox'], + 'L_SENTBOX' => $lang['Sent'], + 'L_SAVEBOX' => $lang['Saved'], + 'L_MARK' => $lang['Mark'], + 'L_FLAG' => $lang['Flag'], + 'L_SUBJECT' => $lang['Subject'], + 'L_DATE' => $lang['Date'], + 'L_DISPLAY_MESSAGES' => $lang['Display_messages'], + 'L_FROM_OR_TO' => ( $folder == 'inbox' || $folder == 'savebox' ) ? $lang['From'] : $lang['To'], + 'L_MARK_ALL' => $lang['Mark_all'], + 'L_UNMARK_ALL' => $lang['Unmark_all'], + 'L_DELETE_MARKED' => $lang['Delete_marked'], + 'L_DELETE_ALL' => $lang['Delete_all'], + 'L_SAVE_MARKED' => $lang['Save_marked'], + + 'S_PRIVMSGS_ACTION' => append_sid("privmsg.$phpEx?folder=$folder"), + 'S_HIDDEN_FIELDS' => '', + 'S_POST_NEW_MSG' => $post_new_mesg_url, + 'S_SELECT_MSG_DAYS' => $select_msg_days, + + 'U_POST_NEW_TOPIC' => append_sid("privmsg.$phpEx?mode=post")) +); + +// +// Okay, let's build the correct folder +// +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query private messages', '', __LINE__, __FILE__, $sql); +} + +if ( $row = $db->sql_fetchrow($result) ) +{ + $i = 0; + do + { + $privmsg_id = $row['privmsgs_id']; + + $flag = $row['privmsgs_type']; + + $icon_flag = ( $flag == PRIVMSGS_NEW_MAIL || $flag == PRIVMSGS_UNREAD_MAIL ) ? $images['pm_unreadmsg'] : $images['pm_readmsg']; + $icon_flag_alt = ( $flag == PRIVMSGS_NEW_MAIL || $flag == PRIVMSGS_UNREAD_MAIL ) ? $lang['Unread_message'] : $lang['Read_message']; + + $msg_userid = $row['user_id']; + $msg_username = $row['username']; + + $u_from_user_profile = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$msg_userid"); + + $msg_subject = $row['privmsgs_subject']; + + if ( count($orig_word) ) + { + $msg_subject = preg_replace($orig_word, $replacement_word, $msg_subject); + } + + $u_subject = append_sid("privmsg.$phpEx?folder=$folder&mode=read&" . POST_POST_URL . "=$privmsg_id"); + + $msg_date = create_date($board_config['default_dateformat'], $row['privmsgs_date'], $board_config['board_timezone']); + + if ( $flag == PRIVMSGS_NEW_MAIL && $folder == 'inbox' ) + { + $msg_subject = '' . $msg_subject . ''; + $msg_date = '' . $msg_date . ''; + $msg_username = '' . $msg_username . ''; + } + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + $i++; + + $template->assign_block_vars('listrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'FROM' => $msg_username, + 'SUBJECT' => $msg_subject, + 'DATE' => $msg_date, + 'PRIVMSG_FOLDER_IMG' => $icon_flag, + + 'L_PRIVMSG_FOLDER_ALT' => $icon_flag_alt, + + 'S_MARK_ID' => $privmsg_id, + + 'U_READ' => $u_subject, + 'U_FROM_USER_PROFILE' => $u_from_user_profile) + ); + } + while( $row = $db->sql_fetchrow($result) ); + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("privmsg.$phpEx?folder=$folder", $pm_total, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $pm_total / $board_config['topics_per_page'] )), + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + +} +else +{ + $template->assign_vars(array( + 'L_NO_MESSAGES' => $lang['No_messages_folder']) + ); + + $template->assign_block_vars("switch_no_messages", array() ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> diff --git a/phpBB2_old/profile.php b/phpBB2_old/profile.php new file mode 100644 index 0000000..275dd7e --- /dev/null +++ b/phpBB2_old/profile.php @@ -0,0 +1,133 @@ + 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; + +$server_url = $server_protocol . $server_name . $server_port . $script_name; + +// ----------------------- +// Page specific functions +// +function gen_rand_string($hash) +{ + $chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'); + + $max_chars = count($chars) - 1; + srand( (double) microtime()*1000000); + + $rand_str = ''; + for($i = 0; $i < 8; $i++) + { + $rand_str = ( $i == 0 ) ? $chars[rand(0, $max_chars)] : $rand_str . $chars[rand(0, $max_chars)]; + } + + return ( $hash ) ? md5($rand_str) : $rand_str; +} +// +// End page specific functions +// --------------------------- + +// +// Start of program proper +// +if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ) +{ + $mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']; + $mode = htmlspecialchars($mode); + + if ( $mode == 'viewprofile' ) + { + include($phpbb_root_path . 'includes/usercp_viewprofile.'.$phpEx); + exit; + } + else if ( $mode == 'editprofile' || $mode == 'register' ) + { + if ( !$userdata['session_logged_in'] && $mode == 'editprofile' ) + { + redirect(append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true)); + } + + include($phpbb_root_path . 'includes/usercp_register.'.$phpEx); + exit; + } + else if ( $mode == 'confirm' ) + { + // Visual Confirmation + if ( $userdata['session_logged_in'] ) + { + exit; + } + + include($phpbb_root_path . 'includes/usercp_confirm.'.$phpEx); + exit; + } + else if ( $mode == 'sendpassword' ) + { + include($phpbb_root_path . 'includes/usercp_sendpasswd.'.$phpEx); + exit; + } + else if ( $mode == 'activate' ) + { + include($phpbb_root_path . 'includes/usercp_activate.'.$phpEx); + exit; + } + else if ( $mode == 'email' ) + { + include($phpbb_root_path . 'includes/usercp_email.'.$phpEx); + exit; + } +} + +redirect(append_sid("index.$phpEx", true)); + +?> \ No newline at end of file diff --git a/phpBB2_old/search.php b/phpBB2_old/search.php new file mode 100644 index 0000000..4f80665 --- /dev/null +++ b/phpBB2_old/search.php @@ -0,0 +1,1411 @@ += " . $userdata['user_lastvisit']; + } + else + { + redirect(append_sid("login.$phpEx?redirect=search.$phpEx&search_id=newposts", true)); + } + + $show_results = 'topics'; + $sort_by = 0; + $sort_dir = 'DESC'; + } + else if ( $search_id == 'egosearch' ) + { + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE poster_id = " . $userdata['user_id']; + } + else + { + redirect(append_sid("login.$phpEx?redirect=search.$phpEx&search_id=egosearch", true)); + } + + $show_results = 'topics'; + $sort_by = 0; + $sort_dir = 'DESC'; + } + else + { + $search_author = str_replace('*', '%', trim($search_author)); + + $sql = "SELECT user_id + FROM " . USERS_TABLE . " + WHERE username LIKE '" . str_replace("\'", "''", $search_author) . "'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain list of matching users (searching for: $search_author)", "", __LINE__, __FILE__, $sql); + } + + $matching_userids = ''; + if ( $row = $db->sql_fetchrow($result) ) + { + do + { + $matching_userids .= ( ( $matching_userids != '' ) ? ', ' : '' ) . $row['user_id']; + } + while( $row = $db->sql_fetchrow($result) ); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } + + $sql = "SELECT post_id + FROM " . POSTS_TABLE . " + WHERE poster_id IN ($matching_userids)"; + + if ($search_time) + { + $sql .= " AND post_time >= " . $search_time; + } + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql); + } + + $search_ids = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $search_ids[] = $row['post_id']; + } + $db->sql_freeresult($result); + + $total_match_count = count($search_ids); + + } + else if ( $search_keywords != '' ) + { + $stopword_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/search_stopwords.txt'); + $synonym_array = @file($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/search_synonyms.txt'); + + $split_search = array(); + $split_search = ( !strstr($multibyte_charset, $lang['ENCODING']) ) ? split_words(clean_words('search', stripslashes($search_keywords), $stopword_array, $synonym_array), 'search') : split(' ', $search_keywords); + + $search_msg_only = ( !$search_fields ) ? "AND m.title_match = 0" : ( ( strstr($multibyte_charset, $lang['ENCODING']) ) ? '' : '' ); + + $word_count = 0; + $current_match_type = 'or'; + + $word_match = array(); + $result_list = array(); + + for($i = 0; $i < count($split_search); $i++) + { + switch ( $split_search[$i] ) + { + case 'and': + $current_match_type = 'and'; + break; + + case 'or': + $current_match_type = 'or'; + break; + + case 'not': + $current_match_type = 'not'; + break; + + default: + if ( !empty($search_terms) ) + { + $current_match_type = 'and'; + } + + if ( !strstr($multibyte_charset, $lang['ENCODING']) ) + { + $match_word = str_replace('*', '%', $split_search[$i]); + $sql = "SELECT m.post_id + FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m + WHERE w.word_text LIKE '$match_word' + AND m.word_id = w.word_id + AND w.word_common <> 1 + $search_msg_only"; + } + else + { + $match_word = addslashes('%' . str_replace('*', '', $split_search[$i]) . '%'); + $search_msg_only = ( $search_fields ) ? "OR post_subject LIKE '$match_word'" : ''; + $sql = "SELECT post_id + FROM " . POSTS_TEXT_TABLE . " + WHERE post_text LIKE '$match_word' + $search_msg_only"; + } + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql); + } + + $row = array(); + while( $temp_row = $db->sql_fetchrow($result) ) + { + $row[$temp_row['post_id']] = 1; + + if ( !$word_count ) + { + $result_list[$temp_row['post_id']] = 1; + } + else if ( $current_match_type == 'or' ) + { + $result_list[$temp_row['post_id']] = 1; + } + else if ( $current_match_type == 'not' ) + { + $result_list[$temp_row['post_id']] = 0; + } + } + + if ( $current_match_type == 'and' && $word_count ) + { + @reset($result_list); + while( list($post_id, $match_count) = @each($result_list) ) + { + if ( !$row[$post_id] ) + { + $result_list[$post_id] = 0; + } + } + } + + $word_count++; + + $db->sql_freeresult($result); + } + } + + @reset($result_list); + + $search_ids = array(); + while( list($post_id, $matches) = each($result_list) ) + { + if ( $matches ) + { + $search_ids[] = $post_id; + } + } + + unset($result_list); + $total_match_count = count($search_ids); + } + + // + // If user is logged in then we'll check to see which (if any) private + // forums they are allowed to view and include them in the search. + // + // If not logged in we explicitly prevent searching of private forums + // + $auth_sql = ''; + if ( $search_forum != -1 ) + { + $is_auth = auth(AUTH_READ, $search_forum, $userdata); + + if ( !$is_auth['auth_read'] ) + { + message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']); + } + + $auth_sql = "f.forum_id = $search_forum"; + } + else + { + $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata); + + if ( $search_cat != -1 ) + { + $auth_sql = "f.cat_id = $search_cat"; + } + + $ignore_forum_sql = ''; + while( list($key, $value) = each($is_auth_ary) ) + { + if ( !$value['auth_read'] ) + { + $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key; + } + } + + if ( $ignore_forum_sql != '' ) + { + $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) "; + } + } + + // + // Author name search + // + if ( $search_author != '' ) + { + $search_author = str_replace('*', '%', trim(str_replace("\'", "''", $search_author))); + } + + if ( $total_match_count ) + { + if ( $show_results == 'topics' ) + { + // + // This one is a beast, try to seperate it a bit (workaround for connection timeouts) + // + $search_id_chunks = array(); + $count = 0; + $chunk = 0; + + if (count($search_ids) > $limiter) + { + for ($i = 0; $i < count($search_ids); $i++) + { + if ($count == $limiter) + { + $chunk++; + $count = 0; + } + + $search_id_chunks[$chunk][$count] = $search_ids[$i]; + $count++; + } + } + else + { + $search_id_chunks[0] = $search_ids; + } + + $search_ids = array(); + + for ($i = 0; $i < count($search_id_chunks); $i++) + { + $where_sql = ''; + + if ( $search_time ) + { + $where_sql .= ( $search_author == '' && $auth_sql == '' ) ? " AND post_time >= $search_time " : " AND p.post_time >= $search_time "; + } + + if ( $search_author == '' && $auth_sql == '' ) + { + $sql = "SELECT topic_id + FROM " . POSTS_TABLE . " + WHERE post_id IN (" . implode(", ", $search_id_chunks[$i]) . ") + $where_sql + GROUP BY topic_id"; + } + else + { + $from_sql = POSTS_TABLE . " p"; + + if ( $search_author != '' ) + { + $from_sql .= ", " . USERS_TABLE . " u"; + $where_sql .= " AND u.user_id = p.poster_id AND u.username LIKE '$search_author' "; + } + + if ( $auth_sql != '' ) + { + $from_sql .= ", " . FORUMS_TABLE . " f"; + $where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql"; + } + + $sql = "SELECT p.topic_id + FROM $from_sql + WHERE p.post_id IN (" . implode(", ", $search_id_chunks[$i]) . ") + $where_sql + GROUP BY p.topic_id"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain topic ids', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $search_ids[] = $row['topic_id']; + } + $db->sql_freeresult($result); + } + + $total_match_count = sizeof($search_ids); + + } + else if ( $search_author != '' || $search_time || $auth_sql != '' ) + { + $search_id_chunks = array(); + $count = 0; + $chunk = 0; + + if (count($search_ids) > $limiter) + { + for ($i = 0; $i < count($search_ids); $i++) + { + if ($count == $limiter) + { + $chunk++; + $count = 0; + } + + $search_id_chunks[$chunk][$count] = $search_ids[$i]; + $count++; + } + } + else + { + $search_id_chunks[0] = $search_ids; + } + + $search_ids = array(); + + for ($i = 0; $i < count($search_id_chunks); $i++) + { + $where_sql = ( $search_author == '' && $auth_sql == '' ) ? 'post_id IN (' . implode(', ', $search_id_chunks[$i]) . ')' : 'p.post_id IN (' . implode(', ', $search_id_chunks[$i]) . ')'; + $select_sql = ( $search_author == '' && $auth_sql == '' ) ? 'post_id' : 'p.post_id'; + $from_sql = ( $search_author == '' && $auth_sql == '' ) ? POSTS_TABLE : POSTS_TABLE . ' p'; + + if ( $search_time ) + { + $where_sql .= ( $search_author == '' && $auth_sql == '' ) ? " AND post_time >= $search_time " : " AND p.post_time >= $search_time"; + } + + if ( $auth_sql != '' ) + { + $from_sql .= ", " . FORUMS_TABLE . " f"; + $where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql"; + } + + if ( $search_author != '' ) + { + $from_sql .= ", " . USERS_TABLE . " u"; + $where_sql .= " AND u.user_id = p.poster_id AND u.username LIKE '$search_author'"; + } + + $sql = "SELECT " . $select_sql . " + FROM $from_sql + WHERE $where_sql"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post ids', '', __LINE__, __FILE__, $sql); + } + + while( $row = $db->sql_fetchrow($result) ) + { + $search_ids[] = $row['post_id']; + } + $db->sql_freeresult($result); + } + + $total_match_count = count($search_ids); + } + } + else if ( $search_id == 'unanswered' ) + { + if ( $auth_sql != '' ) + { + $sql = "SELECT t.topic_id, f.forum_id + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f + WHERE t.topic_replies = 0 + AND t.forum_id = f.forum_id + AND t.topic_moved_id = 0 + AND $auth_sql"; + } + else + { + $sql = "SELECT topic_id + FROM " . TOPICS_TABLE . " + WHERE topic_replies = 0 + AND topic_moved_id = 0"; + } + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain post ids', '', __LINE__, __FILE__, $sql); + } + + $search_ids = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $search_ids[] = $row['topic_id']; + } + $db->sql_freeresult($result); + + $total_match_count = count($search_ids); + + // + // Basic requirements + // + $show_results = 'topics'; + $sort_by = 0; + $sort_dir = 'DESC'; + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } + + // + // Finish building query (for all combinations) + // and run it ... + // + $sql = "SELECT session_id + FROM " . SESSIONS_TABLE; + if ( $result = $db->sql_query($sql) ) + { + $delete_search_ids = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $delete_search_ids[] = "'" . $row['session_id'] . "'"; + } + + if ( count($delete_search_ids) ) + { + $sql = "DELETE FROM " . SEARCH_TABLE . " + WHERE session_id NOT IN (" . implode(", ", $delete_search_ids) . ")"; + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql); + } + } + } + + // + // Store new result data + // + $search_results = implode(', ', $search_ids); + $per_page = ( $show_results == 'posts' ) ? $board_config['posts_per_page'] : $board_config['topics_per_page']; + + // + // Combine both results and search data (apart from original query) + // so we can serialize it and place it in the DB + // + $store_search_data = array(); + + // + // Limit the character length (and with this the results displayed at all following pages) to prevent + // truncated result arrays. Normally, search results above 12000 are affected. + // - to include or not to include + /* + $max_result_length = 60000; + if (strlen($search_results) > $max_result_length) + { + $search_results = substr($search_results, 0, $max_result_length); + $search_results = substr($search_results, 0, strrpos($search_results, ',')); + $total_match_count = count(explode(', ', $search_results)); + } + */ + + for($i = 0; $i < count($store_vars); $i++) + { + $store_search_data[$store_vars[$i]] = $$store_vars[$i]; + } + + $result_array = serialize($store_search_data); + unset($store_search_data); + + mt_srand ((double) microtime() * 1000000); + $search_id = mt_rand(); + + $sql = "UPDATE " . SEARCH_TABLE . " + SET search_id = $search_id, search_array = '" . str_replace("\'", "''", $result_array) . "' + WHERE session_id = '" . $userdata['session_id'] . "'"; + if ( !($result = $db->sql_query($sql)) || !$db->sql_affectedrows() ) + { + $sql = "INSERT INTO " . SEARCH_TABLE . " (search_id, session_id, search_array) + VALUES($search_id, '" . $userdata['session_id'] . "', '" . str_replace("\'", "''", $result_array) . "')"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not insert search results', '', __LINE__, __FILE__, $sql); + } + } + } + else + { + $search_id = intval($search_id); + if ( $search_id ) + { + $sql = "SELECT search_array + FROM " . SEARCH_TABLE . " + WHERE search_id = $search_id + AND session_id = '". $userdata['session_id'] . "'"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $search_data = unserialize($row['search_array']); + for($i = 0; $i < count($store_vars); $i++) + { + $$store_vars[$i] = $search_data[$store_vars[$i]]; + } + } + } + } + + // + // Look up data ... + // + if ( $search_results != '' ) + { + if ( $show_results == 'posts' ) + { + $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid + FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt + WHERE p.post_id IN ($search_results) + AND pt.post_id = p.post_id + AND f.forum_id = p.forum_id + AND p.topic_id = t.topic_id + AND p.poster_id = u.user_id"; + } + else + { + $sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2 + WHERE t.topic_id IN ($search_results) + AND t.topic_poster = u.user_id + AND f.forum_id = t.forum_id + AND p.post_id = t.topic_first_post_id + AND p2.post_id = t.topic_last_post_id + AND u2.user_id = p2.poster_id"; + } + + $per_page = ( $show_results == 'posts' ) ? $board_config['posts_per_page'] : $board_config['topics_per_page']; + + $sql .= " ORDER BY "; + switch ( $sort_by ) + { + case 1: + $sql .= ( $show_results == 'posts' ) ? 'pt.post_subject' : 't.topic_title'; + break; + case 2: + $sql .= 't.topic_title'; + break; + case 3: + $sql .= 'u.username'; + break; + case 4: + $sql .= 'f.forum_id'; + break; + default: + $sql .= ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time'; + break; + } + $sql .= " $sort_dir LIMIT $start, " . $per_page; + + if ( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql); + } + + $searchset = array(); + while( $row = $db->sql_fetchrow($result) ) + { + $searchset[] = $row; + } + + $db->sql_freeresult($result); + + // + // Define censored word matches + // + $orig_word = array(); + $replacement_word = array(); + obtain_word_list($orig_word, $replacement_word); + + // + // Output header + // + $page_title = $lang['Search']; + include($phpbb_root_path . 'includes/page_header.'.$phpEx); + + if ( $show_results == 'posts' ) + { + $template->set_filenames(array( + 'body' => 'search_results_posts.tpl') + ); + } + else + { + $template->set_filenames(array( + 'body' => 'search_results_topics.tpl') + ); + } + make_jumpbox('viewforum.'.$phpEx); + + $l_search_matches = ( $total_match_count == 1 ) ? sprintf($lang['Found_search_match'], $total_match_count) : sprintf($lang['Found_search_matches'], $total_match_count); + + $template->assign_vars(array( + 'L_SEARCH_MATCHES' => $l_search_matches, + 'L_TOPIC' => $lang['Topic']) + ); + + $highlight_active = ''; + $highlight_match = array(); + for($j = 0; $j < count($split_search); $j++ ) + { + $split_word = $split_search[$j]; + + if ( $split_word != 'and' && $split_word != 'or' && $split_word != 'not' ) + { + $highlight_match[] = '#\b(' . str_replace("*", "([\w]+)?", $split_word) . ')\b#is'; + $highlight_active .= " " . $split_word; + + for ($k = 0; $k < count($synonym_array); $k++) + { + list($replace_synonym, $match_synonym) = split(' ', trim(strtolower($synonym_array[$k]))); + + if ( $replace_synonym == $split_word ) + { + $highlight_match[] = '#\b(' . str_replace("*", "([\w]+)?", $replace_synonym) . ')\b#is'; + $highlight_active .= ' ' . $match_synonym; + } + } + } + } + + $highlight_active = urlencode(trim($highlight_active)); + + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + for($i = 0; $i < count($searchset); $i++) + { + $forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $searchset[$i]['forum_id']); + $topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&highlight=$highlight_active"); + $post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $searchset[$i]['post_id'] . "&highlight=$highlight_active") . '#' . $searchset[$i]['post_id']; + + $post_date = create_date($board_config['default_dateformat'], $searchset[$i]['post_time'], $board_config['board_timezone']); + + $message = $searchset[$i]['post_text']; + $topic_title = $searchset[$i]['topic_title']; + + $forum_id = $searchset[$i]['forum_id']; + $topic_id = $searchset[$i]['topic_id']; + + if ( $show_results == 'posts' ) + { + if ( isset($return_chars) ) + { + $bbcode_uid = $searchset[$i]['bbcode_uid']; + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( $return_chars != -1 ) + { + $message = strip_tags($message); + $message = preg_replace("/\[.*?:$bbcode_uid:?.*?\]/si", '', $message); + $message = preg_replace('/\[url\]|\[\/url\]/si', '', $message); + $message = ( strlen($message) > $return_chars ) ? substr($message, 0, $return_chars) . ' ...' : $message; + } + else + { + if ( !$board_config['allow_html'] ) + { + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\\2>', $message); + } + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + + $message = make_clickable($message); + + if ( $highlight_active ) + { + if ( preg_match('/<.*>/', $message) ) + { + $message = preg_replace($highlight_match, '\1', $message); + + $end_html = 0; + $start_html = 1; + $temp_message = ''; + $message = ' ' . $message . ' '; + + while( $start_html = strpos($message, '<', $start_html) ) + { + $grab_length = $start_html - $end_html - 1; + $temp_message .= substr($message, $end_html + 1, $grab_length); + + if ( $end_html = strpos($message, '>', $start_html) ) + { + $length = $end_html - $start_html + 1; + $hold_string = substr($message, $start_html, $length); + + if ( strrpos(' ' . $hold_string, '<') != 1 ) + { + $end_html = $start_html + 1; + $end_counter = 1; + + while ( $end_counter && $end_html < strlen($message) ) + { + if ( substr($message, $end_html, 1) == '>' ) + { + $end_counter--; + } + else if ( substr($message, $end_html, 1) == '<' ) + { + $end_counter++; + } + + $end_html++; + } + + $length = $end_html - $start_html + 1; + $hold_string = substr($message, $start_html, $length); + $hold_string = str_replace('', '', $hold_string); + $hold_string = str_replace('', '', $hold_string); + } + else if ( $hold_string == '' ) + { + $hold_string = str_replace('', '', $hold_string); + } + else if ( $hold_string == '' ) + { + $hold_string = str_replace('', '', $hold_string); + } + + $temp_message .= $hold_string; + + $start_html += $length; + } + else + { + $start_html = strlen($message); + } + } + + $grab_length = strlen($message) - $end_html - 1; + $temp_message .= substr($message, $end_html + 1, $grab_length); + + $message = trim($temp_message); + } + else + { + $message = preg_replace($highlight_match, '\1', $message); + } + } + } + + if ( count($orig_word) ) + { + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); + $post_subject = ( $searchset[$i]['post_subject'] != "" ) ? preg_replace($orig_word, $replacement_word, $searchset[$i]['post_subject']) : $topic_title; + + $message = preg_replace($orig_word, $replacement_word, $message); + } + else + { + $post_subject = ( $searchset[$i]['post_subject'] != '' ) ? $searchset[$i]['post_subject'] : $topic_title; + } + + if ($board_config['allow_smilies'] && $searchset[$i]['enable_smilies']) + { + $message = smilies_pass($message); + } + + $message = str_replace("\n", '
    ', $message); + + } + + $poster = ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + $poster .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? $searchset[$i]['username'] : ( ( $searchset[$i]['post_username'] != "" ) ? $searchset[$i]['post_username'] : $lang['Guest'] ); + $poster .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + + if ( $userdata['session_logged_in'] && $searchset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + + if ( $searchset[$i]['post_time'] > $topic_last_read ) + { + $mini_post_img = $images['icon_minipost_new']; + $mini_post_alt = $lang['New_post']; + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + + $template->assign_block_vars("searchresults", array( + 'TOPIC_TITLE' => $topic_title, + 'FORUM_NAME' => $searchset[$i]['forum_name'], + 'POST_SUBJECT' => $post_subject, + 'POST_DATE' => $post_date, + 'POSTER_NAME' => $poster, + 'TOPIC_REPLIES' => $searchset[$i]['topic_replies'], + 'TOPIC_VIEWS' => $searchset[$i]['topic_views'], + 'MESSAGE' => $message, + 'MINI_POST_IMG' => $mini_post_img, + + 'L_MINI_POST_ALT' => $mini_post_alt, + + 'U_POST' => $post_url, + 'U_TOPIC' => $topic_url, + 'U_FORUM' => $forum_url) + ); + } + else + { + $message = ''; + + if ( count($orig_word) ) + { + $topic_title = preg_replace($orig_word, $replacement_word, $searchset[$i]['topic_title']); + } + + $topic_type = $searchset[$i]['topic_type']; + + if ($topic_type == POST_ANNOUNCE) + { + $topic_type = $lang['Topic_Announcement'] . ' '; + } + else if ($topic_type == POST_STICKY) + { + $topic_type = $lang['Topic_Sticky'] . ' '; + } + else + { + $topic_type = ''; + } + + if ( $searchset[$i]['topic_vote'] ) + { + $topic_type .= $lang['Topic_Poll'] . ' '; + } + + $views = $searchset[$i]['topic_views']; + $replies = $searchset[$i]['topic_replies']; + + if ( ( $replies + 1 ) > $board_config['posts_per_page'] ) + { + $total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] ); + $goto_page = ' [ ' . $lang['Goto_page'] . '' . $lang['Goto_page'] . ': '; + + $times = 1; + for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page']) + { + $goto_page .= '' . $times . ''; + if ( $times == 1 && $total_pages > 4 ) + { + $goto_page .= ' ... '; + $times = $total_pages - 3; + $j += ( $total_pages - 4 ) * $board_config['posts_per_page']; + } + else if ( $times < $total_pages ) + { + $goto_page .= ', '; + } + $times++; + } + $goto_page .= ' ] '; + } + else + { + $goto_page = ''; + } + + if ( $searchset[$i]['topic_status'] == TOPIC_MOVED ) + { + $topic_type = $lang['Topic_Moved'] . ' '; + $topic_id = $searchset[$i]['topic_moved_id']; + + $folder_image = '' . $lang['No_new_posts'] . ''; + $newest_post_img = ''; + } + else + { + if ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) + { + $folder = $images['folder_locked']; + $folder_new = $images['folder_locked_new']; + } + else if ( $searchset[$i]['topic_type'] == POST_ANNOUNCE ) + { + $folder = $images['folder_announce']; + $folder_new = $images['folder_announce_new']; + } + else if ( $searchset[$i]['topic_type'] == POST_STICKY ) + { + $folder = $images['folder_sticky']; + $folder_new = $images['folder_sticky_new']; + } + else + { + if ( $replies >= $board_config['hot_threshold'] ) + { + $folder = $images['folder_hot']; + $folder_new = $images['folder_hot_new']; + } + else + { + $folder = $images['folder']; + $folder_new = $images['folder_new']; + } + } + + if ( $userdata['session_logged_in'] ) + { + if ( $searchset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + if ( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + + $unread_topics = true; + + if ( !empty($tracking_topics[$topic_id]) ) + { + if ( $tracking_topics[$topic_id] > $searchset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if ( !empty($tracking_forums[$forum_id]) ) + { + if ( $tracking_forums[$forum_id] > $searchset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $searchset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if ( $unread_topics ) + { + $folder_image = $folder_new; + $folder_alt = $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + else + { + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $folder_image = $folder; + $folder_alt = $folder_alt; + $newest_post_img = ''; + } + + } + else if ( $searchset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + $folder_image = $folder_new; + $folder_alt = $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + else + { + $folder_image = $folder; + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $searchset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + $newest_post_img = ''; + } + } + + + $topic_author = ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + $topic_author .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? $searchset[$i]['username'] : ( ( $searchset[$i]['post_username'] != '' ) ? $searchset[$i]['post_username'] : $lang['Guest'] ); + + $topic_author .= ( $searchset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + + $first_post_time = create_date($board_config['default_dateformat'], $searchset[$i]['topic_time'], $board_config['board_timezone']); + + $last_post_time = create_date($board_config['default_dateformat'], $searchset[$i]['post_time'], $board_config['board_timezone']); + + $last_post_author = ( $searchset[$i]['id2'] == ANONYMOUS ) ? ( ($searchset[$i]['post_username2'] != '' ) ? $searchset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '' . $searchset[$i]['user2'] . ''; + + $last_post_url = '' . $lang['View_latest_post'] . ''; + + $template->assign_block_vars('searchresults', array( + 'FORUM_NAME' => $searchset[$i]['forum_name'], + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, + 'FOLDER' => $folder_image, + 'NEWEST_POST_IMG' => $newest_post_img, + 'TOPIC_FOLDER_IMG' => $folder_image, + 'GOTO_PAGE' => $goto_page, + 'REPLIES' => $replies, + 'TOPIC_TITLE' => $topic_title, + 'TOPIC_TYPE' => $topic_type, + 'VIEWS' => $views, + 'TOPIC_AUTHOR' => $topic_author, + 'FIRST_POST_TIME' => $first_post_time, + 'LAST_POST_TIME' => $last_post_time, + 'LAST_POST_AUTHOR' => $last_post_author, + 'LAST_POST_IMG' => $last_post_url, + + 'L_TOPIC_FOLDER_ALT' => $folder_alt, + + 'U_VIEW_FORUM' => $forum_url, + 'U_VIEW_TOPIC' => $topic_url) + ); + } + } + + $base_url = "search.$phpEx?search_id=$search_id"; + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination($base_url, $total_match_count, $per_page, $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $per_page ) + 1 ), ceil( $total_match_count / $per_page )), + + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_VIEWS' => $lang['Views'], + 'L_POSTS' => $lang['Posts'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_POSTED' => $lang['Posted'], + 'L_SUBJECT' => $lang['Subject'], + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); + + $template->pparse('body'); + + include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + } + else + { + message_die(GENERAL_MESSAGE, $lang['No_search_match']); + } +} + +// +// Search forum +// +$sql = "SELECT c.cat_title, c.cat_id, f.forum_name, f.forum_id + FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f + WHERE f.cat_id = c.cat_id + ORDER BY c.cat_id, f.forum_order"; +$result = $db->sql_query($sql); +if ( !$result ) +{ + message_die(GENERAL_ERROR, 'Could not obtain forum_name/forum_id', '', __LINE__, __FILE__, $sql); +} + +$is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata); + +$s_forums = ''; +while( $row = $db->sql_fetchrow($result) ) +{ + if ( $is_auth_ary[$row['forum_id']]['auth_read'] ) + { + $s_forums .= ''; + if ( empty($list_cat[$row['cat_id']]) ) + { + $list_cat[$row['cat_id']] = $row['cat_title']; + } + } +} + +if ( $s_forums != '' ) +{ + $s_forums = '' . $s_forums; + + // + // Category to search + // + $s_categories = ''; + while( list($cat_id, $cat_title) = @each($list_cat)) + { + $s_categories .= ''; + } +} +else +{ + message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']); +} + +// +// Number of chars returned +// +$s_characters = ''; +$s_characters .= ''; +$s_characters .= ''; +$s_characters .= ''; + +for($i = 100; $i < 1100 ; $i += 100) +{ + $selected = ( $i == 200 ) ? ' selected="selected"' : ''; + $s_characters .= ''; +} + +// +// Sorting +// +$s_sort_by = ""; +for($i = 0; $i < count($sort_by_types); $i++) +{ + $s_sort_by .= ''; +} + +// +// Search time +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +$s_time = ''; +for($i = 0; $i < count($previous_days); $i++) +{ + $selected = ( $topic_days == $previous_days[$i] ) ? ' selected="selected"' : ''; + $s_time .= ''; +} + +// +// Output the basic page +// +$page_title = $lang['Search']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'search_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_SEARCH_QUERY' => $lang['Search_query'], + 'L_SEARCH_OPTIONS' => $lang['Search_options'], + 'L_SEARCH_KEYWORDS' => $lang['Search_keywords'], + 'L_SEARCH_KEYWORDS_EXPLAIN' => $lang['Search_keywords_explain'], + 'L_SEARCH_AUTHOR' => $lang['Search_author'], + 'L_SEARCH_AUTHOR_EXPLAIN' => $lang['Search_author_explain'], + 'L_SEARCH_ANY_TERMS' => $lang['Search_for_any'], + 'L_SEARCH_ALL_TERMS' => $lang['Search_for_all'], + 'L_SEARCH_MESSAGE_ONLY' => $lang['Search_msg_only'], + 'L_SEARCH_MESSAGE_TITLE' => $lang['Search_title_msg'], + 'L_CATEGORY' => $lang['Category'], + 'L_RETURN_FIRST' => $lang['Return_first'], + 'L_CHARACTERS' => $lang['characters_posts'], + 'L_SORT_BY' => $lang['Sort_by'], + 'L_SORT_ASCENDING' => $lang['Sort_Ascending'], + 'L_SORT_DESCENDING' => $lang['Sort_Descending'], + 'L_SEARCH_PREVIOUS' => $lang['Search_previous'], + 'L_DISPLAY_RESULTS' => $lang['Display_results'], + 'L_FORUM' => $lang['Forum'], + 'L_TOPICS' => $lang['Topics'], + 'L_POSTS' => $lang['Posts'], + + 'S_SEARCH_ACTION' => append_sid("search.$phpEx?mode=results"), + 'S_CHARACTER_OPTIONS' => $s_characters, + 'S_FORUM_OPTIONS' => $s_forums, + 'S_CATEGORY_OPTIONS' => $s_categories, + 'S_TIME_OPTIONS' => $s_time, + 'S_SORT_OPTIONS' => $s_sort_by, + 'S_HIDDEN_FIELDS' => '') +); + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/Helius.cfg b/phpBB2_old/templates/Helius/Helius.cfg new file mode 100644 index 0000000..8c6dbcb --- /dev/null +++ b/phpBB2_old/templates/Helius/Helius.cfg @@ -0,0 +1,137 @@ + 0) && (substr($template_dir, 0, strlen($phpbb_root_path)) !== $phpbb_root_path)) +{ + $template_dir = $phpbb_root_path . $template_dir; +} + +// +// testing if image exists +// +$test_file = $template_dir . '/images/lang_{LANG}/btn_login.gif'; +$lang = 'english'; +if(@file_exists(str_replace('{LANG}', $board_config['default_lang'], $test_file))) +{ + // image exists, setting language variable to correct url + $lang = $board_config['default_lang']; +} +elseif($board_config['default_lang'] !== 'english') +{ + // image doesn't exist, testing if there is english version + if(!@file_exists(str_replace('{LANG}', 'english', $test_file))) + { + // nothing found. setting to default language + $lang = $board_config['default_lang']; + } +} + +// +// adding custom template variables +// +$template->assign_vars(array( + 'LANG' => $lang, + 'T_TEMPLATE_PATH' => $template_dir, + 'C_ROW1' => '#EDEFF2', + 'C_ROW1_OVER' => '#F8F9FA', + 'C_ROW2' => '#DDE2EC', + 'C_ROW2_OVER' => '#EBEEF3', + 'C_ROW3' => '#E2E6EE', + 'C_ROW3_OVER' => '#ECEFF4', + 'C_VERSION' => '1.91', + 'TPL_FORUM_URL' => urlencode($board_config['server_name'] . $board_config['script_path']), + 'TPL_HDR1' => '
    ', + 'TPL_HDR2' => '
    ', + 'TPL_FTR' => '
    ' + )); + +$images['icon_quote'] = "$current_template_images/{LANG}/icon_quote.gif"; +$images['icon_edit'] = "$current_template_images/{LANG}/icon_edit.gif"; +$images['icon_search'] = "$current_template_images/{LANG}/icon_search.gif"; +$images['icon_profile'] = "$current_template_images/{LANG}/icon_profile.gif"; +$images['icon_pm'] = "$current_template_images/{LANG}/icon_pm.gif"; +$images['icon_email'] = "$current_template_images/{LANG}/icon_email.gif"; +$images['icon_delpost'] = "$current_template_images/icon_delete.gif"; +$images['icon_ip'] = "$current_template_images/icon_ip.gif"; +$images['icon_www'] = "$current_template_images/{LANG}/icon_www.gif"; +$images['icon_icq'] = "$current_template_images/icon_icq_add.gif"; +$images['icon_aim'] = "$current_template_images/icon_aim.gif"; +$images['icon_yim'] = "$current_template_images/icon_yim.gif"; +$images['icon_msnm'] = "$current_template_images/icon_msnm.gif"; +$images['icon_minipost'] = "$current_template_images/icon_minipost.gif"; +$images['icon_gotopost'] = "$current_template_images/icon_minipost.gif"; +$images['icon_minipost_new'] = "$current_template_images/icon_minipost_new.gif"; +$images['icon_latest_reply'] = "$current_template_images/icon_latest_reply.gif"; +$images['icon_newest_reply'] = "$current_template_images/icon_newest_reply.gif"; + +$images['forum'] = "$current_template_images/folder_big.gif"; +$images['forum_new'] = "$current_template_images/folder_new_big.gif"; +$images['forum_locked'] = "$current_template_images/folder_locked_big.gif"; + +$images['folder'] = "$current_template_images/folder.gif"; +$images['folder_new'] = "$current_template_images/folder_new.gif"; +$images['folder_hot'] = "$current_template_images/folder_hot.gif"; +$images['folder_hot_new'] = "$current_template_images/folder_new_hot.gif"; +$images['folder_locked'] = "$current_template_images/folder_lock.gif"; +$images['folder_locked_new'] = "$current_template_images/folder_lock_new.gif"; +$images['folder_sticky'] = "$current_template_images/folder_sticky.gif"; +$images['folder_sticky_new'] = "$current_template_images/folder_sticky_new.gif"; +$images['folder_announce'] = "$current_template_images/folder_announce.gif"; +$images['folder_announce_new'] = "$current_template_images/folder_announce_new.gif"; + +$images['post_new'] = "$current_template_images/{LANG}/post.gif"; +$images['post_locked'] = "$current_template_images/{LANG}/reply-locked.gif"; +$images['reply_new'] = "$current_template_images/{LANG}/reply.gif"; +$images['reply_locked'] = "$current_template_images/{LANG}/reply-locked.gif"; + +$images['pm_inbox'] = "$current_template_images/msg_inbox.gif"; +$images['pm_outbox'] = "$current_template_images/msg_outbox.gif"; +$images['pm_savebox'] = "$current_template_images/msg_savebox.gif"; +$images['pm_sentbox'] = "$current_template_images/msg_sentbox.gif"; +$images['pm_readmsg'] = "$current_template_images/folder.gif"; +$images['pm_unreadmsg'] = "$current_template_images/folder_new.gif"; +$images['pm_replymsg'] = "$current_template_images/{LANG}/reply.gif"; +$images['pm_postmsg'] = "$current_template_images/{LANG}/msg_newpost.gif"; +$images['pm_quotemsg'] = "$current_template_images/{LANG}/icon_quote.gif"; +$images['pm_editmsg'] = "$current_template_images/{LANG}/icon_edit.gif"; +$images['pm_new_msg'] = ""; +$images['pm_no_new_msg'] = ""; + +$images['topic_watch'] = ""; +$images['topic_un_watch'] = ""; +$images['topic_mod_lock'] = "$current_template_images/topic_lock.gif"; +$images['topic_mod_unlock'] = "$current_template_images/topic_unlock.gif"; +$images['topic_mod_split'] = "$current_template_images/topic_split.gif"; +$images['topic_mod_move'] = "$current_template_images/topic_move.gif"; +$images['topic_mod_delete'] = "$current_template_images/topic_delete.gif"; + +$images['voting_graphic'][0] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][1] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][2] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][3] = "$current_template_images/voting_bar.gif"; +$images['voting_graphic'][4] = "$current_template_images/voting_bar.gif"; + +// +// Vote graphic length defines the maximum length of a vote result +// graphic, ie. 100% = this length +// +$board_config['vote_graphic_length'] = 300; +$board_config['privmsg_graphic_length'] = 175; + +?> \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/Helius.css b/phpBB2_old/templates/Helius/Helius.css new file mode 100644 index 0000000..6c6646d --- /dev/null +++ b/phpBB2_old/templates/Helius/Helius.css @@ -0,0 +1,211 @@ +/* + Helius Theme for phpBB version 2+ + Created by Vjacheslav Trushkin + http://www.trushkin.net +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #FFFFFF /* #E5E8EE*/; + scrollbar-arrow-color: #1D2938; + scrollbar-face-color: #9DB3CC; + scrollbar-track-color: #D6DEE9; + scrollbar-highlight-color: #C8D3E1; + scrollbar-3dlight-color: #EAEFF4; + scrollbar-shadow-color: #7492B6; + scrollbar-darkshadow-color: #3A5370; +} + +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } +a { text-decoration: underline; color: #364D67; } +a:visited { text-decoration: underline; color: #2C3E52; } +a:hover { text-decoration: underline; color: #FF6600; } +a:active { text-decoration: underline; color: #FF0000; } +hr { height: 0px; border: solid #364D67 0px; border-top-width: 1px;} + + +/* This is the outline round the main forum tables */ +.forumline { background-color: #525E6E; } + + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #EDEFF2; } +td.row1_over { background-color: #F8F9FA; } +td.row2 { background-color: #DDE2EC; } +td.row2_over { background-color: #EBEEF3; } +td.row3, td.row3Right { background-color: #E2E6EE; } +td.row3_over { background-color: #ECEFF4; } +td.row4 { background-color: #CED5E2; } + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic { + background-color: #FFFFFF; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th, td.th { + /* modification by Frederik - original was: color: #3A5370;*/ + color: #FFFFFF; + font-size: 12px; font-weight: bold; + background-color: #FFCC00; height: 26px; +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-color:#D1D7DC; height: 28px; +} + +td.th2 {background-color:#D1D7DC; height: 20px; color: #FFFFFF; } + +td.spaceRow { + background-color: #D1D7DC; } + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ + +/* The largest text used in the index page title and toptic title etc. */ +h1,h2 { + font-weight: bold; font-size: 18px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color: #000000; +} +.maintitle { + font-weight: bold; font-size: 18px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color: #364D67; +} +.subtitle { + font-size: 16px; font-family: Arial, Helvetica, sans-serif; + text-decoration: none; font-weight: bold; color: #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall, .gensmall2 { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #364D67; text-decoration: underline; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #FF6600; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size: 11px; color: #000000 } +a.mainmenu { text-decoration: underline; color: #364D67; } +a.mainmenu:hover{ text-decoration: underline; color: #FF6600; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color: #364D67} +a.cattitle, .cattitle a { text-decoration: underline; color: #364D67; } +a.cattitle:visited, .cattitle a:visited { text-decoration: underline; color: #2C3E52; } +a.cattitle:hover, .cattitle a:hover { text-decoration: underline; color: #FF6600; } +a.cattitle:active, .cattitle a:active { text-decoration: underline; color: #FF0000; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color: #364D67; } +a.forumlink { text-decoration: underline; color: #364D67; } +a.forumlink:hover{ text-decoration: underline; color: #FF6600; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: underline; color: #364D67; } +a.nav:hover { text-decoration: underline; color: #FF6600; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: underline; color: #364D67; } +a.topictitle:visited { text-decoration: underline; color: #2C3E52; } +a.topictitle:hover { text-decoration: underline; color: #FF6600; } +a.topictitle:active { text-decoration: underline; color: #FF0000; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size: 11px; color: #000000;} +a.name:link { text-decoration: underline; color: #364D67; } +a.name:visited { text-decoration: underline; color: #2C3E52; } +a.name:hover { text-decoration: underline; color: #FF6600; } +a.name:active { text-decoration: underline; color: #FF0000; } + +/* Location, number of posts, post date etc */ +.postdetails { font-size: 10px; color: #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size: 12px;} +a.postlink:link { text-decoration: underline; color: #364D67; } +a.postlink:visited { text-decoration: underline; color: #2C3E52; } +a.postlink:hover { text-decoration: underline; color: #FF6600; } +a.postlink:active { text-decoration: underline; color: #FF0000; } + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #F1F4F8; border: #525E6E; border-style: dashed; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #3A5370; line-height: 125%; + background-color: #F1F4F8; border: #525E6E; border-style: dotted; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright, a.copyright:visited, .copyright a, .copyright a:visited { color: #444444; text-decoration: none;} +a.copyright:hover, a.copyright:active, .copyright a:hover, .copyright a:active { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; +} + +form { display: inline; } + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #FFFFFF; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color: #EAEFF4; + color: #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +input.helpline { background-color: #DDE2EC; border: solid 1px #DDE2EC; } diff --git a/phpBB2_old/templates/Helius/_extra/btn_about.gif b/phpBB2_old/templates/Helius/_extra/btn_about.gif new file mode 100644 index 0000000..4abe1da Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_about.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_about_on.gif b/phpBB2_old/templates/Helius/_extra/btn_about_on.gif new file mode 100644 index 0000000..28effad Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_about_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_album.gif b/phpBB2_old/templates/Helius/_extra/btn_album.gif new file mode 100644 index 0000000..3d39890 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_album.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_album_on.gif b/phpBB2_old/templates/Helius/_extra/btn_album_on.gif new file mode 100644 index 0000000..3a174f9 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_album_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_boardrules.gif b/phpBB2_old/templates/Helius/_extra/btn_boardrules.gif new file mode 100644 index 0000000..79e6897 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_boardrules.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_boardrules_on.gif b/phpBB2_old/templates/Helius/_extra/btn_boardrules_on.gif new file mode 100644 index 0000000..e1a8718 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_boardrules_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_calendar.gif b/phpBB2_old/templates/Helius/_extra/btn_calendar.gif new file mode 100644 index 0000000..806c194 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_calendar.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_calendar_on.gif b/phpBB2_old/templates/Helius/_extra/btn_calendar_on.gif new file mode 100644 index 0000000..72e8f63 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_calendar_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_calender.gif b/phpBB2_old/templates/Helius/_extra/btn_calender.gif new file mode 100644 index 0000000..5fcbce1 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_calender.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_calender_on.gif b/phpBB2_old/templates/Helius/_extra/btn_calender_on.gif new file mode 100644 index 0000000..06db81a Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_calender_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_chat.gif b/phpBB2_old/templates/Helius/_extra/btn_chat.gif new file mode 100644 index 0000000..933dd91 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_chat.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_chat_on.gif b/phpBB2_old/templates/Helius/_extra/btn_chat_on.gif new file mode 100644 index 0000000..07637c3 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_chat_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_chatbox.gif b/phpBB2_old/templates/Helius/_extra/btn_chatbox.gif new file mode 100644 index 0000000..ff2eaf1 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_chatbox.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_chatbox_on.gif b/phpBB2_old/templates/Helius/_extra/btn_chatbox_on.gif new file mode 100644 index 0000000..ac6c3b6 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_chatbox_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_contact.gif b/phpBB2_old/templates/Helius/_extra/btn_contact.gif new file mode 100644 index 0000000..795b4b0 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_contact.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_contact_on.gif b/phpBB2_old/templates/Helius/_extra/btn_contact_on.gif new file mode 100644 index 0000000..9b07824 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_contact_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_download.gif b/phpBB2_old/templates/Helius/_extra/btn_download.gif new file mode 100644 index 0000000..a6f2568 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_download.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_download_on.gif b/phpBB2_old/templates/Helius/_extra/btn_download_on.gif new file mode 100644 index 0000000..25a22fd Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_download_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_downloads.gif b/phpBB2_old/templates/Helius/_extra/btn_downloads.gif new file mode 100644 index 0000000..85e6aa6 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_downloads.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_downloads_on.gif b/phpBB2_old/templates/Helius/_extra/btn_downloads_on.gif new file mode 100644 index 0000000..5710a1d Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_downloads_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_favorieten.gif b/phpBB2_old/templates/Helius/_extra/btn_favorieten.gif new file mode 100644 index 0000000..02e2d14 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_favorieten.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_favorieten_on.gif b/phpBB2_old/templates/Helius/_extra/btn_favorieten_on.gif new file mode 100644 index 0000000..289e5f3 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_favorieten_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_favorites.gif b/phpBB2_old/templates/Helius/_extra/btn_favorites.gif new file mode 100644 index 0000000..17d46de Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_favorites.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_favorites_on.gif b/phpBB2_old/templates/Helius/_extra/btn_favorites_on.gif new file mode 100644 index 0000000..bdbd1d8 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_favorites_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_files.gif b/phpBB2_old/templates/Helius/_extra/btn_files.gif new file mode 100644 index 0000000..f56ca9a Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_files.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_files_on.gif b/phpBB2_old/templates/Helius/_extra/btn_files_on.gif new file mode 100644 index 0000000..4369cea Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_files_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_forum.gif b/phpBB2_old/templates/Helius/_extra/btn_forum.gif new file mode 100644 index 0000000..3fdcbbb Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_forum.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_forum_on.gif b/phpBB2_old/templates/Helius/_extra/btn_forum_on.gif new file mode 100644 index 0000000..fae29c0 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_forum_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_forumrules.gif b/phpBB2_old/templates/Helius/_extra/btn_forumrules.gif new file mode 100644 index 0000000..5f259e7 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_forumrules.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_forumrules_on.gif b/phpBB2_old/templates/Helius/_extra/btn_forumrules_on.gif new file mode 100644 index 0000000..e4a3dab Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_forumrules_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_gallery.gif b/phpBB2_old/templates/Helius/_extra/btn_gallery.gif new file mode 100644 index 0000000..c576fbb Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_gallery.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_gallery_on.gif b/phpBB2_old/templates/Helius/_extra/btn_gallery_on.gif new file mode 100644 index 0000000..c7d0a7b Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_gallery_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_home.gif b/phpBB2_old/templates/Helius/_extra/btn_home.gif new file mode 100644 index 0000000..a72dfd3 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_home.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_home_on.gif b/phpBB2_old/templates/Helius/_extra/btn_home_on.gif new file mode 100644 index 0000000..e39084a Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_home_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_info.gif b/phpBB2_old/templates/Helius/_extra/btn_info.gif new file mode 100644 index 0000000..1883f67 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_info.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_info_on.gif b/phpBB2_old/templates/Helius/_extra/btn_info_on.gif new file mode 100644 index 0000000..e79f097 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_info_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_kalender.gif b/phpBB2_old/templates/Helius/_extra/btn_kalender.gif new file mode 100644 index 0000000..80b756c Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_kalender.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_kalender_on.gif b/phpBB2_old/templates/Helius/_extra/btn_kalender_on.gif new file mode 100644 index 0000000..0fa70ed Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_kalender_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_links.gif b/phpBB2_old/templates/Helius/_extra/btn_links.gif new file mode 100644 index 0000000..e265a1f Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_links.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_links_on.gif b/phpBB2_old/templates/Helius/_extra/btn_links_on.gif new file mode 100644 index 0000000..79472f8 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_links_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_main.gif b/phpBB2_old/templates/Helius/_extra/btn_main.gif new file mode 100644 index 0000000..d18ff19 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_main.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_main_on.gif b/phpBB2_old/templates/Helius/_extra/btn_main_on.gif new file mode 100644 index 0000000..d6b7a52 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_main_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_mainpage.gif b/phpBB2_old/templates/Helius/_extra/btn_mainpage.gif new file mode 100644 index 0000000..b879a28 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_mainpage.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_mainpage_on.gif b/phpBB2_old/templates/Helius/_extra/btn_mainpage_on.gif new file mode 100644 index 0000000..405bcec Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_mainpage_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_news.gif b/phpBB2_old/templates/Helius/_extra/btn_news.gif new file mode 100644 index 0000000..8ce2dd0 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_news.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_news_on.gif b/phpBB2_old/templates/Helius/_extra/btn_news_on.gif new file mode 100644 index 0000000..1c39a03 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_news_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_portal.gif b/phpBB2_old/templates/Helius/_extra/btn_portal.gif new file mode 100644 index 0000000..bf59649 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_portal.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_portal_on.gif b/phpBB2_old/templates/Helius/_extra/btn_portal_on.gif new file mode 100644 index 0000000..597a036 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_portal_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_profiel.gif b/phpBB2_old/templates/Helius/_extra/btn_profiel.gif new file mode 100644 index 0000000..e0da00e Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_profiel.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_profiel_on.gif b/phpBB2_old/templates/Helius/_extra/btn_profiel_on.gif new file mode 100644 index 0000000..e391e59 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_profiel_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_statistic.gif b/phpBB2_old/templates/Helius/_extra/btn_statistic.gif new file mode 100644 index 0000000..94ccd6d Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_statistic.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_statistic_on.gif b/phpBB2_old/templates/Helius/_extra/btn_statistic_on.gif new file mode 100644 index 0000000..461ab88 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_statistic_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_statistics.gif b/phpBB2_old/templates/Helius/_extra/btn_statistics.gif new file mode 100644 index 0000000..2296f2a Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_statistics.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_statistics_on.gif b/phpBB2_old/templates/Helius/_extra/btn_statistics_on.gif new file mode 100644 index 0000000..bb536e4 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_statistics_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_statistik.gif b/phpBB2_old/templates/Helius/_extra/btn_statistik.gif new file mode 100644 index 0000000..5dcf587 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_statistik.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_statistik_on.gif b/phpBB2_old/templates/Helius/_extra/btn_statistik_on.gif new file mode 100644 index 0000000..7d04245 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_statistik_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_stats.gif b/phpBB2_old/templates/Helius/_extra/btn_stats.gif new file mode 100644 index 0000000..145c63e Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_stats.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_stats_on.gif b/phpBB2_old/templates/Helius/_extra/btn_stats_on.gif new file mode 100644 index 0000000..ccb8e92 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_stats_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_store.gif b/phpBB2_old/templates/Helius/_extra/btn_store.gif new file mode 100644 index 0000000..dcf7715 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_store.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_store_on.gif b/phpBB2_old/templates/Helius/_extra/btn_store_on.gif new file mode 100644 index 0000000..e6c9056 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_store_on.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_website.gif b/phpBB2_old/templates/Helius/_extra/btn_website.gif new file mode 100644 index 0000000..75978e3 Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_website.gif differ diff --git a/phpBB2_old/templates/Helius/_extra/btn_website_on.gif b/phpBB2_old/templates/Helius/_extra/btn_website_on.gif new file mode 100644 index 0000000..4026ccd Binary files /dev/null and b/phpBB2_old/templates/Helius/_extra/btn_website_on.gif differ diff --git a/phpBB2_old/templates/Helius/_logo_src/logo_bg.bmp b/phpBB2_old/templates/Helius/_logo_src/logo_bg.bmp new file mode 100644 index 0000000..bae060b Binary files /dev/null and b/phpBB2_old/templates/Helius/_logo_src/logo_bg.bmp differ diff --git a/phpBB2_old/templates/Helius/_logo_src/readme.txt b/phpBB2_old/templates/Helius/_logo_src/readme.txt new file mode 100644 index 0000000..60ce29e --- /dev/null +++ b/phpBB2_old/templates/Helius/_logo_src/readme.txt @@ -0,0 +1,15 @@ +Theme is created with Macromedia Fireworks MX, but almost noone has it so +i exported logo background to bmp file that can be used with any editor. + +After you create logo it should be splitted in 2 images: +logo1.gif and logo2.gif + +width of logo1.gif should be the same as width of logo2.gif +height of logo1.gif is 23px +height of logo2.gif is 30px + +if width of image will be different from "130" then open overall_header.tpl +with notepad (or any other text editor) and replace all "130" width width of +your logo. + +html code for header is in overall_header.tpl file (tpl files are usual html files) diff --git a/phpBB2_old/templates/Helius/admin/admin_message_body.tpl b/phpBB2_old/templates/Helius/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/auth_forum_body.tpl b/phpBB2_old/templates/Helius/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/Helius/admin/auth_select_body.tpl b/phpBB2_old/templates/Helius/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2_old/templates/Helius/admin/auth_ug_body.tpl b/phpBB2_old/templates/Helius/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/Helius/admin/board_config_body.tpl b/phpBB2_old/templates/Helius/admin/board_config_body.tpl new file mode 100644 index 0000000..d82a0b0 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/board_config_body.tpl @@ -0,0 +1,252 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_VISUAL_CONFIRM}
    {L_VISUAL_CONFIRM_EXPLAIN}
    {L_YES}   {L_NO}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/category_edit_body.tpl b/phpBB2_old/templates/Helius/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/db_utils_backup_body.tpl b/phpBB2_old/templates/Helius/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/db_utils_restore_body.tpl b/phpBB2_old/templates/Helius/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2_old/templates/Helius/admin/disallow_body.tpl b/phpBB2_old/templates/Helius/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2_old/templates/Helius/admin/forum_admin_body.tpl b/phpBB2_old/templates/Helius/admin/forum_admin_body.tpl new file mode 100644 index 0000000..3af4cfd --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2_old/templates/Helius/admin/forum_delete_body.tpl b/phpBB2_old/templates/Helius/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2_old/templates/Helius/admin/forum_edit_body.tpl b/phpBB2_old/templates/Helius/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/forum_prune_body.tpl b/phpBB2_old/templates/Helius/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2_old/templates/Helius/admin/forum_prune_result_body.tpl b/phpBB2_old/templates/Helius/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/forum_prune_select_body.tpl b/phpBB2_old/templates/Helius/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2_old/templates/Helius/admin/group_edit_body.tpl b/phpBB2_old/templates/Helius/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/group_select_body.tpl b/phpBB2_old/templates/Helius/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/index.htm b/phpBB2_old/templates/Helius/admin/index.htm new file mode 100644 index 0000000..587bc60 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/index.htm @@ -0,0 +1,16 @@ + + +Created by Vjacheslav Trushkin + + + + + + + + + +
    Created by Vjacheslav Trushkin
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/admin/index_body.tpl b/phpBB2_old/templates/Helius/admin/index_body.tpl new file mode 100644 index 0000000..b3de2e3 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/index_body.tpl @@ -0,0 +1,94 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    Helius phpBB Style Notes

    +

    +You are allowed to use this phpBB style only if you agree to the following conditions:
    +- You cannot remove my copyright notice from style without my permission.
    +- You cannot use images from this style anywhere else without my permission.
    +- You can convert this style to another software, but converted style must have my copyright.
    +- If you want to create new phpBB style based on this style you must ask my permission.
    +- If you modify this style it still should contain my copyright because it is based on my work. Modified style should not be available for download without my permission.
    +
    +For support visit: http://www.phpbbstyles.com
    +
    +Sincerely,
    +Vjacheslav Trushkin. +

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/index_frameset.tpl b/phpBB2_old/templates/Helius/admin/index_frameset.tpl new file mode 100644 index 0000000..fef79af --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/admin/index_navigate.tpl b/phpBB2_old/templates/Helius/admin/index_navigate.tpl new file mode 100644 index 0000000..6d964ce --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/index_navigate.tpl @@ -0,0 +1,34 @@ + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/page_footer.tpl b/phpBB2_old/templates/Helius/admin/page_footer.tpl new file mode 100644 index 0000000..bc8db70 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/page_footer.tpl @@ -0,0 +1,35 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001-2004 phpBB Group
    Theme created by Vjacheslav Trushkin
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/admin/page_header.tpl b/phpBB2_old/templates/Helius/admin/page_header.tpl new file mode 100644 index 0000000..865f442 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/page_header.tpl @@ -0,0 +1,21 @@ + + + +{META} + + + +{SITENAME} - {L_PHPBB_ADMIN} + + + +
    For support for this phpBB Style visit phpBBStyles.com

    diff --git a/phpBB2_old/templates/Helius/admin/ranks_edit_body.tpl b/phpBB2_old/templates/Helius/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/ranks_list_body.tpl b/phpBB2_old/templates/Helius/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/Helius/admin/smile_edit_body.tpl b/phpBB2_old/templates/Helius/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/smile_import_body.tpl b/phpBB2_old/templates/Helius/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/smile_list_body.tpl b/phpBB2_old/templates/Helius/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2_old/templates/Helius/admin/styles_addnew_body.tpl b/phpBB2_old/templates/Helius/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..6240a79 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2_old/templates/Helius/admin/styles_edit_body.tpl b/phpBB2_old/templates/Helius/admin/styles_edit_body.tpl new file mode 100644 index 0000000..08cf721 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/styles_exporter.tpl b/phpBB2_old/templates/Helius/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2_old/templates/Helius/admin/styles_list_body.tpl b/phpBB2_old/templates/Helius/admin/styles_list_body.tpl new file mode 100644 index 0000000..915fe49 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/Helius/admin/user_avatar_gallery.tpl b/phpBB2_old/templates/Helius/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/Helius/admin/user_ban_body.tpl b/phpBB2_old/templates/Helius/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2_old/templates/Helius/admin/user_edit_body.tpl b/phpBB2_old/templates/Helius/admin/user_edit_body.tpl new file mode 100644 index 0000000..359bdeb --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2_old/templates/Helius/admin/user_email_body.tpl b/phpBB2_old/templates/Helius/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2_old/templates/Helius/admin/user_select_body.tpl b/phpBB2_old/templates/Helius/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/words_edit_body.tpl b/phpBB2_old/templates/Helius/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/admin/words_list_body.tpl b/phpBB2_old/templates/Helius/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2_old/templates/Helius/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/Helius/agreement.tpl b/phpBB2_old/templates/Helius/agreement.tpl new file mode 100644 index 0000000..a8d7c1a --- /dev/null +++ b/phpBB2_old/templates/Helius/agreement.tpl @@ -0,0 +1,17 @@ + + + + + +
    {L_INDEX}
    + + +{TPL_HDR1}{SITENAME} - {REGISTRATION}{TPL_HDR2} + + + +
    + + + +

    {AGREEMENT}



    {TPL_FTR} \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/bbcode.tpl b/phpBB2_old/templates/Helius/bbcode.tpl new file mode 100644 index 0000000..caef76b --- /dev/null +++ b/phpBB2_old/templates/Helius/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2_old/templates/Helius/confirm_body.tpl b/phpBB2_old/templates/Helius/confirm_body.tpl new file mode 100644 index 0000000..a0fe52e --- /dev/null +++ b/phpBB2_old/templates/Helius/confirm_body.tpl @@ -0,0 +1,13 @@ + + + + + +
    + +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/error_body.tpl b/phpBB2_old/templates/Helius/error_body.tpl new file mode 100644 index 0000000..ef3cc3a --- /dev/null +++ b/phpBB2_old/templates/Helius/error_body.tpl @@ -0,0 +1,17 @@ + +{TPL_HDR1} {TPL_HDR2} + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/faq_body.tpl b/phpBB2_old/templates/Helius/faq_body.tpl new file mode 100644 index 0000000..87d7319 --- /dev/null +++ b/phpBB2_old/templates/Helius/faq_body.tpl @@ -0,0 +1,41 @@ + + + + + +
    + +{TPL_HDR1}{L_FAQ_TITLE}{TPL_HDR2} + + + +
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
    {TPL_FTR} +
    + + +{TPL_HDR1}{faq_block.BLOCK_TITLE}{TPL_HDR2} + + + + + + + + +
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/formIE.css b/phpBB2_old/templates/Helius/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2_old/templates/Helius/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2_old/templates/Helius/groupcp_info_body.tpl b/phpBB2_old/templates/Helius/groupcp_info_body.tpl new file mode 100644 index 0000000..1130a2e --- /dev/null +++ b/phpBB2_old/templates/Helius/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + +{TPL_HDR1}{L_GROUP_INFORMATION}{TPL_HDR2} + + + + + + + + + + + + + + + + + + +
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    {TPL_FTR} +
    +{S_HIDDEN_FIELDS} +
    + + +
    +{TPL_HDR1}{L_GROUP_MODERATOR}{TPL_HDR2} + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {TPL_FTR} +
    + +{TPL_HDR1}{L_GROUP_MEMBERS}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM}{member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    {TPL_FTR} + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/groupcp_pending_info.tpl b/phpBB2_old/templates/Helius/groupcp_pending_info.tpl new file mode 100644 index 0000000..0ef48f1 --- /dev/null +++ b/phpBB2_old/templates/Helius/groupcp_pending_info.tpl @@ -0,0 +1,31 @@ + +{TPL_HDR1}{L_PENDING_MEMBERS}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {pending_members_row.PM_IMG} {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/groupcp_user_body.tpl b/phpBB2_old/templates/Helius/groupcp_user_body.tpl new file mode 100644 index 0000000..5bc9dff --- /dev/null +++ b/phpBB2_old/templates/Helius/groupcp_user_body.tpl @@ -0,0 +1,73 @@ + + + + + +
    {L_INDEX}
    + + +{TPL_HDR1}{L_GROUP_MEMBERSHIP_DETAILS}{TPL_HDR2} + + + + + + + + + + + + +
    {L_YOU_BELONG_GROUPS} + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {TPL_FTR} +
    + + + +{TPL_HDR1}{L_JOIN_A_GROUP}{TPL_HDR2} + + + + +
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {TPL_FTR} +
    + + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/images/bg_cat.gif b/phpBB2_old/templates/Helius/images/bg_cat.gif new file mode 100644 index 0000000..86c9f7f Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bg_cat.gif differ diff --git a/phpBB2_old/templates/Helius/images/bg_cat.gif.backup b/phpBB2_old/templates/Helius/images/bg_cat.gif.backup new file mode 100644 index 0000000..ffdc0ee Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bg_cat.gif.backup differ diff --git a/phpBB2_old/templates/Helius/images/bg_cat2.gif b/phpBB2_old/templates/Helius/images/bg_cat2.gif new file mode 100644 index 0000000..d142e2d Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bg_cat2.gif differ diff --git a/phpBB2_old/templates/Helius/images/bg_cat4.gif b/phpBB2_old/templates/Helius/images/bg_cat4.gif new file mode 100644 index 0000000..7034856 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bg_cat4.gif differ diff --git a/phpBB2_old/templates/Helius/images/bg_main.gif b/phpBB2_old/templates/Helius/images/bg_main.gif new file mode 100644 index 0000000..3f65ef4 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bg_main.gif differ diff --git a/phpBB2_old/templates/Helius/images/bottom_center.gif b/phpBB2_old/templates/Helius/images/bottom_center.gif new file mode 100644 index 0000000..db623cc Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bottom_center.gif differ diff --git a/phpBB2_old/templates/Helius/images/bottom_left.gif b/phpBB2_old/templates/Helius/images/bottom_left.gif new file mode 100644 index 0000000..72708e6 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bottom_left.gif differ diff --git a/phpBB2_old/templates/Helius/images/bottom_right.gif b/phpBB2_old/templates/Helius/images/bottom_right.gif new file mode 100644 index 0000000..bb20603 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/bottom_right.gif differ diff --git a/phpBB2_old/templates/Helius/images/btn_bg.gif b/phpBB2_old/templates/Helius/images/btn_bg.gif new file mode 100644 index 0000000..f8e2ee2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/btn_bg.gif differ diff --git a/phpBB2_old/templates/Helius/images/btn_left.gif b/phpBB2_old/templates/Helius/images/btn_left.gif new file mode 100644 index 0000000..c7ec2a1 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/btn_left.gif differ diff --git a/phpBB2_old/templates/Helius/images/btn_right.gif b/phpBB2_old/templates/Helius/images/btn_right.gif new file mode 100644 index 0000000..d3202c5 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/btn_right.gif differ diff --git a/phpBB2_old/templates/Helius/images/cellpic.gif b/phpBB2_old/templates/Helius/images/cellpic.gif new file mode 100644 index 0000000..47457ef Binary files /dev/null and b/phpBB2_old/templates/Helius/images/cellpic.gif differ diff --git a/phpBB2_old/templates/Helius/images/cellpic1.gif b/phpBB2_old/templates/Helius/images/cellpic1.gif new file mode 100644 index 0000000..715b8d4 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/cellpic1.gif differ diff --git a/phpBB2_old/templates/Helius/images/cellpic2.jpg b/phpBB2_old/templates/Helius/images/cellpic2.jpg new file mode 100644 index 0000000..a0ca7e8 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/cellpic2.jpg differ diff --git a/phpBB2_old/templates/Helius/images/cellpic3.gif b/phpBB2_old/templates/Helius/images/cellpic3.gif new file mode 100644 index 0000000..ecf70e1 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/cellpic3.gif differ diff --git a/phpBB2_old/templates/Helius/images/created_by.jpg b/phpBB2_old/templates/Helius/images/created_by.jpg new file mode 100644 index 0000000..1f8e8b9 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/created_by.jpg differ diff --git a/phpBB2_old/templates/Helius/images/folder.gif b/phpBB2_old/templates/Helius/images/folder.gif new file mode 100644 index 0000000..ad8af67 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_announce.gif b/phpBB2_old/templates/Helius/images/folder_announce.gif new file mode 100644 index 0000000..ad8af67 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_announce.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_announce_new.gif b/phpBB2_old/templates/Helius/images/folder_announce_new.gif new file mode 100644 index 0000000..6276c26 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_announce_new.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_big.gif b/phpBB2_old/templates/Helius/images/folder_big.gif new file mode 100644 index 0000000..2946e65 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_big.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_hot.gif b/phpBB2_old/templates/Helius/images/folder_hot.gif new file mode 100644 index 0000000..7d307f1 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_hot.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_lock.gif b/phpBB2_old/templates/Helius/images/folder_lock.gif new file mode 100644 index 0000000..1b477ce Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_lock.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_lock_new.gif b/phpBB2_old/templates/Helius/images/folder_lock_new.gif new file mode 100644 index 0000000..b03adc4 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_lock_new.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_locked_big.gif b/phpBB2_old/templates/Helius/images/folder_locked_big.gif new file mode 100644 index 0000000..187e4a4 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_locked_big.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_new.gif b/phpBB2_old/templates/Helius/images/folder_new.gif new file mode 100644 index 0000000..6276c26 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_new.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_new_big.gif b/phpBB2_old/templates/Helius/images/folder_new_big.gif new file mode 100644 index 0000000..4e9c91f Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_new_big.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_new_hot.gif b/phpBB2_old/templates/Helius/images/folder_new_hot.gif new file mode 100644 index 0000000..4c4036a Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_new_hot.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_sticky.gif b/phpBB2_old/templates/Helius/images/folder_sticky.gif new file mode 100644 index 0000000..ad8af67 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_sticky.gif differ diff --git a/phpBB2_old/templates/Helius/images/folder_sticky_new.gif b/phpBB2_old/templates/Helius/images/folder_sticky_new.gif new file mode 100644 index 0000000..6276c26 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/folder_sticky_new.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_aim.gif b/phpBB2_old/templates/Helius/images/icon_aim.gif new file mode 100644 index 0000000..cc381d2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_aim.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_delete.gif b/phpBB2_old/templates/Helius/images/icon_delete.gif new file mode 100644 index 0000000..98dd64e Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_delete.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_icq_add.gif b/phpBB2_old/templates/Helius/images/icon_icq_add.gif new file mode 100644 index 0000000..3ef1fe2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_ip.gif b/phpBB2_old/templates/Helius/images/icon_ip.gif new file mode 100644 index 0000000..f777926 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_ip.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_latest_reply.gif b/phpBB2_old/templates/Helius/images/icon_latest_reply.gif new file mode 100644 index 0000000..fa04fb2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_latest_reply.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_minipost.gif b/phpBB2_old/templates/Helius/images/icon_minipost.gif new file mode 100644 index 0000000..e68e0fa Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_minipost.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_minipost_new.gif b/phpBB2_old/templates/Helius/images/icon_minipost_new.gif new file mode 100644 index 0000000..e8e1df0 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_minipost_new.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_msnm.gif b/phpBB2_old/templates/Helius/images/icon_msnm.gif new file mode 100644 index 0000000..ce1a938 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_msnm.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_newest_reply.gif b/phpBB2_old/templates/Helius/images/icon_newest_reply.gif new file mode 100644 index 0000000..24f8a27 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_newest_reply.gif differ diff --git a/phpBB2_old/templates/Helius/images/icon_yim.gif b/phpBB2_old/templates/Helius/images/icon_yim.gif new file mode 100644 index 0000000..379b3b6 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/icon_yim.gif differ diff --git a/phpBB2_old/templates/Helius/images/index.htm b/phpBB2_old/templates/Helius/images/index.htm new file mode 100644 index 0000000..58ffcd2 --- /dev/null +++ b/phpBB2_old/templates/Helius/images/index.htm @@ -0,0 +1,16 @@ + + +Created by Vjacheslav Trushkin + + + + + + + + + +
    Created by Vjacheslav Trushkin
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_faq.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_faq.gif new file mode 100644 index 0000000..62e17cc Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_faq.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_faq_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_faq_on.gif new file mode 100644 index 0000000..d0bb3d8 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_faq_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_groups.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_groups.gif new file mode 100644 index 0000000..4a82b8f Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_groups.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_groups_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_groups_on.gif new file mode 100644 index 0000000..089a3b9 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_groups_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_index.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_index.gif new file mode 100644 index 0000000..c47adbb Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_index.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_index_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_index_on.gif new file mode 100644 index 0000000..af0d2e2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_index_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_login.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_login.gif new file mode 100644 index 0000000..cffd402 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_login.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_login_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_login_on.gif new file mode 100644 index 0000000..df4a302 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_login_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_logout.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_logout.gif new file mode 100644 index 0000000..9babd64 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_logout.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_logout_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_logout_on.gif new file mode 100644 index 0000000..68b8289 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_logout_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_pm.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_pm.gif new file mode 100644 index 0000000..a1f23fd Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_pm.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_pm_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_pm_on.gif new file mode 100644 index 0000000..99e8ee1 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_pm_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_profile.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_profile.gif new file mode 100644 index 0000000..7906a8d Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_profile.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_profile_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_profile_on.gif new file mode 100644 index 0000000..649293b Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_profile_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_register.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_register.gif new file mode 100644 index 0000000..59e8057 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_register.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_register_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_register_on.gif new file mode 100644 index 0000000..6f74375 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_register_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_search.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_search.gif new file mode 100644 index 0000000..14b9b4c Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_search.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_search_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_search_on.gif new file mode 100644 index 0000000..27bb422 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_search_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_users.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_users.gif new file mode 100644 index 0000000..69c4e13 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_users.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/btn_users_on.gif b/phpBB2_old/templates/Helius/images/lang_english/btn_users_on.gif new file mode 100644 index 0000000..424e06f Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/btn_users_on.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_edit.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..d47c75d Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_edit.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_email.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_email.gif new file mode 100644 index 0000000..4fb9360 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_email.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_pm.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..62e0ba8 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_pm.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_profile.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..558cfcb Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_profile.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_quote.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..938a134 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_quote.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_search.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_search.gif new file mode 100644 index 0000000..80d551a Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_search.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/icon_www.gif b/phpBB2_old/templates/Helius/images/lang_english/icon_www.gif new file mode 100644 index 0000000..699f632 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/icon_www.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/msg_newpost.gif b/phpBB2_old/templates/Helius/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..23dba89 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/post.gif b/phpBB2_old/templates/Helius/images/lang_english/post.gif new file mode 100644 index 0000000..cc0b645 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/post.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/reply-locked.gif b/phpBB2_old/templates/Helius/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..2b1c365 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/reply-locked.gif differ diff --git a/phpBB2_old/templates/Helius/images/lang_english/reply.gif b/phpBB2_old/templates/Helius/images/lang_english/reply.gif new file mode 100644 index 0000000..ce20aa7 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/lang_english/reply.gif differ diff --git a/phpBB2_old/templates/Helius/images/logo1.gif b/phpBB2_old/templates/Helius/images/logo1.gif new file mode 100644 index 0000000..a0c5843 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/logo1.gif differ diff --git a/phpBB2_old/templates/Helius/images/logo2.gif b/phpBB2_old/templates/Helius/images/logo2.gif new file mode 100644 index 0000000..bd6b494 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/logo2.gif differ diff --git a/phpBB2_old/templates/Helius/images/logo_bg.gif b/phpBB2_old/templates/Helius/images/logo_bg.gif new file mode 100644 index 0000000..8225bbd Binary files /dev/null and b/phpBB2_old/templates/Helius/images/logo_bg.gif differ diff --git a/phpBB2_old/templates/Helius/images/logo_phpBB_med.gif b/phpBB2_old/templates/Helius/images/logo_phpBB_med.gif new file mode 100644 index 0000000..3d84f94 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/logo_phpBB_med.gif differ diff --git a/phpBB2_old/templates/Helius/images/msg_inbox.gif b/phpBB2_old/templates/Helius/images/msg_inbox.gif new file mode 100644 index 0000000..a6ad3d5 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/msg_inbox.gif differ diff --git a/phpBB2_old/templates/Helius/images/msg_outbox.gif b/phpBB2_old/templates/Helius/images/msg_outbox.gif new file mode 100644 index 0000000..14f7469 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/msg_outbox.gif differ diff --git a/phpBB2_old/templates/Helius/images/msg_savebox.gif b/phpBB2_old/templates/Helius/images/msg_savebox.gif new file mode 100644 index 0000000..2a8d080 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/msg_savebox.gif differ diff --git a/phpBB2_old/templates/Helius/images/msg_sentbox.gif b/phpBB2_old/templates/Helius/images/msg_sentbox.gif new file mode 100644 index 0000000..fc8746a Binary files /dev/null and b/phpBB2_old/templates/Helius/images/msg_sentbox.gif differ diff --git a/phpBB2_old/templates/Helius/images/post_bg.gif b/phpBB2_old/templates/Helius/images/post_bg.gif new file mode 100644 index 0000000..ae88cf1 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/post_bg.gif differ diff --git a/phpBB2_old/templates/Helius/images/post_bottom.gif b/phpBB2_old/templates/Helius/images/post_bottom.gif new file mode 100644 index 0000000..36e5571 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/post_bottom.gif differ diff --git a/phpBB2_old/templates/Helius/images/post_corner.gif b/phpBB2_old/templates/Helius/images/post_corner.gif new file mode 100644 index 0000000..1e21447 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/post_corner.gif differ diff --git a/phpBB2_old/templates/Helius/images/post_right.gif b/phpBB2_old/templates/Helius/images/post_right.gif new file mode 100644 index 0000000..5bc1e43 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/post_right.gif differ diff --git a/phpBB2_old/templates/Helius/images/spacer.gif b/phpBB2_old/templates/Helius/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2_old/templates/Helius/images/spacer.gif differ diff --git a/phpBB2_old/templates/Helius/images/top_center.gif b/phpBB2_old/templates/Helius/images/top_center.gif new file mode 100644 index 0000000..62dd737 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/top_center.gif differ diff --git a/phpBB2_old/templates/Helius/images/top_left.gif b/phpBB2_old/templates/Helius/images/top_left.gif new file mode 100644 index 0000000..50cf243 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/top_left.gif differ diff --git a/phpBB2_old/templates/Helius/images/top_right.gif b/phpBB2_old/templates/Helius/images/top_right.gif new file mode 100644 index 0000000..104c47a Binary files /dev/null and b/phpBB2_old/templates/Helius/images/top_right.gif differ diff --git a/phpBB2_old/templates/Helius/images/topic_delete.gif b/phpBB2_old/templates/Helius/images/topic_delete.gif new file mode 100644 index 0000000..2d504d9 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/topic_delete.gif differ diff --git a/phpBB2_old/templates/Helius/images/topic_lock.gif b/phpBB2_old/templates/Helius/images/topic_lock.gif new file mode 100644 index 0000000..9e65621 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/topic_lock.gif differ diff --git a/phpBB2_old/templates/Helius/images/topic_move.gif b/phpBB2_old/templates/Helius/images/topic_move.gif new file mode 100644 index 0000000..eb0037b Binary files /dev/null and b/phpBB2_old/templates/Helius/images/topic_move.gif differ diff --git a/phpBB2_old/templates/Helius/images/topic_split.gif b/phpBB2_old/templates/Helius/images/topic_split.gif new file mode 100644 index 0000000..11d11ec Binary files /dev/null and b/phpBB2_old/templates/Helius/images/topic_split.gif differ diff --git a/phpBB2_old/templates/Helius/images/topic_unlock.gif b/phpBB2_old/templates/Helius/images/topic_unlock.gif new file mode 100644 index 0000000..d86ada2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/topic_unlock.gif differ diff --git a/phpBB2_old/templates/Helius/images/vote_lcap.gif b/phpBB2_old/templates/Helius/images/vote_lcap.gif new file mode 100644 index 0000000..a19fce1 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/vote_lcap.gif differ diff --git a/phpBB2_old/templates/Helius/images/vote_rcap.gif b/phpBB2_old/templates/Helius/images/vote_rcap.gif new file mode 100644 index 0000000..1e9755b Binary files /dev/null and b/phpBB2_old/templates/Helius/images/vote_rcap.gif differ diff --git a/phpBB2_old/templates/Helius/images/voting_bar.gif b/phpBB2_old/templates/Helius/images/voting_bar.gif new file mode 100644 index 0000000..5148b3c Binary files /dev/null and b/phpBB2_old/templates/Helius/images/voting_bar.gif differ diff --git a/phpBB2_old/templates/Helius/images/whosonline.gif b/phpBB2_old/templates/Helius/images/whosonline.gif new file mode 100644 index 0000000..d55f4f2 Binary files /dev/null and b/phpBB2_old/templates/Helius/images/whosonline.gif differ diff --git a/phpBB2_old/templates/Helius/index.htm b/phpBB2_old/templates/Helius/index.htm new file mode 100644 index 0000000..f0035dc --- /dev/null +++ b/phpBB2_old/templates/Helius/index.htm @@ -0,0 +1,16 @@ + + +Created by Vjacheslav Trushkin + + + + + + + + + +
    Created by Vjacheslav Trushkin
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/index_body.original.tpl b/phpBB2_old/templates/Helius/index_body.original.tpl new file mode 100644 index 0000000..3c03fec --- /dev/null +++ b/phpBB2_old/templates/Helius/index_body.original.tpl @@ -0,0 +1,108 @@ + +vars['PRIVATE_MESSAGE_INFO'])) +{ + $this->vars['PRIVATE_MESSAGE_INFO'] = '' . $this->vars['PRIVATE_MESSAGE_INFO'] . ''; +} + +?> + + + + + + +
    + + {PRIVATE_MESSAGE_INFO}
    + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    + {S_TIMEZONE}
    +
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + {L_MARK_FORUMS_READ}
    + + +{TPL_HDR1} {catrow.CAT_DESC} {TPL_HDR2}
    + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    {TPL_FTR} + +
    + + +{TPL_HDR1} {L_WHO_IS_ONLINE} {TPL_HDR2} + + + + + + + +
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    {L_ONLINE_EXPLAIN}
    {TPL_FTR} +
    + + +
    +{TPL_HDR1}{L_LOGIN_LOGOUT}{TPL_HDR2} + + + +
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    {TPL_FTR} +
    +
    + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/Helius/index_body.tpl b/phpBB2_old/templates/Helius/index_body.tpl new file mode 100644 index 0000000..1706e4e --- /dev/null +++ b/phpBB2_old/templates/Helius/index_body.tpl @@ -0,0 +1,125 @@ + +vars['PRIVATE_MESSAGE_INFO'])) +{ + $this->vars['PRIVATE_MESSAGE_INFO'] = '' . $this->vars['PRIVATE_MESSAGE_INFO'] . ''; +} + +?> + + + + + + +
    + + {PRIVATE_MESSAGE_INFO}
    + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    + {S_TIMEZONE}
    +
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + {L_MARK_FORUMS_READ}
    + + +{TPL_HDR1} {catrow.CAT_DESC} {TPL_HDR2}
    + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    {TPL_FTR} + +
    + + +{TPL_HDR1} {L_WHO_IS_ONLINE} {TPL_HDR2} + + + + + + + +
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    {L_ONLINE_EXPLAIN}
    {TPL_FTR} +
    + + +
    +{TPL_HDR1}{L_LOGIN_LOGOUT}{TPL_HDR2} + + + +
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    {TPL_FTR} +
    +
    + + +{L_LOGIN_LOGOUT} +{L_REGISTER} + + +{L_PROFILE} +{PRIVATE_MESSAGE_INFO} + +{L_FAQ} +{L_MEMBERLIST} +{L_SEARCH} + +{L_USERGROUPS} +{L_LOGIN_LOGOUT} + +
    +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/Helius/jumpbox.tpl b/phpBB2_old/templates/Helius/jumpbox.tpl new file mode 100644 index 0000000..208fc9a --- /dev/null +++ b/phpBB2_old/templates/Helius/jumpbox.tpl @@ -0,0 +1,127 @@ + + tags. +// + +$str = $this->vars['S_JUMPBOX_SELECT']; +$options = array(); +// getting header +$pos = strpos($str, ' 0) +{ + $start = substr($str, 0, $pos); + $str = substr($str, $pos, strlen($str)); +} +else +{ + $start = 0; +} +// getting footer +$str = strrev($str); +$pos = strpos($str, strrev('')); +if($pos > 0) +{ + $end = strrev(substr($str, 0, $pos)); + $str = substr($str, $pos, strlen($str)); +} +else +{ + $end = ''; +} +$str = trim(strrev($str)); +// getting all options +while(strlen($str) > 0) +{ + $pos = strpos($str, ''); + if($pos > 0) + { + $pos += 9; + $item = trim(substr($str, 0, $pos)); + $str = trim(substr($str, $pos, strlen($str))); + } + else + { + $item = $str; + $str = ''; + } + $value = ''; + $text = ''; + $selected = false; + $pos = strpos($item, '>') + 1; + // getting text + $text = substr($item, $pos, strlen($item)); + $item = substr($item, 0, $pos); + $pos = strpos($text, '<'); + if($pos) + { + $text = substr($text, 0, $pos); + } + // checking if item is selected + if(strpos($str1, ' selected')) + { + $selected = true; + } + // getting value + $pos = strpos($item, 'value="'); + if($pos) + { + $pos += 7; + $str1 = substr($item, $pos, strlen($item)); + $pos = strpos($str1, '"'); + $value = substr($str1, 0, $pos); + } + $options[] = array( + 'text' => $text, + 'value' => $value, + 'selected' => $selected + ); +} + +$text = $start; +$group = 0; +for($i=0; $i= 2) + { + $item = $options[$i+1]; + $i+=2; + $group = true; + $text .= ''; + } + } + else + { + $text .= ''; +} +$text .= $end; +$this->vars['S_JUMPBOX_SELECT'] = $text; + +?> + + + + + + + +
    {S_JUMPBOX_SELECT}  
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/login_body.tpl b/phpBB2_old/templates/Helius/login_body.tpl new file mode 100644 index 0000000..d0adda0 --- /dev/null +++ b/phpBB2_old/templates/Helius/login_body.tpl @@ -0,0 +1,40 @@ + + + + + +
    + + +
    +{TPL_HDR1}{L_ENTER_PASSWORD}{TPL_HDR2} + + + +
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    {TPL_FTR} +
    diff --git a/phpBB2_old/templates/Helius/memberlist_body.tpl b/phpBB2_old/templates/Helius/memberlist_body.tpl new file mode 100644 index 0000000..5053a54 --- /dev/null +++ b/phpBB2_old/templates/Helius/memberlist_body.tpl @@ -0,0 +1,48 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + +{TPL_HDR1} {TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
    {TPL_FTR} + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/message_body.tpl b/phpBB2_old/templates/Helius/message_body.tpl new file mode 100644 index 0000000..702e8bf --- /dev/null +++ b/phpBB2_old/templates/Helius/message_body.tpl @@ -0,0 +1,23 @@ + + + + + +
    + +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/modcp_body.tpl b/phpBB2_old/templates/Helius/modcp_body.tpl new file mode 100644 index 0000000..dd227e9 --- /dev/null +++ b/phpBB2_old/templates/Helius/modcp_body.tpl @@ -0,0 +1,56 @@ + +
    + + + + +
    {L_INDEX} » {FORUM_NAME}
    + + +{TPL_HDR1}{L_MOD_CP}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    {TPL_FTR} + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/modcp_move.tpl b/phpBB2_old/templates/Helius/modcp_move.tpl new file mode 100644 index 0000000..d0eb17c --- /dev/null +++ b/phpBB2_old/templates/Helius/modcp_move.tpl @@ -0,0 +1,36 @@ + + + + + +
    + + +
    +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    {TPL_FTR} +
    diff --git a/phpBB2_old/templates/Helius/modcp_split.tpl b/phpBB2_old/templates/Helius/modcp_split.tpl new file mode 100644 index 0000000..65acb40 --- /dev/null +++ b/phpBB2_old/templates/Helius/modcp_split.tpl @@ -0,0 +1,81 @@ + + + + + +
    + +
    +{TPL_HDR1}{L_SPLIT_TOPIC}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC_EXPLAIN} +
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2_old/templates/Helius/modcp_viewip.tpl b/phpBB2_old/templates/Helius/modcp_viewip.tpl new file mode 100644 index 0000000..aa56043 --- /dev/null +++ b/phpBB2_old/templates/Helius/modcp_viewip.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_IP_INFO}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + +
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    {TPL_FTR} \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/overall_footer.tpl b/phpBB2_old/templates/Helius/overall_footer.tpl new file mode 100644 index 0000000..09aa337 --- /dev/null +++ b/phpBB2_old/templates/Helius/overall_footer.tpl @@ -0,0 +1,7 @@ +

    {ADMIN_LINK}
    +Powered by phpBB {PHPBB_VERSION} © 2001-2004 phpBB Group
    +
    + + diff --git a/phpBB2_old/templates/Helius/overall_header.original.tpl b/phpBB2_old/templates/Helius/overall_header.original.tpl new file mode 100644 index 0000000..b9c8c00 --- /dev/null +++ b/phpBB2_old/templates/Helius/overall_header.original.tpl @@ -0,0 +1,225 @@ + + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    {L_LOGIN_LOGOUT}{L_REGISTER}{L_PROFILE}{PRIVATE_MESSAGE_INFO}{L_FAQ}{L_MEMBERLIST}{L_SEARCH}{L_USERGROUPS}{L_LOGIN_LOGOUT}{L_INDEX}
    {SITE_DESCRIPTION}
    +
    + +
    + + + + + +
    diff --git a/phpBB2_old/templates/Helius/overall_header.tpl b/phpBB2_old/templates/Helius/overall_header.tpl new file mode 100644 index 0000000..ad997bd --- /dev/null +++ b/phpBB2_old/templates/Helius/overall_header.tpl @@ -0,0 +1,201 @@ + + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + +{SITE_DESCRIPTION} +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2_old/templates/Helius/posting_preview.tpl b/phpBB2_old/templates/Helius/posting_preview.tpl new file mode 100644 index 0000000..f7e046f --- /dev/null +++ b/phpBB2_old/templates/Helius/posting_preview.tpl @@ -0,0 +1,34 @@ +{TPL_HDR1}{L_PREVIEW}{TPL_HDR2}
    diff --git a/phpBB2_old/templates/Helius/posting_body.tpl b/phpBB2_old/templates/Helius/posting_body.tpl new file mode 100644 index 0000000..f31f8f6 --- /dev/null +++ b/phpBB2_old/templates/Helius/posting_body.tpl @@ -0,0 +1,510 @@ + +vars['USERNAME'])) +{ + global $HTTP_COOKIE_VARS; + if(isset($HTTP_COOKIE_VARS['guest_name'])) + { + $this->vars['USERNAME'] = htmlspecialchars(stripslashes($HTTP_COOKIE_VARS['guest_name'])); + } +} +?> + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + » {FORUM_NAME}
    + +{TPL_HDR1}{L_POST_A}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + +{POLLBOX} + + + +
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2_old/templates/Helius/posting_poll_body.tpl b/phpBB2_old/templates/Helius/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2_old/templates/Helius/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + +
    + + +
    {L_POST}{L_POSTED}: {POST_DATE}
    + + + + +
    + + + + + + + + +
    + + + +




    + + + +
    {MESSAGE}
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/posting_smilies.tpl b/phpBB2_old/templates/Helius/posting_smilies.tpl new file mode 100644 index 0000000..aafb4b2 --- /dev/null +++ b/phpBB2_old/templates/Helius/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + +{TPL_HDR1}{L_EMOTICONS}{TPL_HDR2} + + + + + + +
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    {L_CLOSE_WINDOW}
    {TPL_FTR} +
    diff --git a/phpBB2_old/templates/Helius/posting_topic_review.tpl b/phpBB2_old/templates/Helius/posting_topic_review.tpl new file mode 100644 index 0000000..fbe200f --- /dev/null +++ b/phpBB2_old/templates/Helius/posting_topic_review.tpl @@ -0,0 +1,36 @@ + + +{TPL_HDR1}{L_TOPIC_REVIEW}{TPL_HDR2} + + + +
    {TPL_FTR} + diff --git a/phpBB2_old/templates/Helius/privmsgs_body.tpl b/phpBB2_old/templates/Helius/privmsgs_body.tpl new file mode 100644 index 0000000..23b2251 --- /dev/null +++ b/phpBB2_old/templates/Helius/privmsgs_body.tpl @@ -0,0 +1,114 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    {INBOX_LIMIT_PERCENT}
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + +{TPL_HDR1}{BOX_NAME}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    {TPL_FTR} + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/privmsgs_popup.tpl b/phpBB2_old/templates/Helius/privmsgs_popup.tpl new file mode 100644 index 0000000..96566a3 --- /dev/null +++ b/phpBB2_old/templates/Helius/privmsgs_popup.tpl @@ -0,0 +1,18 @@ + + + +
    +{TPL_HDR1} {TPL_HDR2} + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/privmsgs_preview.tpl b/phpBB2_old/templates/Helius/privmsgs_preview.tpl new file mode 100644 index 0000000..eec52ef --- /dev/null +++ b/phpBB2_old/templates/Helius/privmsgs_preview.tpl @@ -0,0 +1,45 @@ + +{TPL_HDR1}{L_PREVIEW}{TPL_HDR2} + + + + + + +
    {POST_SUBJECT}
    + + + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}




    + + + +
    {MESSAGE}
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/privmsgs_read_body.tpl b/phpBB2_old/templates/Helius/privmsgs_read_body.tpl new file mode 100644 index 0000000..df8331a --- /dev/null +++ b/phpBB2_old/templates/Helius/privmsgs_read_body.tpl @@ -0,0 +1,100 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    +{S_HIDDEN_FIELDS} + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + +{TPL_HDR1}{POST_SUBJECT}{TPL_HDR2} + + + + + + + + + +
    + + + +
    {QUOTE_PM_IMG} {EDIT_PM_IMG}
    + + + + + + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}




    + + + +
    {MESSAGE}
    + +
    + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} {ICQ_IMG}
    {TPL_FTR} + + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/profile_add_body.tpl b/phpBB2_old/templates/Helius/profile_add_body.tpl new file mode 100644 index 0000000..72588e3 --- /dev/null +++ b/phpBB2_old/templates/Helius/profile_add_body.tpl @@ -0,0 +1,264 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + +{TPL_HDR1}{L_REGISTRATION_INFO}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    {TPL_FTR} + + +
    diff --git a/phpBB2_old/templates/Helius/profile_avatar_gallery.tpl b/phpBB2_old/templates/Helius/profile_avatar_gallery.tpl new file mode 100644 index 0000000..1ebd91f --- /dev/null +++ b/phpBB2_old/templates/Helius/profile_avatar_gallery.tpl @@ -0,0 +1,34 @@ + +
    + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_AVATAR_GALLERY}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + +
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    {TPL_FTR} +
    diff --git a/phpBB2_old/templates/Helius/profile_send_email.tpl b/phpBB2_old/templates/Helius/profile_send_email.tpl new file mode 100644 index 0000000..dbd6f71 --- /dev/null +++ b/phpBB2_old/templates/Helius/profile_send_email.tpl @@ -0,0 +1,71 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_SEND_EMAIL_MSG}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + +
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/profile_send_pass.tpl b/phpBB2_old/templates/Helius/profile_send_pass.tpl new file mode 100644 index 0000000..1bc556c --- /dev/null +++ b/phpBB2_old/templates/Helius/profile_send_pass.tpl @@ -0,0 +1,32 @@ + +
    + + + + +
    {L_INDEX}
    +{TPL_HDR1}{L_SEND_PASSWORD}{TPL_HDR2} + + + + + + + + + + + + + + +
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    {TPL_FTR} +
    diff --git a/phpBB2_old/templates/Helius/profile_view_body.tpl b/phpBB2_old/templates/Helius/profile_view_body.tpl new file mode 100644 index 0000000..6f5bc13 --- /dev/null +++ b/phpBB2_old/templates/Helius/profile_view_body.tpl @@ -0,0 +1,81 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_VIEWING_PROFILE}{TPL_HDR2} + + + + + + + + + + + + + +
    {L_AVATAR}{L_ABOUT_USER} +
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:{ICQ_IMG}
    +
    {TPL_FTR} + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/search_body.tpl b/phpBB2_old/templates/Helius/search_body.tpl new file mode 100644 index 0000000..4aa3db7 --- /dev/null +++ b/phpBB2_old/templates/Helius/search_body.tpl @@ -0,0 +1,54 @@ + +
    + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_SEARCH_QUERY}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    {TPL_FTR} + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/search_results_posts.tpl b/phpBB2_old/templates/Helius/search_results_posts.tpl new file mode 100644 index 0000000..5b8d3cf --- /dev/null +++ b/phpBB2_old/templates/Helius/search_results_posts.tpl @@ -0,0 +1,68 @@ + + + + + +
    {L_INDEX}
    + + + + + +
    {L_SEARCH_MATCHES}
    + + +
    +{TPL_HDR1}{searchresults.TOPIC_TITLE}{TPL_HDR2} + + + + + + +
    + + + +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    + + + + +
    + + + + + + + + +
    + + + +
    + + + + +
    {searchresults.POSTER_NAME}
     
    {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    {L_VIEWS}: {searchresults.TOPIC_VIEWS}




    + + + +
    {searchresults.MESSAGE}
    {TPL_FTR} + + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/search_results_topics.tpl b/phpBB2_old/templates/Helius/search_results_topics.tpl new file mode 100644 index 0000000..7cf804b --- /dev/null +++ b/phpBB2_old/templates/Helius/search_results_topics.tpl @@ -0,0 +1,42 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_SEARCH_MATCHES}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
    {TPL_FTR} + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/Helius/search_username.tpl b/phpBB2_old/templates/Helius/search_username.tpl new file mode 100644 index 0000000..189c0de --- /dev/null +++ b/phpBB2_old/templates/Helius/search_username.tpl @@ -0,0 +1,29 @@ + + + +
    + + + + +
    +{TPL_HDR1}{L_SEARCH_USERNAME}{TPL_HDR2} + + + +

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    {TPL_FTR} +
    +
    diff --git a/phpBB2_old/templates/Helius/simple_footer.tpl b/phpBB2_old/templates/Helius/simple_footer.tpl new file mode 100644 index 0000000..7b83429 --- /dev/null +++ b/phpBB2_old/templates/Helius/simple_footer.tpl @@ -0,0 +1,6 @@ + +

    +Powered by phpBB {PHPBB_VERSION} © 2001-2004 phpBB Group
    + + + diff --git a/phpBB2_old/templates/Helius/simple_header.original.tpl b/phpBB2_old/templates/Helius/simple_header.original.tpl new file mode 100644 index 0000000..79133c4 --- /dev/null +++ b/phpBB2_old/templates/Helius/simple_header.original.tpl @@ -0,0 +1,31 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2_old/templates/Helius/simple_header.tpl b/phpBB2_old/templates/Helius/simple_header.tpl new file mode 100644 index 0000000..a064781 --- /dev/null +++ b/phpBB2_old/templates/Helius/simple_header.tpl @@ -0,0 +1,32 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + + diff --git a/phpBB2_old/templates/Helius/theme_info.cfg b/phpBB2_old/templates/Helius/theme_info.cfg new file mode 100644 index 0000000..0e3eaf1 --- /dev/null +++ b/phpBB2_old/templates/Helius/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/viewforum_body.tpl b/phpBB2_old/templates/Helius/viewforum_body.tpl new file mode 100644 index 0000000..657887d --- /dev/null +++ b/phpBB2_old/templates/Helius/viewforum_body.tpl @@ -0,0 +1,92 @@ + +
    + + + + + + + + + + +
    {L_MODERATOR}: {MODERATORS}
    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + +{TPL_HDR1}{FORUM_NAME}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    {TPL_FTR} + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} » {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}
    {L_NEW_POSTS_TOPIC_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_TOPIC_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/Helius/viewonline_body.tpl b/phpBB2_old/templates/Helius/viewonline_body.tpl new file mode 100644 index 0000000..0c2c200 --- /dev/null +++ b/phpBB2_old/templates/Helius/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + +{TPL_HDR1}{L_WHOSONLINE}{TPL_HDR2} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    {TPL_FTR} + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2_old/templates/Helius/viewtopic_body.tpl b/phpBB2_old/templates/Helius/viewtopic_body.tpl new file mode 100644 index 0000000..351a643 --- /dev/null +++ b/phpBB2_old/templates/Helius/viewtopic_body.tpl @@ -0,0 +1,136 @@ + +_tpldata['postrow.']) ) ? sizeof($this->_tpldata['postrow.']) : 0; +for ($postrow_i = 0; $postrow_i < $postrow_count; $postrow_i++) +{ + $postrow_item = &$this->_tpldata['postrow.'][$postrow_i]; + // replace username with link to user profile + if(!empty($postrow_item['PROFILE'])) + { + $postrow_item['SEARCH_IMG2'] = $postrow_item['SEARCH_IMG']; + $search = array($lang['Read_profile'], ' + + + + + + + + + + +
    + {L_INDEX} + » {FORUM_NAME} + » {TOPIC_TITLE}{PAGINATION}
    {L_POST_NEW_TOPIC}  {L_POST_REPLY_TOPIC} + {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  +
    + +{POLL_DISPLAY} + + +
    +{TPL_HDR1}{postrow.POST_SUBJECT}{TPL_HDR2} + + + + + + + + + +
    + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}
    + + + + + + + +
    + + + + + + + + +
    + + + +
    + + + + + + + +
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}
    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}




    + + + +
    {postrow.MESSAGE}
    + + + +
    {postrow.EDITED_MESSAGE}{postrow.SIGNATURE}
    + + + +
    {postrow.PROFILE_IMG} {postrow.SEARCH_IMG2} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG} {postrow.ICQ_IMG}
    {TPL_FTR} +
    + + +{TPL_HDR1}{TOPIC_TITLE}{TPL_HDR2} + + + + + + +
    +   {L_INDEX} » {FORUM_NAME}
    + + + + + +
    + {S_AUTH_LIST} + + {S_TIMEZONE}  
    + {PAGE_NUMBER}  
    + {PAGINATION}
    + {S_WATCH_TOPIC} +
    +
    + + + + +
    {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} {JUMPBOX}
    +
    {TPL_FTR} + + + + + + +
     {L_POST_NEW_TOPIC}  {L_POST_REPLY_TOPIC}{S_TOPIC_ADMIN} 
    diff --git a/phpBB2_old/templates/Helius/viewtopic_poll_ballot.tpl b/phpBB2_old/templates/Helius/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..3c19b4a --- /dev/null +++ b/phpBB2_old/templates/Helius/viewtopic_poll_ballot.tpl @@ -0,0 +1,29 @@ +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +

    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/viewtopic_poll_result.tpl b/phpBB2_old/templates/Helius/viewtopic_poll_result.tpl new file mode 100644 index 0000000..211ea66 --- /dev/null +++ b/phpBB2_old/templates/Helius/viewtopic_poll_result.tpl @@ -0,0 +1,38 @@ +{TPL_HDR1}{MESSAGE_TITLE}{TPL_HDR2} + + + +

    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    +
    {TPL_FTR} +
    \ No newline at end of file diff --git a/phpBB2_old/templates/Helius/xs.cfg b/phpBB2_old/templates/Helius/xs.cfg new file mode 100644 index 0000000..2e5c826 --- /dev/null +++ b/phpBB2_old/templates/Helius/xs.cfg @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/admin/admin_message_body.tpl b/phpBB2_old/templates/christmas/admin/admin_message_body.tpl new file mode 100644 index 0000000..7431f09 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/auth_forum_body.tpl b/phpBB2_old/templates/christmas/admin/auth_forum_body.tpl new file mode 100644 index 0000000..c013a2a --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas/admin/auth_select_body.tpl b/phpBB2_old/templates/christmas/admin/auth_select_body.tpl new file mode 100644 index 0000000..80ebd36 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2_old/templates/christmas/admin/auth_ug_body.tpl b/phpBB2_old/templates/christmas/admin/auth_ug_body.tpl new file mode 100644 index 0000000..69e4bab --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas/admin/board_config_body.tpl b/phpBB2_old/templates/christmas/admin/board_config_body.tpl new file mode 100644 index 0000000..5647487 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/board_config_body.tpl @@ -0,0 +1,248 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/category_edit_body.tpl b/phpBB2_old/templates/christmas/admin/category_edit_body.tpl new file mode 100644 index 0000000..07de378 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/db_utils_backup_body.tpl b/phpBB2_old/templates/christmas/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..7a96953 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/db_utils_restore_body.tpl b/phpBB2_old/templates/christmas/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..6c87461 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2_old/templates/christmas/admin/disallow_body.tpl b/phpBB2_old/templates/christmas/admin/disallow_body.tpl new file mode 100644 index 0000000..37caa6b --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2_old/templates/christmas/admin/forum_admin_body.tpl b/phpBB2_old/templates/christmas/admin/forum_admin_body.tpl new file mode 100644 index 0000000..0d301c4 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2_old/templates/christmas/admin/forum_delete_body.tpl b/phpBB2_old/templates/christmas/admin/forum_delete_body.tpl new file mode 100644 index 0000000..8151718 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2_old/templates/christmas/admin/forum_edit_body.tpl b/phpBB2_old/templates/christmas/admin/forum_edit_body.tpl new file mode 100644 index 0000000..0fca787 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/forum_prune_body.tpl b/phpBB2_old/templates/christmas/admin/forum_prune_body.tpl new file mode 100644 index 0000000..fcd5fe7 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2_old/templates/christmas/admin/forum_prune_result_body.tpl b/phpBB2_old/templates/christmas/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..42fc100 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/forum_prune_select_body.tpl b/phpBB2_old/templates/christmas/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..95787d8 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2_old/templates/christmas/admin/group_edit_body.tpl b/phpBB2_old/templates/christmas/admin/group_edit_body.tpl new file mode 100644 index 0000000..3fd89c7 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/group_select_body.tpl b/phpBB2_old/templates/christmas/admin/group_select_body.tpl new file mode 100644 index 0000000..62e5139 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/index.htm b/phpBB2_old/templates/christmas/admin/index.htm new file mode 100644 index 0000000..e0cc5f3 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/templates/christmas/admin/index_body.tpl b/phpBB2_old/templates/christmas/admin/index_body.tpl new file mode 100644 index 0000000..e715dda --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/index_frameset.tpl b/phpBB2_old/templates/christmas/admin/index_frameset.tpl new file mode 100644 index 0000000..d3f3f31 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/admin/index_navigate.tpl b/phpBB2_old/templates/christmas/admin/index_navigate.tpl new file mode 100644 index 0000000..784f838 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/page_footer.tpl b/phpBB2_old/templates/christmas/admin/page_footer.tpl new file mode 100644 index 0000000..4b45f2d --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/admin/page_header.tpl b/phpBB2_old/templates/christmas/admin/page_header.tpl new file mode 100644 index 0000000..8fa72f1 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/page_header.tpl @@ -0,0 +1,226 @@ + + + +{META} + + + +{SITENAME} - {L_PHPBB_ADMIN} + + + + diff --git a/phpBB2_old/templates/christmas/admin/ranks_edit_body.tpl b/phpBB2_old/templates/christmas/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..cca80cb --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/ranks_list_body.tpl b/phpBB2_old/templates/christmas/admin/ranks_list_body.tpl new file mode 100644 index 0000000..3444a24 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/christmas/admin/smile_edit_body.tpl b/phpBB2_old/templates/christmas/admin/smile_edit_body.tpl new file mode 100644 index 0000000..db6a6ec --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/smile_import_body.tpl b/phpBB2_old/templates/christmas/admin/smile_import_body.tpl new file mode 100644 index 0000000..dcea5dc --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/smile_list_body.tpl b/phpBB2_old/templates/christmas/admin/smile_list_body.tpl new file mode 100644 index 0000000..4f644df --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2_old/templates/christmas/admin/styles_addnew_body.tpl b/phpBB2_old/templates/christmas/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..b564656 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2_old/templates/christmas/admin/styles_edit_body.tpl b/phpBB2_old/templates/christmas/admin/styles_edit_body.tpl new file mode 100644 index 0000000..e8e0f15 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/styles_exporter.tpl b/phpBB2_old/templates/christmas/admin/styles_exporter.tpl new file mode 100644 index 0000000..1a34342 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2_old/templates/christmas/admin/styles_list_body.tpl b/phpBB2_old/templates/christmas/admin/styles_list_body.tpl new file mode 100644 index 0000000..52c7519 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/christmas/admin/user_avatar_gallery.tpl b/phpBB2_old/templates/christmas/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..e68c795 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas/admin/user_ban_body.tpl b/phpBB2_old/templates/christmas/admin/user_ban_body.tpl new file mode 100644 index 0000000..7486e90 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2_old/templates/christmas/admin/user_edit_body.tpl b/phpBB2_old/templates/christmas/admin/user_edit_body.tpl new file mode 100644 index 0000000..e43a307 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2_old/templates/christmas/admin/user_email_body.tpl b/phpBB2_old/templates/christmas/admin/user_email_body.tpl new file mode 100644 index 0000000..88bac1e --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2_old/templates/christmas/admin/user_select_body.tpl b/phpBB2_old/templates/christmas/admin/user_select_body.tpl new file mode 100644 index 0000000..d19cec5 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/words_edit_body.tpl b/phpBB2_old/templates/christmas/admin/words_edit_body.tpl new file mode 100644 index 0000000..0364237 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/admin/words_list_body.tpl b/phpBB2_old/templates/christmas/admin/words_list_body.tpl new file mode 100644 index 0000000..710bd04 --- /dev/null +++ b/phpBB2_old/templates/christmas/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas/agreement.tpl b/phpBB2_old/templates/christmas/agreement.tpl new file mode 100644 index 0000000..4f4fd7b --- /dev/null +++ b/phpBB2_old/templates/christmas/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2_old/templates/christmas/bbcode.tpl b/phpBB2_old/templates/christmas/bbcode.tpl new file mode 100644 index 0000000..1e3f650 --- /dev/null +++ b/phpBB2_old/templates/christmas/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2_old/templates/christmas/posting_preview.tpl b/phpBB2_old/templates/christmas/posting_preview.tpl new file mode 100644 index 0000000..572ebf4 --- /dev/null +++ b/phpBB2_old/templates/christmas/posting_preview.tpl @@ -0,0 +1,23 @@ + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2_old/templates/christmas/christmas.cfg b/phpBB2_old/templates/christmas/christmas.cfg new file mode 100644 index 0000000..6f8ea81 --- /dev/null +++ b/phpBB2_old/templates/christmas/christmas.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/christmas.css b/phpBB2_old/templates/christmas/christmas.css new file mode 100644 index 0000000..d856484 --- /dev/null +++ b/phpBB2_old/templates/christmas/christmas.css @@ -0,0 +1,210 @@ +/* + The orightinal christmas Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #E5E5E5; + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1; +} + +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #006699; } +a:hover { text-decoration: underline; color : #DD6900; } +hr { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline { background-color: #FFFFFF; border: 1px #98AAB1 solid; } + +/* This is the outline round the main forum tables */ +.forumline { background-color: #FFFFFF; border: 2px #006699 solid; } + + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #EFEFEF; } +td.row2 { background-color: #DEE3E7; } +td.row3 { background-color: #D1D7DC; } + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic { + background-color: #FFFFFF; + background-image: url(images/cellpic2.jpg); + background-repeat: repeat-y; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #FFA34F; font-size: 11px; font-weight : bold; + background-color: #006699; height: 25px; + background-image: url(images/cellpic3.gif); +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); + background-color:#D1D7DC; border: #FFFFFF; border-style: solid; height: 28px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; border-style: solid; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #D1D7DC; border: #FFFFFF; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #DD6900; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #006699; } +a.mainmenu:hover{ text-decoration: underline; color : #DD6900; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #006699} +a.cattitle { text-decoration: none; color : #006699; } +a.cattitle:hover{ text-decoration: underline; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #006699; } +a.forumlink { text-decoration: none; color : #006699; } +a.forumlink:hover{ text-decoration: underline; color : #DD6900; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #006699; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #006699; } +a.topictitle:visited { text-decoration: none; color : #5493B4; } +a.topictitle:hover { text-decoration: underline; color : #DD6900; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;} +a.postlink:link { text-decoration: none; color : #006699 } +a.postlink:visited { text-decoration: none; color : #5493B4; } +a.postlink:hover { text-decoration: underline; color : #DD6900} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright { color: #444444; text-decoration: none;} +a.copyright:hover { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #FFFFFF; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #EFEFEF; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #DEE3E7; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2_old/templates/christmas/confirm_body.tpl b/phpBB2_old/templates/christmas/confirm_body.tpl new file mode 100644 index 0000000..318ac5a --- /dev/null +++ b/phpBB2_old/templates/christmas/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/christmas/error_body.tpl b/phpBB2_old/templates/christmas/error_body.tpl new file mode 100644 index 0000000..bd7bc8d --- /dev/null +++ b/phpBB2_old/templates/christmas/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2_old/templates/christmas/faq_body.tpl b/phpBB2_old/templates/christmas/faq_body.tpl new file mode 100644 index 0000000..68bafb5 --- /dev/null +++ b/phpBB2_old/templates/christmas/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/formIE.css b/phpBB2_old/templates/christmas/formIE.css new file mode 100644 index 0000000..b76fd40 --- /dev/null +++ b/phpBB2_old/templates/christmas/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2_old/templates/christmas/groupcp_info_body.tpl b/phpBB2_old/templates/christmas/groupcp_info_body.tpl new file mode 100644 index 0000000..776eb3a --- /dev/null +++ b/phpBB2_old/templates/christmas/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/groupcp_pending_info.tpl b/phpBB2_old/templates/christmas/groupcp_pending_info.tpl new file mode 100644 index 0000000..5b00be4 --- /dev/null +++ b/phpBB2_old/templates/christmas/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2_old/templates/christmas/groupcp_user_body.tpl b/phpBB2_old/templates/christmas/groupcp_user_body.tpl new file mode 100644 index 0000000..906611a --- /dev/null +++ b/phpBB2_old/templates/christmas/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/images/barre3.gif b/phpBB2_old/templates/christmas/images/barre3.gif new file mode 100644 index 0000000..f9ad7e0 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/barre3.gif differ diff --git a/phpBB2_old/templates/christmas/images/cellpic.gif b/phpBB2_old/templates/christmas/images/cellpic.gif new file mode 100644 index 0000000..58846d0 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/cellpic.gif differ diff --git a/phpBB2_old/templates/christmas/images/cellpic1.gif b/phpBB2_old/templates/christmas/images/cellpic1.gif new file mode 100644 index 0000000..44b3430 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/cellpic1.gif differ diff --git a/phpBB2_old/templates/christmas/images/cellpic2.jpg b/phpBB2_old/templates/christmas/images/cellpic2.jpg new file mode 100644 index 0000000..764c0e5 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/cellpic2.jpg differ diff --git a/phpBB2_old/templates/christmas/images/cellpic3.gif b/phpBB2_old/templates/christmas/images/cellpic3.gif new file mode 100644 index 0000000..e27cdfd Binary files /dev/null and b/phpBB2_old/templates/christmas/images/cellpic3.gif differ diff --git a/phpBB2_old/templates/christmas/images/cellpic_bkg.gif b/phpBB2_old/templates/christmas/images/cellpic_bkg.gif new file mode 100644 index 0000000..c806b23 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/cellpic_bkg.gif differ diff --git a/phpBB2_old/templates/christmas/images/created_by.jpg b/phpBB2_old/templates/christmas/images/created_by.jpg new file mode 100644 index 0000000..35f141b Binary files /dev/null and b/phpBB2_old/templates/christmas/images/created_by.jpg differ diff --git a/phpBB2_old/templates/christmas/images/folder.gif b/phpBB2_old/templates/christmas/images/folder.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_announce.gif b/phpBB2_old/templates/christmas/images/folder_announce.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_announce.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_announce_new.gif b/phpBB2_old/templates/christmas/images/folder_announce_new.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_announce_new.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_big.gif b/phpBB2_old/templates/christmas/images/folder_big.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_big.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_hot.gif b/phpBB2_old/templates/christmas/images/folder_hot.gif new file mode 100644 index 0000000..30ed45d Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_hot.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_lock.gif b/phpBB2_old/templates/christmas/images/folder_lock.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_lock.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_lock_new.gif b/phpBB2_old/templates/christmas/images/folder_lock_new.gif new file mode 100644 index 0000000..c1eb69c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_lock_new.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_locked_big.gif b/phpBB2_old/templates/christmas/images/folder_locked_big.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_locked_big.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_new.gif b/phpBB2_old/templates/christmas/images/folder_new.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_new.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_new_big.gif b/phpBB2_old/templates/christmas/images/folder_new_big.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_new_big.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_new_hot.gif b/phpBB2_old/templates/christmas/images/folder_new_hot.gif new file mode 100644 index 0000000..d326aef Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_new_hot.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_sticky.gif b/phpBB2_old/templates/christmas/images/folder_sticky.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_sticky.gif differ diff --git a/phpBB2_old/templates/christmas/images/folder_sticky_new.gif b/phpBB2_old/templates/christmas/images/folder_sticky_new.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/folder_sticky_new.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_delete.gif b/phpBB2_old/templates/christmas/images/icon_delete.gif new file mode 100644 index 0000000..4dd7962 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_latest_reply.gif b/phpBB2_old/templates/christmas/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_latest_reply.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_login.gif b/phpBB2_old/templates/christmas/images/icon_login.gif new file mode 100644 index 0000000..1a77964 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_login.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_logout.gif b/phpBB2_old/templates/christmas/images/icon_logout.gif new file mode 100644 index 0000000..94df93c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_logout.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_faq.gif b/phpBB2_old/templates/christmas/images/icon_mini_faq.gif new file mode 100644 index 0000000..26f7a57 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_faq.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_groups.gif b/phpBB2_old/templates/christmas/images/icon_mini_groups.gif new file mode 100644 index 0000000..8fe8d48 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_groups.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_login.gif b/phpBB2_old/templates/christmas/images/icon_mini_login.gif new file mode 100644 index 0000000..30b309b Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_login.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_members.gif b/phpBB2_old/templates/christmas/images/icon_mini_members.gif new file mode 100644 index 0000000..3a64e10 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_members.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_message.gif b/phpBB2_old/templates/christmas/images/icon_mini_message.gif new file mode 100644 index 0000000..a8c7ddf Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_message.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_profile.gif b/phpBB2_old/templates/christmas/images/icon_mini_profile.gif new file mode 100644 index 0000000..8b10145 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_profile.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_register.gif b/phpBB2_old/templates/christmas/images/icon_mini_register.gif new file mode 100644 index 0000000..4ac3b77 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_register.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_mini_search.gif b/phpBB2_old/templates/christmas/images/icon_mini_search.gif new file mode 100644 index 0000000..b1eb8c9 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_mini_search.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_minipost.gif b/phpBB2_old/templates/christmas/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_minipost.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_minipost_new.gif b/phpBB2_old/templates/christmas/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_minipost_new.gif differ diff --git a/phpBB2_old/templates/christmas/images/icon_newest_reply.gif b/phpBB2_old/templates/christmas/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/icon_newest_reply.gif differ diff --git a/phpBB2_old/templates/christmas/images/index.htm b/phpBB2_old/templates/christmas/images/index.htm new file mode 100644 index 0000000..73b375a --- /dev/null +++ b/phpBB2_old/templates/christmas/images/index.htm @@ -0,0 +1,16 @@ + + +christmas created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_aim.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..3014853 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_aim.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_edit.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..11668a5 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_edit.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_email.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_email.gif new file mode 100644 index 0000000..5f194b0 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_email.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_icq_add.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..c8d2830 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_ip.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..1c9923a Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_ip.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_msnm.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..d5507e2 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_pm.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..270e39a Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_pm.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_profile.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..20f1d93 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_profile.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_quote.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..a7a9984 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_quote.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_search.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_search.gif new file mode 100644 index 0000000..c4df944 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_search.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_www.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_www.gif new file mode 100644 index 0000000..de76a44 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_www.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/icon_yim.gif b/phpBB2_old/templates/christmas/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..da307c9 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/icon_yim.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/msg_newpost.gif b/phpBB2_old/templates/christmas/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..6fcf81c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/post.gif b/phpBB2_old/templates/christmas/images/lang_english/post.gif new file mode 100644 index 0000000..d427967 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/post.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/reply-locked.gif b/phpBB2_old/templates/christmas/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..175dae0 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/reply-locked.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_english/reply.gif b/phpBB2_old/templates/christmas/images/lang_english/reply.gif new file mode 100644 index 0000000..6c24898 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_english/reply.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/Thumbs.db b/phpBB2_old/templates/christmas/images/lang_french/Thumbs.db new file mode 100644 index 0000000..ac35725 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/Thumbs.db differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_aim.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_aim.gif new file mode 100644 index 0000000..3014853 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_aim.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_edit.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_edit.gif new file mode 100644 index 0000000..3d7f78c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_edit.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_email.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_email.gif new file mode 100644 index 0000000..5e3647c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_email.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_icq_add.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_icq_add.gif new file mode 100644 index 0000000..2b1361d Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_ip.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_ip.gif new file mode 100644 index 0000000..79b59fe Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_ip.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_msnm.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_msnm.gif new file mode 100644 index 0000000..4288be0 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_msnm.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_pm.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_pm.gif new file mode 100644 index 0000000..02375cb Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_pm.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_profile.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_profile.gif new file mode 100644 index 0000000..777f844 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_profile.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_quote.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_quote.gif new file mode 100644 index 0000000..f67d2d6 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_quote.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_search.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_search.gif new file mode 100644 index 0000000..c4df944 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_search.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_www.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_www.gif new file mode 100644 index 0000000..de76a44 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_www.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/icon_yim.gif b/phpBB2_old/templates/christmas/images/lang_french/icon_yim.gif new file mode 100644 index 0000000..da307c9 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/icon_yim.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/msg_newpost.gif b/phpBB2_old/templates/christmas/images/lang_french/msg_newpost.gif new file mode 100644 index 0000000..8eaeb9c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/msg_newpost.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/post.gif b/phpBB2_old/templates/christmas/images/lang_french/post.gif new file mode 100644 index 0000000..8eaeb9c Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/post.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/reply-locked.gif b/phpBB2_old/templates/christmas/images/lang_french/reply-locked.gif new file mode 100644 index 0000000..aa12418 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/reply-locked.gif differ diff --git a/phpBB2_old/templates/christmas/images/lang_french/reply.gif b/phpBB2_old/templates/christmas/images/lang_french/reply.gif new file mode 100644 index 0000000..f8d596f Binary files /dev/null and b/phpBB2_old/templates/christmas/images/lang_french/reply.gif differ diff --git a/phpBB2_old/templates/christmas/images/logo_phpBB.gif b/phpBB2_old/templates/christmas/images/logo_phpBB.gif new file mode 100644 index 0000000..d7b3166 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/logo_phpBB.gif differ diff --git a/phpBB2_old/templates/christmas/images/logo_phpBB2.gif b/phpBB2_old/templates/christmas/images/logo_phpBB2.gif new file mode 100644 index 0000000..3bd7a8e Binary files /dev/null and b/phpBB2_old/templates/christmas/images/logo_phpBB2.gif differ diff --git a/phpBB2_old/templates/christmas/images/logo_phpBB_med.gif b/phpBB2_old/templates/christmas/images/logo_phpBB_med.gif new file mode 100644 index 0000000..dbda1ae Binary files /dev/null and b/phpBB2_old/templates/christmas/images/logo_phpBB_med.gif differ diff --git a/phpBB2_old/templates/christmas/images/msg_inbox.gif b/phpBB2_old/templates/christmas/images/msg_inbox.gif new file mode 100644 index 0000000..1647465 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/msg_inbox.gif differ diff --git a/phpBB2_old/templates/christmas/images/msg_outbox.gif b/phpBB2_old/templates/christmas/images/msg_outbox.gif new file mode 100644 index 0000000..9a7262e Binary files /dev/null and b/phpBB2_old/templates/christmas/images/msg_outbox.gif differ diff --git a/phpBB2_old/templates/christmas/images/msg_savebox.gif b/phpBB2_old/templates/christmas/images/msg_savebox.gif new file mode 100644 index 0000000..072f628 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/msg_savebox.gif differ diff --git a/phpBB2_old/templates/christmas/images/msg_sentbox.gif b/phpBB2_old/templates/christmas/images/msg_sentbox.gif new file mode 100644 index 0000000..5cde5b0 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/msg_sentbox.gif differ diff --git a/phpBB2_old/templates/christmas/images/phpbb-design.gif b/phpBB2_old/templates/christmas/images/phpbb-design.gif new file mode 100644 index 0000000..a389dff Binary files /dev/null and b/phpBB2_old/templates/christmas/images/phpbb-design.gif differ diff --git a/phpBB2_old/templates/christmas/images/spacer.gif b/phpBB2_old/templates/christmas/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2_old/templates/christmas/images/spacer.gif differ diff --git a/phpBB2_old/templates/christmas/images/topic_delete.gif b/phpBB2_old/templates/christmas/images/topic_delete.gif new file mode 100644 index 0000000..ecff1e5 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/topic_delete.gif differ diff --git a/phpBB2_old/templates/christmas/images/topic_lock.gif b/phpBB2_old/templates/christmas/images/topic_lock.gif new file mode 100644 index 0000000..e4d37a7 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/topic_lock.gif differ diff --git a/phpBB2_old/templates/christmas/images/topic_move.gif b/phpBB2_old/templates/christmas/images/topic_move.gif new file mode 100644 index 0000000..138646f Binary files /dev/null and b/phpBB2_old/templates/christmas/images/topic_move.gif differ diff --git a/phpBB2_old/templates/christmas/images/topic_split.gif b/phpBB2_old/templates/christmas/images/topic_split.gif new file mode 100644 index 0000000..9d9d893 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/topic_split.gif differ diff --git a/phpBB2_old/templates/christmas/images/topic_unlock.gif b/phpBB2_old/templates/christmas/images/topic_unlock.gif new file mode 100644 index 0000000..36f3d68 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/topic_unlock.gif differ diff --git a/phpBB2_old/templates/christmas/images/vote_lcap.gif b/phpBB2_old/templates/christmas/images/vote_lcap.gif new file mode 100644 index 0000000..22e1080 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/vote_lcap.gif differ diff --git a/phpBB2_old/templates/christmas/images/vote_rcap.gif b/phpBB2_old/templates/christmas/images/vote_rcap.gif new file mode 100644 index 0000000..28da06f Binary files /dev/null and b/phpBB2_old/templates/christmas/images/vote_rcap.gif differ diff --git a/phpBB2_old/templates/christmas/images/voting_bar.gif b/phpBB2_old/templates/christmas/images/voting_bar.gif new file mode 100644 index 0000000..ced112d Binary files /dev/null and b/phpBB2_old/templates/christmas/images/voting_bar.gif differ diff --git a/phpBB2_old/templates/christmas/images/whosonline.gif b/phpBB2_old/templates/christmas/images/whosonline.gif new file mode 100644 index 0000000..3bea906 Binary files /dev/null and b/phpBB2_old/templates/christmas/images/whosonline.gif differ diff --git a/phpBB2_old/templates/christmas/index.htm b/phpBB2_old/templates/christmas/index.htm new file mode 100644 index 0000000..6031d56 --- /dev/null +++ b/phpBB2_old/templates/christmas/index.htm @@ -0,0 +1,20 @@ + + +christmas created by subBlue Design + + + + + + + + + + + + +
    Created by subBlue Design

     

    +

    phpBB-design.com

    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/index_body.tpl b/phpBB2_old/templates/christmas/index_body.tpl new file mode 100644 index 0000000..4daa0e0 --- /dev/null +++ b/phpBB2_old/templates/christmas/index_body.tpl @@ -0,0 +1,104 @@ + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/christmas/install.tpl b/phpBB2_old/templates/christmas/install.tpl new file mode 100644 index 0000000..292d18b --- /dev/null +++ b/phpBB2_old/templates/christmas/install.tpl @@ -0,0 +1,183 @@ + + + + + +{L_INSTALLATION} + + + + + + + + + +
    + + + + + + + + + + + + + + + +
    + + + + +
    Forum Home{L_INSTALLATION}


    + + + +
    {L_INSTRUCTION_TEXT}


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_INITIAL_CONFIGURATION}
    {L_LANGUAGE}: {S_LANG_SELECT}
    {L_DBMS}: {S_DBMS_SELECT}
    {L_UPGRADE}:{S_UPGRADE_SELECT}
    {L_DATABASE_CONFIGURATION}
    {L_DB_HOST}:
    {L_DB_NAME}:
    {L_DB_USER}:
    {L_DB_PASSWORD}:
    {L_DB_PREFIX}:
    {L_ADMIN_CONFIGURATION}
    {L_ADMIN_EMAIL}:
    {L_SERVER_NAME}:
    {L_SERVER_PORT}:
    {L_SCRIPT_PATH}:
    {L_ADMIN_USERNAME}:
    {L_ADMIN_PASSWORD}:
    {L_ADMIN_CONFIRM_PASSWORD}:
    {L_ERROR_TITLE}
    {L_ERROR}
    {L_FTP_INFO}
    {L_FTP_PATH}
    {L_FTP_USER}
    {L_FTP_PASS}
    {L_CHOOSE_FTP}
    {L_ATTEMPT_FTP}
    {L_SEND_FILE}
    {S_HIDDEN_FIELDS}
    {L_UPGRADE_INST}
    + + +
    diff --git a/phpBB2_old/templates/christmas/jumpbox.tpl b/phpBB2_old/templates/christmas/jumpbox.tpl new file mode 100644 index 0000000..5cddb06 --- /dev/null +++ b/phpBB2_old/templates/christmas/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2_old/templates/christmas/login_body.tpl b/phpBB2_old/templates/christmas/login_body.tpl new file mode 100644 index 0000000..7fe86be --- /dev/null +++ b/phpBB2_old/templates/christmas/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2_old/templates/christmas/memberlist_body.tpl b/phpBB2_old/templates/christmas/memberlist_body.tpl new file mode 100644 index 0000000..bc27389 --- /dev/null +++ b/phpBB2_old/templates/christmas/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/message_body.tpl b/phpBB2_old/templates/christmas/message_body.tpl new file mode 100644 index 0000000..95a510e --- /dev/null +++ b/phpBB2_old/templates/christmas/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2_old/templates/christmas/modcp_body.tpl b/phpBB2_old/templates/christmas/modcp_body.tpl new file mode 100644 index 0000000..0d3d1f7 --- /dev/null +++ b/phpBB2_old/templates/christmas/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/modcp_move.tpl b/phpBB2_old/templates/christmas/modcp_move.tpl new file mode 100644 index 0000000..38bbe35 --- /dev/null +++ b/phpBB2_old/templates/christmas/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2_old/templates/christmas/modcp_split.tpl b/phpBB2_old/templates/christmas/modcp_split.tpl new file mode 100644 index 0000000..c343a9c --- /dev/null +++ b/phpBB2_old/templates/christmas/modcp_split.tpl @@ -0,0 +1,87 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT} + +
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2_old/templates/christmas/modcp_viewip.tpl b/phpBB2_old/templates/christmas/modcp_viewip.tpl new file mode 100644 index 0000000..a28deb8 --- /dev/null +++ b/phpBB2_old/templates/christmas/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2_old/templates/christmas/overall_footer.tpl b/phpBB2_old/templates/christmas/overall_footer.tpl new file mode 100644 index 0000000..8c590c1 --- /dev/null +++ b/phpBB2_old/templates/christmas/overall_footer.tpl @@ -0,0 +1,15 @@ + +


    {ADMIN_LINK}
    + +Powered by phpBB + {PHPBB_VERSION} © 2001, 2002 phpBB Group
    Thème Designed by The SoSophpBB Team © 2002
    {TRANSLATION_INFO}
    +
    \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/overall_header.tpl b/phpBB2_old/templates/christmas/overall_header.tpl new file mode 100644 index 0000000..3460a3b --- /dev/null +++ b/phpBB2_old/templates/christmas/overall_header.tpl @@ -0,0 +1,379 @@ + + + + + +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + +{META} +{NAV_LINKS} + + + + + +
    + + + +
    {L_INDEX}

    {SITE_DESCRIPTION}
      + + +
    + +
    {L_FAQ} {L_SEARCH} {L_MEMBERLIST} {L_USERGROUPS} + + {L_REGISTER} + +
    {L_PROFILE} {PRIVATE_MESSAGE_INFO} + + {L_LOGIN_LOGOUT} + + + {L_LOGIN_LOGOUT} + +
    + +
    +

    +

    diff --git a/phpBB2_old/templates/christmas/posting_body.tpl b/phpBB2_old/templates/christmas/posting_body.tpl new file mode 100644 index 0000000..7657e7c --- /dev/null +++ b/phpBB2_old/templates/christmas/posting_body.tpl @@ -0,0 +1,448 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2_old/templates/christmas/posting_poll_body.tpl b/phpBB2_old/templates/christmas/posting_poll_body.tpl new file mode 100644 index 0000000..68ce567 --- /dev/null +++ b/phpBB2_old/templates/christmas/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2_old/templates/christmas/posting_smilies.tpl b/phpBB2_old/templates/christmas/posting_smilies.tpl new file mode 100644 index 0000000..72ac84c --- /dev/null +++ b/phpBB2_old/templates/christmas/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2_old/templates/christmas/posting_topic_review.tpl b/phpBB2_old/templates/christmas/posting_topic_review.tpl new file mode 100644 index 0000000..ac77328 --- /dev/null +++ b/phpBB2_old/templates/christmas/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2_old/templates/christmas/privmsgs_body.tpl b/phpBB2_old/templates/christmas/privmsgs_body.tpl new file mode 100644 index 0000000..4a40dda --- /dev/null +++ b/phpBB2_old/templates/christmas/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/privmsgs_popup.tpl b/phpBB2_old/templates/christmas/privmsgs_popup.tpl new file mode 100644 index 0000000..8f1213f --- /dev/null +++ b/phpBB2_old/templates/christmas/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2_old/templates/christmas/privmsgs_preview.tpl b/phpBB2_old/templates/christmas/privmsgs_preview.tpl new file mode 100644 index 0000000..84fd116 --- /dev/null +++ b/phpBB2_old/templates/christmas/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2_old/templates/christmas/privmsgs_read_body.tpl b/phpBB2_old/templates/christmas/privmsgs_read_body.tpl new file mode 100644 index 0000000..19cb9f4 --- /dev/null +++ b/phpBB2_old/templates/christmas/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/profile_add_body.tpl b/phpBB2_old/templates/christmas/profile_add_body.tpl new file mode 100644 index 0000000..4bca8b8 --- /dev/null +++ b/phpBB2_old/templates/christmas/profile_add_body.tpl @@ -0,0 +1,264 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/christmas/profile_avatar_gallery.tpl b/phpBB2_old/templates/christmas/profile_avatar_gallery.tpl new file mode 100644 index 0000000..a04eafe --- /dev/null +++ b/phpBB2_old/templates/christmas/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas/profile_send_email.tpl b/phpBB2_old/templates/christmas/profile_send_email.tpl new file mode 100644 index 0000000..7b85aab --- /dev/null +++ b/phpBB2_old/templates/christmas/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/profile_send_pass.tpl b/phpBB2_old/templates/christmas/profile_send_pass.tpl new file mode 100644 index 0000000..dd6f039 --- /dev/null +++ b/phpBB2_old/templates/christmas/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas/profile_view_body.tpl b/phpBB2_old/templates/christmas/profile_view_body.tpl new file mode 100644 index 0000000..32eda1b --- /dev/null +++ b/phpBB2_old/templates/christmas/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/rainbow.js b/phpBB2_old/templates/christmas/rainbow.js new file mode 100644 index 0000000..b583e06 --- /dev/null +++ b/phpBB2_old/templates/christmas/rainbow.js @@ -0,0 +1,121 @@ +var rate = 20; +var obj; +var act = 0; +var elmH = 0; +var elmS = 128; +var elmV = 255; +var clrOrg; +var TimerID; + +if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4) { +Browser = true; +} else { +Browser = false; +} + +if (Browser) { +document.onmouseover = doRainbowAnchor; +document.onmouseout = stopRainbowAnchor; +} + +function doRainbow() +{ +if (Browser && act != 1) { +act = 1; +obj = event.srcElement; +clrOrg = obj.style.color; +TimerID = setInterval("ChangeColor()",100); +} +} + +function stopRainbow() +{ +if (Browser && act != 0) { +obj.style.color = clrOrg; +clearInterval(TimerID); +act = 0; +} +} + +function doRainbowAnchor() +{ +if (Browser && act != 1) { +obj = event.srcElement; + +while (obj.tagName != 'A' && obj.tagName != 'BODY') { +obj = obj.parentElement; +if (obj.tagName == 'A' || obj.tagName == 'BODY') +break; +} + +if (obj.tagName == 'A' && obj.href != '') { +act = 1; +clrOrg = obj.style.color; +TimerID = setInterval("ChangeColor()",100); +} +} +} + +function stopRainbowAnchor() +{ +if (Browser && act != 0) { +if (obj.tagName == 'A') { +obj.style.color = clrOrg; +clearInterval(TimerID); +act = 0; +} +} +} + +function ChangeColor() +{ +obj.style.color = makeColor(); +} + +function makeColor() +{ + +if (elmS == 0) { +elmR = elmV; elmG = elmV; elmB = elmV; +} +else { +t1 = elmV; +t2 = (255 - elmS) * elmV / 255; +t3 = elmH % 60; +t3 = (t1 - t2) * t3 / 60; + +if (elmH < 60) { +elmR = t1; elmB = t2; elmG = t2 + t3; +} +else if (elmH < 120) { +elmG = t1; elmB = t2; elmR = t1 - t3; +} +else if (elmH < 180) { +elmG = t1; elmR = t2; elmB = t2 + t3; +} +else if (elmH < 240) { +elmB = t1; elmR = t2; elmG = t1 - t3; +} +else if (elmH < 300) { +elmB = t1; elmG = t2; elmR = t2 + t3; +} +else if (elmH < 360) { +elmR = t1; elmG = t2; elmB = t1 - t3; +} +else { +elmR = 0; elmG = 0; elmB = 0; +} +} + +elmR = Math.floor(elmR); +elmG = Math.floor(elmG); +elmB = Math.floor(elmB); + +clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16); + +elmH = elmH + rate; +if (elmH >= 360) +elmH = 0; + +return clrRGB; +} diff --git a/phpBB2_old/templates/christmas/readme.txt b/phpBB2_old/templates/christmas/readme.txt new file mode 100644 index 0000000..1154bbf --- /dev/null +++ b/phpBB2_old/templates/christmas/readme.txt @@ -0,0 +1,24 @@ + + ############################################################################################### + ############################################################################################### + ############################################################################################### + # # + # Vous venez de télécharger ce template via le site : # + # # + # http://www.phpbb-design.com # + # # + ############################################################################################### + # # + # Nous vous conseillons de nous visiter régulièrement afin de vous tenir au courant # + # des mises à jours nécessaires au bon fonctionnement de votre forum phpBB. # + # # + ############################################################################################### + # # + # Ce thème à été trouvé en libre distribution sur le net. Nous ne faisons que # + # relayer sa diffusion, le tout gratuitement. Si vous êtes le créateur de ce template et # + # que vous souhaitez garder l'entière exclusivité de sa distribution, contactez nous par mail # + # à cette adresse : webmaster@phpbb-design.com # + # # + ############################################################################################### + #######################################################################################02#2004# + ############################################################################################### \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/search_body.tpl b/phpBB2_old/templates/christmas/search_body.tpl new file mode 100644 index 0000000..6621c41 --- /dev/null +++ b/phpBB2_old/templates/christmas/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/search_results_posts.tpl b/phpBB2_old/templates/christmas/search_results_posts.tpl new file mode 100644 index 0000000..912c501 --- /dev/null +++ b/phpBB2_old/templates/christmas/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/search_results_topics.tpl b/phpBB2_old/templates/christmas/search_results_topics.tpl new file mode 100644 index 0000000..22175ea --- /dev/null +++ b/phpBB2_old/templates/christmas/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas/search_username.tpl b/phpBB2_old/templates/christmas/search_username.tpl new file mode 100644 index 0000000..a2dace6 --- /dev/null +++ b/phpBB2_old/templates/christmas/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2_old/templates/christmas/simple_footer.tpl b/phpBB2_old/templates/christmas/simple_footer.tpl new file mode 100644 index 0000000..880aa47 --- /dev/null +++ b/phpBB2_old/templates/christmas/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    +
  • + + + diff --git a/phpBB2_old/templates/christmas/simple_header.tpl b/phpBB2_old/templates/christmas/simple_header.tpl new file mode 100644 index 0000000..f232c43 --- /dev/null +++ b/phpBB2_old/templates/christmas/simple_header.tpl @@ -0,0 +1,237 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2_old/templates/christmas/theme_info.cfg b/phpBB2_old/templates/christmas/theme_info.cfg new file mode 100644 index 0000000..fcb70c9 --- /dev/null +++ b/phpBB2_old/templates/christmas/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/viewforum_body.tpl b/phpBB2_old/templates/christmas/viewforum_body.tpl new file mode 100644 index 0000000..c87f57e --- /dev/null +++ b/phpBB2_old/templates/christmas/viewforum_body.tpl @@ -0,0 +1,93 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    +
    + + + + + + +
    {JUMPBOX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_TOPIC_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_TOPIC_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/viewonline_body.tpl b/phpBB2_old/templates/christmas/viewonline_body.tpl new file mode 100644 index 0000000..12568bb --- /dev/null +++ b/phpBB2_old/templates/christmas/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2_old/templates/christmas/viewtopic_body.tpl b/phpBB2_old/templates/christmas/viewtopic_body.tpl new file mode 100644 index 0000000..cff5e6b --- /dev/null +++ b/phpBB2_old/templates/christmas/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/christmas/viewtopic_poll_ballot.tpl b/phpBB2_old/templates/christmas/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..a9daffa --- /dev/null +++ b/phpBB2_old/templates/christmas/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ + +
    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas/viewtopic_poll_result.tpl b/phpBB2_old/templates/christmas/viewtopic_poll_result.tpl new file mode 100644 index 0000000..18eaa89 --- /dev/null +++ b/phpBB2_old/templates/christmas/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + +
    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    + + diff --git a/phpBB2_old/templates/christmas2/admin/admin_message_body.tpl b/phpBB2_old/templates/christmas2/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/auth_forum_body.tpl b/phpBB2_old/templates/christmas2/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas2/admin/auth_select_body.tpl b/phpBB2_old/templates/christmas2/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2_old/templates/christmas2/admin/auth_ug_body.tpl b/phpBB2_old/templates/christmas2/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas2/admin/board_config_body.tpl b/phpBB2_old/templates/christmas2/admin/board_config_body.tpl new file mode 100644 index 0000000..26515ed --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/board_config_body.tpl @@ -0,0 +1,248 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/category_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/db_utils_backup_body.tpl b/phpBB2_old/templates/christmas2/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/db_utils_restore_body.tpl b/phpBB2_old/templates/christmas2/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2_old/templates/christmas2/admin/disallow_body.tpl b/phpBB2_old/templates/christmas2/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2_old/templates/christmas2/admin/forum_admin_body.tpl b/phpBB2_old/templates/christmas2/admin/forum_admin_body.tpl new file mode 100644 index 0000000..ca64c2d --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2_old/templates/christmas2/admin/forum_delete_body.tpl b/phpBB2_old/templates/christmas2/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2_old/templates/christmas2/admin/forum_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/forum_prune_body.tpl b/phpBB2_old/templates/christmas2/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2_old/templates/christmas2/admin/forum_prune_result_body.tpl b/phpBB2_old/templates/christmas2/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/forum_prune_select_body.tpl b/phpBB2_old/templates/christmas2/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2_old/templates/christmas2/admin/group_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/group_select_body.tpl b/phpBB2_old/templates/christmas2/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/index.htm b/phpBB2_old/templates/christmas2/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/templates/christmas2/admin/index_body.tpl b/phpBB2_old/templates/christmas2/admin/index_body.tpl new file mode 100644 index 0000000..1f40246 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}dddddd{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/index_frameset.tpl b/phpBB2_old/templates/christmas2/admin/index_frameset.tpl new file mode 100644 index 0000000..fef79af --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/admin/index_navigate.tpl b/phpBB2_old/templates/christmas2/admin/index_navigate.tpl new file mode 100644 index 0000000..ec9f212 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/page_footer.tpl b/phpBB2_old/templates/christmas2/admin/page_footer.tpl new file mode 100644 index 0000000..278b360 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/admin/page_header.tpl b/phpBB2_old/templates/christmas2/admin/page_header.tpl new file mode 100644 index 0000000..cc690a8 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/page_header.tpl @@ -0,0 +1,10 @@ + + + +{META} + + +{SITENAME} - {L_PHPBB_ADMIN} + + + diff --git a/phpBB2_old/templates/christmas2/admin/ranks_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/ranks_list_body.tpl b/phpBB2_old/templates/christmas2/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/christmas2/admin/smile_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/smile_import_body.tpl b/phpBB2_old/templates/christmas2/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/smile_list_body.tpl b/phpBB2_old/templates/christmas2/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2_old/templates/christmas2/admin/styles_addnew_body.tpl b/phpBB2_old/templates/christmas2/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..6240a79 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2_old/templates/christmas2/admin/styles_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/styles_edit_body.tpl new file mode 100644 index 0000000..08cf721 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/styles_exporter.tpl b/phpBB2_old/templates/christmas2/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2_old/templates/christmas2/admin/styles_list_body.tpl b/phpBB2_old/templates/christmas2/admin/styles_list_body.tpl new file mode 100644 index 0000000..915fe49 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/christmas2/admin/user_avatar_gallery.tpl b/phpBB2_old/templates/christmas2/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas2/admin/user_ban_body.tpl b/phpBB2_old/templates/christmas2/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2_old/templates/christmas2/admin/user_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/user_edit_body.tpl new file mode 100644 index 0000000..359bdeb --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/user_email_body.tpl b/phpBB2_old/templates/christmas2/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2_old/templates/christmas2/admin/user_select_body.tpl b/phpBB2_old/templates/christmas2/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/words_edit_body.tpl b/phpBB2_old/templates/christmas2/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/admin/words_list_body.tpl b/phpBB2_old/templates/christmas2/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2_old/templates/christmas2/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmas2/agreement.tpl b/phpBB2_old/templates/christmas2/agreement.tpl new file mode 100644 index 0000000..5635a35 --- /dev/null +++ b/phpBB2_old/templates/christmas2/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2_old/templates/christmas2/bbcode.tpl b/phpBB2_old/templates/christmas2/bbcode.tpl new file mode 100644 index 0000000..caef76b --- /dev/null +++ b/phpBB2_old/templates/christmas2/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2_old/templates/christmas2/christmas2.cfg b/phpBB2_old/templates/christmas2/christmas2.cfg new file mode 100644 index 0000000..51fa5e4 --- /dev/null +++ b/phpBB2_old/templates/christmas2/christmas2.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/christmas2.css b/phpBB2_old/templates/christmas2/christmas2.css new file mode 100644 index 0000000..6015a8c --- /dev/null +++ b/phpBB2_old/templates/christmas2/christmas2.css @@ -0,0 +1,196 @@ +/* + The original subSilver Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #800000; +scrollbar-3dlight-color:#006600; +scrollbar-arrow-color:#FFFF80; +scrollbar-darkshadow-color:#066000; +scrollbar-face-color:#066000; +scrollbar-highlight-color:#008000; +scrollbar-shadow-color:##008000; +scrollbar-track-color:#008000} +} + +/* General font families for common tags */ +font,th,td,p { font:11px;font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #FFFFFF; text-decoration: none; font-weight: bold; } +a:hover { text-decoration: underline; color : #C0FFC0; } +hr { height: 0px; border: solid #FFFFFF 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline{background:#066000;color:#008000;border:8px ridge #C0FFC0} + +/* This is the outline round the main forum tables */ +.forumline{background:#33CC00;color:#008000;border:3px ridge #C0FFC0} + + +/* Main table cell colours and backgrounds */ +td.row1{background:#008000; color:#ffffff} +td.row2{background:#066000; color:#ffffff} +td.row3{background:#008000; color:#ffffff} + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic{background:#008000 repeat-y} + +/* Header cells - the blue and silver gradient backgrounds */ +th{background:url(images/cellpic3.gif) #066000;color:#FFFFFF;font-size:12px; +font-weight:bold;height:20px;white-space:nowrap} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); background-color:#066000; + color:#FFFFFF; height: 25px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #008000; border: #008000; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, + sans-serif;text-decoration: none; line-height : 120%; color : #FFFFFF; +} + + +/* General text */ +.gen { font-size : 11px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #FFFFFF; } +a.gen,a.genmed,a.gensmall { color: #FFFFFF; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #C0FFC0; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #FFFFFF } +a.mainmenu { text-decoration: none; color : #FFFFFF; } +a.mainmenu:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #FFFFFF} +a.cattitle { text-decoration: none; color : #FFFFFF; } +a.cattitle:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #FFFFFF; } +a.forumlink { text-decoration: none; color : #FFFFFF; } +a.forumlink:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #FFFFFF;} +a.nav { text-decoration: none; color : #FFFFFF; } +a.nav:hover { text-decoration: none; color : #C0FFC0; } + +.topnav{font-size:10px;background: #e5ebf3 url(images/cellpic1.gif) repeat-x;color:#dd6900; + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #FFFFFF; } +a.topictitle:link { text-decoration: none; color : #FFFFFF; } +a.topictitle:visited { text-decoration: none; color : #FFFFFF; } +a.topictitle:hover { text-decoration: none; color : #C0FFC0; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #FFFFFF;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #FFFFFF; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;color : #FFFFFF} +a.postlink:link { text-decoration: none; color : #FFFFFF } +a.postlink:visited { text-decoration: none; color : #FFFFFF; } +a.postlink:hover { text-decoration: none; color : #C0FFC0} + + +/* Quote & Code blocks */ +.code{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:11px Courier,"Courier New",sans-serif;padding:5px} + +.quote{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:bold 11px/125% Verdana,Arial,Helvetica,sans-serif} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; letter-spacing: -1px;} +a.copyright { color: #FFFFFF; text-decoration: none;} +a.copyright:hover { color: #FFFFFF; text-decoration: none;} + + +/* Form elements */ +input,textarea, select { + color : #FFFFFF; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #008000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select {background-color : #066000;} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #008000; + color : #FFFFFF; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #008000; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #008000;border-color : #ffffff; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #008000; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2_old/templates/christmas2/confirm_body.tpl b/phpBB2_old/templates/christmas2/confirm_body.tpl new file mode 100644 index 0000000..f79a643 --- /dev/null +++ b/phpBB2_old/templates/christmas2/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/christmas2/error_body.tpl b/phpBB2_old/templates/christmas2/error_body.tpl new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/phpBB2_old/templates/christmas2/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2_old/templates/christmas2/faq_body.tpl b/phpBB2_old/templates/christmas2/faq_body.tpl new file mode 100644 index 0000000..9b11149 --- /dev/null +++ b/phpBB2_old/templates/christmas2/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/formIE.css b/phpBB2_old/templates/christmas2/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2_old/templates/christmas2/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2_old/templates/christmas2/groupcp_info_body.tpl b/phpBB2_old/templates/christmas2/groupcp_info_body.tpl new file mode 100644 index 0000000..93875fa --- /dev/null +++ b/phpBB2_old/templates/christmas2/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/groupcp_pending_info.tpl b/phpBB2_old/templates/christmas2/groupcp_pending_info.tpl new file mode 100644 index 0000000..68f618c --- /dev/null +++ b/phpBB2_old/templates/christmas2/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2_old/templates/christmas2/groupcp_user_body.tpl b/phpBB2_old/templates/christmas2/groupcp_user_body.tpl new file mode 100644 index 0000000..8be36f6 --- /dev/null +++ b/phpBB2_old/templates/christmas2/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/images/Thumbs.db b/phpBB2_old/templates/christmas2/images/Thumbs.db new file mode 100644 index 0000000..0b8d72c Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/Thumbs.db differ diff --git a/phpBB2_old/templates/christmas2/images/banner.gif b/phpBB2_old/templates/christmas2/images/banner.gif new file mode 100644 index 0000000..9b3ab93 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/banner.gif differ diff --git a/phpBB2_old/templates/christmas2/images/cellpic.gif b/phpBB2_old/templates/christmas2/images/cellpic.gif new file mode 100644 index 0000000..58846d0 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/cellpic.gif differ diff --git a/phpBB2_old/templates/christmas2/images/cellpic1.gif b/phpBB2_old/templates/christmas2/images/cellpic1.gif new file mode 100644 index 0000000..44b3430 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/cellpic1.gif differ diff --git a/phpBB2_old/templates/christmas2/images/cellpic2.jpg b/phpBB2_old/templates/christmas2/images/cellpic2.jpg new file mode 100644 index 0000000..764c0e5 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/cellpic2.jpg differ diff --git a/phpBB2_old/templates/christmas2/images/cellpic3.gif b/phpBB2_old/templates/christmas2/images/cellpic3.gif new file mode 100644 index 0000000..e27cdfd Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/cellpic3.gif differ diff --git a/phpBB2_old/templates/christmas2/images/cellpic_bkg.gif b/phpBB2_old/templates/christmas2/images/cellpic_bkg.gif new file mode 100644 index 0000000..c806b23 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/cellpic_bkg.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder.gif b/phpBB2_old/templates/christmas2/images/folder.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_announce.gif b/phpBB2_old/templates/christmas2/images/folder_announce.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_announce.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_announce_new.gif b/phpBB2_old/templates/christmas2/images/folder_announce_new.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_announce_new.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_big.gif b/phpBB2_old/templates/christmas2/images/folder_big.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_big.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_hot.gif b/phpBB2_old/templates/christmas2/images/folder_hot.gif new file mode 100644 index 0000000..30ed45d Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_hot.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_lock.gif b/phpBB2_old/templates/christmas2/images/folder_lock.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_lock.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_lock_new.gif b/phpBB2_old/templates/christmas2/images/folder_lock_new.gif new file mode 100644 index 0000000..c1eb69c Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_lock_new.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_locked_big.gif b/phpBB2_old/templates/christmas2/images/folder_locked_big.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_locked_big.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_new.gif b/phpBB2_old/templates/christmas2/images/folder_new.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_new.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_new_big.gif b/phpBB2_old/templates/christmas2/images/folder_new_big.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_new_big.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_new_hot.gif b/phpBB2_old/templates/christmas2/images/folder_new_hot.gif new file mode 100644 index 0000000..d326aef Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_new_hot.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_sticky.gif b/phpBB2_old/templates/christmas2/images/folder_sticky.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_sticky.gif differ diff --git a/phpBB2_old/templates/christmas2/images/folder_sticky_new.gif b/phpBB2_old/templates/christmas2/images/folder_sticky_new.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/folder_sticky_new.gif differ diff --git a/phpBB2_old/templates/christmas2/images/icon_delete.gif b/phpBB2_old/templates/christmas2/images/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmas2/images/icon_latest_reply.gif b/phpBB2_old/templates/christmas2/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/icon_latest_reply.gif differ diff --git a/phpBB2_old/templates/christmas2/images/icon_mini.gif b/phpBB2_old/templates/christmas2/images/icon_mini.gif new file mode 100644 index 0000000..0108cd3 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/icon_mini.gif differ diff --git a/phpBB2_old/templates/christmas2/images/icon_minipost.gif b/phpBB2_old/templates/christmas2/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/icon_minipost.gif differ diff --git a/phpBB2_old/templates/christmas2/images/icon_minipost_new.gif b/phpBB2_old/templates/christmas2/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/icon_minipost_new.gif differ diff --git a/phpBB2_old/templates/christmas2/images/icon_newest_reply.gif b/phpBB2_old/templates/christmas2/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/icon_newest_reply.gif differ diff --git a/phpBB2_old/templates/christmas2/images/index.htm b/phpBB2_old/templates/christmas2/images/index.htm new file mode 100644 index 0000000..73b375a --- /dev/null +++ b/phpBB2_old/templates/christmas2/images/index.htm @@ -0,0 +1,16 @@ + + +christmas created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_aim.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_aim.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_delete.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_edit.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_edit.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_email.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_email.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_icq_add.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_ip.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_ip.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_msnm.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_pm.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_pm.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_profile.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_profile.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_quote.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..0f8d473 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_quote.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_search.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_search.gif new file mode 100644 index 0000000..205c02b Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_search.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_www.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_www.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/icon_yim.gif b/phpBB2_old/templates/christmas2/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/icon_yim.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/msg_newpost.gif b/phpBB2_old/templates/christmas2/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..30d5067 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/post.gif b/phpBB2_old/templates/christmas2/images/lang_english/post.gif new file mode 100644 index 0000000..5f60b0e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/post.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/reply-locked.gif b/phpBB2_old/templates/christmas2/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..88bf4a5 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/reply-locked.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_english/reply.gif b/phpBB2_old/templates/christmas2/images/lang_english/reply.gif new file mode 100644 index 0000000..226021e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_english/reply.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_aim.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_aim.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_delete.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_edit.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_edit.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_email.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_email.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_icq_add.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_ip.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_ip.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_msnm.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_msnm.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_pm.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_pm.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_profile.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_profile.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_quote.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_quote.gif new file mode 100644 index 0000000..d86b74e Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_quote.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_search.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_search.gif new file mode 100644 index 0000000..1de9f57 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_search.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_www.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_www.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/icon_yim.gif b/phpBB2_old/templates/christmas2/images/lang_german/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/icon_yim.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/index.html b/phpBB2_old/templates/christmas2/images/lang_german/index.html new file mode 100644 index 0000000..ab14856 --- /dev/null +++ b/phpBB2_old/templates/christmas2/images/lang_german/index.html @@ -0,0 +1,45 @@ + + + + + + +Forum Images :: FI Subsilver Images - German + + + + + + + + + + + + + + +
    FI Subsilver Images - German

     

    + + + + + + + +
    icon_aim.gificon_edit.gificon_email.gificon_icq_add.gificon_msnm.gificon_pm.gificon_profile.gificon_quote.gificon_search.gificon_www.gificon_yim.gificon_ip.gif
    msg_newpost.gifpost.gifreply.gifreply-locked.gif
    +

     

    +

    Close + Window

    +
    + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/images/lang_german/msg_newpost.gif b/phpBB2_old/templates/christmas2/images/lang_german/msg_newpost.gif new file mode 100644 index 0000000..a620bdf Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/msg_newpost.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/post.gif b/phpBB2_old/templates/christmas2/images/lang_german/post.gif new file mode 100644 index 0000000..b4f86bc Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/post.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/reply-locked.gif b/phpBB2_old/templates/christmas2/images/lang_german/reply-locked.gif new file mode 100644 index 0000000..d23d849 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/reply-locked.gif differ diff --git a/phpBB2_old/templates/christmas2/images/lang_german/reply.gif b/phpBB2_old/templates/christmas2/images/lang_german/reply.gif new file mode 100644 index 0000000..f1c8edd Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/lang_german/reply.gif differ diff --git a/phpBB2_old/templates/christmas2/images/logo_phpBB.gif b/phpBB2_old/templates/christmas2/images/logo_phpBB.gif new file mode 100644 index 0000000..f6d87ac Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/logo_phpBB.gif differ diff --git a/phpBB2_old/templates/christmas2/images/logo_phpBB2.gif b/phpBB2_old/templates/christmas2/images/logo_phpBB2.gif new file mode 100644 index 0000000..221b50d Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/logo_phpBB2.gif differ diff --git a/phpBB2_old/templates/christmas2/images/logo_phpBB_med.gif b/phpBB2_old/templates/christmas2/images/logo_phpBB_med.gif new file mode 100644 index 0000000..5b4e6b3 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/logo_phpBB_med.gif differ diff --git a/phpBB2_old/templates/christmas2/images/msg_inbox.gif b/phpBB2_old/templates/christmas2/images/msg_inbox.gif new file mode 100644 index 0000000..dc455b6 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/msg_inbox.gif differ diff --git a/phpBB2_old/templates/christmas2/images/msg_outbox.gif b/phpBB2_old/templates/christmas2/images/msg_outbox.gif new file mode 100644 index 0000000..a7b19b8 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/msg_outbox.gif differ diff --git a/phpBB2_old/templates/christmas2/images/msg_savebox.gif b/phpBB2_old/templates/christmas2/images/msg_savebox.gif new file mode 100644 index 0000000..8a5d7d2 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/msg_savebox.gif differ diff --git a/phpBB2_old/templates/christmas2/images/msg_sentbox.gif b/phpBB2_old/templates/christmas2/images/msg_sentbox.gif new file mode 100644 index 0000000..b157808 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/msg_sentbox.gif differ diff --git a/phpBB2_old/templates/christmas2/images/snow.gif b/phpBB2_old/templates/christmas2/images/snow.gif new file mode 100644 index 0000000..c29c435 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/snow.gif differ diff --git a/phpBB2_old/templates/christmas2/images/spacer.gif b/phpBB2_old/templates/christmas2/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/spacer.gif differ diff --git a/phpBB2_old/templates/christmas2/images/topic_delete.gif b/phpBB2_old/templates/christmas2/images/topic_delete.gif new file mode 100644 index 0000000..d1d3a62 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/topic_delete.gif differ diff --git a/phpBB2_old/templates/christmas2/images/topic_lock.gif b/phpBB2_old/templates/christmas2/images/topic_lock.gif new file mode 100644 index 0000000..3aadda3 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/topic_lock.gif differ diff --git a/phpBB2_old/templates/christmas2/images/topic_move.gif b/phpBB2_old/templates/christmas2/images/topic_move.gif new file mode 100644 index 0000000..af8b3c7 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/topic_move.gif differ diff --git a/phpBB2_old/templates/christmas2/images/topic_split.gif b/phpBB2_old/templates/christmas2/images/topic_split.gif new file mode 100644 index 0000000..977dedb Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/topic_split.gif differ diff --git a/phpBB2_old/templates/christmas2/images/topic_unlock.gif b/phpBB2_old/templates/christmas2/images/topic_unlock.gif new file mode 100644 index 0000000..a088619 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/topic_unlock.gif differ diff --git a/phpBB2_old/templates/christmas2/images/vote_lcap.gif b/phpBB2_old/templates/christmas2/images/vote_lcap.gif new file mode 100644 index 0000000..22e1080 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/vote_lcap.gif differ diff --git a/phpBB2_old/templates/christmas2/images/vote_rcap.gif b/phpBB2_old/templates/christmas2/images/vote_rcap.gif new file mode 100644 index 0000000..28da06f Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/vote_rcap.gif differ diff --git a/phpBB2_old/templates/christmas2/images/voting_bar.gif b/phpBB2_old/templates/christmas2/images/voting_bar.gif new file mode 100644 index 0000000..ced112d Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/voting_bar.gif differ diff --git a/phpBB2_old/templates/christmas2/images/whosonline.gif b/phpBB2_old/templates/christmas2/images/whosonline.gif new file mode 100644 index 0000000..3bea906 Binary files /dev/null and b/phpBB2_old/templates/christmas2/images/whosonline.gif differ diff --git a/phpBB2_old/templates/christmas2/index.htm b/phpBB2_old/templates/christmas2/index.htm new file mode 100644 index 0000000..47b206d --- /dev/null +++ b/phpBB2_old/templates/christmas2/index.htm @@ -0,0 +1,16 @@ + + +christmas2 created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/index_body.tpl b/phpBB2_old/templates/christmas2/index_body.tpl new file mode 100644 index 0000000..d8d5b89 --- /dev/null +++ b/phpBB2_old/templates/christmas2/index_body.tpl @@ -0,0 +1,104 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC}
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/christmas2/jumpbox.tpl b/phpBB2_old/templates/christmas2/jumpbox.tpl new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/phpBB2_old/templates/christmas2/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2_old/templates/christmas2/login_body.tpl b/phpBB2_old/templates/christmas2/login_body.tpl new file mode 100644 index 0000000..50d7f71 --- /dev/null +++ b/phpBB2_old/templates/christmas2/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2_old/templates/christmas2/memberlist_body.tpl b/phpBB2_old/templates/christmas2/memberlist_body.tpl new file mode 100644 index 0000000..af1340d --- /dev/null +++ b/phpBB2_old/templates/christmas2/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/message_body.tpl b/phpBB2_old/templates/christmas2/message_body.tpl new file mode 100644 index 0000000..6be7f51 --- /dev/null +++ b/phpBB2_old/templates/christmas2/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2_old/templates/christmas2/modcp_body.tpl b/phpBB2_old/templates/christmas2/modcp_body.tpl new file mode 100644 index 0000000..fd0fe1b --- /dev/null +++ b/phpBB2_old/templates/christmas2/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/modcp_move.tpl b/phpBB2_old/templates/christmas2/modcp_move.tpl new file mode 100644 index 0000000..730952c --- /dev/null +++ b/phpBB2_old/templates/christmas2/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2_old/templates/christmas2/modcp_split.tpl b/phpBB2_old/templates/christmas2/modcp_split.tpl new file mode 100644 index 0000000..3de4e2c --- /dev/null +++ b/phpBB2_old/templates/christmas2/modcp_split.tpl @@ -0,0 +1,85 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2_old/templates/christmas2/modcp_viewip.tpl b/phpBB2_old/templates/christmas2/modcp_viewip.tpl new file mode 100644 index 0000000..d497d88 --- /dev/null +++ b/phpBB2_old/templates/christmas2/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2_old/templates/christmas2/overall_footer.tpl b/phpBB2_old/templates/christmas2/overall_footer.tpl new file mode 100644 index 0000000..dffcc72 --- /dev/null +++ b/phpBB2_old/templates/christmas2/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO} +
    Original Template   Modify Template by   BremerJunge
    +
    + + + diff --git a/phpBB2_old/templates/christmas2/overall_header.tpl b/phpBB2_old/templates/christmas2/overall_header.tpl new file mode 100644 index 0000000..cfe0d02 --- /dev/null +++ b/phpBB2_old/templates/christmas2/overall_header.tpl @@ -0,0 +1,155 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2_old/templates/christmas2/posting_preview.tpl b/phpBB2_old/templates/christmas2/posting_preview.tpl new file mode 100644 index 0000000..18e2895 --- /dev/null +++ b/phpBB2_old/templates/christmas2/posting_preview.tpl @@ -0,0 +1,23 @@ + +
    + + + + +
    {L_INDEX}{SITENAME}
    {SITE_DESCRIPTION}
     
    + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    +
    + +
    diff --git a/phpBB2_old/templates/christmas2/posting_body.tpl b/phpBB2_old/templates/christmas2/posting_body.tpl new file mode 100644 index 0000000..c16b19c --- /dev/null +++ b/phpBB2_old/templates/christmas2/posting_body.tpl @@ -0,0 +1,481 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2_old/templates/christmas2/posting_poll_body.tpl b/phpBB2_old/templates/christmas2/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2_old/templates/christmas2/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2_old/templates/christmas2/posting_smilies.tpl b/phpBB2_old/templates/christmas2/posting_smilies.tpl new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/phpBB2_old/templates/christmas2/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2_old/templates/christmas2/posting_topic_review.tpl b/phpBB2_old/templates/christmas2/posting_topic_review.tpl new file mode 100644 index 0000000..cbef5f3 --- /dev/null +++ b/phpBB2_old/templates/christmas2/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2_old/templates/christmas2/privmsgs_body.tpl b/phpBB2_old/templates/christmas2/privmsgs_body.tpl new file mode 100644 index 0000000..41611c9 --- /dev/null +++ b/phpBB2_old/templates/christmas2/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/privmsgs_popup.tpl b/phpBB2_old/templates/christmas2/privmsgs_popup.tpl new file mode 100644 index 0000000..e48205b --- /dev/null +++ b/phpBB2_old/templates/christmas2/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2_old/templates/christmas2/privmsgs_preview.tpl b/phpBB2_old/templates/christmas2/privmsgs_preview.tpl new file mode 100644 index 0000000..ba2ed93 --- /dev/null +++ b/phpBB2_old/templates/christmas2/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2_old/templates/christmas2/privmsgs_read_body.tpl b/phpBB2_old/templates/christmas2/privmsgs_read_body.tpl new file mode 100644 index 0000000..3c85e6a --- /dev/null +++ b/phpBB2_old/templates/christmas2/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/profile_add_body.tpl b/phpBB2_old/templates/christmas2/profile_add_body.tpl new file mode 100644 index 0000000..ede3217 --- /dev/null +++ b/phpBB2_old/templates/christmas2/profile_add_body.tpl @@ -0,0 +1,274 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/christmas2/profile_avatar_gallery.tpl b/phpBB2_old/templates/christmas2/profile_avatar_gallery.tpl new file mode 100644 index 0000000..9be5375 --- /dev/null +++ b/phpBB2_old/templates/christmas2/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas2/profile_send_email.tpl b/phpBB2_old/templates/christmas2/profile_send_email.tpl new file mode 100644 index 0000000..86c28cb --- /dev/null +++ b/phpBB2_old/templates/christmas2/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/profile_send_pass.tpl b/phpBB2_old/templates/christmas2/profile_send_pass.tpl new file mode 100644 index 0000000..8d31aa4 --- /dev/null +++ b/phpBB2_old/templates/christmas2/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmas2/profile_view_body.tpl b/phpBB2_old/templates/christmas2/profile_view_body.tpl new file mode 100644 index 0000000..a9c3c6f --- /dev/null +++ b/phpBB2_old/templates/christmas2/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/search_body.tpl b/phpBB2_old/templates/christmas2/search_body.tpl new file mode 100644 index 0000000..d1316df --- /dev/null +++ b/phpBB2_old/templates/christmas2/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/search_results_posts.tpl b/phpBB2_old/templates/christmas2/search_results_posts.tpl new file mode 100644 index 0000000..fc5f0b8 --- /dev/null +++ b/phpBB2_old/templates/christmas2/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/search_results_topics.tpl b/phpBB2_old/templates/christmas2/search_results_topics.tpl new file mode 100644 index 0000000..be0d424 --- /dev/null +++ b/phpBB2_old/templates/christmas2/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmas2/search_username.tpl b/phpBB2_old/templates/christmas2/search_username.tpl new file mode 100644 index 0000000..611ec3f --- /dev/null +++ b/phpBB2_old/templates/christmas2/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2_old/templates/christmas2/simple_footer.tpl b/phpBB2_old/templates/christmas2/simple_footer.tpl new file mode 100644 index 0000000..68c2b00 --- /dev/null +++ b/phpBB2_old/templates/christmas2/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    + + + + + + diff --git a/phpBB2_old/templates/christmas2/simple_header.tpl b/phpBB2_old/templates/christmas2/simple_header.tpl new file mode 100644 index 0000000..6e2da20 --- /dev/null +++ b/phpBB2_old/templates/christmas2/simple_header.tpl @@ -0,0 +1,17 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2_old/templates/christmas2/theme_info.cfg b/phpBB2_old/templates/christmas2/theme_info.cfg new file mode 100644 index 0000000..433e876 --- /dev/null +++ b/phpBB2_old/templates/christmas2/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/viewforum_body.tpl b/phpBB2_old/templates/christmas2/viewforum_body.tpl new file mode 100644 index 0000000..b1414f7 --- /dev/null +++ b/phpBB2_old/templates/christmas2/viewforum_body.tpl @@ -0,0 +1,98 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/christmas2/viewonline_body.tpl b/phpBB2_old/templates/christmas2/viewonline_body.tpl new file mode 100644 index 0000000..5d0cacb --- /dev/null +++ b/phpBB2_old/templates/christmas2/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2_old/templates/christmas2/viewtopic_body.tpl b/phpBB2_old/templates/christmas2/viewtopic_body.tpl new file mode 100644 index 0000000..91c0894 --- /dev/null +++ b/phpBB2_old/templates/christmas2/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/christmas2/viewtopic_poll_ballot.tpl b/phpBB2_old/templates/christmas2/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..1e0cb21 --- /dev/null +++ b/phpBB2_old/templates/christmas2/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ + +
    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    + \ No newline at end of file diff --git a/phpBB2_old/templates/christmas2/viewtopic_poll_result.tpl b/phpBB2_old/templates/christmas2/viewtopic_poll_result.tpl new file mode 100644 index 0000000..d841400 --- /dev/null +++ b/phpBB2_old/templates/christmas2/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + +
    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/admin_message_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/auth_forum_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/auth_select_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/auth_ug_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/board_config_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/board_config_body.tpl new file mode 100644 index 0000000..26515ed --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/board_config_body.tpl @@ -0,0 +1,248 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/category_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/db_utils_backup_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/db_utils_restore_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/disallow_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/forum_admin_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_admin_body.tpl new file mode 100644 index 0000000..c06388a --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/forum_delete_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/forum_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_result_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_select_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/group_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/group_select_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/index.htm b/phpBB2_old/templates/christmasWithoutSnow/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/index_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/index_body.tpl new file mode 100644 index 0000000..5cb4277 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}dddddd{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/index_frameset.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/index_frameset.tpl new file mode 100644 index 0000000..fef79af --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/index_navigate.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/index_navigate.tpl new file mode 100644 index 0000000..ac18bdd --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/page_footer.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/page_footer.tpl new file mode 100644 index 0000000..278b360 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/page_header.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/page_header.tpl new file mode 100644 index 0000000..6246e8f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/page_header.tpl @@ -0,0 +1,10 @@ + + + +{META} + + +{SITENAME} - {L_PHPBB_ADMIN} + + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/ranks_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/ranks_list_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/smile_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/smile_import_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/smile_list_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/styles_addnew_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..6240a79 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/styles_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_edit_body.tpl new file mode 100644 index 0000000..08cf721 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/styles_exporter.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/styles_list_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_list_body.tpl new file mode 100644 index 0000000..915fe49 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/user_avatar_gallery.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/user_ban_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/user_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/user_edit_body.tpl new file mode 100644 index 0000000..359bdeb --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/user_email_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/user_select_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/words_edit_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/admin/words_list_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/agreement.tpl b/phpBB2_old/templates/christmasWithoutSnow/agreement.tpl new file mode 100644 index 0000000..5635a35 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2_old/templates/christmasWithoutSnow/bbcode.tpl b/phpBB2_old/templates/christmasWithoutSnow/bbcode.tpl new file mode 100644 index 0000000..caef76b --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2_old/templates/christmasWithoutSnow/christmasWithoutSnow.cfg b/phpBB2_old/templates/christmasWithoutSnow/christmasWithoutSnow.cfg new file mode 100644 index 0000000..51fa5e4 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/christmasWithoutSnow.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/christmasWithoutSnow.css b/phpBB2_old/templates/christmasWithoutSnow/christmasWithoutSnow.css new file mode 100644 index 0000000..6015a8c --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/christmasWithoutSnow.css @@ -0,0 +1,196 @@ +/* + The original subSilver Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #800000; +scrollbar-3dlight-color:#006600; +scrollbar-arrow-color:#FFFF80; +scrollbar-darkshadow-color:#066000; +scrollbar-face-color:#066000; +scrollbar-highlight-color:#008000; +scrollbar-shadow-color:##008000; +scrollbar-track-color:#008000} +} + +/* General font families for common tags */ +font,th,td,p { font:11px;font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #FFFFFF; text-decoration: none; font-weight: bold; } +a:hover { text-decoration: underline; color : #C0FFC0; } +hr { height: 0px; border: solid #FFFFFF 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline{background:#066000;color:#008000;border:8px ridge #C0FFC0} + +/* This is the outline round the main forum tables */ +.forumline{background:#33CC00;color:#008000;border:3px ridge #C0FFC0} + + +/* Main table cell colours and backgrounds */ +td.row1{background:#008000; color:#ffffff} +td.row2{background:#066000; color:#ffffff} +td.row3{background:#008000; color:#ffffff} + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic{background:#008000 repeat-y} + +/* Header cells - the blue and silver gradient backgrounds */ +th{background:url(images/cellpic3.gif) #066000;color:#FFFFFF;font-size:12px; +font-weight:bold;height:20px;white-space:nowrap} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); background-color:#066000; + color:#FFFFFF; height: 25px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #008000; border: #008000; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, + sans-serif;text-decoration: none; line-height : 120%; color : #FFFFFF; +} + + +/* General text */ +.gen { font-size : 11px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #FFFFFF; } +a.gen,a.genmed,a.gensmall { color: #FFFFFF; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #C0FFC0; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #FFFFFF } +a.mainmenu { text-decoration: none; color : #FFFFFF; } +a.mainmenu:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #FFFFFF} +a.cattitle { text-decoration: none; color : #FFFFFF; } +a.cattitle:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #FFFFFF; } +a.forumlink { text-decoration: none; color : #FFFFFF; } +a.forumlink:hover{ text-decoration: none; color : #C0FFC0; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #FFFFFF;} +a.nav { text-decoration: none; color : #FFFFFF; } +a.nav:hover { text-decoration: none; color : #C0FFC0; } + +.topnav{font-size:10px;background: #e5ebf3 url(images/cellpic1.gif) repeat-x;color:#dd6900; + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #FFFFFF; } +a.topictitle:link { text-decoration: none; color : #FFFFFF; } +a.topictitle:visited { text-decoration: none; color : #FFFFFF; } +a.topictitle:hover { text-decoration: none; color : #C0FFC0; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #FFFFFF;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #FFFFFF; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;color : #FFFFFF} +a.postlink:link { text-decoration: none; color : #FFFFFF } +a.postlink:visited { text-decoration: none; color : #FFFFFF; } +a.postlink:hover { text-decoration: none; color : #C0FFC0} + + +/* Quote & Code blocks */ +.code{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:11px Courier,"Courier New",sans-serif;padding:5px} + +.quote{background:#C0FFC0;border:1px dashed #FFFFFF;color:#000000; +font:bold 11px/125% Verdana,Arial,Helvetica,sans-serif} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; letter-spacing: -1px;} +a.copyright { color: #FFFFFF; text-decoration: none;} +a.copyright:hover { color: #FFFFFF; text-decoration: none;} + + +/* Form elements */ +input,textarea, select { + color : #FFFFFF; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #008000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select {background-color : #066000;} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #008000; + color : #FFFFFF; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #008000; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #008000;border-color : #ffffff; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #008000; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2_old/templates/christmasWithoutSnow/confirm_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/confirm_body.tpl new file mode 100644 index 0000000..f79a643 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/error_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/error_body.tpl new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/faq_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/faq_body.tpl new file mode 100644 index 0000000..321d945 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/formIE.css b/phpBB2_old/templates/christmasWithoutSnow/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2_old/templates/christmasWithoutSnow/groupcp_info_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/groupcp_info_body.tpl new file mode 100644 index 0000000..93875fa --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/groupcp_pending_info.tpl b/phpBB2_old/templates/christmasWithoutSnow/groupcp_pending_info.tpl new file mode 100644 index 0000000..68f618c --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/groupcp_user_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/groupcp_user_body.tpl new file mode 100644 index 0000000..8be36f6 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/Thumbs.db b/phpBB2_old/templates/christmasWithoutSnow/images/Thumbs.db new file mode 100644 index 0000000..0b8d72c Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/Thumbs.db differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/banner.gif b/phpBB2_old/templates/christmasWithoutSnow/images/banner.gif new file mode 100644 index 0000000..9b3ab93 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/banner.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/cellpic.gif b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic.gif new file mode 100644 index 0000000..58846d0 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/cellpic1.gif b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic1.gif new file mode 100644 index 0000000..44b3430 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic1.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/cellpic2.jpg b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic2.jpg new file mode 100644 index 0000000..764c0e5 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic2.jpg differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/cellpic3.gif b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic3.gif new file mode 100644 index 0000000..e27cdfd Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic3.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/cellpic_bkg.gif b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic_bkg.gif new file mode 100644 index 0000000..c806b23 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/cellpic_bkg.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_announce.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_announce.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_announce.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_announce_new.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_announce_new.gif new file mode 100644 index 0000000..b290827 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_announce_new.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_big.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_big.gif new file mode 100644 index 0000000..c2e74f5 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_big.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_hot.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_hot.gif new file mode 100644 index 0000000..30ed45d Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_hot.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_lock.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_lock.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_lock.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_lock_new.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_lock_new.gif new file mode 100644 index 0000000..c1eb69c Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_lock_new.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_locked_big.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_locked_big.gif new file mode 100644 index 0000000..f782f79 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_locked_big.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_new.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_new.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_new.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_new_big.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_new_big.gif new file mode 100644 index 0000000..aea561b Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_new_big.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_new_hot.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_new_hot.gif new file mode 100644 index 0000000..d326aef Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_new_hot.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_sticky.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_sticky.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_sticky.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/folder_sticky_new.gif b/phpBB2_old/templates/christmasWithoutSnow/images/folder_sticky_new.gif new file mode 100644 index 0000000..a5fadc9 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/folder_sticky_new.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/icon_delete.gif b/phpBB2_old/templates/christmasWithoutSnow/images/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/icon_latest_reply.gif b/phpBB2_old/templates/christmasWithoutSnow/images/icon_latest_reply.gif new file mode 100644 index 0000000..b45e57a Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/icon_latest_reply.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/icon_mini.gif b/phpBB2_old/templates/christmasWithoutSnow/images/icon_mini.gif new file mode 100644 index 0000000..0108cd3 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/icon_mini.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/icon_minipost.gif b/phpBB2_old/templates/christmasWithoutSnow/images/icon_minipost.gif new file mode 100644 index 0000000..d172abb Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/icon_minipost.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/icon_minipost_new.gif b/phpBB2_old/templates/christmasWithoutSnow/images/icon_minipost_new.gif new file mode 100644 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/icon_minipost_new.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/icon_newest_reply.gif b/phpBB2_old/templates/christmasWithoutSnow/images/icon_newest_reply.gif new file mode 100644 index 0000000..eca2861 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/icon_newest_reply.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/index.htm b/phpBB2_old/templates/christmasWithoutSnow/images/index.htm new file mode 100644 index 0000000..73b375a --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/images/index.htm @@ -0,0 +1,16 @@ + + +christmas created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_aim.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_aim.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_delete.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_edit.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_edit.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_email.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_email.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_icq_add.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_ip.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_ip.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_msnm.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_pm.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_pm.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_profile.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_profile.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_quote.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_quote.gif new file mode 100644 index 0000000..0f8d473 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_quote.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_search.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_search.gif new file mode 100644 index 0000000..205c02b Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_search.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_www.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_www.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_yim.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/icon_yim.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/msg_newpost.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/msg_newpost.gif new file mode 100644 index 0000000..30d5067 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/post.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/post.gif new file mode 100644 index 0000000..5f60b0e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/post.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/reply-locked.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/reply-locked.gif new file mode 100644 index 0000000..88bf4a5 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/reply-locked.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/reply.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/reply.gif new file mode 100644 index 0000000..226021e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_english/reply.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_aim.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_aim.gif new file mode 100644 index 0000000..a4a0dc5 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_aim.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_delete.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_delete.gif new file mode 100644 index 0000000..4e3fc6c Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_delete.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_edit.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_edit.gif new file mode 100644 index 0000000..813d24d Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_edit.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_email.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_email.gif new file mode 100644 index 0000000..37dbdeb Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_email.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_icq_add.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_icq_add.gif new file mode 100644 index 0000000..b306aea Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_ip.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_ip.gif new file mode 100644 index 0000000..2645d3e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_ip.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_msnm.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_msnm.gif new file mode 100644 index 0000000..b6591f6 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_msnm.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_pm.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_pm.gif new file mode 100644 index 0000000..ce2db4e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_pm.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_profile.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_profile.gif new file mode 100644 index 0000000..769e6da Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_profile.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_quote.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_quote.gif new file mode 100644 index 0000000..d86b74e Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_quote.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_search.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_search.gif new file mode 100644 index 0000000..1de9f57 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_search.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_www.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_www.gif new file mode 100644 index 0000000..6d94cc1 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_www.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_yim.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_yim.gif new file mode 100644 index 0000000..15d0702 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/icon_yim.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/index.html b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/index.html new file mode 100644 index 0000000..ab14856 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/index.html @@ -0,0 +1,45 @@ + + + + + + +Forum Images :: FI Subsilver Images - German + + + + + + + + + + + + + + +
    FI Subsilver Images - German

     

    + + + + + + + +
    icon_aim.gificon_edit.gificon_email.gificon_icq_add.gificon_msnm.gificon_pm.gificon_profile.gificon_quote.gificon_search.gificon_www.gificon_yim.gificon_ip.gif
    msg_newpost.gifpost.gifreply.gifreply-locked.gif
    +

     

    +

    Close + Window

    +
    + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/msg_newpost.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/msg_newpost.gif new file mode 100644 index 0000000..a620bdf Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/msg_newpost.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/post.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/post.gif new file mode 100644 index 0000000..b4f86bc Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/post.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/reply-locked.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/reply-locked.gif new file mode 100644 index 0000000..d23d849 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/reply-locked.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/reply.gif b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/reply.gif new file mode 100644 index 0000000..f1c8edd Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/lang_german/reply.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB.gif b/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB.gif new file mode 100644 index 0000000..f6d87ac Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB2.gif b/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB2.gif new file mode 100644 index 0000000..221b50d Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB2.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB_med.gif b/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB_med.gif new file mode 100644 index 0000000..5b4e6b3 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/logo_phpBB_med.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/msg_inbox.gif b/phpBB2_old/templates/christmasWithoutSnow/images/msg_inbox.gif new file mode 100644 index 0000000..dc455b6 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/msg_inbox.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/msg_outbox.gif b/phpBB2_old/templates/christmasWithoutSnow/images/msg_outbox.gif new file mode 100644 index 0000000..a7b19b8 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/msg_outbox.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/msg_savebox.gif b/phpBB2_old/templates/christmasWithoutSnow/images/msg_savebox.gif new file mode 100644 index 0000000..8a5d7d2 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/msg_savebox.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/msg_sentbox.gif b/phpBB2_old/templates/christmasWithoutSnow/images/msg_sentbox.gif new file mode 100644 index 0000000..b157808 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/msg_sentbox.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/snow.gif b/phpBB2_old/templates/christmasWithoutSnow/images/snow.gif new file mode 100644 index 0000000..c29c435 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/snow.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/spacer.gif b/phpBB2_old/templates/christmasWithoutSnow/images/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/spacer.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/topic_delete.gif b/phpBB2_old/templates/christmasWithoutSnow/images/topic_delete.gif new file mode 100644 index 0000000..d1d3a62 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/topic_delete.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/topic_lock.gif b/phpBB2_old/templates/christmasWithoutSnow/images/topic_lock.gif new file mode 100644 index 0000000..3aadda3 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/topic_lock.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/topic_move.gif b/phpBB2_old/templates/christmasWithoutSnow/images/topic_move.gif new file mode 100644 index 0000000..af8b3c7 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/topic_move.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/topic_split.gif b/phpBB2_old/templates/christmasWithoutSnow/images/topic_split.gif new file mode 100644 index 0000000..977dedb Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/topic_split.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/topic_unlock.gif b/phpBB2_old/templates/christmasWithoutSnow/images/topic_unlock.gif new file mode 100644 index 0000000..a088619 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/topic_unlock.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/vote_lcap.gif b/phpBB2_old/templates/christmasWithoutSnow/images/vote_lcap.gif new file mode 100644 index 0000000..22e1080 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/vote_lcap.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/vote_rcap.gif b/phpBB2_old/templates/christmasWithoutSnow/images/vote_rcap.gif new file mode 100644 index 0000000..28da06f Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/vote_rcap.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/voting_bar.gif b/phpBB2_old/templates/christmasWithoutSnow/images/voting_bar.gif new file mode 100644 index 0000000..ced112d Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/voting_bar.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/images/whosonline.gif b/phpBB2_old/templates/christmasWithoutSnow/images/whosonline.gif new file mode 100644 index 0000000..3bea906 Binary files /dev/null and b/phpBB2_old/templates/christmasWithoutSnow/images/whosonline.gif differ diff --git a/phpBB2_old/templates/christmasWithoutSnow/index.htm b/phpBB2_old/templates/christmasWithoutSnow/index.htm new file mode 100644 index 0000000..47b206d --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/index.htm @@ -0,0 +1,16 @@ + + +christmas2 created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/index_body b/phpBB2_old/templates/christmasWithoutSnow/index_body new file mode 100644 index 0000000..f714a0f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/index_body @@ -0,0 +1,104 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC}
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/index_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/index_body.tpl new file mode 100644 index 0000000..f714a0f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/index_body.tpl @@ -0,0 +1,104 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC}
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/jumpbox.tpl b/phpBB2_old/templates/christmasWithoutSnow/jumpbox.tpl new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/login_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/login_body.tpl new file mode 100644 index 0000000..50d7f71 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/memberlist_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/memberlist_body.tpl new file mode 100644 index 0000000..af1340d --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/message_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/message_body.tpl new file mode 100644 index 0000000..6be7f51 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/modcp_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/modcp_body.tpl new file mode 100644 index 0000000..fd0fe1b --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/modcp_move.tpl b/phpBB2_old/templates/christmasWithoutSnow/modcp_move.tpl new file mode 100644 index 0000000..730952c --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/modcp_split.tpl b/phpBB2_old/templates/christmasWithoutSnow/modcp_split.tpl new file mode 100644 index 0000000..837544c --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/modcp_split.tpl @@ -0,0 +1,85 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/modcp_viewip.tpl b/phpBB2_old/templates/christmasWithoutSnow/modcp_viewip.tpl new file mode 100644 index 0000000..d497d88 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/overall_footer.tpl b/phpBB2_old/templates/christmasWithoutSnow/overall_footer.tpl new file mode 100644 index 0000000..c0750a1 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO} +
    Original Template   Modify Template by   BremerJunge
    +
    + + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/overall_header b/phpBB2_old/templates/christmasWithoutSnow/overall_header new file mode 100644 index 0000000..eae5c10 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/overall_header @@ -0,0 +1,47 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + +
    + + + + +
    {L_INDEX}{SITENAME}
    {SITE_DESCRIPTION}
     
    + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/overall_header.tpl b/phpBB2_old/templates/christmasWithoutSnow/overall_header.tpl new file mode 100644 index 0000000..eae5c10 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/overall_header.tpl @@ -0,0 +1,47 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_preview b/phpBB2_old/templates/christmasWithoutSnow/posting_preview new file mode 100644 index 0000000..6479929 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_preview @@ -0,0 +1,23 @@ + +
    + + + + +
    {L_INDEX}{SITENAME}
    {SITE_DESCRIPTION}
     
    + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/posting_body.tpl new file mode 100644 index 0000000..c16b19c --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_body.tpl @@ -0,0 +1,481 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_poll_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_preview.tpl b/phpBB2_old/templates/christmasWithoutSnow/posting_preview.tpl new file mode 100644 index 0000000..6479929 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_preview.tpl @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_smilies.tpl b/phpBB2_old/templates/christmasWithoutSnow/posting_smilies.tpl new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_topic_review b/phpBB2_old/templates/christmasWithoutSnow/posting_topic_review new file mode 100644 index 0000000..9bc0bfa --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_topic_review @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2_old/templates/christmasWithoutSnow/posting_topic_review.tpl b/phpBB2_old/templates/christmasWithoutSnow/posting_topic_review.tpl new file mode 100644 index 0000000..9bc0bfa --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2_old/templates/christmasWithoutSnow/privmsgs_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_body.tpl new file mode 100644 index 0000000..9422071 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/privmsgs_popup.tpl b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_popup.tpl new file mode 100644 index 0000000..e48205b --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/privmsgs_preview.tpl b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_preview.tpl new file mode 100644 index 0000000..ba2ed93 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/privmsgs_read_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_read_body.tpl new file mode 100644 index 0000000..3c85e6a --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/profile_add_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/profile_add_body.tpl new file mode 100644 index 0000000..ede3217 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/profile_add_body.tpl @@ -0,0 +1,274 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/profile_avatar_gallery.tpl b/phpBB2_old/templates/christmasWithoutSnow/profile_avatar_gallery.tpl new file mode 100644 index 0000000..9be5375 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/profile_send_email.tpl b/phpBB2_old/templates/christmasWithoutSnow/profile_send_email.tpl new file mode 100644 index 0000000..86c28cb --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/profile_send_pass.tpl b/phpBB2_old/templates/christmasWithoutSnow/profile_send_pass.tpl new file mode 100644 index 0000000..8d31aa4 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/profile_view_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/profile_view_body.tpl new file mode 100644 index 0000000..a9c3c6f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/search_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/search_body.tpl new file mode 100644 index 0000000..d1316df --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/search_results_posts.tpl b/phpBB2_old/templates/christmasWithoutSnow/search_results_posts.tpl new file mode 100644 index 0000000..edb8e76 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/search_results_topics.tpl b/phpBB2_old/templates/christmasWithoutSnow/search_results_topics.tpl new file mode 100644 index 0000000..be0d424 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/search_username.tpl b/phpBB2_old/templates/christmasWithoutSnow/search_username.tpl new file mode 100644 index 0000000..611ec3f --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/simple_footer.tpl b/phpBB2_old/templates/christmasWithoutSnow/simple_footer.tpl new file mode 100644 index 0000000..68c2b00 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    +
    + + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/simple_header.tpl b/phpBB2_old/templates/christmasWithoutSnow/simple_header.tpl new file mode 100644 index 0000000..90a4fb9 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/simple_header.tpl @@ -0,0 +1,17 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2_old/templates/christmasWithoutSnow/theme_info.cfg b/phpBB2_old/templates/christmasWithoutSnow/theme_info.cfg new file mode 100644 index 0000000..bc48162 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/viewforum_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/viewforum_body.tpl new file mode 100644 index 0000000..b1414f7 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/viewforum_body.tpl @@ -0,0 +1,98 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/viewonline_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/viewonline_body.tpl new file mode 100644 index 0000000..d68a180 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2_old/templates/christmasWithoutSnow/viewtopic_body.tpl b/phpBB2_old/templates/christmasWithoutSnow/viewtopic_body.tpl new file mode 100644 index 0000000..a699f7d --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/christmasWithoutSnow/viewtopic_poll_ballot.tpl b/phpBB2_old/templates/christmasWithoutSnow/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..1e0cb21 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ + +
    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}
    + \ No newline at end of file diff --git a/phpBB2_old/templates/christmasWithoutSnow/viewtopic_poll_result.tpl b/phpBB2_old/templates/christmasWithoutSnow/viewtopic_poll_result.tpl new file mode 100644 index 0000000..e0cc347 --- /dev/null +++ b/phpBB2_old/templates/christmasWithoutSnow/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + +
    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    + + diff --git a/phpBB2_old/templates/helius_english.zip b/phpBB2_old/templates/helius_english.zip new file mode 100644 index 0000000..f2343a6 Binary files /dev/null and b/phpBB2_old/templates/helius_english.zip differ diff --git a/phpBB2_old/templates/index.htm b/phpBB2_old/templates/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/templates/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/templates/subSilver/admin/admin_message_body.tpl b/phpBB2_old/templates/subSilver/admin/admin_message_body.tpl new file mode 100644 index 0000000..68e69ca --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/admin_message_body.tpl @@ -0,0 +1,13 @@ + +

    + + + + + + + + +
    {MESSAGE_TITLE}
    {MESSAGE_TEXT}
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/auth_forum_body.tpl b/phpBB2_old/templates/subSilver/admin/auth_forum_body.tpl new file mode 100644 index 0000000..7e58992 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/auth_forum_body.tpl @@ -0,0 +1,31 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + + + + + + + + +
    {forum_auth_titles.CELL_TITLE}
    {forum_auth_data.S_AUTH_LEVELS_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/subSilver/admin/auth_select_body.tpl b/phpBB2_old/templates/subSilver/admin/auth_select_body.tpl new file mode 100644 index 0000000..b1fdd98 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/auth_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_AUTH_EXPLAIN}

    + +
    + + + + + + +
    {L_AUTH_SELECT}
    {S_HIDDEN_FIELDS}{S_AUTH_SELECT}   
    diff --git a/phpBB2_old/templates/subSilver/admin/auth_ug_body.tpl b/phpBB2_old/templates/subSilver/admin/auth_ug_body.tpl new file mode 100644 index 0000000..78c8e60 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/auth_ug_body.tpl @@ -0,0 +1,49 @@ + +

    {L_AUTH_TITLE}

    + +

    {L_USER_OR_GROUPNAME}: {USERNAME}

    + +
    + + +

    {USER_LEVEL}

    +

    {USER_GROUP_MEMBERSHIPS}

    + + + +

    {GROUP_MEMBERSHIP}

    + + +

    {L_PERMISSIONS}

    + +

    {L_AUTH_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM}{acltype.L_UG_ACL_TYPE}{L_MODERATOR_STATUS}
    {forums.FORUM_NAME}{forums.aclvalues.S_ACL_SELECT}{forums.S_MOD_SELECT}
    {U_SWITCH_MODE}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/subSilver/admin/board_config_body.tpl b/phpBB2_old/templates/subSilver/admin/board_config_body.tpl new file mode 100644 index 0000000..d82a0b0 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/board_config_body.tpl @@ -0,0 +1,252 @@ + +

    {L_CONFIGURATION_TITLE}

    + +

    {L_CONFIGURATION_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GENERAL_SETTINGS}
    {L_SERVER_NAME}
    {L_SERVER_PORT}
    {L_SERVER_PORT_EXPLAIN}
    {L_SCRIPT_PATH}
    {L_SCRIPT_PATH_EXPLAIN}
    {L_SITE_NAME}
    {L_SITE_NAME_EXPLAIN}
    {L_SITE_DESCRIPTION}
    {L_DISABLE_BOARD}
    {L_DISABLE_BOARD_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ACCT_ACTIVATION}{L_NONE}   {L_USER}   {L_ADMIN}
    {L_VISUAL_CONFIRM}
    {L_VISUAL_CONFIRM_EXPLAIN}
    {L_YES}   {L_NO}
    {L_BOARD_EMAIL_FORM}
    {L_BOARD_EMAIL_FORM_EXPLAIN}
    {L_ENABLED}   {L_DISABLED}
    {L_FLOOD_INTERVAL}
    {L_FLOOD_INTERVAL_EXPLAIN}
    {L_TOPICS_PER_PAGE}
    {L_POSTS_PER_PAGE}
    {L_HOT_THRESHOLD}
    {L_DEFAULT_STYLE}{STYLE_SELECT}
    {L_OVERRIDE_STYLE}
    {L_OVERRIDE_STYLE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_DEFAULT_LANGUAGE}{LANG_SELECT}
    {L_DATE_FORMAT}
    {L_DATE_FORMAT_EXPLAIN}
    {L_SYSTEM_TIMEZONE}{TIMEZONE_SELECT}
    {L_ENABLE_GZIP} {L_YES}   {L_NO}
    {L_ENABLE_PRUNE} {L_YES}   {L_NO}
    {L_COOKIE_SETTINGS}
    {L_COOKIE_SETTINGS_EXPLAIN}
    {L_COOKIE_DOMAIN}
    {L_COOKIE_NAME}
    {L_COOKIE_PATH}
    {L_COOKIE_SECURE}
    {L_COOKIE_SECURE_EXPLAIN}
    {L_DISABLED}   {L_ENABLED}
    {L_SESSION_LENGTH}
    {L_PRIVATE_MESSAGING}
    {L_DISABLE_PRIVATE_MESSAGING}{L_ENABLED}   {L_DISABLED}
    {L_INBOX_LIMIT}
    {L_SENTBOX_LIMIT}
    {L_SAVEBOX_LIMIT}
    {L_ABILITIES_SETTINGS}
    {L_MAX_POLL_OPTIONS}
    {L_ALLOW_HTML} {L_YES}   {L_NO}
    {L_ALLOWED_TAGS}
    {L_ALLOWED_TAGS_EXPLAIN}
    {L_ALLOW_BBCODE} {L_YES}   {L_NO}
    {L_ALLOW_SMILIES} {L_YES}   {L_NO}
    {L_SMILIES_PATH}
    {L_SMILIES_PATH_EXPLAIN}
    {L_ALLOW_SIG} {L_YES}   {L_NO}
    {L_MAX_SIG_LENGTH}
    {L_MAX_SIG_LENGTH_EXPLAIN}
    {L_ALLOW_NAME_CHANGE} {L_YES}   {L_NO}
    {L_AVATAR_SETTINGS}
    {L_ALLOW_LOCAL} {L_YES}   {L_NO}
    {L_ALLOW_REMOTE}
    {L_ALLOW_REMOTE_EXPLAIN}
    {L_YES}   {L_NO}
    {L_ALLOW_UPLOAD} {L_YES}   {L_NO}
    {L_MAX_FILESIZE}
    {L_MAX_FILESIZE_EXPLAIN}
    Bytes
    {L_MAX_AVATAR_SIZE}
    + {L_MAX_AVATAR_SIZE_EXPLAIN} +
    x
    {L_AVATAR_STORAGE_PATH}
    {L_AVATAR_STORAGE_PATH_EXPLAIN}
    {L_AVATAR_GALLERY_PATH}
    {L_AVATAR_GALLERY_PATH_EXPLAIN}
    {L_COPPA_SETTINGS}
    {L_COPPA_FAX}
    {L_COPPA_MAIL}
    {L_COPPA_MAIL_EXPLAIN}
    {L_EMAIL_SETTINGS}
    {L_ADMIN_EMAIL}
    {L_EMAIL_SIG}
    {L_EMAIL_SIG_EXPLAIN}
    {L_USE_SMTP}
    {L_USE_SMTP_EXPLAIN}
    {L_YES}   {L_NO}
    {L_SMTP_SERVER}
    {L_SMTP_USERNAME}
    {L_SMTP_USERNAME_EXPLAIN}
    {L_SMTP_PASSWORD}
    {L_SMTP_PASSWORD_EXPLAIN}
    {S_HIDDEN_FIELDS}   +
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/category_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/category_edit_body.tpl new file mode 100644 index 0000000..8fed1c9 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/category_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_EDIT_CATEGORY}

    + +

    {L_EDIT_CATEGORY_EXPLAIN}

    + +
    + + + + + + + + + + + +
    {L_EDIT_CATEGORY}
    {L_CATEGORY}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/db_utils_backup_body.tpl b/phpBB2_old/templates/subSilver/admin/db_utils_backup_body.tpl new file mode 100644 index 0000000..8ee6ab9 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/db_utils_backup_body.tpl @@ -0,0 +1,33 @@ + +

    {L_DATABASE_BACKUP}

    + +

    {L_BACKUP_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BACKUP_OPTIONS}
    {L_FULL_BACKUP}
    {L_STRUCTURE_BACKUP}
    {L_DATA_BACKUP}
    {L_ADDITIONAL_TABLES}
    {L_GZIP_COMPRESS}{L_NO}  {L_YES}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/db_utils_restore_body.tpl b/phpBB2_old/templates/subSilver/admin/db_utils_restore_body.tpl new file mode 100644 index 0000000..13a74dd --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/db_utils_restore_body.tpl @@ -0,0 +1,13 @@ + +

    {L_DATABASE_RESTORE}

    + +

    {L_RESTORE_EXPLAIN}

    + +
    + + + + + + +
    {L_SELECT_FILE}
       {S_HIDDEN_FIELDS} 
    diff --git a/phpBB2_old/templates/subSilver/admin/disallow_body.tpl b/phpBB2_old/templates/subSilver/admin/disallow_body.tpl new file mode 100644 index 0000000..ea269f6 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/disallow_body.tpl @@ -0,0 +1,24 @@ + +

    {L_DISALLOW_TITLE}

    + +

    {L_DISALLOW_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_ADD_DISALLOW}
    {L_USERNAME}
    {L_ADD_EXPLAIN}
     
    {L_DELETE_DISALLOW}
    {L_USERNAME}
    {L_DELETE_EXPLAIN}
    {S_DISALLOW_SELECT} 
     
    diff --git a/phpBB2_old/templates/subSilver/admin/forum_admin_body.tpl b/phpBB2_old/templates/subSilver/admin/forum_admin_body.tpl new file mode 100644 index 0000000..4b69932 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/forum_admin_body.tpl @@ -0,0 +1,39 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_TITLE}
    {catrow.CAT_DESC}{L_EDIT}{L_DELETE}{L_MOVE_UP} {L_MOVE_DOWN} 
    {catrow.forumrow.FORUM_NAME}
    {catrow.forumrow.FORUM_DESC}
    {catrow.forumrow.NUM_TOPICS}{catrow.forumrow.NUM_POSTS}{L_EDIT}{L_DELETE}{L_MOVE_UP}
    {L_MOVE_DOWN}
    {L_RESYNC}
    diff --git a/phpBB2_old/templates/subSilver/admin/forum_delete_body.tpl b/phpBB2_old/templates/subSilver/admin/forum_delete_body.tpl new file mode 100644 index 0000000..4a26710 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/forum_delete_body.tpl @@ -0,0 +1,23 @@ + +

    {L_FORUM_DELETE}

    + +

    {L_FORUM_DELETE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + +
    {L_FORUM_DELETE}
    {L_FORUM_NAME}{NAME}
    {L_MOVE_CONTENTS}{S_SELECT_TO}
    {S_HIDDEN_FIELDS}
    +
    diff --git a/phpBB2_old/templates/subSilver/admin/forum_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/forum_edit_body.tpl new file mode 100644 index 0000000..7f56bbe --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/forum_edit_body.tpl @@ -0,0 +1,50 @@ + +

    {L_FORUM_TITLE}

    + +

    {L_FORUM_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_FORUM_SETTINGS}
    {L_FORUM_NAME}
    {L_FORUM_DESCRIPTION}
    {L_CATEGORY}
    {L_FORUM_STATUS}
    {L_AUTO_PRUNE} + + + + + + + + + + + + +
    {L_ENABLED}
    {L_PRUNE_DAYS}  {L_DAYS}
    {L_PRUNE_FREQ}  {L_DAYS}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/forum_prune_body.tpl b/phpBB2_old/templates/subSilver/admin/forum_prune_body.tpl new file mode 100644 index 0000000..56a2e02 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/forum_prune_body.tpl @@ -0,0 +1,22 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_FORUM_PRUNE_EXPLAIN}

    + +

    {L_FORUM}: {FORUM_NAME}

    + +
    + + + + + + + + + + +
    {L_FORUM_PRUNE}
    {S_PRUNE_DATA}
    {S_HIDDEN_VARS} + +
    +
    diff --git a/phpBB2_old/templates/subSilver/admin/forum_prune_result_body.tpl b/phpBB2_old/templates/subSilver/admin/forum_prune_result_body.tpl new file mode 100644 index 0000000..10e6d06 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/forum_prune_result_body.tpl @@ -0,0 +1,21 @@ + +

    {L_FORUM_PRUNE}

    + +

    {L_PRUNE_RESULT}

    + + + + + + + + + + + + + + +
    {L_FORUM}{L_TOPICS_PRUNED}{L_POSTS_PRUNED}
    {prune_results.FORUM_NAME}{prune_results.FORUM_TOPICS}{prune_results.FORUM_POSTS}
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/forum_prune_select_body.tpl b/phpBB2_old/templates/subSilver/admin/forum_prune_select_body.tpl new file mode 100644 index 0000000..d59e7f7 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/forum_prune_select_body.tpl @@ -0,0 +1,12 @@ + +

    {L_FORUM_PRUNE}

    + +
    + + + + + + + +
    {L_SELECT_FORUM}
    {S_FORUMS_SELECT}   
    diff --git a/phpBB2_old/templates/subSilver/admin/group_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/group_edit_body.tpl new file mode 100644 index 0000000..ed96b17 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/group_edit_body.tpl @@ -0,0 +1,56 @@ + +

    {L_GROUP_TITLE}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_EDIT_DELETE}
    {L_ITEMS_REQUIRED}
    {L_GROUP_NAME}: + +
    {L_GROUP_DESCRIPTION}: + +
    {L_GROUP_MODERATOR}:  
    {L_GROUP_STATUS}: + {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}
    {L_DELETE_MODERATOR} +
    + {L_DELETE_MODERATOR_EXPLAIN}
    + + {L_YES}
    {L_GROUP_DELETE}: + + {L_GROUP_DELETE_CHECK}
    + +    + +
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/group_select_body.tpl b/phpBB2_old/templates/subSilver/admin/group_select_body.tpl new file mode 100644 index 0000000..7428918 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/group_select_body.tpl @@ -0,0 +1,19 @@ + +

    {L_GROUP_TITLE}

    + +

    {L_GROUP_EXPLAIN}

    + +
    + + + + + + + + + + + + +
    {L_GROUP_SELECT}
    {S_GROUP_SELECT}   
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/index.htm b/phpBB2_old/templates/subSilver/admin/index.htm new file mode 100644 index 0000000..ee1f723 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/index.htm @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/phpBB2_old/templates/subSilver/admin/index_body.tpl b/phpBB2_old/templates/subSilver/admin/index_body.tpl new file mode 100644 index 0000000..ec1eab7 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/index_body.tpl @@ -0,0 +1,79 @@ + +

    {L_WELCOME}

    + +

    {L_ADMIN_INTRO}

    + +

    {L_FORUM_STATS}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_STATISTIC}{L_VALUE}{L_STATISTIC}{L_VALUE}
    {L_NUMBER_POSTS}:{NUMBER_OF_POSTS}{L_POSTS_PER_DAY}:{POSTS_PER_DAY}
    {L_NUMBER_TOPICS}:{NUMBER_OF_TOPICS}{L_TOPICS_PER_DAY}:{TOPICS_PER_DAY}
    {L_NUMBER_USERS}:{NUMBER_OF_USERS}{L_USERS_PER_DAY}:{USERS_PER_DAY}
    {L_BOARD_STARTED}:{START_DATE}{L_AVATAR_DIR_SIZE}:{AVATAR_DIR_SIZE}
    {L_DB_SIZE}:{DB_SIZE}{L_GZIP_COMPRESSION}:{GZIP_COMPRESSION}
    +

    {L_WHO_IS_ONLINE}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_STARTED}  {L_LAST_UPDATE}  {L_FORUM_LOCATION}  {L_IP_ADDRESS} 
     {reg_user_row.USERNAME}  {reg_user_row.STARTED}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION}  {reg_user_row.IP_ADDRESS} 
    .
     {guest_user_row.USERNAME}  {guest_user_row.STARTED}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION}  {guest_user_row.IP_ADDRESS} 
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/index_frameset.tpl b/phpBB2_old/templates/subSilver/admin/index_frameset.tpl new file mode 100644 index 0000000..fef79af --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/index_frameset.tpl @@ -0,0 +1,17 @@ + + +phpBB Administration + + + + + + + + + + <body bgcolor="#FFFFFF" text="#000000"> + <p>Sorry, your browser doesn't seem to support frames</p> + </body> + + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/admin/index_navigate.tpl b/phpBB2_old/templates/subSilver/admin/index_navigate.tpl new file mode 100644 index 0000000..5977bdf --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/index_navigate.tpl @@ -0,0 +1,37 @@ + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_ADMIN}
    {L_ADMIN_INDEX}
    {L_FORUM_INDEX}
    {L_PREVIEW_FORUM}
    {catrow.ADMIN_CATEGORY}
    {catrow.modulerow.ADMIN_MODULE} +
    +
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/page_footer.tpl b/phpBB2_old/templates/subSilver/admin/page_footer.tpl new file mode 100644 index 0000000..278b360 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/page_footer.tpl @@ -0,0 +1,22 @@ + + + +
    Powered by phpBB {PHPBB_VERSION} © 2001 phpBB Group
    {TRANSLATION_INFO}
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/admin/page_header.tpl b/phpBB2_old/templates/subSilver/admin/page_header.tpl new file mode 100644 index 0000000..d273fbd --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/page_header.tpl @@ -0,0 +1,226 @@ + + + +{META} + + + +{SITENAME} - {L_PHPBB_ADMIN} + + + + diff --git a/phpBB2_old/templates/subSilver/admin/ranks_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/ranks_edit_body.tpl new file mode 100644 index 0000000..b3974ea --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/ranks_edit_body.tpl @@ -0,0 +1,31 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    {L_RANKS_TITLE}
    {L_RANK_TITLE}:
    {L_RANK_SPECIAL}{L_YES}    {L_NO}
    {L_RANK_MINIMUM}:
    {L_RANK_IMAGE}:
    + {L_RANK_IMAGE_EXPLAIN}

    {IMAGE_DISPLAY}
      
    +{S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/ranks_list_body.tpl b/phpBB2_old/templates/subSilver/admin/ranks_list_body.tpl new file mode 100644 index 0000000..368326f --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/ranks_list_body.tpl @@ -0,0 +1,26 @@ + +

    {L_RANKS_TITLE}

    + +

    {L_RANKS_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + + +
    {L_RANK}{L_RANK_MINIMUM}{L_SPECIAL_RANK}{L_EDIT}{L_DELETE}
    {ranks.RANK}{ranks.RANK_MIN}{ranks.SPECIAL_RANK}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/subSilver/admin/smile_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/smile_edit_body.tpl new file mode 100644 index 0000000..b453afc --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/smile_edit_body.tpl @@ -0,0 +1,34 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + + + +
    + + + + + + + + + + + + + + + + + + +
    {L_SMILEY_CONFIG}
    {L_SMILEY_CODE}
    {L_SMILEY_URL}    
    {L_SMILEY_EMOTION}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/smile_import_body.tpl b/phpBB2_old/templates/subSilver/admin/smile_import_body.tpl new file mode 100644 index 0000000..9881cb1 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/smile_import_body.tpl @@ -0,0 +1,24 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + +
    {L_SMILEY_IMPORT}
    {L_SELECT_LBL}{S_SMILE_SELECT}
    {L_DEL_EXISTING}
    {L_CONFLICTS}
    {L_REPLACE_EXISTING}   {L_KEEP_EXISTING}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/smile_list_body.tpl b/phpBB2_old/templates/subSilver/admin/smile_list_body.tpl new file mode 100644 index 0000000..ae85ad9 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/smile_list_body.tpl @@ -0,0 +1,25 @@ + +

    {L_SMILEY_TITLE}

    + +

    {L_SMILEY_TEXT}

    + +
    + + + + + + + + + + + + + + + + + + +
    {L_CODE}{L_SMILE}{L_EMOT}{L_ACTION}
    {smiles.CODE}{smiles.CODE}{smiles.EMOT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}    
    diff --git a/phpBB2_old/templates/subSilver/admin/styles_addnew_body.tpl b/phpBB2_old/templates/subSilver/admin/styles_addnew_body.tpl new file mode 100644 index 0000000..6240a79 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/styles_addnew_body.tpl @@ -0,0 +1,19 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_ADD_TEXT}

    + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_ACTION}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_INSTALL}
    diff --git a/phpBB2_old/templates/subSilver/admin/styles_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/styles_edit_body.tpl new file mode 100644 index 0000000..08cf721 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/styles_edit_body.tpl @@ -0,0 +1,246 @@ + +

    {L_THEMES_TITLE}

    + +

    {L_THEMES_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_THEME_SETTINGS}
    {L_THEME_NAME}:
    {L_TEMPLATE}:{S_TEMPLATE_SELECT}
    {L_THEME_ELEMENT}{L_VALUE}{L_SIMPLE_NAME}
    {L_STYLESHEET}:
    Filename for CSS stylesheet to use for this theme.
     
    {L_BACKGROUND_IMAGE}: 
    {L_BACKGROUND_COLOR}: 
    {L_BODY_TEXT_COLOR}: 
    {L_BODY_LINK_COLOR}: 
    {L_BODY_VLINK_COLOR}: 
    {L_BODY_ALINK_COLOR}: 
    {L_BODY_HLINK_COLOR}: 
    {L_TR_COLOR1}: +
    {L_TR_COLOR2}: +
    {L_TR_COLOR3}: +
    {L_TR_CLASS1}: +
    {L_TR_CLASS2}: +
    {L_TR_CLASS3}: +
    {L_TH_COLOR1}: +
    {L_TH_COLOR2}: +
    {L_TH_COLOR3}: +
    {L_TH_CLASS1}: +
    {L_TH_CLASS2}: +
    {L_TH_CLASS3}: +
    {L_TD_COLOR1}: +
    {L_TD_COLOR2}: +
    {L_TD_COLOR3}: +
    {L_TD_CLASS1}: +
    {L_TD_CLASS2}: +
    {L_TD_CLASS3}: +
    {L_FONTFACE_1}: +
    {L_FONTFACE_2}: +
    {L_FONTFACE_3}: +
    {L_FONTSIZE_1}: +
    {L_FONTSIZE_2}: +
    {L_FONTSIZE_3}: +
    {L_FONTCOLOR_1}: +
    {L_FONTCOLOR_2}: +
    {L_FONTCOLOR_3}: +
    {L_SPAN_CLASS_1}: +
    {L_SPAN_CLASS_2}: +
    {L_SPAN_CLASS_3}: +
    {S_HIDDEN_FIELDS} +
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/styles_exporter.tpl b/phpBB2_old/templates/subSilver/admin/styles_exporter.tpl new file mode 100644 index 0000000..2056260 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/styles_exporter.tpl @@ -0,0 +1,14 @@ + +

    {L_STYLE_EXPORTER}

    + +

    {L_EXPORTER_EXPLAIN}

    + +
    + + + + + + + +
    {L_TEMPLATE_SELECT}
    {S_TEMPLATE_SELECT}   
    diff --git a/phpBB2_old/templates/subSilver/admin/styles_list_body.tpl b/phpBB2_old/templates/subSilver/admin/styles_list_body.tpl new file mode 100644 index 0000000..915fe49 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/styles_list_body.tpl @@ -0,0 +1,21 @@ + +

    {L_STYLES_TITLE}

    + +

    {L_STYLES_TEXT}

    + + + + + + + + + + + + + + + + +
    {L_STYLE}{L_TEMPLATE}{L_EDIT}{L_DELETE}
    {styles.STYLE_NAME}{styles.TEMPLATE_NAME}{L_EDIT}{L_DELETE}
    diff --git a/phpBB2_old/templates/subSilver/admin/user_avatar_gallery.tpl b/phpBB2_old/templates/subSilver/admin/user_avatar_gallery.tpl new file mode 100644 index 0000000..db861ee --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/user_avatar_gallery.tpl @@ -0,0 +1,36 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}:  
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/subSilver/admin/user_ban_body.tpl b/phpBB2_old/templates/subSilver/admin/user_ban_body.tpl new file mode 100644 index 0000000..c805f7b --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/user_ban_body.tpl @@ -0,0 +1,54 @@ + +

    {L_BAN_TITLE}

    + +

    {L_BAN_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_BAN_USER}
    {L_USERNAME}: {S_HIDDEN_FIELDS}
    {L_UNBAN_USER}
    {L_USERNAME}:
    {L_UNBAN_USER_EXPLAIN}
    {S_UNBAN_USERLIST_SELECT}
    {L_BAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_BAN_IP_EXPLAIN}
    {L_UNBAN_IP}
    {L_IP_OR_HOSTNAME}:
    {L_UNBAN_IP_EXPLAIN}
    {S_UNBAN_IPLIST_SELECT}
    {L_BAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_BAN_EMAIL_EXPLAIN}
    {L_UNBAN_EMAIL}
    {L_EMAIL_ADDRESS}:
    {L_UNBAN_EMAIL_EXPLAIN}
    {S_UNBAN_EMAILLIST_SELECT}
      
    + +

    {L_BAN_EXPLAIN_WARN}

    diff --git a/phpBB2_old/templates/subSilver/admin/user_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/user_edit_body.tpl new file mode 100644 index 0000000..359bdeb --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/user_edit_body.tpl @@ -0,0 +1,310 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +{ERROR_BOX} + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER} + +
    {L_AIM} + +
    {L_MESSENGER} + +
    {L_YAHOO} + +
    {L_WEBSITE} + +
    {L_LOCATION} + +
    {L_OCCUPATION} + +
    {L_INTERESTS} + +
    {L_SIGNATURE}
    + {L_SIGNATURE_EXPLAIN}
    +
    + {HTML_STATUS}
    + {BBCODE_STATUS}
    + {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL} + + {L_YES}   + + {L_NO}
    {L_HIDE_USER} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY} + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML} + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES} + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}{LANGUAGE_SELECT}
    {L_BOARD_STYLE}{STYLE_SELECT}
    {L_TIMEZONE}{TIMEZONE_SELECT}
    {L_DATE_FORMAT}
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    + {AVATAR}
    + +  {L_DELETE_AVATAR}
    +
    {L_UPLOAD_AVATAR_FILE} + + +
    {L_UPLOAD_AVATAR_URL} + +
    {L_LINK_REMOTE_AVATAR} + +
    {L_AVATAR_GALLERY} + +
     
    {L_SPECIAL}
    {L_SPECIAL_EXPLAIN}
    {L_USER_ACTIVE} + + {L_YES}   + + {L_NO}
    {L_ALLOW_PM} + + {L_YES}   + + {L_NO}
    {L_ALLOW_AVATAR} + + {L_YES}   + + {L_NO}
    {L_SELECT_RANK}
    {L_DELETE_USER}? + + {L_DELETE_USER_EXPLAIN}
    {S_HIDDEN_FIELDS} + +    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/user_email_body.tpl b/phpBB2_old/templates/subSilver/admin/user_email_body.tpl new file mode 100644 index 0000000..5f52658 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/user_email_body.tpl @@ -0,0 +1,31 @@ + +

    {L_EMAIL_TITLE}

    + +

    {L_EMAIL_EXPLAIN}

    + +
    + +{ERROR_BOX} + + + + + + + + + + + + + + + + + + +
    {L_COMPOSE}
    {L_RECIPIENTS}{S_GROUP_SELECT}
    {L_EMAIL_SUBJECT}
    {L_EMAIL_MSG} + +
    + +
    diff --git a/phpBB2_old/templates/subSilver/admin/user_select_body.tpl b/phpBB2_old/templates/subSilver/admin/user_select_body.tpl new file mode 100644 index 0000000..5d7a31b --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/user_select_body.tpl @@ -0,0 +1,13 @@ + +

    {L_USER_TITLE}

    + +

    {L_USER_EXPLAIN}

    + +
    + + + + + + +
    {L_USER_SELECT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/words_edit_body.tpl b/phpBB2_old/templates/subSilver/admin/words_edit_body.tpl new file mode 100644 index 0000000..569a94f --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/words_edit_body.tpl @@ -0,0 +1,21 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + +
    {L_WORD_CENSOR}
    {L_WORD}
    {L_REPLACEMENT}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/admin/words_list_body.tpl b/phpBB2_old/templates/subSilver/admin/words_list_body.tpl new file mode 100644 index 0000000..40acf81 --- /dev/null +++ b/phpBB2_old/templates/subSilver/admin/words_list_body.tpl @@ -0,0 +1,23 @@ + +

    {L_WORDS_TITLE}

    + +

    {L_WORDS_TEXT}

    + +
    + + + + + + + + + + + + + + + + +
    {L_WORD}{L_REPLACEMENT}{L_ACTION}
    {words.WORD}{words.REPLACEMENT}{L_EDIT}{L_DELETE}
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/templates/subSilver/agreement.tpl b/phpBB2_old/templates/subSilver/agreement.tpl new file mode 100644 index 0000000..5635a35 --- /dev/null +++ b/phpBB2_old/templates/subSilver/agreement.tpl @@ -0,0 +1,19 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + +
    {SITENAME} - {REGISTRATION}
    + + + +

    {AGREEMENT}



    diff --git a/phpBB2_old/templates/subSilver/bbcode.tpl b/phpBB2_old/templates/subSilver/bbcode.tpl new file mode 100644 index 0000000..caef76b --- /dev/null +++ b/phpBB2_old/templates/subSilver/bbcode.tpl @@ -0,0 +1,60 @@ +
      +
    + +
      +
    + +
  • + + + + + + + + + +
    {USERNAME} {L_WROTE}:
    + + + + + + + + +
    {L_QUOTE}:
    +
    + + + + + + + + + + +
    {L_CODE}:
    +
    + + + + + + + + + + + + + + + + + + + + +{DESCRIPTION} + +{EMAIL} diff --git a/phpBB2_old/templates/subSilver/confirm_body.tpl b/phpBB2_old/templates/subSilver/confirm_body.tpl new file mode 100644 index 0000000..f79a643 --- /dev/null +++ b/phpBB2_old/templates/subSilver/confirm_body.tpl @@ -0,0 +1,17 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}

    {MESSAGE_TEXT}

    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/subSilver/error_body.tpl b/phpBB2_old/templates/subSilver/error_body.tpl new file mode 100644 index 0000000..f211ad0 --- /dev/null +++ b/phpBB2_old/templates/subSilver/error_body.tpl @@ -0,0 +1,18 @@ + + + + + +
    + + + + + + + + + +
     
    {ERROR_MESSAGE}
     
    + +
    diff --git a/phpBB2_old/templates/subSilver/faq_body.tpl b/phpBB2_old/templates/subSilver/faq_body.tpl new file mode 100644 index 0000000..9c8a3a8 --- /dev/null +++ b/phpBB2_old/templates/subSilver/faq_body.tpl @@ -0,0 +1,52 @@ + + + + + +
    + + + + + + + + + + + +
    {L_FAQ_TITLE}
    + + {faq_block_link.BLOCK_TITLE}
    + + {faq_block_link.faq_row_link.FAQ_LINK}
    + +
    + +
     
    + +
    + + + + + + + + + + + + + + +
    {faq_block.BLOCK_TITLE}
    {faq_block.faq_row.FAQ_QUESTION}
    {faq_block.faq_row.FAQ_ANSWER}
    {L_BACK_TO_TOP}
    + +
    + + + + + + +
    {S_TIMEZONE}

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/formIE.css b/phpBB2_old/templates/subSilver/formIE.css new file mode 100644 index 0000000..fde54cb --- /dev/null +++ b/phpBB2_old/templates/subSilver/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2_old/templates/subSilver/groupcp_info_body.tpl b/phpBB2_old/templates/subSilver/groupcp_info_body.tpl new file mode 100644 index 0000000..93875fa --- /dev/null +++ b/phpBB2_old/templates/subSilver/groupcp_info_body.tpl @@ -0,0 +1,128 @@ + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_INFORMATION}
    {L_GROUP_NAME}:{GROUP_NAME}
    {L_GROUP_DESC}:{GROUP_DESC}
    {L_GROUP_MEMBERSHIP}:{GROUP_DETAILS}    + + + + + + +
    {L_GROUP_TYPE}: {L_GROUP_OPEN}    {L_GROUP_CLOSED}    {L_GROUP_HIDDEN}   
    + +{S_HIDDEN_FIELDS} + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_GROUP_MODERATOR}
    {MOD_PM_IMG} {MOD_USERNAME}{MOD_POSTS}{MOD_FROM}{MOD_EMAIL_IMG}{MOD_WWW_IMG}  
    {L_GROUP_MEMBERS}
    {member_row.PM_IMG} {member_row.USERNAME}{member_row.POSTS} {member_row.FROM} + {member_row.EMAIL_IMG} {member_row.WWW_IMG} + + + +
    {L_NO_MEMBERS}
    {L_HIDDEN_MEMBERS}
    + +
    + + + + + + +
    + +

    + + {PAGE_NUMBER}
    {S_TIMEZONE}
    {PAGINATION}
    + +{PENDING_USER_BOX} + +{S_HIDDEN_FIELDS}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/groupcp_pending_info.tpl b/phpBB2_old/templates/subSilver/groupcp_pending_info.tpl new file mode 100644 index 0000000..68f618c --- /dev/null +++ b/phpBB2_old/templates/subSilver/groupcp_pending_info.tpl @@ -0,0 +1,36 @@ + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PM}{L_USERNAME}{L_POSTS}{L_FROM}{L_EMAIL}{L_WEBSITE}{L_SELECT}
    {L_PENDING_MEMBERS}
    {pending_members_row.PM_IMG} + {pending_members_row.USERNAME}{pending_members_row.POSTS}{pending_members_row.FROM}{pending_members_row.EMAIL_IMG}{pending_members_row.WWW_IMG}
    + +   + +
    diff --git a/phpBB2_old/templates/subSilver/groupcp_user_body.tpl b/phpBB2_old/templates/subSilver/groupcp_user_body.tpl new file mode 100644 index 0000000..8be36f6 --- /dev/null +++ b/phpBB2_old/templates/subSilver/groupcp_user_body.tpl @@ -0,0 +1,76 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_GROUP_MEMBERSHIP_DETAILS}
    {L_YOU_BELONG_GROUPS} + + + + + +
    {GROUP_MEMBER_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_PENDING_GROUPS} + + + + + +
    {GROUP_PENDING_SELECT} + {S_HIDDEN_FIELDS} +
    +
    {L_JOIN_A_GROUP}
    {L_SELECT_A_GROUP} + + + + + +
    {GROUP_LIST_SELECT} + {S_HIDDEN_FIELDS} +
    +
    + + + + + +
    {S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/header.tpl b/phpBB2_old/templates/subSilver/header.tpl new file mode 100644 index 0000000..c037df0 --- /dev/null +++ b/phpBB2_old/templates/subSilver/header.tpl @@ -0,0 +1,29 @@ + + + + + + + + + + + +
    + + +Home +About me +Forum +News +Pictures +Search + + +
    + + + +
    +
    + diff --git a/phpBB2_old/templates/subSilver/images/cellpic.gif b/phpBB2_old/templates/subSilver/images/cellpic.gif new file mode 100755 index 0000000..47457ef Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/cellpic.gif differ diff --git a/phpBB2_old/templates/subSilver/images/cellpic1.gif b/phpBB2_old/templates/subSilver/images/cellpic1.gif new file mode 100755 index 0000000..715b8d4 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/cellpic1.gif differ diff --git a/phpBB2_old/templates/subSilver/images/cellpic2.jpg b/phpBB2_old/templates/subSilver/images/cellpic2.jpg new file mode 100755 index 0000000..a0ca7e8 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/cellpic2.jpg differ diff --git a/phpBB2_old/templates/subSilver/images/cellpic3.gif b/phpBB2_old/templates/subSilver/images/cellpic3.gif new file mode 100755 index 0000000..ecf70e1 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/cellpic3.gif differ diff --git a/phpBB2_old/templates/subSilver/images/created_by.jpg b/phpBB2_old/templates/subSilver/images/created_by.jpg new file mode 100755 index 0000000..f274727 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/created_by.jpg differ diff --git a/phpBB2_old/templates/subSilver/images/folder.gif b/phpBB2_old/templates/subSilver/images/folder.gif new file mode 100755 index 0000000..c16bfa7 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_announce.gif b/phpBB2_old/templates/subSilver/images/folder_announce.gif new file mode 100755 index 0000000..0589feb Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_announce.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_announce_new.gif b/phpBB2_old/templates/subSilver/images/folder_announce_new.gif new file mode 100755 index 0000000..56b2702 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_announce_new.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_big.gif b/phpBB2_old/templates/subSilver/images/folder_big.gif new file mode 100755 index 0000000..9b2bc47 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_big.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_hot.gif b/phpBB2_old/templates/subSilver/images/folder_hot.gif new file mode 100755 index 0000000..a7e8831 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_hot.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_lock.gif b/phpBB2_old/templates/subSilver/images/folder_lock.gif new file mode 100755 index 0000000..10eb776 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_lock.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_lock_new.gif b/phpBB2_old/templates/subSilver/images/folder_lock_new.gif new file mode 100755 index 0000000..720e210 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_lock_new.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_locked_big.gif b/phpBB2_old/templates/subSilver/images/folder_locked_big.gif new file mode 100755 index 0000000..436f3d2 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_locked_big.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_new.gif b/phpBB2_old/templates/subSilver/images/folder_new.gif new file mode 100755 index 0000000..4e56157 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_new.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_new_big.gif b/phpBB2_old/templates/subSilver/images/folder_new_big.gif new file mode 100755 index 0000000..5eec565 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_new_big.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_new_hot.gif b/phpBB2_old/templates/subSilver/images/folder_new_hot.gif new file mode 100755 index 0000000..25ced64 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_new_hot.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_sticky.gif b/phpBB2_old/templates/subSilver/images/folder_sticky.gif new file mode 100755 index 0000000..09861a9 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_sticky.gif differ diff --git a/phpBB2_old/templates/subSilver/images/folder_sticky_new.gif b/phpBB2_old/templates/subSilver/images/folder_sticky_new.gif new file mode 100755 index 0000000..dd2e366 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/folder_sticky_new.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_delete.gif b/phpBB2_old/templates/subSilver/images/icon_delete.gif new file mode 100755 index 0000000..1153ba5 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_delete.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_latest_reply.gif b/phpBB2_old/templates/subSilver/images/icon_latest_reply.gif new file mode 100755 index 0000000..b45e57a Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_latest_reply.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_faq.gif b/phpBB2_old/templates/subSilver/images/icon_mini_faq.gif new file mode 100755 index 0000000..b8b873d Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_faq.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_groups.gif b/phpBB2_old/templates/subSilver/images/icon_mini_groups.gif new file mode 100755 index 0000000..be5c201 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_groups.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_login.gif b/phpBB2_old/templates/subSilver/images/icon_mini_login.gif new file mode 100755 index 0000000..30b309b Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_login.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_members.gif b/phpBB2_old/templates/subSilver/images/icon_mini_members.gif new file mode 100755 index 0000000..a79a5a7 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_members.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_message.gif b/phpBB2_old/templates/subSilver/images/icon_mini_message.gif new file mode 100755 index 0000000..57071d6 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_message.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_profile.gif b/phpBB2_old/templates/subSilver/images/icon_mini_profile.gif new file mode 100755 index 0000000..3dc0871 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_profile.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_register.gif b/phpBB2_old/templates/subSilver/images/icon_mini_register.gif new file mode 100755 index 0000000..11b8f31 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_register.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_mini_search.gif b/phpBB2_old/templates/subSilver/images/icon_mini_search.gif new file mode 100755 index 0000000..1295e9f Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_mini_search.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_minipost.gif b/phpBB2_old/templates/subSilver/images/icon_minipost.gif new file mode 100755 index 0000000..d172abb Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_minipost.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_minipost_new.gif b/phpBB2_old/templates/subSilver/images/icon_minipost_new.gif new file mode 100755 index 0000000..8ec44a1 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_minipost_new.gif differ diff --git a/phpBB2_old/templates/subSilver/images/icon_newest_reply.gif b/phpBB2_old/templates/subSilver/images/icon_newest_reply.gif new file mode 100755 index 0000000..eca2861 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/icon_newest_reply.gif differ diff --git a/phpBB2_old/templates/subSilver/images/index.htm b/phpBB2_old/templates/subSilver/images/index.htm new file mode 100755 index 0000000..491b26d --- /dev/null +++ b/phpBB2_old/templates/subSilver/images/index.htm @@ -0,0 +1,16 @@ + + +subSilver created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_aim.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_aim.gif new file mode 100755 index 0000000..4b6a858 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_aim.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_edit.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_edit.gif new file mode 100755 index 0000000..bb70004 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_edit.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_email.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_email.gif new file mode 100755 index 0000000..3d359c2 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_email.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_icq_add.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_icq_add.gif new file mode 100755 index 0000000..4bf276d Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_icq_add.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_ip.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_ip.gif new file mode 100755 index 0000000..bf17a51 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_ip.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_msnm.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_msnm.gif new file mode 100755 index 0000000..6518415 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_msnm.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_pm.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_pm.gif new file mode 100755 index 0000000..f87b4f5 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_pm.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_profile.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_profile.gif new file mode 100755 index 0000000..2bd32d2 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_profile.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_quote.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_quote.gif new file mode 100755 index 0000000..3dec675 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_quote.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_search.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_search.gif new file mode 100755 index 0000000..8dd38a3 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_search.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_www.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_www.gif new file mode 100755 index 0000000..8c1731f Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_www.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/icon_yim.gif b/phpBB2_old/templates/subSilver/images/lang_english/icon_yim.gif new file mode 100755 index 0000000..57e75b3 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/icon_yim.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/msg_newpost.gif b/phpBB2_old/templates/subSilver/images/lang_english/msg_newpost.gif new file mode 100755 index 0000000..ce2c1a8 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/msg_newpost.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/post.gif b/phpBB2_old/templates/subSilver/images/lang_english/post.gif new file mode 100755 index 0000000..4b7cb20 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/post.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/reply-locked.gif b/phpBB2_old/templates/subSilver/images/lang_english/reply-locked.gif new file mode 100755 index 0000000..5ab1d7a Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/reply-locked.gif differ diff --git a/phpBB2_old/templates/subSilver/images/lang_english/reply.gif b/phpBB2_old/templates/subSilver/images/lang_english/reply.gif new file mode 100755 index 0000000..cb385af Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/lang_english/reply.gif differ diff --git a/phpBB2_old/templates/subSilver/images/logo_phpBB.gif b/phpBB2_old/templates/subSilver/images/logo_phpBB.gif new file mode 100755 index 0000000..37aa0fd Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/logo_phpBB.gif differ diff --git a/phpBB2_old/templates/subSilver/images/logo_phpBB_med.gif b/phpBB2_old/templates/subSilver/images/logo_phpBB_med.gif new file mode 100755 index 0000000..3d84f94 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/logo_phpBB_med.gif differ diff --git a/phpBB2_old/templates/subSilver/images/msg_inbox.gif b/phpBB2_old/templates/subSilver/images/msg_inbox.gif new file mode 100755 index 0000000..011d0bd Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/msg_inbox.gif differ diff --git a/phpBB2_old/templates/subSilver/images/msg_outbox.gif b/phpBB2_old/templates/subSilver/images/msg_outbox.gif new file mode 100755 index 0000000..84fdce3 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/msg_outbox.gif differ diff --git a/phpBB2_old/templates/subSilver/images/msg_savebox.gif b/phpBB2_old/templates/subSilver/images/msg_savebox.gif new file mode 100755 index 0000000..86d1f2c Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/msg_savebox.gif differ diff --git a/phpBB2_old/templates/subSilver/images/msg_sentbox.gif b/phpBB2_old/templates/subSilver/images/msg_sentbox.gif new file mode 100755 index 0000000..b95db75 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/msg_sentbox.gif differ diff --git a/phpBB2_old/templates/subSilver/images/spacer.gif b/phpBB2_old/templates/subSilver/images/spacer.gif new file mode 100755 index 0000000..5bfd67a Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/spacer.gif differ diff --git a/phpBB2_old/templates/subSilver/images/topic_delete.gif b/phpBB2_old/templates/subSilver/images/topic_delete.gif new file mode 100755 index 0000000..3b21b11 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/topic_delete.gif differ diff --git a/phpBB2_old/templates/subSilver/images/topic_lock.gif b/phpBB2_old/templates/subSilver/images/topic_lock.gif new file mode 100755 index 0000000..fe32fea Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/topic_lock.gif differ diff --git a/phpBB2_old/templates/subSilver/images/topic_move.gif b/phpBB2_old/templates/subSilver/images/topic_move.gif new file mode 100755 index 0000000..ab2fd23 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/topic_move.gif differ diff --git a/phpBB2_old/templates/subSilver/images/topic_split.gif b/phpBB2_old/templates/subSilver/images/topic_split.gif new file mode 100755 index 0000000..bdbc884 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/topic_split.gif differ diff --git a/phpBB2_old/templates/subSilver/images/topic_unlock.gif b/phpBB2_old/templates/subSilver/images/topic_unlock.gif new file mode 100755 index 0000000..dae3e4d Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/topic_unlock.gif differ diff --git a/phpBB2_old/templates/subSilver/images/vote_lcap.gif b/phpBB2_old/templates/subSilver/images/vote_lcap.gif new file mode 100755 index 0000000..269088b Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/vote_lcap.gif differ diff --git a/phpBB2_old/templates/subSilver/images/vote_rcap.gif b/phpBB2_old/templates/subSilver/images/vote_rcap.gif new file mode 100755 index 0000000..f9584e2 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/vote_rcap.gif differ diff --git a/phpBB2_old/templates/subSilver/images/voting_bar.gif b/phpBB2_old/templates/subSilver/images/voting_bar.gif new file mode 100755 index 0000000..9947315 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/voting_bar.gif differ diff --git a/phpBB2_old/templates/subSilver/images/whosonline.gif b/phpBB2_old/templates/subSilver/images/whosonline.gif new file mode 100755 index 0000000..b450927 Binary files /dev/null and b/phpBB2_old/templates/subSilver/images/whosonline.gif differ diff --git a/phpBB2_old/templates/subSilver/index.htm b/phpBB2_old/templates/subSilver/index.htm new file mode 100644 index 0000000..79908c5 --- /dev/null +++ b/phpBB2_old/templates/subSilver/index.htm @@ -0,0 +1,16 @@ + + +subSilver created by subBlue Design + + + + + + + + + +
    Created by subBlue Design
    + + + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/index_body.tpl b/phpBB2_old/templates/subSilver/index_body.tpl new file mode 100644 index 0000000..86da30d --- /dev/null +++ b/phpBB2_old/templates/subSilver/index_body.tpl @@ -0,0 +1,103 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/subSilver/jumpbox.tpl b/phpBB2_old/templates/subSilver/jumpbox.tpl new file mode 100644 index 0000000..2000e92 --- /dev/null +++ b/phpBB2_old/templates/subSilver/jumpbox.tpl @@ -0,0 +1,6 @@ + +
    + + + +
    {L_JUMP_TO}: {S_JUMPBOX_SELECT} 
    diff --git a/phpBB2_old/templates/subSilver/login_body.tpl b/phpBB2_old/templates/subSilver/login_body.tpl new file mode 100644 index 0000000..a08e403 --- /dev/null +++ b/phpBB2_old/templates/subSilver/login_body.tpl @@ -0,0 +1,44 @@ + +
    + + + + + +
    + + + + + + + + +
    {L_ENTER_PASSWORD}
    + + + + + + + + + + + + + + + + + + + + +
     
    {L_USERNAME}: + +
    {L_PASSWORD}: + +
    {L_AUTO_LOGIN}:
    {S_HIDDEN_FIELDS}
    {L_SEND_PASSWORD}
    + +
    diff --git a/phpBB2_old/templates/subSilver/memberlist_body.tpl b/phpBB2_old/templates/subSilver/memberlist_body.tpl new file mode 100644 index 0000000..af1340d --- /dev/null +++ b/phpBB2_old/templates/subSilver/memberlist_body.tpl @@ -0,0 +1,55 @@ + +
    + + + + + +
    {L_INDEX}{L_SELECT_SORT_METHOD}: {S_MODE_SELECT}  {L_ORDER} {S_ORDER_SELECT}   + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # {L_USERNAME}{L_EMAIL}{L_FROM}{L_JOINED}{L_POSTS}{L_WEBSITE}
     {memberrow.ROW_NUMBER}  {memberrow.PM_IMG} {memberrow.USERNAME} {memberrow.EMAIL_IMG} {memberrow.FROM}{memberrow.JOINED}{memberrow.POSTS} {memberrow.WWW_IMG} 
     
    + + + + +
    + + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/message_body.tpl b/phpBB2_old/templates/subSilver/message_body.tpl new file mode 100644 index 0000000..6be7f51 --- /dev/null +++ b/phpBB2_old/templates/subSilver/message_body.tpl @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + +
    diff --git a/phpBB2_old/templates/subSilver/modcp_body.tpl b/phpBB2_old/templates/subSilver/modcp_body.tpl new file mode 100644 index 0000000..fd0fe1b --- /dev/null +++ b/phpBB2_old/templates/subSilver/modcp_body.tpl @@ -0,0 +1,58 @@ + +
    + + + + +
    {L_INDEX} -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_MOD_CP} +
    {L_MOD_CP_EXPLAIN}
      {L_TOPICS}  {L_REPLIES}  {L_LASTPOST}  {L_SELECT} 
    {topicrow.L_TOPIC_FOLDER_ALT} {topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}{topicrow.REPLIES}{topicrow.LAST_POST_TIME} + +
    {S_HIDDEN_FIELDS} + +   + +   + +   + +
    + + + + + +
    {PAGE_NUMBER}{S_TIMEZONE}
    {PAGINATION}
    +
    + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/modcp_move.tpl b/phpBB2_old/templates/subSilver/modcp_move.tpl new file mode 100644 index 0000000..730952c --- /dev/null +++ b/phpBB2_old/templates/subSilver/modcp_move.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + + +
     
    {L_MOVE_TO_FORUM}   {S_FORUM_SELECT}

    + {L_LEAVESHADOW}
    +
    + {MESSAGE_TEXT}

    +
    + {S_HIDDEN_FIELDS} + +    + +
     
    +
    +
    diff --git a/phpBB2_old/templates/subSilver/modcp_split.tpl b/phpBB2_old/templates/subSilver/modcp_split.tpl new file mode 100644 index 0000000..c8be76a --- /dev/null +++ b/phpBB2_old/templates/subSilver/modcp_split.tpl @@ -0,0 +1,85 @@ + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SPLIT_TOPIC}
    {L_SPLIT_TOPIC_EXPLAIN}
    {L_SPLIT_SUBJECT}
    {L_SPLIT_FORUM}{S_FORUM_SELECT}
    + + + + + +
    + + + +
    +
    {L_AUTHOR}{L_MESSAGE}{L_SELECT}
    {postrow.POSTER_NAME} + + + + + + + +
    {L_POST}{L_POSTED}: + {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}
    +
    + {postrow.MESSAGE}
    +
    {postrow.S_SPLIT_CHECKBOX}
    .
    + + + + + +
    + + + + {S_HIDDEN_FIELDS}
    +
    + + + + +
    {S_TIMEZONE}
    +
    diff --git a/phpBB2_old/templates/subSilver/modcp_viewip.tpl b/phpBB2_old/templates/subSilver/modcp_viewip.tpl new file mode 100644 index 0000000..d497d88 --- /dev/null +++ b/phpBB2_old/templates/subSilver/modcp_viewip.tpl @@ -0,0 +1,58 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_IP_INFO}
    {L_THIS_POST_IP}
    + + + + + +
     {IP} [ {POSTS} ][ {L_LOOKUP_IP} + ] 
    +
    {L_OTHER_USERS}
    + + + + + +
     {userrow.USERNAME} [ {userrow.POSTS} ]{L_SEARCH} +  
    +
    {L_OTHER_IPS}
    + + + + +
     {iprow.IP} [ {iprow.POSTS} ][ {L_LOOKUP_IP} + ] 
    + +
    diff --git a/phpBB2_old/templates/subSilver/overall_footer.tpl b/phpBB2_old/templates/subSilver/overall_footer.tpl new file mode 100644 index 0000000..91ad361 --- /dev/null +++ b/phpBB2_old/templates/subSilver/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +
    +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO}
    +
    + + + diff --git a/phpBB2_old/templates/subSilver/overall_header.tpl b/phpBB2_old/templates/subSilver/overall_header.tpl new file mode 100644 index 0000000..ac2c531 --- /dev/null +++ b/phpBB2_old/templates/subSilver/overall_header.tpl @@ -0,0 +1,257 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/phpBB2_old/templates/subSilver/posting_preview.tpl b/phpBB2_old/templates/subSilver/posting_preview.tpl new file mode 100644 index 0000000..8da3409 --- /dev/null +++ b/phpBB2_old/templates/subSilver/posting_preview.tpl @@ -0,0 +1,23 @@ + +
    + + + + +
    + + + + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    + +
    diff --git a/phpBB2_old/templates/subSilver/posting_body.tpl b/phpBB2_old/templates/subSilver/posting_body.tpl new file mode 100644 index 0000000..e8700a5 --- /dev/null +++ b/phpBB2_old/templates/subSilver/posting_body.tpl @@ -0,0 +1,481 @@ + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX_LINK}  {SENTBOX_IMG}{SENTBOX_LINK}  {OUTBOX_IMG}{OUTBOX_LINK}  {SAVEBOX_IMG}{SAVEBOX_LINK}  
    +
    + +
    + + +
    + +{POST_PREVIEW_BOX} +{ERROR_BOX} + + + + + + +
    {L_INDEX} + + -> {FORUM_NAME}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {POLLBOX} + + + +
    {L_POST_A}
    {L_USERNAME}
    {L_USERNAME} 
    {L_SUBJECT} + +
    + + + + + + + +
    {L_MESSAGE_BODY}

    + + + + + + + + + + + + + + + + +
    {L_EMOTICONS}
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + +
    + + + + + +
     {L_FONT_COLOR}: +  {L_FONT_SIZE}: + {L_BBCODE_CLOSE_TAGS}
    +
    + +
    + +
    +
    {L_OPTIONS}
    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + {L_DISABLE_HTML}
    + + {L_DISABLE_BBCODE}
    + + {L_DISABLE_SMILIES}
    + + {L_ATTACH_SIGNATURE}
    + + {L_NOTIFY_ON_REPLY}
    + + {L_DELETE_POST}
    {S_TYPE_TOGGLE}
    +
    {S_HIDDEN_FORM_FIELDS} 
    + + + + + +
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    + +{TOPIC_REVIEW_BOX} diff --git a/phpBB2_old/templates/subSilver/posting_poll_body.tpl b/phpBB2_old/templates/subSilver/posting_poll_body.tpl new file mode 100644 index 0000000..4391393 --- /dev/null +++ b/phpBB2_old/templates/subSilver/posting_poll_body.tpl @@ -0,0 +1,31 @@ + +
    {L_ADD_A_POLL}
    {L_ADD_POLL_EXPLAIN}
    {L_POLL_QUESTION}
    {L_POLL_OPTION}  
    {L_POLL_OPTION}  
    {L_POLL_LENGTH} {L_DAYS}   {L_POLL_LENGTH_EXPLAIN}
    {L_POLL_DELETE}
    + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_POST}{L_POSTED}: {POST_DATE}     {L_POST_SUBJECT}: {POST_SUBJECT}
    + + + +
    + {MESSAGE} +
    + +
    diff --git a/phpBB2_old/templates/subSilver/posting_smilies.tpl b/phpBB2_old/templates/subSilver/posting_smilies.tpl new file mode 100644 index 0000000..7028535 --- /dev/null +++ b/phpBB2_old/templates/subSilver/posting_smilies.tpl @@ -0,0 +1,45 @@ + + + + + + + +
    + + + + + + + + + +
    {L_EMOTICONS}
    + + + + + + + + + + + + +
    {smilies_row.smilies_col.SMILEY_DESC}
    {L_MORE_SMILIES}

    {L_CLOSE_WINDOW}
    diff --git a/phpBB2_old/templates/subSilver/posting_topic_review.tpl b/phpBB2_old/templates/subSilver/posting_topic_review.tpl new file mode 100644 index 0000000..7b8960c --- /dev/null +++ b/phpBB2_old/templates/subSilver/posting_topic_review.tpl @@ -0,0 +1,39 @@ + + + + + + + + + +
    {L_TOPIC_REVIEW}
    + diff --git a/phpBB2_old/templates/subSilver/privmsgs_body.tpl b/phpBB2_old/templates/subSilver/privmsgs_body.tpl new file mode 100644 index 0000000..3c221c5 --- /dev/null +++ b/phpBB2_old/templates/subSilver/privmsgs_body.tpl @@ -0,0 +1,120 @@ + + + + + + + + +
    + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}  
    +
    + + + + + + + + + + + + + +
    {BOX_SIZE_STATUS}
    + + + + +
    {INBOX_LIMIT_PERCENT}
    +
    0%50%100%
    + +
    + +
    + +
    + + + + + + +
    {POST_PM_IMG} {L_INDEX}{L_DISPLAY_MESSAGES}: + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FLAG}  {L_SUBJECT}  {L_FROM_OR_TO}  {L_DATE}  {L_MARK} 
    {listrow.L_PRIVMSG_FOLDER_ALT} {listrow.SUBJECT} {listrow.FROM}{listrow.DATE} + +
    {L_NO_MESSAGES}
    {S_HIDDEN_FIELDS} + +   + +   + +
    + + + + + + + +
    {POST_PM_IMG}{PAGE_NUMBER}{L_MARK_ALL} :: {L_UNMARK_ALL}
    {PAGINATION}
    {S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/privmsgs_popup.tpl b/phpBB2_old/templates/subSilver/privmsgs_popup.tpl new file mode 100644 index 0000000..e48205b --- /dev/null +++ b/phpBB2_old/templates/subSilver/privmsgs_popup.tpl @@ -0,0 +1,22 @@ + + + + + + + +
    + + + + +

    {L_MESSAGE}

    {L_CLOSE_WINDOW}

    +
    diff --git a/phpBB2_old/templates/subSilver/privmsgs_preview.tpl b/phpBB2_old/templates/subSilver/privmsgs_preview.tpl new file mode 100644 index 0000000..ba2ed93 --- /dev/null +++ b/phpBB2_old/templates/subSilver/privmsgs_preview.tpl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_PREVIEW}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT}
    {MESSAGE}
    + +
    diff --git a/phpBB2_old/templates/subSilver/privmsgs_read_body.tpl b/phpBB2_old/templates/subSilver/privmsgs_read_body.tpl new file mode 100644 index 0000000..3c85e6a --- /dev/null +++ b/phpBB2_old/templates/subSilver/privmsgs_read_body.tpl @@ -0,0 +1,86 @@ + + + + + + + + + + + + +
    {INBOX_IMG}{INBOX}  {SENTBOX_IMG}{SENTBOX}  {OUTBOX_IMG}{OUTBOX}  {SAVEBOX_IMG}{SAVEBOX}
    + +
    + +
    + + + + + +
    {REPLY_PM_IMG} {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {BOX_NAME} :: {L_MESSAGE}
    {L_FROM}:{MESSAGE_FROM}
    {L_TO}:{MESSAGE_TO}
    {L_POSTED}:{POST_DATE}
    {L_SUBJECT}:{POST_SUBJECT} {QUOTE_PM_IMG} {EDIT_PM_IMG}
    {MESSAGE}
    + + + + +
    {PROFILE_IMG} {PM_IMG} {EMAIL_IMG} + {WWW_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} 
    +
    {S_HIDDEN_FIELDS} + +   + +
    + + + + + +
    {REPLY_PM_IMG}{S_TIMEZONE}
    +
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/profile_add_body.tpl b/phpBB2_old/templates/subSilver/profile_add_body.tpl new file mode 100644 index 0000000..ede3217 --- /dev/null +++ b/phpBB2_old/templates/subSilver/profile_add_body.tpl @@ -0,0 +1,274 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/subSilver/profile_avatar_gallery.tpl b/phpBB2_old/templates/subSilver/profile_avatar_gallery.tpl new file mode 100644 index 0000000..9be5375 --- /dev/null +++ b/phpBB2_old/templates/subSilver/profile_avatar_gallery.tpl @@ -0,0 +1,37 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_AVATAR_GALLERY}
    {L_CATEGORY}: {S_CATEGORY_SELECT} 
    {avatar_row.avatar_column.AVATAR_NAME}
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/subSilver/profile_send_email.tpl b/phpBB2_old/templates/subSilver/profile_send_email.tpl new file mode 100644 index 0000000..86c28cb --- /dev/null +++ b/phpBB2_old/templates/subSilver/profile_send_email.tpl @@ -0,0 +1,74 @@ + + + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEND_EMAIL_MSG}
    {L_RECIPIENT}{USERNAME}
    {L_SUBJECT}
    {L_MESSAGE_BODY}
    {L_MESSAGE_BODY_DESC}
    {L_OPTIONS} + + + + +
    {L_CC_EMAIL}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/profile_send_pass.tpl b/phpBB2_old/templates/subSilver/profile_send_pass.tpl new file mode 100644 index 0000000..8d31aa4 --- /dev/null +++ b/phpBB2_old/templates/subSilver/profile_send_pass.tpl @@ -0,0 +1,35 @@ + +
    + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + +
    {L_SEND_PASSWORD}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: * + +
    {L_EMAIL_ADDRESS}: * + +
    {S_HIDDEN_FIELDS} + +    + +
    +
    diff --git a/phpBB2_old/templates/subSilver/profile_view_body.tpl b/phpBB2_old/templates/subSilver/profile_view_body.tpl new file mode 100644 index 0000000..a9c3c6f --- /dev/null +++ b/phpBB2_old/templates/subSilver/profile_view_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + +
    {L_VIEWING_PROFILE}
    {L_AVATAR}{L_ABOUT_USER}
    {AVATAR_IMG}
    {POSTER_RANK}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_JOINED}: {JOINED}
    {L_TOTAL_POSTS}: {POSTS}
    [{POST_PERCENT_STATS} / {POST_DAY_STATS}]
    {L_SEARCH_USER_POSTS}
    {L_LOCATION}: {LOCATION}
    {L_WEBSITE}: {WWW}
    {L_OCCUPATION}: {OCCUPATION}
    {L_INTERESTS}: {INTERESTS}
    +
    {L_CONTACT} {USERNAME}
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_EMAIL_ADDRESS}:{EMAIL_IMG}
    {L_PM}:{PM_IMG}
    {L_MESSENGER}:{MSN}
    {L_YAHOO}:{YIM_IMG}
    {L_AIM}:{AIM_IMG}
    {L_ICQ_NUMBER}:
    +
    + + + + + +

    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/search_body.tpl b/phpBB2_old/templates/subSilver/search_body.tpl new file mode 100644 index 0000000..d1316df --- /dev/null +++ b/phpBB2_old/templates/subSilver/search_body.tpl @@ -0,0 +1,57 @@ + +
    + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_SEARCH_QUERY}
    {L_SEARCH_KEYWORDS}:
    {L_SEARCH_KEYWORDS_EXPLAIN}

    {L_SEARCH_ANY_TERMS}
    {L_SEARCH_ALL_TERMS}
    {L_SEARCH_AUTHOR}:
    {L_SEARCH_AUTHOR_EXPLAIN}
    {L_SEARCH_OPTIONS}
    {L_FORUM}: {L_SEARCH_PREVIOUS}: 
    {L_SEARCH_MESSAGE_TITLE}
    {L_SEARCH_MESSAGE_ONLY}
    {L_CATEGORY}: {L_SORT_BY}: 
    {L_SORT_ASCENDING}
    {L_SORT_DESCENDING}
     
    {L_DISPLAY_RESULTS}: {L_POSTS}{L_TOPICS}{L_RETURN_FIRST} {L_CHARACTERS}
    {S_HIDDEN_FIELDS}
    + + + + + +
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/search_results_posts.tpl b/phpBB2_old/templates/subSilver/search_results_posts.tpl new file mode 100644 index 0000000..d41d938 --- /dev/null +++ b/phpBB2_old/templates/subSilver/search_results_posts.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + +
    {L_AUTHOR}{L_MESSAGE}
      {L_TOPIC}: {searchresults.TOPIC_TITLE}
    {searchresults.POSTER_NAME}
    +
    + {L_REPLIES}: {searchresults.TOPIC_REPLIES}
    + {L_VIEWS}: {searchresults.TOPIC_VIEWS}

    +
    {searchresults.L_MINI_POST_ALT}{L_FORUM}: {searchresults.FORUM_NAME}   {L_POSTED}: {searchresults.POST_DATE}   {L_SUBJECT}: {searchresults.POST_SUBJECT}
    {searchresults.MESSAGE}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/search_results_topics.tpl b/phpBB2_old/templates/subSilver/search_results_topics.tpl new file mode 100644 index 0000000..d628e01 --- /dev/null +++ b/phpBB2_old/templates/subSilver/search_results_topics.tpl @@ -0,0 +1,51 @@ + + + + + +
    {L_SEARCH_MATCHES}
    + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + +
      {L_FORUM}  {L_TOPICS}  {L_AUTHOR}  {L_REPLIES}  {L_VIEWS}  {L_LASTPOST} 
    {searchresults.L_TOPIC_FOLDER_ALT}{searchresults.FORUM_NAME}{searchresults.NEWEST_POST_IMG}{searchresults.TOPIC_TYPE}{searchresults.TOPIC_TITLE}
    {searchresults.GOTO_PAGE}
    {searchresults.TOPIC_AUTHOR}{searchresults.REPLIES}{searchresults.VIEWS}{searchresults.LAST_POST_TIME}
    {searchresults.LAST_POST_AUTHOR} {searchresults.LAST_POST_IMG}
     
    + + + + + + +
    {PAGE_NUMBER}{PAGINATION}
    {S_TIMEZONE}
    + + + + + +
    {JUMPBOX}
    diff --git a/phpBB2_old/templates/subSilver/search_username.tpl b/phpBB2_old/templates/subSilver/search_username.tpl new file mode 100644 index 0000000..611ec3f --- /dev/null +++ b/phpBB2_old/templates/subSilver/search_username.tpl @@ -0,0 +1,30 @@ + + + +
    + + + + +
    + + + + + + +
    {L_SEARCH_USERNAME}

     

    {L_SEARCH_EXPLAIN}
    + + {L_UPDATE_USERNAME}
     

    + +
    {L_CLOSE_WINDOW}
    +
    diff --git a/phpBB2_old/templates/subSilver/simple_footer.tpl b/phpBB2_old/templates/subSilver/simple_footer.tpl new file mode 100644 index 0000000..68c2b00 --- /dev/null +++ b/phpBB2_old/templates/subSilver/simple_footer.tpl @@ -0,0 +1,19 @@ + +

    + +Powered by phpBB {PHPBB_VERSION} © 2001,2002 phpBB Group
    + + + + + + diff --git a/phpBB2_old/templates/subSilver/simple_header.tpl b/phpBB2_old/templates/subSilver/simple_header.tpl new file mode 100644 index 0000000..705cb67 --- /dev/null +++ b/phpBB2_old/templates/subSilver/simple_header.tpl @@ -0,0 +1,237 @@ + + + + + + + + +{META} +{SITENAME} :: {PAGE_TITLE} + + + + + + diff --git a/phpBB2_old/templates/subSilver/subSilver.cfg b/phpBB2_old/templates/subSilver/subSilver.cfg new file mode 100644 index 0000000..164817a --- /dev/null +++ b/phpBB2_old/templates/subSilver/subSilver.cfg @@ -0,0 +1,101 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/subSilver.css b/phpBB2_old/templates/subSilver/subSilver.css new file mode 100644 index 0000000..ba58268 --- /dev/null +++ b/phpBB2_old/templates/subSilver/subSilver.css @@ -0,0 +1,210 @@ +/* + The original subSilver Theme for phpBB version 2+ + Created by subBlue design + http://www.subBlue.com +*/ + + + /* General page style. The scroll bar colours only visible in IE5.5+ */ +body { + background-color: #E5E5E5; + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1; +} + +/* General font families for common tags */ +font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif } +a:link,a:active,a:visited { color : #006699; } +a:hover { text-decoration: underline; color : #DD6900; } +hr { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;} + + +/* This is the border line & background colour round the entire page */ +.bodyline { background-color: #FFFFFF; border: 1px #98AAB1 solid; } + +/* This is the outline round the main forum tables */ +.forumline { background-color: #FFFFFF; border: 2px #006699 solid; } + + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #EFEFEF; } +td.row2 { background-color: #DEE3E7; } +td.row3 { background-color: #D1D7DC; } + + +/* + This is for the table cell above the Topics, Post & Last posts on the index.php page + By default this is the fading out gradiated silver background. + However, you could replace this with a bitmap specific for each forum +*/ +td.rowpic { + background-color: #FFFFFF; + background-image: url(images/cellpic2.jpg); + background-repeat: repeat-y; +} + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #FFA34F; font-size: 11px; font-weight : bold; + background-color: #006699; height: 25px; + background-image: url(images/cellpic3.gif); +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url(images/cellpic1.gif); + background-color:#D1D7DC; border: #FFFFFF; border-style: solid; height: 28px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: #FFFFFF; border-style: solid; height: 28px; } +td.row3Right,td.spaceRow { + background-color: #D1D7DC; border: #FFFFFF; border-style: solid; } + +th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; } + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #DD6900; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #006699; } +a.mainmenu:hover{ text-decoration: underline; color : #DD6900; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #006699} +a.cattitle { text-decoration: none; color : #006699; } +a.cattitle:hover{ text-decoration: underline; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #006699; } +a.forumlink { text-decoration: none; color : #006699; } +a.forumlink:hover{ text-decoration: underline; color : #DD6900; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #006699; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #006699; } +a.topictitle:visited { text-decoration: none; color : #5493B4; } +a.topictitle:hover { text-decoration: underline; color : #DD6900; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;} +a.postlink:link { text-decoration: none; color : #006699 } +a.postlink:visited { text-decoration: none; color : #5493B4; } +a.postlink:hover { text-decoration: underline; color : #DD6900} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +a.copyright { color: #444444; text-decoration: none;} +a.copyright:hover { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color : #FFFFFF; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #EFEFEF; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + background-color : #FAFAFA; + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + background-color : #FAFAFA; + font-weight : normal; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #DEE3E7; border-style: none; } + + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); diff --git a/phpBB2_old/templates/subSilver/temp/header.tpl b/phpBB2_old/templates/subSilver/temp/header.tpl new file mode 100644 index 0000000..c037df0 --- /dev/null +++ b/phpBB2_old/templates/subSilver/temp/header.tpl @@ -0,0 +1,29 @@ + + + + + + + + + + + +
    + + +Home +About me +Forum +News +Pictures +Search + + +
    + + + +
    +
    + diff --git a/phpBB2_old/templates/subSilver/temp/index_body.tpl b/phpBB2_old/templates/subSilver/temp/index_body.tpl new file mode 100644 index 0000000..86da30d --- /dev/null +++ b/phpBB2_old/templates/subSilver/temp/index_body.tpl @@ -0,0 +1,103 @@ + + + + + +
    + + {LAST_VISIT_DATE}
    + + {CURRENT_TIME}
    {L_INDEX}
    + + {L_SEARCH_NEW}
    {L_SEARCH_SELF}
    + + {L_SEARCH_UNANSWERED}
    + + + + + + + + + + + + + + + + + + + + + + + +
     {L_FORUM}  {L_TOPICS}  {L_POSTS}  {L_LASTPOST} 
    {catrow.CAT_DESC} 
    {catrow.forumrow.L_FORUM_FOLDER_ALT} {catrow.forumrow.FORUM_NAME}
    +
    {catrow.forumrow.FORUM_DESC}
    +
    {catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}
    {catrow.forumrow.TOPICS}{catrow.forumrow.POSTS} {catrow.forumrow.LAST_POST}
    + + + + + + +
    {L_MARK_FORUMS_READ}{S_TIMEZONE}
    + + + + + + + + + + + + +
    {L_WHO_IS_ONLINE}
    {L_WHO_IS_ONLINE}{TOTAL_POSTS}
    {TOTAL_USERS}
    {NEWEST_USER}
    +
    {TOTAL_USERS_ONLINE}   [ {L_WHOSONLINE_ADMIN} ]   [ {L_WHOSONLINE_MOD} ]
    {RECORD_USERS}
    {LOGGED_IN_USER_LIST}
    + + + + + +
    {L_ONLINE_EXPLAIN}
    + + +
    + + + + + + + +
    {L_LOGIN_LOGOUT}
    {L_USERNAME}: + +    {L_PASSWORD}: + +      {L_AUTO_LOGIN} + +     + +
    +
    + + +
    + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_FORUM_LOCKED}{L_FORUM_LOCKED}
    diff --git a/phpBB2_old/templates/subSilver/temp/overall_footer.tpl b/phpBB2_old/templates/subSilver/temp/overall_footer.tpl new file mode 100644 index 0000000..91ad361 --- /dev/null +++ b/phpBB2_old/templates/subSilver/temp/overall_footer.tpl @@ -0,0 +1,20 @@ + +

    {ADMIN_LINK}
    + +
    +Powered by phpBB {PHPBB_VERSION} © 2001, 2002 phpBB Group
    {TRANSLATION_INFO}
    + + + + + + diff --git a/phpBB2_old/templates/subSilver/temp/overall_header.tpl b/phpBB2_old/templates/subSilver/temp/overall_header.tpl new file mode 100644 index 0000000..5a57a97 --- /dev/null +++ b/phpBB2_old/templates/subSilver/temp/overall_header.tpl @@ -0,0 +1,252 @@ + + + + + +{META} +{NAV_LINKS} +{SITENAME} :: {PAGE_TITLE} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/viewtopic_poll_result.tpl b/phpBB2_old/templates/subSilver/viewtopic_poll_result.tpl new file mode 100644 index 0000000..45d11ea --- /dev/null +++ b/phpBB2_old/templates/subSilver/viewtopic_poll_result.tpl @@ -0,0 +1,36 @@ + + + + diff --git a/phpBB2_old/viewforum.php b/phpBB2_old/viewforum.php new file mode 100644 index 0000000..3c9af9b --- /dev/null +++ b/phpBB2_old/viewforum.php @@ -0,0 +1,695 @@ +sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); + } +} +else +{ + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); +} + +// +// If the query doesn't return any rows this isn't a valid forum. Inform +// the user. +// +if ( !($forum_row = $db->sql_fetchrow($result)) ) +{ + message_die(GENERAL_MESSAGE, 'Forum_not_exist'); +} + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// +// Start auth check +// +$is_auth = array(); +$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row); + +if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] ) +{ + if ( !$userdata['session_logged_in'] ) + { + $redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' ); + redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true)); + } + // + // The user is not authed to read this forum ... + // + $message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End of auth check +// + +// +// Handle marking posts +// +if ( $mark_read == 'topics' ) +{ + if ( $userdata['session_logged_in'] ) + { + $sql = "SELECT MAX(post_time) AS last_post + FROM " . POSTS_TABLE . " + WHERE forum_id = $forum_id"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + + if ( ( count($tracking_forums) + count($tracking_topics) ) >= 150 && empty($tracking_forums[$forum_id]) ) + { + asort($tracking_forums); + unset($tracking_forums[key($tracking_forums)]); + } + + if ( $row['last_post'] > $userdata['user_lastvisit'] ) + { + $tracking_forums[$forum_id] = time(); + + setcookie($board_config['cookie_name'] . '_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + } + + $message = $lang['Topics_marked_read'] . '

    ' . sprintf($lang['Click_return_forum'], '', ' '); + message_die(GENERAL_MESSAGE, $message); +} +// +// End handle marking posts +// + +$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : ''; +$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : ''; + +// +// Do the forum Prune +// +if ( $is_auth['auth_mod'] && $board_config['prune_enable'] ) +{ + if ( $forum_row['prune_next'] < time() && $forum_row['prune_enable'] ) + { + include($phpbb_root_path . 'includes/prune.'.$phpEx); + require($phpbb_root_path . 'includes/functions_admin.'.$phpEx); + auto_prune($forum_id); + } +} +// +// End of forum prune +// + +// +// Obtain list of moderators of each forum +// First users, then groups ... broken into two queries +// +$sql = "SELECT u.user_id, u.username + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u + WHERE aa.forum_id = $forum_id + AND aa.auth_mod = " . TRUE . " + AND g.group_single_user = 1 + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + AND u.user_id = ug.user_id + GROUP BY u.user_id, u.username + ORDER BY u.user_id"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); +} + +$moderators = array(); +while( $row = $db->sql_fetchrow($result) ) +{ + $moderators[] = '' . $row['username'] . ''; +} + +$sql = "SELECT g.group_id, g.group_name + FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g + WHERE aa.forum_id = $forum_id + AND aa.auth_mod = " . TRUE . " + AND g.group_single_user = 0 + AND g.group_type <> ". GROUP_HIDDEN ." + AND ug.group_id = aa.group_id + AND g.group_id = aa.group_id + GROUP BY g.group_id, g.group_name + ORDER BY g.group_id"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql); +} + +while( $row = $db->sql_fetchrow($result) ) +{ + $moderators[] = '' . $row['group_name'] . ''; +} + +$l_moderators = ( count($moderators) == 1 ) ? $lang['Moderator'] : $lang['Moderators']; +$forum_moderators = ( count($moderators) ) ? implode(', ', $moderators) : $lang['None']; +unset($moderators); + +// +// Generate a 'Show topics in previous x days' select box. If the topicsdays var is sent +// then get it's value, find the number of topics with dates newer than it (to properly +// handle pagination) and alter the main query +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Topics'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +if ( !empty($HTTP_POST_VARS['topicdays']) || !empty($HTTP_GET_VARS['topicdays']) ) +{ + $topic_days = ( !empty($HTTP_POST_VARS['topicdays']) ) ? intval($HTTP_POST_VARS['topicdays']) : intval($HTTP_GET_VARS['topicdays']); + $min_topic_time = time() - ($topic_days * 86400); + + $sql = "SELECT COUNT(t.topic_id) AS forum_topics + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE t.forum_id = $forum_id + AND p.post_id = t.topic_last_post_id + AND p.post_time >= $min_topic_time"; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain limited topics count information', '', __LINE__, __FILE__, $sql); + } + $row = $db->sql_fetchrow($result); + + $topics_count = ( $row['forum_topics'] ) ? $row['forum_topics'] : 1; + $limit_topics_time = "AND p.post_time >= $min_topic_time"; + + if ( !empty($HTTP_POST_VARS['topicdays']) ) + { + $start = 0; + } +} +else +{ + $topics_count = ( $forum_row['forum_topics'] ) ? $forum_row['forum_topics'] : 1; + + $limit_topics_time = ''; + $topic_days = 0; +} + +$select_topic_days = ''; + + +// +// All announcement data, this keeps announcements +// on each viewforum page ... +// +$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username + FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2 + WHERE t.forum_id = $forum_id + AND t.topic_poster = u.user_id + AND p.post_id = t.topic_last_post_id + AND p.poster_id = u2.user_id + AND t.topic_type = " . POST_ANNOUNCE . " + ORDER BY t.topic_last_post_id DESC "; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); +} + +$topic_rowset = array(); +$total_announcements = 0; +while( $row = $db->sql_fetchrow($result) ) +{ + $topic_rowset[] = $row; + $total_announcements++; +} + +$db->sql_freeresult($result); + +// +// Grab all the basic data (all topics except announcements) +// for this forum +// +$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time + FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2 + WHERE t.forum_id = $forum_id + AND t.topic_poster = u.user_id + AND p.post_id = t.topic_first_post_id + AND p2.post_id = t.topic_last_post_id + AND u2.user_id = p2.poster_id + AND t.topic_type <> " . POST_ANNOUNCE . " + $limit_topics_time + ORDER BY t.topic_type DESC, t.topic_last_post_id DESC + LIMIT $start, ".$board_config['topics_per_page']; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql); +} + +$total_topics = 0; +while( $row = $db->sql_fetchrow($result) ) +{ + $topic_rowset[] = $row; + $total_topics++; +} + +$db->sql_freeresult($result); + +// +// Total topics ... +// +$total_topics += $total_announcements; + +// +// Define censored word matches +// +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// Post URL generation for templating vars +// +$template->assign_vars(array( + 'L_DISPLAY_TOPICS' => $lang['Display_topics'], + + 'U_POST_NEW_TOPIC' => append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id"), + + 'S_SELECT_TOPIC_DAYS' => $select_topic_days, + 'S_POST_DAYS_ACTION' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&start=$start")) +); + +// +// User authorisation levels output +// +$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '
    '; + +if ( $is_auth['auth_mod'] ) +{ + $s_auth_can .= sprintf($lang['Rules_moderate'], "', ''); +} + +// +// Mozilla navigation bar +// +$nav_links['up'] = array( + 'url' => append_sid('index.'.$phpEx), + 'title' => sprintf($lang['Forum_Index'], $board_config['sitename']) +); + +// +// Dump out the page header and load viewforum template +// +define('SHOW_ONLINE', true); +$page_title = $lang['View_forum'] . ' - ' . $forum_row['forum_name']; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +$template->set_filenames(array( + 'body' => 'viewforum_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'FORUM_ID' => $forum_id, + 'FORUM_NAME' => $forum_row['forum_name'], + 'MODERATORS' => $forum_moderators, + 'POST_IMG' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'], + + 'FOLDER_IMG' => $images['folder'], + 'FOLDER_NEW_IMG' => $images['folder_new'], + 'FOLDER_HOT_IMG' => $images['folder_hot'], + 'FOLDER_HOT_NEW_IMG' => $images['folder_hot_new'], + 'FOLDER_LOCKED_IMG' => $images['folder_locked'], + 'FOLDER_LOCKED_NEW_IMG' => $images['folder_locked_new'], + 'FOLDER_STICKY_IMG' => $images['folder_sticky'], + 'FOLDER_STICKY_NEW_IMG' => $images['folder_sticky_new'], + 'FOLDER_ANNOUNCE_IMG' => $images['folder_announce'], + 'FOLDER_ANNOUNCE_NEW_IMG' => $images['folder_announce_new'], + + 'L_TOPICS' => $lang['Topics'], + 'L_REPLIES' => $lang['Replies'], + 'L_VIEWS' => $lang['Views'], + 'L_POSTS' => $lang['Posts'], + 'L_LASTPOST' => $lang['Last_Post'], + 'L_MODERATOR' => $l_moderators, + 'L_MARK_TOPICS_READ' => $lang['Mark_all_topics'], + 'L_POST_NEW_TOPIC' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'], + 'L_NO_NEW_POSTS' => $lang['No_new_posts'], + 'L_NEW_POSTS' => $lang['New_posts'], + 'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], + 'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], + 'L_NO_NEW_POSTS_HOT' => $lang['No_new_posts_hot'], + 'L_NEW_POSTS_HOT' => $lang['New_posts_hot'], + 'L_ANNOUNCEMENT' => $lang['Post_Announcement'], + 'L_STICKY' => $lang['Post_Sticky'], + 'L_POSTED' => $lang['Posted'], + 'L_JOINED' => $lang['Joined'], + 'L_AUTHOR' => $lang['Author'], + + 'S_AUTH_LIST' => $s_auth_can, + + 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id"), + + 'U_MARK_READ' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&mark=topics")) +); +// +// End header +// + +// +// Okay, lets dump out the page ... +// +if( $total_topics ) +{ + for($i = 0; $i < $total_topics; $i++) + { + $topic_id = $topic_rowset[$i]['topic_id']; + + $topic_title = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_rowset[$i]['topic_title']) : $topic_rowset[$i]['topic_title']; + + $replies = $topic_rowset[$i]['topic_replies']; + + $topic_type = $topic_rowset[$i]['topic_type']; + + if( $topic_type == POST_ANNOUNCE ) + { + $topic_type = $lang['Topic_Announcement'] . ' '; + } + else if( $topic_type == POST_STICKY ) + { + $topic_type = $lang['Topic_Sticky'] . ' '; + } + else + { + $topic_type = ''; + } + + if( $topic_rowset[$i]['topic_vote'] ) + { + $topic_type .= $lang['Topic_Poll'] . ' '; + } + + if( $topic_rowset[$i]['topic_status'] == TOPIC_MOVED ) + { + $topic_type = $lang['Topic_Moved'] . ' '; + $topic_id = $topic_rowset[$i]['topic_moved_id']; + + $folder_image = $images['folder']; + $folder_alt = $lang['Topics_Moved']; + $newest_post_img = ''; + } + else + { + if( $topic_rowset[$i]['topic_type'] == POST_ANNOUNCE ) + { + $folder = $images['folder_announce']; + $folder_new = $images['folder_announce_new']; + } + else if( $topic_rowset[$i]['topic_type'] == POST_STICKY ) + { + $folder = $images['folder_sticky']; + $folder_new = $images['folder_sticky_new']; + } + else if( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) + { + $folder = $images['folder_locked']; + $folder_new = $images['folder_locked_new']; + } + else + { + if($replies >= $board_config['hot_threshold']) + { + $folder = $images['folder_hot']; + $folder_new = $images['folder_hot_new']; + } + else + { + $folder = $images['folder']; + $folder_new = $images['folder_new']; + } + } + + $newest_post_img = ''; + if( $userdata['session_logged_in'] ) + { + if( $topic_rowset[$i]['post_time'] > $userdata['user_lastvisit'] ) + { + if( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + $unread_topics = true; + + if( !empty($tracking_topics[$topic_id]) ) + { + if( $tracking_topics[$topic_id] >= $topic_rowset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if( !empty($tracking_forums[$forum_id]) ) + { + if( $tracking_forums[$forum_id] >= $topic_rowset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) ) + { + if( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] >= $topic_rowset[$i]['post_time'] ) + { + $unread_topics = false; + } + } + + if( $unread_topics ) + { + $folder_image = $folder_new; + $folder_alt = $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + else + { + $folder_image = $folder; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder_new; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['New_posts']; + + $newest_post_img = '' . $lang['View_newest_post'] . ' '; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $newest_post_img = ''; + } + } + else + { + $folder_image = $folder; + $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts']; + + $newest_post_img = ''; + } + } + + if( ( $replies + 1 ) > $board_config['posts_per_page'] ) + { + $total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] ); + $goto_page = ' [ ' . $lang['Goto_page'] . '' . $lang['Goto_page'] . ': '; + + $times = 1; + for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page']) + { + $goto_page .= '' . $times . ''; + if( $times == 1 && $total_pages > 4 ) + { + $goto_page .= ' ... '; + $times = $total_pages - 3; + $j += ( $total_pages - 4 ) * $board_config['posts_per_page']; + } + else if ( $times < $total_pages ) + { + $goto_page .= ', '; + } + $times++; + } + $goto_page .= ' ] '; + } + else + { + $goto_page = ''; + } + + $view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id"); + + $topic_author = ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? $topic_rowset[$i]['username'] : ( ( $topic_rowset[$i]['post_username'] != '' ) ? $topic_rowset[$i]['post_username'] : $lang['Guest'] ); + + $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '' : ''; + + $first_post_time = create_date($board_config['default_dateformat'], $topic_rowset[$i]['topic_time'], $board_config['board_timezone']); + + $last_post_time = create_date($board_config['default_dateformat'], $topic_rowset[$i]['post_time'], $board_config['board_timezone']); + + $last_post_author = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '' . $topic_rowset[$i]['user2'] . ''; + + $last_post_url = '' . $lang['View_latest_post'] . ''; + + $views = $topic_rowset[$i]['topic_views']; + + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('topicrow', array( + 'ROW_COLOR' => $row_color, + 'ROW_CLASS' => $row_class, + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, + 'TOPIC_FOLDER_IMG' => $folder_image, + 'TOPIC_AUTHOR' => $topic_author, + 'GOTO_PAGE' => $goto_page, + 'REPLIES' => $replies, + 'NEWEST_POST_IMG' => $newest_post_img, + 'TOPIC_TITLE' => $topic_title, + 'TOPIC_TYPE' => $topic_type, + 'VIEWS' => $views, + 'FIRST_POST_TIME' => $first_post_time, + 'LAST_POST_TIME' => $last_post_time, + 'LAST_POST_AUTHOR' => $last_post_author, + 'LAST_POST_IMG' => $last_post_url, + + 'L_TOPIC_FOLDER_ALT' => $folder_alt, + + 'U_VIEW_TOPIC' => $view_topic_url) + ); + } + + $topics_count -= $total_announcements; + + $template->assign_vars(array( + 'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start), + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $topics_count / $board_config['topics_per_page'] )), + + 'L_GOTO_PAGE' => $lang['Goto_page']) + ); +} +else +{ + // + // No topics + // + $no_topics_msg = ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['No_topics_post_one']; + $template->assign_vars(array( + 'L_NO_TOPICS' => $no_topics_msg) + ); + + $template->assign_block_vars('switch_no_topics', array() ); + +} + +// +// Parse the page and print +// +$template->pparse('body'); + +// +// Page footer +// +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> \ No newline at end of file diff --git a/phpBB2_old/viewonline.php b/phpBB2_old/viewonline.php new file mode 100644 index 0000000..e3c88a6 --- /dev/null +++ b/phpBB2_old/viewonline.php @@ -0,0 +1,289 @@ +set_filenames(array( + 'body' => 'viewonline_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx); + +$template->assign_vars(array( + 'L_WHOSONLINE' => $lang['Who_is_Online'], + 'L_ONLINE_EXPLAIN' => $lang['Online_explain'], + 'L_USERNAME' => $lang['Username'], + 'L_FORUM_LOCATION' => $lang['Forum_Location'], + 'L_LAST_UPDATE' => $lang['Last_updated']) +); + +// +// Forum info +// +$sql = "SELECT forum_name, forum_id + FROM " . FORUMS_TABLE; +if ( $result = $db->sql_query($sql) ) +{ + while( $row = $db->sql_fetchrow($result) ) + { + $forum_data[$row['forum_id']] = $row['forum_name']; + } +} +else +{ + message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql); +} + +// +// Get auth data +// +$is_auth_ary = array(); +$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); + +// +// Get user list +// +$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip + FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s + WHERE u.user_id = s.session_user_id + AND s.session_time >= ".( time() - 300 ) . " + ORDER BY u.username ASC, s.session_ip ASC"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql); +} + +$guest_users = 0; +$registered_users = 0; +$hidden_users = 0; + +$reg_counter = 0; +$guest_counter = 0; +$prev_user = 0; +$prev_ip = ''; + +while ( $row = $db->sql_fetchrow($result) ) +{ + $view_online = false; + + if ( $row['session_logged_in'] ) + { + $user_id = $row['user_id']; + + if ( $user_id != $prev_user ) + { + $username = $row['username']; + + $style_color = ''; + if ( $row['user_level'] == ADMIN ) + { + $username = '' . $username . ''; + } + else if ( $row['user_level'] == MOD ) + { + $username = '' . $username . ''; + } + + if ( !$row['user_allow_viewonline'] ) + { + $view_online = ( $userdata['user_level'] == ADMIN ) ? true : false; + $hidden_users++; + + $username = '' . $username . ''; + } + else + { + $view_online = true; + $registered_users++; + } + + $which_counter = 'reg_counter'; + $which_row = 'reg_user_row'; + $prev_user = $user_id; + } + } + else + { + if ( $row['session_ip'] != $prev_ip ) + { + $username = $lang['Guest']; + $view_online = true; + $guest_users++; + + $which_counter = 'guest_counter'; + $which_row = 'guest_user_row'; + } + } + + $prev_ip = $row['session_ip']; + + if ( $view_online ) + { + if ( $row['session_page'] < 1 || !$is_auth_ary[$row['session_page']]['auth_view'] ) + { + switch( $row['session_page'] ) + { + case PAGE_INDEX: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx"; + break; + case PAGE_POSTING: + $location = $lang['Posting_message']; + $location_url = "index.$phpEx"; + break; + case PAGE_LOGIN: + $location = $lang['Logging_on']; + $location_url = "index.$phpEx"; + break; + case PAGE_SEARCH: + $location = $lang['Searching_forums']; + $location_url = "search.$phpEx"; + break; + case PAGE_PROFILE: + $location = $lang['Viewing_profile']; + $location_url = "index.$phpEx"; + break; + case PAGE_VIEWONLINE: + $location = $lang['Viewing_online']; + $location_url = "viewonline.$phpEx"; + break; + case PAGE_VIEWMEMBERS: + $location = $lang['Viewing_member_list']; + $location_url = "memberlist.$phpEx"; + break; + case PAGE_PRIVMSGS: + $location = $lang['Viewing_priv_msgs']; + $location_url = "privmsg.$phpEx"; + break; + case PAGE_FAQ: + $location = $lang['Viewing_FAQ']; + $location_url = "faq.$phpEx"; + break; + default: + $location = $lang['Forum_index']; + $location_url = "index.$phpEx"; + } + } + else + { + $location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']); + $location = $forum_data[$row['session_page']]; + } + + $row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars("$which_row", array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'USERNAME' => $username, + 'LASTUPDATE' => create_date($board_config['default_dateformat'], $row['session_time'], $board_config['board_timezone']), + 'FORUM_LOCATION' => $location, + + 'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id), + 'U_FORUM_LOCATION' => append_sid($location_url)) + ); + + $$which_counter++; + } +} + +if( $registered_users == 0 ) +{ + $l_r_user_s = $lang['Reg_users_zero_online']; +} +else if( $registered_users == 1 ) +{ + $l_r_user_s = $lang['Reg_user_online']; +} +else +{ + $l_r_user_s = $lang['Reg_users_online']; +} + +if( $hidden_users == 0 ) +{ + $l_h_user_s = $lang['Hidden_users_zero_online']; +} +else if( $hidden_users == 1 ) +{ + $l_h_user_s = $lang['Hidden_user_online']; +} +else +{ + $l_h_user_s = $lang['Hidden_users_online']; +} + +if( $guest_users == 0 ) +{ + $l_g_user_s = $lang['Guest_users_zero_online']; +} +else if( $guest_users == 1 ) +{ + $l_g_user_s = $lang['Guest_user_online']; +} +else +{ + $l_g_user_s = $lang['Guest_users_online']; +} + +$template->assign_vars(array( + 'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users), + 'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users)) +); + +if ( $registered_users + $hidden_users == 0 ) +{ + $template->assign_vars(array( + 'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing']) + ); +} + +if ( $guest_users == 0 ) +{ + $template->assign_vars(array( + 'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing']) + ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> diff --git a/phpBB2_old/viewtopic.php b/phpBB2_old/viewtopic.php new file mode 100644 index 0000000..59be745 --- /dev/null +++ b/phpBB2_old/viewtopic.php @@ -0,0 +1,1215 @@ += u.user_lastvisit + ORDER BY p.post_time ASC + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not obtain newer/older topic information', '', __LINE__, __FILE__, $sql); + } + + if ( !($row = $db->sql_fetchrow($result)) ) + { + message_die(GENERAL_MESSAGE, 'No_new_posts_last_visit'); + } + + $post_id = $row['post_id']; + + if (isset($HTTP_GET_VARS['sid'])) + { + redirect("viewtopic.$phpEx?sid=$session_id&" . POST_POST_URL . "=$post_id#$post_id"); + } + else + { + redirect("viewtopic.$phpEx?" . POST_POST_URL . "=$post_id#$post_id"); + } + } + } + + redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true)); + } + else if ( $HTTP_GET_VARS['view'] == 'next' || $HTTP_GET_VARS['view'] == 'previous' ) + { + $sql_condition = ( $HTTP_GET_VARS['view'] == 'next' ) ? '>' : '<'; + $sql_ordering = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'ASC' : 'DESC'; + + $sql = "SELECT t.topic_id + FROM " . TOPICS_TABLE . " t, " . TOPICS_TABLE . " t2 + WHERE + t2.topic_id = $topic_id + AND t.forum_id = t2.forum_id + AND t.topic_last_post_id $sql_condition t2.topic_last_post_id + ORDER BY t.topic_last_post_id $sql_ordering + LIMIT 1"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + $topic_id = intval($row['topic_id']); + } + else + { + $message = ( $HTTP_GET_VARS['view'] == 'next' ) ? 'No_newer_topics' : 'No_older_topics'; + message_die(GENERAL_MESSAGE, $message); + } + } +} + +// +// This rather complex gaggle of code handles querying for topics but +// also allows for direct linking to a post (and the calculation of which +// page the post is on and the correct display of viewtopic) +// +$join_sql_table = ( empty($post_id) ) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 "; +$join_sql = ( empty($post_id) ) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id"; +$count_sql = ( empty($post_id) ) ? '' : ", COUNT(p2.post_id) AS prev_posts"; + +$order_sql = ( empty($post_id) ) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC"; + +$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . " + FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . " + WHERE $join_sql + AND f.forum_id = t.forum_id + $order_sql"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain topic information", '', __LINE__, __FILE__, $sql); +} + +if ( !($forum_topic_data = $db->sql_fetchrow($result)) ) +{ + message_die(GENERAL_MESSAGE, 'Topic_post_not_exist'); +} + +$forum_id = intval($forum_topic_data['forum_id']); + +// +// Start session management +// +$userdata = session_pagestart($user_ip, $forum_id); +init_userprefs($userdata); +// +// End session management +// + +// +// Start auth check +// +$is_auth = array(); +$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data); + +if( !$is_auth['auth_view'] || !$is_auth['auth_read'] ) +{ + if ( !$userdata['session_logged_in'] ) + { + $redirect = ( isset($post_id) ) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id"; + $redirect .= ( isset($start) ) ? "&start=$start" : ''; + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true)); + } + + $message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']); + + message_die(GENERAL_MESSAGE, $message); +} +// +// End auth check +// + +$forum_name = $forum_topic_data['forum_name']; +$topic_title = $forum_topic_data['topic_title']; +$topic_id = intval($forum_topic_data['topic_id']); +$topic_time = $forum_topic_data['topic_time']; + +if ( !empty($post_id) ) +{ + $start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']); +} + +// +// Is user watching this thread? +// +if( $userdata['session_logged_in'] ) +{ + $can_watch_topic = TRUE; + + $sql = "SELECT notify_status + FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain topic watch information", '', __LINE__, __FILE__, $sql); + } + + if ( $row = $db->sql_fetchrow($result) ) + { + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + $is_watching_topic = 0; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "DELETE $sql_priority FROM " . TOPICS_WATCH_TABLE . " + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not delete topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['No_longer_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = TRUE; + + if ( $row['notify_status'] ) + { + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "UPDATE $sql_priority " . TOPICS_WATCH_TABLE . " + SET notify_status = 0 + WHERE topic_id = $topic_id + AND user_id = " . $userdata['user_id']; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not update topic watch information", '', __LINE__, __FILE__, $sql); + } + } + } + } + else + { + if ( isset($HTTP_GET_VARS['watch']) ) + { + if ( $HTTP_GET_VARS['watch'] == 'topic' ) + { + $is_watching_topic = TRUE; + + $sql_priority = (SQL_LAYER == "mysql") ? "LOW_PRIORITY" : ''; + $sql = "INSERT $sql_priority INTO " . TOPICS_WATCH_TABLE . " (user_id, topic_id, notify_status) + VALUES (" . $userdata['user_id'] . ", $topic_id, 0)"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not insert topic watch information", '', __LINE__, __FILE__, $sql); + } + } + + $template->assign_vars(array( + 'META' => '') + ); + + $message = $lang['You_are_watching'] . '

    ' . sprintf($lang['Click_return_topic'], '', ''); + message_die(GENERAL_MESSAGE, $message); + } + else + { + $is_watching_topic = 0; + } + } +} +else +{ + if ( isset($HTTP_GET_VARS['unwatch']) ) + { + if ( $HTTP_GET_VARS['unwatch'] == 'topic' ) + { + redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&" . POST_TOPIC_URL . "=$topic_id&unwatch=topic", true)); + } + } + else + { + $can_watch_topic = 0; + $is_watching_topic = 0; + } +} + +// +// Generate a 'Show posts in previous x days' select box. If the postdays var is POSTed +// then get it's value, find the number of topics with dates newer than it (to properly +// handle pagination) and alter the main query +// +$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364); +$previous_days_text = array($lang['All_Posts'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']); + +if( !empty($HTTP_POST_VARS['postdays']) || !empty($HTTP_GET_VARS['postdays']) ) +{ + $post_days = ( !empty($HTTP_POST_VARS['postdays']) ) ? intval($HTTP_POST_VARS['postdays']) : intval($HTTP_GET_VARS['postdays']); + $min_post_time = time() - (intval($post_days) * 86400); + + $sql = "SELECT COUNT(p.post_id) AS num_posts + FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p + WHERE t.topic_id = $topic_id + AND p.topic_id = t.topic_id + AND p.post_time >= $min_post_time"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain limited topics count information", '', __LINE__, __FILE__, $sql); + } + + $total_replies = ( $row = $db->sql_fetchrow($result) ) ? intval($row['num_posts']) : 0; + + $limit_posts_time = "AND p.post_time >= $min_post_time "; + + if ( !empty($HTTP_POST_VARS['postdays'])) + { + $start = 0; + } +} +else +{ + $total_replies = intval($forum_topic_data['topic_replies']) + 1; + + $limit_posts_time = ''; + $post_days = 0; +} + +$select_post_days = ''; + +// +// Decide how to order the post display +// +if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) ) +{ + $post_order = (!empty($HTTP_POST_VARS['postorder'])) ? htmlspecialchars($HTTP_POST_VARS['postorder']) : htmlspecialchars($HTTP_GET_VARS['postorder']); + $post_time_order = ($post_order == "asc") ? "ASC" : "DESC"; +} +else +{ + $post_order = 'asc'; + $post_time_order = 'ASC'; +} + +$select_post_order = ''; + +// +// Go ahead and pull all data for this topic +// +$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt + WHERE p.topic_id = $topic_id + $limit_posts_time + AND pt.post_id = p.post_id + AND u.user_id = p.poster_id + ORDER BY p.post_time $post_time_order + LIMIT $start, ".$board_config['posts_per_page']; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql); +} + +$postrow = array(); +if ($row = $db->sql_fetchrow($result)) +{ + do + { + $postrow[] = $row; + } + while ($row = $db->sql_fetchrow($result)); + $db->sql_freeresult($result); + + $total_posts = count($postrow); +} +else +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + message_die(GENERAL_MESSAGE, $lang['No_posts_topic']); +} + +$resync = FALSE; +if ($forum_topic_data['topic_replies'] + 1 < $start + count($postrow)) +{ + $resync = TRUE; +} +elseif ($start + $board_config['posts_per_page'] > $forum_topic_data['topic_replies']) +{ + $row_id = intval($forum_topic_data['topic_replies']) % intval($board_config['posts_per_page']); + if ($postrow[$row_id]['post_id'] != $forum_topic_data['topic_last_post_id'] || $start + count($postrow) < $forum_topic_data['topic_replies']) + { + $resync = TRUE; + } +} +elseif (count($postrow) < $board_config['posts_per_page']) +{ + $resync = TRUE; +} + +if ($resync) +{ + include($phpbb_root_path . 'includes/functions_admin.' . $phpEx); + sync('topic', $topic_id); + + $result = $db->sql_query('SELECT COUNT(post_id) AS total FROM ' . POSTS_TABLE . ' WHERE topic_id = ' . $topic_id); + $row = $db->sql_fetchrow($result); + $total_replies = $row['total']; +} + +$sql = "SELECT * + FROM " . RANKS_TABLE . " + ORDER BY rank_special, rank_min"; +if ( !($result = $db->sql_query($sql)) ) +{ + message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql); +} + +$ranksrow = array(); +while ( $row = $db->sql_fetchrow($result) ) +{ + $ranksrow[] = $row; +} +$db->sql_freeresult($result); + +// +// Define censored word matches +// +$orig_word = array(); +$replacement_word = array(); +obtain_word_list($orig_word, $replacement_word); + +// +// Censor topic title +// +if ( count($orig_word) ) +{ + $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); +} + +// +// Was a highlight request part of the URI? +// +$highlight_match = $highlight = ''; +if (isset($HTTP_GET_VARS['highlight'])) +{ + // Split words and phrases + $words = explode(' ', trim(htmlspecialchars($HTTP_GET_VARS['highlight']))); + + for($i = 0; $i < sizeof($words); $i++) + { + if (trim($words[$i]) != '') + { + $highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#')); + } + } + unset($words); + + $highlight = urlencode($HTTP_GET_VARS['highlight']); +} + +// +// Post, reply and other URL generation for +// templating vars +// +$new_topic_url = append_sid("posting.$phpEx?mode=newtopic&" . POST_FORUM_URL . "=$forum_id"); +$reply_topic_url = append_sid("posting.$phpEx?mode=reply&" . POST_TOPIC_URL . "=$topic_id"); +$view_forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"); +$view_prev_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=previous"); +$view_next_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=next"); + +// +// Mozilla navigation bar +// +$nav_links['prev'] = array( + 'url' => $view_prev_topic_url, + 'title' => $lang['View_previous_topic'] +); +$nav_links['next'] = array( + 'url' => $view_next_topic_url, + 'title' => $lang['View_next_topic'] +); +$nav_links['up'] = array( + 'url' => $view_forum_url, + 'title' => $forum_name +); + +$reply_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $images['reply_locked'] : $images['reply_new']; +$reply_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['Reply_to_topic']; +$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new']; +$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic']; + +// +// Set a cookie for this topic +// +if ( $userdata['session_logged_in'] ) +{ + $tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array(); + $tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array(); + + if ( !empty($tracking_topics[$topic_id]) && !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( $tracking_topics[$topic_id] > $tracking_forums[$forum_id] ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else if ( !empty($tracking_topics[$topic_id]) || !empty($tracking_forums[$forum_id]) ) + { + $topic_last_read = ( !empty($tracking_topics[$topic_id]) ) ? $tracking_topics[$topic_id] : $tracking_forums[$forum_id]; + } + else + { + $topic_last_read = $userdata['user_lastvisit']; + } + + if ( count($tracking_topics) >= 150 && empty($tracking_topics[$topic_id]) ) + { + asort($tracking_topics); + unset($tracking_topics[key($tracking_topics)]); + } + + $tracking_topics[$topic_id] = time(); + + setcookie($board_config['cookie_name'] . '_t', serialize($tracking_topics), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']); +} + +// +// Load templates +// +$template->set_filenames(array( + 'body' => 'viewtopic_body.tpl') +); +make_jumpbox('viewforum.'.$phpEx, $forum_id); + +// +// Output page header +// +$page_title = $lang['View_topic'] .' - ' . $topic_title; +include($phpbb_root_path . 'includes/page_header.'.$phpEx); + +// +// User authorisation levels output +// +$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '
    '; +$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '
    '; + +$topic_mod = ''; + +if ( $is_auth['auth_mod'] ) +{ + $s_auth_can .= sprintf($lang['Rules_moderate'], "', ''); + + $topic_mod .= "' . $lang['Delete_topic'] . ' '; + + $topic_mod .= "' . $lang['Move_topic'] . ' '; + + $topic_mod .= ( $forum_topic_data['topic_status'] == TOPIC_UNLOCKED ) ? "' . $lang['Lock_topic'] . ' ' : "' . $lang['Unlock_topic'] . ' '; + + $topic_mod .= "' . $lang['Split_topic'] . ' '; +} + +// +// Topic watch information +// +$s_watching_topic = ''; +if ( $can_watch_topic ) +{ + if ( $is_watching_topic ) + { + $s_watching_topic = "' . $lang['Stop_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['topic_un_watch']) ) ? "' . $lang['Stop_watching_topic'] . '' : ''; + } + else + { + $s_watching_topic = "' . $lang['Start_watching_topic'] . ''; + $s_watching_topic_img = ( isset($images['Topic_watch']) ) ? "' . $lang['Start_watching_topic'] . '' : ''; + } +} + +// +// If we've got a hightlight set pass it on to pagination, +// I get annoyed when I lose my highlight after the first page. +// +$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start); + +// +// Send vars to template +// +$template->assign_vars(array( + 'FORUM_ID' => $forum_id, + 'FORUM_NAME' => $forum_name, + 'TOPIC_ID' => $topic_id, + 'TOPIC_TITLE' => $topic_title, + 'PAGINATION' => $pagination, + 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )), + + 'POST_IMG' => $post_img, + 'REPLY_IMG' => $reply_img, + + 'L_AUTHOR' => $lang['Author'], + 'L_MESSAGE' => $lang['Message'], + 'L_POSTED' => $lang['Posted'], + 'L_POST_SUBJECT' => $lang['Post_subject'], + 'L_VIEW_NEXT_TOPIC' => $lang['View_next_topic'], + 'L_VIEW_PREVIOUS_TOPIC' => $lang['View_previous_topic'], + 'L_POST_NEW_TOPIC' => $post_alt, + 'L_POST_REPLY_TOPIC' => $reply_alt, + 'L_BACK_TO_TOP' => $lang['Back_to_top'], + 'L_DISPLAY_POSTS' => $lang['Display_posts'], + 'L_LOCK_TOPIC' => $lang['Lock_topic'], + 'L_UNLOCK_TOPIC' => $lang['Unlock_topic'], + 'L_MOVE_TOPIC' => $lang['Move_topic'], + 'L_SPLIT_TOPIC' => $lang['Split_topic'], + 'L_DELETE_TOPIC' => $lang['Delete_topic'], + 'L_GOTO_PAGE' => $lang['Goto_page'], + + 'S_TOPIC_LINK' => POST_TOPIC_URL, + 'S_SELECT_POST_DAYS' => $select_post_days, + 'S_SELECT_POST_ORDER' => $select_post_order, + 'S_POST_DAYS_ACTION' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id . "&start=$start"), + 'S_AUTH_LIST' => $s_auth_can, + 'S_TOPIC_ADMIN' => $topic_mod, + 'S_WATCH_TOPIC' => $s_watching_topic, + 'S_WATCH_TOPIC_IMG' => $s_watching_topic_img, + + 'U_VIEW_TOPIC' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=$start&postdays=$post_days&postorder=$post_order&highlight=$highlight"), + 'U_VIEW_FORUM' => $view_forum_url, + 'U_VIEW_OLDER_TOPIC' => $view_prev_topic_url, + 'U_VIEW_NEWER_TOPIC' => $view_next_topic_url, + 'U_POST_NEW_TOPIC' => $new_topic_url, + 'U_POST_REPLY_TOPIC' => $reply_topic_url) +); + +// +// Does this topic contain a poll? +// +if ( !empty($forum_topic_data['topic_vote']) ) +{ + $s_hidden_fields = ''; + + $sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result + FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr + WHERE vd.topic_id = $topic_id + AND vr.vote_id = vd.vote_id + ORDER BY vr.vote_option_id ASC"; + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + if ( $vote_info = $db->sql_fetchrowset($result) ) + { + $db->sql_freeresult($result); + $vote_options = count($vote_info); + + $vote_id = $vote_info[0]['vote_id']; + $vote_title = $vote_info[0]['vote_text']; + + $sql = "SELECT vote_id + FROM " . VOTE_USERS_TABLE . " + WHERE vote_id = $vote_id + AND vote_user_id = " . intval($userdata['user_id']); + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, "Could not obtain user vote data for this topic", '', __LINE__, __FILE__, $sql); + } + + $user_voted = ( $row = $db->sql_fetchrow($result) ) ? TRUE : 0; + $db->sql_freeresult($result); + + if ( isset($HTTP_GET_VARS['vote']) || isset($HTTP_POST_VARS['vote']) ) + { + $view_result = ( ( ( isset($HTTP_GET_VARS['vote']) ) ? $HTTP_GET_VARS['vote'] : $HTTP_POST_VARS['vote'] ) == 'viewresult' ) ? TRUE : 0; + } + else + { + $view_result = 0; + } + + $poll_expired = ( $vote_info[0]['vote_length'] ) ? ( ( $vote_info[0]['vote_start'] + $vote_info[0]['vote_length'] < time() ) ? TRUE : 0 ) : 0; + + if ( $user_voted || $view_result || $poll_expired || !$is_auth['auth_vote'] || $forum_topic_data['topic_status'] == TOPIC_LOCKED ) + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_result.tpl') + ); + + $vote_results_sum = 0; + + for($i = 0; $i < $vote_options; $i++) + { + $vote_results_sum += $vote_info[$i]['vote_result']; + } + + $vote_graphic = 0; + $vote_graphic_max = count($images['voting_graphic']); + + for($i = 0; $i < $vote_options; $i++) + { + $vote_percent = ( $vote_results_sum > 0 ) ? $vote_info[$i]['vote_result'] / $vote_results_sum : 0; + $vote_graphic_length = round($vote_percent * $board_config['vote_graphic_length']); + + $vote_graphic_img = $images['voting_graphic'][$vote_graphic]; + $vote_graphic = ($vote_graphic < $vote_graphic_max - 1) ? $vote_graphic + 1 : 0; + + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text'], + 'POLL_OPTION_RESULT' => $vote_info[$i]['vote_result'], + 'POLL_OPTION_PERCENT' => sprintf("%.1d%%", ($vote_percent * 100)), + + 'POLL_OPTION_IMG' => $vote_graphic_img, + 'POLL_OPTION_IMG_WIDTH' => $vote_graphic_length) + ); + } + + $template->assign_vars(array( + 'L_TOTAL_VOTES' => $lang['Total_votes'], + 'TOTAL_VOTES' => $vote_results_sum) + ); + + } + else + { + $template->set_filenames(array( + 'pollbox' => 'viewtopic_poll_ballot.tpl') + ); + + for($i = 0; $i < $vote_options; $i++) + { + if ( count($orig_word) ) + { + $vote_info[$i]['vote_option_text'] = preg_replace($orig_word, $replacement_word, $vote_info[$i]['vote_option_text']); + } + + $template->assign_block_vars("poll_option", array( + 'POLL_OPTION_ID' => $vote_info[$i]['vote_option_id'], + 'POLL_OPTION_CAPTION' => $vote_info[$i]['vote_option_text']) + ); + } + + $template->assign_vars(array( + 'L_SUBMIT_VOTE' => $lang['Submit_vote'], + 'L_VIEW_RESULTS' => $lang['View_results'], + + 'U_VIEW_RESULTS' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&vote=viewresult")) + ); + + $s_hidden_fields = ''; + } + + if ( count($orig_word) ) + { + $vote_title = preg_replace($orig_word, $replacement_word, $vote_title); + } + + $s_hidden_fields .= ''; + + $template->assign_vars(array( + 'POLL_QUESTION' => $vote_title, + + 'S_HIDDEN_FIELDS' => $s_hidden_fields, + 'S_POLL_ACTION' => append_sid("posting.$phpEx?mode=vote&" . POST_TOPIC_URL . "=$topic_id")) + ); + + $template->assign_var_from_handle('POLL_DISPLAY', 'pollbox'); + } +} + +// +// Update the topic view counter +// +$sql = "UPDATE " . TOPICS_TABLE . " + SET topic_views = topic_views + 1 + WHERE topic_id = $topic_id"; +if ( !$db->sql_query($sql) ) +{ + message_die(GENERAL_ERROR, "Could not update topic views.", '', __LINE__, __FILE__, $sql); +} + +// +// Okay, let's do the loop, yeah come on baby let's do the loop +// and it goes like this ... +// +for($i = 0; $i < $total_posts; $i++) +{ + $poster_id = $postrow[$i]['user_id']; + $poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $postrow[$i]['username']; + + $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']); + + $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : ''; + + $poster_from = ( $postrow[$i]['user_from'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : ''; + + $poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : ''; + + $poster_avatar = ''; + if ( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS && $postrow[$i]['user_allowavatar'] ) + { + switch( $postrow[$i]['user_avatar_type'] ) + { + case USER_AVATAR_UPLOAD: + $poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '' : ''; + break; + case USER_AVATAR_REMOTE: + $poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '' : ''; + break; + case USER_AVATAR_GALLERY: + $poster_avatar = ( $board_config['allow_avatar_local'] ) ? '' : ''; + break; + } + } + + // + // Define the little post icon + // + if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read ) + { + $mini_post_img = $images['icon_minipost_new']; + $mini_post_alt = $lang['New_post']; + } + else + { + $mini_post_img = $images['icon_minipost']; + $mini_post_alt = $lang['Post']; + } + + $mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id']; + + // + // Generate ranks, set them to empty string initially. + // + $poster_rank = ''; + $rank_image = ''; + if ( $postrow[$i]['user_id'] == ANONYMOUS ) + { + } + else if ( $postrow[$i]['user_rank'] ) + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + else + { + for($j = 0; $j < count($ranksrow); $j++) + { + if ( $postrow[$i]['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] ) + { + $poster_rank = $ranksrow[$j]['rank_title']; + $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '' . $poster_rank . '
    ' : ''; + } + } + } + + // + // Handle anon users posting with usernames + // + if ( $poster_id == ANONYMOUS && $postrow[$i]['post_username'] != '' ) + { + $poster = $postrow[$i]['post_username']; + $poster_rank = $lang['Guest']; + } + + $temp_url = ''; + + if ( $poster_id != ANONYMOUS ) + { + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $profile_img = '' . $lang['Read_profile'] . ''; + $profile = '' . $lang['Read_profile'] . ''; + + $temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$poster_id"); + $pm_img = '' . $lang['Send_private_message'] . ''; + $pm = '' . $lang['Send_private_message'] . ''; + + if ( !empty($postrow[$i]['user_viewemail']) || $is_auth['auth_mod'] ) + { + $email_uri = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $poster_id) : 'mailto:' . $postrow[$i]['user_email']; + + $email_img = '' . $lang['Send_email'] . ''; + $email = '' . $lang['Send_email'] . ''; + } + else + { + $email_img = ''; + $email = ''; + } + + $www_img = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + $www = ( $postrow[$i]['user_website'] ) ? '' . $lang['Visit_website'] . '' : ''; + + if ( !empty($postrow[$i]['user_icq']) ) + { + $icq_status_img = ''; + $icq_img = '' . $lang['ICQ'] . ''; + $icq = '' . $lang['ICQ'] . ''; + } + else + { + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + } + + $aim_img = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + $aim = ( $postrow[$i]['user_aim'] ) ? '' . $lang['AIM'] . '' : ''; + + $temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$poster_id"); + $msn_img = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + $msn = ( $postrow[$i]['user_msnm'] ) ? '' . $lang['MSNM'] . '' : ''; + + $yim_img = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + $yim = ( $postrow[$i]['user_yim'] ) ? '' . $lang['YIM'] . '' : ''; + } + else + { + $profile_img = ''; + $profile = ''; + $pm_img = ''; + $pm = ''; + $email_img = ''; + $email = ''; + $www_img = ''; + $www = ''; + $icq_status_img = ''; + $icq_img = ''; + $icq = ''; + $aim_img = ''; + $aim = ''; + $msn_img = ''; + $msn = ''; + $yim_img = ''; + $yim = ''; + } + + $temp_url = append_sid("posting.$phpEx?mode=quote&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $quote_img = '' . $lang['Reply_with_quote'] . ''; + $quote = '' . $lang['Reply_with_quote'] . ''; + + $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($postrow[$i]['username']) . "&showresults=posts"); + $search_img = '' . $lang['Search_user_posts'] . ''; + $search = '' . $lang['Search_user_posts'] . ''; + + if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] ) + { + $temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']); + $edit_img = '' . $lang['Edit_delete_post'] . ''; + $edit = '' . $lang['Edit_delete_post'] . ''; + } + else + { + $edit_img = ''; + $edit = ''; + } + + if ( $is_auth['auth_mod'] ) + { + $temp_url = "modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&" . POST_TOPIC_URL . "=" . $topic_id . "&sid=" . $userdata['session_id']; + $ip_img = '' . $lang['View_IP'] . ''; + $ip = '' . $lang['View_IP'] . ''; + + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $ip_img = ''; + $ip = ''; + + if ( $userdata['user_id'] == $poster_id && $is_auth['auth_delete'] && $forum_topic_data['topic_last_post_id'] == $postrow[$i]['post_id'] ) + { + $temp_url = "posting.$phpEx?mode=delete&" . POST_POST_URL . "=" . $postrow[$i]['post_id'] . "&sid=" . $userdata['session_id']; + $delpost_img = '' . $lang['Delete_post'] . ''; + $delpost = '' . $lang['Delete_post'] . ''; + } + else + { + $delpost_img = ''; + $delpost = ''; + } + } + + $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : ''; + + $message = $postrow[$i]['post_text']; + $bbcode_uid = $postrow[$i]['bbcode_uid']; + + $user_sig = ( $postrow[$i]['enable_sig'] && $postrow[$i]['user_sig'] != '' && $board_config['allow_sig'] ) ? $postrow[$i]['user_sig'] : ''; + $user_sig_bbcode_uid = $postrow[$i]['user_sig_bbcode_uid']; + + // + // Note! The order used for parsing the message _is_ important, moving things around could break any + // output + // + + // + // If the board has HTML off but the post has HTML + // on then we process it, else leave it alone + // + if ( !$board_config['allow_html'] ) + { + if ( $user_sig != '' && $userdata['user_allowhtml'] ) + { + $user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig); + } + + if ( $postrow[$i]['enable_html'] ) + { + $message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message); + } + } + + // + // Parse message and/or sig for BBCode if reqd + // + if ( $board_config['allow_bbcode'] ) + { + if ( $user_sig != '' && $user_sig_bbcode_uid != '' ) + { + $user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig); + } + + if ( $bbcode_uid != '' ) + { + $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message); + } + } + + if ( $user_sig != '' ) + { + $user_sig = make_clickable($user_sig); + } + $message = make_clickable($message); + + // + // Parse smilies + // + if ( $board_config['allow_smilies'] ) + { + if ( $postrow[$i]['user_allowsmile'] && $user_sig != '' ) + { + $user_sig = smilies_pass($user_sig); + } + + if ( $postrow[$i]['enable_smilies'] ) + { + $message = smilies_pass($message); + } + } + + // + // Highlight active words (primarily for search) + // + if ($highlight_match) + { + // This was shamelessly 'borrowed' from volker at multiartstudio dot de + // via php.net's annotated manual + $message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace('#\b(" . $highlight_match . ")\b#i', '\\\\1', '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace naughty words + // + if (count($orig_word)) + { + $post_subject = preg_replace($orig_word, $replacement_word, $post_subject); + + if ($user_sig != '') + { + $user_sig = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1)); + } + + $message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $message . '<'), 1, -1)); + } + + // + // Replace newlines (we use this rather than nl2br because + // till recently it wasn't XHTML compliant) + // + if ( $user_sig != '' ) + { + $user_sig = '
    _________________
    ' . str_replace("\n", "\n
    \n", $user_sig); + } + + $message = str_replace("\n", "\n
    \n", $message); + + // + // Editing information + // + if ( $postrow[$i]['post_edit_count'] ) + { + $l_edit_time_total = ( $postrow[$i]['post_edit_count'] == 1 ) ? $lang['Edited_time_total'] : $lang['Edited_times_total']; + + $l_edited_by = '

    ' . sprintf($l_edit_time_total, $poster, create_date($board_config['default_dateformat'], $postrow[$i]['post_edit_time'], $board_config['board_timezone']), $postrow[$i]['post_edit_count']); + } + else + { + $l_edited_by = ''; + } + + // + // Again this will be handled by the templating + // code at some point + // + $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2']; + $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2']; + + $template->assign_block_vars('postrow', array( + 'ROW_COLOR' => '#' . $row_color, + 'ROW_CLASS' => $row_class, + 'POSTER_NAME' => $poster, + 'POSTER_RANK' => $poster_rank, + 'RANK_IMAGE' => $rank_image, + 'POSTER_JOINED' => $poster_joined, + 'POSTER_POSTS' => $poster_posts, + 'POSTER_FROM' => $poster_from, + 'POSTER_AVATAR' => $poster_avatar, + 'POST_DATE' => $post_date, + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => $message, + 'SIGNATURE' => $user_sig, + 'EDITED_MESSAGE' => $l_edited_by, + + 'MINI_POST_IMG' => $mini_post_img, + 'PROFILE_IMG' => $profile_img, + 'PROFILE' => $profile, + 'SEARCH_IMG' => $search_img, + 'SEARCH' => $search, + 'PM_IMG' => $pm_img, + 'PM' => $pm, + 'EMAIL_IMG' => $email_img, + 'EMAIL' => $email, + 'WWW_IMG' => $www_img, + 'WWW' => $www, + 'ICQ_STATUS_IMG' => $icq_status_img, + 'ICQ_IMG' => $icq_img, + 'ICQ' => $icq, + 'AIM_IMG' => $aim_img, + 'AIM' => $aim, + 'MSN_IMG' => $msn_img, + 'MSN' => $msn, + 'YIM_IMG' => $yim_img, + 'YIM' => $yim, + 'EDIT_IMG' => $edit_img, + 'EDIT' => $edit, + 'QUOTE_IMG' => $quote_img, + 'QUOTE' => $quote, + 'IP_IMG' => $ip_img, + 'IP' => $ip, + 'DELETE_IMG' => $delpost_img, + 'DELETE' => $delpost, + + 'L_MINI_POST_ALT' => $mini_post_alt, + + 'U_MINI_POST' => $mini_post_url, + 'U_POST_ID' => $postrow[$i]['post_id']) + ); +} + +$template->pparse('body'); + +include($phpbb_root_path . 'includes/page_tail.'.$phpEx); + +?> diff --git a/phpBB2_old/xs_mod/formIE.css b/phpBB2_old/xs_mod/formIE.css new file mode 100644 index 0000000..b76fd40 --- /dev/null +++ b/phpBB2_old/xs_mod/formIE.css @@ -0,0 +1,19 @@ +/* Fancy form styles for IE */ + +input, textarea, select { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +input { text-indent : 2px; } + +input.button { +border-top-width : 1px; +border-right-width : 1px; +border-bottom-width : 1px; +border-left-width : 1px; +} + +.postbody { line-height: 18px} diff --git a/phpBB2_old/xs_mod/images/button.gif b/phpBB2_old/xs_mod/images/button.gif new file mode 100644 index 0000000..17660cd Binary files /dev/null and b/phpBB2_old/xs_mod/images/button.gif differ diff --git a/phpBB2_old/xs_mod/images/cellpic1.gif b/phpBB2_old/xs_mod/images/cellpic1.gif new file mode 100644 index 0000000..db90769 Binary files /dev/null and b/phpBB2_old/xs_mod/images/cellpic1.gif differ diff --git a/phpBB2_old/xs_mod/images/cellpic2.jpg b/phpBB2_old/xs_mod/images/cellpic2.jpg new file mode 100644 index 0000000..d6e4687 Binary files /dev/null and b/phpBB2_old/xs_mod/images/cellpic2.jpg differ diff --git a/phpBB2_old/xs_mod/images/cellpic3.gif b/phpBB2_old/xs_mod/images/cellpic3.gif new file mode 100644 index 0000000..49b5b26 Binary files /dev/null and b/phpBB2_old/xs_mod/images/cellpic3.gif differ diff --git a/phpBB2_old/xs_mod/images/cellpic4.gif b/phpBB2_old/xs_mod/images/cellpic4.gif new file mode 100644 index 0000000..9041126 Binary files /dev/null and b/phpBB2_old/xs_mod/images/cellpic4.gif differ diff --git a/phpBB2_old/xs_mod/images/dot.gif b/phpBB2_old/xs_mod/images/dot.gif new file mode 100644 index 0000000..10db0b3 Binary files /dev/null and b/phpBB2_old/xs_mod/images/dot.gif differ diff --git a/phpBB2_old/xs_mod/images/spacer.gif b/phpBB2_old/xs_mod/images/spacer.gif new file mode 100644 index 0000000..cd29009 Binary files /dev/null and b/phpBB2_old/xs_mod/images/spacer.gif differ diff --git a/phpBB2_old/xs_mod/images/top_bg.gif b/phpBB2_old/xs_mod/images/top_bg.gif new file mode 100644 index 0000000..8e5d7ca Binary files /dev/null and b/phpBB2_old/xs_mod/images/top_bg.gif differ diff --git a/phpBB2_old/xs_mod/images/top_bg2.gif b/phpBB2_old/xs_mod/images/top_bg2.gif new file mode 100644 index 0000000..8e48cb3 Binary files /dev/null and b/phpBB2_old/xs_mod/images/top_bg2.gif differ diff --git a/phpBB2_old/xs_mod/images/top_logo.jpg b/phpBB2_old/xs_mod/images/top_logo.jpg new file mode 100644 index 0000000..e030ee3 Binary files /dev/null and b/phpBB2_old/xs_mod/images/top_logo.jpg differ diff --git a/phpBB2_old/xs_mod/style.css b/phpBB2_old/xs_mod/style.css new file mode 100644 index 0000000..5c55db8 --- /dev/null +++ b/phpBB2_old/xs_mod/style.css @@ -0,0 +1,253 @@ +/*************************************************************************** + * style.css + * --------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + +body { + background-color: #E5E5E5; + margin: 0px; + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1; +} + +/* General font families for common tags */ +font, th, td, p, div { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; } +a:link,a:active,a:visited { color: #005784; } +a:hover { text-decoration: underline; color: #D46400; } +hr { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;} + +ul { list-style-image: url('images/dot.gif'); margin-left: 20px; margin-bottom: 0px; margin-top: 0px; } +h1 { margin-top: 0px; } + +label:hover { color: #D46400; } + +/* This is the border line & background colour round the entire page */ +table.bodyline { background-color: #F4F4F4; border: 1px #98AAB1 solid; } + +/* This is the outline round the main forum tables */ +table.forumline { background-color: #FFF; border: 2px #98AAB1 solid; } +td.forumline { background-color: #F8F8F8; border: 2px #98AAB1 solid; } + +img.screenshot { border: 2px #006699 solid; padding: 1px; background-color: #F8F8F8; } +img.screenshot { border: 2px #015884 solid; padding: 1px; background-color: #F8F8F8; } + +/* Main table cell colours and backgrounds */ +td.row1 { background-color: #F0F0F0; } +td.row2 { background-color: #E4E9ED; } +td.row3 { background-color: #D8DFE3; } + + +table.navbar { border: solid 1px #98AAB1; background-color: #DFE3E6; background-image: url('images/cellpic4.gif'); background-repeat: repeat-x; height: 22px; } +table.navbar td { color: #FFA34F; font-size: 11px; font-weight: bold; padding-left: 5px; } +table.navbar td a, table.navbar td a:visited { color: #3385AD; text-decoration: underline; } +table.navbar td a:hover, table.navbar td a:active { color: #FFA34F; text-decoration: underline; } +table.navbar td.nav_invert { color: #3385AD; font-size: 11px; font-weight: bold; padding-left: 5px; } +table.navbar td.nav_invert a, table.navbar td.nav_invert a:visited { color: #FFA34F; text-decoration: none; } +table.navbar td.nav_invert a:hover, table.navbar td.nav_invert a:active { color: #3385AD; text-decoration: underline; } + +.bottomnav { color: #444; font-size: 11px; font-weight: bold; } +.bottomnav a, .bottomnav a:visited { color: #3385AD; text-decoration: none; } +.bottomnav a:hover, .bottomnav a:active { color: #FFA34F; text-decoration: underline; } + +/* highlight text */ +.ast { color: #DD6900; font-weight: bold; } + +/* Header cells - the blue and silver gradient backgrounds */ +th { + color: #C8DCE6; font-size: 11px; font-weight: bold; + background-color: #328BB8; + background-image: url('images/cellpic3.gif'); + background-repeat: repeat-x; + height: 28px; +} + +td.explain { + background-color: #E7ECF0; + background-image: url('images/cellpic1.gif'); + background-repeat: repeat-x; + font-size: 10px; + color: #015884; + border: 0px #FFF solid; +} + +td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom { + background-image: url('images/cellpic1.gif'); background-color: #BFC8CE; background-repeat: repeat-x; border: 0px #FFFFFF solid; height: 28px; +} + +td.cat,td.catHead,td.catBottom { + height: 29px; + border-width: 0px 0px 0px 0px; +} + + +/* + Setting additional nice inner borders for the main table cells. + The names indicate which sides the border will be on. + Don't worry if you don't understand this, just ignore it :-) +*/ +th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { + font-weight: bold; border: 0px #FFFFFF solid; height: 28px; } + +th.thHead,td.catHead { font-size: 12px; } +/*th.thHead,td.catHead { border-width: 1px 1px 0px 1px; } +th.thSides,td.catSides,td.spaceRow,td.explain { border-width: 0px 1px 0px 1px; } +th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } +th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } +th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } +th.thTop { border-width: 1px 0px 0px 0px; } +th.thCornerL { border-width: 1px 0px 0px 1px; } +th.thCornerR { border-width: 1px 1px 0px 0px; }*/ + + +/* The largest text used in the index page title and toptic title etc. */ +.maintitle,h1,h2 { + font-weight: bold; font-size: 20px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; line-height : 120%; color : #000000; +} + + +/* General text */ +.gen { font-size : 12px; } +.genmed { font-size : 11px; } +.gensmall { font-size : 10px; } +.gen,.genmed,.gensmall { color : #000000; } +a.gen,a.genmed,a.gensmall { color: #006699; text-decoration: none; } +a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #DD6900; text-decoration: underline; } + + +/* The register, login, search etc links at the top of the page */ +.mainmenu { font-size : 11px; color : #000000 } +a.mainmenu { text-decoration: none; color : #006699; } +a.mainmenu:hover{ text-decoration: underline; color : #DD6900; } + + +/* Forum category titles */ +.cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #006699} +a.cattitle { text-decoration: none; color : #006699; } +a.cattitle:hover{ text-decoration: underline; } + + +/* Forum title: Text and link to the forums used in: index.php */ +.forumlink { font-weight: bold; font-size: 12px; color : #006699; } +a.forumlink { text-decoration: none; color : #006699; } +a.forumlink:hover{ text-decoration: underline; color : #DD6900; } + + +/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ +.nav { font-weight: bold; font-size: 11px; color : #000000;} +a.nav { text-decoration: none; color : #006699; } +a.nav:hover { text-decoration: underline; } + + +/* titles for the topics: could specify viewed link colour too */ +.topictitle { font-weight: bold; font-size: 11px; color : #000000; } +a.topictitle:link { text-decoration: none; color : #006699; } +a.topictitle:visited { text-decoration: none; color : #5493B4; } +a.topictitle:hover { text-decoration: underline; color : #DD6900; } + + +/* Name of poster in viewmsg.php and viewtopic.php and other places */ +.name { font-size : 11px; color : #000000;} + +/* Location, number of posts, post date etc */ +.postdetails { font-size : 10px; color : #000000; } + + +/* The content of the posts (body of text) */ +.postbody { font-size : 12px;} +a.postlink:link { text-decoration: none; color : #006699 } +a.postlink:visited { text-decoration: none; color : #5493B4; } +a.postlink:hover { text-decoration: underline; color : #DD6900} + + +/* Quote & Code blocks */ +.code { + font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + +.quote { + font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; + background-color: #FAFAFA; border: #D1D7DC; border-style: solid; + border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px +} + + +/* Copyright and bottom info */ +.copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} +.copyright a { color: #006699; text-decoration: none;} +.copyright a:hover { color: #000000; text-decoration: underline;} + + +/* Form elements */ +input,textarea, select { + color : #000000; + font: normal 11px Verdana, Arial, Helvetica, sans-serif; + border-color : #000000; +} + +/* The text input fields background colour */ +input.post, textarea.post, select { + background-color: #FFFFFF; + border: solid 1px #000; + color: #000; +} + +input { text-indent : 2px; } + +/* The buttons used for bbCode styling in message post */ +input.button { + background-color : #EFEFEF; + color : #000000; + font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; +} + +/* The main submit button option */ +input.mainoption { + font-weight : bold; +} + +/* None-bold submit button */ +input.liteoption { + font-weight : normal; +} + +input.mainoption, input.liteoption { + height: 18px; + font-size: 11px; + color: #000; + padding: 0 5px; + margin: 0 5px; + border: solid 1px #000; + background: #F0F0F0 url('images/button.gif') repeat-x top left; +} + +input.mainoption:hover, input.liteoption:hover { + color: #FFA34F; + background: #F0F0F0 url('images/button.gif') repeat-x bottom left; +} + +/* This is the line in the posting page which shows the rollover + help line. This is actually a text box, but if set to be the same + colour as the background no one will know ;) +*/ +.helpline { background-color: #DEE3E7; border: solid 0px #FFF; } + +/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */ +@import url("formIE.css"); + diff --git a/phpBB2_old/xs_mod/tpl/cache.tpl b/phpBB2_old/xs_mod/tpl/cache.tpl new file mode 100644 index 0000000..a77396d --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/cache.tpl @@ -0,0 +1,43 @@ + +/*************************************************************************** + * cache.tpl + * --------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_MANAGE_CACHE}

    + +

    +{L_XS_MANAGE_CACHE_EXPLAIN2} +{RESULT} +

    + +
    + + + + +
    {L_INDEX} + + + + + + + + +
     {L_FAQ}{L_FAQ}   {L_SEARCH}{L_SEARCH}   {L_MEMBERLIST}{L_MEMBERLIST}   {L_USERGROUPS}{L_USERGROUPS}  + +  {L_REGISTER}{L_REGISTER}  + +
     {L_PROFILE}{L_PROFILE}   {PRIVATE_MESSAGE_INFO}{PRIVATE_MESSAGE_INFO}   {L_LOGIN_LOGOUT}{L_LOGIN_LOGOUT} 
    + +
    diff --git a/phpBB2_old/templates/subSilver/temp/profile_add_body.tpl b/phpBB2_old/templates/subSilver/temp/profile_add_body.tpl new file mode 100644 index 0000000..6ac7fa3 --- /dev/null +++ b/phpBB2_old/templates/subSilver/temp/profile_add_body.tpl @@ -0,0 +1,278 @@ + +
    + +{ERROR_BOX} + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_REGISTRATION_INFO}
    {L_ITEMS_REQUIRED}
    {L_USERNAME}: *{USERNAME}
    {L_USERNAME}: *
    {L_EMAIL_ADDRESS}: *
    {L_CURRENT_PASSWORD}: *
    + {L_CONFIRM_PASSWORD_EXPLAIN}
    + +
    {L_NEW_PASSWORD}: *
    + {L_PASSWORD_IF_CHANGED}
    + +
    {L_CONFIRM_PASSWORD}: *
    + {L_PASSWORD_CONFIRM_IF_CHANGED}
    + +
    {L_CONFIRM_CODE_IMPAIRED}

    {CONFIRM_IMG}

    {L_CONFIRM_CODE}: *
    {L_CONFIRM_CODE_EXPLAIN}
     
    {L_PROFILE_INFO}
    {L_PROFILE_INFO_NOTICE}
    {L_ICQ_NUMBER}: + +
    {L_AIM}: + +
    {L_MESSENGER}: + +
    {L_YAHOO}: + +
    {L_WEBSITE}: + +
    {L_LOCATION}: + +
    {L_OCCUPATION}: + +
    {L_INTERESTS}: + +
    {L_SIGNATURE}:
    {L_SIGNATURE_EXPLAIN}

    {HTML_STATUS}
    {BBCODE_STATUS}
    {SMILIES_STATUS}
    + +
     
    {L_PREFERENCES}
    {L_PUBLIC_VIEW_EMAIL}: + + {L_YES}   + + {L_NO}
    {L_HIDE_USER}: + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_REPLY}:
    + {L_NOTIFY_ON_REPLY_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_NOTIFY_ON_PRIVMSG}: + + {L_YES}   + + {L_NO}
    {L_POPUP_ON_PRIVMSG}:
    {L_POPUP_ON_PRIVMSG_EXPLAIN}
    + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ADD_SIGNATURE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_BBCODE}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_HTML}: + + {L_YES}   + + {L_NO}
    {L_ALWAYS_ALLOW_SMILIES}: + + {L_YES}   + + {L_NO}
    {L_BOARD_LANGUAGE}:{LANGUAGE_SELECT}
    {L_BOARD_STYLE}:{STYLE_SELECT}
    {L_TIMEZONE}:{TIMEZONE_SELECT}
    {L_DATE_FORMAT}:
    + {L_DATE_FORMAT_EXPLAIN}
    + +
     
    {L_AVATAR_PANEL}
    + + + + +
    {L_AVATAR_EXPLAIN}{L_CURRENT_IMAGE}
    {AVATAR}
     {L_DELETE_AVATAR}
    {L_UPLOAD_AVATAR_FILE}:
    {L_UPLOAD_AVATAR_URL}:
    {L_UPLOAD_AVATAR_URL_EXPLAIN}
    {L_LINK_REMOTE_AVATAR}:
    {L_LINK_REMOTE_AVATAR_EXPLAIN}
    {L_AVATAR_GALLERY}:
    {S_HIDDEN_FIELDS}  
    + +
    diff --git a/phpBB2_old/templates/subSilver/temp/viewtopic_body.tpl b/phpBB2_old/templates/subSilver/temp/viewtopic_body.tpl new file mode 100644 index 0000000..5342d30 --- /dev/null +++ b/phpBB2_old/templates/subSilver/temp/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/subSilver/theme_info.cfg b/phpBB2_old/templates/subSilver/theme_info.cfg new file mode 100644 index 0000000..bd61eef --- /dev/null +++ b/phpBB2_old/templates/subSilver/theme_info.cfg @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/phpBB2_old/templates/subSilver/viewforum_body.tpl b/phpBB2_old/templates/subSilver/viewforum_body.tpl new file mode 100644 index 0000000..3c2a067 --- /dev/null +++ b/phpBB2_old/templates/subSilver/viewforum_body.tpl @@ -0,0 +1,98 @@ + +
    + + + + + + + + + + +
    {FORUM_NAME}
    {L_MODERATOR}: {MODERATORS}

    {LOGGED_IN_USER_LIST}
    {PAGINATION}
    {L_POST_NEW_TOPIC}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_TOPICS}  {L_REPLIES}  {L_AUTHOR}  {L_VIEWS}  {L_LASTPOST} 
    {topicrow.L_TOPIC_FOLDER_ALT}{topicrow.NEWEST_POST_IMG}{topicrow.TOPIC_TYPE}{topicrow.TOPIC_TITLE}
    + {topicrow.GOTO_PAGE}
    {topicrow.REPLIES}{topicrow.TOPIC_AUTHOR}{topicrow.VIEWS}{topicrow.LAST_POST_TIME}
    {topicrow.LAST_POST_AUTHOR} {topicrow.LAST_POST_IMG}
    {L_NO_TOPICS}
    {L_DISPLAY_TOPICS}: {S_SELECT_TOPIC_DAYS}  + +
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_INDEX} -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    +
    + + + + + +
    {JUMPBOX}
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_NEW_POSTS}{L_NEW_POSTS}  {L_NO_NEW_POSTS}{L_NO_NEW_POSTS}  {L_ANNOUNCEMENT}{L_ANNOUNCEMENT}
    {L_NEW_POSTS_HOT}{L_NEW_POSTS_HOT}  {L_NO_NEW_POSTS_HOT}{L_NO_NEW_POSTS_HOT}  {L_STICKY}{L_STICKY}
    {L_NEW_POSTS_LOCKED}{L_NEW_POSTS_LOCKED}  {L_NO_NEW_POSTS_LOCKED}{L_NO_NEW_POSTS_LOCKED}
    {S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/subSilver/viewonline_body.tpl b/phpBB2_old/templates/subSilver/viewonline_body.tpl new file mode 100644 index 0000000..e0813c0 --- /dev/null +++ b/phpBB2_old/templates/subSilver/viewonline_body.tpl @@ -0,0 +1,53 @@ + + + + + +
    {L_INDEX}
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     {L_USERNAME}  {L_LAST_UPDATE}  {L_FORUM_LOCATION} 
    {TOTAL_REGISTERED_USERS_ONLINE}
     {reg_user_row.USERNAME}  {reg_user_row.LASTUPDATE}  {reg_user_row.FORUM_LOCATION} 
    .
    {TOTAL_GUEST_USERS_ONLINE}
     {guest_user_row.USERNAME}  {guest_user_row.LASTUPDATE}  {guest_user_row.FORUM_LOCATION} 
    + + + + + + +
    {L_ONLINE_EXPLAIN}{S_TIMEZONE}
    + +
    + + + + + +
    {JUMPBOX}
    + diff --git a/phpBB2_old/templates/subSilver/viewtopic_body.tpl b/phpBB2_old/templates/subSilver/viewtopic_body.tpl new file mode 100644 index 0000000..9fea16e --- /dev/null +++ b/phpBB2_old/templates/subSilver/viewtopic_body.tpl @@ -0,0 +1,91 @@ + + + + + +
    {TOPIC_TITLE}
    + {PAGINATION}
    +  
    + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}
    + + + + + + {POLL_DISPLAY} + + + + + + + + + + + + + + + + + + + + +
    {L_VIEW_PREVIOUS_TOPIC} :: {L_VIEW_NEXT_TOPIC}  
    {L_AUTHOR}{L_MESSAGE}
    {postrow.POSTER_NAME}
    {postrow.POSTER_RANK}
    {postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

    {postrow.POSTER_JOINED}
    {postrow.POSTER_POSTS}
    {postrow.POSTER_FROM}

    + + + + + + + + + + +
    {postrow.L_MINI_POST_ALT}{L_POSTED}: {postrow.POST_DATE}    {L_POST_SUBJECT}: {postrow.POST_SUBJECT}{postrow.QUOTE_IMG} {postrow.EDIT_IMG} {postrow.DELETE_IMG} {postrow.IP_IMG}

    {postrow.MESSAGE}{postrow.SIGNATURE}{postrow.EDITED_MESSAGE}
    {L_BACK_TO_TOP} + + + +
    {postrow.PROFILE_IMG} {postrow.PM_IMG} {postrow.EMAIL_IMG} {postrow.WWW_IMG} {postrow.AIM_IMG} {postrow.YIM_IMG} {postrow.MSN_IMG}
    + + + +
    {L_DISPLAY_POSTS}: {S_SELECT_POST_DAYS} {S_SELECT_POST_ORDER} 
    + + + + + + + + + + +
    {L_POST_NEW_TOPIC}   {L_POST_REPLY_TOPIC}   {L_INDEX} + -> {FORUM_NAME}{S_TIMEZONE}
    {PAGINATION} +
    {PAGE_NUMBER}
    + + + + + + +
    {S_WATCH_TOPIC}
    +  
    + {S_TOPIC_ADMIN}
    {JUMPBOX}{S_AUTH_LIST}
    diff --git a/phpBB2_old/templates/subSilver/viewtopic_poll_ballot.tpl b/phpBB2_old/templates/subSilver/viewtopic_poll_ballot.tpl new file mode 100644 index 0000000..1e0cb21 --- /dev/null +++ b/phpBB2_old/templates/subSilver/viewtopic_poll_ballot.tpl @@ -0,0 +1,26 @@ +

    + + + + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + +
     {poll_option.POLL_OPTION_CAPTION}
    + +
    {L_VIEW_RESULTS}
    {S_HIDDEN_FIELDS}

    + + + + + + + + + + +
    {POLL_QUESTION}
    + + + + + + + + + +
    {poll_option.POLL_OPTION_CAPTION} + + + + + + +
    {poll_option.POLL_OPTION_PERCENT}
    +
     {poll_option.POLL_OPTION_PERCENT} [ {poll_option.POLL_OPTION_RESULT} ]
    +
    {L_TOTAL_VOTES} : {TOTAL_VOTES}
    +
    +
    + + + + + + + + + + + + + + + + + +
    {L_XS_MANAGE_CACHE}
    {L_XS_TEMPLATE}{L_XS_STYLES}{L_XS_CLEAR_ALL_LC}{L_XS_COMPILE_ALL_LC}
    {styles.TPL}{styles.STYLES}{L_XS_CLEAR_CACHE_LC}{L_XS_COMPILE_CACHE_LC}
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/clone.tpl b/phpBB2_old/xs_mod/tpl/clone.tpl new file mode 100644 index 0000000..c1fe88d --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/clone.tpl @@ -0,0 +1,39 @@ + +/*************************************************************************** + * clone.tpl + * --------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_CLONE_STYLES}

    + +

    {L_XS_CLONE_STYLE_EXPLAIN}

    + + + + + + + + + + + + + + + + + + +
    {L_XS_CLONE_STYLES}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLES}{L_XS_CLONE_STYLE_LC}
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/clone2.tpl b/phpBB2_old/xs_mod/tpl/clone2.tpl new file mode 100644 index 0000000..613dd36 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/clone2.tpl @@ -0,0 +1,73 @@ + +/*************************************************************************** + * clone2.tpl + * ---------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_CLONE_STYLE}

    + +

    {L_XS_CLONE_STYLE_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_CLONE_STYLE}
    {L_XS_CLONE_STYLE_EXPLAIN2}
    {styles.L_CLONE}
    {L_XS_CLONE_STYLE_EXPLAIN3}
    {S_HIDDEN_FIELDS}
    {L_CLONE_STYLE3}
    {L_XS_CLONE_STYLE_EXPLAIN4}
    {L_XS_CLONE_NEWDIR_NAME} onkeyup="document.clone.clone_style_name_0.value=document.clone.clone_style_name.value" />
    {L_XS_CLONE_SELECT}
    {L_XS_CLONE_SELECT_EXPLAIN}
    + + + +
    + +
    {L_XS_CLONE_NEWNAME} + + + +
    diff --git a/phpBB2_old/xs_mod/tpl/config.tpl b/phpBB2_old/xs_mod/tpl/config.tpl new file mode 100644 index 0000000..8564001 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/config.tpl @@ -0,0 +1,217 @@ + +/*************************************************************************** + * confir.tpl + * ---------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_CONFIG_MAINTITLE}

    + +

    {L_XS_CONFIG_SUBTITLE}

    + + + + + + + + + + + + +
    {L_XS_CONFIG_UPDATED}
    + + + + + + + + + +
     
    {L_XS_CONFIG_UPDATED_EXPLAIN}
     
    +
    + + + + + + + + + + +
    {L_XS_CONFIG_WARNING}
    + + + + + + + + + +
     
    {L_XS_CONFIG_WARNING_EXPLAIN}
     
    +
    + + + + + + + + + + +
    {L_Error}
    + + + + + + + + + +
     
    {L_XS_FTP_COMMENT3}
     
    +
    + + + + + + + + + + +
    {L_Error}
    + + + + + + + + + +
     
    {ftperror.ERROR}
     
    +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_CONFIG_TITLE}
    {L_XS_CONFIG_NAVBAR}
    {L_XS_CONFIG_NAVBAR_EXPLAIN}
    + +
    + +
    {L_XS_CONFIG_DEF_TEMPLATE}
    {L_XS_CONFIG_DEF_TEMPLATE_EXPLAIN}
    {L_XS_CONFIG_CHECK_SWITCHES}
    {L_XS_CONFIG_CHECK_SWITCHES_EXPLAIN}
    +
    +
    +
    +
    + +
    {L_XS_CONFIG_SHOW_ERRORS}
    {L_XS_CONFIG_SHOW_ERROR_EXPLAIN}
      
    {L_XS_CONFIG_TPL_COMMENTS}
    {L_XS_CONFIG_TPL_COMMENTS_EXPLAIN}
      
    {L_XS_CONFIG_CACHE}
    {L_XS_CONFIG_USE_CACHE}
    {L_XS_CONFIG_USE_CACHE_EXPLAIN}
      
    {L_XS_CONFIG_AUTO_COMPILE}
    {L_XS_CONFIG_AUTO_COMPILE_EXPLAIN}
      
    {L_XS_CONFIG_AUTO_RECOMPILE}
    {L_XS_CONFIG_AUTO_RECOMPILE_EXPLAIN}
      
    {L_XS_CONFIG_PHP}
    {L_XS_CONFIG_PHP_EXPLAIN}
    {L_XS_FTP_CONFIG}
    {L_XS_FTP_EXPLAIN}
    {L_XS_FTP_HOST}{HOST_GUESS}:
    {L_XS_FTP_LOGIN}{LOGIN_GUESS}:
    {L_XS_FTP_PATH}{PATH_GUESS}:
    {S_HIDDEN_FIELDS}
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_DEBUG_HEADER}
    {L_XS_DEBUG_EXPLAIN}
    {XS_DEBUG_HDR1}
    {L_XS_DEBUG_TPL_NAME}{XS_DEBUG_FILENAME1}
    {L_XS_DEBUG_CACHE_FILENAME}{XS_DEBUG_FILENAME2}
    {L_XS_DEBUG_DATA}{XS_DEBUG_DATA}
    diff --git a/phpBB2_old/xs_mod/tpl/downloads.tpl b/phpBB2_old/xs_mod/tpl/downloads.tpl new file mode 100644 index 0000000..ca5ee1f --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/downloads.tpl @@ -0,0 +1,66 @@ + +/*************************************************************************** + * downloads.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_DOWNLOAD_STYLES}

    + +

    {L_XS_DOWNLOAD_EXPLAIN2}

    + + + + + + + + + + + + + + + +{S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + +{S_HIDDEN_FIELDS} + + + + + + + + + + +
    {L_XS_DOWNLOAD_LOCATIONS}
    {url.NUM1}. {url.TITLE} [{L_XS_CLICK_HERE_LC}]{url.URL} [{L_XS_EDIT_LC}]
    {L_XS_EDIT_LINK}
    {L_XS_LINK_TITLE}:
    {L_XS_LINK_URL}:
    {L_XS_DELETE}:
    {L_XS_ADD_LINK}
    {L_XS_LINK_TITLE}:
    {L_XS_LINK_URL}:
    +
    + diff --git a/phpBB2_old/xs_mod/tpl/edit.tpl b/phpBB2_old/xs_mod/tpl/edit.tpl new file mode 100644 index 0000000..7119035 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/edit.tpl @@ -0,0 +1,82 @@ + +/*************************************************************************** + * edit.tpl + * -------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EDIT_TEMPLATES}

    + +

    {L_XS_EDIT_TEMPLATE_COMMENT1}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FILEMAN_BROWSER}
    + {L_XS_FILEMAN_DIRECTORY} + + {tree.SEPARATOR} + {tree.ITEM} + +
    + {begin_dirs.L_COUNT}
    + + » {begin_dirs.dir.NAME}
    + +
    {L_XS_FILEMAN_FILTER}
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + +
    {L_XS_FILEMAN_FILTER_EXT}
    {L_XS_FILEMAN_FILTER_CONTENT}
    +
    {L_XS_FILEMAN_FILENAME}{L_XS_FILEMAN_FILESIZE}{L_XS_FILEMAN_FILETIME}{L_XS_FILEMAN_OPTIONS}
    {begin_files.file.NAME}{begin_files.file.SIZE}{begin_files.file.TIME} {L_XS_FILEMAN_TIME_TODAY}{L_XS_FILEMAN_EDIT_LC}
    + diff --git a/phpBB2_old/xs_mod/tpl/edit_data.tpl b/phpBB2_old/xs_mod/tpl/edit_data.tpl new file mode 100644 index 0000000..1457a35 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/edit_data.tpl @@ -0,0 +1,48 @@ + +/*************************************************************************** + * edit_data.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 49 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EDIT_STYLES_DATA}

    + +

    {L_XS_EDITDATA_EXPLAIN}

    + +
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_EDIT_STYLES_DATA}
    {L_XS_EDITDATA_VAR}{L_XS_EDITDATA_VALUE}{L_XS_EDITDATA_COMMENT}
    {row.TEXT}: 
    +
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/edit_data_list.tpl b/phpBB2_old/xs_mod/tpl/edit_data_list.tpl new file mode 100644 index 0000000..e09cd78 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/edit_data_list.tpl @@ -0,0 +1,38 @@ + +/*************************************************************************** + * edit_data_list.tpl + * ------------------ + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EDIT_STYLES_DATA}

    + +

    {L_XS_EDITDATA_EXPLAIN}

    + + + + + + + + + + + + + + + + + +
    {L_XS_EDIT_STYLES_DATA}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLE}{L_XS_EDIT_LC}
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/edit_file.tpl b/phpBB2_old/xs_mod/tpl/edit_file.tpl new file mode 100644 index 0000000..2bc5d9e --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/edit_file.tpl @@ -0,0 +1,149 @@ + +/*************************************************************************** + * edit_file.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + + + +

    {L_XS_EDIT_TEMPLATES}

    + +

    {L_XS_EDIT_TEMPLATE_COMMENT2}

    + +
    {S_HIDDEN_FIELDS}{S_FILTER} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FILEEDIT_EDIT_NAME} {FULLFILE}
    + {L_XS_FILEEDIT_LOCATION} + + {tree.SEPARATOR} + {tree.ITEM} + + / {FILE} +   + | +   + [{L_XS_FILEEDIT_RELOAD_LC}] + [{L_XS_FILEEDIT_DOWNLOAD_LC}] +
    {L_XS_FILEEDIT_FUNCTIONS}
    + {L_XS_FILEEDIT_REPLACE1}{L_XS_FILEEDIT_REPLACE2} [{L_XS_FILEEDIT_REPLACE_FIRST_LC}] [{L_XS_FILEEDIT_REPLACE_ALL_LC}] [{L_XS_FILEEDIT_REPLACE_UNDO_LC}]
    +
    {L_XS_FILEEDIT_BACKUPS}
    + [{L_XS_FILEEDIT_BACKUPS_SAVE_LC}]
    + + {backup.TIME} [{L_XS_FILEEDIT_BACKUPS_SHOW_LC}] [{L_XS_FILEEDIT_BACKUPS_RESTORE_LC}] [{L_XS_FILEEDIT_BACKUPS_DOWNLOAD_LC}] [{L_XS_FILEEDIT_BACKUPS_DELETE_LC}]
    + +
    {L_XS_FILEEDIT_UPLOAD}
    + {L_XS_FILEEDIT_UPLOAD_FILE} +
    +
    +
    diff --git a/phpBB2_old/xs_mod/tpl/export.tpl b/phpBB2_old/xs_mod/tpl/export.tpl new file mode 100644 index 0000000..28c6c71 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/export.tpl @@ -0,0 +1,40 @@ + +/*************************************************************************** + * export.tpl + * ---------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLE}

    + +

    {L_XS_EXPORT_STYLE_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_STYLE}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLES}{L_XS_EXPORT_STYLE_LC}
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/export2.tpl b/phpBB2_old/xs_mod/tpl/export2.tpl new file mode 100644 index 0000000..6315645 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/export2.tpl @@ -0,0 +1,99 @@ + +/*************************************************************************** + * export2.tpl + * ----------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLE}

    + +

    {L_XS_EXPORT_STYLE_EXPLAIN}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_TITLE}
    {L_XS_EXPORT_TPL_NAME}:
    {L_XS_EXPORT_STYLE_NAMES}: + + + +
    + +
    {L_XS_EXPORT_STYLE_NAME}: + + + +
    {L_XS_EXPORT_STYLE_COMMENT}:
    {L_XS_EXPORT_WHERE}: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_WHERE_DOWNLOAD}

    {L_XS_EXPORT_WHERE_STORE}
      {L_XS_EXPORT_WHERE_STORE_DIR}:

    {L_XS_EXPORT_WHERE_FTP}
      {L_XS_FTP_HOST}:
      {L_XS_FTP_LOGIN}:
      {L_XS_FTP_PASS}:
      {L_XS_FTP_REMOTEDIR}:
    {L_XS_EXPORT_FILENAME}:
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/xs_mod/tpl/export_data.tpl b/phpBB2_old/xs_mod/tpl/export_data.tpl new file mode 100644 index 0000000..3c1aab1 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/export_data.tpl @@ -0,0 +1,40 @@ + +/*************************************************************************** + * export_data.tpl + * --------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLES_DATA}

    + +

    {L_XS_EXPORT_STYLES_DATA_EXPLAIN2}

    + + + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_STYLES_DATA}
    {L_XS_TEMPLATE}{L_XS_STYLES} 
    {styles.TPL}{styles.STYLES}{L_XS_EXPORT_STYLE_DATA_LC}
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/export_data2.tpl b/phpBB2_old/xs_mod/tpl/export_data2.tpl new file mode 100644 index 0000000..5223ff6 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/export_data2.tpl @@ -0,0 +1,42 @@ + +/*************************************************************************** + * export_data2.tpl + * ---------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_EXPORT_STYLES_DATA}

    + +

    {L_XS_EXPORT_STYLES_DATA_EXPLAIN2}

    {L_XS_EXPORT_STYLES_DATA_EXPLAIN3}

    + + +
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + +
    {L_XS_EXPORT_STYLES_DATA}
    {L_XS_STYLES}{L_XS_SELECT}
    {styles.STYLE}
    +
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/frame_top.tpl b/phpBB2_old/xs_mod/tpl/frame_top.tpl new file mode 100644 index 0000000..c23875d --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/frame_top.tpl @@ -0,0 +1,57 @@ + +/*************************************************************************** + * frame_top.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + + + + + + + + + + + + + +
    + + + +
    + +[{left_nav.TEXT}] + +
    + +
    + + \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/frameset.tpl b/phpBB2_old/xs_mod/tpl/frameset.tpl new file mode 100644 index 0000000..9fb2bea --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/frameset.tpl @@ -0,0 +1,22 @@ + +/*************************************************************************** + * frameset.tpl + * ------------ + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + + + + + + + \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/ftp.tpl b/phpBB2_old/xs_mod/tpl/ftp.tpl new file mode 100644 index 0000000..3e16a38 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/ftp.tpl @@ -0,0 +1,89 @@ + +/*************************************************************************** + * ftp.tpl + * ------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_FTP_TITLE}

    + + +

    {L_XS_FTP_COMMENT1}

    + + +

    {L_XS_FTP_COMMENT2}

    + + + + + + + + + + + +
    {L_ERROR}
    + + + + + + + + + +
     
    {error.MSG}
     
    + + +
    {S_HIDDEN_FIELDS}{S_EXTRA_FIELDS} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FTP_CONFIG} +
    {L_XS_FTP_SELECT_METHOD}: + {L_XS_FTP_SELECT_LOCAL}
    + {L_XS_FTP_SELECT_FTP}
    +
    {L_XS_FTP_SETTINGS}
    {L_XS_FTP_SETTINGS}
    {L_XS_FTP_HOST}{HOST_GUESS}:
    {L_XS_FTP_LOGIN}{LOGIN_GUESS}:
    {L_XS_FTP_PATH}{PATH_GUESS}:
    {L_XS_FTP_PASS}:
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/xs_mod/tpl/import.tpl b/phpBB2_old/xs_mod/tpl/import.tpl new file mode 100644 index 0000000..7ad6d83 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/import.tpl @@ -0,0 +1,90 @@ + +/*************************************************************************** + * import.tpl + * ---------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_IMPORT_STYLES}

    + +

    {L_XS_IMPORT_EXPLAIN}

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_FILE}{L_XS_TEMPLATE}{L_XS_STYLES}{L_XS_UPLOAD_TIME}{L_XS_COMMENT}{L_XS_OPTIONS}
    {styles.FILE2}{styles.TEMPLATE}-{list.STYLE}
    {styles.DATE}-{styles.COMMENT}{styles.error.ERROR} + + [{L_XS_IMPORT_LC}] + [{L_XS_LIST_FILES_LC}] + + [{L_XS_DELETE_FILE_LC}] +
    {L_XS_IMPORT_NO_CACHED}
    + +
    + + + +
    + + + + + + + + + + + + + + + +
    {L_XS_ADD_STYLES}
    {L_XS_ADD_STYLES_WEB}: +
    {S_HIDDEN_FIELDS} + + +
    +
    {L_XS_ADD_STYLES_COPY}: +
    {S_HIDDEN_FIELDS} + + +
    +
    {L_XS_ADD_STYLES_UPLOAD}: +
    {S_HIDDEN_FIELDS} + + +
    +
    + +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/import2.tpl b/phpBB2_old/xs_mod/tpl/import2.tpl new file mode 100644 index 0000000..a921d6c --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/import2.tpl @@ -0,0 +1,47 @@ + +/*************************************************************************** + * import2.tpl + * ----------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +
    {S_RETURN} + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_IMPORT_TPL}
    {L_XS_IMPORT_TPL_COMMENT}

    {L_XS_IMPORT_TPL_FILENAME} {STYLE_FILENAME}
    {L_XS_IMPORT_TPL_TPLNAME} {STYLE_TEMPLATE}
    {L_XS_IMPORT_TPL_COMMENT2} {STYLE_COMMENT}
    {L_XS_IMPORT_SELECT_STYLES} + + + + + + +
        ()
    {L_XS_IMPORT_INSTALL_STYLE}     ()
    {S_HIDDEN_FIELDS}
    diff --git a/phpBB2_old/xs_mod/tpl/index.tpl b/phpBB2_old/xs_mod/tpl/index.tpl new file mode 100644 index 0000000..268df46 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/index.tpl @@ -0,0 +1,98 @@ + +/*************************************************************************** + * index.tpl + * --------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_TITLE}

    + +

    {L_XS_MAIN_COMMENT1}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_MAIN_TITLE}
    {L_XS_CONFIGURATION}:
    {L_XS_CONFIGURATION_EXPLAIN}
    [{L_XS_SET_CONFIGURATION_LC}]
    {L_XS_INSTALL_UNINSTALL_STYLES}
    {L_XS_INSTALL_STYLES}:
    {L_XS_INSTALL_STYLES_EXPLAIN}
    [{L_XS_INSTALL_STYLES_LC}]
    {L_XS_UNINSTALL_STYLES}:
    {L_XS_UNINSTALL_STYLES_EXPLAIN}
    [{L_XS_UNINSTALL_STYLES_LC}]
    {L_XS_MANAGE_STYLES}
    {L_XS_DEFAULT_STYLE}:
    {L_XS_DEFAULT_STYLE_EXPLAIN}
    [{L_XS_SET_DEFAULT_STYLE_LC}]
    {L_XS_MANAGE_CACHE}:
    {L_XS_MANAGE_CACHE_EXPLAIN}
    [{L_XS_MANAGE_CACHE_LC}]
    {L_XS_IMPORT_EXPORT_STYLES}
    {L_XS_MAIN_COMMENT2}
    {L_XS_IMPORT_STYLES}:
    {L_XS_IMPORT_STYLES_EXPLAIN}
    [{L_XS_IMPORT_STYLES_LC}]
    {L_XS_EXPORT_STYLES}:
    {L_XS_EXPORT_STYLES_EXPLAIN}
    [{L_XS_EXPORT_STYLES_LC}]
    {L_XS_CLONE_STYLES}:
    {L_XS_CLONE_STYLES_EXPLAIN}
    [{L_XS_CLONE_STYLES_LC}]
    {L_XS_EDIT_TEMPLATES}
    {L_XS_EDIT_TEMPLATES}:
    {L_XS_EDIT_TEMPLATES_EXPLAIN}
    [{L_XS_EDIT_TEMPLATES_LC}]
    {L_XS_EDIT_STYLES_DATA}:
    {L_XS_EDIT_STYLES_DATA_EXPLAIN}
    [{L_XS_EDIT_STYLES_DATA_LC}]
    {L_XS_EXPORT_STYLES_DATA}:
    {L_XS_EXPORT_STYLES_DATA_EXPLAIN}
    [{L_XS_EXPORT_STYLES_DATA_LC}]
    {L_XS_OTHER_FUNCTIONS}
    {L_XS_CHECK_FOR_UPDATES}:
    {L_XS_CHECK_FOR_UPDATES_EXPLAIN}
    [{L_XS_CHECK_FOR_UPDATES_LC}]
    + +
    + diff --git a/phpBB2_old/xs_mod/tpl/install.tpl b/phpBB2_old/xs_mod/tpl/install.tpl new file mode 100644 index 0000000..857a874 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/install.tpl @@ -0,0 +1,45 @@ + +/*************************************************************************** + * install.tpl + * ----------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_INSTALL_STYLES}

    + +

    {L_XS_INSTALL_STYLES_EXPLAIN2}

    + +
    {S_HIDDEN_FIELDS} + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_INSTALL_STYLES}
    {L_XS_TEMPLATE}{L_XS_STYLE}{L_XS_INSTALL}{L_XS_SELECT}
    {styles.STYLE}{styles.THEME}{L_XS_INSTALL_LC}
    +
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/message.tpl b/phpBB2_old/xs_mod/tpl/message.tpl new file mode 100644 index 0000000..c059e97 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/message.tpl @@ -0,0 +1,35 @@ + +/*************************************************************************** + * message.tpl + * ----------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + + + + + + + + +
    {MESSAGE_TITLE}
    + + + + + + + + + +
     
    {MESSAGE_TEXT}
     
    + diff --git a/phpBB2_old/xs_mod/tpl/styles.tpl b/phpBB2_old/xs_mod/tpl/styles.tpl new file mode 100644 index 0000000..dc93343 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/styles.tpl @@ -0,0 +1,108 @@ + +/*************************************************************************** + * styles.tpl + * ---------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_DEF_TITLE}

    + +

    {L_XS_DEF_EXPLAIN}

    + + + + + + + + + +
    {L_XS_STYLES_USERS}
    + + + + + + + + + + +
    {user.NUM}: [{user.ID}] {user.NAME}
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    {L_XS_ID}{L_XS_STYLE}{L_XS_TEMPLATE}{L_XS_USERS}{L_XS_OPTIONS}
    {styles.ID}{styles.STYLE}{styles.TEMPLATE}{styles.TOTAL} + + + + [{L_XS_STYLES_NO_OVERRIDE}] + + + [{L_XS_STYLES_DO_OVERRIDE}] + + + + [{L_XS_STYLES_SET_DEFAULT}] + + [{L_XS_STYLES_MAKE_PUBLIC}] + + + [{L_XS_STYLES_MAKE_ADMIN}] + + +
    + [{L_XS_STYLES_SWITCH_ALL}] +
    + +
    {S_HIDDEN_FIELDS} + +
    + + +   + +
    + +
    diff --git a/phpBB2_old/xs_mod/tpl/uninstall.tpl b/phpBB2_old/xs_mod/tpl/uninstall.tpl new file mode 100644 index 0000000..739fdf9 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/uninstall.tpl @@ -0,0 +1,69 @@ + +/*************************************************************************** + * uninstall.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_UNINSTALL_STYLES}

    + +

    {L_XS_UNINSTALL_STYLES_EXPLAIN2}

    + + + + + + + + + +
    {L_Information}
    + + + + + + + + + +
     
    {L_XS_STYLE_REMOVED}
     
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_UNINSTALL_STYLES}
    {L_XS_TEMPLATE}{L_XS_STYLE}{L_XS_UNINSTALL}{L_XS_REMOVE_FILES}
    {styles.TPL}{styles.item.THEME}{L_XS_UNINSTALL_LC}{L_XS_UNINSTALL2_LC} 
    +
    \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/update.tpl b/phpBB2_old/xs_mod/tpl/update.tpl new file mode 100644 index 0000000..c4673c0 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/update.tpl @@ -0,0 +1,52 @@ + +/*************************************************************************** + * update.tpl + * ---------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_UPDATES}

    + +

    {L_XS_UPDATES_COMMENT}

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_UPDATES}
    {L_XS_UPDATE_INFO1}
    {L_XS_UPDATE_NAME}{L_XS_UPDATE_TYPE}{L_XS_UPDATE_CURRENT_VERSION}
    {row.NAME}{row.TYPE}{row.VERSION}
    {L_XS_UPDATE_TIMEOUT}
    {S_HIDDEN_FIELDS}
    +
    + +
    diff --git a/phpBB2_old/xs_mod/tpl/update2.tpl b/phpBB2_old/xs_mod/tpl/update2.tpl new file mode 100644 index 0000000..4e50b39 --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/update2.tpl @@ -0,0 +1,60 @@ + +/*************************************************************************** + * update2.tpl + * ----------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + +

    {L_XS_UPDATES}

    + +

    {L_XS_UPDATES_COMMENT2}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {L_XS_UPDATE_NAME}{L_XS_UPDATE_TYPE}{L_XS_UPDATE_CURRENT_VERSION}{L_XS_UPDATE_LATEST_VERSION}{L_XS_UPDATE_DOWNLOADINFO}{L_XS_UPDATE_FILEINFO}
    {row.ITEM}{row.TYPE}{row.VERSION}{row.update.VERSION} + [{L_XS_DOWNLOAD_LC}] +   + [{L_XS_IMPORT_LC}] + [{L_XS_INFO_LC}] {row.noupdate.MESSAGE}[{L_XS_INFO_LC}] {row.error.ERROR} 
    {COUNT_TOTAL}, {COUNT_ERROR}, {COUNT_UPDATE}
    + +
    diff --git a/phpBB2_old/xs_mod/tpl/xs_footer.tpl b/phpBB2_old/xs_mod/tpl/xs_footer.tpl new file mode 100644 index 0000000..3d11ecc --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/xs_footer.tpl @@ -0,0 +1,36 @@ + +/*************************************************************************** + * xs_footer.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + + + + + +
    Powered by phpBB © phpBB Group and by eXtreme Styles mod © Vjacheslav Trushkin.
    + + + \ No newline at end of file diff --git a/phpBB2_old/xs_mod/tpl/xs_header.tpl b/phpBB2_old/xs_mod/tpl/xs_header.tpl new file mode 100644 index 0000000..3062ffc --- /dev/null +++ b/phpBB2_old/xs_mod/tpl/xs_header.tpl @@ -0,0 +1,45 @@ + +/*************************************************************************** + * xs_header.tpl + * ------------- + * copyright : (C) 2003, 2004 CyberAlien + * support : http://www.phpbbstyles.com + * + * version : 2.0.1 + * + * file revision : 45 + * project revision : 51 + * last modified : 25 Aug 2004 11:51:48 + * + ***************************************************************************/ + + + + + + + + + + + +
    + + + + + + +
    diff --git a/phppages/class.myRSS.php b/phppages/class.myRSS.php new file mode 100644 index 0000000..96ace0d --- /dev/null +++ b/phppages/class.myRSS.php @@ -0,0 +1,118 @@ +channelTitle == "") +die("Please specify a channel title"); + +if(ereg("$http://", $this->channelLink) == false) +die("Please specify a channel link"); + +if($this->channelDesc == "") +die("Please specify a channel description"); + +if($this->imageTitle == "") +die("Please specify an image title"); + +if(ereg("$http://", $this->imageLink) == false) +die("Please specify an image link"); + +if(ereg("$http://", $this->imageURL) == false) +die("Please specify an image URL"); +} + +// Connect to the database, generate the RSS XML and return it +function GetRSS($dbServer, $dbUser, $dbPass, $dbName, $tableName, +$titleFieldName, $descFieldName, $linkFieldName, $linkTemplate) +{ +// Make sure all channel/image values have been set +$this->checkValues(); + +$rssValue = " \r \n"; +$rssValue .= "\r\n"; +$rssValue .= "\r\n"; + +// Build the channel tag +$rssValue .= "\r\n"; +$rssValue .= "" . $this->channelTitle . "\r\n"; +$rssValue .= "" . $this->channelLink . "\r\n"; +$rssValue .= "" . $this->channelDesc . "\r\n"; +$rssValue .= "en-us\r\n"; +$rssValue .= "\r\n"; + +// Build the image tag +$rssValue .= "\r\n"; +$rssValue .= "" . $this->imageTitle . "\r\n"; +$rssValue .= "" . $this->imageURL . "\r\n"; +$rssValue .= "" . $this->imageLink . "\r\n"; +$rssValue .= "\r\n"; + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + + +// Connect to the database and build the tags +$svrConn = @mysql_connect($dbServer, $dbUser, $dbPass) or die("Couldn't +connect to database"); +$dbConn = @mysql_select_db($dbName, $svrConn) or die("Couldn't select +database"); + +// Make sure the table exists +$tableExists = false; +$tResult = mysql_list_tables($dbName); + +while($tRow = mysql_fetch_row($tResult)) +{ +if(strtolower($tableName) == strtolower($tRow[0])) +{ +$tableExists = true; +break; +} +} + +if(!$tableExists) +die("Table $tableName doesn't exist in the database!"); + +$rResult = mysql_query("select $titleFieldName, $descFieldName, +$linkFieldName from $tableName order by $linkFieldName desc limit 10") or +die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem +persists.'); + +// The records were retrieved OK, let's start building the item tags +while($rRow = mysql_fetch_array($rResult)) +{ +$rssValue .= "\r\n"; +$rssValue .= "" . $rRow[$titleFieldName] . "\r\n"; +$rssValue .= "" . $rRow[$descFieldName] . "\r\n"; +$rssValue .= "" . str_replace("{linkId}", $rRow[$linkFieldName], +$linkTemplate) . "\r\n"; +$rssValue .= "\r\n"; +} + +// Add the closing rss tag and return the value +$rssValue .= "\r\n"; +return $rssValue; +// end tag of GetRSS function +} +// end tag of the class +} +?> \ No newline at end of file diff --git a/phppages/class.myRSS.php~ b/phppages/class.myRSS.php~ new file mode 100644 index 0000000..9a9a394 --- /dev/null +++ b/phppages/class.myRSS.php~ @@ -0,0 +1,118 @@ +channelTitle == "") +die("Please specify a channel title"); + +if(ereg("$http://", $this->channelLink) == false) +die("Please specify a channel link"); + +if($this->channelDesc == "") +die("Please specify a channel description"); + +if($this->imageTitle == "") +die("Please specify an image title"); + +if(ereg("$http://", $this->imageLink) == false) +die("Please specify an image link"); + +if(ereg("$http://", $this->imageURL) == false) +die("Please specify an image URL"); +} + +// Connect to the database, generate the RSS XML and return it +function GetRSS($dbServer, $dbUser, $dbPass, $dbName, $tableName, +$titleFieldName, $descFieldName, $linkFieldName, $linkTemplate) +{ +// Make sure all channel/image values have been set +$this->checkValues(); + +$rssValue = " \r \n"; +$rssValue .= "\r\n"; +$rssValue .= "\r\n"; + +// Build the channel tag +$rssValue .= "\r\n"; +$rssValue .= "" . $this->channelTitle . "\r\n"; +$rssValue .= "" . $this->channelLink . "\r\n"; +$rssValue .= "" . $this->channelDesc . "\r\n"; +$rssValue .= "en-us\r\n"; +$rssValue .= "\r\n"; + +// Build the image tag +$rssValue .= "\r\n"; +$rssValue .= "" . $this->imageTitle . "\r\n"; +$rssValue .= "" . $this->imageURL . "\r\n"; +$rssValue .= "" . $this->imageLink . "\r\n"; +$rssValue .= "\r\n"; + +// -- Table structure for table 'newsContent' +// -- +// +// CREATE TABLE newsContent ( +// title varchar(40) default NULL, +// date date default NULL, +// body text +// ) + + +// Connect to the database and build the tags +$svrConn = @mysql_connect($dbServer, $dbUser, $dbPass) or die("Couldn't +connect to database"); +$dbConn = @mysql_select_db($dbName, $svrConn) or die("Couldn't select +database"); + +// Make sure the table exists +$tableExists = false; +$tResult = mysql_list_tables($dbName); + +while($tRow = mysql_fetch_row($tResult)) +{ +if(strtolower($tableName) == strtolower($tRow[0])) +{ +$tableExists = true; +break; +} +} + +if(!$tableExists) +die("Table $tableName doesn't exist in the database!"); + +$rResult = mysql_query("select $titleFieldName, $descFieldName, +$linkFieldName from $tableName order by $linkFieldName desc limit 10") or +die ('An error occured while retrieving data from the database. Please contact the webmaster if this problem +persists.'); + +// The records were retrieved OK, let's start building the item tags +while($rRow = mysql_fetch_array($rResult)) +{ +$rssValue .= "\r\n"; +$rssValue .= "" . $rRow[$titleFieldName] . "\r\n"; +$rssValue .= "" . $rRow[$descFieldName] . "\r\n"; +$rssValue .= "" . str_replace("{linkId}", $rRow[$linkFieldName], +$linkTemplate) . "\r\n"; +$rssValue .= "\r\n"; +} + +// Add the closing rss tag and return the value +$rssValue .= "\r\n"; +return $rssValue; +// end tag of GetRSS function +} +// end tag of the class +} +?> \ No newline at end of file diff --git a/phppages/foto.php b/phppages/foto.php new file mode 100755 index 0000000..0ad6a1b --- /dev/null +++ b/phppages/foto.php @@ -0,0 +1,32 @@ + + + + + + http://frederik.gotdns.org:1976 - Picture + + + + +\n"); +include $ROOT."/header.shtml"; + +// Print the page title +printf("


    \n"); +printf("\n\n"); +printf("

    Back to index page."); + +// Print the footer +printf("\n"); +include $ROOT."/footer.php"; +?> + + + diff --git a/phppages/foto.php~ b/phppages/foto.php~ new file mode 100644 index 0000000..2008a5b --- /dev/null +++ b/phppages/foto.php~ @@ -0,0 +1,32 @@ + + + + + + http://frederik.gotdns.org:1976 - Picture + + +\n"); +include $ROOT."/header.shtml"; + +// Print the page title +printf("


    \n"); +printf("\n\n"); +printf("

    Back to index page."); + +// Print the footer +printf("\n"); +include $ROOT."/footer.php"; +?> + + + \ No newline at end of file diff --git a/phppages/fotobiz.php b/phppages/fotobiz.php new file mode 100755 index 0000000..075b619 --- /dev/null +++ b/phppages/fotobiz.php @@ -0,0 +1,34 @@ + + + + + + http://frederik.gotdns.org:1976 - Picture + + + + +\n"); +include $ROOT."/header.shtml"; + +// Print the page title +printf("


    \n"); +printf("\n\n"); +printf("

    Back to index page."); + +// Print the footer +printf("\n"); +include $ROOT."/footer.php"; +?> + + + diff --git a/phppages/mail.php b/phppages/mail.php new file mode 100644 index 0000000..ee7783f --- /dev/null +++ b/phppages/mail.php @@ -0,0 +1,29 @@ + +PHP Mail Sender + +Invalid email address"; + echo "Back"; + } elseif ($subject == "") { + echo "

    No subject

    "; + echo "Back"; + } + + /* Sends the mail and outputs the "Thank you" string if the mail is successfully sent, or the error string otherwise. */ + elseif (mail($email,$subject,$message)) { + echo "

    Thank you for sending email

    "; + } else { + echo "

    Can't send email to $email

    "; + } + ?> + + + \ No newline at end of file diff --git a/phppages/mail.shtml b/phppages/mail.shtml new file mode 100644 index 0000000..9dbd93d --- /dev/null +++ b/phppages/mail.shtml @@ -0,0 +1,27 @@ + + + + + + + + Send an email - http://vanrenterghem.biz/ + + + + + +
    +Email
    + +

    Subject
    + +

    Message
    + +

    +

    + + + diff --git a/phppages/mail.shtml~ b/phppages/mail.shtml~ new file mode 100644 index 0000000..b445323 --- /dev/null +++ b/phppages/mail.shtml~ @@ -0,0 +1,25 @@ + + + + + + + + Send an email - http://vanrenterghem.biz/ + + + + +
    +Email
    + +

    Subject
    + +

    Message
    + +

    +

    + + diff --git a/phppages/photoblog.php b/phppages/photoblog.php new file mode 100755 index 0000000..bbd570a --- /dev/null +++ b/phppages/photoblog.php @@ -0,0 +1,212 @@ +$width_scale) { + $ratio = $width/$width_scale; + $width = $width_scale; + $height = round($height/$ratio); + } + $images = array_keys($imagearray); + +foreach ($images as $image) { + if (!isset($last)) { + $first = $image; + } + if ($now) { + $next = $image; + $now = false; + } + if ($image == $imagename) { + $prev = $last; + $now = true; + } + $last = $image; + } + +if (!isset($prev)){ + $prev = $last; + } +if (!isset($next)){ + $next = $first; + } +print "
    +
    + +
    +<-- previous +back +next --> +
    +
    +
    +\"".$img_data['file']."\" +
    ".$img_data['date']."
    +".$img_data['subject']." +
    +

    \n"; +print $img_data['description']; +print "


    \n\n"; + +// $notify = show_comments($img_data['file'], $table); +// comment_form($img_data['file'], $table, $notify); +} + +function show_all($imagearray, $page) { +global $HTTP_SERVER_VARS, $home, $serverroot, $table, $picsperpage; + +// given page number and number of pics per page, find starting and +// ending indexes +$start = 0; +if ($page == 0) { +$end = $start+$picsperpage; +} +else { +$start = $page*$picsperpage; +if ($start > count($imagearray)) { +$start = 0; +$end = $start+$picsperpage; +} +else { +$end = $start+$picsperpage; +} +} +// find out how many pages there are +$numpages = ceil(count($imagearray)/$picsperpage); +print "
    + +
    + +

    These pictures were taken with my mobile phone.

    + + +
    \n\n"; + +print "
    +

    photo tekniklog

    +

    ".count($imagearray)." images; $picsperpage images/page; page "; +print $page+1; +print "/".$numpages."

    +
    \n\n"; + +print "
    "; +if ($page>0) { +$last = $page-1; +print "<<"; +} +print "
    \n
    "; +if ($page<$numpages-1) { +$next = $page+1; +print ">>"; +} +print "
    \n
    "; + +print "
    +
    \n\n"; + +$curr = 0; +foreach ($imagearray as $image) { +if (($curr>=$start)&&($curr<$end)) { +$thumbname = "/Pictures/camblog/tiny".$image['file']; + +// $comments = num_comments($image['file'], $table); +//if ($comments==0) { +//$nocomments = "No comments"; +//} +//else if ($comments==1) { +//$nocomments = "One comment"; +//} +//else { +//$nocomments = "$comments comments"; +//} + +print "
    +\"".$image['date']."\"
    \n"; +if ($comments>0) { +print "$nocomments
    "; +} else { +print "$nocomments
    "; +} +print $image['date']."
    "; +print $image['subject']; +print "
    \n"; +} +$curr++; +} + +print "
    \n\n"; +print "
    \n"; + +if ($numpages>1) { +print "
    "; +print "~ Page ~
    \n"; +for ($i = 0; $i < $numpages; $i++) { +if ($page==$i) { +print " $i "; +} +else { +print " $i "; +} +} +print "
    \n\n"; +} +} + +function sanitize($input) { +$output = str_replace("
    ", "[br]", $input); +$output = htmlspecialchars($output, ENT_QUOTES); +$output = str_replace("[br]", "
    \n", $input); +return $output; +} + +$workincludefile = $serverroot.$home."/camblog/index.txt"; +$worklinearray = file($workincludefile); +$worklines = array_keys($worklinearray); +foreach ($worklines as $line) { +$element = explode("::", $worklinearray[$line]); +$thisfile = $element[0]; +$thissubject = sanitize($element[1]); +$thisdesc = sanitize($element[2]); +$thisdate = date("M j Y H:i", substr($thisfile, 0, -4)); +$images[$thisfile] = array("file"=>$thisfile, "subject"=>$thissubject, "description"=>$thisdesc, "date"=>$thisdate); +} +$images = array_reverse($images, TRUE); +$image = $HTTP_GET_VARS['image']; +$page = $HTTP_GET_VARS['page']; +if (empty($page)) { $page = 0; } +if (array_key_exists($image, $images)) { +show_image($image, $images); +} else { +show_all($images, $page); +} + +include('../footer.php'); + +?> + diff --git a/phppages/rss.php b/phppages/rss.php new file mode 100644 index 0000000..2bb3b83 --- /dev/null +++ b/phppages/rss.php @@ -0,0 +1,36 @@ +channelTitle = "My personal news"; +$myRSS->channelLink = "http://frederik.gotdns.org:1976/"; +$myRSS->channelDesc = "frederik.gotdns.org personal news"; + +$myRSS->imageTitle = "My personal news"; +$myRSS->imageLink = "http://www.mysite.com/mylogo.gif"; +$myRSS->imageURL = "http://www.mysite.com"; + +// vanrenterghem.biz database variables +// $dbServer="localhost"; +// $dbUser="frederik_fred"; +// $dbPass="fred"; +// $dbName="frederik_News"; +// $tableName="newsContent"; + +// frederik.gotdns.org:1976 database variables +$dbServer="localhost"; +$dbUser="webnews"; +$dbPass="BlaBla123"; +$dbName="website"; +$tableName="newsContent"; + +// Get the RSS data +$rssData = $myRSS->GetRSS($dbServer, $dbUser, $dbPass, $dbName, +$tableName, "title", "body", "date", "http://vanrenterghem.biz/News/"); + +// Output the generated RSS XML +header("Content-type: text/xml"); +echo $rssData; +?> diff --git a/phppages/rss.php~ b/phppages/rss.php~ new file mode 100644 index 0000000..d8a4b5c --- /dev/null +++ b/phppages/rss.php~ @@ -0,0 +1,36 @@ +channelTitle = "My sample channel"; +$myRSS->channelLink = "http://www.mysite.com"; +$myRSS->channelDesc = "My sample RSS XML channel"; + +$myRSS->imageTitle = "My sample channel"; +$myRSS->imageLink = "http://www.mysite.com/mylogo.gif"; +$myRSS->imageURL = "http://www.mysite.com"; + +// vanrenterghem.biz database variables +// $dbServer="localhost"; +// $dbUser="frederik_fred"; +// $dbPass="fred"; +// $dbName="frederik_News"; +// $tableName="newsContent"; + +// frederik.gotdns.org:1976 database variables +$dbServer="localhost"; +$dbUser="frederik"; +$dbPass="Fred1210"; +$dbName="website"; +$tableName="newsContent"; + +// Get the RSS data +$rssData = $myRSS->GetRSS($dbServer, $dbUser, $dbPass, $dbName, +$tableName, "title", "body", "date", "http://www.mysite.com/articles/{linkId}/"); + +// Output the generated RSS XML +header("Content-type: text/xml"); +echo $rssData; +?> \ No newline at end of file diff --git a/phppages/test.php b/phppages/test.php new file mode 100644 index 0000000..c46f286 --- /dev/null +++ b/phppages/test.php @@ -0,0 +1,21 @@ +include("class.myRSS.php"); + +// Instantiate the myRSS class +$myRSS = new myRSS; + +$myRSS->channelTitle = "My sample channel"; +$myRSS->channelLink = "http://www.mysite.com"; +$myRSS->channelDesc = "My sample RSS XML channel"; + +$myRSS->imageTitle = "My sample channel"; +$myRSS->imageLink = "http://www.mysite.com/mylogo.gif"; +$myRSS->imageURL = "http://www.mysite.com"; + +// Get the RSS data +$rssData = $myRSS->GetRSS("localhost", "admin", "password", "rssDB", +"myArticles", "title", "summary", "articleId", +"http://www.mysite.com/articles/{linkId}/"); + +// Output the generated RSS XML +header("Content-type: text/xml"); +echo $rssData; diff --git a/publickey.gpg b/publickey.gpg new file mode 100644 index 0000000..108c907 --- /dev/null +++ b/publickey.gpg @@ -0,0 +1,43 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.5 (GNU/Linux) + +mQGiBDouk1URBADZsG36F8hH4WDaIcF955qmVJAhMHojDgnDEll/vauckOc1A12y +S/kcTTkqD1FoqIPHQ7tHNgLFA8hqxqWjrjtaDO0hHssGooZTMzbvlaq6kzj8DMlA +4T9q7jVP1TQCqIWbiFwLMMIS/o7Cj+phuEDfxVNSHGsa0RdvSaZOlvExswCgxSaO +QrjMQNZ1nFvswmCkhJOecaMD/1ZDrmYjvBYNhzrMGvHLWPfYMMTC+VhVHJiao5Nv +/S1aWlpTs+8J8fDmlrM1Imjg3ExsnWTuJywzbNZ+WHDHVJWjgtnAKZmKmwjgqjwd +p94V8HftIEmEikcYUd2t6PnrXVD2am9DWyYHONq1rV4T6cYIw/O8eC2xTf0Q40LG +FBQIA/9rE4kaG2oVTAX+H2wXDTGQunxUcJfi9rYOu3vUQrSGIR2db1AAdwmeCfXy +/neI0U2qsNwJINnrz/2sHi5CVZAss9p3lXv1XVXkGdexW0Jmnn4dX55QuRpO+Zco +2vHMgYDcHVq3/R9QIupAesY0a6yDvfE9lpH9GS3P+x4bFuImB7Q5RnJlZGVyaWsg +VmFucmVudGVyZ2hlbSA8ZnJlZGVyaWsudmFucmVudGVyZ2hlbUBjaGVsbG8uYmU+ +iFwEExECABwCGwMECwcDAgMVAgMDFgIBAh4BAheABQI/P1tuAAoJEBF/ZGmJJb3g +TPAAnAtuIE7aDmmngaZvCK3rxj1KCzt0AJwNBzuRkMFFdJsGt2CpRB5zjnb5z7Qx +RnJlZGVyaWsgVmFucmVudGVyZ2hlbSA8ZnJlZGVyaWtAbWF1aS5rb3RuZXQub3Jn +PohfBBMRAgAXBQI6LpNVBQsHCgMEAxUDAgMWAgECF4AAEgkQEX9kaYklveAHZUdQ +RwABATAmAJwPBXn7dvDAkGVtBuCZSrOpbVaf7ACffUqydfYL1oSKp3UKw6Ai+Bbb +R/G0O0ZyZWRlcmlrIFZhbnJlbnRlcmdoZW0gPGZyZWRlcmlrX3ZhbnJlbnRlcmdo +ZW1AaG90bWFpbC5jb20+iF8EExECABcFAjutFCQFCwcKAwQDFQMCAxYCAQIXgAAS +CRARf2RpiSW94AdlR1BHAAEBylEAn2RiPUyt024lfrb7BHQWTDzXasqOAJ9GrncH +1Frejd/78lN0WACagRovvbQ2RnJlZGVyaWsgVmFucmVudGVyZ2hlbSA8ZnJlZGVy +aWsudmFucmVudGVyZ2hlbUBwZWMuYmU+iF8EExECABcFAjutFFcFCwcKAwQDFQMC +AxYCAQIXgAASCRARf2RpiSW94AdlR1BHAAEB3XcAn2xFPM6M9crKM3NOxqx5+uhk +waxiAJ0bxvVDYJV6Gmx+t3Z3Fm70yoEyu7QzRnJlZGVyaWsgVmFucmVudGVyZ2hl +bSA8ZnJlZGVyaWtAdmFucmVudGVyZ2hlbS5iaXo+iGEEExECACECGwMGCwkIBwMC +AxUCAwMWAgECHgECF4AFAj8/W3MCGQEACgkQEX9kaYklveAUHwCfaDj6U5gKjK9a +O23KYqSC+xlPkw8AoJ9cBkwSo3L9gqxyy5HBLOBQ/WWcuQINBDouk2AQCAD1JgpO +uBLB1HzRwZraw8xGTqLfqD0rjPrqXbQ1U/yMsHQ2PPYhak7p8RdFfy4bSkevr73v +iaLSbYIG9iMgAGMRKXlOvgz+G0KLxchED6Ipio3NITIQ8pled8cJezJH+b3++cGD +ko4E1AN2bvX4SGPT8L1phgam1qvsDwEBUq42g2fe/D8jq2leR4rZWSllXgU1jz1D +elUuxlsinyFlkcvAaCmr7Qu5cdUrg+dJAkF+4wbisaI0hqaW1iy14wJgp5UX+TTL +FPaIrX4kZmwF7t+pIKsD/VZa7XANAOcnvYMXoWNDMnzIhtcIjfUZSszeW2CWRdJl +WDjaDI/7U4aCry7jAAMFB/4mypZwTcuqaGIMAxPrMusX6cpzXtnr1/bquSBJMyHu +fDHSOn7b5JBhgINM/6Afo8MBsNFXwKrsgOPPX5pUW8fF/MsGTKKRq4mh5oDIfbGY +64tPVcXQCxV9ezjumBgVKamGajKIBRT6i2nPQo5dSsbTaY7rjFNgMguQNHiVLVSS +gVSFX22cOP9nslNzq/OHb0biXSqU3acuW9RYwJCoTQKNF/4gP/o//npusJSWK82h +KzHyAd4Hw7QbwJPXwXugsVFUEfnw/H/z7Bwq2XhDctjjYvgyykJc4nxzuMJWxodH +gFDa0OpIpg6BgRk35Phw5YbDd+aautoS/Qv43pbB1ZYRiE4EGBECAAYFAjouk2AA +EgkQEX9kaYklveAHZUdQRwABAWzFAJ9+3ReTh2KJSSQWUopmR46Iv1ANJwCfcEbH +xgcqPoGSoYxPfuCPLk8/9gk= +=Zo6h +-----END PGP PUBLIC KEY BLOCK----- diff --git a/styles/header.css b/styles/header.css new file mode 100644 index 0000000..ec35113 --- /dev/null +++ b/styles/header.css @@ -0,0 +1,110 @@ +body, html +{ +margin: 0; +padding: 0; +} + +#logo +{ +position: absolute; +top: 10px; +left: 10px; +border: 0px; +z-index: 10; +background: url(/Pics/logo-100.png) no-repeat; +width: 99px; +height: 78px; +} + +#logo a +{ +width: 99px; +height: 78px; +} + +#header +{ +background: #BBDDFF; +position: absolute; +z-index: 5; +top: 0px; +left: 0px; +right: 0px; +width: 100%; +height: 50px; +} + +#header h1 +{ +float: right; +display: inline; +padding: 5px 10px 5px 5px; +margin-top: 10px; +margin-left: 184px; +font-size: 1.5em; +font-weight: bold; +text-align: left; +vertical-align: top; +font-family: Verdana, Helvetica; +} + +#header h1 a +{ +text-decoration: none; +color: black;} + +#header ul +{ +position: absolute; +top: 55px; +left: 119px; +margin-left: 0px; +margin-top: 0px; +padding: 0; +text-align: left; +vertical-align: middle; +font-size: 11px; +font-weight: bold; +font-family: Verdana, Helvetica; +} + +#header li +{display: inline; +} + +#header li a +{ +padding: 2px 5px 0px 5px; +text-decoration: none; +border-right: 2px solid #BBDDFF; +} + +/* the last link in the nav can have different settings */ +li#last a +{ +border-right: 0px; +} + +#header li a:link +{ +color: black; +} + +#header li a:visited +{ +color: black; +} + +#header li a:hover +{ +text-decoration: underline; +} + +#pagefooter +{ +font-size: x-small; +} + +hr{ + border:1px solid gray; +} diff --git a/styles/header.css.backup b/styles/header.css.backup new file mode 100644 index 0000000..ec35113 --- /dev/null +++ b/styles/header.css.backup @@ -0,0 +1,110 @@ +body, html +{ +margin: 0; +padding: 0; +} + +#logo +{ +position: absolute; +top: 10px; +left: 10px; +border: 0px; +z-index: 10; +background: url(/Pics/logo-100.png) no-repeat; +width: 99px; +height: 78px; +} + +#logo a +{ +width: 99px; +height: 78px; +} + +#header +{ +background: #BBDDFF; +position: absolute; +z-index: 5; +top: 0px; +left: 0px; +right: 0px; +width: 100%; +height: 50px; +} + +#header h1 +{ +float: right; +display: inline; +padding: 5px 10px 5px 5px; +margin-top: 10px; +margin-left: 184px; +font-size: 1.5em; +font-weight: bold; +text-align: left; +vertical-align: top; +font-family: Verdana, Helvetica; +} + +#header h1 a +{ +text-decoration: none; +color: black;} + +#header ul +{ +position: absolute; +top: 55px; +left: 119px; +margin-left: 0px; +margin-top: 0px; +padding: 0; +text-align: left; +vertical-align: middle; +font-size: 11px; +font-weight: bold; +font-family: Verdana, Helvetica; +} + +#header li +{display: inline; +} + +#header li a +{ +padding: 2px 5px 0px 5px; +text-decoration: none; +border-right: 2px solid #BBDDFF; +} + +/* the last link in the nav can have different settings */ +li#last a +{ +border-right: 0px; +} + +#header li a:link +{ +color: black; +} + +#header li a:visited +{ +color: black; +} + +#header li a:hover +{ +text-decoration: underline; +} + +#pagefooter +{ +font-size: x-small; +} + +hr{ + border:1px solid gray; +} diff --git a/styles/header.css.normal b/styles/header.css.normal new file mode 100644 index 0000000..ec35113 --- /dev/null +++ b/styles/header.css.normal @@ -0,0 +1,110 @@ +body, html +{ +margin: 0; +padding: 0; +} + +#logo +{ +position: absolute; +top: 10px; +left: 10px; +border: 0px; +z-index: 10; +background: url(/Pics/logo-100.png) no-repeat; +width: 99px; +height: 78px; +} + +#logo a +{ +width: 99px; +height: 78px; +} + +#header +{ +background: #BBDDFF; +position: absolute; +z-index: 5; +top: 0px; +left: 0px; +right: 0px; +width: 100%; +height: 50px; +} + +#header h1 +{ +float: right; +display: inline; +padding: 5px 10px 5px 5px; +margin-top: 10px; +margin-left: 184px; +font-size: 1.5em; +font-weight: bold; +text-align: left; +vertical-align: top; +font-family: Verdana, Helvetica; +} + +#header h1 a +{ +text-decoration: none; +color: black;} + +#header ul +{ +position: absolute; +top: 55px; +left: 119px; +margin-left: 0px; +margin-top: 0px; +padding: 0; +text-align: left; +vertical-align: middle; +font-size: 11px; +font-weight: bold; +font-family: Verdana, Helvetica; +} + +#header li +{display: inline; +} + +#header li a +{ +padding: 2px 5px 0px 5px; +text-decoration: none; +border-right: 2px solid #BBDDFF; +} + +/* the last link in the nav can have different settings */ +li#last a +{ +border-right: 0px; +} + +#header li a:link +{ +color: black; +} + +#header li a:visited +{ +color: black; +} + +#header li a:hover +{ +text-decoration: underline; +} + +#pagefooter +{ +font-size: x-small; +} + +hr{ + border:1px solid gray; +} diff --git a/styles/header.css~ b/styles/header.css~ new file mode 100644 index 0000000..57190a8 --- /dev/null +++ b/styles/header.css~ @@ -0,0 +1,110 @@ +body, html +{ +margin: 0; +padding: 0; +} + +#logo +{ +position: absolute; +top: 10px; +left: 10px; +border: 0px; +z-index: 10; +background: url(/Pics/logo-100.png) no-repeat; +width: 99px; +height: 78px; +} + +#logo a +{ +width: 99px; +height: 78px; +} + +#header +{ +background: #BBDDFF; +position: absolute; +z-index: 5; +top: 0px; +left: 0px; +right: 0px; +width: 100%; +height: 50px; +} + +#header h1 +{ +float: right; +display: inline; +padding: 5px 10px 5px 5px; +margin-top: 10px; +margin-left: 184px; +font-size: 1.5em; +font-weight: bold; +text-align: left; +vertical-align: top; +font-family: Verdana, Helvetica; +} + +#header h1 a +{ +text-decoration: none; +color: black;} + +#header ul +{ +position: absolute; +top: 55px; +left: 119px; +margin-left: 0px; +margin-top: 0px; +padding: 0; +text-align: left; +vertical-align: middle; +font-size: 11px; +font-weight: bold; +font-family: Verdana, Helvetica; +} + +#header li +{display: inline; +} + +#header li a +{ +padding: 2px 5px 0px 5px; +text-decoration: none; +border-right: 2px solid #BBDDFF; +} + +/* the last link in the nav can have different settings */ +li#last a +{ +border-right: 0px; +} + +#header li a:link +{ +color: black; +} + +#header li a:visited +{ +color: black; +} + +#header li a:hover +{ +text-decoration: underline; +} + +#pagefooter +{ +font-size: x-small; +} + +hr{ + border:1px solid #000; +} diff --git a/styles/header.green.css b/styles/header.green.css new file mode 100644 index 0000000..1d890b2 --- /dev/null +++ b/styles/header.green.css @@ -0,0 +1,110 @@ +body, html +{ +margin: 0; +padding: 0; +} + +#logo +{ +position: absolute; +top: 10px; +left: 10px; +border: 0px; +z-index: 10; +background: url(/Pics/logo-100.png) no-repeat; +width: 99px; +height: 78px; +} + +#logo a +{ +width: 99px; +height: 78px; +} + +#header +{ +background: #066000; +position: absolute; +z-index: 5; +top: 0px; +left: 0px; +right: 0px; +width: 100%; +height: 50px; +} + +#header h1 +{ +float: right; +display: inline; +padding: 5px 10px 5px 5px; +margin-top: 10px; +margin-left: 184px; +font-size: 1.5em; +font-weight: bold; +text-align: left; +vertical-align: top; +font-family: Verdana, Helvetica; +} + +#header h1 a +{ +text-decoration: none; +color: #FFFFFF;} + +#header ul +{ +position: absolute; +top: 55px; +left: 119px; +margin-left: 0px; +margin-top: 0px; +padding: 0; +text-align: left; +vertical-align: middle; +font-size: 11px; +font-weight: bold; +font-family: Verdana, Helvetica; +} + +#header li +{display: inline; +} + +#header li a +{ +padding: 2px 5px 0px 5px; +text-decoration: none; +border-right: 2px solid #066000; +} + +/* the last link in the nav can have different settings */ +li#last a +{ +border-right: 0px; +} + +#header li a:link +{ +color: #066000; +} + +#header li a:visited +{ +color: #066000; +} + +#header li a:hover +{ +text-decoration: underline; +} + +#pagefooter +{ +font-size: x-small; +} + +hr{ + border:1px solid #066000; +} diff --git a/styles/main.css b/styles/main.css new file mode 100644 index 0000000..eea0c44 --- /dev/null +++ b/styles/main.css @@ -0,0 +1,16 @@ +#pagemiddle +{ +clear: both; +margin: 98px 6px 0 6px; +} + +#pagefooter +{ +margin: 0 6px 0 6px; +clear: both; +} + +.centered +{ +text-align: center; +} \ No newline at end of file diff --git a/styles/main.css~ b/styles/main.css~ new file mode 100644 index 0000000..ab0c055 --- /dev/null +++ b/styles/main.css~ @@ -0,0 +1,16 @@ +#pagemiddle +{ +clear: both; +margin: 98px 6px 0 6px; +} + +#pagefooter +{ +margin: 0 6px 0 6px; +clear: both; +} + +.centered +{ +align: center; +} \ No newline at end of file diff --git a/styles/newspage.blue.css b/styles/newspage.blue.css new file mode 100644 index 0000000..91ee956 --- /dev/null +++ b/styles/newspage.blue.css @@ -0,0 +1,56 @@ +div.newsitem +{ +padding: 0; +margin: 0; +} + +div.newsitem h1 +{ +background: #000084 url('../Pics/newsitem_ul.png') top left no-repeat; +color: #FFFFFF; +float:left; +width: 60%; +margin: 0 -10px 0 0 ; +font-size: 1.1em; +padding-left: 10px; +} + +div.newsitem h2 +{ +background: #000084 url('../Pics/newsitem_ur.png') top right no-repeat; +text-align: right; +color: #FFFFFF; +float: right; +width: 40%; +margin: 0 0 0 -10px; +font-size: 1.1em; +padding-right: 10px; +} + +div.newsitem h2 a +{ +text-decoration: none; +color: #ffffff; +} + +div.newsitem p +{ +margin: 0; +padding: 5px 0 5px 0; +clear: both; +} + +#newsNav h1 +{ +float: left; +width: 50%; +font-size: 1em; +} + +#newsNav h2 +{ +float: right; +text-align: right; +width: 50%; +font-size: 1em; +} diff --git a/styles/newspage.css b/styles/newspage.css new file mode 100644 index 0000000..91ee956 --- /dev/null +++ b/styles/newspage.css @@ -0,0 +1,56 @@ +div.newsitem +{ +padding: 0; +margin: 0; +} + +div.newsitem h1 +{ +background: #000084 url('../Pics/newsitem_ul.png') top left no-repeat; +color: #FFFFFF; +float:left; +width: 60%; +margin: 0 -10px 0 0 ; +font-size: 1.1em; +padding-left: 10px; +} + +div.newsitem h2 +{ +background: #000084 url('../Pics/newsitem_ur.png') top right no-repeat; +text-align: right; +color: #FFFFFF; +float: right; +width: 40%; +margin: 0 0 0 -10px; +font-size: 1.1em; +padding-right: 10px; +} + +div.newsitem h2 a +{ +text-decoration: none; +color: #ffffff; +} + +div.newsitem p +{ +margin: 0; +padding: 5px 0 5px 0; +clear: both; +} + +#newsNav h1 +{ +float: left; +width: 50%; +font-size: 1em; +} + +#newsNav h2 +{ +float: right; +text-align: right; +width: 50%; +font-size: 1em; +} diff --git a/styles/newspage.green.css b/styles/newspage.green.css new file mode 100644 index 0000000..66b4aeb --- /dev/null +++ b/styles/newspage.green.css @@ -0,0 +1,56 @@ +div.newsitem +{ +padding: 0; +margin: 0; +} + +div.newsitem h1 +{ +background: #066000 url('../Pics/newsitem_green_ul.png') top left no-repeat; +color: #FFFFFF; +float:left; +width: 60%; +margin: 0 -10px 0 0 ; +font-size: 1.1em; +padding-left: 10px; +} + +div.newsitem h2 +{ +background: #066000 url('../Pics/newsitem_green_ur.png') top right no-repeat; +text-align: right; +color: #FFFFFF; +float: right; +width: 40%; +margin: 0 0 0 -10px; +font-size: 1.1em; +padding-right: 10px; +} + +div.newsitem h2 a +{ +text-decoration: none; +color: #ffffff; +} + +div.newsitem p +{ +margin: 0; +padding: 5px 0 5px 0; +clear: both; +} + +#newsNav h1 +{ +float: left; +width: 50%; +font-size: 1em; +} + +#newsNav h2 +{ +float: right; +text-align: right; +width: 50%; +font-size: 1em; +} diff --git a/styles/pictures.css b/styles/pictures.css new file mode 100644 index 0000000..ca85560 --- /dev/null +++ b/styles/pictures.css @@ -0,0 +1,51 @@ +div.caption:hover +{ +background: #BBDDFF; +} + +div.thumbnail:hover +{ +} + +.thumbnail +{ +float: left; +width: 30%; +padding: 5px; +text-align: center; +} + +.thumbnail H1 +{ +display: inline; +} + + +.caption +{ +margin: 0 auto 0 auto; +vertical-align: bottom; +height: 8.8em; +width: 256px; +overflow: hidden; +text-align: left; +} + +.caption h2 +{ +display: inline; +padding: 0; +margin: 0; +font-size: 1em; +font-weight: bold; +} + +.caption p +{ +margin: 0; +padding: 0; +} + +.caption h2:hover, p:hover +{ +} diff --git a/styles/pictures.css~ b/styles/pictures.css~ new file mode 100644 index 0000000..98f7035 --- /dev/null +++ b/styles/pictures.css~ @@ -0,0 +1,50 @@ +div.caption:hover +{ +background: #BBDDFF; +} + +div.thumbnail:hover +{ +max-height: 800px; +} + +.thumbnail +{ +float: left; +width: 30%; +padding: 5px; +text-align: center; +} + +.thumbnail H1 +{ +display: inline; +} + + +.caption +{ +vertical-align: bottom; +height: 8.8em; +overflow: hidden; +text-align: left; +} + +.caption h2 +{ +display: inline; +padding: 0; +margin: 0; +font-size: 1em; +font-weight: bold; +} + +.caption p +{ +margin: 0; +padding: 0; +} + +.caption h2:hover, p:hover +{ +} diff --git a/webalizer/.htaccess b/webalizer/.htaccess new file mode 100644 index 0000000..3be327b --- /dev/null +++ b/webalizer/.htaccess @@ -0,0 +1,8 @@ +AuthType Basic + +AuthName "Pictures section" + +AuthUserFile /etc/apache2/users/users + +require valid-user + diff --git a/webalizer/ctry_usage_200607.png b/webalizer/ctry_usage_200607.png new file mode 100644 index 0000000..6d485ed Binary files /dev/null and b/webalizer/ctry_usage_200607.png differ diff --git a/webalizer/ctry_usage_200608.png b/webalizer/ctry_usage_200608.png new file mode 100644 index 0000000..46316a6 Binary files /dev/null and b/webalizer/ctry_usage_200608.png differ diff --git a/webalizer/ctry_usage_200609.png b/webalizer/ctry_usage_200609.png new file mode 100644 index 0000000..adec788 Binary files /dev/null and b/webalizer/ctry_usage_200609.png differ diff --git a/webalizer/ctry_usage_200610.png b/webalizer/ctry_usage_200610.png new file mode 100644 index 0000000..882daf1 Binary files /dev/null and b/webalizer/ctry_usage_200610.png differ diff --git a/webalizer/ctry_usage_200611.png b/webalizer/ctry_usage_200611.png new file mode 100644 index 0000000..a034720 Binary files /dev/null and b/webalizer/ctry_usage_200611.png differ diff --git a/webalizer/ctry_usage_200612.png b/webalizer/ctry_usage_200612.png new file mode 100644 index 0000000..d7c42ea Binary files /dev/null and b/webalizer/ctry_usage_200612.png differ diff --git a/webalizer/ctry_usage_200701.png b/webalizer/ctry_usage_200701.png new file mode 100644 index 0000000..3550cff Binary files /dev/null and b/webalizer/ctry_usage_200701.png differ diff --git a/webalizer/ctry_usage_200702.png b/webalizer/ctry_usage_200702.png new file mode 100644 index 0000000..b037545 Binary files /dev/null and b/webalizer/ctry_usage_200702.png differ diff --git a/webalizer/ctry_usage_200703.png b/webalizer/ctry_usage_200703.png new file mode 100644 index 0000000..6fc428b Binary files /dev/null and b/webalizer/ctry_usage_200703.png differ diff --git a/webalizer/ctry_usage_200704.png b/webalizer/ctry_usage_200704.png new file mode 100644 index 0000000..dda95c4 Binary files /dev/null and b/webalizer/ctry_usage_200704.png differ diff --git a/webalizer/ctry_usage_200705.png b/webalizer/ctry_usage_200705.png new file mode 100644 index 0000000..1e5ed8d Binary files /dev/null and b/webalizer/ctry_usage_200705.png differ diff --git a/webalizer/ctry_usage_200706.png b/webalizer/ctry_usage_200706.png new file mode 100644 index 0000000..979faf0 Binary files /dev/null and b/webalizer/ctry_usage_200706.png differ diff --git a/webalizer/ctry_usage_200707.png b/webalizer/ctry_usage_200707.png new file mode 100644 index 0000000..3132e09 Binary files /dev/null and b/webalizer/ctry_usage_200707.png differ diff --git a/webalizer/ctry_usage_200708.png b/webalizer/ctry_usage_200708.png new file mode 100644 index 0000000..ea26111 Binary files /dev/null and b/webalizer/ctry_usage_200708.png differ diff --git a/webalizer/ctry_usage_200709.png b/webalizer/ctry_usage_200709.png new file mode 100644 index 0000000..3e4d429 Binary files /dev/null and b/webalizer/ctry_usage_200709.png differ diff --git a/webalizer/ctry_usage_200710.png b/webalizer/ctry_usage_200710.png new file mode 100644 index 0000000..855c806 Binary files /dev/null and b/webalizer/ctry_usage_200710.png differ diff --git a/webalizer/ctry_usage_200711.png b/webalizer/ctry_usage_200711.png new file mode 100644 index 0000000..f6afb8c Binary files /dev/null and b/webalizer/ctry_usage_200711.png differ diff --git a/webalizer/ctry_usage_200712.png b/webalizer/ctry_usage_200712.png new file mode 100644 index 0000000..6e1c06c Binary files /dev/null and b/webalizer/ctry_usage_200712.png differ diff --git a/webalizer/ctry_usage_200801.png b/webalizer/ctry_usage_200801.png new file mode 100644 index 0000000..d769d89 Binary files /dev/null and b/webalizer/ctry_usage_200801.png differ diff --git a/webalizer/ctry_usage_200802.png b/webalizer/ctry_usage_200802.png new file mode 100644 index 0000000..6a36310 Binary files /dev/null and b/webalizer/ctry_usage_200802.png differ diff --git a/webalizer/ctry_usage_200803.png b/webalizer/ctry_usage_200803.png new file mode 100644 index 0000000..9edc187 Binary files /dev/null and b/webalizer/ctry_usage_200803.png differ diff --git a/webalizer/ctry_usage_200804.png b/webalizer/ctry_usage_200804.png new file mode 100644 index 0000000..32ce95b Binary files /dev/null and b/webalizer/ctry_usage_200804.png differ diff --git a/webalizer/ctry_usage_200805.png b/webalizer/ctry_usage_200805.png new file mode 100644 index 0000000..cc7655f Binary files /dev/null and b/webalizer/ctry_usage_200805.png differ diff --git a/webalizer/ctry_usage_200806.png b/webalizer/ctry_usage_200806.png new file mode 100644 index 0000000..7ac88da Binary files /dev/null and b/webalizer/ctry_usage_200806.png differ diff --git a/webalizer/ctry_usage_200807.png b/webalizer/ctry_usage_200807.png new file mode 100644 index 0000000..7bb28e9 Binary files /dev/null and b/webalizer/ctry_usage_200807.png differ diff --git a/webalizer/ctry_usage_200808.png b/webalizer/ctry_usage_200808.png new file mode 100644 index 0000000..ad9e1ba Binary files /dev/null and b/webalizer/ctry_usage_200808.png differ diff --git a/webalizer/ctry_usage_200809.png b/webalizer/ctry_usage_200809.png new file mode 100644 index 0000000..a8dcdbc Binary files /dev/null and b/webalizer/ctry_usage_200809.png differ diff --git a/webalizer/ctry_usage_200810.png b/webalizer/ctry_usage_200810.png new file mode 100644 index 0000000..52421f3 Binary files /dev/null and b/webalizer/ctry_usage_200810.png differ diff --git a/webalizer/ctry_usage_200811.png b/webalizer/ctry_usage_200811.png new file mode 100644 index 0000000..7ef0cd8 Binary files /dev/null and b/webalizer/ctry_usage_200811.png differ diff --git a/webalizer/ctry_usage_200812.png b/webalizer/ctry_usage_200812.png new file mode 100644 index 0000000..138c58e Binary files /dev/null and b/webalizer/ctry_usage_200812.png differ diff --git a/webalizer/ctry_usage_200901.png b/webalizer/ctry_usage_200901.png new file mode 100644 index 0000000..db1096a Binary files /dev/null and b/webalizer/ctry_usage_200901.png differ diff --git a/webalizer/ctry_usage_200902.png b/webalizer/ctry_usage_200902.png new file mode 100644 index 0000000..11ea829 Binary files /dev/null and b/webalizer/ctry_usage_200902.png differ diff --git a/webalizer/ctry_usage_200903.png b/webalizer/ctry_usage_200903.png new file mode 100644 index 0000000..4cb5301 Binary files /dev/null and b/webalizer/ctry_usage_200903.png differ diff --git a/webalizer/ctry_usage_200904.png b/webalizer/ctry_usage_200904.png new file mode 100644 index 0000000..3426f1f Binary files /dev/null and b/webalizer/ctry_usage_200904.png differ diff --git a/webalizer/ctry_usage_200905.png b/webalizer/ctry_usage_200905.png new file mode 100644 index 0000000..4b8264b Binary files /dev/null and b/webalizer/ctry_usage_200905.png differ diff --git a/webalizer/ctry_usage_200906.png b/webalizer/ctry_usage_200906.png new file mode 100644 index 0000000..c49f618 Binary files /dev/null and b/webalizer/ctry_usage_200906.png differ diff --git a/webalizer/ctry_usage_200907.png b/webalizer/ctry_usage_200907.png new file mode 100644 index 0000000..940e297 Binary files /dev/null and b/webalizer/ctry_usage_200907.png differ diff --git a/webalizer/ctry_usage_200908.png b/webalizer/ctry_usage_200908.png new file mode 100644 index 0000000..cf62ada Binary files /dev/null and b/webalizer/ctry_usage_200908.png differ diff --git a/webalizer/ctry_usage_200909.png b/webalizer/ctry_usage_200909.png new file mode 100644 index 0000000..f89b412 Binary files /dev/null and b/webalizer/ctry_usage_200909.png differ diff --git a/webalizer/ctry_usage_200911.png b/webalizer/ctry_usage_200911.png new file mode 100644 index 0000000..47ab18a Binary files /dev/null and b/webalizer/ctry_usage_200911.png differ diff --git a/webalizer/ctry_usage_201005.png b/webalizer/ctry_usage_201005.png new file mode 100644 index 0000000..84cc984 Binary files /dev/null and b/webalizer/ctry_usage_201005.png differ diff --git a/webalizer/ctry_usage_201006.png b/webalizer/ctry_usage_201006.png new file mode 100644 index 0000000..fa584c2 Binary files /dev/null and b/webalizer/ctry_usage_201006.png differ diff --git a/webalizer/ctry_usage_201007.png b/webalizer/ctry_usage_201007.png new file mode 100644 index 0000000..46556df Binary files /dev/null and b/webalizer/ctry_usage_201007.png differ diff --git a/webalizer/ctry_usage_201009.png b/webalizer/ctry_usage_201009.png new file mode 100644 index 0000000..f744ee6 Binary files /dev/null and b/webalizer/ctry_usage_201009.png differ diff --git a/webalizer/ctry_usage_201108.png b/webalizer/ctry_usage_201108.png new file mode 100644 index 0000000..91f930f Binary files /dev/null and b/webalizer/ctry_usage_201108.png differ diff --git a/webalizer/ctry_usage_201109.png b/webalizer/ctry_usage_201109.png new file mode 100644 index 0000000..a66d0b3 Binary files /dev/null and b/webalizer/ctry_usage_201109.png differ diff --git a/webalizer/ctry_usage_201110.png b/webalizer/ctry_usage_201110.png new file mode 100644 index 0000000..3a1db69 Binary files /dev/null and b/webalizer/ctry_usage_201110.png differ diff --git a/webalizer/ctry_usage_201111.png b/webalizer/ctry_usage_201111.png new file mode 100644 index 0000000..76649ce Binary files /dev/null and b/webalizer/ctry_usage_201111.png differ diff --git a/webalizer/daily_usage_200607.png b/webalizer/daily_usage_200607.png new file mode 100644 index 0000000..7291979 Binary files /dev/null and b/webalizer/daily_usage_200607.png differ diff --git a/webalizer/daily_usage_200608.png b/webalizer/daily_usage_200608.png new file mode 100644 index 0000000..455a04e Binary files /dev/null and b/webalizer/daily_usage_200608.png differ diff --git a/webalizer/daily_usage_200609.png b/webalizer/daily_usage_200609.png new file mode 100644 index 0000000..5e416d8 Binary files /dev/null and b/webalizer/daily_usage_200609.png differ diff --git a/webalizer/daily_usage_200610.png b/webalizer/daily_usage_200610.png new file mode 100644 index 0000000..871a58e Binary files /dev/null and b/webalizer/daily_usage_200610.png differ diff --git a/webalizer/daily_usage_200611.png b/webalizer/daily_usage_200611.png new file mode 100644 index 0000000..c3a03d3 Binary files /dev/null and b/webalizer/daily_usage_200611.png differ diff --git a/webalizer/daily_usage_200612.png b/webalizer/daily_usage_200612.png new file mode 100644 index 0000000..39bca87 Binary files /dev/null and b/webalizer/daily_usage_200612.png differ diff --git a/webalizer/daily_usage_200701.png b/webalizer/daily_usage_200701.png new file mode 100644 index 0000000..0740fb5 Binary files /dev/null and b/webalizer/daily_usage_200701.png differ diff --git a/webalizer/daily_usage_200702.png b/webalizer/daily_usage_200702.png new file mode 100644 index 0000000..b577b94 Binary files /dev/null and b/webalizer/daily_usage_200702.png differ diff --git a/webalizer/daily_usage_200703.png b/webalizer/daily_usage_200703.png new file mode 100644 index 0000000..bb50089 Binary files /dev/null and b/webalizer/daily_usage_200703.png differ diff --git a/webalizer/daily_usage_200704.png b/webalizer/daily_usage_200704.png new file mode 100644 index 0000000..ef09fbb Binary files /dev/null and b/webalizer/daily_usage_200704.png differ diff --git a/webalizer/daily_usage_200705.png b/webalizer/daily_usage_200705.png new file mode 100644 index 0000000..af68d55 Binary files /dev/null and b/webalizer/daily_usage_200705.png differ diff --git a/webalizer/daily_usage_200706.png b/webalizer/daily_usage_200706.png new file mode 100644 index 0000000..58e449c Binary files /dev/null and b/webalizer/daily_usage_200706.png differ diff --git a/webalizer/daily_usage_200707.png b/webalizer/daily_usage_200707.png new file mode 100644 index 0000000..ecc5267 Binary files /dev/null and b/webalizer/daily_usage_200707.png differ diff --git a/webalizer/daily_usage_200708.png b/webalizer/daily_usage_200708.png new file mode 100644 index 0000000..7714a95 Binary files /dev/null and b/webalizer/daily_usage_200708.png differ diff --git a/webalizer/daily_usage_200709.png b/webalizer/daily_usage_200709.png new file mode 100644 index 0000000..654720c Binary files /dev/null and b/webalizer/daily_usage_200709.png differ diff --git a/webalizer/daily_usage_200710.png b/webalizer/daily_usage_200710.png new file mode 100644 index 0000000..807d14b Binary files /dev/null and b/webalizer/daily_usage_200710.png differ diff --git a/webalizer/daily_usage_200711.png b/webalizer/daily_usage_200711.png new file mode 100644 index 0000000..c2c7cc8 Binary files /dev/null and b/webalizer/daily_usage_200711.png differ diff --git a/webalizer/daily_usage_200712.png b/webalizer/daily_usage_200712.png new file mode 100644 index 0000000..b692bf7 Binary files /dev/null and b/webalizer/daily_usage_200712.png differ diff --git a/webalizer/daily_usage_200801.png b/webalizer/daily_usage_200801.png new file mode 100644 index 0000000..873a66e Binary files /dev/null and b/webalizer/daily_usage_200801.png differ diff --git a/webalizer/daily_usage_200802.png b/webalizer/daily_usage_200802.png new file mode 100644 index 0000000..5e42375 Binary files /dev/null and b/webalizer/daily_usage_200802.png differ diff --git a/webalizer/daily_usage_200803.png b/webalizer/daily_usage_200803.png new file mode 100644 index 0000000..43e250f Binary files /dev/null and b/webalizer/daily_usage_200803.png differ diff --git a/webalizer/daily_usage_200804.png b/webalizer/daily_usage_200804.png new file mode 100644 index 0000000..7d77fb9 Binary files /dev/null and b/webalizer/daily_usage_200804.png differ diff --git a/webalizer/daily_usage_200805.png b/webalizer/daily_usage_200805.png new file mode 100644 index 0000000..2fdf116 Binary files /dev/null and b/webalizer/daily_usage_200805.png differ diff --git a/webalizer/daily_usage_200806.png b/webalizer/daily_usage_200806.png new file mode 100644 index 0000000..e87cf31 Binary files /dev/null and b/webalizer/daily_usage_200806.png differ diff --git a/webalizer/daily_usage_200807.png b/webalizer/daily_usage_200807.png new file mode 100644 index 0000000..010d6a6 Binary files /dev/null and b/webalizer/daily_usage_200807.png differ diff --git a/webalizer/daily_usage_200808.png b/webalizer/daily_usage_200808.png new file mode 100644 index 0000000..925b3d2 Binary files /dev/null and b/webalizer/daily_usage_200808.png differ diff --git a/webalizer/daily_usage_200809.png b/webalizer/daily_usage_200809.png new file mode 100644 index 0000000..67c74c7 Binary files /dev/null and b/webalizer/daily_usage_200809.png differ diff --git a/webalizer/daily_usage_200810.png b/webalizer/daily_usage_200810.png new file mode 100644 index 0000000..49185be Binary files /dev/null and b/webalizer/daily_usage_200810.png differ diff --git a/webalizer/daily_usage_200811.png b/webalizer/daily_usage_200811.png new file mode 100644 index 0000000..47ead0f Binary files /dev/null and b/webalizer/daily_usage_200811.png differ diff --git a/webalizer/daily_usage_200812.png b/webalizer/daily_usage_200812.png new file mode 100644 index 0000000..f6e1d77 Binary files /dev/null and b/webalizer/daily_usage_200812.png differ diff --git a/webalizer/daily_usage_200901.png b/webalizer/daily_usage_200901.png new file mode 100644 index 0000000..31429b8 Binary files /dev/null and b/webalizer/daily_usage_200901.png differ diff --git a/webalizer/daily_usage_200902.png b/webalizer/daily_usage_200902.png new file mode 100644 index 0000000..6dcc18e Binary files /dev/null and b/webalizer/daily_usage_200902.png differ diff --git a/webalizer/daily_usage_200903.png b/webalizer/daily_usage_200903.png new file mode 100644 index 0000000..b9a9d8a Binary files /dev/null and b/webalizer/daily_usage_200903.png differ diff --git a/webalizer/daily_usage_200904.png b/webalizer/daily_usage_200904.png new file mode 100644 index 0000000..dc09603 Binary files /dev/null and b/webalizer/daily_usage_200904.png differ diff --git a/webalizer/daily_usage_200905.png b/webalizer/daily_usage_200905.png new file mode 100644 index 0000000..9fecd13 Binary files /dev/null and b/webalizer/daily_usage_200905.png differ diff --git a/webalizer/daily_usage_200906.png b/webalizer/daily_usage_200906.png new file mode 100644 index 0000000..626402f Binary files /dev/null and b/webalizer/daily_usage_200906.png differ diff --git a/webalizer/daily_usage_200907.png b/webalizer/daily_usage_200907.png new file mode 100644 index 0000000..26dae7a Binary files /dev/null and b/webalizer/daily_usage_200907.png differ diff --git a/webalizer/daily_usage_200908.png b/webalizer/daily_usage_200908.png new file mode 100644 index 0000000..1436102 Binary files /dev/null and b/webalizer/daily_usage_200908.png differ diff --git a/webalizer/daily_usage_200909.png b/webalizer/daily_usage_200909.png new file mode 100644 index 0000000..ffe48f8 Binary files /dev/null and b/webalizer/daily_usage_200909.png differ diff --git a/webalizer/daily_usage_200911.png b/webalizer/daily_usage_200911.png new file mode 100644 index 0000000..0beec12 Binary files /dev/null and b/webalizer/daily_usage_200911.png differ diff --git a/webalizer/daily_usage_201005.png b/webalizer/daily_usage_201005.png new file mode 100644 index 0000000..0dce160 Binary files /dev/null and b/webalizer/daily_usage_201005.png differ diff --git a/webalizer/daily_usage_201006.png b/webalizer/daily_usage_201006.png new file mode 100644 index 0000000..735b78a Binary files /dev/null and b/webalizer/daily_usage_201006.png differ diff --git a/webalizer/daily_usage_201007.png b/webalizer/daily_usage_201007.png new file mode 100644 index 0000000..ca10e1f Binary files /dev/null and b/webalizer/daily_usage_201007.png differ diff --git a/webalizer/daily_usage_201009.png b/webalizer/daily_usage_201009.png new file mode 100644 index 0000000..d10a508 Binary files /dev/null and b/webalizer/daily_usage_201009.png differ diff --git a/webalizer/daily_usage_201108.png b/webalizer/daily_usage_201108.png new file mode 100644 index 0000000..d309823 Binary files /dev/null and b/webalizer/daily_usage_201108.png differ diff --git a/webalizer/daily_usage_201109.png b/webalizer/daily_usage_201109.png new file mode 100644 index 0000000..36fbadb Binary files /dev/null and b/webalizer/daily_usage_201109.png differ diff --git a/webalizer/daily_usage_201110.png b/webalizer/daily_usage_201110.png new file mode 100644 index 0000000..d9bccfc Binary files /dev/null and b/webalizer/daily_usage_201110.png differ diff --git a/webalizer/daily_usage_201111.png b/webalizer/daily_usage_201111.png new file mode 100644 index 0000000..b0b0c24 Binary files /dev/null and b/webalizer/daily_usage_201111.png differ diff --git a/webalizer/hourly_usage_200607.png b/webalizer/hourly_usage_200607.png new file mode 100644 index 0000000..d166cd9 Binary files /dev/null and b/webalizer/hourly_usage_200607.png differ diff --git a/webalizer/hourly_usage_200608.png b/webalizer/hourly_usage_200608.png new file mode 100644 index 0000000..97d115e Binary files /dev/null and b/webalizer/hourly_usage_200608.png differ diff --git a/webalizer/hourly_usage_200609.png b/webalizer/hourly_usage_200609.png new file mode 100644 index 0000000..a581208 Binary files /dev/null and b/webalizer/hourly_usage_200609.png differ diff --git a/webalizer/hourly_usage_200610.png b/webalizer/hourly_usage_200610.png new file mode 100644 index 0000000..8d63894 Binary files /dev/null and b/webalizer/hourly_usage_200610.png differ diff --git a/webalizer/hourly_usage_200611.png b/webalizer/hourly_usage_200611.png new file mode 100644 index 0000000..6851fe8 Binary files /dev/null and b/webalizer/hourly_usage_200611.png differ diff --git a/webalizer/hourly_usage_200612.png b/webalizer/hourly_usage_200612.png new file mode 100644 index 0000000..cf3dcc5 Binary files /dev/null and b/webalizer/hourly_usage_200612.png differ diff --git a/webalizer/hourly_usage_200701.png b/webalizer/hourly_usage_200701.png new file mode 100644 index 0000000..6755af8 Binary files /dev/null and b/webalizer/hourly_usage_200701.png differ diff --git a/webalizer/hourly_usage_200702.png b/webalizer/hourly_usage_200702.png new file mode 100644 index 0000000..0086a97 Binary files /dev/null and b/webalizer/hourly_usage_200702.png differ diff --git a/webalizer/hourly_usage_200703.png b/webalizer/hourly_usage_200703.png new file mode 100644 index 0000000..83da0ef Binary files /dev/null and b/webalizer/hourly_usage_200703.png differ diff --git a/webalizer/hourly_usage_200704.png b/webalizer/hourly_usage_200704.png new file mode 100644 index 0000000..e194e96 Binary files /dev/null and b/webalizer/hourly_usage_200704.png differ diff --git a/webalizer/hourly_usage_200705.png b/webalizer/hourly_usage_200705.png new file mode 100644 index 0000000..0267941 Binary files /dev/null and b/webalizer/hourly_usage_200705.png differ diff --git a/webalizer/hourly_usage_200706.png b/webalizer/hourly_usage_200706.png new file mode 100644 index 0000000..f7db0c1 Binary files /dev/null and b/webalizer/hourly_usage_200706.png differ diff --git a/webalizer/hourly_usage_200707.png b/webalizer/hourly_usage_200707.png new file mode 100644 index 0000000..8105072 Binary files /dev/null and b/webalizer/hourly_usage_200707.png differ diff --git a/webalizer/hourly_usage_200708.png b/webalizer/hourly_usage_200708.png new file mode 100644 index 0000000..6c266e3 Binary files /dev/null and b/webalizer/hourly_usage_200708.png differ diff --git a/webalizer/hourly_usage_200709.png b/webalizer/hourly_usage_200709.png new file mode 100644 index 0000000..d61f0d9 Binary files /dev/null and b/webalizer/hourly_usage_200709.png differ diff --git a/webalizer/hourly_usage_200710.png b/webalizer/hourly_usage_200710.png new file mode 100644 index 0000000..015d65c Binary files /dev/null and b/webalizer/hourly_usage_200710.png differ diff --git a/webalizer/hourly_usage_200711.png b/webalizer/hourly_usage_200711.png new file mode 100644 index 0000000..555c370 Binary files /dev/null and b/webalizer/hourly_usage_200711.png differ diff --git a/webalizer/hourly_usage_200712.png b/webalizer/hourly_usage_200712.png new file mode 100644 index 0000000..444402c Binary files /dev/null and b/webalizer/hourly_usage_200712.png differ diff --git a/webalizer/hourly_usage_200801.png b/webalizer/hourly_usage_200801.png new file mode 100644 index 0000000..8fbc73c Binary files /dev/null and b/webalizer/hourly_usage_200801.png differ diff --git a/webalizer/hourly_usage_200802.png b/webalizer/hourly_usage_200802.png new file mode 100644 index 0000000..b0a69e9 Binary files /dev/null and b/webalizer/hourly_usage_200802.png differ diff --git a/webalizer/hourly_usage_200803.png b/webalizer/hourly_usage_200803.png new file mode 100644 index 0000000..d742700 Binary files /dev/null and b/webalizer/hourly_usage_200803.png differ diff --git a/webalizer/hourly_usage_200804.png b/webalizer/hourly_usage_200804.png new file mode 100644 index 0000000..0d70059 Binary files /dev/null and b/webalizer/hourly_usage_200804.png differ diff --git a/webalizer/hourly_usage_200805.png b/webalizer/hourly_usage_200805.png new file mode 100644 index 0000000..150e9c9 Binary files /dev/null and b/webalizer/hourly_usage_200805.png differ diff --git a/webalizer/hourly_usage_200806.png b/webalizer/hourly_usage_200806.png new file mode 100644 index 0000000..e617ba7 Binary files /dev/null and b/webalizer/hourly_usage_200806.png differ diff --git a/webalizer/hourly_usage_200807.png b/webalizer/hourly_usage_200807.png new file mode 100644 index 0000000..8eac80a Binary files /dev/null and b/webalizer/hourly_usage_200807.png differ diff --git a/webalizer/hourly_usage_200808.png b/webalizer/hourly_usage_200808.png new file mode 100644 index 0000000..5b528c5 Binary files /dev/null and b/webalizer/hourly_usage_200808.png differ diff --git a/webalizer/hourly_usage_200809.png b/webalizer/hourly_usage_200809.png new file mode 100644 index 0000000..bc060b5 Binary files /dev/null and b/webalizer/hourly_usage_200809.png differ diff --git a/webalizer/hourly_usage_200810.png b/webalizer/hourly_usage_200810.png new file mode 100644 index 0000000..cb28c44 Binary files /dev/null and b/webalizer/hourly_usage_200810.png differ diff --git a/webalizer/hourly_usage_200811.png b/webalizer/hourly_usage_200811.png new file mode 100644 index 0000000..c87be53 Binary files /dev/null and b/webalizer/hourly_usage_200811.png differ diff --git a/webalizer/hourly_usage_200812.png b/webalizer/hourly_usage_200812.png new file mode 100644 index 0000000..dff2c18 Binary files /dev/null and b/webalizer/hourly_usage_200812.png differ diff --git a/webalizer/hourly_usage_200901.png b/webalizer/hourly_usage_200901.png new file mode 100644 index 0000000..f13308b Binary files /dev/null and b/webalizer/hourly_usage_200901.png differ diff --git a/webalizer/hourly_usage_200902.png b/webalizer/hourly_usage_200902.png new file mode 100644 index 0000000..9c8ca07 Binary files /dev/null and b/webalizer/hourly_usage_200902.png differ diff --git a/webalizer/hourly_usage_200903.png b/webalizer/hourly_usage_200903.png new file mode 100644 index 0000000..6f4e458 Binary files /dev/null and b/webalizer/hourly_usage_200903.png differ diff --git a/webalizer/hourly_usage_200904.png b/webalizer/hourly_usage_200904.png new file mode 100644 index 0000000..a00f842 Binary files /dev/null and b/webalizer/hourly_usage_200904.png differ diff --git a/webalizer/hourly_usage_200905.png b/webalizer/hourly_usage_200905.png new file mode 100644 index 0000000..1ef3b49 Binary files /dev/null and b/webalizer/hourly_usage_200905.png differ diff --git a/webalizer/hourly_usage_200906.png b/webalizer/hourly_usage_200906.png new file mode 100644 index 0000000..4dbb34b Binary files /dev/null and b/webalizer/hourly_usage_200906.png differ diff --git a/webalizer/hourly_usage_200907.png b/webalizer/hourly_usage_200907.png new file mode 100644 index 0000000..a958e1a Binary files /dev/null and b/webalizer/hourly_usage_200907.png differ diff --git a/webalizer/hourly_usage_200908.png b/webalizer/hourly_usage_200908.png new file mode 100644 index 0000000..01eb0a5 Binary files /dev/null and b/webalizer/hourly_usage_200908.png differ diff --git a/webalizer/hourly_usage_200909.png b/webalizer/hourly_usage_200909.png new file mode 100644 index 0000000..3f199c5 Binary files /dev/null and b/webalizer/hourly_usage_200909.png differ diff --git a/webalizer/hourly_usage_200911.png b/webalizer/hourly_usage_200911.png new file mode 100644 index 0000000..1827df6 Binary files /dev/null and b/webalizer/hourly_usage_200911.png differ diff --git a/webalizer/hourly_usage_201005.png b/webalizer/hourly_usage_201005.png new file mode 100644 index 0000000..d14bf6b Binary files /dev/null and b/webalizer/hourly_usage_201005.png differ diff --git a/webalizer/hourly_usage_201006.png b/webalizer/hourly_usage_201006.png new file mode 100644 index 0000000..33da408 Binary files /dev/null and b/webalizer/hourly_usage_201006.png differ diff --git a/webalizer/hourly_usage_201007.png b/webalizer/hourly_usage_201007.png new file mode 100644 index 0000000..9ad1dc5 Binary files /dev/null and b/webalizer/hourly_usage_201007.png differ diff --git a/webalizer/hourly_usage_201009.png b/webalizer/hourly_usage_201009.png new file mode 100644 index 0000000..26b7e31 Binary files /dev/null and b/webalizer/hourly_usage_201009.png differ diff --git a/webalizer/hourly_usage_201108.png b/webalizer/hourly_usage_201108.png new file mode 100644 index 0000000..e699766 Binary files /dev/null and b/webalizer/hourly_usage_201108.png differ diff --git a/webalizer/hourly_usage_201109.png b/webalizer/hourly_usage_201109.png new file mode 100644 index 0000000..42c4664 Binary files /dev/null and b/webalizer/hourly_usage_201109.png differ diff --git a/webalizer/hourly_usage_201110.png b/webalizer/hourly_usage_201110.png new file mode 100644 index 0000000..50cd1ea Binary files /dev/null and b/webalizer/hourly_usage_201110.png differ diff --git a/webalizer/hourly_usage_201111.png b/webalizer/hourly_usage_201111.png new file mode 100644 index 0000000..e28e2da Binary files /dev/null and b/webalizer/hourly_usage_201111.png differ diff --git a/webalizer/index.html b/webalizer/index.html new file mode 100644 index 0000000..7969bca --- /dev/null +++ b/webalizer/index.html @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - Last 12 Months + + + +

    Usage Statistics for kauai

    + +Summary Period: Last 12 Months
    +Generated 05-Dec-2011 08:05 CET
    +
    +
    +
    +

    +Usage summary for kauai

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Summary by Month
    MonthDaily AvgMonthly Totals
    HitsFilesPagesVisitsSiteskB FkB InkB OutVisitsPagesFilesHits
    Nov 2011121212110001121212
    Oct 2011101010110001101010
    Sep 2011555110001555
    Aug 2011555110001555
    Jul 2010977344003779
    Jun 20101128592136813930081556515674
    May 20103822201426880028404576
    Apr 200917113814282142338800412714694859
    Mar 200918513838274733039900842119243045764
    Feb 200917212345284103350800787126034444818
    Jan 200923217560314594122500985188254477215
    Dec 200820815842234645982300741131349236463
    Totals1698280 +03883 +69961941125910
    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage.png b/webalizer/usage.png new file mode 100644 index 0000000..eb044a6 Binary files /dev/null and b/webalizer/usage.png differ diff --git a/webalizer/usage_200607.html b/webalizer/usage_200607.html new file mode 100644 index 0000000..5383e7d --- /dev/null +++ b/webalizer/usage_200607.html @@ -0,0 +1,1279 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - July 2006 + + + +

    Usage Statistics for kauai

    + +Summary Period: July 2006
    +Generated 09-Aug-2006 22:10 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Countries] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for July 2006
    Total Hits206
    Total Files126
    Total Pages25
    Total Visits12
    Total KBytes590
    Total Unique Sites10
    Total Unique URLs108
    Total Unique Referrers21
    Total Unique Usernames1
    Total Unique User Agents7
    .Avg Max
    Hits per Hour454
    Hits per Day103166
    Files per Day6390
    Pages per Day1220
    Visits per Day69
    KBytes per Day295445
    +Hits by Response Code
    Code 200 - OK126
    Code 302 - Found4
    Code 304 - Not Modified64
    Code 401 - Unauthorized1
    Code 404 - Not Found11
    +

    + +Daily usage for July 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for July 2006
    DayHitsFilesPagesVisitsSitesKBytes
    304019.42%3628.57%520.00%325.00%440.00%14524.57%
    3116680.58%9071.43%2080.00%975.00%990.00%44575.43%
    +

    + +Hourly usage for July 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for July 2006
    HourHitsFilesPagesKBytes
    AvgTotalAvgTotalAvgTotalAvgTotal
    0120.97%010.79%014.00%360.96%
    1131.46%121.59%000.00%367312.31%
    2000.00%000.00%000.00%000.00%
    3120.97%121.59%000.00%5101.75%
    4000.00%000.00%000.00%000.00%
    5010.49%010.79%000.00%13254.29%
    6000.00%000.00%000.00%000.00%
    7000.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%
    11275426.21%102015.87%4936.00%8116327.59%
    12000.00%000.00%000.00%000.00%
    13010.49%010.79%014.00%250.84%
    14120.97%010.79%000.00%12244.00%
    15000.00%000.00%000.00%000.00%
    16120.97%010.79%014.00%130.44%
    17010.49%010.79%014.00%250.84%
    18120.97%010.79%014.00%360.96%
    19494.37%364.76%1312.00%397813.25%
    20204019.42%204031.75%014.00%26518.73%
    21142813.59%6129.52%2416.00%316310.62%
    22000.00%000.00%000.00%000.00%
    23295928.64%183729.37%1312.00%407913.41%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 23 of 108 Total URLs
    #HitsKBytesURL
    1125.83%10417.60%/phpBB2/
    273.40%10217.36%/phpBB2/profile.php
    362.91%7312.41%/phpBB2/viewforum.php
    462.91%7612.92%/phpBB2/viewtopic.php
    552.43%152.53%/News/
    631.46%81.37%/phpBB2/admin/
    731.46%122.00%/phpBB2/admin/admin_userlist.php
    831.46%315.28%/phpBB2/login.php
    920.97%91.50%/Pics/logo-100.png
    1020.97%00.08%/favicon.ico
    1120.97%132.12%/phpBB2/posting.php
    1220.97%10.18%/phppages/fotobiz.php
    1320.97%10.09%/styles/header.css
    1420.97%00.02%/styles/main.css
    1510.49%30.43%/News/permalink.php
    1610.49%00.04%/Pics/newsitem_ul.png
    1710.49%00.04%/Pics/newsitem_ur.png
    1810.49%00.07%/Pics/xml.png
    1910.49%40.73%/phpBB2/groupcp.php
    2010.49%254.29%/phpBB2/search.php
    2110.49%00.00%/phpBB2/templates/subSilver/formIE.css
    2210.49%101.66%/secured/Pictures/20060531_Surfing_Bredene/
    2310.49%00.05%/styles/newspage.css
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 108 Total URLs By KBytes
    #HitsKBytesURL
    1125.83%10417.60%/phpBB2/
    273.40%10217.36%/phpBB2/profile.php
    362.91%7612.92%/phpBB2/viewtopic.php
    462.91%7312.41%/phpBB2/viewforum.php
    531.46%315.28%/phpBB2/login.php
    610.49%254.29%/phpBB2/search.php
    752.43%152.53%/News/
    820.97%132.12%/phpBB2/posting.php
    931.46%122.00%/phpBB2/admin/admin_userlist.php
    1010.49%101.66%/secured/Pictures/20060531_Surfing_Bredene/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Entry Pages
    #HitsVisitsURL
    1125.83%770.00%/phpBB2/
    252.43%330.00%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Exit Pages
    #HitsVisitsURL
    1125.83%763.64%/phpBB2/
    252.43%327.27%/News/
    310.49%19.09%/secured/Pictures/20060531_Surfing_Bredene/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 10 Total Sites
    #HitsFilesKBytesVisitsHostname
    19646.60%8164.29%16227.51%325.00%193.190.253.146
    27536.41%2217.46%8113.80%433.33%213.132.155.38
    3104.85%75.56%15125.61%00.00%65.55.213.102
    483.88%64.76%9916.86%18.33%72.232.199.194
    562.91%43.17%6811.59%18.33%82.207.6.187
    641.94%21.59%111.91%216.67%207.46.98.141
    731.46%21.59%101.66%00.00%66.249.72.45
    820.97%10.79%40.61%00.00%207.46.98.139
    910.49%10.79%20.33%18.33%72.30.110.13
    1010.49%00.00%10.11%00.00%72.30.128.148
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 10 Total Sites By KBytes
    #HitsFilesKBytesVisitsHostname
    19646.60%8164.29%16227.51%325.00%193.190.253.146
    2104.85%75.56%15125.61%00.00%65.55.213.102
    383.88%64.76%9916.86%18.33%72.232.199.194
    47536.41%2217.46%8113.80%433.33%213.132.155.38
    562.91%43.17%6811.59%18.33%82.207.6.187
    641.94%21.59%111.91%216.67%207.46.98.141
    731.46%21.59%101.66%00.00%66.249.72.45
    820.97%10.79%40.61%00.00%207.46.98.139
    910.49%10.79%20.33%18.33%72.30.110.13
    1010.49%00.00%10.11%00.00%72.30.128.148
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 20 of 21 Total Referrers
    #HitsReferrer
    14823.30%http://frederik.gotdns.org:1976/phpBB2/index.php
    22612.62%http://frederik.gotdns.org:1976/phpBB2/viewtopic.php
    32411.65%http://frederik.gotdns.org:1976/phpBB2/viewforum.php
    42110.19%http://frederik.gotdns.org:1976/phpBB2/posting.php
    52110.19%http://frederik.gotdns.org:1976/secured/Pictures/20060531_Surfing_Bredene/index.shtml
    662.91%http://frederik.gotdns.org:1976/phpBB2/admin/index.php
    752.43%http://frederik.gotdns.org:1976/phpBB2/admin/admin_userlist.php
    841.94%http://frederik.gotdns.org/profile.php
    941.94%http://frederik.gotdns.org:1976/News/index.php
    1031.46%http://frederik.gotdns.org/phpBB2/index.php
    1120.97%http://frederik.gotdns.org/:1976/phpBB2/index.php
    1220.97%http://frederik.gotdns.org/phpBB2/login.php
    1320.97%http://frederik.gotdns.org/viewforum.php
    1420.97%http://frederik.gotdns.org:1976/phpBB2/login.php
    1520.97%http://vanrenterghem.biz/secured/Pictures/index.shtml
    1620.97%http://www.vanrenterghem.biz/
    1710.49%http://frederik.gotdns.org/phpBB2/profile.php
    1810.49%http://frederik.gotdns.org:1976/phppages/fotobiz.php
    1910.49%http://vanrenterghem.biz/index.shtml
    2010.49%http://www.vanrenterghem.biz/phpBB2/index.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFilesKBytesVisitsUsername
    12110.19%75.56%508.51%18.33%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total User Agents
    #HitsUser Agent
    114469.90%Mozilla/5.0
    22713.11%Konqueror/3.5
    3146.80%MSIE 6.0
    4104.85%msnbot/0.9 (+http://search.msn.com/msnbot.htm)
    562.91%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    631.46%Googlebot/2.1
    720.97%Yahoo! Slurp
    +

    + +Usage by Country for July 2006

    + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Countries
    #HitsFilesKBytesCountry
    1206100.00%126100.00%590100.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200608.html b/webalizer/usage_200608.html new file mode 100644 index 0000000..371f053 --- /dev/null +++ b/webalizer/usage_200608.html @@ -0,0 +1,3022 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - August 2006 + + + +

    Usage Statistics for kauai

    + +Summary Period: August 2006
    +Generated 01-Sep-2006 06:26 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for August 2006
    Total Hits16797
    Total Files13177
    Total Pages753
    Total Visits364
    Total kB Files164551
    Total kB In0
    Total kB Out0
    Total Unique Sites172
    Total Unique URLs789
    Total Unique Referrers59
    Total Unique Usernames3
    Total Unique User Agents16
    .Avg Max
    Hits per Hour221863
    Hits per Day5413106
    Files per Day4252994
    Pages per Day2467
    Visits per Day1124
    kB Files per Day530831777
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK13177
    Code 206 - Partial Content16
    Code 301 - Moved Permanently1
    Code 302 - Found283
    Code 304 - Not Modified2853
    Code 401 - Unauthorized94
    Code 403 - Forbidden16
    Code 404 - Not Found357
    +

    + +Daily usage for August 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for August 2006
    kB InkB OutDayHitsFilesPagesVisitsSiteskB F
    1660.39%630.48%151.99%102.75%52.91%15480.94%00.00%00.00%
    21040.62%830.63%172.26%102.75%63.49%19651.19%00.00%00.00%
    32171.29%1811.37%283.72%164.40%95.23%6460.39%00.00%00.00%
    4950.57%520.39%121.59%92.47%84.65%48362.94%00.00%00.00%
    5880.52%630.48%263.45%133.57%137.56%16721.02%00.00%00.00%
    6420.25%250.19%121.59%61.65%84.65%2350.14%00.00%00.00%
    7310618.49%299422.72%678.90%174.67%105.81%3177719.31%00.00%00.00%
    8197111.73%188114.27%526.91%246.59%105.81%2250813.68%00.00%00.00%
    912817.63%12329.35%415.44%133.57%126.98%154089.36%00.00%00.00%
    1012307.32%5904.48%344.52%133.57%63.49%57283.48%00.00%00.00%
    111040.62%880.67%243.19%154.12%116.40%6170.38%00.00%00.00%
    121250.74%690.52%151.99%71.92%74.07%5880.36%00.00%00.00%
    13600.36%310.24%91.20%41.10%63.49%870.05%00.00%00.00%
    141200.71%980.74%233.05%92.47%84.65%6690.41%00.00%00.00%
    1511106.61%6895.23%334.38%123.30%179.88%99986.08%00.00%00.00%
    165433.23%5093.86%243.19%133.57%158.72%67774.12%00.00%00.00%
    17178110.60%8996.82%455.98%184.95%1911.05%132848.07%00.00%00.00%
    181120.67%820.62%273.59%164.40%169.30%31911.94%00.00%00.00%
    198104.82%5284.01%324.25%154.12%137.56%72084.38%00.00%00.00%
    201660.99%1240.94%233.05%123.30%148.14%10080.61%00.00%00.00%
    215903.51%4453.38%172.26%113.02%116.40%42882.61%00.00%00.00%
    22900.54%690.52%121.59%113.02%95.23%6970.42%00.00%00.00%
    232781.66%2151.63%151.99%143.85%148.14%35322.15%00.00%00.00%
    246023.58%5544.20%303.98%143.85%2715.70%46132.80%00.00%00.00%
    254742.82%2081.58%151.99%51.37%2715.70%22361.36%00.00%00.00%
    261360.81%950.72%60.80%51.37%95.23%21661.32%00.00%00.00%
    272501.49%2211.68%81.06%61.65%95.23%29031.76%00.00%00.00%
    283271.95%2511.90%273.59%154.12%148.14%44072.68%00.00%00.00%
    291360.81%1030.78%212.79%92.47%105.81%8880.54%00.00%00.00%
    306283.74%6024.57%212.79%113.02%95.23%84365.13%00.00%00.00%
    311550.92%1331.01%222.92%123.30%137.56%6360.39%00.00%00.00%
    +

    + +Hourly usage for August 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for August 2006
    kB InkB OutHourHitsFilesPageskB F
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    051781.06%41341.02%0172.26%11034072.07%000.00%000.00%
    11490.29%0290.22%020.27%5316581.01%000.00%000.00%
    2227064.20%216745.11%0131.73%24074454.52%000.00%000.00%
    341420.85%31110.84%0111.46%3310100.61%000.00%000.00%
    41490.29%1360.27%070.93%165050.31%000.00%000.00%
    52840.50%2630.48%081.06%206100.37%000.00%000.00%
    631100.65%2890.68%081.06%267920.48%000.00%000.00%
    751851.10%41531.16%0192.52%3711480.70%000.00%000.00%
    851721.02%41331.01%0283.72%10632801.99%000.00%000.00%
    9134162.48%82702.05%1385.05%18356653.44%000.00%000.00%
    10165002.98%72271.72%1385.05%4313350.81%000.00%000.00%
    113410666.35%3210077.64%1496.51%342106046.44%000.00%000.00%
    122750.45%1540.41%0151.99%6319491.18%000.00%000.00%
    1351560.93%31230.93%0283.72%299010.55%000.00%000.00%
    144213207.86%206494.93%1486.37%22971124.32%000.00%000.00%
    1560188211.20%319837.46%1547.17%440136468.29%000.00%000.00%
    16134032.40%113562.70%0293.85%10833432.03%000.00%000.00%
    1741270.76%2760.58%0303.98%6921521.31%000.00%000.00%
    184313518.04%288896.75%1445.84%29190095.48%000.00%000.00%
    1962192611.47%50157011.91%1526.91%6722083812.66%000.00%000.00%
    20319725.79%268226.24%1364.78%342106046.44%000.00%000.00%
    2195296017.62%93288421.89%1587.70%10343205919.48%000.00%000.00%
    223912187.25%3711548.76%2759.96%443137468.35%000.00%000.00%
    23247504.47%226915.24%1466.11%378117337.13%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 789 Total URLs
    #HitskB FkB InkB OutURL
    112527.45%110136.69%00.00%00.00%/phpBB2/viewtopic.php
    23432.04%23621.44%00.00%00.00%/phpBB2/
    32151.28%30361.85%00.00%00.00%/phpBB2/profile.php
    41360.81%9660.59%00.00%00.00%/phpBB2/login.php
    51240.74%740.05%00.00%00.00%/phppages/foto.php
    61110.66%330.02%00.00%00.00%/styles/header.css
    7930.55%2500.15%00.00%00.00%/phpBB2/admin/
    8900.54%2260.14%00.00%00.00%/News/
    9890.53%3570.22%00.00%00.00%/phpBB2/admin/admin_userlist.php
    10860.51%70.00%00.00%00.00%/styles/main.css
    11710.42%4770.29%00.00%00.00%/Pics/logo-100.png
    12680.40%4190.25%00.00%00.00%/phpBB2/posting.php
    13680.40%5210.32%00.00%00.00%/phpBB2/viewforum.php
    14580.35%1080.07%00.00%00.00%/News/permalink.php
    15470.28%5790.35%00.00%00.00%/phpBB2/search.php
    16360.21%70.00%00.00%00.00%/Pics/newsitem_ul.png
    17360.21%120.01%00.00%00.00%/Pics/xml.png
    18350.21%70.00%00.00%00.00%/Pics/newsitem_ur.png
    19340.20%90.01%00.00%00.00%/styles/newspage.css
    20250.15%100.01%00.00%00.00%/favicon.ico
    21220.13%27041.64%00.00%00.00%/secured/Pictures/200607_The_Long_Swell/
    22160.10%10.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    23140.08%9820.60%00.00%00.00%/Thailand/
    24110.07%1290.08%00.00%00.00%/phpBB2/groupcp.php
    25100.06%3510.21%00.00%00.00%/phpBB2/faq.php
    2690.05%280.02%00.00%00.00%/webalizer/daily_usage_200608.png
    2780.05%180.01%00.00%00.00%/webalizer/ctry_usage_200608.png
    2880.05%160.01%00.00%00.00%/webalizer/hourly_usage_200608.png
    2970.04%740.04%00.00%00.00%/phpBB2/viewonline.php
    3070.04%680.04%00.00%00.00%/secured/Pictures/20060531_Surfing_Bredene/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 789 Total URLs By kB F
    #HitskB FkB InkB OutURL
    112527.45%110136.69%00.00%00.00%/phpBB2/viewtopic.php
    22151.28%30361.85%00.00%00.00%/phpBB2/profile.php
    3220.13%27041.64%00.00%00.00%/secured/Pictures/200607_The_Long_Swell/
    420.01%26301.60%00.00%00.00%/Pictures/20060429_chello_extreme.png
    53432.04%23621.44%00.00%00.00%/phpBB2/
    6140.08%9820.60%00.00%00.00%/Thailand/
    71360.81%9660.59%00.00%00.00%/phpBB2/login.php
    8470.28%5790.35%00.00%00.00%/phpBB2/search.php
    9680.40%5210.32%00.00%00.00%/phpBB2/viewforum.php
    10710.42%4770.29%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Entry Pages
    #HitsVisitsURL
    13432.04%21367.62%/phpBB2/
    2900.54%5617.78%/News/
    3220.13%3210.16%/secured/Pictures/200607_The_Long_Swell/
    4140.08%82.54%/Thailand/
    520.01%20.63%/Pictures/20051112_COS_Garden_of_the_Gods/
    610.01%10.32%/About/
    710.01%10.32%/Linux/
    810.01%10.32%/Pictures/
    910.01%10.32%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Exit Pages
    #HitsVisitsURL
    13432.04%16868.85%/phpBB2/
    2220.13%3413.93%/secured/Pictures/200607_The_Long_Swell/
    3900.54%208.20%/News/
    4930.55%166.56%/phpBB2/admin/
    570.04%41.64%/webalizer/usage_200608.html
    620.01%10.41%/Pictures/20051112_COS_Garden_of_the_Gods/
    7140.08%10.41%/Thailand/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 172 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1520430.98%465535.33%4706528.60%00.00%00.00%14038.46%213.132.155.38
    2357921.31%342826.02%3951024.01%00.00%00.00%4712.91%193.190.253.146
    313578.08%3852.92%41182.50%00.00%00.00%41.10%81.165.162.118
    47724.60%5223.96%48332.94%00.00%00.00%82.20%134.58.253.57
    55903.51%1991.51%26511.61%00.00%00.00%10.27%172.18.222.19
    64172.48%2231.69%26241.59%00.00%00.00%10.27%213.119.14.137
    73982.37%2011.53%25941.58%00.00%00.00%20.55%81.244.214.179
    83942.35%880.67%10700.65%00.00%00.00%10.27%213.119.14.4
    93832.28%3792.88%68584.17%00.00%00.00%10.27%74.238.181.254
    103832.28%3802.88%65613.99%00.00%00.00%10.27%81.245.49.113
    112551.52%1991.51%25891.57%00.00%00.00%10.27%213.118.121.187
    122491.48%2421.84%16130.98%00.00%00.00%10.27%66.249.66.133
    132291.36%2161.64%14620.89%00.00%00.00%00.00%66.249.66.170
    142021.20%2011.53%25331.54%00.00%00.00%10.27%213.118.99.3
    152021.20%1861.41%14000.85%00.00%00.00%41.10%66.249.66.197
    161981.18%1971.50%25311.54%00.00%00.00%10.27%213.224.81.217
    171891.13%1381.05%72294.39%00.00%00.00%164.40%65.55.213.102
    181410.84%1361.03%8770.53%00.00%00.00%10.27%66.249.66.132
    191320.79%1260.96%2340.14%00.00%00.00%61.65%62.58.102.2
    201260.75%370.28%8590.52%00.00%00.00%102.75%207.46.98.141
    211140.68%280.21%5450.33%00.00%00.00%123.30%207.46.98.139
    22980.58%810.61%4500.27%00.00%00.00%61.65%66.249.72.45
    23770.46%110.08%3350.20%00.00%00.00%184.95%207.46.98.142
    24720.43%680.52%4120.25%00.00%00.00%10.27%66.249.65.2
    25570.34%520.39%3700.22%00.00%00.00%00.00%66.249.66.173
    26510.30%500.38%1490.09%00.00%00.00%10.27%68.28.179.118
    27340.20%290.22%34502.10%00.00%00.00%00.00%81.247.119.196
    28280.17%260.20%1620.10%00.00%00.00%00.00%66.249.65.101
    29280.17%270.20%390.02%00.00%00.00%00.00%82.139.82.91
    30180.11%140.11%2370.14%00.00%00.00%20.55%216.255.190.66
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 172 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1520430.98%465535.33%4706528.60%00.00%00.00%14038.46%213.132.155.38
    2357921.31%342826.02%3951024.01%00.00%00.00%4712.91%193.190.253.146
    31891.13%1381.05%72294.39%00.00%00.00%164.40%65.55.213.102
    43832.28%3792.88%68584.17%00.00%00.00%10.27%74.238.181.254
    53832.28%3802.88%65613.99%00.00%00.00%10.27%81.245.49.113
    67724.60%5223.96%48332.94%00.00%00.00%82.20%134.58.253.57
    713578.08%3852.92%41182.50%00.00%00.00%41.10%81.165.162.118
    8340.20%290.22%34502.10%00.00%00.00%00.00%81.247.119.196
    95903.51%1991.51%26511.61%00.00%00.00%10.27%172.18.222.19
    104172.48%2231.69%26241.59%00.00%00.00%10.27%213.119.14.137
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 59 Total Referrers
    #HitsReferrer
    11000.60%frederik.gotdns.org/profile.php
    2640.38%vanrenterghem.biz/phppages/fotobiz.php
    3500.30%vanrenterghem.biz/secured/Pictures/index.shtml
    4390.23%frederik.gotdns.org/phpBB2/profile.php
    5320.19%frederik.gotdns.org/:1976/phpBB2/index.php
    6300.18%frederik.gotdns.org/phpBB2/index.php
    7290.17%frederik.gotdns.org/phpBB2/login.php
    8290.17%frederik.gotdns.org/viewforum.php
    9290.17%www.vanrenterghem.biz/
    10160.10%vanrenterghem.biz/index.shtml
    11150.09%www.vanrenterghem.biz/phpBB2/index.php
    12120.07%by110fd.bay110.hotmail.msn.com/cgi-bin/getmsg
    1390.05%images.google.com/imgres
    1460.04%images.google.co.uk/imgres
    1540.02%images.google.com.ar/imgres
    1640.02%vanrenterghem.biz/News/index.php
    1740.02%vanrenterghem.biz/Pictures/index.shtml
    1840.02%vanrenterghem.biz/Surfing/index.shtml
    1940.02%www.vanrenterghem.biz/secured/Pictures/index.shtml
    2030.02%images.google.ca/imgres
    2120.01%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    2220.01%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    2320.01%images.google.com.do/imgres
    2420.01%images.google.de/imgres
    2520.01%images.google.it/imgres
    2620.01%images.google.nl/imgres
    2710.01%images.google.co.in/imgres
    2810.01%images.google.com.au/imgres
    2910.01%search.msn.com/results.aspx
    3010.01%vanrenterghem.biz/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Search Strings
    #HitsSearch String
    1637.50%surf wax
    2212.50%arre
    3212.50%mr. zogs
    4212.50%mr.zogs
    516.25%mr. zogs art
    616.25%s-
    716.25%surf wax art
    816.25%zogs
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1909554.15%784559.54%10100661.38%00.00%00.00%226.04%ShowMe
    2237414.13%12539.51%1649910.03%00.00%00.00%71.92%Thailand
    33672.18%3672.79%68404.16%00.00%00.00%20.55%TwoBricks
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 16 Total User Agents
    #HitsUser Agent
    1695141.38%Mozilla/5.0
    2402323.95%Konqueror/3.5
    3380922.68%MSIE 6.0
    413097.79%Googlebot/2.1
    53341.99%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    61891.13%msnbot/0.9 (+http://search.msn.com/msnbot.htm)
    7730.43%Yahoo! Slurp
    8510.30%Mozilla/4.0
    9210.13%findlinks/1.1.3-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/)
    10140.08%findlinks/1.1.3-beta8 (+http://wortschatz.uni-leipzig.de/findlinks/)
    1180.05%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    1260.04%Krugle/Krugle,Nutch/0.8+ (Krugle web crawler; http://corp.krugle.com/crawler/info.html; webcrawler@krugle.com)
    1360.04%findlinks/1.1.1-a5 (+http://wortschatz.uni-leipzig.de/findlinks/)
    1410.01%Googlebot-Image/1.0
    1510.01%MSIE 5.0
    +

    + +Usage by Location for August 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 19 of 19 Total Locations
    #HitsFileskB FkB InkB OutLocation
    11334279.43%1064980.82%11994872.89%00.00%00.00%Belgium
    2251014.94%205715.61%2976418.09%00.00%00.00%United States
    36033.59%2101.59%28491.73%00.00%00.00%Unresolved/Unknown
    4860.51%630.48%10610.64%00.00%00.00%Russian Federation
    5560.33%430.33%18501.12%00.00%00.00%Germany
    6410.24%340.26%13530.82%00.00%00.00%Great Britain (UK)
    7380.23%370.28%15780.96%00.00%00.00%Netherlands
    8240.14%180.14%2980.18%00.00%00.00%Ukraine
    9170.10%150.11%14130.86%00.00%00.00%Italy
    10160.10%120.09%1990.12%00.00%00.00%Moldova
    11100.06%100.08%180.01%00.00%00.00%Australia
    12100.06%100.08%13150.80%00.00%00.00%Canada
    1380.05%70.05%26051.58%00.00%00.00%Argentina
    1480.05%60.05%990.06%00.00%00.00%Belarus
    1580.05%60.05%990.06%00.00%00.00%Ecuador
    1680.05%80.06%170.01%00.00%00.00%India
    1760.04%50.04%770.05%00.00%00.00%Malaysia
    1830.02%30.02%40.00%00.00%00.00%Dominican Republic
    1930.02%00.00%40.00%00.00%00.00%Estonia
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200609.html b/webalizer/usage_200609.html new file mode 100644 index 0000000..072ed43 --- /dev/null +++ b/webalizer/usage_200609.html @@ -0,0 +1,2866 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - September 2006 + + + +

    Usage Statistics for kauai

    + +Summary Period: September 2006
    +Generated 01-Oct-2006 06:27 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for September 2006
    Total Hits8660
    Total Files6721
    Total Pages783
    Total Visits398
    Total kB Files78388
    Total kB In0
    Total kB Out0
    Total Unique Sites139
    Total Unique URLs704
    Total Unique Referrers48
    Total Unique Usernames2
    Total Unique User Agents19
    .Avg Max
    Hits per Hour12729
    Hits per Day2881318
    Files per Day2241290
    Pages per Day2659
    Visits per Day1328
    kB Files per Day261314577
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK6721
    Code 301 - Moved Permanently2
    Code 302 - Found337
    Code 304 - Not Modified1137
    Code 401 - Unauthorized84
    Code 403 - Forbidden26
    Code 404 - Not Found352
    Code 405 - Method Not Allowed1
    +

    + +Daily usage for September 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for September 2006
    kB InkB OutDayHitsFilesPagesVisitsSiteskB F
    17368.50%3475.16%202.55%112.76%1510.79%46715.96%00.00%00.00%
    21161.34%761.13%182.30%112.76%75.04%4450.57%00.00%00.00%
    33073.55%2824.20%151.92%92.26%64.32%29613.78%00.00%00.00%
    41131.30%711.06%141.79%92.26%85.76%10291.31%00.00%00.00%
    5961.11%590.88%192.43%102.51%85.76%4720.60%00.00%00.00%
    61331.54%841.25%293.70%164.02%128.63%9541.22%00.00%00.00%
    71211.40%981.46%253.19%82.01%128.63%6300.80%00.00%00.00%
    82222.56%1542.29%324.09%102.51%139.35%23663.02%00.00%00.00%
    94735.46%3665.45%597.54%133.27%117.91%18492.36%00.00%00.00%
    101541.78%1221.82%334.21%143.52%117.91%7680.98%00.00%00.00%
    11131815.22%129019.19%354.47%205.03%139.35%1457718.60%00.00%00.00%
    126227.18%2163.21%506.39%287.04%117.91%48446.18%00.00%00.00%
    134675.39%4466.64%243.07%174.27%1510.79%44765.71%00.00%00.00%
    144765.50%4556.77%253.19%205.03%64.32%42705.45%00.00%00.00%
    151341.55%991.47%243.07%102.51%107.19%29903.81%00.00%00.00%
    16500.58%390.58%81.02%82.01%85.76%14931.90%00.00%00.00%
    17720.83%490.73%81.02%61.51%64.32%3120.40%00.00%00.00%
    181922.22%1482.20%263.32%153.77%128.63%22162.83%00.00%00.00%
    192282.63%1772.63%232.94%174.27%139.35%25063.20%00.00%00.00%
    202142.47%1652.45%324.09%184.52%1611.51%20702.64%00.00%00.00%
    211641.89%1432.13%162.04%123.02%1510.79%12811.63%00.00%00.00%
    221812.09%1492.22%151.92%123.02%85.76%5630.72%00.00%00.00%
    231691.95%1121.67%364.60%174.27%1410.07%35214.49%00.00%00.00%
    242222.56%1942.89%212.68%71.76%96.47%18062.30%00.00%00.00%
    252592.99%2183.24%131.66%92.26%1410.07%26763.41%00.00%00.00%
    265185.98%4947.35%222.81%71.76%107.19%56807.25%00.00%00.00%
    273754.33%2653.94%455.75%153.77%2115.11%26633.40%00.00%00.00%
    281391.61%1081.61%293.70%184.52%1410.07%22182.83%00.00%00.00%
    292372.74%1852.75%516.51%174.27%117.91%13601.74%00.00%00.00%
    301521.76%1101.64%162.04%143.52%128.63%7210.92%00.00%00.00%
    +

    + +Hourly usage for September 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for September 2006
    kB InkB OutHourHitsFilesPageskB F
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    041221.41%3971.44%0111.40%257580.97%000.00%000.00%
    12881.02%2640.95%0101.28%216160.79%000.00%000.00%
    231081.25%2721.07%0151.92%6920852.66%000.00%000.00%
    32860.99%2650.97%0121.53%6218672.38%000.00%000.00%
    441211.40%3921.37%0101.28%8024033.07%000.00%000.00%
    52871.00%2671.00%091.15%237010.89%000.00%000.00%
    631121.29%2851.26%0111.40%195750.73%000.00%000.00%
    751521.76%31031.53%0141.79%247270.93%000.00%000.00%
    882462.84%51632.43%2607.66%5616682.13%000.00%000.00%
    9103053.52%82453.65%1364.60%4312851.64%000.00%000.00%
    10185476.32%154686.96%1384.85%21363788.14%000.00%000.00%
    11113333.85%72153.20%1526.64%4714061.79%000.00%000.00%
    12195876.78%62093.11%0273.45%20862527.98%000.00%000.00%
    13113453.98%92814.18%2627.92%5717252.20%000.00%000.00%
    14278249.52%164847.20%1313.96%15847446.05%000.00%000.00%
    15206077.01%185468.12%1526.64%15546425.92%000.00%000.00%
    16134044.67%123665.45%1435.49%10531604.03%000.00%000.00%
    17123714.28%113435.10%1303.83%11835424.52%000.00%000.00%
    1892753.18%62063.07%1415.24%4312831.64%000.00%000.00%
    1992813.24%51702.53%1394.98%3510381.32%000.00%000.00%
    20206087.02%175357.96%1364.60%24573439.37%000.00%000.00%
    2192923.37%72373.53%1415.24%22968788.77%000.00%000.00%
    22237128.22%216359.45%1496.26%24974789.54%000.00%000.00%
    2334104712.09%3297314.48%1546.90%328983512.55%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 704 Total URLs
    #HitskB FkB InkB OutURL
    1159618.43%1302316.61%00.00%00.00%/phpBB2/viewtopic.php
    24104.73%28103.58%00.00%00.00%/phpBB2/
    32382.75%32414.13%00.00%00.00%/phpBB2/profile.php
    41691.95%11541.47%00.00%00.00%/phpBB2/login.php
    51141.32%3080.39%00.00%00.00%/phpBB2/admin/
    61101.27%6570.84%00.00%00.00%/phpBB2/posting.php
    71051.21%4250.54%00.00%00.00%/phpBB2/admin/admin_userlist.php
    8991.14%8171.04%00.00%00.00%/phpBB2/viewforum.php
    9610.70%200.03%00.00%00.00%/styles/header.css
    10590.68%1630.21%00.00%00.00%/News/
    11590.68%1120.14%00.00%00.00%/News/permalink.php
    12580.67%7090.91%00.00%00.00%/phpBB2/search.php
    13510.59%3270.42%00.00%00.00%/Pics/logo-100.png
    14510.59%40.01%00.00%00.00%/styles/main.css
    15310.36%190.02%00.00%00.00%/phppages/foto.php
    16240.28%100.01%00.00%00.00%/Pics/xml.png
    17230.27%60.01%00.00%00.00%/Pics/newsitem_ul.png
    18230.27%50.01%00.00%00.00%/Pics/newsitem_ur.png
    19220.25%80.01%00.00%00.00%/styles/newspage.css
    20190.22%70.01%00.00%00.00%/favicon.ico
    21160.18%3780.48%00.00%00.00%/phpBB2/faq.php
    22160.18%10.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    23130.15%1580.20%00.00%00.00%/phpBB2/groupcp.php
    24100.12%880.11%00.00%00.00%/phpBB2/viewonline.php
    2590.10%1650.21%00.00%00.00%/phpBB2/memberlist.php
    2690.10%11061.41%00.00%00.00%/secured/Pictures/200607_The_Long_Swell/
    2780.09%390.05%00.00%00.00%/phppages/rss.php
    2870.08%7610.97%00.00%00.00%/phpBB2/admin/admin_db_utilities.php
    2940.05%52576.71%00.00%00.00%/Pictures/20060429_chello_extreme.png
    3040.05%50.01%00.00%00.00%/webalizer/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 704 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1159618.43%1302316.61%00.00%00.00%/phpBB2/viewtopic.php
    240.05%52576.71%00.00%00.00%/Pictures/20060429_chello_extreme.png
    32382.75%32414.13%00.00%00.00%/phpBB2/profile.php
    44104.73%28103.58%00.00%00.00%/phpBB2/
    51691.95%11541.47%00.00%00.00%/phpBB2/login.php
    690.10%11061.41%00.00%00.00%/secured/Pictures/200607_The_Long_Swell/
    7991.14%8171.04%00.00%00.00%/phpBB2/viewforum.php
    870.08%7610.97%00.00%00.00%/phpBB2/admin/admin_db_utilities.php
    9580.67%7090.91%00.00%00.00%/phpBB2/search.php
    101101.27%6570.84%00.00%00.00%/phpBB2/posting.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Entry Pages
    #HitsVisitsURL
    14104.73%22965.80%/phpBB2/
    290.10%6017.24%/secured/Pictures/200607_The_Long_Swell/
    3590.68%4412.64%/News/
    430.03%92.59%/
    51141.32%20.57%/phpBB2/admin/
    610.01%10.29%/Pictures/
    710.01%10.29%/Pictures/20021229_Serial_Console/
    820.02%10.29%/secured/Pictures/20060531_Surfing_Bredene/
    910.01%10.29%http://www.ebay.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Exit Pages
    #HitsVisitsURL
    14104.73%14368.10%/phpBB2/
    290.10%3818.10%/secured/Pictures/200607_The_Long_Swell/
    3590.68%136.19%/News/
    41141.32%73.33%/phpBB2/admin/
    530.03%62.86%/
    640.05%31.43%/webalizer/usage_200609.html
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 139 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1231126.69%179626.72%1765322.52%00.00%00.00%14335.93%213.132.155.38
    2163518.88%94414.05%1187115.14%00.00%00.00%82.01%81.165.162.118
    3126514.61%117917.54%66668.50%00.00%00.00%4310.80%193.190.253.146
    44795.53%4636.89%30733.92%00.00%00.00%20.50%66.249.65.110
    53403.93%3254.84%21032.68%00.00%00.00%20.50%66.249.66.8
    63213.71%2934.36%18542.36%00.00%00.00%20.50%66.249.65.73
    72282.63%2063.07%5800.74%00.00%00.00%205.03%134.58.253.57
    82112.44%460.68%11831.51%00.00%00.00%389.55%207.46.98.141
    92072.39%2012.99%25113.20%00.00%00.00%10.25%81.244.218.120
    102062.38%1352.01%788210.06%00.00%00.00%389.55%65.55.213.102
    112062.38%1832.72%11601.48%00.00%00.00%30.75%66.249.66.132
    121491.72%500.74%12231.56%00.00%00.00%143.52%207.46.98.139
    131361.57%1271.89%8321.06%00.00%00.00%10.25%66.249.65.13
    14981.13%711.06%1240.16%00.00%00.00%20.50%83.186.46.26
    15360.42%340.51%26773.42%00.00%00.00%10.25%24.215.243.190
    16360.42%340.51%2200.28%00.00%00.00%10.25%66.249.65.134
    17350.40%350.52%2260.29%00.00%00.00%00.00%66.249.65.195
    18340.39%220.33%5780.74%00.00%00.00%30.75%207.46.98.138
    19270.31%250.37%1640.21%00.00%00.00%20.50%66.249.66.52
    20250.29%250.37%1620.21%00.00%00.00%10.25%66.249.66.136
    21240.28%180.27%2980.38%00.00%00.00%30.75%217.147.30.65
    22210.24%210.31%210.03%00.00%00.00%10.25%213.132.138.192
    23210.24%210.31%210.03%00.00%00.00%10.25%83.134.149.120
    24200.23%190.28%280.04%00.00%00.00%20.50%213.132.141.248
    25180.21%140.21%2360.30%00.00%00.00%20.50%84.52.78.126
    26170.20%130.19%4080.52%00.00%00.00%00.00%65.55.213.103
    27170.20%00.00%110.01%00.00%00.00%00.00%72.30.101.206
    28170.20%170.25%180.02%00.00%00.00%00.00%84.197.197.229
    29140.16%110.16%1710.22%00.00%00.00%10.25%139.18.13.204
    30120.14%20.03%190.02%00.00%00.00%51.26%207.46.98.140
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 139 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1231126.69%179626.72%1765322.52%00.00%00.00%14335.93%213.132.155.38
    2163518.88%94414.05%1187115.14%00.00%00.00%82.01%81.165.162.118
    32062.38%1352.01%788210.06%00.00%00.00%389.55%65.55.213.102
    4126514.61%117917.54%66668.50%00.00%00.00%4310.80%193.190.253.146
    54795.53%4636.89%30733.92%00.00%00.00%20.50%66.249.65.110
    6360.42%340.51%26773.42%00.00%00.00%10.25%24.215.243.190
    7100.12%100.15%26133.33%00.00%00.00%10.25%89.50.174.248
    82072.39%2012.99%25113.20%00.00%00.00%10.25%81.244.218.120
    93403.93%3254.84%21032.68%00.00%00.00%20.50%66.249.66.8
    103213.71%2934.36%18542.36%00.00%00.00%20.50%66.249.65.73
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 25 of 48 Total Referrers
    #HitsReferrer
    11011.17%frederik.gotdns.org/profile.php
    2490.57%vanrenterghem.biz/index.shtml
    3350.40%www.vanrenterghem.biz/
    4340.39%frederik.gotdns.org/phpBB2/index.php
    5340.39%frederik.gotdns.org/phpBB2/login.php
    6340.39%frederik.gotdns.org/phpBB2/profile.php
    7330.38%frederik.gotdns.org/:1976/phpBB2/index.php
    8320.37%frederik.gotdns.org/viewforum.php
    9220.25%vanrenterghem.biz/secured/Pictures/index.shtml
    10210.24%vanrenterghem.biz/phppages/fotobiz.php
    11110.13%www.vanrenterghem.biz/phpBB2/index.php
    1280.09%images.google.com/imgres
    1370.08%vanrenterghem.biz/Surfing/index.shtml
    1460.07%vanrenterghem.biz/About/index.shtml
    1560.07%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1630.03%images.google.de/imgres
    1730.03%vanrenterghem.biz/phpBB2/index.php
    1830.03%www.google.be/search
    1920.02%images.google.be/imgres
    2020.02%images.google.co.ve/imgres
    2120.02%images.google.fr/imgres
    2220.02%www.vanrenterghem.biz/secured/Pictures/index.shtml
    2310.01%frederik.gotdns.org/login.php
    2410.01%images.google.co.uk/imgres
    2510.01%search.msn.be/results.aspx
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Search Strings
    #HitsSearch String
    1233.33%mr zogs
    2233.33%surf wax
    3116.67%mr.zogs
    4116.67%wax art surfboard
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1305135.23%237335.31%3026538.61%00.00%00.00%133.27%ShowMe
    21932.23%1932.87%24943.18%00.00%00.00%10.25%Thailand
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 19 Total User Agents
    #HitsUser Agent
    1239927.70%MSIE 6.0
    2194222.42%Mozilla/5.0
    3189321.86%Konqueror/3.5
    4162818.80%Googlebot/2.1
    54064.69%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    61401.62%msnbot/0.9 (+http://search.msn.com/msnbot.htm)
    7830.96%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    8630.73%Yahoo! Slurp
    9410.47%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    10200.23%Opera 9.0
    11120.14%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    1280.09%findlinks/1.1.3-beta8 (+http://wortschatz.uni-leipzig.de/findlinks/)
    1360.07%findlinks/1.1.3-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/)
    1440.05%Krugle/Krugle,Nutch/0.8+ (Krugle web crawler; http://corp.krugle.com/crawler/info.html; webcrawler@krugle.com)
    1540.05%findlinks/1.1.1-a5 (+http://wortschatz.uni-leipzig.de/findlinks/)
    +

    + +Usage by Location for September 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 13 of 13 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1584267.46%449466.87%4213453.75%00.00%00.00%Belgium
    2252229.12%199329.65%2852936.39%00.00%00.00%United States
    31141.32%861.28%14301.82%00.00%00.00%Russian Federation
    4881.02%701.04%37914.84%00.00%00.00%Germany
    5260.30%240.36%5760.73%00.00%00.00%France
    6160.18%120.18%1990.25%00.00%00.00%Unresolved/Unknown
    7160.18%120.18%1990.25%00.00%00.00%Belarus
    890.10%90.13%13131.67%00.00%00.00%Venezuela
    980.09%60.09%1000.13%00.00%00.00%Estonia
    1080.09%80.12%170.02%00.00%00.00%Great Britain (UK)
    1180.09%60.09%990.13%00.00%00.00%Ukraine
    1220.02%10.01%10.00%00.00%00.00%Taiwan
    1310.01%00.00%10.00%00.00%00.00%Switzerland
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200610.html b/webalizer/usage_200610.html new file mode 100644 index 0000000..f6a5259 --- /dev/null +++ b/webalizer/usage_200610.html @@ -0,0 +1,2982 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - October 2006 + + + +

    Usage Statistics for kauai

    + +Summary Period: October 2006
    +Generated 01-Nov-2006 06:26 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for October 2006
    Total Hits7591
    Total Files5806
    Total Pages926
    Total Visits497
    Total kB Files47663
    Total kB In0
    Total kB Out0
    Total Unique Sites139
    Total Unique URLs629
    Total Unique Referrers47
    Total Unique Usernames1
    Total Unique User Agents19
    .Avg Max
    Hits per Hour10433
    Hits per Day244801
    Files per Day187694
    Pages per Day2969
    Visits per Day1625
    kB Files per Day15387660
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5806
    Code 206 - Partial Content7
    Code 301 - Moved Permanently1
    Code 302 - Found471
    Code 304 - Not Modified665
    Code 401 - Unauthorized78
    Code 403 - Forbidden12
    Code 404 - Not Found548
    Code 406 - Not Acceptable3
    +

    + +Daily usage for October 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for October 2006
    kB InkB OutDayHitsFilesPagesVisitsSiteskB F
    11642.16%1141.96%394.21%234.63%139.35%8881.86%00.00%00.00%
    21532.02%1141.96%181.94%112.21%96.47%8151.71%00.00%00.00%
    31832.41%1562.69%252.70%132.62%139.35%34517.24%00.00%00.00%
    42072.73%1722.96%283.02%173.42%117.91%9822.06%00.00%00.00%
    51592.09%1252.15%262.81%163.22%1712.23%9982.09%00.00%00.00%
    65236.89%4387.54%697.45%255.03%139.35%23674.97%00.00%00.00%
    71762.32%1292.22%242.59%163.22%1410.07%10712.25%00.00%00.00%
    81822.40%1182.03%283.02%163.22%85.76%6361.33%00.00%00.00%
    93013.97%2384.10%384.10%214.23%1510.79%14132.97%00.00%00.00%
    101031.36%861.48%202.16%163.22%139.35%5511.16%00.00%00.00%
    112393.15%1322.27%303.24%224.43%1410.07%18593.90%00.00%00.00%
    123394.47%2844.89%545.83%224.43%1510.79%41138.63%00.00%00.00%
    131351.78%1192.05%283.02%142.82%96.47%4310.90%00.00%00.00%
    142132.81%1662.86%333.56%234.63%107.19%7571.59%00.00%00.00%
    151211.59%841.45%232.48%173.42%117.91%5251.10%00.00%00.00%
    162713.57%2203.79%444.75%255.03%1712.23%24535.15%00.00%00.00%
    172102.77%1632.81%394.21%204.02%1712.23%10322.16%00.00%00.00%
    181471.94%1081.86%303.24%214.23%128.63%7921.66%00.00%00.00%
    194155.47%2103.62%272.92%183.62%1510.79%13412.81%00.00%00.00%
    202202.90%1732.98%475.08%244.83%1611.51%15253.20%00.00%00.00%
    211752.31%921.58%111.19%91.81%96.47%19654.12%00.00%00.00%
    221341.77%1031.77%131.40%102.01%117.91%5861.23%00.00%00.00%
    235637.42%3586.17%242.59%102.01%96.47%15343.22%00.00%00.00%
    241812.38%1592.74%131.40%51.01%96.47%10622.23%00.00%00.00%
    2580110.55%69411.95%374.00%153.02%85.76%766016.07%00.00%00.00%
    263444.53%2454.22%414.43%122.41%128.63%11092.33%00.00%00.00%
    27130.17%110.19%10.11%10.20%32.16%740.15%00.00%00.00%
    281281.69%1212.08%70.76%51.01%53.60%10162.13%00.00%00.00%
    291872.46%1582.72%101.08%71.41%64.32%6391.34%00.00%00.00%
    302202.90%1863.20%434.64%214.23%139.35%10892.28%00.00%00.00%
    313845.06%3305.68%566.05%224.43%85.76%29306.15%00.00%00.00%
    +

    + +Hourly usage for October 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for October 2006
    kB InkB OutHourHitsFilesPageskB F
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    041431.88%31011.74%0121.30%6419994.19%000.00%000.00%
    162042.69%51642.82%0151.62%8325665.38%000.00%000.00%
    251702.24%41332.29%0141.51%6419734.14%000.00%000.00%
    341291.70%3991.71%0121.30%226671.40%000.00%000.00%
    451752.31%41362.34%0161.73%7824335.10%000.00%000.00%
    561912.52%51582.72%0181.94%9529336.15%000.00%000.00%
    641341.77%31121.93%0151.62%7121954.61%000.00%000.00%
    731151.51%2841.45%0222.38%195861.23%000.00%000.00%
    872333.07%41542.65%1424.54%329932.08%000.00%000.00%
    9144626.09%113435.91%2758.10%10031156.53%000.00%000.00%
    10226919.10%2064211.06%1616.59%250776116.28%000.00%000.00%
    11134175.49%103345.75%2737.88%5216183.40%000.00%000.00%
    12175367.06%144447.65%1495.29%4413632.86%000.00%000.00%
    13103274.31%72233.84%2768.21%5416663.50%000.00%000.00%
    14144425.82%113546.10%1555.94%5918383.86%000.00%000.00%
    15123925.16%103335.74%1566.05%6219104.01%000.00%000.00%
    16247459.81%144637.97%1576.16%6620334.26%000.00%000.00%
    17103184.19%82544.37%1566.05%5517143.60%000.00%000.00%
    18103214.23%82684.62%1485.18%4413722.88%000.00%000.00%
    19134115.41%62083.58%1414.43%4413492.83%000.00%000.00%
    2082483.27%62073.57%0293.13%4614142.97%000.00%000.00%
    21103134.12%62003.44%1323.46%329902.08%000.00%000.00%
    2292943.87%82534.36%0283.02%3410532.21%000.00%000.00%
    2351802.37%41392.39%0242.59%6821214.45%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 629 Total URLs
    #HitskB FkB InkB OutURL
    1174422.97%1291127.09%00.00%00.00%/phpBB2/viewtopic.php
    25547.30%36577.67%00.00%00.00%/phpBB2/
    32613.44%32606.84%00.00%00.00%/phpBB2/profile.php
    42553.36%3090.65%00.00%00.00%/News/permalink.php
    52433.20%14593.06%00.00%00.00%/phpBB2/login.php
    61762.32%10512.21%00.00%00.00%/phpBB2/posting.php
    71522.00%12692.66%00.00%00.00%/phpBB2/viewforum.php
    81141.50%3100.65%00.00%00.00%/News/
    9871.15%2340.49%00.00%00.00%/phpBB2/admin/
    10851.12%3430.72%00.00%00.00%/phpBB2/admin/admin_userlist.php
    11660.87%200.04%00.00%00.00%/styles/header.css
    12600.79%2830.59%00.00%00.00%/Pics/logo-100.png
    13590.78%40.01%00.00%00.00%/styles/main.css
    14440.58%5571.17%00.00%00.00%/phpBB2/search.php
    15260.34%20.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    16250.33%100.02%00.00%00.00%/favicon.ico
    17180.24%110.02%00.00%00.00%/phppages/foto.php
    18170.22%60.01%00.00%00.00%/styles/newspage.css
    19150.20%60.01%00.00%00.00%/Pics/xml.png
    20130.17%3970.83%00.00%00.00%/phpBB2/faq.php
    21130.17%1010.21%00.00%00.00%/phpBB2/viewonline.php
    22120.16%30.01%00.00%00.00%/Pics/newsitem_ul.png
    23120.16%30.01%00.00%00.00%/Pics/newsitem_ur.png
    2490.12%1340.28%00.00%00.00%/phpBB2/memberlist.php
    2580.11%320.07%00.00%00.00%/phppages/rss.php
    2660.08%290.06%00.00%00.00%/phpBB2/modcp.php
    2750.07%630.13%00.00%00.00%/phpBB2/groupcp.php
    2830.04%480.10%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    2920.03%80.02%00.00%00.00%/Linux/
    3020.03%160.03%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 629 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1174422.97%1291127.09%00.00%00.00%/phpBB2/viewtopic.php
    25547.30%36577.67%00.00%00.00%/phpBB2/
    32613.44%32606.84%00.00%00.00%/phpBB2/profile.php
    420.03%26305.52%00.00%00.00%/Pictures/20060429_chello_extreme.png
    52433.20%14593.06%00.00%00.00%/phpBB2/login.php
    61522.00%12692.66%00.00%00.00%/phpBB2/viewforum.php
    71762.32%10512.21%00.00%00.00%/phpBB2/posting.php
    8440.58%5571.17%00.00%00.00%/phpBB2/search.php
    9130.17%3970.83%00.00%00.00%/phpBB2/faq.php
    10851.12%3430.72%00.00%00.00%/phpBB2/admin/admin_userlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 10 Total Entry Pages
    #HitsVisitsURL
    15547.30%29876.21%/phpBB2/
    21141.50%8120.72%/News/
    330.04%30.77%/Pictures/20051112_COS_Garden_of_the_Gods/
    420.03%20.51%/Pictures/20050409_New_York/
    510.01%20.51%/secured/Pictures/200607_The_Long_Swell/
    620.03%10.26%/Pictures/20021229_Serial_Console/
    710.01%10.26%/Pictures/20030201_Sneeuw/
    810.01%10.26%/Pictures/20030713_MTB/
    9871.15%10.26%/phpBB2/admin/
    1010.01%10.26%http://frederik.gotdns.org/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Exit Pages
    #HitsVisitsURL
    15547.30%18676.23%/phpBB2/
    21141.50%4418.03%/News/
    3871.15%72.87%/phpBB2/admin/
    410.01%20.82%/secured/Pictures/200607_The_Long_Swell/
    520.03%10.41%/Linux/
    610.01%10.41%/Pictures/200505_Amsterdam/
    730.04%10.41%/Pictures/20051112_COS_Garden_of_the_Gods/
    810.01%10.41%/secured/Pictures/20060531_Surfing_Bredene/
    920.03%10.41%/webalizer/usage_200610.html
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 139 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1104813.81%95116.38%871618.29%00.00%00.00%6112.27%134.58.253.57
    2104113.71%90015.50%20404.28%00.00%00.00%428.45%193.190.253.146
    3103513.63%62110.70%34707.28%00.00%00.00%13927.97%213.132.155.38
    47079.31%64111.04%525911.03%00.00%00.00%173.42%66.249.66.13
    54936.49%4467.68%26375.53%00.00%00.00%122.41%66.249.66.212
    64335.70%2494.29%7371.55%00.00%00.00%20.40%84.195.249.242
    73764.95%3325.72%15103.17%00.00%00.00%224.43%66.249.65.70
    83484.58%3235.56%20984.40%00.00%00.00%71.41%66.249.65.7
    92383.14%1973.39%3360.70%00.00%00.00%30.60%81.165.162.118
    101972.60%480.83%10962.30%00.00%00.00%204.02%207.46.98.141
    111822.40%400.69%830.17%00.00%00.00%10.20%81.244.130.219
    121361.79%290.50%7331.54%00.00%00.00%306.04%207.46.98.142
    131321.74%811.40%43129.05%00.00%00.00%357.04%65.55.213.102
    141161.53%1081.86%6831.43%00.00%00.00%20.40%66.249.66.18
    151021.34%901.55%2020.42%00.00%00.00%112.21%170.86.15.15
    16730.96%691.19%4380.92%00.00%00.00%00.00%66.249.66.226
    17570.75%550.95%1070.22%00.00%00.00%10.20%212.61.118.132
    18560.74%120.21%2730.57%00.00%00.00%20.40%207.46.98.140
    19510.67%490.84%860.18%00.00%00.00%10.20%62.166.195.179
    20490.65%130.22%2890.61%00.00%00.00%81.61%207.46.98.139
    21400.53%370.64%1560.33%00.00%00.00%40.80%66.249.65.178
    22310.41%280.48%250.05%00.00%00.00%10.20%213.132.141.248
    23270.36%270.47%360.08%00.00%00.00%00.00%85.145.212.7
    24240.32%180.31%1130.24%00.00%00.00%00.00%66.249.66.49
    25220.29%120.21%2740.58%00.00%00.00%20.40%207.46.98.138
    26210.28%210.36%210.04%00.00%00.00%10.20%193.75.76.206
    27200.26%150.26%2500.52%00.00%00.00%20.40%87.248.183.120
    28170.22%170.29%180.04%00.00%00.00%00.00%84.194.121.24
    29160.21%120.21%1990.42%00.00%00.00%20.40%24.127.105.128
    30160.21%120.21%1990.42%00.00%00.00%20.40%69.31.86.111
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 139 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1104813.81%95116.38%871618.29%00.00%00.00%6112.27%134.58.253.57
    27079.31%64111.04%525911.03%00.00%00.00%173.42%66.249.66.13
    31321.74%811.40%43129.05%00.00%00.00%357.04%65.55.213.102
    4103513.63%62110.70%34707.28%00.00%00.00%13927.97%213.132.155.38
    54936.49%4467.68%26375.53%00.00%00.00%122.41%66.249.66.212
    63484.58%3235.56%20984.40%00.00%00.00%71.41%66.249.65.7
    7104113.71%90015.50%20404.28%00.00%00.00%428.45%193.190.253.146
    83764.95%3325.72%15103.17%00.00%00.00%224.43%66.249.65.70
    9150.20%110.19%14833.11%00.00%00.00%10.20%157.82.254.36
    1080.11%80.14%13142.76%00.00%00.00%10.20%203.25.82.46
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 24 of 47 Total Referrers
    #HitsReferrer
    1981.29%frederik.gotdns.org/profile.php
    2921.21%www.vanrenterghem.biz/
    3380.50%frederik.gotdns.org/phpBB2/index.php
    4360.47%frederik.gotdns.org/phpBB2/login.php
    5360.47%frederik.gotdns.org/phpBB2/profile.php
    6340.45%frederik.gotdns.org/viewforum.php
    7330.43%frederik.gotdns.org/:1976/phpBB2/index.php
    8270.36%vanrenterghem.biz/index.shtml
    9160.21%www.vanrenterghem.biz/phpBB2/index.php
    10130.17%vanrenterghem.biz/phppages/fotobiz.php
    1190.12%vanrenterghem.biz/Surfing/index.shtml
    1270.09%images.google.com/imgres
    1330.04%frederik.gotdns.org/login.php
    1430.04%images.google.com.au/imgres
    1530.04%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1630.04%vanrenterghem.biz/secured/Pictures/index.shtml
    1720.03%images.google.ca/imgres
    1820.03%images.google.es/imgres
    1920.03%vanrenterghem.biz/About/index.shtml
    2020.03%vanrenterghem.biz/phpBB2/index.php
    2110.01%search.msn.be/spresults.aspx
    2210.01%vanrenterghem.biz/
    2310.01%vanrenterghem.biz/Pictures/index.shtml
    2410.01%www.google.com/search
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Search Strings
    #HitsSearch String
    1337.50%surf wax
    2225.00%mr zogs
    3112.50%mr. zogs
    4112.50%surf artwork
    5112.50%surfboard wax
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    14385.77%4387.54%701314.71%00.00%00.00%40.80%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 19 Total User Agents
    #HitsUser Agent
    1279936.87%Mozilla/5.0
    2220629.06%Googlebot/2.1
    3126516.66%MSIE 6.0
    45377.07%Konqueror/3.5
    54606.06%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    61321.74%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7720.95%Yahoo! Slurp
    8370.49%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    9310.41%Opera 9.0
    10210.28%http://www.l
    1170.09%findlinks/1.1.1-a5 (+http://wortschatz.uni-leipzig.de/findlinks/)
    1260.08%MSRBOT (http://research.microsoft.com/research/sv/msrbot/)
    1340.05%Exabot/3.0
    1440.05%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    1540.05%findlinks/1.1.3-beta8 (+http://wortschatz.uni-leipzig.de/findlinks/)
    +

    + +Usage by Location for October 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 20 of 20 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1407753.71%305352.58%1573833.02%00.00%00.00%Belgium
    2315441.55%246542.46%2356849.45%00.00%00.00%United States
    3841.11%821.41%1430.30%00.00%00.00%Netherlands
    4570.75%400.69%6911.45%00.00%00.00%Germany
    5500.66%380.65%6341.33%00.00%00.00%Russian Federation
    6210.28%150.26%15323.21%00.00%00.00%Japan
    7210.28%210.36%210.04%00.00%00.00%Norway
    8200.26%150.26%2500.52%00.00%00.00%Moldova
    9170.22%120.21%1930.41%00.00%00.00%Unresolved/Unknown
    10170.22%120.21%1930.41%00.00%00.00%Israel
    11130.17%90.16%3300.69%00.00%00.00%France
    12110.14%110.19%13142.76%00.00%00.00%Spain
    13100.13%80.14%1370.29%00.00%00.00%Latvia
    1480.11%80.14%13142.76%00.00%00.00%Australia
    1580.11%60.10%990.21%00.00%00.00%Belarus
    1680.11%60.10%990.21%00.00%00.00%Ecuador
    1780.11%60.10%990.21%00.00%00.00%Ukraine
    1850.07%50.09%13032.73%00.00%00.00%Canada
    1910.01%10.02%20.01%00.00%00.00%Czech Republic
    2010.01%00.00%00.00%00.00%00.00%Pakistan
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200611.html b/webalizer/usage_200611.html new file mode 100644 index 0000000..37c31d8 --- /dev/null +++ b/webalizer/usage_200611.html @@ -0,0 +1,2897 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - November 2006 + + + +

    Usage Statistics for kauai

    + +Summary Period: November 2006
    +Generated 01-Dec-2006 06:25 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for November 2006
    Total Hits6687
    Total Files5511
    Total Pages933
    Total Visits441
    Total kB Files44161
    Total kB In0
    Total kB Out0
    Total Unique Sites141
    Total Unique URLs457
    Total Unique Referrers42
    Total Unique Usernames1
    Total Unique User Agents24
    .Avg Max
    Hits per Hour9369
    Hits per Day222527
    Files per Day183484
    Pages per Day3180
    Visits per Day1428
    kB Files per Day14726492
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5511
    Code 302 - Found445
    Code 304 - Not Modified387
    Code 401 - Unauthorized27
    Code 403 - Forbidden5
    Code 404 - Not Found312
    +

    + +Daily usage for November 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for November 2006
    kB InkB OutDayHitsFilesPagesVisitsSiteskB F
    15277.88%4848.78%141.50%71.59%128.51%649214.70%00.00%00.00%
    22924.37%2364.28%363.86%184.08%117.80%10542.39%00.00%00.00%
    31422.12%1122.03%394.18%194.31%96.38%23485.32%00.00%00.00%
    41291.93%901.63%111.18%71.59%96.38%9402.13%00.00%00.00%
    5901.35%671.22%141.50%81.81%85.67%6151.39%00.00%00.00%
    61962.93%1663.01%323.43%132.95%96.38%10272.32%00.00%00.00%
    72373.54%2043.70%192.04%102.27%107.09%10222.31%00.00%00.00%
    83395.07%2744.97%505.36%194.31%85.67%14033.18%00.00%00.00%
    92563.83%1963.56%232.47%153.40%139.22%7371.67%00.00%00.00%
    101642.45%1392.52%283.00%143.17%128.51%23675.36%00.00%00.00%
    111922.87%1472.67%252.68%112.49%107.09%23555.33%00.00%00.00%
    121271.90%961.74%232.47%81.81%85.67%8101.83%00.00%00.00%
    131041.56%881.60%141.50%61.36%107.09%5921.34%00.00%00.00%
    141732.59%1542.79%232.47%122.72%128.51%10742.43%00.00%00.00%
    152023.02%1472.67%363.86%163.63%107.09%10112.29%00.00%00.00%
    162443.65%1873.39%424.50%184.08%1611.35%16733.79%00.00%00.00%
    172734.08%2244.06%323.43%132.95%139.22%10292.33%00.00%00.00%
    181412.11%1091.98%353.75%163.63%117.80%8491.92%00.00%00.00%
    191722.57%1202.18%212.25%102.27%117.80%15593.53%00.00%00.00%
    202093.13%1382.50%384.07%235.22%85.67%8441.91%00.00%00.00%
    212463.68%2203.99%394.18%173.85%117.80%11852.68%00.00%00.00%
    223344.99%2945.33%586.22%286.35%107.09%18694.23%00.00%00.00%
    232523.77%2224.03%464.93%265.90%117.80%12852.91%00.00%00.00%
    244466.67%3516.37%808.57%265.90%1611.35%21784.93%00.00%00.00%
    252423.62%2093.79%262.79%143.17%1611.35%15903.60%00.00%00.00%
    262002.99%1783.23%202.14%143.17%117.80%16813.81%00.00%00.00%
    271572.35%1302.36%272.89%132.95%117.80%10022.27%00.00%00.00%
    282333.48%2143.88%313.32%163.63%1611.35%11682.65%00.00%00.00%
    292303.44%1953.54%313.32%153.40%1913.48%13102.97%00.00%00.00%
    301382.06%1202.18%202.14%92.04%128.51%10922.47%00.00%00.00%
    +

    + +Hourly usage for November 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for November 2006
    kB InkB OutHourHitsFilesPageskB F
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    041281.91%31091.98%080.86%319332.11%000.00%000.00%
    161902.84%51652.99%0111.18%3410272.32%000.00%000.00%
    251692.53%41432.59%0202.14%8224685.59%000.00%000.00%
    331161.73%3971.76%050.54%206151.39%000.00%000.00%
    451602.39%41322.40%0202.14%4413343.02%000.00%000.00%
    561952.92%41422.58%0212.25%4914713.33%000.00%000.00%
    641311.96%31132.05%080.86%3410342.34%000.00%000.00%
    761802.69%41362.47%0131.39%3610912.47%000.00%000.00%
    8206029.00%175399.78%1454.82%231693615.71%000.00%000.00%
    9103004.49%82554.63%2626.65%4313012.95%000.00%000.00%
    10103134.68%92795.06%1535.68%5717043.86%000.00%000.00%
    11134116.15%103105.63%2687.29%6018074.09%000.00%000.00%
    1262013.01%51773.21%1343.64%4212492.83%000.00%000.00%
    1392914.35%82544.61%1576.11%6318794.25%000.00%000.00%
    1472153.22%51602.90%1343.64%4814403.26%000.00%000.00%
    1562053.07%51713.10%1373.97%4212622.86%000.00%000.00%
    16103184.76%82644.79%2667.07%10732027.25%000.00%000.00%
    17123885.80%113376.12%1424.50%5015063.41%000.00%000.00%
    18216559.80%185469.91%2818.68%8525575.79%000.00%000.00%
    19103294.92%92734.95%1495.25%5817453.95%000.00%000.00%
    20103124.67%82624.75%1566.00%4613903.15%000.00%000.00%
    21123815.70%82664.83%2656.97%7522565.11%000.00%000.00%
    2272273.39%51733.14%1404.29%5015003.40%000.00%000.00%
    2392704.04%62083.77%1384.07%8224535.55%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 457 Total URLs
    #HitskB FkB InkB OutURL
    1190428.47%1344230.44%00.00%00.00%/phpBB2/viewtopic.php
    25928.85%458510.38%00.00%00.00%/phpBB2/
    34096.12%599713.58%00.00%00.00%/phpBB2/profile.php
    43795.67%26996.11%00.00%00.00%/phpBB2/login.php
    51632.44%9762.21%00.00%00.00%/phpBB2/posting.php
    61432.14%5771.31%00.00%00.00%/phpBB2/admin/admin_userlist.php
    71412.11%3800.86%00.00%00.00%/phpBB2/admin/
    81131.69%12702.88%00.00%00.00%/phpBB2/viewforum.php
    9620.93%1020.23%00.00%00.00%/News/permalink.php
    10430.64%300.07%00.00%00.00%/styles/header.css
    11380.57%980.22%00.00%00.00%/News/
    12370.55%2650.60%00.00%00.00%/Pics/logo-100.png
    13360.54%40.01%00.00%00.00%/styles/main.css
    14200.30%190.04%00.00%00.00%/favicon.ico
    15160.24%2820.64%00.00%00.00%/phpBB2/search.php
    16150.22%30.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    17130.19%3210.73%00.00%00.00%/phpBB2/faq.php
    18120.18%930.21%00.00%00.00%/phpBB2/groupcp.php
    19110.16%800.18%00.00%00.00%/phpBB2/viewonline.php
    2090.13%960.22%00.00%00.00%/phpBB2/memberlist.php
    2160.09%10.00%00.00%00.00%/Pics/newsitem_ul.png
    2260.09%10.00%00.00%00.00%/Pics/newsitem_ur.png
    2360.09%20.00%00.00%00.00%/Pics/xml.png
    2460.09%20.01%00.00%00.00%/styles/newspage.css
    2550.07%250.06%00.00%00.00%/phpBB2/admin/admin_board.php
    2640.06%190.04%00.00%00.00%/phppages/rss.php
    2730.04%150.03%00.00%00.00%/phpBB2/modcp.php
    2820.03%60.01%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2920.03%70.02%00.00%00.00%/Linux/logitech.shtml
    3020.03%180.04%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 457 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1190428.47%1344230.44%00.00%00.00%/phpBB2/viewtopic.php
    24096.12%599713.58%00.00%00.00%/phpBB2/profile.php
    35928.85%458510.38%00.00%00.00%/phpBB2/
    43795.67%26996.11%00.00%00.00%/phpBB2/login.php
    510.01%13152.98%00.00%00.00%/Pictures/20060429_chello_extreme.png
    61131.69%12702.88%00.00%00.00%/phpBB2/viewforum.php
    71632.44%9762.21%00.00%00.00%/phpBB2/posting.php
    81432.14%5771.31%00.00%00.00%/phpBB2/admin/admin_userlist.php
    91412.11%3800.86%00.00%00.00%/phpBB2/admin/
    10130.19%3210.73%00.00%00.00%/phpBB2/faq.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Entry Pages
    #HitsVisitsURL
    15928.85%31387.68%/phpBB2/
    2380.57%246.72%/News/
    310.01%154.20%/secured/Pictures/200607_The_Long_Swell/
    420.03%20.56%/Pictures/20051112_COS_Garden_of_the_Gods/
    510.01%10.28%/About/
    610.01%10.28%/Pictures/
    71412.11%10.28%/phpBB2/admin/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Exit Pages
    #HitsVisitsURL
    15928.85%18683.78%/phpBB2/
    21412.11%177.66%/phpBB2/admin/
    3380.57%135.86%/News/
    410.01%62.70%/secured/Pictures/200607_The_Long_Swell/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 141 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1125218.72%79514.43%476510.79%00.00%00.00%15034.01%213.132.155.38
    2105915.84%98517.87%20174.57%00.00%00.00%4710.66%193.190.253.146
    392713.86%84315.30%541412.26%00.00%00.00%173.85%66.249.66.237
    44556.80%3997.24%25205.71%00.00%00.00%40.91%66.249.65.134
    53985.95%3646.60%16413.72%00.00%00.00%6614.97%134.58.253.57
    63605.38%3566.46%572912.97%00.00%00.00%10.23%199.82.243.71
    73114.65%2845.15%18214.12%00.00%00.00%30.68%66.249.65.211
    82583.86%2284.14%14243.23%00.00%00.00%51.13%66.249.65.193
    91402.09%1352.45%8842.00%00.00%00.00%30.68%66.249.66.131
    10971.45%901.63%1510.34%00.00%00.00%20.45%84.195.249.242
    11921.38%751.36%4631.05%00.00%00.00%00.00%66.249.66.239
    12801.20%581.05%9472.14%00.00%00.00%92.04%84.19.188.16
    13781.17%340.62%6701.52%00.00%00.00%81.81%207.46.98.142
    14741.11%601.09%3420.77%00.00%00.00%00.00%66.249.65.7
    15671.00%350.64%34997.92%00.00%00.00%132.95%65.55.213.102
    16660.99%611.11%2270.51%00.00%00.00%51.13%170.86.15.15
    17650.97%540.98%9092.06%00.00%00.00%61.36%66.235.184.173
    18590.88%220.40%2730.62%00.00%00.00%71.59%207.46.98.143
    19420.63%420.76%430.10%00.00%00.00%20.45%72.254.157.246
    20410.61%300.54%5171.17%00.00%00.00%61.36%64.242.88.60
    21400.60%170.31%3980.90%00.00%00.00%61.36%207.46.98.141
    22270.40%270.49%310.07%00.00%00.00%00.00%83.15.18.162
    23240.36%180.33%2980.68%00.00%00.00%30.68%216.32.81.18
    24240.36%180.33%2980.68%00.00%00.00%30.68%70.88.210.89
    25210.31%210.38%210.05%00.00%00.00%10.23%213.219.169.164
    26210.31%210.38%210.05%00.00%00.00%10.23%216.25.181.140
    27180.27%110.20%3000.68%00.00%00.00%20.45%207.46.98.138
    28170.25%120.22%1930.44%00.00%00.00%20.45%69.31.86.7
    29170.25%150.27%2560.58%00.00%00.00%10.23%81.19.249.21
    30160.24%120.22%1990.45%00.00%00.00%20.45%212.150.97.114
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 141 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    13605.38%3566.46%572912.97%00.00%00.00%10.23%199.82.243.71
    292713.86%84315.30%541412.26%00.00%00.00%173.85%66.249.66.237
    3125218.72%79514.43%476510.79%00.00%00.00%15034.01%213.132.155.38
    4671.00%350.64%34997.92%00.00%00.00%132.95%65.55.213.102
    54556.80%3997.24%25205.71%00.00%00.00%40.91%66.249.65.134
    6105915.84%98517.87%20174.57%00.00%00.00%4710.66%193.190.253.146
    73114.65%2845.15%18214.12%00.00%00.00%30.68%66.249.65.211
    83985.95%3646.60%16413.72%00.00%00.00%6614.97%134.58.253.57
    92583.86%2284.14%14243.23%00.00%00.00%51.13%66.249.65.193
    10801.20%581.05%9472.14%00.00%00.00%92.04%84.19.188.16
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 22 of 42 Total Referrers
    #HitsReferrer
    12353.51%frederik.gotdns.org/profile.php
    21161.73%www.vanrenterghem.biz/
    31021.53%frederik.gotdns.org/phpBB2/login.php
    4921.38%frederik.gotdns.org/phpBB2/index.php
    5851.27%frederik.gotdns.org/viewforum.php
    6801.20%frederik.gotdns.org/phpBB2/profile.php
    7791.18%frederik.gotdns.org/:1976/phpBB2/index.php
    8150.22%www.vanrenterghem.biz/phpBB2/index.php
    9120.18%vanrenterghem.biz/index.shtml
    10100.15%frederik.gotdns.org/login.php
    1180.12%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1280.12%vanrenterghem.biz/secured/Pictures/index.shtml
    1330.04%vanrenterghem.biz/Pictures/index.shtml
    1430.04%vanrenterghem.biz/Surfing/index.shtml
    1530.04%vanrenterghem.biz/phppages/fotobiz.php
    1620.03%frederik.gotdns.org/phpBB2/viewforum.php
    1720.03%vanrenterghem.biz/About/index.shtml
    1810.01%vanrenterghem.biz
    1910.01%vanrenterghem.biz/
    2010.01%vanrenterghem.biz/phpBB2/index.php
    2110.01%www.google.com/search
    2210.01%www.google.pl/search
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Search Strings
    #HitsSearch String
    11100.00%vanrenterghem
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    13475.19%3476.30%569312.89%00.00%00.00%20.45%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 24 Total User Agents
    #HitsUser Agent
    1225833.77%Googlebot/2.1
    2207831.08%Mozilla/5.0
    3107416.06%MSIE 6.0
    481912.25%Konqueror/3.5
    51972.95%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    6671.00%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7590.88%Yahoo! Slurp
    8410.61%http://www.W
    9150.22%MSIE 5.5
    10100.15%MSIE 5.2
    11100.15%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    1280.12%MSIE 7.0
    1380.12%Opera 6.0
    1480.12%Opera 8.0
    1570.10%Mozilla/4.6
    +

    + +Usage by Location for November 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 22 of 22 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1342451.20%292453.06%2894265.54%00.00%00.00%United States
    2283542.40%226141.03%869419.69%00.00%00.00%Belgium
    31301.94%931.69%15523.51%00.00%00.00%Germany
    4650.97%480.87%8041.82%00.00%00.00%Russian Federation
    5420.63%300.54%4851.10%00.00%00.00%Israel
    6360.54%270.49%5111.16%00.00%00.00%Moldova
    7270.40%270.49%310.07%00.00%00.00%Poland
    8250.37%210.38%3550.80%00.00%00.00%Denmark
    9180.27%140.25%2370.54%00.00%00.00%Latvia
    10180.27%140.25%2370.54%00.00%00.00%Ukraine
    11160.24%120.22%1990.45%00.00%00.00%Belarus
    12160.24%120.22%1990.45%00.00%00.00%Lithuania
    13120.18%100.18%10022.27%00.00%00.00%France
    1480.12%60.11%990.23%00.00%00.00%Bulgaria
    1560.09%50.09%860.19%00.00%00.00%New Zealand (Aotearoa)
    1620.03%00.00%10.00%00.00%00.00%Canada
    1720.03%20.04%470.11%00.00%00.00%Italy
    1810.01%10.02%2260.51%00.00%00.00%Unresolved/Unknown
    1910.01%10.02%10.00%00.00%00.00%Colombia
    2010.01%10.02%20.01%00.00%00.00%Czech Republic
    2110.01%10.02%2260.51%00.00%00.00%Great Britain (UK)
    2210.01%10.02%2260.51%00.00%00.00%Slovak Republic
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200612.html b/webalizer/usage_200612.html new file mode 100644 index 0000000..4144b96 --- /dev/null +++ b/webalizer/usage_200612.html @@ -0,0 +1,2994 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - December 2006 + + + +

    Usage Statistics for kauai

    + +Summary Period: December 2006
    +Generated 01-Jan-2007 06:26 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for December 2006
    Total Hits10203
    Total Files8320
    Total Pages1252
    Total Visits546
    Total kB Files96820
    Total kB In0
    Total kB Out0
    Total Unique Sites213
    Total Unique URLs639
    Total Unique Referrers48
    Total Unique Usernames1
    Total Unique User Agents39
    .Avg Max
    Hits per Hour13680
    Hits per Day329900
    Files per Day268835
    Pages per Day40106
    Visits per Day1734
    kB Files per Day312314476
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK8320
    Code 206 - Partial Content1
    Code 301 - Moved Permanently2
    Code 302 - Found692
    Code 304 - Not Modified436
    Code 401 - Unauthorized105
    Code 403 - Forbidden14
    Code 404 - Not Found631
    Code 500 - Internal Server Error2
    +

    + +Daily usage for December 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for December 2006
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11931.89%1591.91%302.40%132.38%146.57%9550.99%00.00%00.00%
    21591.56%1271.53%161.28%112.01%188.45%12531.29%00.00%00.00%
    33323.25%2663.20%403.19%173.11%167.51%17301.79%00.00%00.00%
    42412.36%1842.21%362.88%183.30%136.10%25422.63%00.00%00.00%
    53123.06%2332.80%393.12%203.66%136.10%13301.37%00.00%00.00%
    62812.75%2292.75%534.23%254.58%219.86%19862.05%00.00%00.00%
    79008.82%83510.04%796.31%193.48%157.04%82118.48%00.00%00.00%
    83403.33%2723.27%463.67%203.66%136.10%17721.83%00.00%00.00%
    92382.33%1972.37%383.04%162.93%146.57%16641.72%00.00%00.00%
    102732.68%2172.61%322.56%162.93%2210.33%21062.18%00.00%00.00%
    112092.05%1752.10%483.83%224.03%167.51%11141.15%00.00%00.00%
    123533.46%2893.47%433.43%193.48%198.92%20382.11%00.00%00.00%
    133943.86%3113.74%715.67%346.23%2210.33%22752.35%00.00%00.00%
    143773.69%2863.44%292.32%162.93%2310.80%47714.93%00.00%00.00%
    152562.51%2092.51%272.16%142.56%2310.80%31713.27%00.00%00.00%
    167317.16%6307.57%403.19%183.30%2612.21%1447614.95%00.00%00.00%
    172362.31%1692.03%403.19%183.30%2612.21%21482.22%00.00%00.00%
    183183.12%2633.16%362.88%213.85%2210.33%30833.18%00.00%00.00%
    194704.61%3744.50%433.43%254.58%2612.21%35733.69%00.00%00.00%
    203243.18%2743.29%352.80%224.03%3215.02%77788.03%00.00%00.00%
    212462.41%1862.24%332.64%173.11%136.10%20422.11%00.00%00.00%
    221791.75%1361.63%282.24%152.75%209.39%14991.55%00.00%00.00%
    232382.33%2082.50%322.56%122.20%104.69%14901.54%00.00%00.00%
    243253.19%2322.79%493.91%213.85%198.92%19992.06%00.00%00.00%
    252062.02%1551.86%252.00%152.75%219.86%18831.94%00.00%00.00%
    261401.37%1131.36%141.12%61.10%115.16%10141.05%00.00%00.00%
    272402.35%1942.33%312.48%142.56%219.86%26852.77%00.00%00.00%
    284314.22%3454.15%1068.47%173.11%146.57%33663.48%00.00%00.00%
    294574.48%3624.35%473.75%162.93%198.92%24282.51%00.00%00.00%
    305375.26%4795.76%514.07%213.85%209.39%78768.14%00.00%00.00%
    312672.62%2112.54%151.20%81.47%146.57%25632.65%00.00%00.00%
    +

    + +Hourly usage for December 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for December 2006
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    082662.61%72212.66%0241.92%7122052.28%000.00%000.00%
    1103113.05%82653.19%1362.88%10131373.24%000.00%000.00%
    251841.80%41501.80%0181.44%5015621.61%000.00%000.00%
    382522.47%61922.31%0252.00%8024792.56%000.00%000.00%
    482552.50%62022.43%0221.76%7924562.54%000.00%000.00%
    5103393.32%82613.14%1372.96%9128342.93%000.00%000.00%
    662052.01%51601.92%0181.44%7021582.23%000.00%000.00%
    792812.75%72222.67%1342.72%14645314.68%000.00%000.00%
    8144384.29%103273.93%1604.79%15949335.10%000.00%000.00%
    9134224.14%103203.85%2705.59%11034073.52%000.00%000.00%
    10154704.61%123904.69%2796.31%18657655.95%000.00%000.00%
    11103173.11%82583.10%1574.55%12538804.01%000.00%000.00%
    1293093.03%82543.05%1503.99%10632733.38%000.00%000.00%
    13134063.98%103163.80%2766.07%9027902.88%000.00%000.00%
    1472452.40%61982.38%1423.35%5717711.83%000.00%000.00%
    1544137413.47%40124614.98%2806.39%4711461315.09%000.00%000.00%
    16257957.79%227108.53%2695.51%5251627616.81%000.00%000.00%
    17175475.36%144405.29%1604.79%6921312.20%000.00%000.00%
    18134224.14%93073.69%2786.23%8024792.56%000.00%000.00%
    19175495.38%154665.60%2685.43%7724022.48%000.00%000.00%
    20226826.68%185686.83%1483.83%11234633.58%000.00%000.00%
    21123863.78%92873.45%2755.99%7623592.44%000.00%000.00%
    22134184.10%103283.94%2705.59%10833383.45%000.00%000.00%
    23103303.23%72322.79%1564.47%8325792.66%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 639 Total URLs
    #HitskB FkB InkB OutURL
    1265125.98%2845329.39%00.00%00.00%/phpBB2/viewtopic.php
    27567.41%1210812.51%00.00%00.00%/phpBB2/profile.php
    36876.73%72627.50%00.00%00.00%/phpBB2/
    44824.72%36113.73%00.00%00.00%/phpBB2/login.php
    52172.13%8840.91%00.00%00.00%/phpBB2/admin/admin_userlist.php
    61871.83%5060.52%00.00%00.00%/phpBB2/admin/
    71141.12%7080.73%00.00%00.00%/phpBB2/posting.php
    81000.98%10221.06%00.00%00.00%/phpBB2/viewforum.php
    9840.82%1330.14%00.00%00.00%/News/permalink.php
    10540.53%1530.16%00.00%00.00%/News/
    11430.42%350.04%00.00%00.00%/styles/header.css
    12380.37%40.00%00.00%00.00%/styles/main.css
    13370.36%2390.25%00.00%00.00%/Pics/logo-100.png
    14340.33%5230.54%00.00%00.00%/phpBB2/search.php
    15290.28%180.02%00.00%00.00%/phppages/foto.php
    16220.22%270.03%00.00%00.00%/favicon.ico
    17190.19%1600.16%00.00%00.00%/phpBB2/viewonline.php
    18160.16%20.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    19130.13%3700.38%00.00%00.00%/phpBB2/faq.php
    20130.13%1850.19%00.00%00.00%/phpBB2/memberlist.php
    21100.10%1150.12%00.00%00.00%/phpBB2/groupcp.php
    2280.08%30.00%00.00%00.00%/Pics/xml.png
    2380.08%320.03%00.00%00.00%/phppages/rss.php
    2470.07%20.00%00.00%00.00%/Pics/newsitem_ul.png
    2570.07%20.00%00.00%00.00%/Pics/newsitem_ur.png
    2670.07%1640.17%00.00%00.00%/phpbb2/viewtopic.php
    2770.07%50.01%00.00%00.00%/styles/newspage.css
    2860.06%10.00%00.00%00.00%/
    2960.06%200.02%00.00%00.00%/secured/Pictures/200607_The_Long_Swell/
    3050.05%70.01%00.00%00.00%/secured/Pictures/200612_Winterswell_Le_Rozel/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 639 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1265125.98%2845329.39%00.00%00.00%/phpBB2/viewtopic.php
    27567.41%1210812.51%00.00%00.00%/phpBB2/profile.php
    36876.73%72627.50%00.00%00.00%/phpBB2/
    44824.72%36113.73%00.00%00.00%/phpBB2/login.php
    520.02%26302.72%00.00%00.00%/Pictures/20060429_chello_extreme.png
    61000.98%10221.06%00.00%00.00%/phpBB2/viewforum.php
    72172.13%8840.91%00.00%00.00%/phpBB2/admin/admin_userlist.php
    81141.12%7080.73%00.00%00.00%/phpBB2/posting.php
    9340.33%5230.54%00.00%00.00%/phpBB2/search.php
    101871.83%5060.52%00.00%00.00%/phpBB2/admin/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    16876.73%31584.22%/phpBB2/
    2540.53%308.02%/News/
    31871.83%123.21%/phpBB2/admin/
    460.06%112.94%/secured/Pictures/200607_The_Long_Swell/
    530.03%30.80%/Pictures/20051112_COS_Garden_of_the_Gods/
    610.01%10.27%/Pictures/
    710.01%10.27%/Pictures/20050409_New_York/
    810.01%10.27%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Exit Pages
    #HitsVisitsURL
    16876.73%16180.10%/phpBB2/
    21871.83%199.45%/phpBB2/admin/
    3540.53%146.97%/News/
    430.03%21.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    560.06%21.00%/secured/Pictures/200607_The_Long_Swell/
    660.06%10.50%/
    710.01%10.50%/Pictures/
    810.01%10.50%/Pictures/20050409_New_York/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 213 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1232822.82%171720.64%1488415.37%00.00%00.00%13825.27%213.132.155.38
    29859.65%88410.63%58746.07%00.00%00.00%132.38%66.249.66.135
    39209.02%89810.79%27342.82%00.00%00.00%397.14%193.190.253.146
    44744.65%4465.36%35733.69%00.00%00.00%50.92%84.195.249.242
    54604.51%4165.00%1262913.04%00.00%00.00%10.18%172.18.222.78
    64053.97%3784.54%47464.90%00.00%00.00%6010.99%134.58.253.57
    73143.08%2863.44%17901.85%00.00%00.00%40.73%66.249.65.211
    83113.05%2813.38%17771.83%00.00%00.00%40.73%66.249.66.13
    93052.99%2803.37%18931.95%00.00%00.00%30.55%66.249.66.180
    102292.24%2082.50%13061.35%00.00%00.00%40.73%66.249.66.203
    112122.08%1792.15%10991.14%00.00%00.00%40.73%66.249.65.176
    121591.56%1541.85%10421.08%00.00%00.00%10.18%66.249.65.161
    131561.53%1461.75%25442.63%00.00%00.00%61.10%65.75.156.230
    141511.48%1401.68%9230.95%00.00%00.00%20.37%66.249.65.210
    151091.07%760.91%33873.50%00.00%00.00%10.18%65.55.210.72
    161000.98%340.41%5270.54%00.00%00.00%101.83%207.46.98.142
    17940.92%790.95%4920.51%00.00%00.00%00.00%66.249.65.243
    18930.91%730.88%12261.27%00.00%00.00%101.83%69.31.86.7
    19890.87%570.69%46834.84%00.00%00.00%142.56%65.55.213.102
    20870.85%500.60%23432.42%00.00%00.00%10.18%65.55.210.79
    21820.80%520.63%21302.20%00.00%00.00%50.92%65.55.210.71
    22740.73%350.42%12181.26%00.00%00.00%20.37%65.55.210.78
    23690.68%540.65%2290.24%00.00%00.00%50.92%205.214.62.2
    24680.67%270.32%5450.56%00.00%00.00%132.38%207.46.98.141
    25670.66%390.47%14211.47%00.00%00.00%00.00%65.55.210.73
    26660.65%600.72%3800.39%00.00%00.00%10.18%66.249.65.111
    27600.59%550.66%3680.38%00.00%00.00%00.00%66.249.66.178
    28580.57%360.43%12231.26%00.00%00.00%20.37%65.55.210.70
    29490.48%150.18%2800.29%00.00%00.00%61.10%207.46.98.143
    30450.44%240.29%560.06%00.00%00.00%10.18%81.245.193.187
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 213 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1232822.82%171720.64%1488415.37%00.00%00.00%13825.27%213.132.155.38
    24604.51%4165.00%1262913.04%00.00%00.00%10.18%172.18.222.78
    39859.65%88410.63%58746.07%00.00%00.00%132.38%66.249.66.135
    44053.97%3784.54%47464.90%00.00%00.00%6010.99%134.58.253.57
    5890.87%570.69%46834.84%00.00%00.00%142.56%65.55.213.102
    64744.65%4465.36%35733.69%00.00%00.00%50.92%84.195.249.242
    71091.07%760.91%33873.50%00.00%00.00%10.18%65.55.210.72
    89209.02%89810.79%27342.82%00.00%00.00%397.14%193.190.253.146
    91561.53%1461.75%25442.63%00.00%00.00%61.10%65.75.156.230
    10870.85%500.60%23432.42%00.00%00.00%10.18%65.55.210.79
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 26 of 48 Total Referrers
    #HitsReferrer
    15415.30%frederik.gotdns.org/profile.php
    22142.10%frederik.gotdns.org/phpBB2/index.php
    31691.66%vanrenterghem.biz/phppages/fotobiz.php
    41641.61%frederik.gotdns.org/phpBB2/login.php
    51531.50%frederik.gotdns.org/:1976/phpBB2/index.php
    61521.49%frederik.gotdns.org/phpBB2/profile.php
    71521.49%frederik.gotdns.org/viewforum.php
    8980.96%www.vanrenterghem.biz/
    9270.26%www.vanrenterghem.biz/secured/Pictures/index.shtml
    10160.16%vanrenterghem.biz/secured/Pictures/index.shtml
    11150.15%www.vanrenterghem.biz/phpBB2/index.php
    12130.13%vanrenterghem.biz/index.shtml
    1390.09%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1460.06%frederik.gotdns.org/login.php
    1540.04%frederik.gotdns.org/
    1640.04%vanrenterghem.biz/About/index.shtml
    1740.04%www.google.be/search
    1830.03%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    1930.03%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    2030.03%vanrenterghem.biz/Pictures/index.shtml
    2120.02%vanrenterghem.biz/Surfing/index.shtml
    2220.02%www.google.nl/search
    2320.02%www.vanrenterghem.biz/phppages/fotobiz.php
    2410.01%209.85.129.104/search
    2510.01%vanrenterghem.biz/
    2610.01%www.google.com/search
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1170816.74%166420.00%2933030.29%00.00%00.00%61.10%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 39 Total User Agents
    #HitsUser Agent
    1317431.11%Mozilla/5.0
    2292428.66%Googlebot/2.1
    3159315.61%Konqueror/3.5
    4109010.68%MSIE 6.0
    57777.62%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    6890.87%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7670.66%Yahoo! Slurp
    8490.48%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    9460.45%Opera 8.0
    10450.44%MSIE 7.0
    11410.40%Opera 9.0
    12360.35%MSIE 5.5
    13320.31%TurnitinBot/2.1 (http://www.turnitin.com/robot/crawlerinfo.html)
    14220.22%Opera 6.0
    15210.21%WebCapture 2.0
    +

    + +Usage by Location for December 2006

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 25 of 25 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1468545.92%378345.47%4610447.62%00.00%00.00%United States
    2426941.84%353842.52%2622027.08%00.00%00.00%Belgium
    34674.58%4215.06%1271513.13%00.00%00.00%Unresolved/Unknown
    42352.30%1662.00%28092.90%00.00%00.00%Germany
    52222.18%1641.97%27882.88%00.00%00.00%Russian Federation
    6500.49%380.46%6340.66%00.00%00.00%Moldova
    7410.40%310.37%7220.75%00.00%00.00%Pakistan
    8350.34%260.31%4500.46%00.00%00.00%Belarus
    9280.27%220.26%12001.24%00.00%00.00%France
    10260.25%240.29%2720.28%00.00%00.00%Netherlands
    11250.25%190.23%3010.31%00.00%00.00%Czech Republic
    12200.20%120.14%2070.21%00.00%00.00%Ukraine
    13160.16%120.14%1990.21%00.00%00.00%Latvia
    14160.16%120.14%1990.21%00.00%00.00%Poland
    15140.14%120.14%2510.26%00.00%00.00%Taiwan
    16100.10%80.10%1370.14%00.00%00.00%Estonia
    1790.09%60.07%1000.10%00.00%00.00%Canada
    1880.08%60.07%990.10%00.00%00.00%Argentina
    1980.08%60.07%990.10%00.00%00.00%Ecuador
    2080.08%60.07%990.10%00.00%00.00%Norway
    2140.04%40.05%840.09%00.00%00.00%Israel
    2230.03%10.01%2280.24%00.00%00.00%Spain
    2320.02%20.02%4510.47%00.00%00.00%Singapore
    2410.01%10.01%2260.23%00.00%00.00%Great Britain (UK)
    2510.01%10.01%2260.23%00.00%00.00%Romania
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200701.html b/webalizer/usage_200701.html new file mode 100644 index 0000000..137edc4 --- /dev/null +++ b/webalizer/usage_200701.html @@ -0,0 +1,3070 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - January 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: January 2007
    +Generated 01-Feb-2007 06:26 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for January 2007
    Total Hits8947
    Total Files6853
    Total Pages1057
    Total Visits571
    Total kB Files71588
    Total kB In0
    Total kB Out0
    Total Unique Sites310
    Total Unique URLs547
    Total Unique Referrers57
    Total Unique Usernames1
    Total Unique User Agents39
    .Avg Max
    Hits per Hour12458
    Hits per Day288684
    Files per Day221622
    Pages per Day3455
    Visits per Day1834
    kB Files per Day23099128
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK6853
    Code 206 - Partial Content4
    Code 302 - Found891
    Code 304 - Not Modified524
    Code 401 - Unauthorized46
    Code 403 - Forbidden27
    Code 404 - Not Found602
    +

    + +Daily usage for January 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for January 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11341.50%1141.66%90.85%61.05%61.94%7791.09%00.00%00.00%
    21761.97%1341.96%373.50%172.98%185.81%21453.00%00.00%00.00%
    32903.24%2153.14%484.54%295.08%3110.00%14141.97%00.00%00.00%
    43644.07%3034.42%494.64%264.55%258.06%28704.01%00.00%00.00%
    53223.60%2333.40%343.22%183.15%196.13%13681.91%00.00%00.00%
    61922.15%1452.12%232.18%142.45%216.77%11531.61%00.00%00.00%
    72182.44%1612.35%312.93%142.45%237.42%19582.74%00.00%00.00%
    81661.86%1111.62%373.50%193.33%278.71%13341.86%00.00%00.00%
    96847.65%6229.08%333.12%152.63%185.81%912812.75%00.00%00.00%
    102432.72%1842.68%423.97%254.38%4514.52%16992.37%00.00%00.00%
    115616.27%4176.08%464.35%223.85%3611.61%52837.38%00.00%00.00%
    121932.16%1512.20%161.51%122.10%144.52%11811.65%00.00%00.00%
    132342.62%1782.60%312.93%122.10%247.74%16962.37%00.00%00.00%
    142622.93%1412.06%383.60%193.33%247.74%25263.53%00.00%00.00%
    151601.79%1311.91%232.18%142.45%206.45%13271.85%00.00%00.00%
    161962.19%1171.71%363.41%183.15%216.77%12701.77%00.00%00.00%
    172272.54%1532.23%333.12%213.68%3210.32%13061.82%00.00%00.00%
    186267.00%5628.20%555.20%193.33%258.06%731010.21%00.00%00.00%
    191611.80%1111.62%262.46%132.28%216.77%24323.40%00.00%00.00%
    201411.58%891.30%191.80%111.93%165.16%7271.02%00.00%00.00%
    211501.68%981.43%252.37%111.93%165.16%12671.77%00.00%00.00%
    221942.17%1512.20%252.37%162.80%134.19%25643.58%00.00%00.00%
    233233.61%2483.62%393.69%183.15%154.84%11401.59%00.00%00.00%
    242522.82%1862.71%555.20%345.95%3110.00%27083.78%00.00%00.00%
    255626.28%5027.33%535.01%284.90%258.06%39905.57%00.00%00.00%
    263373.77%2934.28%444.16%254.38%3110.00%12761.78%00.00%00.00%
    271751.96%1261.84%171.61%101.75%92.90%26733.73%00.00%00.00%
    282392.67%1422.07%201.89%152.63%123.87%13541.89%00.00%00.00%
    293243.62%2253.28%383.60%193.33%144.52%11661.63%00.00%00.00%
    305436.07%3755.47%423.97%305.25%4915.81%21442.99%00.00%00.00%
    312983.33%2353.43%333.12%223.85%289.03%24003.35%00.00%00.00%
    +

    + +Hourly usage for January 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for January 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    072282.55%41492.17%1312.93%8927743.87%000.00%000.00%
    192823.15%62042.98%1585.49%5216222.27%000.00%000.00%
    292973.32%61872.73%1454.26%6620352.84%000.00%000.00%
    372232.49%51622.36%0151.42%4814932.09%000.00%000.00%
    472382.66%51612.35%0262.46%11234694.85%000.00%000.00%
    592803.13%61892.76%1434.07%11234764.86%000.00%000.00%
    672302.57%51652.41%0211.99%8225403.55%000.00%000.00%
    772302.57%51692.47%0141.32%5617482.44%000.00%000.00%
    862002.24%51602.33%0191.80%4614281.99%000.00%000.00%
    9123854.30%103244.73%1575.39%6118932.64%000.00%000.00%
    10144344.85%92904.23%2646.05%6219102.67%000.00%000.00%
    11165225.83%134105.98%2757.10%22168439.56%000.00%000.00%
    12278499.49%2374010.80%1565.30%320991813.85%000.00%000.00%
    1382743.06%72193.20%1423.97%6921342.98%000.00%000.00%
    14144354.86%103374.92%1605.68%6620332.84%000.00%000.00%
    15144485.01%123885.66%1484.54%9429124.07%000.00%000.00%
    16113614.03%103184.64%1343.22%4614322.00%000.00%000.00%
    17175476.11%113505.11%1484.54%7121993.07%000.00%000.00%
    18103243.62%72463.59%2635.96%7021593.02%000.00%000.00%
    19123894.35%82683.91%1474.45%5216192.26%000.00%000.00%
    2092813.14%61952.85%1383.60%6018752.62%000.00%000.00%
    2192873.21%72263.30%1474.45%5818122.53%000.00%000.00%
    22164975.55%123835.59%1434.07%9128283.95%000.00%000.00%
    23227067.89%196138.94%2635.96%304943713.18%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 547 Total URLs
    #HitskB FkB InkB OutURL
    1228725.56%1985327.73%00.00%00.00%/phpBB2/viewtopic.php
    27107.94%896312.52%00.00%00.00%/phpBB2/
    36006.71%41815.84%00.00%00.00%/phpBB2/login.php
    41141.27%11341.58%00.00%00.00%/phpBB2/profile.php
    51091.22%1770.25%00.00%00.00%/News/permalink.php
    61051.17%14221.99%00.00%00.00%/phpBB2/viewforum.php
    7780.87%5200.73%00.00%00.00%/phpBB2/posting.php
    8740.83%2110.29%00.00%00.00%/News/
    9570.64%500.07%00.00%00.00%/styles/header.css
    10560.63%3620.51%00.00%00.00%/Pics/logo-100.png
    11550.61%50.01%00.00%00.00%/styles/main.css
    12440.49%270.04%00.00%00.00%/phppages/foto.php
    13410.46%9041.26%00.00%00.00%/phpBB2/search.php
    14360.40%80.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    15240.27%290.04%00.00%00.00%/favicon.ico
    16230.26%2700.38%00.00%00.00%/phpBB2/memberlist.php
    17190.21%2150.30%00.00%00.00%/phpBB2/groupcp.php
    18170.19%1400.20%00.00%00.00%/phpBB2/viewonline.php
    19160.18%5300.74%00.00%00.00%/phpBB2/faq.php
    20150.17%30.00%00.00%00.00%/
    21120.13%50.01%00.00%00.00%/Pics/xml.png
    22120.13%510.07%00.00%00.00%/phppages/rss.php
    23100.11%20.00%00.00%00.00%/Pics/newsitem_ul.png
    24100.11%20.00%00.00%00.00%/Pics/newsitem_ur.png
    25100.11%70.01%00.00%00.00%/styles/newspage.css
    2690.10%240.03%00.00%00.00%/phpBB2/admin/
    2760.07%90.01%00.00%00.00%/secured/Pictures/200612_Winterswell_Le_Rozel/
    2850.06%220.03%00.00%00.00%/phpBB2/admin/admin_userlist.php
    2930.03%90.01%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    3030.03%50.01%00.00%00.00%/Linux/logitech.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 547 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1228725.56%1985327.73%00.00%00.00%/phpBB2/viewtopic.php
    27107.94%896312.52%00.00%00.00%/phpBB2/
    36006.71%41815.84%00.00%00.00%/phpBB2/login.php
    430.03%39455.51%00.00%00.00%/Pictures/20060429_chello_extreme.png
    51051.17%14221.99%00.00%00.00%/phpBB2/viewforum.php
    61141.27%11341.58%00.00%00.00%/phpBB2/profile.php
    7410.46%9041.26%00.00%00.00%/phpBB2/search.php
    8160.18%5300.74%00.00%00.00%/phpBB2/faq.php
    9780.87%5200.73%00.00%00.00%/phpBB2/posting.php
    10560.63%3620.51%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 10 Total Entry Pages
    #HitsVisitsURL
    17107.94%30076.14%/phpBB2/
    2740.83%5714.47%/News/
    320.02%194.82%/secured/Pictures/200607_The_Long_Swell/
    4150.17%102.54%/
    510.01%20.51%/phpbb2/
    620.02%20.51%http://frederik.gotdns.org/phpBB2/
    710.01%10.25%/Pictures/
    810.01%10.25%/Pictures/20021229_Serial_Console/
    920.02%10.25%/news/
    1060.07%10.25%/secured/Pictures/200612_Winterswell_Le_Rozel/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Exit Pages
    #HitsVisitsURL
    17107.94%15585.64%/phpBB2/
    2740.83%158.29%/News/
    320.02%63.31%/secured/Pictures/200607_The_Long_Swell/
    4150.17%21.10%/
    590.10%21.10%/phpBB2/admin/
    620.02%10.55%/secured/Pictures/20060531_Surfing_Bredene/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 310 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    193510.45%92013.42%1000813.98%00.00%00.00%539.28%134.58.253.57
    290210.08%77611.32%773710.81%00.00%00.00%101.75%66.249.66.38
    38839.87%6379.30%826411.54%00.00%00.00%9115.94%213.132.155.38
    47178.01%6559.56%17112.39%00.00%00.00%478.23%193.190.253.146
    54955.53%3795.53%6240.87%00.00%00.00%61.05%84.195.125.65
    64585.12%3975.79%25973.63%00.00%00.00%20.35%66.249.65.135
    74204.69%3485.08%22613.16%00.00%00.00%40.70%66.249.65.172
    83133.50%2774.04%17942.51%00.00%00.00%20.35%66.249.65.174
    93133.50%2623.82%16142.25%00.00%00.00%81.40%66.249.72.34
    102823.15%2533.69%15992.23%00.00%00.00%61.05%66.249.65.176
    112442.73%2083.04%13161.84%00.00%00.00%10.18%66.249.66.140
    121501.68%971.42%3320.46%00.00%00.00%10.18%80.39.119.163
    131201.34%781.14%64208.97%00.00%00.00%223.85%65.55.213.102
    141031.15%390.57%7681.07%00.00%00.00%81.40%207.46.98.143
    15830.93%320.47%10211.43%00.00%00.00%30.53%65.55.210.79
    16760.85%250.36%8331.16%00.00%00.00%50.88%65.55.210.80
    17710.79%691.01%1020.14%00.00%00.00%10.18%81.82.104.233
    18620.69%270.39%6980.98%00.00%00.00%40.70%65.55.210.73
    19570.64%470.69%3130.44%00.00%00.00%00.00%66.249.66.136
    20560.63%310.45%430.06%00.00%00.00%00.00%62.79.119.246
    21500.56%280.41%19092.67%00.00%00.00%111.93%65.55.213.101
    22480.54%260.38%1440.20%00.00%00.00%10.18%80.201.87.2
    23470.53%460.67%2270.32%00.00%00.00%10.18%83.98.248.16
    24460.51%150.22%3270.46%00.00%00.00%50.88%207.46.98.144
    25450.50%240.35%4790.67%00.00%00.00%111.93%207.46.98.141
    26450.50%200.29%4640.65%00.00%00.00%61.05%207.46.98.142
    27450.50%230.34%7131.00%00.00%00.00%10.18%65.55.210.72
    28420.47%300.44%5460.76%00.00%00.00%71.23%64.242.88.60
    29420.47%420.61%430.06%00.00%00.00%20.35%84.195.249.242
    30410.46%300.44%1590.22%00.00%00.00%00.00%66.249.66.195
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 310 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    193510.45%92013.42%1000813.98%00.00%00.00%539.28%134.58.253.57
    28839.87%6379.30%826411.54%00.00%00.00%9115.94%213.132.155.38
    390210.08%77611.32%773710.81%00.00%00.00%101.75%66.249.66.38
    41201.34%781.14%64208.97%00.00%00.00%223.85%65.55.213.102
    54585.12%3975.79%25973.63%00.00%00.00%20.35%66.249.65.135
    64204.69%3485.08%22613.16%00.00%00.00%40.70%66.249.65.172
    7500.56%280.41%19092.67%00.00%00.00%111.93%65.55.213.101
    83133.50%2774.04%17942.51%00.00%00.00%20.35%66.249.65.174
    97178.01%6559.56%17112.39%00.00%00.00%478.23%193.190.253.146
    103133.50%2623.82%16142.25%00.00%00.00%81.40%66.249.72.34
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 57 Total Referrers
    #HitsReferrer
    13083.44%frederik.gotdns.org/phpBB2/index.php
    21601.79%frederik.gotdns.org/phpBB2/login.php
    31601.79%frederik.gotdns.org/viewforum.php
    41541.72%frederik.gotdns.org/profile.php
    51481.65%frederik.gotdns.org/:1976/phpBB2/index.php
    61191.33%www.vanrenterghem.biz/
    7230.26%vanrenterghem.biz/secured/Pictures/index.shtml
    8150.17%vanrenterghem.biz/index.shtml
    9120.13%www.google.be/search
    10110.12%frederik.gotdns.org/
    1190.10%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1270.08%www.vanrenterghem.biz/phpBB2/index.php
    1350.06%vanrenterghem.biz/About/index.shtml
    1440.04%frederik.gotdns.org/login.php
    1540.04%vanrenterghem.biz/Pictures/index.shtml
    1640.04%vanrenterghem.biz/Surfing/index.shtml
    1720.02%frederik.gotdns.org/phpBB2/indeforum.php
    1820.02%frederik.gotdns.org/phpbb2/indeforum.php
    1920.02%vanrenterghem.biz/News/index.php
    2020.02%vanrenterghem.biz/phpBB2/index.php
    2120.02%www.google.se/search
    2210.01%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    2310.01%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    2410.01%frederik.gotdns.org/phpBB2/
    2510.01%frederik.gotdns.org/phpbb2/index.php
    2610.01%images.google.com.pe/imgres
    2710.01%images.google.nl/imgres
    2810.01%search.msn.com/results.aspx
    2910.01%search.msn.no/results.aspx
    3010.01%vanrenterghem.biz/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    192710.36%92713.53%1568121.91%00.00%00.00%71.23%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 39 Total User Agents
    #HitsUser Agent
    1304033.98%Googlebot/2.1
    2219424.52%Mozilla/5.0
    3165618.51%MSIE 6.0
    46527.29%Konqueror/3.5
    56106.82%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    61852.07%Yahoo! Slurp
    71701.90%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    8750.84%MSIE 7.0
    9420.47%http://www.W
    10410.46%Opera 8.0
    11390.44%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    12310.35%Opera 9.0
    13230.26%MSIE 5.5
    14150.17%Apache/2.2.3 (Debian) PHP/4.4.4-8 (internal dummy connection)
    15140.16%Googlebot-Image/1.0
    +

    + +Usage by Location for January 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 34 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1450850.39%333948.72%4132357.72%00.00%00.00%United States
    2348838.99%295943.18%2162630.21%00.00%00.00%Belgium
    31501.68%971.42%3320.46%00.00%00.00%Spain
    41481.65%761.11%12551.75%00.00%00.00%Russian Federation
    51181.32%670.98%14061.96%00.00%00.00%Germany
    61071.20%580.85%9811.37%00.00%00.00%Unresolved/Unknown
    7650.73%570.83%8141.14%00.00%00.00%Netherlands
    8560.63%310.45%430.06%00.00%00.00%Denmark
    9540.60%270.39%4830.67%00.00%00.00%Poland
    10360.40%270.39%1820.25%00.00%00.00%Norway
    11360.40%180.26%3220.45%00.00%00.00%Ukraine
    12300.34%150.22%2680.37%00.00%00.00%Latvia
    13230.26%120.18%2130.30%00.00%00.00%Estonia
    14230.26%110.16%3900.55%00.00%00.00%Great Britain (UK)
    15200.22%110.16%1940.27%00.00%00.00%Moldova
    16140.16%90.13%5220.73%00.00%00.00%France
    17110.12%90.13%350.05%00.00%00.00%Canada
    1870.08%40.06%590.08%00.00%00.00%Argentina
    1970.08%10.01%170.02%00.00%00.00%Taiwan
    2060.07%50.07%350.05%00.00%00.00%Brazil
    2160.07%30.04%540.07%00.00%00.00%Belarus
    2260.07%60.09%280.04%00.00%00.00%Korea (South)
    2360.07%30.04%540.07%00.00%00.00%Sweden
    2450.06%00.00%30.00%00.00%00.00%Malaysia
    2530.03%20.03%90.01%00.00%00.00%Czech Republic
    2620.02%20.03%100.01%00.00%00.00%Italy
    2720.02%10.01%140.02%00.00%00.00%Japan
    2820.02%20.03%4510.63%00.00%00.00%Peru
    2920.02%10.01%50.01%00.00%00.00%Portugal
    3020.02%20.03%100.01%00.00%00.00%Romania
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200702.html b/webalizer/usage_200702.html new file mode 100644 index 0000000..4fb6860 --- /dev/null +++ b/webalizer/usage_200702.html @@ -0,0 +1,3009 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - February 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: February 2007
    +Generated 01-Mar-2007 06:26 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for February 2007
    Total Hits10195
    Total Files8016
    Total Pages791
    Total Visits413
    Total kB Files103366
    Total kB In0
    Total kB Out0
    Total Unique Sites233
    Total Unique URLs826
    Total Unique Referrers46
    Total Unique Usernames1
    Total Unique User Agents37
    .Avg Max
    Hits per Hour15512
    Hits per Day3641038
    Files per Day286873
    Pages per Day2851
    Visits per Day1424
    kB Files per Day369213751
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK8016
    Code 206 - Partial Content3
    Code 301 - Moved Permanently1
    Code 302 - Found682
    Code 304 - Not Modified637
    Code 401 - Unauthorized78
    Code 403 - Forbidden45
    Code 404 - Not Found729
    Code 500 - Internal Server Error4
    +

    + +Daily usage for February 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for February 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    12472.42%1942.42%253.16%143.39%2611.16%17681.71%00.00%00.00%
    21881.84%1241.55%415.18%235.57%3213.73%27532.66%00.00%00.00%
    31341.31%981.22%81.01%71.69%187.73%16271.57%00.00%00.00%
    42212.17%1561.95%374.68%194.60%2711.59%18031.74%00.00%00.00%
    52982.92%2352.93%364.55%174.12%229.44%11731.14%00.00%00.00%
    62382.33%2012.51%172.15%102.42%166.87%23992.32%00.00%00.00%
    71661.63%901.12%354.42%204.84%3213.73%9190.89%00.00%00.00%
    83343.28%2302.87%516.45%245.81%3213.73%21042.04%00.00%00.00%
    91141.12%801.00%192.40%133.15%166.87%8780.85%00.00%00.00%
    101881.84%1561.95%182.28%112.66%187.73%10301.00%00.00%00.00%
    11103810.18%87310.89%455.69%215.08%3314.16%1269212.28%00.00%00.00%
    121791.76%1421.77%182.28%81.94%125.15%11741.14%00.00%00.00%
    132462.41%2012.51%344.30%153.63%177.30%11761.14%00.00%00.00%
    145665.55%4775.95%394.93%235.57%2410.30%49314.77%00.00%00.00%
    157897.74%7279.07%384.80%174.12%2510.73%1375113.30%00.00%00.00%
    163953.87%2943.67%313.92%163.87%177.30%44824.34%00.00%00.00%
    175565.45%4135.15%243.03%102.42%208.58%89198.63%00.00%00.00%
    183593.52%2342.92%253.16%122.91%198.15%74037.16%00.00%00.00%
    193463.39%2513.13%364.55%133.15%187.73%27662.68%00.00%00.00%
    203443.37%2613.26%334.17%174.12%239.87%31023.00%00.00%00.00%
    215305.20%4876.08%222.78%153.63%198.15%45064.36%00.00%00.00%
    229028.85%6237.77%243.03%153.63%156.44%37163.60%00.00%00.00%
    232382.33%2032.53%222.78%122.91%187.73%11191.08%00.00%00.00%
    241221.20%931.16%111.39%51.21%125.15%7390.71%00.00%00.00%
    254514.42%3514.38%263.29%143.39%177.30%29652.87%00.00%00.00%
    262892.83%2513.13%334.17%215.08%166.87%25862.50%00.00%00.00%
    271271.25%961.20%172.15%92.18%146.01%10851.05%00.00%00.00%
    285905.79%4755.93%263.29%133.15%187.73%98029.48%00.00%00.00%
    +

    + +Hourly usage for February 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for February 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    082422.37%51662.07%1394.93%11532143.11%000.00%000.00%
    161941.90%51471.83%0273.41%5415131.46%000.00%000.00%
    272072.03%51602.00%0172.15%6317521.70%000.00%000.00%
    382512.46%61862.32%1303.79%7821772.11%000.00%000.00%
    472192.15%51571.96%0232.91%5615611.51%000.00%000.00%
    571981.94%51591.98%0202.53%5314931.44%000.00%000.00%
    672102.06%61732.16%0202.53%6618481.79%000.00%000.00%
    7113343.28%92523.14%1313.92%16646574.51%000.00%000.00%
    892562.51%72012.51%0263.29%17849764.81%000.00%000.00%
    9195515.40%133824.77%1516.45%22964056.20%000.00%000.00%
    10154384.30%123364.19%1364.55%20256575.47%000.00%000.00%
    11277777.62%236528.13%1425.31%23666066.39%000.00%000.00%
    1239110010.79%277809.73%1303.79%34596719.36%000.00%000.00%
    13113263.20%92683.34%1293.67%12133953.28%000.00%000.00%
    14154294.21%113264.07%1435.44%10930512.95%000.00%000.00%
    15133683.61%102943.67%1374.68%11632393.13%000.00%000.00%
    16277797.64%246998.72%1354.42%4161166211.28%000.00%000.00%
    17226226.10%174846.04%1475.94%22262276.02%000.00%000.00%
    18144154.07%123534.40%0202.53%10128252.73%000.00%000.00%
    19339509.32%3084810.58%2577.21%35198199.50%000.00%000.00%
    20174894.80%133754.68%1425.31%18953025.13%000.00%000.00%
    21102962.90%82272.83%0232.91%5615651.51%000.00%000.00%
    2292642.59%61822.27%1334.17%8924842.40%000.00%000.00%
    23102802.75%72092.61%1334.17%8122682.19%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 826 Total URLs
    #HitskB FkB InkB OutURL
    1344933.83%4347342.06%00.00%00.00%/phpBB2/viewtopic.php
    24494.40%64726.26%00.00%00.00%/phpBB2/
    33643.57%27502.66%00.00%00.00%/phpBB2/login.php
    41491.46%1210.12%00.00%00.00%/phppages/foto.php
    51361.33%15781.53%00.00%00.00%/phpBB2/viewforum.php
    6950.93%1800.17%00.00%00.00%/News/permalink.php
    7570.56%6670.65%00.00%00.00%/phpBB2/profile.php
    8500.49%11921.15%00.00%00.00%/phpBB2/search.php
    9490.48%440.04%00.00%00.00%/styles/header.css
    10470.46%1510.15%00.00%00.00%/News/
    11460.45%50.00%00.00%00.00%/styles/main.css
    12450.44%3090.30%00.00%00.00%/Pics/logo-100.png
    13280.27%70.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    14260.26%1870.18%00.00%00.00%/phpBB2/posting.php
    15240.24%2980.29%00.00%00.00%/secured/Pictures/20070211_Shooters/
    16210.21%220.02%00.00%00.00%/favicon.ico
    17200.20%440.04%00.00%00.00%/Pictures/20070206_Domburg/
    18140.14%1590.15%00.00%00.00%/phpBB2/viewonline.php
    19130.13%1890.18%00.00%00.00%/phpBB2/groupcp.php
    20130.13%1670.16%00.00%00.00%/phpBB2/memberlist.php
    21120.12%3660.35%00.00%00.00%/phpBB2/faq.php
    22110.11%490.05%00.00%00.00%/phppages/rss.php
    23100.10%90.01%00.00%00.00%/secured/Pictures/20070212_Blauwe_maandag/
    2470.07%30.00%00.00%00.00%/Pics/xml.png
    2560.06%10.00%00.00%00.00%/Pics/newsitem_ul.png
    2660.06%10.00%00.00%00.00%/Pics/newsitem_ur.png
    2760.06%90.01%00.00%00.00%/secured/Pictures/200612_Winterswell_Le_Rozel/
    2860.06%40.00%00.00%00.00%/styles/newspage.css
    2940.04%10.00%00.00%00.00%/
    3030.03%100.01%00.00%00.00%/secured/Pictures/200607_The_Long_Swell/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 826 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1344933.83%4347342.06%00.00%00.00%/phpBB2/viewtopic.php
    24494.40%64726.26%00.00%00.00%/phpBB2/
    33643.57%27502.66%00.00%00.00%/phpBB2/login.php
    420.02%26302.54%00.00%00.00%/Pictures/20060429_chello_extreme.png
    51361.33%15781.53%00.00%00.00%/phpBB2/viewforum.php
    6500.49%11921.15%00.00%00.00%/phpBB2/search.php
    7570.56%6670.65%00.00%00.00%/phpBB2/profile.php
    8120.12%3660.35%00.00%00.00%/phpBB2/faq.php
    9450.44%3090.30%00.00%00.00%/Pics/logo-100.png
    10240.24%2980.29%00.00%00.00%/secured/Pictures/20070211_Shooters/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 12 Total Entry Pages
    #HitsVisitsURL
    14494.40%17766.29%/phpBB2/
    2470.46%2810.49%/News/
    340.04%228.24%/
    430.03%165.99%/secured/Pictures/200607_The_Long_Swell/
    5200.20%124.49%/Pictures/20070206_Domburg/
    6240.24%31.12%/secured/Pictures/20070211_Shooters/
    720.02%20.75%/Pictures/200505_Amsterdam/
    8100.10%20.75%/secured/Pictures/20070212_Blauwe_maandag/
    920.02%20.75%http://frederik.gotdns.org/phpBB2/
    1010.01%10.37%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Exit Pages
    #HitsVisitsURL
    14494.40%6872.34%/phpBB2/
    2470.46%99.57%/News/
    340.04%55.32%/
    430.03%44.26%/secured/Pictures/200607_The_Long_Swell/
    5200.20%33.19%/Pictures/20070206_Domburg/
    6240.24%22.13%/secured/Pictures/20070211_Shooters/
    720.02%11.06%/Pictures/200505_Amsterdam/
    810.01%11.06%/secured/Pictures/20060531_Surfing_Bredene/
    9100.10%11.06%/secured/Pictures/20070212_Blauwe_maandag/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 233 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1127012.46%103712.94%96209.31%00.00%00.00%112.66%84.195.125.65
    2121611.93%111913.96%73887.15%00.00%00.00%112.66%66.249.65.225
    3111610.95%7329.13%1096510.61%00.00%00.00%6716.22%213.132.155.38
    47507.36%7138.89%48214.66%00.00%00.00%30.73%66.249.72.6
    56786.65%6107.61%39853.86%00.00%00.00%40.97%66.249.65.116
    66546.41%6458.05%43944.25%00.00%00.00%235.57%193.190.253.146
    75105.00%4595.73%30402.94%00.00%00.00%71.69%66.249.66.20
    82872.82%2342.92%92648.96%00.00%00.00%245.81%65.55.213.102
    92332.29%2232.78%15461.50%00.00%00.00%20.48%66.249.65.109
    102322.28%1652.06%36903.57%00.00%00.00%20.48%213.132.138.9
    111981.94%1551.93%21472.08%00.00%00.00%20.48%84.195.188.48
    121541.51%1011.26%39273.80%00.00%00.00%122.91%65.55.210.79
    131271.25%891.11%10641.03%00.00%00.00%10.24%80.200.139.70
    141181.16%821.02%30042.91%00.00%00.00%81.94%65.55.210.80
    151171.15%720.90%24522.37%00.00%00.00%61.45%65.55.210.81
    161131.11%730.91%26082.52%00.00%00.00%102.42%65.55.210.73
    171131.11%851.06%31353.03%00.00%00.00%81.94%65.55.210.78
    181121.10%480.60%8070.78%00.00%00.00%81.94%207.46.98.143
    191081.06%991.24%19421.88%00.00%00.00%10.24%194.7.49.250
    201051.03%941.17%19491.89%00.00%00.00%10.24%217.136.251.138
    211021.00%590.74%23902.31%00.00%00.00%81.94%65.55.210.82
    221010.99%400.50%9080.88%00.00%00.00%153.63%207.46.98.141
    23920.90%821.02%5100.49%00.00%00.00%20.48%66.249.72.44
    24870.85%190.24%4180.40%00.00%00.00%40.97%207.46.98.144
    25750.74%120.15%5560.54%00.00%00.00%10.24%81.244.217.149
    26670.66%650.81%1170.11%00.00%00.00%10.24%81.241.154.243
    27630.62%370.46%17011.65%00.00%00.00%00.00%65.55.210.83
    28560.55%440.55%14531.41%00.00%00.00%10.24%65.55.210.72
    29370.36%300.37%39273.80%00.00%00.00%00.00%65.55.213.101
    30350.34%320.40%6260.61%00.00%00.00%10.24%87.244.187.21
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 233 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1111610.95%7329.13%1096510.61%00.00%00.00%6716.22%213.132.155.38
    2127012.46%103712.94%96209.31%00.00%00.00%112.66%84.195.125.65
    32872.82%2342.92%92648.96%00.00%00.00%245.81%65.55.213.102
    4121611.93%111913.96%73887.15%00.00%00.00%112.66%66.249.65.225
    57507.36%7138.89%48214.66%00.00%00.00%30.73%66.249.72.6
    66546.41%6458.05%43944.25%00.00%00.00%235.57%193.190.253.146
    76786.65%6107.61%39853.86%00.00%00.00%40.97%66.249.65.116
    81541.51%1011.26%39273.80%00.00%00.00%122.91%65.55.210.79
    9370.36%300.37%39273.80%00.00%00.00%00.00%65.55.213.101
    102322.28%1652.06%36903.57%00.00%00.00%20.48%213.132.138.9
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 23 of 46 Total Referrers
    #HitsReferrer
    12492.44%frederik.gotdns.org/phpBB2/index.php
    21271.25%frederik.gotdns.org/phpBB2/login.php
    31251.23%frederik.gotdns.org/viewforum.php
    41241.22%frederik.gotdns.org/profile.php
    51111.09%frederik.gotdns.org/:1976/phpBB2/index.php
    6600.59%vanrenterghem.biz/phppages/fotobiz.php
    7510.50%vanrenterghem.biz/secured/Pictures/index.shtml
    8300.29%frederik.gotdns.org/
    9190.19%www.vanrenterghem.biz/
    10150.15%www.vanrenterghem.biz/phpBB2/index.php
    11150.15%www.vanrenterghem.biz/secured/Pictures/index.shtml
    12100.10%www.google.be/search
    1370.07%vanrenterghem.biz/About/index.shtml
    1450.05%frederik.gotdns.org/phpBB2/indeforum.php
    1550.05%vanrenterghem.biz/index.shtml
    1650.05%www.vanrenterghem.biz/phppages/fotobiz.php
    1740.04%frederik.gotdns.org/phpbb2/indeforum.php
    1840.04%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1920.02%frederik.gotdns.org/login.php
    2010.01%frederik.gotdns.org/phpBB2/profile.php
    2110.01%vanrenterghem.biz/Pictures/index.shtml
    2210.01%vanrenterghem.biz/Surfing/index.shtml
    2310.01%www.google.pl/search
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1205920.20%182922.82%3263931.58%00.00%00.00%153.63%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 37 Total User Agents
    #HitsUser Agent
    1347934.12%Googlebot/2.1
    2226922.26%MSIE 6.0
    3123012.06%Mozilla/5.0
    4115511.33%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    59138.96%Konqueror/3.5
    64834.74%MSIE 7.0
    73243.18%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    8740.73%Yahoo! Slurp
    9300.29%MSIE 5.5
    10290.28%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    11250.25%Opera 7.2
    12130.13%MSIE 5.0
    13130.13%Opera 7.0
    14130.13%Opera 8.0
    15130.13%Opera 9.0
    +

    + +Usage by Location for February 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 35 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1541553.11%436054.39%6139159.39%00.00%00.00%United States
    2420841.28%334641.74%3737736.16%00.00%00.00%Belgium
    31321.29%700.87%12291.19%00.00%00.00%Russian Federation
    4920.90%560.70%5750.56%00.00%00.00%Germany
    5910.89%450.56%8040.78%00.00%00.00%Unresolved/Unknown
    6360.35%180.22%3220.31%00.00%00.00%Latvia
    7340.33%310.39%880.08%00.00%00.00%Sweden
    8290.28%150.19%2670.26%00.00%00.00%Great Britain (UK)
    9270.26%270.34%260.03%00.00%00.00%Switzerland
    10190.19%90.11%1620.16%00.00%00.00%Ukraine
    11180.18%90.11%1610.16%00.00%00.00%Moldova
    12130.13%60.07%1070.10%00.00%00.00%Argentina
    13120.12%60.07%1070.10%00.00%00.00%Estonia
    1480.08%50.06%580.06%00.00%00.00%Poland
    1560.06%30.04%540.05%00.00%00.00%Belarus
    1660.06%30.04%540.05%00.00%00.00%Netherlands
    1760.06%30.04%540.05%00.00%00.00%Norway
    1860.06%30.04%540.05%00.00%00.00%Romania
    1950.05%00.00%00.00%00.00%00.00%Malaysia
    2040.04%00.00%00.00%00.00%00.00%United Arab Emirates
    2140.04%00.00%00.00%00.00%00.00%Brazil
    2240.04%00.00%00.00%00.00%00.00%Korea (South)
    2330.03%10.01%60.01%00.00%00.00%France
    2420.02%10.01%190.02%00.00%00.00%Spain
    2520.02%00.00%00.00%00.00%00.00%Hong Kong
    2620.02%10.01%2260.22%00.00%00.00%Italy
    2720.02%00.00%00.00%00.00%00.00%Mexico
    2820.02%00.00%00.00%00.00%00.00%Saudi Arabia
    2910.01%00.00%00.00%00.00%00.00%Colombia
    3010.01%00.00%10.00%00.00%00.00%Czech Republic
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200703.html b/webalizer/usage_200703.html new file mode 100644 index 0000000..7474a1b --- /dev/null +++ b/webalizer/usage_200703.html @@ -0,0 +1,3055 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - March 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: March 2007
    +Generated 01-Apr-2007 06:26 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for March 2007
    Total Hits9584
    Total Files7867
    Total Pages775
    Total Visits451
    Total kB Files92299
    Total kB In0
    Total kB Out0
    Total Unique Sites216
    Total Unique URLs587
    Total Unique Referrers50
    Total Unique Usernames1
    Total Unique User Agents32
    .Avg Max
    Hits per Hour12348
    Hits per Day309774
    Files per Day253717
    Pages per Day2551
    Visits per Day1428
    kB Files per Day29779927
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK7867
    Code 302 - Found536
    Code 304 - Not Modified340
    Code 401 - Unauthorized84
    Code 403 - Forbidden52
    Code 404 - Not Found700
    Code 406 - Not Acceptable5
    +

    + +Daily usage for March 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for March 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11331.39%1041.32%131.68%81.77%188.33%11051.20%00.00%00.00%
    27748.08%5476.95%222.84%112.44%219.72%992710.76%00.00%00.00%
    33583.74%2993.80%162.06%112.44%188.33%24392.64%00.00%00.00%
    43854.02%3514.46%182.32%102.22%188.33%35243.82%00.00%00.00%
    52552.66%2052.61%192.45%132.88%167.41%30173.27%00.00%00.00%
    67547.87%7179.11%314.00%102.22%167.41%81798.86%00.00%00.00%
    72512.62%1882.39%293.74%204.43%2210.19%21452.32%00.00%00.00%
    84104.28%3734.74%162.06%112.44%167.41%31713.44%00.00%00.00%
    92182.27%1822.31%243.10%122.66%198.80%14801.60%00.00%00.00%
    102152.24%1612.05%243.10%122.66%188.33%14161.53%00.00%00.00%
    112492.60%2202.80%141.81%102.22%146.48%52545.69%00.00%00.00%
    123033.16%2733.47%81.03%61.33%83.70%20932.27%00.00%00.00%
    133914.08%2873.65%232.97%122.66%198.80%16711.81%00.00%00.00%
    142522.63%2182.77%202.58%122.66%209.26%18942.05%00.00%00.00%
    153243.38%2813.57%243.10%153.33%2612.04%22502.44%00.00%00.00%
    162802.92%2022.57%344.39%214.66%2411.11%29723.22%00.00%00.00%
    173924.09%3384.30%182.32%112.44%219.72%58866.38%00.00%00.00%
    181561.63%1231.56%202.58%112.44%146.48%11601.26%00.00%00.00%
    193934.10%3474.41%303.87%163.55%2310.65%27222.95%00.00%00.00%
    202462.57%2082.64%212.71%112.44%177.87%34423.73%00.00%00.00%
    212722.84%2072.63%253.23%153.33%219.72%21402.32%00.00%00.00%
    222852.97%2352.99%293.74%173.77%2612.04%16331.77%00.00%00.00%
    232672.79%2122.69%314.00%153.33%2411.11%30493.30%00.00%00.00%
    241741.82%1261.60%212.71%153.33%188.33%11321.23%00.00%00.00%
    252602.71%2182.77%253.23%143.10%198.80%34873.78%00.00%00.00%
    262122.21%1592.02%314.00%163.55%209.26%14521.57%00.00%00.00%
    271841.92%1391.77%273.48%173.77%198.80%13901.51%00.00%00.00%
    283733.89%3174.03%374.77%255.54%2411.11%46875.08%00.00%00.00%
    292572.68%1972.50%384.90%265.76%219.72%23102.50%00.00%00.00%
    303263.40%2573.27%516.58%286.21%2511.57%31513.41%00.00%00.00%
    312352.45%1762.24%364.65%204.43%219.72%21202.30%00.00%00.00%
    +

    + +Hourly usage for March 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for March 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    072202.30%51672.12%1314.00%6620332.20%000.00%000.00%
    182632.74%62152.73%0303.87%12438484.17%000.00%000.00%
    282672.79%62042.59%0293.74%7824222.62%000.00%000.00%
    392913.04%82493.17%0202.58%6219082.07%000.00%000.00%
    4103123.26%82663.38%0182.32%8626672.89%000.00%000.00%
    5103203.34%82543.23%1384.90%8426082.83%000.00%000.00%
    692802.92%72252.86%0141.81%6520172.19%000.00%000.00%
    7103123.26%72453.11%0243.10%7322552.44%000.00%000.00%
    8103253.39%82683.41%0172.19%6520252.19%000.00%000.00%
    9237187.49%206428.16%1354.52%22068057.37%000.00%000.00%
    10165125.34%144455.66%0253.23%16450925.52%000.00%000.00%
    11123823.99%103314.21%0293.74%11736363.94%000.00%000.00%
    12134134.31%113454.39%1435.55%20062076.72%000.00%000.00%
    13216717.00%144395.58%1445.68%19560346.54%000.00%000.00%
    14165105.32%144575.81%1405.16%19761006.61%000.00%000.00%
    15123783.94%103154.00%1354.52%10532403.51%000.00%000.00%
    16185695.94%165046.41%1465.94%27083729.07%000.00%000.00%
    17134094.27%113434.36%1354.52%13541714.52%000.00%000.00%
    18154825.03%134095.20%1425.42%10733293.61%000.00%000.00%
    19237137.44%196137.79%1546.97%15949145.32%000.00%000.00%
    20103313.45%82653.37%0202.58%14444574.83%000.00%000.00%
    21123884.05%92863.64%1425.42%13240814.42%000.00%000.00%
    2292913.04%72172.76%1415.29%6520292.20%000.00%000.00%
    2372272.37%51632.07%0232.97%6620492.22%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 587 Total URLs
    #HitskB FkB InkB OutURL
    1468548.88%4777551.76%00.00%00.00%/phpBB2/viewtopic.php
    23874.04%60946.60%00.00%00.00%/phpBB2/
    32442.55%19472.11%00.00%00.00%/phpBB2/login.php
    42182.27%3160.34%00.00%00.00%/News/permalink.php
    51131.18%15431.67%00.00%00.00%/phpBB2/viewforum.php
    6890.93%2440.26%00.00%00.00%/News/
    7700.73%7590.82%00.00%00.00%/phpBB2/profile.php
    8700.73%960.10%00.00%00.00%/phppages/foto.php
    9550.57%11861.28%00.00%00.00%/phpBB2/search.php
    10310.32%260.03%00.00%00.00%/styles/header.css
    11300.31%1940.21%00.00%00.00%/Pics/logo-100.png
    12300.31%30.00%00.00%00.00%/styles/main.css
    13280.29%3780.41%00.00%00.00%/phpBB2/memberlist.php
    14230.24%6250.68%00.00%00.00%/phpBB2/faq.php
    15180.19%3280.36%00.00%00.00%/secured/Pictures/20070217_Parijs/
    16170.18%40.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    17160.17%1570.17%00.00%00.00%/phpBB2/viewonline.php
    18140.15%510.05%00.00%00.00%/Pictures/20070206_Domburg/
    19130.14%1480.16%00.00%00.00%/phpBB2/groupcp.php
    20120.13%120.01%00.00%00.00%/favicon.ico
    21110.11%50.01%00.00%00.00%/Pics/xml.png
    22110.11%150.02%00.00%00.00%/phppages/fotobiz.php
    23100.10%70.01%00.00%00.00%/styles/newspage.css
    2480.08%420.05%00.00%00.00%/phppages/rss.php
    2570.07%20.00%00.00%00.00%/Pics/newsitem_ul.png
    2670.07%20.00%00.00%00.00%/Pics/newsitem_ur.png
    2750.05%340.04%00.00%00.00%/phpBB2/posting.php
    2840.04%40.00%00.00%00.00%/secured/Pictures/20070212_Blauwe_maandag/
    2940.04%800.09%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    3030.03%340.04%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 587 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1468548.88%4777551.76%00.00%00.00%/phpBB2/viewtopic.php
    23874.04%60946.60%00.00%00.00%/phpBB2/
    320.02%26302.85%00.00%00.00%/Pictures/20060429_chello_extreme.png
    42442.55%19472.11%00.00%00.00%/phpBB2/login.php
    51131.18%15431.67%00.00%00.00%/phpBB2/viewforum.php
    6550.57%11861.28%00.00%00.00%/phpBB2/search.php
    7700.73%7590.82%00.00%00.00%/phpBB2/profile.php
    8230.24%6250.68%00.00%00.00%/phpBB2/faq.php
    9280.29%3780.41%00.00%00.00%/phpBB2/memberlist.php
    10180.19%3280.36%00.00%00.00%/secured/Pictures/20070217_Parijs/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 14 Total Entry Pages
    #HitsVisitsURL
    13874.04%15552.19%/phpBB2/
    2890.93%6321.21%/News/
    310.01%5117.17%/secured/Pictures/200607_The_Long_Swell/
    4140.15%103.37%/Pictures/20070206_Domburg/
    5180.19%41.35%/secured/Pictures/20070217_Parijs/
    640.04%41.35%http://frederik.gotdns.org/phpBB2/
    720.02%20.67%/Pictures/
    820.02%20.67%/Pictures/20021229_Serial_Console/
    910.01%10.34%/Pictures/20030201_Sneeuw/
    1010.01%10.34%/Pictures/20030713_MTB/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Exit Pages
    #HitsVisitsURL
    13874.04%4039.60%/phpBB2/
    2890.93%3938.61%/News/
    310.01%1211.88%/secured/Pictures/200607_The_Long_Swell/
    4140.15%65.94%/Pictures/20070206_Domburg/
    530.03%21.98%/Pictures/20051112_COS_Garden_of_the_Gods/
    6180.19%21.98%/secured/Pictures/20070217_Parijs/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 216 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1129113.47%123515.70%84609.17%00.00%00.00%71.55%66.249.66.13
    299510.38%96812.30%65687.12%00.00%00.00%30.67%66.249.72.112
    39209.60%6408.14%64316.97%00.00%00.00%357.76%213.132.155.38
    47277.59%6788.62%43454.71%00.00%00.00%173.77%66.249.65.145
    56957.25%6668.47%44044.77%00.00%00.00%30.67%66.249.72.17
    64264.44%3894.94%18101.96%00.00%00.00%296.43%66.249.65.232
    73353.50%3154.00%20242.19%00.00%00.00%40.89%66.249.66.133
    83323.46%3194.05%21592.34%00.00%00.00%20.44%66.249.65.243
    93053.18%2102.67%1195212.95%00.00%00.00%327.10%65.55.213.102
    102782.90%2743.48%13611.47%00.00%00.00%92.00%193.190.253.146
    112312.41%951.21%31193.38%00.00%00.00%327.10%65.55.210.82
    121851.93%1832.33%12461.35%00.00%00.00%20.44%84.195.125.65
    131841.92%730.93%28423.08%00.00%00.00%275.99%65.55.210.79
    141801.88%1141.45%3900.42%00.00%00.00%10.22%62.205.72.3
    151351.41%981.25%31173.38%00.00%00.00%153.33%65.55.210.78
    161351.41%670.85%26382.86%00.00%00.00%00.00%65.55.210.83
    171341.40%1321.68%41564.50%00.00%00.00%10.22%134.58.179.8
    181271.33%780.99%25422.75%00.00%00.00%112.44%65.55.210.81
    191251.30%951.21%31183.38%00.00%00.00%30.67%65.55.210.80
    201171.22%1131.44%25052.71%00.00%00.00%10.22%170.86.15.15
    211171.22%550.70%11671.26%00.00%00.00%224.88%207.46.98.143
    221101.15%991.26%11101.20%00.00%00.00%10.22%81.244.215.13
    231021.06%550.70%15551.68%00.00%00.00%112.44%207.46.98.141
    24850.89%821.04%5210.56%00.00%00.00%10.22%66.249.65.233
    25640.67%460.58%12531.36%00.00%00.00%00.00%65.55.210.73
    26540.56%270.34%4830.52%00.00%00.00%92.00%195.2.114.2
    27540.56%250.32%6340.69%00.00%00.00%30.67%207.46.98.144
    28350.37%350.44%710.08%00.00%00.00%10.22%24.10.104.188
    29320.33%240.31%4620.50%00.00%00.00%81.77%68.184.158.229
    30300.31%300.38%520.06%00.00%00.00%00.00%84.193.242.203
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 216 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    13053.18%2102.67%1195212.95%00.00%00.00%327.10%65.55.213.102
    2129113.47%123515.70%84609.17%00.00%00.00%71.55%66.249.66.13
    399510.38%96812.30%65687.12%00.00%00.00%30.67%66.249.72.112
    49209.60%6408.14%64316.97%00.00%00.00%357.76%213.132.155.38
    56957.25%6668.47%44044.77%00.00%00.00%30.67%66.249.72.17
    67277.59%6788.62%43454.71%00.00%00.00%173.77%66.249.65.145
    71341.40%1321.68%41564.50%00.00%00.00%10.22%134.58.179.8
    82312.41%951.21%31193.38%00.00%00.00%327.10%65.55.210.82
    91251.30%951.21%31183.38%00.00%00.00%30.67%65.55.210.80
    101351.41%981.25%31173.38%00.00%00.00%153.33%65.55.210.78
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 27 of 50 Total Referrers
    #HitsReferrer
    12252.35%frederik.gotdns.org/phpBB2/index.php
    21131.18%frederik.gotdns.org/profile.php
    3950.99%frederik.gotdns.org/phpBB2/login.php
    4950.99%frederik.gotdns.org/viewforum.php
    5860.90%frederik.gotdns.org/:1976/phpBB2/index.php
    6280.29%frederik.gotdns.org/
    7170.18%vanrenterghem.biz/secured/Pictures/index.shtml
    890.09%www.google.be/search
    980.08%frederik.gotdns.org/index.php
    1080.08%www.vanrenterghem.biz/
    1160.06%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1260.06%www.vanrenterghem.biz/phpBB2/index.php
    1330.03%vanrenterghem.biz/index.shtml
    1420.02%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    1520.02%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    1620.02%microsoft.com/
    1720.02%vanrenterghem.biz/About/index.shtml
    1810.01%72.14.205.104/search
    1910.01%frederik.gotdns.org/phpBB2/indeforum.php
    2010.01%frederik.gotdns.org/phpBB2/profile.php
    2110.01%frederik.gotdns.org/phpbb2/indeforum.php
    2210.01%frederik.gotdns.org/phpbb2/viewtopic.php
    2310.01%images.google.pl/imgres
    2410.01%vanrenterghem.biz/
    2510.01%vanrenterghem.biz/Pictures/index.shtml
    2610.01%www.google.com/search
    2710.01%www.vanrenterghem.biz/About/index.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1121412.67%102212.99%1594717.28%00.00%00.00%92.00%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 32 Total User Agents
    #HitsUser Agent
    1490351.16%Googlebot/2.1
    2139414.55%Mozilla/5.0
    3127813.33%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    4124412.98%MSIE 6.0
    53073.20%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    6981.02%Konqueror/3.5
    7680.71%MSIE 7.0
    8480.50%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    9340.35%MSIE 5.5
    10300.31%Yahoo! Slurp
    11280.29%Exabot-Images/3.0
    12200.21%Opera 7.2
    13190.20%MSIE 2.0
    14160.17%MSIE 5.0
    15130.14%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    +

    + +Usage by Location for March 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 37 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1694972.51%587974.73%7079576.70%00.00%00.00%United States
    2196420.49%159620.29%1491316.16%00.00%00.00%Belgium
    3920.96%460.58%8310.90%00.00%00.00%Russian Federation
    4890.93%530.67%11441.24%00.00%00.00%Germany
    5820.86%420.53%7250.79%00.00%00.00%Unresolved/Unknown
    6630.66%300.38%5400.58%00.00%00.00%Latvia
    7510.53%400.51%1400.15%00.00%00.00%France
    8320.33%310.39%1290.14%00.00%00.00%Spain
    9280.29%280.36%360.04%00.00%00.00%Cote D'Ivoire (Ivory Coast)
    10280.29%140.18%2550.28%00.00%00.00%Ukraine
    11240.25%120.15%6170.67%00.00%00.00%Poland
    12210.22%210.27%220.02%00.00%00.00%Sweden
    13190.20%110.14%8230.89%00.00%00.00%Italy
    14180.19%90.11%1610.17%00.00%00.00%Estonia
    15120.13%60.08%1070.12%00.00%00.00%Egypt
    16120.13%60.08%1070.12%00.00%00.00%Romania
    17100.10%60.08%1050.11%00.00%00.00%Israel
    18100.10%70.09%1410.15%00.00%00.00%Malaysia
    1980.08%40.05%690.08%00.00%00.00%India
    2080.08%00.00%10.00%00.00%00.00%Korea (South)
    2180.08%50.06%850.09%00.00%00.00%Pakistan
    2270.07%30.04%540.06%00.00%00.00%Argentina
    2370.07%40.05%720.08%00.00%00.00%Czech Republic
    2460.06%30.04%540.06%00.00%00.00%Belarus
    2560.06%30.04%540.06%00.00%00.00%Moldova
    2660.06%30.04%540.06%00.00%00.00%Norway
    2740.04%00.00%50.01%00.00%00.00%Great Britain (UK)
    2840.04%00.00%10.00%00.00%00.00%Japan
    2930.03%00.00%30.00%00.00%00.00%Canada
    3020.02%00.00%00.00%00.00%00.00%Bulgaria
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200704.html b/webalizer/usage_200704.html new file mode 100644 index 0000000..fbaf828 --- /dev/null +++ b/webalizer/usage_200704.html @@ -0,0 +1,3099 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - April 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: April 2007
    +Generated 01-May-2007 06:26 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for April 2007
    Total Hits7878
    Total Files6002
    Total Pages762
    Total Visits464
    Total kB Files114708
    Total kB In0
    Total kB Out0
    Total Unique Sites252
    Total Unique URLs648
    Total Unique Referrers57
    Total Unique Usernames1
    Total Unique User Agents42
    .Avg Max
    Hits per Hour10676
    Hits per Day262892
    Files per Day200803
    Pages per Day2544
    Visits per Day1525
    kB Files per Day38249551
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK6002
    Code 206 - Partial Content7
    Code 302 - Found611
    Code 304 - Not Modified231
    Code 401 - Unauthorized91
    Code 403 - Forbidden42
    Code 404 - Not Found893
    Code 406 - Not Acceptable1
    +

    + +Daily usage for April 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for April 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11481.88%1071.78%172.23%112.37%176.75%9190.80%00.00%00.00%
    22012.55%1322.20%253.28%173.66%239.13%20441.78%00.00%00.00%
    31642.08%1302.17%273.54%143.02%197.54%14301.25%00.00%00.00%
    489211.32%80313.38%445.77%194.09%2710.71%95518.33%00.00%00.00%
    52663.38%1752.92%415.38%255.39%3011.90%62595.46%00.00%00.00%
    63995.06%3275.45%293.81%194.09%3011.90%83597.29%00.00%00.00%
    71932.45%1492.48%162.10%81.72%218.33%17031.48%00.00%00.00%
    82703.43%2183.63%263.41%153.23%249.52%33762.94%00.00%00.00%
    91712.17%1141.90%324.20%183.88%2610.32%22851.99%00.00%00.00%
    103033.85%2404.00%283.67%204.31%207.94%47914.18%00.00%00.00%
    113194.05%2584.30%121.57%81.72%259.92%62535.45%00.00%00.00%
    123123.96%2514.18%263.41%163.45%259.92%40353.52%00.00%00.00%
    131551.97%1031.72%243.15%163.45%2610.32%22922.00%00.00%00.00%
    141992.53%1202.00%415.38%234.96%3112.30%17451.52%00.00%00.00%
    155687.21%4026.70%384.99%163.45%2911.51%79326.91%00.00%00.00%
    162212.81%1632.72%293.81%194.09%2710.71%29932.61%00.00%00.00%
    173414.33%2854.75%324.20%183.88%2610.32%26392.30%00.00%00.00%
    182483.15%1823.03%314.07%204.31%259.92%77596.76%00.00%00.00%
    192653.36%2033.38%222.89%173.66%207.94%72926.36%00.00%00.00%
    202483.15%1903.17%192.49%143.02%166.35%53284.64%00.00%00.00%
    211852.35%1382.30%273.54%143.02%207.94%22021.92%00.00%00.00%
    221481.88%891.48%263.41%163.45%249.52%14921.30%00.00%00.00%
    232182.77%1402.33%334.33%214.53%249.52%30782.68%00.00%00.00%
    241491.89%1041.73%222.89%132.80%187.14%16331.42%00.00%00.00%
    251531.94%1161.93%101.31%102.16%166.35%18591.62%00.00%00.00%
    261812.30%1392.32%202.62%143.02%187.14%25382.21%00.00%00.00%
    272002.54%1512.52%212.76%143.02%228.73%35883.13%00.00%00.00%
    282132.70%1652.75%141.84%102.16%166.35%55324.82%00.00%00.00%
    292643.35%2033.38%162.10%112.37%176.75%31762.77%00.00%00.00%
    302843.60%2053.42%141.84%81.72%145.56%6270.55%00.00%00.00%
    +

    + +Hourly usage for April 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for April 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    062032.58%41432.38%0212.76%7121441.87%000.00%000.00%
    162092.65%51512.52%0263.41%11634783.03%000.00%000.00%
    272112.68%51592.65%0233.02%6920671.80%000.00%000.00%
    361972.50%41362.27%0212.76%11032982.87%000.00%000.00%
    472352.98%51612.68%0283.67%9929592.58%000.00%000.00%
    572232.83%51552.58%0192.49%14142223.68%000.00%000.00%
    672342.97%51532.55%0293.81%9628692.50%000.00%000.00%
    772232.83%51532.55%1405.25%12938723.38%000.00%000.00%
    892833.59%61873.12%1324.20%19458295.08%000.00%000.00%
    992793.54%72163.60%1303.94%19859265.17%000.00%000.00%
    10133924.98%103095.15%1344.46%18254704.77%000.00%000.00%
    11185446.91%154577.61%1425.51%30792098.03%000.00%000.00%
    12113444.37%92784.63%1435.64%8726132.28%000.00%000.00%
    1382513.19%51632.72%0233.02%17452234.55%000.00%000.00%
    142987311.08%2680513.41%0293.81%369110819.66%000.00%000.00%
    15123634.61%103015.01%1374.86%21263615.55%000.00%000.00%
    16144355.52%103065.10%1334.33%15747114.11%000.00%000.00%
    17134015.09%82544.23%1344.46%19859315.17%000.00%000.00%
    1892943.73%72253.75%1314.07%16148174.20%000.00%000.00%
    19113424.34%82644.40%1384.99%13640833.56%000.00%000.00%
    20164916.23%134146.90%0293.81%17251464.49%000.00%000.00%
    21103003.81%72373.95%1303.94%16248574.23%000.00%000.00%
    2272252.86%51592.65%1314.07%9227632.41%000.00%000.00%
    23103264.14%72163.60%1597.74%19357805.04%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 648 Total URLs
    #HitskB FkB InkB OutURL
    1274434.83%5282746.05%00.00%00.00%/phpBB2/viewtopic.php
    23975.04%64535.63%00.00%00.00%/phpBB2/
    32573.26%21791.90%00.00%00.00%/phpBB2/login.php
    4851.08%1660.15%00.00%00.00%/News/permalink.php
    5801.02%890.08%00.00%00.00%/phppages/foto.php
    6730.93%2430.21%00.00%00.00%/News/
    7680.86%18621.62%00.00%00.00%/phpBB2/viewforum.php
    8560.71%15661.37%00.00%00.00%/phpBB2/search.php
    9520.66%580.05%00.00%00.00%/styles/header.css
    10520.66%60.01%00.00%00.00%/styles/main.css
    11490.62%3890.34%00.00%00.00%/Pics/logo-100.png
    12490.62%6240.54%00.00%00.00%/phpBB2/profile.php
    13240.30%100.01%00.00%00.00%/Pics/xml.png
    14220.28%160.01%00.00%00.00%/styles/newspage.css
    15210.27%60.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    16200.25%50.00%00.00%00.00%/Pics/newsitem_ur.png
    17200.25%2610.23%00.00%00.00%/phpBB2/viewonline.php
    18190.24%50.00%00.00%00.00%/Pics/newsitem_ul.png
    19190.24%230.02%00.00%00.00%/favicon.ico
    20150.19%1972517.20%00.00%00.00%/Pictures/20060429_chello_extreme.png
    21140.18%420.04%00.00%00.00%/Pictures/20070206_Domburg/
    22130.17%1480.13%00.00%00.00%/phpBB2/groupcp.php
    23120.15%1620.14%00.00%00.00%/phpBB2/memberlist.php
    24100.13%20.00%00.00%00.00%/
    25100.13%2000.17%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    2660.08%2590.23%00.00%00.00%/phpBB2/faq.php
    2760.08%310.03%00.00%00.00%/phppages/rss.php
    2860.08%80.01%00.00%00.00%/secured/Pictures/20070211_Shooters/
    2950.06%740.06%00.00%00.00%/phpbb2/viewtopic.php
    3040.05%40.00%00.00%00.00%/secured/Pictures/20070212_Blauwe_maandag/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 648 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1274434.83%5282746.05%00.00%00.00%/phpBB2/viewtopic.php
    2150.19%1972517.20%00.00%00.00%/Pictures/20060429_chello_extreme.png
    33975.04%64535.63%00.00%00.00%/phpBB2/
    42573.26%21791.90%00.00%00.00%/phpBB2/login.php
    5680.86%18621.62%00.00%00.00%/phpBB2/viewforum.php
    6560.71%15661.37%00.00%00.00%/phpBB2/search.php
    7490.62%6240.54%00.00%00.00%/phpBB2/profile.php
    8490.62%3890.34%00.00%00.00%/Pics/logo-100.png
    9200.25%2610.23%00.00%00.00%/phpBB2/viewonline.php
    1060.08%2590.23%00.00%00.00%/phpBB2/faq.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 13 Total Entry Pages
    #HitsVisitsURL
    13975.04%17249.71%/phpBB2/
    230.04%6017.34%/secured/Pictures/200607_The_Long_Swell/
    3730.93%4914.16%/News/
    4100.13%349.83%/
    5140.18%123.47%/Pictures/20070206_Domburg/
    6100.13%102.89%http://frederik.gotdns.org/phpBB2/
    730.04%30.87%/Pictures/
    810.01%10.29%/Pictures/20050409_New_York/
    910.01%10.29%/Pictures/200505_Amsterdam/
    1010.01%10.29%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Exit Pages
    #HitsVisitsURL
    13975.04%4452.38%/phpBB2/
    230.04%1720.24%/secured/Pictures/200607_The_Long_Swell/
    3730.93%910.71%/News/
    4100.13%89.52%/
    5140.18%44.76%/Pictures/20070206_Domburg/
    630.04%11.19%/Pictures/
    760.08%11.19%/secured/Pictures/20070211_Shooters/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 252 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1152019.29%133222.19%100348.75%00.00%00.00%296.25%66.249.72.104
    26628.40%65910.98%82447.19%00.00%00.00%10.22%81.165.163.202
    34705.97%4076.78%22691.98%00.00%00.00%173.66%193.190.253.146
    44055.14%3786.30%24782.16%00.00%00.00%61.29%66.249.65.229
    52963.76%1682.80%65485.71%00.00%00.00%357.54%65.55.210.73
    62753.49%2083.47%26772.33%00.00%00.00%10.22%81.83.96.12
    72503.17%1392.32%52324.56%00.00%00.00%255.39%65.55.210.80
    82342.97%1272.12%52434.57%00.00%00.00%30.65%65.55.210.81
    92272.88%1482.47%54574.76%00.00%00.00%122.59%65.55.210.79
    102242.84%1602.67%52574.58%00.00%00.00%234.96%65.55.210.72
    112232.83%1672.78%66125.76%00.00%00.00%40.86%65.55.210.78
    121692.15%671.12%6070.53%00.00%00.00%275.82%213.132.155.38
    131652.09%1442.40%21731.89%00.00%00.00%20.43%87.244.187.16
    141642.08%1502.50%10110.88%00.00%00.00%20.43%66.249.65.41
    151521.93%1051.75%42123.67%00.00%00.00%30.65%65.55.210.82
    161271.61%300.50%5110.45%00.00%00.00%337.11%207.46.98.143
    171261.60%1091.82%6910.60%00.00%00.00%20.43%66.249.65.232
    181191.51%841.40%30592.67%00.00%00.00%00.00%65.55.210.71
    191141.45%570.95%10190.89%00.00%00.00%183.88%216.32.81.18
    201101.40%711.18%71906.27%00.00%00.00%163.45%65.55.213.102
    211011.28%661.10%68956.01%00.00%00.00%143.02%65.55.213.103
    22630.80%310.52%6930.60%00.00%00.00%163.45%207.46.98.141
    23520.66%510.85%710.06%00.00%00.00%10.22%212.239.212.21
    24510.65%130.22%2750.24%00.00%00.00%10.22%207.46.98.144
    25480.61%240.40%4290.37%00.00%00.00%81.72%66.197.22.90
    26460.58%460.77%16191.41%00.00%00.00%10.22%85.255.118.108
    27430.55%160.27%3840.33%00.00%00.00%20.43%207.46.98.142
    28400.51%400.67%480.04%00.00%00.00%10.22%170.86.15.15
    29340.43%340.57%11190.98%00.00%00.00%10.22%85.255.118.116
    30310.39%310.52%370.03%00.00%00.00%10.22%84.195.93.74
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 252 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1152019.29%133222.19%100348.75%00.00%00.00%296.25%66.249.72.104
    26628.40%65910.98%82447.19%00.00%00.00%10.22%81.165.163.202
    31101.40%711.18%71906.27%00.00%00.00%163.45%65.55.213.102
    41011.28%661.10%68956.01%00.00%00.00%143.02%65.55.213.103
    52232.83%1672.78%66125.76%00.00%00.00%40.86%65.55.210.78
    62963.76%1682.80%65485.71%00.00%00.00%357.54%65.55.210.73
    72272.88%1482.47%54574.76%00.00%00.00%122.59%65.55.210.79
    82242.84%1602.67%52574.58%00.00%00.00%234.96%65.55.210.72
    92342.97%1272.12%52434.57%00.00%00.00%30.65%65.55.210.81
    102503.17%1392.32%52324.56%00.00%00.00%255.39%65.55.210.80
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 57 Total Referrers
    #HitsReferrer
    12413.06%frederik.gotdns.org/phpBB2/index.php
    21201.52%frederik.gotdns.org/profile.php
    31101.40%frederik.gotdns.org/phpBB2/login.php
    41101.40%frederik.gotdns.org/viewforum.php
    5901.14%frederik.gotdns.org/:1976/phpBB2/index.php
    6270.34%frederik.gotdns.org/
    7240.30%vanrenterghem.biz/secured/Pictures/index.shtml
    8120.15%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    9120.15%www.vanrenterghem.biz/
    10110.14%vanrenterghem.biz/phppages/fotobiz.php
    11110.14%www.google.be/search
    12100.13%images.google.com/imgres
    13100.13%www.vanrenterghem.biz/secured/Pictures/index.shtml
    1450.06%frederik.gotdns.org/posting.php
    1550.06%www.google.com/search
    1650.06%www.vanrenterghem.biz/phpBB2/index.php
    1750.06%www.vanrenterghem.biz/phppages/fotobiz.php
    1840.05%images.google.co.uk/imgres
    1940.05%images.google.hr/imgres
    2030.04%images.google.be/imgres
    2130.04%vanrenterghem.biz/About/index.shtml
    2230.04%vanrenterghem.biz/Surfing/index.shtml
    2320.03%frederik.gotdns.org/login.php
    2420.03%images.google.com.ph/imgres
    2520.03%images.google.de/imgres
    2620.03%images.google.se/imgres
    2720.03%vanrenterghem.biz/Pictures/index.shtml
    2810.01%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    2910.01%frederik.gotdns.org/News/index.php
    3010.01%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Search Strings
    #HitsSearch String
    1342.86%chello
    2114.29%%22waxed%22
    3114.29%1976 news
    4114.29%d-link de
    5114.29%extreme connection
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1122415.54%110018.33%1493613.02%00.00%00.00%81.72%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 42 Total User Agents
    #HitsUser Agent
    1221428.10%Googlebot/2.1
    2202125.65%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    3133917.00%MSIE 6.0
    4101412.87%Mozilla/5.0
    56428.15%MSIE 7.0
    62112.68%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7610.77%Konqueror/3.5
    8510.65%Opera 7.2
    9250.32%Opera 9.0
    10230.29%Yahoo! Slurp
    11210.27%MSIE 5.5
    12210.27%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    13180.23%Mozilla/4.7
    14160.20%Opera 8.0
    15140.18%Opera 7.0
    +

    + +Usage by Location for April 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 35 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1494662.78%360360.03%7939969.22%00.00%00.00%United States
    2217027.55%190931.81%1794515.64%00.00%00.00%Belgium
    31011.28%921.53%29382.56%00.00%00.00%Ukraine
    4931.18%611.02%22211.94%00.00%00.00%Germany
    5931.18%470.78%8430.74%00.00%00.00%Russian Federation
    6851.08%851.42%5520.48%00.00%00.00%Netherlands
    7560.71%260.43%6590.57%00.00%00.00%Unresolved/Unknown
    8470.60%360.60%41503.62%00.00%00.00%Great Britain (UK)
    9330.42%00.00%00.00%00.00%00.00%Korea (South)
    10300.38%130.22%2560.22%00.00%00.00%Latvia
    11280.36%190.32%4250.37%00.00%00.00%Poland
    12260.33%130.22%4400.38%00.00%00.00%Romania
    13210.27%210.35%220.02%00.00%00.00%Slovenia
    14200.25%100.17%1130.10%00.00%00.00%France
    15160.20%60.10%1060.09%00.00%00.00%Malaysia
    16140.18%120.20%1570.14%00.00%00.00%Brazil
    17130.17%130.22%13701.19%00.00%00.00%Croatia (Hrvatska)
    18100.13%50.08%960.08%00.00%00.00%Moldova
    19100.13%100.17%2640.23%00.00%00.00%Sweden
    2060.08%10.02%2260.20%00.00%00.00%Australia
    2160.08%30.05%520.05%00.00%00.00%Czech Republic
    2260.08%30.05%540.05%00.00%00.00%Estonia
    2360.08%30.05%540.05%00.00%00.00%Greece
    2460.08%00.00%00.00%00.00%00.00%Japan
    2560.08%30.05%540.05%00.00%00.00%Norway
    2660.08%60.10%13191.15%00.00%00.00%Philippines
    2760.08%00.00%00.00%00.00%00.00%Pakistan
    2850.06%30.05%520.05%00.00%00.00%Canada
    2940.05%00.00%00.00%00.00%00.00%India
    3030.04%30.05%2640.23%00.00%00.00%Spain
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200705.html b/webalizer/usage_200705.html new file mode 100644 index 0000000..32db762 --- /dev/null +++ b/webalizer/usage_200705.html @@ -0,0 +1,3136 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - May 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: May 2007
    +Generated 01-Jun-2007 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for May 2007
    Total Hits7395
    Total Files6076
    Total Pages605
    Total Visits372
    Total kB Files102299
    Total kB In0
    Total kB Out0
    Total Unique Sites206
    Total Unique URLs533
    Total Unique Referrers55
    Total Unique Usernames1
    Total Unique User Agents31
    .Avg Max
    Hits per Hour9469
    Hits per Day238679
    Files per Day196643
    Pages per Day1938
    Visits per Day1225
    kB Files per Day330011458
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK6076
    Code 206 - Partial Content3
    Code 302 - Found368
    Code 304 - Not Modified106
    Code 401 - Unauthorized42
    Code 403 - Forbidden32
    Code 404 - Not Found768
    +

    + +Daily usage for May 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for May 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1720.97%470.77%111.82%92.42%199.22%3860.38%00.00%00.00%
    22082.81%1502.47%162.64%123.23%199.22%36453.56%00.00%00.00%
    31191.61%791.30%142.31%92.42%157.28%16061.57%00.00%00.00%
    41091.47%781.28%101.65%82.15%125.83%12571.23%00.00%00.00%
    51101.49%811.33%71.16%61.61%146.80%13441.31%00.00%00.00%
    61251.69%971.60%162.64%112.96%146.80%13561.33%00.00%00.00%
    71131.53%771.27%111.82%102.69%199.22%8380.82%00.00%00.00%
    8981.33%721.18%101.65%92.42%2210.68%10251.00%00.00%00.00%
    91391.88%981.61%172.81%82.15%188.74%35203.44%00.00%00.00%
    101932.61%1472.42%264.30%154.03%2411.65%66916.54%00.00%00.00%
    112062.79%1692.78%203.31%92.42%209.71%48284.72%00.00%00.00%
    121902.57%1402.30%162.64%143.76%2210.68%35073.43%00.00%00.00%
    131522.06%1201.97%81.32%61.61%167.77%27732.71%00.00%00.00%
    141802.43%1322.17%193.14%112.96%199.22%35103.43%00.00%00.00%
    152943.98%2413.97%193.14%123.23%2713.11%79857.81%00.00%00.00%
    163364.54%2864.71%243.97%143.76%188.74%78467.67%00.00%00.00%
    173574.83%2934.82%243.97%205.38%2110.19%40773.98%00.00%00.00%
    183504.73%3135.15%284.63%184.84%209.71%33313.26%00.00%00.00%
    194546.14%4086.71%365.95%256.72%167.77%36593.58%00.00%00.00%
    203464.68%2974.89%315.12%133.49%2110.19%24442.39%00.00%00.00%
    213544.79%3205.27%203.31%133.49%2311.17%42634.17%00.00%00.00%
    222263.06%1923.16%233.80%102.69%157.28%20492.00%00.00%00.00%
    232713.66%2383.92%254.13%133.49%2210.68%46394.54%00.00%00.00%
    241872.53%1522.50%182.98%112.96%136.31%14071.38%00.00%00.00%
    251622.19%1282.11%91.49%71.88%157.28%21392.09%00.00%00.00%
    261732.34%1282.11%203.31%133.49%2110.19%17371.70%00.00%00.00%
    273674.96%3385.56%162.64%92.42%199.22%27632.70%00.00%00.00%
    283474.69%2434.00%264.30%164.30%2411.65%15811.55%00.00%00.00%
    291592.15%1201.97%284.63%133.49%199.22%12871.26%00.00%00.00%
    306799.18%64310.58%193.14%102.69%178.25%1145811.20%00.00%00.00%
    313194.31%2494.10%386.28%184.84%2813.59%33473.27%00.00%00.00%
    +

    + +Hourly usage for May 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for May 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    082523.41%62063.39%0274.46%13140603.97%000.00%000.00%
    172383.22%51762.90%0213.47%9830402.97%000.00%000.00%
    282693.64%62093.44%1406.61%14544954.39%000.00%000.00%
    392933.96%82524.15%0182.98%11334943.42%000.00%000.00%
    4103204.33%82654.36%0284.63%15447874.68%000.00%000.00%
    592994.04%82624.31%0233.80%10231533.08%000.00%000.00%
    682763.73%72383.92%0223.64%16551285.01%000.00%000.00%
    7103374.56%82724.48%0274.46%15548014.69%000.00%000.00%
    8103354.53%82784.58%0264.30%11636083.53%000.00%000.00%
    982593.50%62123.49%0223.64%8626802.62%000.00%000.00%
    10103194.31%82604.28%0213.47%9629772.91%000.00%000.00%
    11113464.68%92944.84%0182.98%10432303.16%000.00%000.00%
    1292903.92%72363.88%0274.46%10331913.12%000.00%000.00%
    13103264.41%82744.51%0243.97%9729942.93%000.00%000.00%
    1472343.16%61933.18%0172.81%9629782.91%000.00%000.00%
    15103144.25%82544.18%0243.97%14645284.43%000.00%000.00%
    1692893.91%72313.80%0233.80%19460165.88%000.00%000.00%
    1772323.14%62003.29%0162.64%13742574.16%000.00%000.00%
    1872253.04%61923.16%0162.64%12338233.74%000.00%000.00%
    1972313.12%51823.00%0233.80%11134373.36%000.00%000.00%
    20103354.53%82564.21%1315.12%11736193.54%000.00%000.00%
    212887411.82%2474412.24%1437.11%3661134111.09%000.00%000.00%
    2272253.04%51722.83%1355.79%17453865.27%000.00%000.00%
    2382773.75%72183.59%1335.45%17052755.16%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 533 Total URLs
    #HitskB FkB InkB OutURL
    1384151.94%5103449.89%00.00%00.00%/phpBB2/viewtopic.php
    23174.29%53335.21%00.00%00.00%/phpBB2/
    32072.80%2710.27%00.00%00.00%/News/permalink.php
    41942.62%17491.71%00.00%00.00%/phpBB2/login.php
    5931.26%2410.24%00.00%00.00%/News/
    6510.69%11191.09%00.00%00.00%/phpBB2/search.php
    7500.68%16711.63%00.00%00.00%/phpBB2/viewforum.php
    8450.61%5680.56%00.00%00.00%/phpBB2/profile.php
    9410.55%2650.26%00.00%00.00%/Pics/logo-100.png
    10370.50%380.04%00.00%00.00%/styles/header.css
    11360.49%40.00%00.00%00.00%/styles/main.css
    12320.43%380.04%00.00%00.00%/phppages/foto.php
    13210.28%2540.25%00.00%00.00%/phpBB2/viewonline.php
    14170.23%70.01%00.00%00.00%/Pics/xml.png
    15170.23%190.02%00.00%00.00%/favicon.ico
    16160.22%40.00%00.00%00.00%/Pics/newsitem_ul.png
    17160.22%40.00%00.00%00.00%/Pics/newsitem_ur.png
    18160.22%120.01%00.00%00.00%/styles/newspage.css
    19150.20%30.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    2090.12%1520.15%00.00%00.00%/phpBB2/memberlist.php
    2180.11%3240.32%00.00%00.00%/phpBB2/faq.php
    2270.09%10.00%00.00%00.00%/
    2370.09%920.09%00.00%00.00%/phpBB2/groupcp.php
    2460.08%68656.71%00.00%00.00%/Pictures/20060429_chello_extreme.png
    2560.08%310.03%00.00%00.00%/phppages/rss.php
    2650.07%280.03%00.00%00.00%/Pictures/20070206_Domburg/
    2730.04%600.06%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    2830.04%2390.23%00.00%00.00%http://frederik.gotdns.org/phpBB2/viewforum.php
    2920.03%20.00%00.00%00.00%/Pictures/20021229_Serial_Console/
    3020.03%320.03%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 533 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1384151.94%5103449.89%00.00%00.00%/phpBB2/viewtopic.php
    260.08%68656.71%00.00%00.00%/Pictures/20060429_chello_extreme.png
    33174.29%53335.21%00.00%00.00%/phpBB2/
    41942.62%17491.71%00.00%00.00%/phpBB2/login.php
    5500.68%16711.63%00.00%00.00%/phpBB2/viewforum.php
    6510.69%11191.09%00.00%00.00%/phpBB2/search.php
    7450.61%5680.56%00.00%00.00%/phpBB2/profile.php
    880.11%3240.32%00.00%00.00%/phpBB2/faq.php
    92072.80%2710.27%00.00%00.00%/News/permalink.php
    10410.55%2650.26%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 11 Total Entry Pages
    #HitsVisitsURL
    13174.29%13155.74%/phpBB2/
    2931.26%7933.62%/News/
    370.09%114.68%/
    450.07%52.13%/Pictures/20070206_Domburg/
    530.04%31.28%http://frederik.gotdns.org/phpBB2/
    610.01%10.43%/Linux/
    720.03%10.43%/Pictures/20021229_Serial_Console/
    810.01%10.43%/Pictures/20030713_MTB/
    910.01%10.43%/Pictures/200505_Amsterdam/
    1020.03%10.43%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Exit Pages
    #HitsVisitsURL
    1931.26%3245.07%/News/
    23174.29%3042.25%/phpBB2/
    370.09%34.23%/
    450.07%22.82%/Pictures/20070206_Domburg/
    510.01%11.41%/Pictures/20030201_Sneeuw/
    610.01%11.41%/Pictures/20030713_MTB/
    720.03%11.41%/Pictures/20051112_COS_Garden_of_the_Gods/
    810.01%11.41%/secured/Pictures/200607_The_Long_Swell/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 206 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1178124.08%171928.29%1053910.30%00.00%00.00%4010.75%66.249.73.165
    2108114.62%102616.89%80757.89%00.00%00.00%92.42%66.249.73.105
    36028.14%5989.84%91018.90%00.00%00.00%102.69%193.190.253.146
    43995.40%3635.97%27092.65%00.00%00.00%51.34%66.249.72.208
    53825.17%3395.58%22352.18%00.00%00.00%92.42%66.249.72.98
    62042.76%1342.21%50894.97%00.00%00.00%82.15%65.55.210.73
    71972.66%1462.40%51044.99%00.00%00.00%10.27%65.55.210.78
    81792.42%1262.07%43534.25%00.00%00.00%174.57%65.55.210.72
    91762.38%1091.79%35303.45%00.00%00.00%133.49%65.55.210.80
    101712.31%1111.83%41774.08%00.00%00.00%20.54%65.55.210.81
    111512.04%971.60%32493.18%00.00%00.00%82.15%65.55.210.79
    121482.00%1031.70%32263.15%00.00%00.00%102.69%65.55.210.71
    131381.87%400.66%8750.86%00.00%00.00%369.68%207.46.98.143
    141111.50%470.77%740.07%00.00%00.00%10.27%80.201.65.208
    15971.31%651.07%25082.45%00.00%00.00%00.00%65.55.210.82
    16730.99%390.64%24132.36%00.00%00.00%92.42%65.55.213.103
    17690.93%330.54%6720.66%00.00%00.00%61.61%207.46.98.142
    18600.81%300.49%5360.52%00.00%00.00%102.69%81.168.189.81
    19570.77%150.25%410.04%00.00%00.00%102.69%213.132.155.38
    20310.42%310.51%350.03%00.00%00.00%10.27%81.83.48.194
    21300.41%150.25%2680.26%00.00%00.00%51.34%195.244.128.215
    22300.41%300.49%420.04%00.00%00.00%00.00%86.85.98.249
    23290.39%290.48%420.04%00.00%00.00%00.00%81.243.135.131
    24290.39%290.48%380.04%00.00%00.00%00.00%84.197.153.133
    25290.39%290.48%380.04%00.00%00.00%00.00%86.91.255.131
    26280.38%280.46%320.03%00.00%00.00%00.00%213.219.185.98
    27280.38%280.46%380.04%00.00%00.00%00.00%80.201.46.178
    28280.38%280.46%350.03%00.00%00.00%00.00%82.174.104.236
    29280.38%280.46%370.04%00.00%00.00%00.00%83.101.12.50
    30280.38%280.46%340.03%00.00%00.00%00.00%84.193.147.19
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 206 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1178124.08%171928.29%1053910.30%00.00%00.00%4010.75%66.249.73.165
    26028.14%5989.84%91018.90%00.00%00.00%102.69%193.190.253.146
    3108114.62%102616.89%80757.89%00.00%00.00%92.42%66.249.73.105
    41972.66%1462.40%51044.99%00.00%00.00%10.27%65.55.210.78
    52042.76%1342.21%50894.97%00.00%00.00%82.15%65.55.210.73
    61792.42%1262.07%43534.25%00.00%00.00%174.57%65.55.210.72
    71712.31%1111.83%41774.08%00.00%00.00%20.54%65.55.210.81
    81762.38%1091.79%35303.45%00.00%00.00%133.49%65.55.210.80
    91512.04%971.60%32493.18%00.00%00.00%82.15%65.55.210.79
    101482.00%1031.70%32263.15%00.00%00.00%102.69%65.55.210.71
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 55 Total Referrers
    #HitsReferrer
    12002.70%frederik.gotdns.org/phpBB2/index.php
    21011.37%frederik.gotdns.org/profile.php
    3941.27%frederik.gotdns.org/phpBB2/login.php
    4881.19%frederik.gotdns.org/viewforum.php
    5781.05%frederik.gotdns.org/:1976/phpBB2/index.php
    6420.57%frederik.gotdns.org/
    7190.26%images.google.com/imgres
    8160.22%vanrenterghem.biz/phppages/fotobiz.php
    9130.18%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1090.12%www.vanrenterghem.biz/
    1160.08%frederik.gotdns.org/posting.php
    1260.08%images.google.nl/imgres
    1360.08%www.google.be/search
    1440.05%vanrenterghem.biz/secured/Pictures/index.shtml
    1530.04%frederik.gotdns.org/phpBB2/viewforum.php
    1630.04%images.google.co.uk/imgres
    1730.04%images.google.com.au/imgres
    1830.04%www.google.nl/search
    1920.03%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    2020.03%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    2120.03%frederik.gotdns.org/login.php
    2220.03%images.google.com/images
    2320.03%images.google.fr/imgres
    2420.03%uxxicom.com/
    2520.03%vanrenterghem.biz/About/index.shtml
    2620.03%vanrenterghem.biz/index.shtml
    2720.03%www.google.com/search
    2810.01%frederik.gotdns.org/phpBB2/
    2910.01%frederik.gotdns.org/phpBB2/indeforum.php
    3010.01%frederik.gotdns.org/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Search Strings
    #HitsSearch String
    1428.57%chello
    2214.29%mr zogs surfboard
    3214.29%surf art nyc
    4214.29%surf wax
    517.14%art 1976
    617.14%mr.%2bzogs
    717.14%tbn:h8wcaz2jhwg-bm:http://frederik.gotdns.org:1976/pictures/20060429_chello_extreme.png
    817.14%vanrenterghem
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    15317.18%5318.74%90058.80%00.00%00.00%20.54%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 31 Total User Agents
    #HitsUser Agent
    1363149.10%Googlebot/2.1
    2159421.56%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    3108814.71%Mozilla/5.0
    46168.33%MSIE 6.0
    51221.65%MSIE 7.0
    6851.15%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7440.59%Konqueror/3.5
    8370.50%MSIE 5.5
    9320.43%Googlebot-Image/1.0
    10180.24%Yahoo! Slurp
    11170.23%Opera 9.0
    12150.20%findlinks/1.1.3-beta9 (+http://wortschatz.uni-leipzig.de/findlinks/)
    13120.16%Mozilla/4.7
    14100.14%Opera 7.2
    15100.14%Opera 8.0
    +

    + +Usage by Location for May 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 31 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1566476.59%471677.62%7375872.10%00.00%00.00%United States
    299313.43%88314.53%97209.50%00.00%00.00%Belgium
    31361.84%1362.24%35363.46%00.00%00.00%Netherlands
    41251.69%701.15%25012.44%00.00%00.00%Germany
    5871.18%430.71%9790.96%00.00%00.00%Poland
    6751.01%390.64%7140.70%00.00%00.00%Russian Federation
    7670.91%310.51%9490.93%00.00%00.00%Unresolved/Unknown
    8450.61%210.35%3790.37%00.00%00.00%Latvia
    9450.61%390.64%13201.29%00.00%00.00%Ukraine
    10390.53%260.43%32053.13%00.00%00.00%France
    11340.46%260.43%4120.40%00.00%00.00%Great Britain (UK)
    12170.23%140.23%15951.56%00.00%00.00%Australia
    13100.14%70.12%13981.37%00.00%00.00%Estonia
    1470.09%30.05%550.05%00.00%00.00%Israel
    1560.08%30.05%540.05%00.00%00.00%Morocco
    1660.08%30.05%540.05%00.00%00.00%Moldova
    1760.08%10.02%210.02%00.00%00.00%Pakistan
    1860.08%30.05%540.05%00.00%00.00%Romania
    1950.07%50.08%2380.23%00.00%00.00%Spain
    2040.05%10.02%80.01%00.00%00.00%Czech Republic
    2130.04%20.03%390.04%00.00%00.00%Austria
    2230.04%30.05%4100.40%00.00%00.00%Colombia
    2330.04%00.00%00.00%00.00%00.00%Korea (South)
    2420.03%00.00%00.00%00.00%00.00%Malaysia
    2510.01%10.02%2260.22%00.00%00.00%Argentina
    2610.01%00.00%00.00%00.00%00.00%Canada
    2710.01%10.02%2260.22%00.00%00.00%Switzerland
    2810.01%00.00%00.00%00.00%00.00%Hong Kong
    2910.01%00.00%00.00%00.00%00.00%Japan
    3010.01%10.02%2260.22%00.00%00.00%Sweden
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200706.html b/webalizer/usage_200706.html new file mode 100644 index 0000000..c047517 --- /dev/null +++ b/webalizer/usage_200706.html @@ -0,0 +1,3102 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - June 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: June 2007
    +Generated 01-Jul-2007 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for June 2007
    Total Hits9331
    Total Files6639
    Total Pages595
    Total Visits366
    Total kB Files156585
    Total kB In0
    Total kB Out0
    Total Unique Sites246
    Total Unique URLs487
    Total Unique Referrers59
    Total Unique Usernames1
    Total Unique User Agents36
    .Avg Max
    Hits per Hour12355
    Hits per Day311861
    Files per Day221642
    Pages per Day1944
    Visits per Day1221
    kB Files per Day521916094
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK6639
    Code 206 - Partial Content4
    Code 302 - Found1622
    Code 304 - Not Modified62
    Code 401 - Unauthorized46
    Code 403 - Forbidden37
    Code 404 - Not Found920
    Code 406 - Not Acceptable1
    +

    + +Daily usage for June 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for June 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    12913.12%2463.71%274.54%184.92%208.13%101116.46%00.00%00.00%
    22652.84%2183.28%213.53%133.55%197.72%37152.37%00.00%00.00%
    32722.92%2283.43%213.53%133.55%239.35%32822.10%00.00%00.00%
    42292.45%1902.86%122.02%102.73%197.72%50293.21%00.00%00.00%
    51671.79%1321.99%172.86%92.46%187.32%15751.01%00.00%00.00%
    61411.51%1131.70%111.85%71.91%208.13%32782.09%00.00%00.00%
    72202.36%1642.47%325.38%164.37%249.76%27801.78%00.00%00.00%
    81341.44%981.48%233.87%113.01%187.32%14860.95%00.00%00.00%
    92002.14%1502.26%132.18%71.91%176.91%16101.03%00.00%00.00%
    102132.28%1442.17%132.18%102.73%176.91%21291.36%00.00%00.00%
    112022.16%1732.61%91.51%92.46%197.72%64134.10%00.00%00.00%
    123623.88%3074.62%447.39%215.74%5321.54%39942.55%00.00%00.00%
    132742.94%2243.37%305.04%184.92%2811.38%48943.13%00.00%00.00%
    141651.77%1061.60%213.53%154.10%2811.38%28161.80%00.00%00.00%
    151481.59%1141.72%254.20%154.10%218.54%11280.72%00.00%00.00%
    162232.39%1772.67%172.86%113.01%218.54%29621.89%00.00%00.00%
    171621.74%1091.64%254.20%143.83%208.13%11300.72%00.00%00.00%
    181661.78%1281.93%183.03%113.01%197.72%24751.58%00.00%00.00%
    191181.26%801.21%183.03%113.01%187.32%15581.00%00.00%00.00%
    201421.52%1151.73%91.51%71.91%176.91%26491.69%00.00%00.00%
    212062.21%1692.55%244.03%154.10%239.35%19181.22%00.00%00.00%
    221231.32%801.21%193.19%113.01%239.35%15350.98%00.00%00.00%
    234925.27%2874.32%132.18%92.46%197.72%88735.67%00.00%00.00%
    246206.64%4126.21%203.36%113.01%228.94%101166.46%00.00%00.00%
    255636.03%3465.21%183.03%123.28%187.32%111127.10%00.00%00.00%
    265285.66%3144.73%152.52%102.73%187.32%103526.61%00.00%00.00%
    278619.23%6429.67%213.53%113.01%239.35%1609410.28%00.00%00.00%
    285525.92%3184.79%193.19%164.37%249.76%101566.49%00.00%00.00%
    298549.15%6239.38%325.38%184.92%2510.16%122677.83%00.00%00.00%
    304384.69%2323.49%81.34%71.91%176.91%91495.84%00.00%00.00%
    +

    + +Hourly usage for June 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for June 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0144394.70%103084.64%0284.71%27281475.20%000.00%000.00%
    1123764.03%82513.78%0254.20%17552623.36%000.00%000.00%
    2113433.68%72193.30%0264.37%27281695.22%000.00%000.00%
    3103053.27%72133.21%0172.86%18755963.57%000.00%000.00%
    4113383.62%72363.55%0203.36%18555473.54%000.00%000.00%
    5113393.63%72273.42%1315.21%17251483.29%000.00%000.00%
    6103263.49%72253.39%0183.03%15245522.91%000.00%000.00%
    7113363.60%72163.25%0152.52%22366894.27%000.00%000.00%
    8103083.30%72163.25%0132.18%21564494.12%000.00%000.00%
    9103283.52%82513.78%0233.87%19057093.65%000.00%000.00%
    10103073.29%72123.19%0254.20%19959803.82%000.00%000.00%
    11164895.24%123665.51%1498.24%20561623.93%000.00%000.00%
    12123673.93%82413.63%0233.87%19257493.67%000.00%000.00%
    13113423.67%62033.06%0223.70%14543442.77%000.00%000.00%
    14134064.35%92804.22%1315.21%14543432.77%000.00%000.00%
    15226787.27%185638.48%1355.88%27080895.17%000.00%000.00%
    16123693.95%82593.90%0122.02%17351813.31%000.00%000.00%
    17133914.19%92854.29%1315.21%28184295.38%000.00%000.00%
    18236927.42%195728.62%1396.55%30591365.83%000.00%000.00%
    19144464.78%103294.96%1406.72%21263694.07%000.00%000.00%
    20123663.92%72163.25%0203.36%18956743.62%000.00%000.00%
    21134154.45%103054.59%0233.87%463139058.88%000.00%000.00%
    22113363.60%82493.75%0152.52%21765104.16%000.00%000.00%
    2392893.10%61972.97%0142.35%18254473.48%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 487 Total URLs
    #HitskB FkB InkB OutURL
    1393942.21%9293059.35%00.00%00.00%/phpBB2/viewtopic.php
    23924.20%40562.59%00.00%00.00%/phpBB2/login.php
    33093.31%50913.25%00.00%00.00%/phpBB2/
    41291.38%22681.45%00.00%00.00%/phpBB2/search.php
    5870.93%2540.16%00.00%00.00%/News/
    6820.88%1370.09%00.00%00.00%/News/permalink.php
    7530.57%600.04%00.00%00.00%/styles/header.css
    8500.54%4060.26%00.00%00.00%/Pics/logo-100.png
    9500.54%60.00%00.00%00.00%/styles/main.css
    10480.51%6440.41%00.00%00.00%/phpBB2/profile.php
    11410.44%16821.07%00.00%00.00%/phpBB2/viewforum.php
    12290.31%360.02%00.00%00.00%/phppages/foto.php
    13270.29%200.01%00.00%00.00%/styles/newspage.css
    14260.28%110.01%00.00%00.00%/Pics/xml.png
    15250.27%60.00%00.00%00.00%/Pics/newsitem_ur.png
    16240.26%60.00%00.00%00.00%/Pics/newsitem_ul.png
    17190.20%220.01%00.00%00.00%/favicon.ico
    18170.18%50.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    19140.15%1761511.25%00.00%00.00%/Pictures/20060429_chello_extreme.png
    20140.15%1160.07%00.00%00.00%/phpBB2/viewonline.php
    21120.13%1550.10%00.00%00.00%/phpBB2/groupcp.php
    22100.11%1520.10%00.00%00.00%/phpBB2/memberlist.php
    2390.10%280.02%00.00%00.00%/Pictures/20070206_Domburg/
    2480.09%2940.19%00.00%00.00%/phpBB2/faq.php
    2570.08%10.00%00.00%00.00%/
    2670.08%290.02%00.00%00.00%/phppages/rss.php
    2730.03%340.02%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    2820.02%30.00%00.00%00.00%/Linux/logitech.shtml
    2920.02%10.00%00.00%00.00%/Pictures/
    3020.02%340.02%00.00%00.00%/Pictures/20050409_New_York/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 487 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1393942.21%9293059.35%00.00%00.00%/phpBB2/viewtopic.php
    2140.15%1761511.25%00.00%00.00%/Pictures/20060429_chello_extreme.png
    33093.31%50913.25%00.00%00.00%/phpBB2/
    43924.20%40562.59%00.00%00.00%/phpBB2/login.php
    51291.38%22681.45%00.00%00.00%/phpBB2/search.php
    6410.44%16821.07%00.00%00.00%/phpBB2/viewforum.php
    7480.51%6440.41%00.00%00.00%/phpBB2/profile.php
    8500.54%4060.26%00.00%00.00%/Pics/logo-100.png
    980.09%2940.19%00.00%00.00%/phpBB2/faq.php
    10870.93%2540.16%00.00%00.00%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 12 Total Entry Pages
    #HitsVisitsURL
    13093.31%13456.30%/phpBB2/
    2870.93%6928.99%/News/
    370.08%114.62%/
    490.10%72.94%/Pictures/20070206_Domburg/
    520.02%72.94%/secured/Pictures/200607_The_Long_Swell/
    620.02%20.84%/Pictures/
    730.03%20.84%/Pictures/20051112_COS_Garden_of_the_Gods/
    820.02%20.84%http://frederik.gotdns.org/phpBB2/
    910.01%10.42%/Linux/
    1010.01%10.42%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Exit Pages
    #HitsVisitsURL
    13093.31%2655.32%/phpBB2/
    2870.93%1327.66%/News/
    320.02%48.51%/secured/Pictures/200607_The_Long_Swell/
    490.10%24.26%/Pictures/20070206_Domburg/
    520.02%12.13%/Pictures/20050409_New_York/
    630.03%12.13%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 246 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1155316.64%136520.56%86705.54%00.00%00.00%339.02%66.249.73.165
    26476.93%6449.70%70874.53%00.00%00.00%20.55%81.165.163.76
    36236.68%3685.54%134888.61%00.00%00.00%41.09%65.55.210.73
    45866.28%3044.58%101956.51%00.00%00.00%51.37%65.55.210.79
    55676.08%3385.09%122577.83%00.00%00.00%164.37%65.55.210.72
    65616.01%2994.50%108266.91%00.00%00.00%102.73%65.55.210.80
    75585.98%3385.09%107286.85%00.00%00.00%174.64%65.55.210.71
    85585.98%3284.94%117187.48%00.00%00.00%10.27%65.55.210.78
    95455.84%5127.71%33312.13%00.00%00.00%41.09%66.249.73.105
    104154.45%2313.48%79625.08%00.00%00.00%00.00%65.55.210.70
    112772.97%1722.59%70834.52%00.00%00.00%00.00%65.55.210.81
    121882.01%1682.53%10890.70%00.00%00.00%41.09%66.249.72.111
    131771.90%1722.59%12870.82%00.00%00.00%20.55%134.58.179.8
    141471.58%991.49%55763.56%00.00%00.00%174.64%65.55.213.103
    151101.18%310.47%4940.32%00.00%00.00%328.74%207.46.98.143
    16900.96%530.80%10840.69%00.00%00.00%71.91%207.46.98.142
    17900.96%330.50%570.04%00.00%00.00%102.73%213.132.155.38
    18600.64%300.45%5360.34%00.00%00.00%102.73%195.244.128.215
    19480.51%240.36%4290.27%00.00%00.00%82.19%66.197.22.90
    20370.40%360.54%720.05%00.00%00.00%82.19%193.190.253.146
    21330.35%220.33%7980.51%00.00%00.00%00.00%65.55.210.82
    22290.31%140.21%3670.23%00.00%00.00%10.27%207.46.98.144
    23290.31%290.44%380.02%00.00%00.00%00.00%83.186.23.107
    24290.31%290.44%340.02%00.00%00.00%00.00%84.195.196.18
    25280.30%280.42%360.02%00.00%00.00%00.00%124.100.254.195
    26280.30%170.26%4800.31%00.00%00.00%20.55%207.46.98.141
    27280.30%280.42%340.02%00.00%00.00%00.00%83.85.92.181
    28270.29%270.41%520.03%00.00%00.00%00.00%193.173.152.140
    29270.29%270.41%310.02%00.00%00.00%00.00%81.165.73.28
    30270.29%270.41%320.02%00.00%00.00%00.00%81.244.244.83
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 246 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    16236.68%3685.54%134888.61%00.00%00.00%41.09%65.55.210.73
    25676.08%3385.09%122577.83%00.00%00.00%164.37%65.55.210.72
    35585.98%3284.94%117187.48%00.00%00.00%10.27%65.55.210.78
    45616.01%2994.50%108266.91%00.00%00.00%102.73%65.55.210.80
    55585.98%3385.09%107286.85%00.00%00.00%174.64%65.55.210.71
    65866.28%3044.58%101956.51%00.00%00.00%51.37%65.55.210.79
    7155316.64%136520.56%86705.54%00.00%00.00%339.02%66.249.73.165
    84154.45%2313.48%79625.08%00.00%00.00%00.00%65.55.210.70
    96476.93%6449.70%70874.53%00.00%00.00%20.55%81.165.163.76
    102772.97%1722.59%70834.52%00.00%00.00%00.00%65.55.210.81
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 59 Total Referrers
    #HitsReferrer
    11761.89%frederik.gotdns.org/phpBB2/index.php
    2951.02%frederik.gotdns.org/profile.php
    3900.96%frederik.gotdns.org/phpBB2/login.php
    4880.94%frederik.gotdns.org/viewforum.php
    5770.83%frederik.gotdns.org/:1976/phpBB2/index.php
    6340.36%frederik.gotdns.org/
    7250.27%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    8190.20%images.google.com/imgres
    970.08%www.vanrenterghem.biz/
    1060.06%frederik.gotdns.org/posting.php
    1160.06%www.google.be/search
    1260.06%www.vanrenterghem.biz/secured/Pictures/index.shtml
    1350.05%images.google.ca/imgres
    1440.04%frederik.gotdns.org/phpBB2/indeforum.php
    1540.04%frederik.gotdns.org/phpbb2/indeforum.php
    1640.04%images.google.co.uk/imgres
    1740.04%images.google.hu/imgres
    1840.04%images.google.pl/imgres
    1940.04%www.google.com/search
    2040.04%www.google.nl/search
    2130.03%images.google.co.nz/imgres
    2230.03%vanrenterghem.biz/
    2330.03%vanrenterghem.biz/About/index.shtml
    2420.02%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    2520.02%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    2620.02%frederik.gotdns.org/phpBB2/viewforum.php
    2720.02%images.google.be/imgres
    2820.02%images.google.com/images
    2920.02%images.google.gr/imgres
    3020.02%images.google.nl/imgres
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Search Strings
    #HitsSearch String
    1222.22%a big picture of surf wax
    2222.22%new orleans art
    3111.11%100mbps internet connectio-
    4111.11%beaune france
    5111.11%chello
    6111.11%domburg nl
    7111.11%localhost --mark--
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    16346.79%6349.55%70624.51%00.00%00.00%20.55%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 36 Total User Agents
    #HitsUser Agent
    1443847.56%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    2231624.82%Googlebot/2.1
    3139614.96%MSIE 6.0
    44865.21%Mozilla/5.0
    52002.14%MSIE 7.0
    61471.58%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    71101.18%Yahoo! Slurp
    8400.43%Konqueror/3.5
    9320.34%Opera 8.0
    10190.20%Nokia6131/2.0 (05.50) Profile/MIDP-2.0 Configuration/CLDC-1.1
    11170.18%findlinks/1.1.4-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/)
    12150.16%Powermarks/3.5
    13120.13%MSIE 2.0
    14110.12%Opera 8.5
    15100.11%Mozilla/4.7
    +

    + +Usage by Location for June 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 31 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1732578.50%495274.59%12022976.78%00.00%00.00%United States
    2114012.22%107316.16%103056.58%00.00%00.00%Belgium
    31471.58%1472.21%4660.30%00.00%00.00%Netherlands
    41001.07%450.68%21201.35%00.00%00.00%Germany
    5920.99%440.66%7940.51%00.00%00.00%Russian Federation
    6820.88%630.95%21801.39%00.00%00.00%Unresolved/Unknown
    7790.85%370.56%6700.43%00.00%00.00%Latvia
    8470.50%390.59%29801.90%00.00%00.00%Great Britain (UK)
    9470.50%290.44%16771.07%00.00%00.00%Poland
    10310.33%180.27%11830.76%00.00%00.00%France
    11280.30%280.42%360.02%00.00%00.00%Japan
    12270.29%270.41%13450.86%00.00%00.00%New Zealand (Aotearoa)
    13240.26%240.36%270.02%00.00%00.00%Morocco
    14230.25%200.30%42012.68%00.00%00.00%Canada
    15220.24%220.33%32032.05%00.00%00.00%Hungary
    16180.19%90.14%1610.10%00.00%00.00%Ukraine
    17150.16%120.18%13820.88%00.00%00.00%Czech Republic
    18130.14%70.11%3330.21%00.00%00.00%India
    19130.14%70.11%3330.21%00.00%00.00%Italy
    20120.13%60.09%1070.07%00.00%00.00%Estonia
    21120.13%60.09%1070.07%00.00%00.00%Israel
    22110.12%110.17%13160.84%00.00%00.00%Greece
    2390.10%60.09%150.01%00.00%00.00%Korea (South)
    2450.05%30.05%520.03%00.00%00.00%Moldova
    2520.02%10.02%2260.14%00.00%00.00%Iran
    2620.02%20.03%70.00%00.00%00.00%Sweden
    2710.01%10.02%2260.14%00.00%00.00%Denmark
    2810.01%10.02%2260.14%00.00%00.00%Lithuania
    2910.01%10.02%2260.14%00.00%00.00%Luxembourg
    3010.01%10.02%2260.14%00.00%00.00%Romania
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200707.html b/webalizer/usage_200707.html new file mode 100644 index 0000000..869364d --- /dev/null +++ b/webalizer/usage_200707.html @@ -0,0 +1,2827 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - July 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: July 2007
    +Generated 01-Aug-2007 06:26 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for July 2007
    Total Hits11827
    Total Files7828
    Total Pages584
    Total Visits356
    Total kB Files223334
    Total kB In0
    Total kB Out0
    Total Unique Sites153
    Total Unique URLs408
    Total Unique Referrers53
    Total Unique Usernames1
    Total Unique User Agents26
    .Avg Max
    Hits per Hour24368
    Hits per Day5911441
    Files per Day3911079
    Pages per Day2961
    Visits per Day1741
    kB Files per Day1116728261
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK7828
    Code 206 - Partial Content2
    Code 302 - Found3130
    Code 304 - Not Modified80
    Code 401 - Unauthorized23
    Code 403 - Forbidden22
    Code 404 - Not Found742
    +

    + +Daily usage for July 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for July 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    14764.02%2783.55%162.74%102.81%1610.46%83933.76%00.00%00.00%
    25074.29%3013.85%213.60%133.65%2214.38%97304.36%00.00%00.00%
    34894.13%2773.54%132.23%92.53%1811.76%84693.79%00.00%00.00%
    44213.56%2312.95%172.91%123.37%1811.76%82893.71%00.00%00.00%
    54023.40%2463.14%91.54%71.97%2918.95%82723.70%00.00%00.00%
    65624.75%3304.22%315.31%205.62%2818.30%92664.15%00.00%00.00%
    74513.81%2583.30%91.54%92.53%1711.11%88313.95%00.00%00.00%
    810598.95%7389.43%478.05%339.27%2214.38%206539.25%00.00%00.00%
    910829.15%7339.36%518.73%4111.52%1912.42%189098.47%00.00%00.00%
    10144112.18%107913.78%549.25%4111.52%2415.69%2293510.27%00.00%00.00%
    113112.63%2162.76%183.08%123.37%2818.30%59622.67%00.00%00.00%
    121901.61%1131.44%183.08%113.09%2516.34%19050.85%00.00%00.00%
    132692.27%1992.54%6010.27%82.25%2113.73%21570.97%00.00%00.00%
    142351.99%1511.93%122.05%51.40%117.19%27741.24%00.00%00.00%
    158547.22%5867.49%447.53%287.87%2214.38%2826112.65%00.00%00.00%
    1610558.92%7359.39%508.56%318.71%2013.07%2488111.14%00.00%00.00%
    17134811.40%92711.84%6110.45%349.55%2113.73%2469711.06%00.00%00.00%
    183653.09%2152.75%122.05%92.53%2013.07%60152.69%00.00%00.00%
    192241.89%1511.93%335.65%154.21%2113.73%21250.95%00.00%00.00%
    20860.73%640.82%81.37%82.25%117.19%8110.36%00.00%00.00%
    +

    + +Hourly usage for July 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for July 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0234784.04%153144.01%1254.28%39478763.53%000.00%000.00%
    1173482.94%112262.89%0111.88%28857622.58%000.00%000.00%
    2244974.20%153073.92%1244.11%38176143.41%000.00%000.00%
    3163222.72%102172.77%081.37%503100504.50%000.00%000.00%
    4224483.79%142873.67%1223.77%35170143.14%000.00%000.00%
    5255194.39%163294.20%1345.82%44989824.02%000.00%000.00%
    6255024.24%163274.18%1264.45%43386573.88%000.00%000.00%
    7295864.95%183724.75%0183.08%45290444.05%000.00%000.00%
    8285664.79%183644.65%1213.60%541108164.84%000.00%000.00%
    9234643.92%153144.01%1223.77%767153386.87%000.00%000.00%
    10224523.82%142993.82%1213.60%41983743.75%000.00%000.00%
    11224473.78%142943.76%1254.28%45089964.03%000.00%000.00%
    12285774.88%183634.64%1294.97%554110724.96%000.00%000.00%
    13275534.68%183764.80%1264.45%588117645.27%000.00%000.00%
    14265274.46%173574.56%37312.50%41082043.67%000.00%000.00%
    15438737.38%336768.64%1223.77%705141096.32%000.00%000.00%
    16153152.66%91982.53%0183.08%27555002.46%000.00%000.00%
    17204053.42%132613.33%0172.91%40681163.63%000.00%000.00%
    18285684.80%183704.73%1294.97%49799394.45%000.00%000.00%
    19224553.85%153103.96%0183.08%40280453.60%000.00%000.00%
    20275554.69%173424.37%1335.65%32765382.93%000.00%000.00%
    21234723.99%163224.11%1244.11%47795394.27%000.00%000.00%
    22214323.65%142903.70%1233.94%36172243.23%000.00%000.00%
    23234663.94%153134.00%0152.57%738147606.61%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 408 Total URLs
    #HitskB FkB InkB OutURL
    1365930.94%11645052.14%00.00%00.00%/phpBB2/viewtopic.php
    2184315.58%2500811.20%00.00%00.00%/phpBB2/login.php
    34153.51%69983.13%00.00%00.00%/phpBB2/
    43002.54%52672.36%00.00%00.00%/phpBB2/profile.php
    52011.70%37491.68%00.00%00.00%/phpBB2/search.php
    61681.42%118485.31%00.00%00.00%/phpBB2/viewforum.php
    71471.24%72143.23%00.00%00.00%/phpBB2/faq.php
    81090.92%15650.70%00.00%00.00%/phpBB2/groupcp.php
    91070.90%21580.97%00.00%00.00%/phpBB2/memberlist.php
    10520.44%1300.06%00.00%00.00%/News/
    11500.42%880.04%00.00%00.00%/News/permalink.php
    12310.26%330.01%00.00%00.00%/styles/header.css
    13290.25%30.00%00.00%00.00%/styles/main.css
    14260.22%600.03%00.00%00.00%/Pictures/20070206_Domburg/
    15250.21%1940.09%00.00%00.00%/Pics/logo-100.png
    16180.15%120.01%00.00%00.00%/styles/newspage.css
    17170.14%70.00%00.00%00.00%/Pics/xml.png
    18160.14%40.00%00.00%00.00%/Pics/newsitem_ul.png
    19160.14%40.00%00.00%00.00%/Pics/newsitem_ur.png
    20120.10%1510.07%00.00%00.00%/phpBB2/viewonline.php
    2180.07%105204.71%00.00%00.00%/Pictures/20060429_chello_extreme.png
    2280.07%110.00%00.00%00.00%/favicon.ico
    2380.07%90.00%00.00%00.00%/phppages/foto.php
    2470.06%10.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    2560.05%10.00%00.00%00.00%/
    2660.05%270.01%00.00%00.00%/phppages/rss.php
    2740.03%60.00%00.00%00.00%/news/permalink.php
    2810.01%30.00%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2910.01%10.00%00.00%00.00%/Pictures/
    3010.01%10.00%00.00%00.00%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 408 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1365930.94%11645052.14%00.00%00.00%/phpBB2/viewtopic.php
    2184315.58%2500811.20%00.00%00.00%/phpBB2/login.php
    31681.42%118485.31%00.00%00.00%/phpBB2/viewforum.php
    480.07%105204.71%00.00%00.00%/Pictures/20060429_chello_extreme.png
    51471.24%72143.23%00.00%00.00%/phpBB2/faq.php
    64153.51%69983.13%00.00%00.00%/phpBB2/
    73002.54%52672.36%00.00%00.00%/phpBB2/profile.php
    82011.70%37491.68%00.00%00.00%/phpBB2/search.php
    91070.90%21580.97%00.00%00.00%/phpBB2/memberlist.php
    101090.92%15650.70%00.00%00.00%/phpBB2/groupcp.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    14153.51%22275.00%/phpBB2/
    2520.44%4314.53%/News/
    3260.22%155.07%/Pictures/20070206_Domburg/
    410.01%72.36%/secured/Pictures/200607_The_Long_Swell/
    560.05%62.03%/
    610.01%10.34%/Pictures/
    710.01%10.34%/Pictures/200505_Amsterdam/
    810.01%10.34%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Exit Pages
    #HitsVisitsURL
    14153.51%11685.93%/phpBB2/
    2260.22%96.67%/Pictures/20070206_Domburg/
    3520.44%75.19%/News/
    410.01%21.48%/secured/Pictures/200607_The_Long_Swell/
    560.05%10.74%/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 153 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1142512.05%87011.11%2435610.91%00.00%00.00%308.43%65.55.210.71
    2139511.80%88311.28%2709912.13%00.00%00.00%298.15%65.55.210.78
    3139411.79%87311.15%2732012.23%00.00%00.00%277.58%65.55.210.73
    4134111.34%82210.50%2372910.62%00.00%00.00%267.30%65.55.210.79
    5130010.99%80010.22%2411510.80%00.00%00.00%287.87%65.55.210.80
    611639.83%7379.41%221589.92%00.00%00.00%205.62%65.55.210.72
    710468.84%91711.71%60632.71%00.00%00.00%215.90%66.249.72.111
    88387.09%5266.72%156677.02%00.00%00.00%185.06%65.55.210.81
    93272.76%3254.15%40481.81%00.00%00.00%10.28%81.165.163.76
    102542.15%1401.79%48892.19%00.00%00.00%00.00%65.55.210.70
    111641.39%881.12%1810.08%00.00%00.00%20.56%193.190.253.150
    121551.31%1321.69%21520.96%00.00%00.00%30.84%66.249.72.46
    131020.86%1001.28%52282.34%00.00%00.00%71.97%193.190.253.146
    14780.66%610.78%17510.78%00.00%00.00%82.25%65.55.213.103
    15440.37%440.56%2220.10%00.00%00.00%10.28%217.84.180.185
    16400.34%70.09%1380.06%00.00%00.00%133.65%207.46.98.143
    17360.30%160.20%2590.12%00.00%00.00%30.84%207.46.98.142
    18320.27%320.41%1130.05%00.00%00.00%10.28%217.136.251.94
    19300.25%300.38%890.04%00.00%00.00%82.25%158.169.131.14
    20270.23%270.34%630.03%00.00%00.00%00.00%81.244.221.226
    21240.20%120.15%2150.10%00.00%00.00%41.12%195.244.128.215
    22210.18%210.27%210.01%00.00%00.00%10.28%211.175.119.34
    23210.18%00.00%130.01%00.00%00.00%00.00%74.6.19.110
    24140.12%40.05%870.04%00.00%00.00%00.00%207.46.98.144
    25140.12%140.18%13330.60%00.00%00.00%10.28%75.80.116.205
    26130.11%100.13%13310.60%00.00%00.00%10.28%125.99.167.138
    27120.10%120.15%420.02%00.00%00.00%10.28%151.77.245.214
    28120.10%70.09%1250.06%00.00%00.00%20.56%203.223.151.231
    29120.10%60.08%1070.05%00.00%00.00%20.56%212.150.97.114
    30120.10%60.08%1070.05%00.00%00.00%20.56%216.32.81.18
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 153 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1139411.79%87311.15%2732012.23%00.00%00.00%277.58%65.55.210.73
    2139511.80%88311.28%2709912.13%00.00%00.00%298.15%65.55.210.78
    3142512.05%87011.11%2435610.91%00.00%00.00%308.43%65.55.210.71
    4130010.99%80010.22%2411510.80%00.00%00.00%287.87%65.55.210.80
    5134111.34%82210.50%2372910.62%00.00%00.00%267.30%65.55.210.79
    611639.83%7379.41%221589.92%00.00%00.00%205.62%65.55.210.72
    78387.09%5266.72%156677.02%00.00%00.00%185.06%65.55.210.81
    860.05%60.08%132805.95%00.00%00.00%00.00%203.196.46.66
    910468.84%91711.71%60632.71%00.00%00.00%215.90%66.249.72.111
    101020.86%1001.28%52282.34%00.00%00.00%71.97%193.190.253.146
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 53 Total Referrers
    #HitsReferrer
    1870.74%frederik.gotdns.org/phpBB2/index.php
    2490.41%frederik.gotdns.org/phpBB2/login.php
    3470.40%frederik.gotdns.org/profile.php
    4460.39%frederik.gotdns.org/viewforum.php
    5440.37%www.indo-surfer.com
    6320.27%frederik.gotdns.org/:1976/phpBB2/index.php
    7220.19%frederik.gotdns.org/
    8150.13%images.google.com/imgres
    960.05%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1050.04%www.vanrenterghem.biz/
    1140.03%images.google.be/imgres
    1240.03%images.google.fr/imgres
    1340.03%vanrenterghem.biz/About/index.shtml
    1440.03%www.bebo.com/PhotoUpload.jsp
    1540.03%www.google.com/search
    1630.03%frederik.gotdns.org/phpBB2/indeforum.php
    1730.03%frederik.gotdns.org/phpbb2/indeforum.php
    1830.03%images.google.co.in/imgres
    1930.03%images.google.it/imgres
    2030.03%images.google.se/imgres
    2120.02%forum.it2be.com/profile.php
    2220.02%frederik.gotdns.org/posting.php
    2320.02%korc.siteburg.com/phpBB2/profile.php
    2420.02%www.google.be/search
    2520.02%www.vanrenterghem.biz/phpBB2/index.php
    2620.02%www.vanrenterghem.biz/phppages/fotobiz.php
    2720.02%www.vanrenterghem.biz/secured/Pictures/index.shtml
    2810.01%66.249.91.104/translate_c
    2910.01%dearcomputer.nl/gir/
    3010.01%frederik.gotdns.org/login.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Search Strings
    #HitsSearch String
    1233.33%d-link de-809tp
    2116.67%cocktails art
    3116.67%frederik vanrenterghem
    4116.67%frederik.gotdns.org
    5116.67%surf wax
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    13192.70%3194.08%40351.81%00.00%00.00%20.56%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 26 Total User Agents
    #HitsUser Agent
    1920677.84%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    2118410.01%Googlebot/2.1
    35364.53%MSIE 6.0
    43062.59%Mozilla/5.0
    52151.82%MSIE 7.0
    6940.79%Yahoo! Slurp
    7780.66%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    8510.43%MSIE 5.0
    9270.23%MSIE 5.1
    10170.14%Googlebot-Image/1.0
    11160.14%Mozilla/4.0 (compatible;)
    12150.13%MSIE 5.5
    13150.13%Opera 9.0
    14130.11%Opera 9.2
    15130.11%findlinks/1.1.4-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/)
    +

    + +Usage by Location for July 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 24 of 24 Total Locations
    #HitsFileskB FkB InkB OutLocation
    11070490.50%692088.40%18540283.02%00.00%00.00%United States
    26795.74%5997.65%114345.12%00.00%00.00%Belgium
    3870.74%650.83%5800.26%00.00%00.00%Germany
    4600.51%400.51%17320.78%00.00%00.00%Unresolved/Unknown
    5440.37%260.33%16270.73%00.00%00.00%Latvia
    6410.35%220.28%3830.17%00.00%00.00%Israel
    7350.30%170.22%2990.13%00.00%00.00%Russian Federation
    8300.25%300.38%890.04%00.00%00.00%Luxembourg
    9270.23%240.31%750.03%00.00%00.00%Korea (South)
    10270.23%140.18%2510.11%00.00%00.00%Ukraine
    11260.22%210.27%30841.38%00.00%00.00%France
    12130.11%100.13%13310.60%00.00%00.00%India
    13130.11%130.17%430.02%00.00%00.00%Italy
    14120.10%70.09%1250.06%00.00%00.00%Malaysia
    1570.06%60.08%132805.95%00.00%00.00%Australia
    1660.05%30.04%540.02%00.00%00.00%Poland
    1740.03%40.05%40.00%00.00%00.00%Taiwan
    1830.03%30.04%4520.20%00.00%00.00%Netherlands
    1920.02%20.03%2270.10%00.00%00.00%Canada
    2020.02%10.01%2270.10%00.00%00.00%Great Britain (UK)
    2120.02%00.00%00.00%00.00%00.00%Japan
    2210.01%10.01%50.00%00.00%00.00%Brazil
    2310.01%10.01%13150.59%00.00%00.00%Iran
    2410.01%10.01%13150.59%00.00%00.00%Peru
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200708.html b/webalizer/usage_200708.html new file mode 100644 index 0000000..d2e760c --- /dev/null +++ b/webalizer/usage_200708.html @@ -0,0 +1,3057 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - August 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: August 2007
    +Generated 01-Sep-2007 06:27 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for August 2007
    Total Hits5645
    Total Files3982
    Total Pages634
    Total Visits393
    Total kB Files106475
    Total kB In0
    Total kB Out0
    Total Unique Sites187
    Total Unique URLs185
    Total Unique Referrers56
    Total Unique Usernames1
    Total Unique User Agents24
    .Avg Max
    Hits per Hour7100
    Hits per Day182588
    Files per Day128490
    Pages per Day2045
    Visits per Day1222
    kB Files per Day343514812
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK3982
    Code 206 - Partial Content1
    Code 302 - Found613
    Code 304 - Not Modified43
    Code 401 - Unauthorized35
    Code 403 - Forbidden90
    Code 404 - Not Found881
    +

    + +Daily usage for August 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for August 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1741.31%531.33%152.37%41.02%105.35%2980.28%00.00%00.00%
    21993.53%1353.39%101.58%71.78%2312.30%48364.54%00.00%00.00%
    31041.84%651.63%132.05%92.29%1910.16%14621.37%00.00%00.00%
    4991.75%651.63%223.47%153.82%189.63%31142.92%00.00%00.00%
    5611.08%360.90%132.05%61.53%136.95%5280.50%00.00%00.00%
    61973.49%1473.69%233.63%153.82%2312.30%48784.58%00.00%00.00%
    72314.09%1704.27%213.31%164.07%179.09%32903.09%00.00%00.00%
    82474.38%1573.94%457.10%225.60%2211.76%50834.77%00.00%00.00%
    91182.09%711.78%152.37%112.80%2010.70%12691.19%00.00%00.00%
    101242.20%731.83%243.79%164.07%2010.70%25932.44%00.00%00.00%
    111332.36%952.39%111.74%92.29%179.09%30512.87%00.00%00.00%
    123275.79%2375.95%193.00%143.56%179.09%66916.28%00.00%00.00%
    1358810.42%49012.31%345.36%215.34%189.63%1475813.86%00.00%00.00%
    145519.76%46611.70%142.21%112.80%147.49%1481213.91%00.00%00.00%
    152153.81%1604.02%40.63%41.02%136.95%49244.62%00.00%00.00%
    161823.22%1243.11%294.57%184.58%2814.97%28082.64%00.00%00.00%
    171983.51%1283.21%325.05%164.07%2513.37%20131.89%00.00%00.00%
    182133.77%1393.49%203.15%164.07%2312.30%36753.45%00.00%00.00%
    191282.27%852.13%193.00%133.31%115.88%28982.72%00.00%00.00%
    202704.78%2155.40%314.89%215.34%168.56%47424.45%00.00%00.00%
    212033.60%1313.29%253.94%143.56%189.63%22832.14%00.00%00.00%
    22781.38%401.00%111.74%102.54%168.56%9440.89%00.00%00.00%
    231692.99%1142.86%243.79%184.58%2111.23%27462.58%00.00%00.00%
    242354.16%1533.84%314.89%133.31%179.09%26772.51%00.00%00.00%
    251452.57%1022.56%172.68%123.05%1910.16%15121.42%00.00%00.00%
    261532.71%912.29%375.84%174.33%168.56%22322.10%00.00%00.00%
    271081.91%661.66%223.47%133.31%2211.76%18821.77%00.00%00.00%
    281272.25%771.93%243.79%143.56%179.09%14261.34%00.00%00.00%
    29711.26%441.10%101.58%61.53%147.49%14041.32%00.00%00.00%
    30651.15%350.88%162.52%92.29%179.09%11961.12%00.00%00.00%
    31320.57%180.45%30.47%30.76%115.88%4520.42%00.00%00.00%
    +

    + +Hourly usage for August 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for August 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    092794.94%62035.10%0294.57%19460215.66%000.00%000.00%
    161913.38%41293.24%0213.31%13642233.97%000.00%000.00%
    292825.00%62025.07%1325.05%21867666.35%000.00%000.00%
    361973.49%41353.39%0203.15%15046394.36%000.00%000.00%
    462043.61%41313.29%0284.42%18055735.23%000.00%000.00%
    582634.66%51804.52%1487.57%13842744.01%000.00%000.00%
    662053.63%41353.39%1314.89%10933803.17%000.00%000.00%
    772324.11%51684.22%0193.00%17453875.06%000.00%000.00%
    851652.92%31122.81%0162.52%7623582.21%000.00%000.00%
    982644.68%51854.65%0274.26%12037073.48%000.00%000.00%
    1092804.96%62055.15%0243.79%18657585.41%000.00%000.00%
    1182524.46%51824.57%0253.94%14645194.24%000.00%000.00%
    1251753.10%31233.09%0142.21%7222192.08%000.00%000.00%
    1372264.00%41543.87%0253.94%15347504.46%000.00%000.00%
    1441352.39%3992.49%0132.05%10632873.09%000.00%000.00%
    1562133.77%41453.64%0274.26%10933863.18%000.00%000.00%
    1672213.91%41423.57%0132.05%11936813.46%000.00%000.00%
    1772334.13%41333.34%1436.78%12438443.61%000.00%000.00%
    18113576.32%92927.33%1385.99%23472636.82%000.00%000.00%
    19103335.90%72466.18%1446.94%10733163.11%000.00%000.00%
    2072334.13%61864.67%0203.15%11636093.39%000.00%000.00%
    2172384.22%51704.27%0253.94%20362905.91%000.00%000.00%
    2282574.55%51794.50%1375.84%16450884.78%000.00%000.00%
    2362103.72%41463.67%0152.37%10131372.95%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 185 Total URLs
    #HitskB FkB InkB OutURL
    1131823.35%4240939.83%00.00%00.00%/phpBB2/viewtopic.php
    264611.44%84007.89%00.00%00.00%/phpBB2/login.php
    34007.09%73346.89%00.00%00.00%/phpBB2/
    41993.53%37913.56%00.00%00.00%/phpBB2/search.php
    51833.24%89388.39%00.00%00.00%/phpBB2/faq.php
    61652.92%24162.27%00.00%00.00%/phpBB2/groupcp.php
    71602.83%32433.05%00.00%00.00%/phpBB2/memberlist.php
    81552.75%25612.41%00.00%00.00%/phpBB2/profile.php
    9701.24%44234.15%00.00%00.00%/phpBB2/viewforum.php
    10681.20%1350.13%00.00%00.00%/News/permalink.php
    11380.67%1260.12%00.00%00.00%/News/
    12330.58%40.00%00.00%00.00%/styles/main.css
    13320.57%380.04%00.00%00.00%/styles/header.css
    14240.43%80.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    15170.30%1330.12%00.00%00.00%/Pics/logo-100.png
    16130.23%1430.13%00.00%00.00%/phpBB2/viewonline.php
    17110.19%40.00%00.00%00.00%/Pics/xml.png
    18100.18%100.01%00.00%00.00%/favicon.ico
    19100.18%140.01%00.00%00.00%/phppages/foto.php
    20100.18%70.01%00.00%00.00%/styles/newspage.css
    2190.16%20.00%00.00%00.00%/Pics/newsitem_ul.png
    2290.16%20.00%00.00%00.00%/Pics/newsitem_ur.png
    2360.11%78907.41%00.00%00.00%/Pictures/20060429_chello_extreme.png
    2460.11%240.02%00.00%00.00%/Pictures/20070206_Domburg/
    2560.11%270.03%00.00%00.00%/phppages/rss.php
    2630.05%340.03%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    2730.05%80.01%00.00%00.00%/phpBB2/admin/
    2820.04%30.00%00.00%00.00%/tmp/Skivakantie_maart_2007.html
    2910.02%20.00%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    3010.02%50.00%00.00%00.00%/phpBB2/admin/admin_userlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 185 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1131823.35%4240939.83%00.00%00.00%/phpBB2/viewtopic.php
    21833.24%89388.39%00.00%00.00%/phpBB2/faq.php
    364611.44%84007.89%00.00%00.00%/phpBB2/login.php
    460.11%78907.41%00.00%00.00%/Pictures/20060429_chello_extreme.png
    54007.09%73346.89%00.00%00.00%/phpBB2/
    6701.24%44234.15%00.00%00.00%/phpBB2/viewforum.php
    71993.53%37913.56%00.00%00.00%/phpBB2/search.php
    81602.83%32433.05%00.00%00.00%/phpBB2/memberlist.php
    91552.75%25612.41%00.00%00.00%/phpBB2/profile.php
    101652.92%24162.27%00.00%00.00%/phpBB2/groupcp.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Entry Pages
    #HitsVisitsURL
    14007.09%23983.28%/phpBB2/
    2380.67%3612.54%/News/
    360.11%62.09%/Pictures/20070206_Domburg/
    430.05%31.05%/Pictures/20051112_COS_Garden_of_the_Gods/
    520.04%20.70%/tmp/Skivakantie_maart_2007.html
    610.02%10.35%http://frederik.gotdns.org/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Exit Pages
    #HitsVisitsURL
    14007.09%7687.36%/phpBB2/
    2380.67%55.75%/News/
    360.11%33.45%/Pictures/20070206_Domburg/
    430.05%22.30%/Pictures/20051112_COS_Garden_of_the_Gods/
    510.02%11.15%/secured/Pictures/20070217_Parijs/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 187 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    15359.48%41710.47%54845.15%00.00%00.00%153.82%66.249.65.173
    24848.57%3378.46%97979.20%00.00%00.00%389.67%65.55.210.80
    34698.31%3388.49%101989.58%00.00%00.00%246.11%65.55.210.78
    44538.02%3398.51%98809.28%00.00%00.00%266.62%65.55.210.79
    54517.99%3137.86%90578.51%00.00%00.00%194.83%65.55.210.73
    64067.19%3027.58%88618.32%00.00%00.00%184.58%65.55.210.81
    73726.59%2596.50%78587.38%00.00%00.00%133.31%65.55.210.72
    83496.18%2576.45%76497.18%00.00%00.00%246.11%65.55.210.71
    92885.10%2135.35%63825.99%00.00%00.00%205.09%65.55.210.70
    102774.91%1694.24%21071.98%00.00%00.00%123.05%213.132.155.221
    111763.12%1393.49%35953.38%00.00%00.00%112.80%66.249.72.111
    121632.89%681.71%21952.06%00.00%00.00%348.65%207.46.98.143
    131362.41%1022.56%42393.98%00.00%00.00%82.04%65.55.213.103
    14931.65%531.33%11951.12%00.00%00.00%82.04%207.46.98.142
    15751.33%751.88%1080.10%00.00%00.00%30.76%193.190.253.150
    16651.15%461.16%13131.23%00.00%00.00%41.02%207.46.98.141
    17280.50%270.68%310.03%00.00%00.00%10.25%193.190.253.146
    18280.50%280.70%340.03%00.00%00.00%00.00%81.246.182.103
    19270.48%200.50%3030.28%00.00%00.00%30.76%194.150.174.50
    20270.48%270.68%320.03%00.00%00.00%00.00%85.243.33.172
    21260.46%260.65%290.03%00.00%00.00%00.00%84.196.188.135
    22230.41%230.58%280.03%00.00%00.00%10.25%84.197.247.245
    23200.35%140.35%2250.21%00.00%00.00%20.51%89.149.202.65
    24180.32%90.23%1610.15%00.00%00.00%30.76%62.85.45.65
    25170.30%00.00%110.01%00.00%00.00%00.00%74.6.19.112
    26130.23%00.00%140.01%00.00%00.00%00.00%68.142.212.220
    27120.21%60.15%1070.10%00.00%00.00%20.51%203.223.153.105
    28120.21%60.15%1070.10%00.00%00.00%20.51%89.149.197.241
    29120.21%00.00%130.01%00.00%00.00%41.02%89.77.80.235
    30110.19%110.28%13301.25%00.00%00.00%10.25%24.226.134.166
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 187 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    14698.31%3388.49%101989.58%00.00%00.00%246.11%65.55.210.78
    24538.02%3398.51%98809.28%00.00%00.00%266.62%65.55.210.79
    34848.57%3378.46%97979.20%00.00%00.00%389.67%65.55.210.80
    44517.99%3137.86%90578.51%00.00%00.00%194.83%65.55.210.73
    54067.19%3027.58%88618.32%00.00%00.00%184.58%65.55.210.81
    63726.59%2596.50%78587.38%00.00%00.00%133.31%65.55.210.72
    73496.18%2576.45%76497.18%00.00%00.00%246.11%65.55.210.71
    82885.10%2135.35%63825.99%00.00%00.00%205.09%65.55.210.70
    95359.48%41710.47%54845.15%00.00%00.00%153.82%66.249.65.173
    101362.41%1022.56%42393.98%00.00%00.00%82.04%65.55.213.103
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 56 Total Referrers
    #HitsReferrer
    11412.50%frederik.gotdns.org/phpBB2/index.php
    2771.36%frederik.gotdns.org/phpBB2/login.php
    3721.28%frederik.gotdns.org/viewforum.php
    4671.19%frederik.gotdns.org/profile.php
    5480.85%frederik.gotdns.org/:1976/phpBB2/index.php
    6290.51%frederik.gotdns.org/
    7180.32%search.live.com/result.aspx
    8160.28%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    960.11%frederik.gotdns.org/login.php
    1060.11%images.google.com/imgres
    1140.07%vanrenterghem.biz/About/index.shtml
    1230.05%frederik.gotdns.org/phpBB2/indeforum.php
    1330.05%frederik.gotdns.org/phpbb2/indeforum.php
    1430.05%vanrenterghem.biz/index.shtml
    1520.04%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    1620.04%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    1720.04%frederik.gotdns.org/phpBB2/memberlist.php
    1820.04%frederik.gotdns.org/phpBB2/viewtopic.php
    1920.04%images.google.co.in/imgres
    2020.04%images.google.com/images
    2120.04%images.google.nl/imgres
    2220.04%paydaycreditlive.com
    2320.04%vanrenterghem.biz/secured/Pictures/index.shtml
    2420.04%www.google.be/search
    2520.04%www.site.com
    2610.02%images.google.ca/imgres
    2710.02%images.google.com.ng/images
    2810.02%images.google.com.pk/imgres
    2910.02%images.google.com.tr/imgres
    3010.02%images.google.cz/imgres
    +

    + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Search Strings
    #HitsSearch String
    1150.00%chello
    2150.00%dlink switch
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1891.58%892.24%10310.97%00.00%00.00%10.25%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 24 Total User Agents
    #HitsUser Agent
    1361564.04%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    266411.76%Googlebot/2.1
    33646.45%MSIE 6.0
    43305.85%Mozilla/5.0
    51432.53%MSIE 7.0
    61362.41%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7981.74%Konqueror/3.5
    8591.05%Googlebot-Image/1.0
    9510.90%Apache/2.2.4 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    10480.85%Yahoo! Slurp
    11210.37%MSIE 5.5
    12200.35%Opera 8.0
    13180.32%Opera 7.5
    14130.23%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    15120.21%Opera 7.2
    +

    + +Usage by Location for August 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 30 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1472583.70%336384.46%9074485.23%00.00%00.00%United States
    24678.27%3548.89%23972.25%00.00%00.00%Belgium
    3741.31%370.93%21211.99%00.00%00.00%Unresolved/Unknown
    4500.89%260.65%6660.63%00.00%00.00%Russian Federation
    5410.73%250.63%4230.40%00.00%00.00%Germany
    6340.60%120.30%2250.21%00.00%00.00%Poland
    7330.58%230.58%3560.33%00.00%00.00%Ukraine
    8290.51%150.38%2670.25%00.00%00.00%Latvia
    9280.50%280.70%2570.24%00.00%00.00%Portugal
    10220.39%120.30%2120.20%00.00%00.00%Malaysia
    11170.30%80.20%1400.13%00.00%00.00%Korea (South)
    12130.23%110.28%13301.25%00.00%00.00%Canada
    13130.23%80.20%1490.14%00.00%00.00%Israel
    14120.21%110.28%17801.67%00.00%00.00%Netherlands
    15110.19%00.00%60.01%00.00%00.00%Pakistan
    16100.18%60.15%1050.10%00.00%00.00%Romania
    1790.16%70.18%11681.10%00.00%00.00%France
    1890.16%90.23%13521.27%00.00%00.00%Grenada
    1980.14%40.10%13381.26%00.00%00.00%India
    2070.12%40.10%740.07%00.00%00.00%Spain
    2170.12%30.08%550.05%00.00%00.00%Great Britain (UK)
    2270.12%40.10%2790.26%00.00%00.00%Turkey
    2360.11%30.08%540.05%00.00%00.00%Chile
    2460.11%30.08%540.05%00.00%00.00%Singapore
    2520.04%20.05%20.00%00.00%00.00%Luxembourg
    2610.02%10.03%2260.21%00.00%00.00%Australia
    2710.02%10.03%2260.21%00.00%00.00%Czech Republic
    2810.02%10.03%200.02%00.00%00.00%Estonia
    2910.02%10.03%2260.21%00.00%00.00%Saint Lucia
    3010.02%10.03%2260.21%00.00%00.00%Morocco
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200709.html b/webalizer/usage_200709.html new file mode 100644 index 0000000..4d1014f --- /dev/null +++ b/webalizer/usage_200709.html @@ -0,0 +1,3011 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - September 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: September 2007
    +Generated 01-Oct-2007 06:27 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for September 2007
    Total Hits2239
    Total Files1576
    Total Pages335
    Total Visits175
    Total kB Files30219
    Total kB In0
    Total kB Out0
    Total Unique Sites131
    Total Unique URLs457
    Total Unique Referrers50
    Total Unique Usernames1
    Total Unique User Agents27
    .Avg Max
    Hits per Hour3386
    Hits per Day74404
    Files per Day52392
    Pages per Day1135
    Visits per Day511
    kB Files per Day10075022
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK1576
    Code 206 - Partial Content1
    Code 302 - Found127
    Code 304 - Not Modified37
    Code 401 - Unauthorized37
    Code 403 - Forbidden83
    Code 404 - Not Found378
    +

    + +Daily usage for September 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for September 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1582.59%342.16%82.39%52.86%1410.69%7212.39%00.00%00.00%
    2773.44%311.97%3510.45%105.71%129.16%4721.56%00.00%00.00%
    3713.17%392.47%102.99%63.43%1612.21%11193.70%00.00%00.00%
    4391.74%181.14%102.99%31.71%75.34%4681.55%00.00%00.00%
    5452.01%171.08%113.28%63.43%1410.69%2690.89%00.00%00.00%
    6883.93%754.76%72.09%42.29%129.16%9633.19%00.00%00.00%
    7542.41%241.52%175.07%116.29%129.16%3371.12%00.00%00.00%
    8210.94%110.70%72.09%31.71%64.58%1810.60%00.00%00.00%
    9552.46%352.22%92.69%31.71%86.11%7242.39%00.00%00.00%
    101466.52%1096.92%144.18%95.14%1612.21%25438.41%00.00%00.00%
    111687.50%1408.88%41.19%42.29%1712.98%502216.62%00.00%00.00%
    12662.95%533.36%41.19%21.14%64.58%17535.80%00.00%00.00%
    13883.93%704.44%154.48%63.43%107.63%11773.89%00.00%00.00%
    14441.97%342.16%30.90%31.71%96.87%3391.12%00.00%00.00%
    15763.39%644.06%51.49%52.86%86.11%1260.42%00.00%00.00%
    16411.83%120.76%205.97%63.43%75.34%1630.54%00.00%00.00%
    17713.17%483.05%123.58%52.86%107.63%8482.81%00.00%00.00%
    18492.19%412.60%20.60%21.14%75.34%1570.52%00.00%00.00%
    19231.03%140.89%10.30%10.57%64.58%3521.16%00.00%00.00%
    20562.50%402.54%164.78%63.43%86.11%15605.16%00.00%00.00%
    21391.74%161.02%113.28%74.00%107.63%4191.39%00.00%00.00%
    22381.70%181.14%113.28%63.43%1410.69%5521.83%00.00%00.00%
    23723.22%442.79%154.48%84.57%129.16%7402.45%00.00%00.00%
    2440418.04%39224.87%92.69%63.43%86.11%502016.61%00.00%00.00%
    25562.50%382.41%144.18%84.57%139.92%7742.56%00.00%00.00%
    26873.89%644.06%164.78%95.14%139.92%17085.65%00.00%00.00%
    27964.29%462.92%102.99%84.57%118.40%2710.90%00.00%00.00%
    28251.12%90.57%123.58%63.43%86.11%900.30%00.00%00.00%
    29301.34%181.14%61.79%63.43%118.40%7142.36%00.00%00.00%
    30562.50%221.40%216.27%116.29%1511.45%6382.11%00.00%00.00%
    +

    + +Hourly usage for September 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for September 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    031024.56%2784.95%0154.48%4714214.70%000.00%000.00%
    11562.50%1352.22%0123.58%185471.81%000.00%000.00%
    22622.77%1332.09%0154.48%226612.19%000.00%000.00%
    32662.95%1412.60%0113.28%3911803.90%000.00%000.00%
    41592.64%1392.47%0102.99%288332.76%000.00%000.00%
    531104.91%3915.77%051.49%8425328.38%000.00%000.00%
    63934.15%1422.66%14112.24%3510543.49%000.00%000.00%
    72652.90%1402.54%092.69%308982.97%000.00%000.00%
    82793.53%1372.35%0205.97%278042.66%000.00%000.00%
    91512.28%0271.71%0144.18%144281.41%000.00%000.00%
    103944.20%2644.06%0164.78%5416225.37%000.00%000.00%
    111444219.74%1340825.89%0205.97%172517317.12%000.00%000.00%
    122652.90%1503.17%051.49%3911813.91%000.00%000.00%
    1331094.87%2865.46%0164.78%319393.11%000.00%000.00%
    1441285.72%2724.57%0247.16%5416115.33%000.00%000.00%
    1531004.47%2674.25%0113.28%339933.29%000.00%000.00%
    162713.17%1382.41%0247.16%247242.39%000.00%000.00%
    171572.55%0281.78%0144.18%185501.82%000.00%000.00%
    181361.61%0281.78%030.90%205951.97%000.00%000.00%
    191472.10%1332.09%082.39%175091.69%000.00%000.00%
    2031104.91%2895.65%082.39%3711143.69%000.00%000.00%
    2131084.82%2744.70%041.19%5014914.93%000.00%000.00%
    222652.90%1362.28%0175.07%339873.27%000.00%000.00%
    232642.86%1402.54%0133.88%7923747.85%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 457 Total URLs
    #HitskB FkB InkB OutURL
    127412.24%623720.64%00.00%00.00%/phpBB2/viewtopic.php
    21436.39%25508.44%00.00%00.00%/phpBB2/
    31135.05%14944.94%00.00%00.00%/phpBB2/login.php
    4672.99%12824.24%00.00%00.00%/phpBB2/search.php
    5602.68%29379.72%00.00%00.00%/phpBB2/faq.php
    6512.28%7472.47%00.00%00.00%/phpBB2/groupcp.php
    7512.28%10443.45%00.00%00.00%/phpBB2/memberlist.php
    8341.52%630.21%00.00%00.00%/News/permalink.php
    9341.52%5131.70%00.00%00.00%/phpBB2/profile.php
    10210.94%630.21%00.00%00.00%/News/
    11160.71%1240.41%00.00%00.00%/Pics/logo-100.png
    12160.71%180.06%00.00%00.00%/styles/header.css
    13160.71%20.01%00.00%00.00%/styles/main.css
    14110.49%30.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    15100.45%2880.95%00.00%00.00%/phpBB2/viewforum.php
    1690.40%120.04%00.00%00.00%/favicon.ico
    1780.36%110.03%00.00%00.00%/phppages/foto.php
    1850.22%760.25%00.00%00.00%/phpBB2/viewonline.php
    1940.18%10.00%00.00%00.00%/Pics/newsitem_ul.png
    2040.18%10.00%00.00%00.00%/Pics/newsitem_ur.png
    2140.18%20.01%00.00%00.00%/Pics/xml.png
    2240.18%190.06%00.00%00.00%/phppages/rss.php
    2340.18%30.01%00.00%00.00%/styles/newspage.css
    2430.13%120.04%00.00%00.00%/Pictures/20070206_Domburg/
    2530.13%140.05%00.00%00.00%/news/
    2620.09%60.02%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2720.09%510.17%00.00%00.00%/phpbb2/viewtopic.php
    2820.09%400.13%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    2910.04%10.00%00.00%00.00%/Pictures/200505_Amsterdam/
    3010.04%20.01%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 457 Total URLs By kB F
    #HitskB FkB InkB OutURL
    127412.24%623720.64%00.00%00.00%/phpBB2/viewtopic.php
    2602.68%29379.72%00.00%00.00%/phpBB2/faq.php
    31436.39%25508.44%00.00%00.00%/phpBB2/
    41135.05%14944.94%00.00%00.00%/phpBB2/login.php
    510.04%13154.35%00.00%00.00%/Pictures/20060429_chello_extreme.png
    6672.99%12824.24%00.00%00.00%/phpBB2/search.php
    7512.28%10443.45%00.00%00.00%/phpBB2/memberlist.php
    8512.28%7472.47%00.00%00.00%/phpBB2/groupcp.php
    9341.52%5131.70%00.00%00.00%/phpBB2/profile.php
    10100.45%2880.95%00.00%00.00%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    11436.39%6466.67%/phpBB2/
    2210.94%2020.83%/News/
    310.04%55.21%/secured/Pictures/200607_The_Long_Swell/
    430.13%22.08%/Pictures/20070206_Domburg/
    520.09%22.08%http://frederik.gotdns.org/phpBB2/
    610.04%11.04%/Pictures/200505_Amsterdam/
    710.04%11.04%/Pictures/20051112_COS_Garden_of_the_Gods/
    830.13%11.04%/news/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Exit Pages
    #HitsVisitsURL
    11436.39%1076.92%/phpBB2/
    2210.94%17.69%/News/
    330.13%17.69%/Pictures/20070206_Domburg/
    410.04%17.69%/secured/Pictures/200607_The_Long_Swell/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 131 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    142619.03%40325.57%442114.63%00.00%00.00%21.14%81.165.162.159
    21185.27%976.15%316910.49%00.00%00.00%52.86%65.55.210.80
    31084.82%724.57%4571.51%00.00%00.00%63.43%66.249.72.205
    41034.60%291.84%4881.61%00.00%00.00%2614.86%207.46.98.142
    51034.60%835.27%23997.94%00.00%00.00%21.14%65.55.210.81
    6924.11%704.44%25498.44%00.00%00.00%84.57%65.55.213.103
    7743.31%523.30%1280.42%00.00%00.00%10.57%193.190.253.150
    8733.26%392.47%8492.81%00.00%00.00%84.57%207.46.98.141
    9693.08%503.17%3191.05%00.00%00.00%10.57%66.249.72.43
    10622.77%442.79%10933.62%00.00%00.00%00.00%65.55.210.73
    11622.77%412.60%2120.70%00.00%00.00%42.29%66.249.72.50
    12562.50%00.00%580.19%00.00%00.00%74.00%213.132.155.221
    13562.50%392.47%9053.00%00.00%00.00%42.29%65.55.210.72
    14522.32%372.35%8622.85%00.00%00.00%21.14%65.55.210.79
    15482.14%352.22%7432.46%00.00%00.00%31.71%65.55.210.78
    16472.10%322.03%6942.30%00.00%00.00%84.57%65.55.210.71
    17462.05%130.82%3181.05%00.00%00.00%84.57%207.46.98.143
    18291.30%291.84%360.12%00.00%00.00%00.00%83.117.13.12
    19291.30%291.84%380.12%00.00%00.00%00.00%83.98.244.162
    20291.30%291.84%360.12%00.00%00.00%00.00%87.64.79.214
    21281.25%281.78%340.11%00.00%00.00%00.00%82.174.1.219
    22271.21%271.71%310.10%00.00%00.00%00.00%81.165.73.125
    23271.21%271.71%320.11%00.00%00.00%00.00%81.244.155.144
    24261.16%261.65%250.08%00.00%00.00%10.57%146.103.254.11
    25210.94%120.76%2510.83%00.00%00.00%10.57%207.46.98.140
    26180.80%130.82%1980.66%00.00%00.00%21.14%194.150.174.50
    27140.63%100.63%620.21%00.00%00.00%00.00%66.249.72.40
    28120.54%60.38%1070.35%00.00%00.00%21.14%62.85.45.65
    29120.54%60.38%1070.35%00.00%00.00%21.14%80.91.186.250
    30110.49%00.00%110.04%00.00%00.00%00.00%68.142.212.220
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 131 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    142619.03%40325.57%442114.63%00.00%00.00%21.14%81.165.162.159
    21185.27%976.15%316910.49%00.00%00.00%52.86%65.55.210.80
    3924.11%704.44%25498.44%00.00%00.00%84.57%65.55.213.103
    41034.60%835.27%23997.94%00.00%00.00%21.14%65.55.210.81
    5100.45%100.63%13304.40%00.00%00.00%10.57%72.156.231.251
    6622.77%442.79%10933.62%00.00%00.00%00.00%65.55.210.73
    7562.50%392.47%9053.00%00.00%00.00%42.29%65.55.210.72
    8522.32%372.35%8622.85%00.00%00.00%21.14%65.55.210.79
    9733.26%392.47%8492.81%00.00%00.00%84.57%207.46.98.141
    10482.14%352.22%7432.46%00.00%00.00%31.71%65.55.210.78
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 50 Total Referrers
    #HitsReferrer
    1914.06%frederik.gotdns.org/phpBB2/index.php
    2462.05%frederik.gotdns.org/viewforum.php
    3441.97%frederik.gotdns.org/phpBB2/login.php
    4441.97%frederik.gotdns.org/profile.php
    5311.38%frederik.gotdns.org/:1976/phpBB2/index.php
    6261.16%frederik.gotdns.org/
    7180.80%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    880.36%images.google.com/imgres
    950.22%frederik.gotdns.org/phpBB2/indeforum.php
    1050.22%www.vanrenterghem.biz/phppages/fotobiz.php
    1140.18%www.vanrenterghem.biz/secured/Pictures/index.shtml
    1230.13%www.google.be/search
    1320.09%frederik.gotdns.org/login.php
    1420.09%frederik.gotdns.org/phpbb2
    1520.09%www.google.com/search
    1620.09%www.vanrenterghem.biz/phpBB2/index.php
    1710.04%cheap-24h.com
    1810.04%frederik.gotdns.org//frederik.gotdns.org/:1976/phpBB2/index.php
    1910.04%frederik.gotdns.org/frederik.gotdns.org/:1976/phpBB2/index.php
    2010.04%frederik.gotdns.org/phpBB2/viewtopic.php
    2110.04%frederik.gotdns.org/phpbb2/indeforum.php
    2210.04%frederik.gotdns.org/phpbb2/index.php
    2310.04%images.google.co.uk/imgres
    2410.04%images.google.com/images
    2510.04%images.google.cz/imgres
    2610.04%images.google.es/imgres
    2710.04%startgoogle.startpagina.nl/
    2810.04%vanrenterghem.biz/About/index.shtml
    2910.04%vanrenterghem.biz/Pictures/index.shtml
    3010.04%vanrenterghem.biz/phpBB2/index.php
    +

    + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Search Strings
    #HitsSearch String
    1150.00%chello
    2150.00%surfer with board
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    137716.84%37723.92%438214.50%00.00%00.00%10.57%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 27 Total User Agents
    #HitsUser Agent
    174333.18%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    267330.06%MSIE 6.0
    325311.30%Googlebot/2.1
    41828.13%MSIE 7.0
    51285.72%Mozilla/5.0
    6924.11%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7562.50%Apache/2.2.4 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    8180.80%Yahoo! Slurp
    9130.58%Opera 6.0
    10110.49%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    1170.31%Opera 7.0
    1260.27%MSIE 5.5
    1360.27%Mozilla/3.0
    1460.27%OffByOne
    1560.27%Opera 7.1
    +

    + +Usage by Location for September 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 27 of 27 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1119053.15%76048.22%1824460.37%00.00%00.00%United States
    270031.26%59637.82%504516.70%00.00%00.00%Belgium
    3602.68%603.81%5241.73%00.00%00.00%Netherlands
    4492.19%301.90%5151.71%00.00%00.00%Ukraine
    5361.61%171.08%2950.98%00.00%00.00%Germany
    6281.25%171.08%13414.44%00.00%00.00%Unresolved/Unknown
    7241.07%120.76%2150.71%00.00%00.00%Latvia
    8241.07%70.44%3441.14%00.00%00.00%Poland
    9180.80%90.57%1610.53%00.00%00.00%Russian Federation
    10170.76%90.57%1600.53%00.00%00.00%Canada
    11170.76%110.70%3771.25%00.00%00.00%France
    12120.54%60.38%1070.35%00.00%00.00%Belarus
    13110.49%50.32%880.29%00.00%00.00%Lithuania
    1490.40%90.57%6932.29%00.00%00.00%Great Britain (UK)
    1580.36%50.32%2810.93%00.00%00.00%Sweden
    1660.27%40.25%710.24%00.00%00.00%Korea (South)
    1760.27%30.19%540.18%00.00%00.00%Turkey
    1850.22%30.19%520.17%00.00%00.00%Romania
    1940.18%20.13%390.13%00.00%00.00%Israel
    2030.13%10.06%210.07%00.00%00.00%Austria
    2130.13%20.13%70.02%00.00%00.00%Brazil
    2230.13%30.19%6612.19%00.00%00.00%Italy
    2320.09%20.13%2270.75%00.00%00.00%Spain
    2410.04%10.06%200.07%00.00%00.00%Bulgaria
    2510.04%10.06%2260.75%00.00%00.00%Czech Republic
    2610.04%10.06%2260.75%00.00%00.00%Hungary
    2710.04%10.06%2260.75%00.00%00.00%Thailand
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200710.html b/webalizer/usage_200710.html new file mode 100644 index 0000000..8bce36f --- /dev/null +++ b/webalizer/usage_200710.html @@ -0,0 +1,2970 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - October 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: October 2007
    +Generated 01-Nov-2007 06:28 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for October 2007
    Total Hits1394
    Total Files896
    Total Pages346
    Total Visits167
    Total kB Files13907
    Total kB In0
    Total kB Out0
    Total Unique Sites135
    Total Unique URLs113
    Total Unique Referrers42
    Total Unique Usernames1
    Total Unique User Agents25
    .Avg Max
    Hits per Hour191
    Hits per Day44167
    Files per Day28145
    Pages per Day1132
    Visits per Day510
    kB Files per Day4491820
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK896
    Code 302 - Found170
    Code 304 - Not Modified28
    Code 401 - Unauthorized14
    Code 403 - Forbidden69
    Code 404 - Not Found217
    +

    + +Daily usage for October 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for October 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1634.52%353.91%72.02%63.59%107.41%4793.45%00.00%00.00%
    2352.51%171.90%30.87%31.80%107.41%4963.57%00.00%00.00%
    3664.73%394.35%72.02%52.99%1611.85%13839.94%00.00%00.00%
    4463.30%273.01%41.16%42.40%107.41%2782.00%00.00%00.00%
    5463.30%212.34%133.76%105.99%85.93%4102.95%00.00%00.00%
    6302.15%192.12%92.60%52.99%64.44%3292.37%00.00%00.00%
    7382.73%161.79%216.07%84.79%85.93%2161.55%00.00%00.00%
    8312.22%171.90%102.89%52.99%75.19%2091.50%00.00%00.00%
    9312.22%161.79%154.34%105.99%107.41%2271.63%00.00%00.00%
    10332.37%192.12%133.76%74.19%53.70%2461.77%00.00%00.00%
    11332.37%171.90%133.76%74.19%85.93%2782.00%00.00%00.00%
    12654.66%485.36%164.62%84.79%139.63%3992.87%00.00%00.00%
    1370.50%40.45%00.00%00.00%32.22%210.15%00.00%00.00%
    14483.44%232.57%226.36%63.59%107.41%3032.18%00.00%00.00%
    15241.72%131.45%72.02%42.40%85.93%1551.12%00.00%00.00%
    16191.36%111.23%82.31%31.80%42.96%1320.95%00.00%00.00%
    17604.30%495.47%123.47%63.59%75.19%160911.57%00.00%00.00%
    18765.45%687.59%82.31%63.59%118.15%174712.56%00.00%00.00%
    19130.93%60.67%10.29%10.60%75.19%350.25%00.00%00.00%
    20100.72%50.56%20.58%10.60%42.96%640.46%00.00%00.00%
    21372.65%151.67%185.20%74.19%1410.37%1791.28%00.00%00.00%
    22211.51%131.45%72.02%52.99%96.67%1320.95%00.00%00.00%
    23171.22%101.12%41.16%21.20%32.22%980.71%00.00%00.00%
    24946.74%475.25%298.38%42.40%42.96%1310.94%00.00%00.00%
    2516711.98%14516.18%329.25%95.39%107.41%182013.09%00.00%00.00%
    26322.30%212.34%133.76%105.99%118.15%1180.85%00.00%00.00%
    27191.36%111.23%41.16%31.80%53.70%630.46%00.00%00.00%
    28644.59%333.68%257.23%84.79%118.15%5624.04%00.00%00.00%
    29483.44%353.91%92.60%63.59%85.93%9767.02%00.00%00.00%
    30271.94%161.79%61.73%42.40%75.19%1340.97%00.00%00.00%
    31946.74%808.93%82.31%42.40%53.70%6774.87%00.00%00.00%
    +

    + +Hourly usage for October 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for October 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    00271.94%0161.79%030.87%61871.34%000.00%000.00%
    10261.87%0161.79%072.02%51521.10%000.00%000.00%
    21433.08%0262.90%092.60%82461.77%000.00%000.00%
    31483.44%0252.79%0154.34%113332.40%000.00%000.00%
    41322.30%0202.23%051.45%82381.71%000.00%000.00%
    51423.01%0242.68%020.58%72031.46%000.00%000.00%
    62705.02%0252.79%14312.43%82531.82%000.00%000.00%
    71423.01%0252.79%0123.47%102992.15%000.00%000.00%
    81483.44%0273.01%092.60%103122.24%000.00%000.00%
    92634.52%1444.91%0123.47%56174012.51%000.00%000.00%
    101523.73%0283.12%0185.20%216584.73%000.00%000.00%
    111453.23%0303.35%082.31%237175.15%000.00%000.00%
    121614.38%1374.13%0164.62%144303.09%000.00%000.00%
    131584.16%1414.58%0174.91%82431.75%000.00%000.00%
    141412.94%0242.68%061.73%92761.98%000.00%000.00%
    151513.66%1353.91%0113.18%206064.36%000.00%000.00%
    161513.66%1313.46%0154.34%185694.09%000.00%000.00%
    172795.67%1535.92%0164.62%165113.68%000.00%000.00%
    182705.02%1556.14%0123.47%59181713.06%000.00%000.00%
    19516511.84%414015.62%0308.67%92284720.47%000.00%000.00%
    20515911.41%310812.05%0288.09%123632.61%000.00%000.00%
    210241.72%0131.45%0102.89%61801.30%000.00%000.00%
    221392.80%0222.46%0205.78%92721.96%000.00%000.00%
    231584.16%1313.46%0226.36%154563.28%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 113 Total URLs
    #HitskB FkB InkB OutURL
    117612.63%167212.02%00.00%00.00%/phpBB2/viewtopic.php
    216511.84%282120.29%00.00%00.00%/phpBB2/
    3987.03%10117.27%00.00%00.00%/phpBB2/login.php
    4312.22%960.69%00.00%00.00%/News/
    5292.08%540.39%00.00%00.00%/News/permalink.php
    6191.36%2842.04%00.00%00.00%/phpBB2/search.php
    7191.36%4323.11%00.00%00.00%/phpBB2/viewforum.php
    8151.08%1941.39%00.00%00.00%/phpBB2/profile.php
    9151.08%180.13%00.00%00.00%/styles/header.css
    10151.08%20.01%00.00%00.00%/styles/main.css
    11120.86%970.70%00.00%00.00%/Pics/logo-100.png
    12110.79%130.10%00.00%00.00%/tmp/Skivakantie_maart_2007.html
    13100.72%40.03%00.00%00.00%/Pics/xml.png
    14100.72%70.05%00.00%00.00%/styles/newspage.css
    1590.65%20.01%00.00%00.00%/Pics/newsitem_ul.png
    1690.65%20.01%00.00%00.00%/Pics/newsitem_ur.png
    1780.57%1170.84%00.00%00.00%/phpBB2/memberlist.php
    1880.57%20.02%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    1960.43%80.06%00.00%00.00%/favicon.ico
    2060.43%2591.87%00.00%00.00%/phpBB2/faq.php
    2150.36%190.13%00.00%00.00%/Pictures/20070206_Domburg/
    2250.36%280.20%00.00%00.00%/phppages/rss.php
    2340.29%70.05%00.00%00.00%/mrtg/images/frederik.gotdns.org.eth1-day.png
    2440.29%480.35%00.00%00.00%/phpBB2/groupcp.php
    2540.29%390.28%00.00%00.00%/phpBB2/viewonline.php
    2640.29%800.57%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    2730.22%394528.37%00.00%00.00%/Pictures/20060429_chello_extreme.png
    2830.22%60.05%00.00%00.00%/mrtg/images/frederik.gotdns.org.eth1-month.png
    2930.22%60.04%00.00%00.00%/mrtg/images/frederik.gotdns.org.eth1-week.png
    3030.22%80.06%00.00%00.00%/phpBB2/admin/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 113 Total URLs By kB F
    #HitskB FkB InkB OutURL
    130.22%394528.37%00.00%00.00%/Pictures/20060429_chello_extreme.png
    216511.84%282120.29%00.00%00.00%/phpBB2/
    317612.63%167212.02%00.00%00.00%/phpBB2/viewtopic.php
    4987.03%10117.27%00.00%00.00%/phpBB2/login.php
    5191.36%4323.11%00.00%00.00%/phpBB2/viewforum.php
    6191.36%2842.04%00.00%00.00%/phpBB2/search.php
    760.43%2591.87%00.00%00.00%/phpBB2/faq.php
    8151.08%1941.39%00.00%00.00%/phpBB2/profile.php
    980.57%1170.84%00.00%00.00%/phpBB2/memberlist.php
    10120.86%970.70%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    116511.84%6458.72%/phpBB2/
    2312.22%2220.18%/News/
    3110.79%87.34%/tmp/Skivakantie_maart_2007.html
    450.36%54.59%/Pictures/20070206_Domburg/
    540.29%43.67%http://frederik.gotdns.org/phpBB2/
    610.07%32.75%/phpbb2/
    720.14%21.83%/tmp/Skivakantie_maart_2007_versie2.html
    810.07%10.92%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Exit Pages
    #HitsVisitsURL
    116511.84%1055.56%/phpBB2/
    2312.22%316.67%/News/
    3110.79%316.67%/tmp/Skivakantie_maart_2007.html
    410.07%15.56%/Pictures/200505_Amsterdam/
    550.36%15.56%/Pictures/20070206_Domburg/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 135 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    130321.74%22425.00%149010.71%00.00%00.00%148.38%66.249.72.50
    216711.98%738.15%4733.40%00.00%00.00%127.19%213.132.155.221
    3805.74%798.82%2201.58%00.00%00.00%10.60%194.78.62.13
    4412.94%111.23%1461.05%00.00%00.00%127.19%207.46.98.142
    5402.87%273.01%8005.75%00.00%00.00%52.99%65.55.213.103
    6302.15%303.35%420.30%00.00%00.00%00.00%62.195.150.2
    7282.01%283.12%1000.72%00.00%00.00%00.00%194.78.37.251
    8282.01%283.12%370.27%00.00%00.00%00.00%84.197.193.204
    9271.94%141.56%3502.52%00.00%00.00%21.20%207.46.98.141
    10251.79%131.45%1200.86%00.00%00.00%63.59%65.55.210.79
    11241.72%151.67%3522.53%00.00%00.00%10.60%65.55.210.80
    12211.51%121.34%1851.33%00.00%00.00%31.80%65.55.210.78
    13171.22%91.00%1240.90%00.00%00.00%00.00%65.55.210.72
    14151.08%00.00%100.07%00.00%00.00%00.00%74.6.19.112
    15141.00%70.78%1471.06%00.00%00.00%74.19%131.107.151.157
    16141.00%101.12%3022.17%00.00%00.00%10.60%207.46.98.140
    17141.00%60.67%1270.92%00.00%00.00%21.20%207.46.98.143
    18120.86%60.67%1070.77%00.00%00.00%21.20%195.2.114.1
    19120.86%50.56%1531.10%00.00%00.00%21.20%65.55.210.71
    20120.86%60.67%1070.77%00.00%00.00%21.20%80.145.112.95
    21110.79%111.23%13559.75%00.00%00.00%10.60%200.90.228.104
    22110.79%111.23%13309.56%00.00%00.00%10.60%89.102.212.201
    23100.72%101.12%260.19%00.00%00.00%10.60%170.86.15.15
    24100.72%50.56%1471.05%00.00%00.00%00.00%65.55.210.81
    25100.72%60.67%1050.75%00.00%00.00%21.20%87.118.108.81
    26100.72%60.67%1050.75%00.00%00.00%21.20%87.230.30.38
    2790.65%91.00%13329.57%00.00%00.00%10.60%12.223.28.35
    2890.65%50.56%860.62%00.00%00.00%10.60%83.239.103.52
    2990.65%91.00%160.11%00.00%00.00%10.60%87.66.200.175
    3090.65%91.00%150.11%00.00%00.00%10.60%89.133.206.43
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 135 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    130321.74%22425.00%149010.71%00.00%00.00%148.38%66.249.72.50
    2110.79%111.23%13559.75%00.00%00.00%10.60%200.90.228.104
    390.65%91.00%13329.57%00.00%00.00%10.60%12.223.28.35
    4110.79%111.23%13309.56%00.00%00.00%10.60%89.102.212.201
    5402.87%273.01%8005.75%00.00%00.00%52.99%65.55.213.103
    616711.98%738.15%4733.40%00.00%00.00%127.19%213.132.155.221
    720.14%20.22%4513.24%00.00%00.00%00.00%83.145.98.93
    8241.72%151.67%3522.53%00.00%00.00%10.60%65.55.210.80
    9271.94%141.56%3502.52%00.00%00.00%21.20%207.46.98.141
    10141.00%101.12%3022.17%00.00%00.00%10.60%207.46.98.140
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 28 of 42 Total Referrers
    #HitsReferrer
    11158.25%frederik.gotdns.org/phpBB2/index.php
    2584.16%frederik.gotdns.org/profile.php
    3553.95%frederik.gotdns.org/phpBB2/login.php
    4533.80%frederik.gotdns.org/viewforum.php
    5362.58%frederik.gotdns.org/:1976/phpBB2/index.php
    6110.79%frederik.gotdns.org/
    7110.79%vanrenterghem.biz/phppages/fotobiz.php
    840.29%images.google.cl/imgres
    930.22%bl106w.blu106.mail.live.com/mail/ApplicationMain_12.0.1187.0824.aspx
    1030.22%images.google.com/imgres
    1130.22%search.live.com/results.aspx
    1230.22%www.google.be/search
    1320.14%bl106w.blu106.mail.live.com/mail/ApplicationMain_12.0.1190.0927.aspx
    1420.14%by137w.bay137.mail.live.com/mail/ReadMessageLight.aspx
    1520.14%frederik.gotdns.org/posting.php
    1620.14%images.google.cz/imgres
    1720.14%vanrenterghem.biz/
    1820.14%vanrenterghem.biz/Pictures/index.shtml
    1920.14%vanrenterghem.biz/index.shtml
    2010.07%frederik.gotdns.org/index.php
    2110.07%frederik.gotdns.org/phpBB2/viewtopic.php
    2210.07%images.google.pt/imgres
    2310.07%vanrenterghem.biz/About/index.shtml
    2410.07%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    2510.07%vanrenterghem.biz/Surfing/index.shtml
    2610.07%www.google.be/
    2710.07%www.google.nl/search
    2810.07%www.storagebay.net/
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Search Strings
    #HitsSearch String
    12100.00%chello
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1332.37%313.46%4653.34%00.00%00.00%10.60%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 25 Total User Agents
    #HitsUser Agent
    128520.44%Googlebot/2.1
    226719.15%MSIE 6.0
    320914.99%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    414810.62%Mozilla/5.0
    51228.75%MSIE 7.0
    61047.46%Konqueror/3.5
    7463.30%Yahoo! Slurp
    8402.87%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    9322.30%Apache/2.2.4 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    10292.08%Apache/2.2.6 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    11181.29%Googlebot-Image/1.0
    12181.29%MSRBOT (http://research.microsoft.com/research/sv/msrbot/
    13130.93%MSIE 5.5
    14120.86%Opera 7.5
    15100.72%MSIE 5.0
    +

    + +Usage by Location for October 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 23 of 23 Total Locations
    #HitsFileskB FkB InkB OutLocation
    172351.87%45550.78%670148.18%00.00%00.00%United States
    231822.81%22024.55%9827.06%00.00%00.00%Belgium
    3564.02%293.24%5143.70%00.00%00.00%Russian Federation
    4543.87%303.35%5323.82%00.00%00.00%Germany
    5423.01%232.57%3302.38%00.00%00.00%Unresolved/Unknown
    6352.51%182.01%3212.31%00.00%00.00%Latvia
    7352.51%333.68%940.68%00.00%00.00%Netherlands
    8241.72%121.34%2151.54%00.00%00.00%Ukraine
    9201.43%161.79%142310.23%00.00%00.00%Czech Republic
    10120.86%60.67%1070.77%00.00%00.00%Romania
    11110.79%111.23%13559.75%00.00%00.00%Chile
    12100.72%60.67%4683.36%00.00%00.00%France
    1390.65%91.00%150.11%00.00%00.00%Hungary
    1480.57%50.56%2792.01%00.00%00.00%Great Britain (UK)
    1580.57%50.56%910.66%00.00%00.00%Korea (South)
    1670.50%50.56%910.66%00.00%00.00%Spain
    1760.43%30.33%540.39%00.00%00.00%Canada
    1860.43%30.33%540.39%00.00%00.00%Israel
    1940.29%40.45%140.10%00.00%00.00%Sweden
    2020.14%10.11%200.14%00.00%00.00%Italy
    2120.14%10.11%210.15%00.00%00.00%Viet Nam
    2210.07%10.11%2261.62%00.00%00.00%Portugal
    2310.07%00.00%10.01%00.00%00.00%Slovenia
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200711.html b/webalizer/usage_200711.html new file mode 100644 index 0000000..4d76223 --- /dev/null +++ b/webalizer/usage_200711.html @@ -0,0 +1,2850 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - November 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: November 2007
    +Generated 01-Dec-2007 06:25 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for November 2007
    Total Hits2425
    Total Files1969
    Total Pages383
    Total Visits162
    Total kB Files21670
    Total kB In0
    Total kB Out0
    Total Unique Sites111
    Total Unique URLs252
    Total Unique Referrers29
    Total Unique Usernames1
    Total Unique User Agents28
    .Avg Max
    Hits per Hour3267
    Hits per Day80670
    Files per Day65631
    Pages per Day1258
    Visits per Day512
    kB Files per Day7226551
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK1969
    Code 206 - Partial Content2
    Code 302 - Found223
    Code 304 - Not Modified13
    Code 401 - Unauthorized15
    Code 403 - Forbidden52
    Code 404 - Not Found151
    +

    + +Daily usage for November 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for November 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1401.65%321.63%30.78%31.85%54.50%1560.72%00.00%00.00%
    2291.20%251.27%30.78%31.85%21.80%1510.70%00.00%00.00%
    3230.95%180.91%30.78%31.85%21.80%1020.47%00.00%00.00%
    4803.30%462.34%174.44%74.32%87.21%2371.10%00.00%00.00%
    5672.76%562.84%71.83%31.85%65.41%2581.19%00.00%00.00%
    6411.69%261.32%143.66%63.70%98.11%5712.63%00.00%00.00%
    7481.98%281.42%174.44%63.70%87.21%3791.75%00.00%00.00%
    81004.12%844.27%133.39%63.70%76.31%6332.92%00.00%00.00%
    9783.22%673.40%5815.14%106.17%54.50%2551.17%00.00%00.00%
    10361.48%311.57%41.04%21.23%21.80%2060.95%00.00%00.00%
    11642.64%381.93%246.27%95.56%109.01%3711.71%00.00%00.00%
    12572.35%402.03%123.13%74.32%76.31%18408.49%00.00%00.00%
    13421.73%251.27%153.92%63.70%87.21%3211.48%00.00%00.00%
    14712.93%472.39%174.44%95.56%98.11%4311.99%00.00%00.00%
    15481.98%351.78%123.13%53.09%54.50%2671.23%00.00%00.00%
    1667027.63%63132.05%348.88%127.41%87.21%430019.84%00.00%00.00%
    17411.69%321.63%00.00%00.00%65.41%1410.65%00.00%00.00%
    18722.97%512.59%174.44%63.70%76.31%17398.02%00.00%00.00%
    19502.06%371.88%133.39%74.32%87.21%2191.01%00.00%00.00%
    20652.68%522.64%102.61%74.32%1311.71%5882.71%00.00%00.00%
    21431.77%321.63%51.31%42.47%32.70%2120.98%00.00%00.00%
    22321.32%211.07%61.57%42.47%87.21%1910.88%00.00%00.00%
    23261.07%170.86%41.04%21.23%65.41%1900.88%00.00%00.00%
    24251.03%170.86%30.78%21.23%54.50%1310.60%00.00%00.00%
    25351.44%201.02%143.66%63.70%76.31%1840.85%00.00%00.00%
    26220.91%140.71%51.31%42.47%87.21%1130.52%00.00%00.00%
    2734814.35%32116.30%194.96%95.56%98.11%655130.23%00.00%00.00%
    28331.36%140.71%143.66%42.47%98.11%1420.65%00.00%00.00%
    29963.96%794.01%112.87%53.09%98.11%4872.25%00.00%00.00%
    30431.77%331.68%92.35%53.09%54.50%3051.41%00.00%00.00%
    +

    + +Hourly usage for November 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for November 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    01371.53%0291.47%030.78%61880.87%000.00%000.00%
    12702.89%1482.44%0225.74%164862.24%000.00%000.00%
    21451.86%1371.88%061.57%92851.31%000.00%000.00%
    32833.42%2603.05%0133.39%113301.52%000.00%000.00%
    41552.27%1422.13%0112.87%123481.61%000.00%000.00%
    51451.86%1351.78%030.78%154602.12%000.00%000.00%
    62863.55%1422.13%14511.75%154632.14%000.00%000.00%
    71471.94%1381.93%082.09%92821.30%000.00%000.00%
    83913.75%2653.30%0215.48%144091.89%000.00%000.00%
    951767.26%41477.47%0194.96%3610764.97%000.00%000.00%
    10929011.96%826613.51%1338.62%87261212.05%000.00%000.00%
    111532.19%1402.03%082.09%82411.11%000.00%000.00%
    123963.96%2834.22%0102.61%154382.02%000.00%000.00%
    1372269.32%61869.45%0297.57%167501023.12%000.00%000.00%
    141532.19%1381.93%0102.61%113341.54%000.00%000.00%
    152763.13%1552.79%0174.44%6519488.99%000.00%000.00%
    1641466.02%31125.69%0194.96%257363.40%000.00%000.00%
    1731074.41%3934.72%0266.79%226593.04%000.00%000.00%
    1831174.82%31035.23%082.09%267923.65%000.00%000.00%
    19929512.16%928814.63%030.78%6619799.13%000.00%000.00%
    202722.97%1532.69%0194.96%5817358.01%000.00%000.00%
    211552.27%1402.03%0246.27%72191.01%000.00%000.00%
    221301.24%0211.07%071.83%41080.50%000.00%000.00%
    232743.05%1482.44%0194.96%185322.46%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 252 Total URLs
    #HitskB FkB InkB OutURL
    1103142.52%668830.86%00.00%00.00%/phpBB2/viewtopic.php
    21917.88%313714.48%00.00%00.00%/phpBB2/
    31395.73%12225.64%00.00%00.00%/phpBB2/login.php
    4682.80%1130.52%00.00%00.00%/News/
    5361.48%430.20%00.00%00.00%/News/permalink.php
    6301.24%1720.79%00.00%00.00%/phpBB2/profile.php
    7251.03%2191.01%00.00%00.00%/phpBB2/search.php
    8140.58%2351.08%00.00%00.00%/phpBB2/viewforum.php
    990.37%710.33%00.00%00.00%/Pics/logo-100.png
    1090.37%100.05%00.00%00.00%/styles/header.css
    1190.37%10.01%00.00%00.00%/styles/main.css
    1280.33%460.21%00.00%00.00%/phpBB2/viewonline.php
    1350.21%30.01%00.00%00.00%/phppages/foto.php
    1440.16%40.02%00.00%00.00%/favicon.ico
    1540.16%380.17%00.00%00.00%/phpBB2/groupcp.php
    1640.16%350.16%00.00%00.00%/phpBB2/memberlist.php
    1740.16%120.06%00.00%00.00%/phppages/rss.php
    1840.16%800.37%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    1930.12%10.00%00.00%00.00%/Pics/newsitem_ul.png
    2030.12%10.00%00.00%00.00%/Pics/newsitem_ur.png
    2130.12%10.01%00.00%00.00%/Pics/xml.png
    2230.12%1110.51%00.00%00.00%/phpBB2/faq.php
    2330.12%20.01%00.00%00.00%/styles/newspage.css
    2420.08%40.02%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    2520.08%70.03%00.00%00.00%/Pictures/20070206_Domburg/
    2620.08%10.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    2720.08%30.01%00.00%00.00%/secured/Pictures/20070217_Parijs/
    2810.04%30.01%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2910.04%13156.07%00.00%00.00%/Pictures/20060429_chello_extreme.png
    3010.04%130.06%00.00%00.00%/phpbb2/viewtopic.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 252 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1103142.52%668830.86%00.00%00.00%/phpBB2/viewtopic.php
    21917.88%313714.48%00.00%00.00%/phpBB2/
    310.04%13156.07%00.00%00.00%/Pictures/20060429_chello_extreme.png
    41395.73%12225.64%00.00%00.00%/phpBB2/login.php
    5140.58%2351.08%00.00%00.00%/phpBB2/viewforum.php
    6251.03%2191.01%00.00%00.00%/phpBB2/search.php
    7301.24%1720.79%00.00%00.00%/phpBB2/profile.php
    8682.80%1130.52%00.00%00.00%/News/
    930.12%1110.51%00.00%00.00%/phpBB2/faq.php
    1040.16%800.37%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Entry Pages
    #HitsVisitsURL
    11917.88%6969.70%/phpBB2/
    2682.80%2222.22%/News/
    340.16%44.04%http://frederik.gotdns.org/phpBB2/
    420.08%22.02%/Pictures/20051112_COS_Garden_of_the_Gods/
    520.08%11.01%/Pictures/20070206_Domburg/
    620.08%11.01%/secured/Pictures/20070217_Parijs/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Exit Pages
    #HitsVisitsURL
    11917.88%1359.09%/phpBB2/
    2682.80%731.82%/News/
    320.08%14.55%/Pictures/20051112_COS_Garden_of_the_Gods/
    420.08%14.55%/secured/Pictures/20070217_Parijs/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 111 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1114347.13%106053.83%620728.64%00.00%00.00%2817.28%66.249.72.50
    229912.33%28714.58%631629.15%00.00%00.00%21.23%193.191.8.85
    324810.23%20610.46%12085.57%00.00%00.00%84.94%66.249.72.163
    4632.60%241.22%640.30%00.00%00.00%63.70%213.132.155.221
    5481.98%241.22%4291.98%00.00%00.00%84.94%64.86.216.90
    6361.48%361.83%690.32%00.00%00.00%00.00%81.244.6.199
    7351.44%221.12%260.12%00.00%00.00%10.62%87.64.229.45
    8321.32%231.17%17147.91%00.00%00.00%10.62%209.249.11.3
    9271.11%271.37%520.24%00.00%00.00%00.00%165.72.200.11
    10210.87%130.66%18428.50%00.00%00.00%31.85%65.55.213.102
    11180.74%90.46%1600.74%00.00%00.00%42.47%87.118.112.237
    12180.74%90.46%1610.74%00.00%00.00%31.85%87.99.83.17
    13140.58%00.00%150.07%00.00%00.00%00.00%68.142.212.220
    14120.49%60.30%1070.49%00.00%00.00%21.23%80.91.186.250
    15120.49%60.30%1070.50%00.00%00.00%21.23%87.245.178.167
    16120.49%60.30%1070.49%00.00%00.00%21.23%87.99.83.4
    17110.45%00.00%70.03%00.00%00.00%00.00%74.6.23.35
    18100.41%60.30%1050.48%00.00%00.00%21.23%62.93.42.197
    19100.41%60.30%1050.48%00.00%00.00%21.23%87.118.116.245
    20100.41%60.30%1050.48%00.00%00.00%21.23%89.149.236.51
    2190.37%60.30%1170.54%00.00%00.00%31.85%213.220.192.175
    2290.37%60.30%940.43%00.00%00.00%10.62%66.232.125.140
    2390.37%90.46%150.07%00.00%00.00%10.62%81.242.141.188
    2480.33%80.41%140.06%00.00%00.00%10.62%193.190.253.146
    2580.33%50.25%910.42%00.00%00.00%21.23%72.232.7.242
    2670.29%50.25%900.42%00.00%00.00%10.62%82.235.57.133
    2760.25%30.15%540.25%00.00%00.00%10.62%194.8.176.2
    2860.25%30.15%540.25%00.00%00.00%10.62%195.189.104.30
    2960.25%30.15%540.25%00.00%00.00%10.62%211.174.63.148
    3060.25%30.15%540.25%00.00%00.00%10.62%212.150.97.114
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 111 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    129912.33%28714.58%631629.15%00.00%00.00%21.23%193.191.8.85
    2114347.13%106053.83%620728.64%00.00%00.00%2817.28%66.249.72.50
    3210.87%130.66%18428.50%00.00%00.00%31.85%65.55.213.102
    4321.32%231.17%17147.91%00.00%00.00%10.62%209.249.11.3
    524810.23%20610.46%12085.57%00.00%00.00%84.94%66.249.72.163
    6481.98%241.22%4291.98%00.00%00.00%84.94%64.86.216.90
    7180.74%90.46%1610.74%00.00%00.00%31.85%87.99.83.17
    8180.74%90.46%1600.74%00.00%00.00%42.47%87.118.112.237
    990.37%60.30%1170.54%00.00%00.00%31.85%213.220.192.175
    10120.49%60.30%1070.50%00.00%00.00%21.23%87.245.178.167
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 17 of 29 Total Referrers
    #HitsReferrer
    11385.69%frederik.gotdns.org/phpBB2/index.php
    2722.97%frederik.gotdns.org/profile.php
    3672.76%frederik.gotdns.org/phpBB2/login.php
    4662.72%frederik.gotdns.org/viewforum.php
    5401.65%frederik.gotdns.org/:1976/phpBB2/index.php
    6240.99%frederik.gotdns.org/
    7150.62%vanrenterghem.biz/phppages/fotobiz.php
    8100.41%vanrenterghem.biz/secured/Pictures/index.shtml
    930.12%www.google.be/search
    1010.04%bargains-hunter.blogspot.com
    1110.04%frederik.gotdns.org/login.php
    1210.04%frederik.gotdns.org/phpBB2/
    1310.04%vanrenterghem.biz/
    1410.04%vanrenterghem.biz/Surfing/index.shtml
    1510.04%www.cheap-24h.com/Chesterfield-cigarettes
    1610.04%www.vanrenterghem.biz/
    1710.04%www.drugsmarket.medsjoy.biz
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    127611.38%27614.02%628328.99%00.00%00.00%21.23%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 28 Total User Agents
    #HitsUser Agent
    1139357.44%Googlebot/2.1
    250620.87%MSIE 6.0
    32219.11%Mozilla/5.0
    4542.23%MSIE 7.0
    5411.69%Yahoo! Slurp
    6381.57%Apache/2.2.6 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    7321.32%MSRBOT (http://research.microsoft.com/research/sv/msrbot/
    8251.03%Opera 9.0
    9210.87%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    10140.58%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    11120.49%MSIE 5.5
    1260.25%Mozilla/3.0
    1360.25%Mozilla/4.7
    1460.25%Opera 5.0
    1560.25%Opera 8.5
    +

    + +Usage by Location for November 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 22 of 22 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1158265.24%137970.04%1160853.57%00.00%00.00%United States
    245018.56%38619.60%650530.02%00.00%00.00%Belgium
    3843.46%442.23%7853.62%00.00%00.00%Germany
    4763.13%381.93%6843.16%00.00%00.00%Unresolved/Unknown
    5481.98%241.22%4291.98%00.00%00.00%Canada
    6411.69%201.02%3341.54%00.00%00.00%Russian Federation
    7301.24%150.76%2681.24%00.00%00.00%Latvia
    8210.87%120.61%1600.74%00.00%00.00%France
    9210.87%120.61%2110.97%00.00%00.00%Poland
    10180.74%90.46%1610.74%00.00%00.00%Ukraine
    11110.45%60.30%1060.49%00.00%00.00%Israel
    1290.37%60.30%1170.54%00.00%00.00%Czech Republic
    1360.25%30.15%540.25%00.00%00.00%Korea (South)
    1460.25%30.15%540.25%00.00%00.00%Moldova
    1550.21%30.15%520.24%00.00%00.00%Romania
    1640.16%40.20%140.06%00.00%00.00%Sweden
    1730.12%20.10%390.18%00.00%00.00%Australia
    1830.12%20.10%390.18%00.00%00.00%Thailand
    1930.12%20.10%330.15%00.00%00.00%Taiwan
    2020.08%00.00%20.01%00.00%00.00%Netherlands
    2110.04%10.05%130.06%00.00%00.00%Brazil
    2210.04%00.00%10.01%00.00%00.00%Italy
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200712.html b/webalizer/usage_200712.html new file mode 100644 index 0000000..1214582 --- /dev/null +++ b/webalizer/usage_200712.html @@ -0,0 +1,2961 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - December 2007 + + + +

    Usage Statistics for kauai

    + +Summary Period: December 2007
    +Generated 01-Jan-2008 06:28 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for December 2007
    Total Hits1020
    Total Files677
    Total Pages241
    Total Visits126
    Total kB Files11266
    Total kB In0
    Total kB Out0
    Total Unique Sites115
    Total Unique URLs89
    Total Unique Referrers33
    Total Unique User Agents25
    .Avg Max
    Hits per Hour130
    Hits per Day3294
    Files per Day2182
    Pages per Day719
    Visits per Day49
    kB Files per Day3631615
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK677
    Code 206 - Partial Content2
    Code 302 - Found113
    Code 304 - Not Modified9
    Code 401 - Unauthorized2
    Code 403 - Forbidden68
    Code 404 - Not Found149
    +

    + +Daily usage for December 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for December 2007
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1424.12%162.36%197.88%86.35%119.57%2932.60%00.00%00.00%
    2464.51%294.28%145.81%75.56%86.96%1921.71%00.00%00.00%
    3393.82%284.14%83.32%53.97%76.09%2302.04%00.00%00.00%
    4585.69%466.79%62.49%64.76%43.48%2882.56%00.00%00.00%
    5201.96%152.22%20.83%21.59%65.22%161514.34%00.00%00.00%
    6313.04%172.51%104.15%75.56%86.96%1701.51%00.00%00.00%
    7464.51%365.32%31.24%10.79%65.22%124811.07%00.00%00.00%
    8161.57%91.33%41.66%21.59%65.22%6896.12%00.00%00.00%
    9201.96%71.03%93.73%43.17%54.35%450.40%00.00%00.00%
    10171.67%71.03%52.07%21.59%54.35%3292.92%00.00%00.00%
    11242.35%131.92%114.56%53.97%65.22%1371.22%00.00%00.00%
    12363.53%243.55%104.15%53.97%65.22%4143.67%00.00%00.00%
    13494.80%324.73%135.39%75.56%86.96%3342.96%00.00%00.00%
    14302.94%131.92%124.98%75.56%119.57%1771.57%00.00%00.00%
    1590.88%71.03%20.83%21.59%32.61%280.25%00.00%00.00%
    16262.55%111.62%135.39%32.38%65.22%3252.88%00.00%00.00%
    1730.29%20.30%00.00%00.00%10.87%140.12%00.00%00.00%
    18343.33%304.43%10.41%10.79%54.35%3202.84%00.00%00.00%
    19242.35%152.22%72.90%53.97%54.35%1030.91%00.00%00.00%
    20949.22%8212.11%145.81%75.56%97.83%3643.23%00.00%00.00%
    21282.75%142.07%114.56%32.38%43.48%930.82%00.00%00.00%
    22444.31%294.28%145.81%97.14%1210.43%3082.74%00.00%00.00%
    23313.04%162.36%124.98%53.97%108.70%3543.14%00.00%00.00%
    24262.55%172.51%41.66%21.59%86.96%1341.19%00.00%00.00%
    25282.75%213.10%31.24%21.59%76.09%4534.02%00.00%00.00%
    26272.65%192.81%41.66%21.59%43.48%3252.88%00.00%00.00%
    27151.47%111.62%41.66%43.17%76.09%4914.36%00.00%00.00%
    28848.24%619.01%135.39%86.35%119.57%5174.59%00.00%00.00%
    29121.18%60.89%41.66%21.59%54.35%2902.57%00.00%00.00%
    30515.00%385.61%83.32%21.59%108.70%9618.53%00.00%00.00%
    31100.98%60.89%10.41%10.79%54.35%260.23%00.00%00.00%
    +

    + +Hourly usage for December 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for December 2007
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    01444.31%0273.99%0135.39%237006.21%000.00%000.00%
    11353.43%0202.95%093.73%165064.49%000.00%000.00%
    20272.65%0182.66%052.07%113473.08%000.00%000.00%
    31313.04%0172.51%062.49%41241.10%000.00%000.00%
    41373.63%0202.95%0135.39%72161.92%000.00%000.00%
    51353.43%0223.25%093.73%72322.06%000.00%000.00%
    62656.37%0202.95%14317.84%144233.75%000.00%000.00%
    70232.25%0142.07%031.24%2730.65%000.00%000.00%
    81555.39%1466.79%062.49%72181.94%000.00%000.00%
    92706.86%1578.42%072.90%288677.69%000.00%000.00%
    102817.94%27210.64%062.49%154584.07%000.00%000.00%
    111585.69%1416.06%0187.47%185434.82%000.00%000.00%
    120272.65%0182.66%062.49%113483.09%000.00%000.00%
    13080.78%071.03%000.00%1370.33%000.00%000.00%
    141353.43%0243.55%0114.56%62001.78%000.00%000.00%
    151525.10%0294.28%072.90%206235.53%000.00%000.00%
    161535.20%1314.58%0156.22%113342.96%000.00%000.00%
    171454.41%0253.69%0135.39%82362.09%000.00%000.00%
    181424.12%0273.99%0104.15%247386.55%000.00%000.00%
    191333.24%0253.69%062.49%175364.75%000.00%000.00%
    201474.61%0294.28%0177.05%55169615.05%000.00%000.00%
    211595.78%1487.09%072.90%216445.71%000.00%000.00%
    220272.65%0192.81%062.49%278297.36%000.00%000.00%
    231313.04%0213.10%052.07%113393.01%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 89 Total URLs
    #HitskB FkB InkB OutURL
    118217.84%116510.34%00.00%00.00%/phpBB2/viewtopic.php
    211110.88%177015.71%00.00%00.00%/phpBB2/
    3716.96%6225.52%00.00%00.00%/phpBB2/login.php
    4232.25%520.46%00.00%00.00%/News/
    5232.25%250.22%00.00%00.00%/News/permalink.php
    6131.27%630.56%00.00%00.00%/phpBB2/profile.php
    7111.08%780.69%00.00%00.00%/phpBB2/viewforum.php
    890.88%710.63%00.00%00.00%/Pics/logo-100.png
    990.88%120.11%00.00%00.00%/favicon.ico
    1090.88%100.09%00.00%00.00%/styles/header.css
    1190.88%10.01%00.00%00.00%/styles/main.css
    1280.78%550.49%00.00%00.00%/phpBB2/memberlist.php
    1350.49%10.01%00.00%00.00%/Pics/newsitem_ul.png
    1450.49%10.01%00.00%00.00%/Pics/newsitem_ur.png
    1550.49%20.01%00.00%00.00%/Pics/xml.png
    1650.49%590.53%00.00%00.00%/phpBB2/search.php
    1750.49%220.20%00.00%00.00%/phpBB2/viewonline.php
    1850.49%30.03%00.00%00.00%/styles/newspage.css
    1940.39%170.15%00.00%00.00%/phpBB2/groupcp.php
    2030.29%30.03%00.00%00.00%/Pictures/20070206_Domburg/
    2120.20%320.28%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    2220.20%230.20%00.00%00.00%/phpBB2/faq.php
    2320.20%10.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    2410.10%330.29%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    2510.10%30.03%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2610.10%10.01%00.00%00.00%/Pictures/200505_Amsterdam/
    2710.10%20.02%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    2810.10%131511.67%00.00%00.00%/Pictures/20060429_chello_extreme.png
    2910.10%60.05%00.00%00.00%/phppages/rss.php
    3010.10%200.18%00.00%00.00%http://frederik.gotdns.org/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 89 Total URLs By kB F
    #HitskB FkB InkB OutURL
    111110.88%177015.71%00.00%00.00%/phpBB2/
    210.10%131511.67%00.00%00.00%/Pictures/20060429_chello_extreme.png
    318217.84%116510.34%00.00%00.00%/phpBB2/viewtopic.php
    4716.96%6225.52%00.00%00.00%/phpBB2/login.php
    5111.08%780.69%00.00%00.00%/phpBB2/viewforum.php
    690.88%710.63%00.00%00.00%/Pics/logo-100.png
    7131.27%630.56%00.00%00.00%/phpBB2/profile.php
    850.49%590.53%00.00%00.00%/phpBB2/search.php
    980.78%550.49%00.00%00.00%/phpBB2/memberlist.php
    10232.25%520.46%00.00%00.00%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Entry Pages
    #HitsVisitsURL
    111110.88%4864.00%/phpBB2/
    2232.25%2229.33%/News/
    330.29%22.67%/Pictures/20070206_Domburg/
    410.10%11.33%/Pictures/200505_Amsterdam/
    510.10%11.33%/Pictures/20051112_COS_Garden_of_the_Gods/
    610.10%11.33%http://frederik.gotdns.org/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Exit Pages
    #HitsVisitsURL
    111110.88%571.43%/phpBB2/
    2232.25%114.29%/News/
    310.10%114.29%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 115 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    122722.25%17826.29%9508.43%00.00%00.00%118.73%66.249.72.163
    2696.76%578.42%3202.84%00.00%00.00%43.17%66.249.66.241
    3676.57%487.09%4303.81%00.00%00.00%43.17%66.249.66.163
    4545.29%547.98%940.83%00.00%00.00%32.38%170.86.15.15
    5454.41%131.92%1171.04%00.00%00.00%53.97%78.20.123.45
    6363.53%101.48%2682.38%00.00%00.00%53.97%213.132.155.221
    7323.14%233.40%223119.80%00.00%00.00%32.38%65.55.213.103
    8292.84%294.28%370.33%00.00%00.00%00.00%84.198.168.103
    9282.75%284.14%370.33%00.00%00.00%00.00%82.173.177.55
    10272.65%273.99%520.46%00.00%00.00%00.00%77.61.130.19
    11201.96%162.36%980.87%00.00%00.00%10.79%66.249.66.206
    12151.47%00.00%100.08%00.00%00.00%00.00%74.6.19.112
    13121.18%00.00%120.11%00.00%00.00%00.00%68.142.212.220
    14111.08%50.74%890.79%00.00%00.00%10.79%211.172.225.137
    15100.98%50.74%130.11%00.00%00.00%53.97%81.52.143.15
    1690.88%91.33%150.13%00.00%00.00%10.79%193.190.253.146
    1790.88%50.74%870.77%00.00%00.00%21.59%61.61.132.129
    1890.88%60.89%1171.04%00.00%00.00%32.38%67.165.199.76
    1990.88%40.59%230.21%00.00%00.00%43.17%81.52.143.16
    2060.59%30.44%540.48%00.00%00.00%10.79%140.99.50.170
    2160.59%30.44%540.48%00.00%00.00%10.79%194.8.176.2
    2260.59%30.44%540.48%00.00%00.00%10.79%195.2.114.1
    2360.59%30.44%540.48%00.00%00.00%10.79%212.248.54.124
    2460.59%30.44%320.29%00.00%00.00%32.38%65.55.210.79
    2560.59%30.44%540.48%00.00%00.00%10.79%77.38.162.224
    2660.59%30.44%540.48%00.00%00.00%10.79%78.62.9.58
    2760.59%30.44%540.48%00.00%00.00%10.79%79.120.11.7
    2860.59%30.44%540.48%00.00%00.00%10.79%80.254.7.214
    2960.59%30.44%540.48%00.00%00.00%21.59%80.96.191.144
    3060.59%30.44%540.48%00.00%00.00%10.79%82.207.15.38
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 115 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1323.14%233.40%223119.80%00.00%00.00%32.38%65.55.213.103
    222722.25%17826.29%9508.43%00.00%00.00%118.73%66.249.72.163
    3676.57%487.09%4303.81%00.00%00.00%43.17%66.249.66.163
    420.20%20.30%3963.51%00.00%00.00%00.00%83.22.117.185
    520.20%20.30%3342.97%00.00%00.00%00.00%76.87.47.124
    6696.76%578.42%3202.84%00.00%00.00%43.17%66.249.66.241
    7363.53%101.48%2682.38%00.00%00.00%53.97%213.132.155.221
    820.20%20.30%2272.01%00.00%00.00%00.00%172.142.234.116
    920.20%20.30%2272.01%00.00%00.00%00.00%88.222.198.186
    1010.10%10.15%2262.00%00.00%00.00%00.00%124.169.246.191
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 25 of 33 Total Referrers
    #HitsReferrer
    1787.65%frederik.gotdns.org/phpBB2/index.php
    2414.02%frederik.gotdns.org/profile.php
    3383.73%frederik.gotdns.org/viewforum.php
    4343.33%frederik.gotdns.org/phpBB2/login.php
    5242.35%frederik.gotdns.org/:1976/phpBB2/index.php
    6212.06%frederik.gotdns.org/
    7111.08%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    820.20%images.google.com/imgres
    920.20%www.google.com/search
    1010.10%66.102.9.104/search
    1110.10%frederik.gotdns.org/phpBB2/
    1210.10%frederik.gotdns.org/phpBB2/indeforum.php
    1310.10%frederik.gotdns.org/phpbb2/indeforum.php
    1410.10%frederik.gotdns.org/phpbb2/index.php
    1510.10%images.google.co.uk/imgres
    1610.10%images.google.hr/imgres
    1710.10%images.google.lt/imgres
    1810.10%images.google.nl/imgres
    1910.10%images.google.pl/imgres
    2010.10%johnchapmanmovie.com/map.html
    2110.10%theteenmarket.info/search.php
    2210.10%vanrenterghem.biz/
    2310.10%www.google.nl/search
    2410.10%www.vanrenterghem.biz/
    2510.10%www.vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 25 Total User Agents
    #HitsUser Agent
    137236.47%Googlebot/2.1
    223322.84%Mozilla/5.0
    312211.96%MSIE 6.0
    4494.80%Apache/2.2.6 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    5434.22%Yahoo! Slurp
    6343.33%MSIE 7.0
    7323.14%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    8191.86%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    9151.47%Googlebot-Image/1.0
    10151.47%Opera 9.0
    11121.18%Mozilla/4.6
    12121.18%Opera 8.0
    13121.18%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    1490.88%Konqueror/3.5
    1590.88%MSIE 2.0
    +

    + +Usage by Location for December 2007

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 30 Total Locations
    #HitsFileskB FkB InkB OutLocation
    159958.73%43964.84%606953.87%00.00%00.00%United States
    211911.67%619.01%4383.88%00.00%00.00%Belgium
    3565.49%568.27%3142.79%00.00%00.00%Netherlands
    4414.02%182.66%3272.91%00.00%00.00%Ukraine
    5403.92%202.95%3623.21%00.00%00.00%Russian Federation
    6272.65%101.48%1951.73%00.00%00.00%Germany
    7212.06%111.62%2822.50%00.00%00.00%France
    8181.76%91.33%1611.43%00.00%00.00%Latvia
    9121.18%50.74%890.79%00.00%00.00%Korea (South)
    1090.88%50.74%870.77%00.00%00.00%Taiwan
    1180.78%50.74%2812.49%00.00%00.00%Lithuania
    1270.69%30.44%550.49%00.00%00.00%Romania
    1360.59%30.44%540.48%00.00%00.00%Denmark
    1460.59%30.44%540.48%00.00%00.00%Ireland
    1560.59%30.44%540.48%00.00%00.00%Israel
    1660.59%40.59%2782.47%00.00%00.00%Italy
    1760.59%60.89%210.19%00.00%00.00%Sweden
    1860.59%30.44%540.48%00.00%00.00%Turkey
    1950.49%30.44%520.47%00.00%00.00%Canada
    2050.49%40.59%4353.86%00.00%00.00%Poland
    2140.39%20.30%4524.01%00.00%00.00%Unresolved/Unknown
    2240.39%00.00%40.04%00.00%00.00%Czech Republic
    2320.20%00.00%20.02%00.00%00.00%Malaysia
    2410.10%10.15%2262.00%00.00%00.00%Australia
    2510.10%10.15%200.18%00.00%00.00%Brazil
    2610.10%00.00%10.01%00.00%00.00%Chile
    2710.10%10.15%2262.00%00.00%00.00%Spain
    2810.10%10.15%2262.00%00.00%00.00%Great Britain (UK)
    2910.10%10.15%2262.00%00.00%00.00%Croatia (Hrvatska)
    3010.10%10.15%2262.00%00.00%00.00%Hungary
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200801.html b/webalizer/usage_200801.html new file mode 100644 index 0000000..db516f6 --- /dev/null +++ b/webalizer/usage_200801.html @@ -0,0 +1,2977 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - January 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: January 2008
    +Generated 01-Feb-2008 06:27 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for January 2008
    Total Hits1715
    Total Files1295
    Total Pages304
    Total Visits151
    Total kB Files23508
    Total kB In0
    Total kB Out0
    Total Unique Sites153
    Total Unique URLs83
    Total Unique Referrers39
    Total Unique User Agents32
    .Avg Max
    Hits per Hour285
    Hits per Day55192
    Files per Day41177
    Pages per Day925
    Visits per Day413
    kB Files per Day7585205
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK1295
    Code 206 - Partial Content4
    Code 302 - Found161
    Code 304 - Not Modified10
    Code 400 - Bad Request2
    Code 401 - Unauthorized3
    Code 403 - Forbidden51
    Code 404 - Not Found188
    Code 405 - Method Not Allowed1
    +

    + +Daily usage for January 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for January 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1221.28%171.31%41.32%21.32%42.61%1450.62%00.00%00.00%
    2181.05%90.69%92.96%31.99%21.31%1610.68%00.00%00.00%
    3261.52%171.31%61.97%31.99%53.27%1960.83%00.00%00.00%
    4311.81%211.62%72.30%31.99%74.58%14446.14%00.00%00.00%
    5673.91%433.32%103.29%74.64%95.88%2140.91%00.00%00.00%
    6714.14%483.71%216.91%63.97%95.88%9043.84%00.00%00.00%
    7512.97%393.01%82.63%63.97%85.23%2711.15%00.00%00.00%
    8452.62%322.47%92.96%53.31%106.54%4872.07%00.00%00.00%
    9331.92%282.16%51.64%31.99%42.61%4471.90%00.00%00.00%
    10311.81%221.70%51.64%31.99%63.92%2941.25%00.00%00.00%
    11422.45%211.62%41.32%21.32%63.92%1700.72%00.00%00.00%
    12472.74%241.85%196.25%85.30%127.84%4021.71%00.00%00.00%
    13181.05%80.62%72.30%21.32%63.92%5632.39%00.00%00.00%
    14271.57%171.31%30.99%31.99%95.88%1450.62%00.00%00.00%
    15724.20%554.25%72.30%53.31%1610.46%5652.40%00.00%00.00%
    16683.97%584.48%82.63%63.97%127.84%16457.00%00.00%00.00%
    17844.90%715.48%92.96%63.97%74.58%23059.80%00.00%00.00%
    1819211.20%17713.67%72.30%31.99%63.92%520522.14%00.00%00.00%
    19512.97%413.17%41.32%31.99%53.27%9484.03%00.00%00.00%
    20422.45%251.93%154.93%53.31%63.92%2310.98%00.00%00.00%
    21372.16%251.93%113.62%74.64%85.23%4381.86%00.00%00.00%
    22563.27%382.93%175.59%117.28%1711.11%13945.93%00.00%00.00%
    23221.28%90.69%72.30%31.99%63.92%1290.55%00.00%00.00%
    24382.22%201.54%165.26%106.62%117.19%4351.85%00.00%00.00%
    25724.20%534.09%165.26%53.31%117.19%4772.03%00.00%00.00%
    261277.41%1048.03%165.26%63.97%106.54%13405.70%00.00%00.00%
    27704.08%584.48%92.96%21.32%117.19%6362.71%00.00%00.00%
    28442.57%332.55%20.66%10.66%53.27%2461.04%00.00%00.00%
    291056.12%967.41%258.22%138.61%1610.46%8283.52%00.00%00.00%
    30905.25%786.02%113.62%53.31%95.88%5532.35%00.00%00.00%
    31160.93%80.62%72.30%42.65%74.58%2911.24%00.00%00.00%
    +

    + +Hourly usage for January 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for January 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    01402.33%0262.01%0123.95%82471.05%000.00%000.00%
    11502.92%1322.47%0144.61%195772.45%000.00%000.00%
    21412.39%0302.32%051.64%154621.97%000.00%000.00%
    31442.57%0302.32%092.96%82391.02%000.00%000.00%
    41462.68%1322.47%0103.29%185732.44%000.00%000.00%
    52865.01%2715.48%072.30%4714466.15%000.00%000.00%
    62744.31%1372.86%14013.16%113421.45%000.00%000.00%
    741468.51%413010.04%0144.61%105325413.84%000.00%000.00%
    81603.50%1483.71%0103.29%298923.79%000.00%000.00%
    92905.25%2765.87%0123.95%299083.86%000.00%000.00%
    101402.33%0302.32%030.99%5416767.13%000.00%000.00%
    111583.38%1403.09%0123.95%6520288.62%000.00%000.00%
    122804.66%1564.32%0154.93%206212.64%000.00%000.00%
    132885.13%2644.94%0196.25%288533.63%000.00%000.00%
    1441287.46%31108.49%0123.95%3811684.97%000.00%000.00%
    151563.27%1372.86%051.64%288783.73%000.00%000.00%
    161412.39%0302.32%082.63%226832.90%000.00%000.00%
    1731227.11%3967.41%0185.92%164912.09%000.00%000.00%
    183935.42%2765.87%0237.57%123851.64%000.00%000.00%
    192683.97%1594.56%030.99%5015566.62%000.00%000.00%
    201563.27%1423.24%0144.61%288543.63%000.00%000.00%
    212784.55%1554.25%0165.26%3611234.78%000.00%000.00%
    222744.31%1524.02%0123.95%3310084.29%000.00%000.00%
    231563.27%1362.78%0113.62%4012455.30%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 83 Total URLs
    #HitskB FkB InkB OutURL
    156132.71%692229.44%00.00%00.00%/phpBB2/viewtopic.php
    21488.63%240810.24%00.00%00.00%/phpBB2/
    31217.06%11945.08%00.00%00.00%/phpBB2/login.php
    4291.69%680.29%00.00%00.00%/News/
    5201.17%2000.85%00.00%00.00%/phpBB2/profile.php
    6191.11%2240.95%00.00%00.00%/phpBB2/search.php
    7170.99%00.00%00.00%00.00%*
    8160.93%290.12%00.00%00.00%/News/permalink.php
    9150.87%4962.11%00.00%00.00%/phpBB2/viewforum.php
    10130.76%160.07%00.00%00.00%/favicon.ico
    11130.76%150.06%00.00%00.00%/styles/header.css
    12130.76%20.01%00.00%00.00%/styles/main.css
    13110.64%880.38%00.00%00.00%/Pics/logo-100.png
    14100.58%2871.22%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    15100.58%2931.25%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    16100.58%40.02%00.00%00.00%/Pics/xml.png
    17100.58%650.27%00.00%00.00%/phpBB2/memberlist.php
    1890.52%60.03%00.00%00.00%/styles/newspage.css
    1980.47%20.01%00.00%00.00%/Pics/newsitem_ul.png
    2080.47%20.01%00.00%00.00%/Pics/newsitem_ur.png
    2170.41%510.22%00.00%00.00%/phpBB2/groupcp.php
    2270.41%100.04%00.00%00.00%/phppages/foto.php
    2360.35%1070.45%00.00%00.00%/phpBB2/faq.php
    2430.17%80.03%00.00%00.00%/Pictures/20070206_Domburg/
    2530.17%10.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    2630.17%100.04%00.00%00.00%/phppages/rss.php
    2720.12%20.01%00.00%00.00%/cgi-bin/*
    2820.12%190.08%00.00%00.00%/phpBB2/viewonline.php
    2910.06%00.00%00.00%00.00%/
    3010.06%10.00%00.00%00.00%/Pictures/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 83 Total URLs By kB F
    #HitskB FkB InkB OutURL
    156132.71%692229.44%00.00%00.00%/phpBB2/viewtopic.php
    21488.63%240810.24%00.00%00.00%/phpBB2/
    310.06%13155.59%00.00%00.00%/Pictures/20060429_chello_extreme.png
    41217.06%11945.08%00.00%00.00%/phpBB2/login.php
    5150.87%4962.11%00.00%00.00%/phpBB2/viewforum.php
    6100.58%2931.25%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    7100.58%2871.22%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    8191.11%2240.95%00.00%00.00%/phpBB2/search.php
    9201.17%2000.85%00.00%00.00%/phpBB2/profile.php
    1060.35%1070.45%00.00%00.00%/phpBB2/faq.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    11488.63%5360.92%/phpBB2/
    2291.69%2225.29%/News/
    3170.99%44.60%*
    430.17%33.45%/Pictures/20070206_Domburg/
    510.06%22.30%/
    610.06%11.15%/Pictures/
    710.06%11.15%/Pictures/20051112_COS_Garden_of_the_Gods/
    810.06%11.15%http://frederik.gotdns.org/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Exit Pages
    #HitsVisitsURL
    11488.63%1270.59%/phpBB2/
    2291.69%317.65%/News/
    3170.99%15.88%*
    410.06%15.88%/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 153 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    134119.88%29722.93%18767.98%00.00%00.00%159.93%66.249.65.237
    223613.76%19815.29%14736.27%00.00%00.00%53.31%66.249.66.163
    318810.96%17413.44%785233.40%00.00%00.00%63.97%65.55.213.103
    41036.01%524.02%1450.62%00.00%00.00%106.62%78.20.123.45
    5643.73%644.94%2581.10%00.00%00.00%21.32%83.101.44.34
    6623.62%624.79%1990.84%00.00%00.00%10.66%78.22.180.74
    7472.74%382.93%2411.03%00.00%00.00%00.00%66.249.73.57
    8311.81%312.39%990.42%00.00%00.00%21.32%193.190.253.146
    9291.69%292.24%370.16%00.00%00.00%00.00%81.165.145.183
    10221.28%221.70%230.10%00.00%00.00%10.66%193.191.8.85
    11201.17%141.08%800.34%00.00%00.00%10.66%66.249.70.150
    12150.87%90.69%1570.67%00.00%00.00%31.99%193.230.232.111
    13150.87%90.69%1470.63%00.00%00.00%21.32%195.138.193.179
    14150.87%00.00%100.04%00.00%00.00%00.00%74.6.19.111
    15130.76%00.00%140.06%00.00%00.00%00.00%68.142.212.220
    16120.70%120.93%810.35%00.00%00.00%10.66%38.99.218.246
    17120.70%60.46%1070.46%00.00%00.00%21.32%77.41.104.29
    18120.70%60.46%1070.46%00.00%00.00%21.32%78.62.9.58
    19120.70%60.46%1070.46%00.00%00.00%21.32%85.90.197.94
    20120.70%60.46%1070.46%00.00%00.00%21.32%87.118.120.202
    21110.64%110.85%790.34%00.00%00.00%10.66%81.30.49.130
    2290.52%60.46%940.40%00.00%00.00%10.66%194.187.130.170
    2390.52%60.46%940.40%00.00%00.00%10.66%92.113.142.117
    2490.52%60.46%940.40%00.00%00.00%10.66%92.113.223.101
    2580.47%80.62%00.00%00.00%00.00%10.66%192.168.1.101
    2680.47%40.31%800.34%00.00%00.00%21.32%65.55.210.71
    2780.47%60.46%920.39%00.00%00.00%10.66%75.58.69.166
    2880.47%00.00%80.04%00.00%00.00%00.00%86.39.131.85
    2970.41%60.46%1200.51%00.00%00.00%21.32%65.54.116.9
    3070.41%40.31%700.30%00.00%00.00%10.66%88.148.41.127
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 153 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    118810.96%17413.44%785233.40%00.00%00.00%63.97%65.55.213.103
    234119.88%29722.93%18767.98%00.00%00.00%159.93%66.249.65.237
    323613.76%19815.29%14736.27%00.00%00.00%53.31%66.249.66.163
    430.17%30.23%4521.92%00.00%00.00%00.00%195.137.181.24
    530.17%30.23%4521.92%00.00%00.00%00.00%76.84.251.229
    630.17%30.23%4521.92%00.00%00.00%00.00%80.176.217.242
    730.17%30.23%4521.92%00.00%00.00%00.00%85.14.86.137
    820.12%20.15%4371.86%00.00%00.00%00.00%41.242.68.58
    920.12%20.15%4321.84%00.00%00.00%00.00%68.8.227.87
    1020.12%20.15%3791.61%00.00%00.00%00.00%81.191.114.213
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 28 of 39 Total Referrers
    #HitsReferrer
    11207.00%frederik.gotdns.org/phpBB2/index.php
    2653.79%frederik.gotdns.org/phpBB2/login.php
    3623.62%frederik.gotdns.org/viewforum.php
    4482.80%frederik.gotdns.org/profile.php
    5412.39%frederik.gotdns.org/:1976/phpBB2/index.php
    6181.05%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    7160.93%frederik.gotdns.org/News/index.php
    870.41%frederik.gotdns.org/posting.php
    960.35%frederik.gotdns.org/
    1050.29%frederik.gotdns.org/login.php
    1140.23%images.google.com/imgres
    1230.17%vanrenterghem.biz/About/index.shtml
    1320.12%frederik.gotdns.org/styles/newspage.css
    1420.12%images.google.com/images
    1520.12%images.google.pl/imgres
    1620.12%vanrenterghem.biz/Surfing/index.shtml
    1720.12%vanrenterghem.biz/index.shtml
    1820.12%www.google.be/search
    1910.06%frederik.gotdns.org/phpBB2/
    2010.06%frederik.gotdns.org/styles/header.css
    2110.06%images.google.co.uk/imgres
    2210.06%images.google.fr/imgres
    2310.06%images.google.hu/imgres
    2410.06%images.google.nl/imgres
    2510.06%images.google.ro/imgres
    2610.06%live-pharmacy.com
    2710.06%vanrenterghem.biz/Linux/index.shtml
    2810.06%www.vanrenterghem.biz/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 32 Total User Agents
    #HitsUser Agent
    162936.68%Googlebot/2.1
    235520.70%Mozilla/5.0
    318810.96%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    41548.98%MSIE 6.0
    5784.55%MSIE 7.0
    6512.97%Yahoo! Slurp
    7412.39%Apache/2.2.6 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    8251.46%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    9201.17%MSIE 4.0
    10160.93%Apache/2.2.8 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    11160.93%Mozilla/4.7
    12150.87%Googlebot-Image/1.0
    13130.76%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    14120.70%Opera 8.0
    15110.64%Opera 9.2
    +

    + +Usage by Location for January 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 28 of 28 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1105261.34%83564.48%1438661.20%00.00%00.00%United States
    232919.18%26220.23%12295.23%00.00%00.00%Belgium
    3704.08%413.17%6152.61%00.00%00.00%Russian Federation
    4593.44%332.55%5612.39%00.00%00.00%Ukraine
    5432.51%211.62%3751.60%00.00%00.00%Germany
    6362.10%262.01%2421.03%00.00%00.00%Unresolved/Unknown
    7181.05%90.69%1610.68%00.00%00.00%Lithuania
    8160.93%100.77%7022.99%00.00%00.00%France
    9160.93%100.77%3831.63%00.00%00.00%Romania
    10120.70%60.46%1070.46%00.00%00.00%Latvia
    11100.58%70.54%7323.11%00.00%00.00%Poland
    1290.52%50.39%2210.94%00.00%00.00%Korea (South)
    1370.41%30.23%550.23%00.00%00.00%Canada
    1470.41%40.31%700.30%00.00%00.00%Spain
    1560.35%30.23%460.20%00.00%00.00%Turkey
    1650.29%40.31%2381.01%00.00%00.00%Sweden
    1740.23%40.31%7433.16%00.00%00.00%Netherlands
    1830.17%30.23%4521.92%00.00%00.00%Great Britain (UK)
    1920.12%20.15%2270.97%00.00%00.00%Hungary
    2020.12%20.15%3791.61%00.00%00.00%Norway
    2120.12%20.15%4371.86%00.00%00.00%South Africa
    2210.06%10.08%2260.96%00.00%00.00%Switzerland
    2310.06%10.08%200.08%00.00%00.00%China
    2410.06%10.08%2260.96%00.00%00.00%Croatia (Hrvatska)
    2510.06%10.08%2260.96%00.00%00.00%Ireland
    2610.06%10.08%2260.96%00.00%00.00%India
    2710.06%10.08%2260.96%00.00%00.00%Nigeria
    2810.06%10.08%00.00%00.00%00.00%Taiwan
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200802.html b/webalizer/usage_200802.html new file mode 100644 index 0000000..a88794d --- /dev/null +++ b/webalizer/usage_200802.html @@ -0,0 +1,3068 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - February 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: February 2008
    +Generated 01-Mar-2008 06:28 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for February 2008
    Total Hits6030
    Total Files5326
    Total Pages635
    Total Visits381
    Total kB Files78305
    Total kB In0
    Total kB Out0
    Total Unique Sites234
    Total Unique URLs500
    Total Unique Referrers61
    Total Unique Usernames1
    Total Unique User Agents32
    .Avg Max
    Hits per Hour8356
    Hits per Day207749
    Files per Day183693
    Pages per Day2138
    Visits per Day1325
    kB Files per Day270025571
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5326
    Code 206 - Partial Content7
    Code 302 - Found290
    Code 304 - Not Modified25
    Code 400 - Bad Request56
    Code 401 - Unauthorized25
    Code 403 - Forbidden26
    Code 404 - Not Found273
    Code 406 - Not Acceptable2
    +

    + +Daily usage for February 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for February 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1310.51%170.32%121.89%71.84%83.42%2530.32%00.00%00.00%
    2881.46%801.50%132.05%82.10%93.85%3600.46%00.00%00.00%
    363310.50%60711.40%385.98%184.72%114.70%39084.99%00.00%00.00%
    41452.40%1212.27%294.57%174.46%114.70%15471.98%00.00%00.00%
    51201.99%1051.97%182.83%102.62%83.42%8051.03%00.00%00.00%
    6651.08%561.05%152.36%123.15%83.42%3210.41%00.00%00.00%
    72403.98%1993.74%274.25%153.94%114.70%9091.16%00.00%00.00%
    81742.89%1532.87%172.68%123.15%145.98%11691.49%00.00%00.00%
    93045.04%2865.37%91.42%92.36%72.99%19212.45%00.00%00.00%
    103916.48%3706.95%314.88%123.15%135.56%43035.49%00.00%00.00%
    112333.86%2063.87%203.15%102.62%135.56%24253.10%00.00%00.00%
    122173.60%1943.64%182.83%123.15%104.27%15101.93%00.00%00.00%
    132003.32%1753.29%152.36%102.62%177.26%798110.19%00.00%00.00%
    141492.47%901.69%121.89%102.62%166.84%11101.42%00.00%00.00%
    15981.63%701.31%203.15%153.94%229.40%2557132.66%00.00%00.00%
    161011.67%601.13%325.04%256.56%3113.25%10031.28%00.00%00.00%
    17941.56%731.37%223.46%82.10%125.13%23222.97%00.00%00.00%
    18460.76%250.47%162.52%123.15%229.40%7380.94%00.00%00.00%
    19751.24%490.92%192.99%133.41%177.26%4400.56%00.00%00.00%
    2074912.42%69313.01%375.83%205.25%208.55%40185.13%00.00%00.00%
    212584.28%2404.51%91.42%71.84%145.98%17542.24%00.00%00.00%
    225819.64%56910.68%132.05%82.10%114.70%39034.98%00.00%00.00%
    234076.75%3887.29%162.52%92.36%145.98%45395.80%00.00%00.00%
    241131.87%941.76%355.51%184.72%114.70%8071.03%00.00%00.00%
    251612.67%1232.31%385.98%246.30%177.26%11061.41%00.00%00.00%
    261041.72%901.69%253.94%174.46%104.27%14161.81%00.00%00.00%
    271181.96%951.78%375.83%215.51%114.70%4730.60%00.00%00.00%
    28861.43%651.22%294.57%143.67%156.41%13711.75%00.00%00.00%
    29490.81%330.62%132.05%82.10%104.27%3220.41%00.00%00.00%
    +

    + +Hourly usage for February 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for February 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    082323.85%61973.70%1345.35%5114741.88%000.00%000.00%
    151732.87%51512.84%0142.20%308801.12%000.00%000.00%
    251682.79%41422.67%0233.62%4111871.52%000.00%000.00%
    382494.13%72134.00%1355.51%4814051.79%000.00%000.00%
    431141.89%3961.80%091.42%216060.77%000.00%000.00%
    582494.13%72224.17%1335.20%5415762.01%000.00%000.00%
    672033.37%61793.36%1578.98%7922902.92%000.00%000.00%
    7154547.53%144348.15%0152.36%9928593.65%000.00%000.00%
    861943.22%51663.12%0142.20%349861.26%000.00%000.00%
    972293.80%72093.92%0243.78%6919922.54%000.00%000.00%
    1072293.80%62013.77%0233.62%6819772.52%000.00%000.00%
    1182393.96%61863.49%0172.68%13539054.99%000.00%000.00%
    1272313.83%61993.74%0253.94%9327023.45%000.00%000.00%
    132265810.91%2162011.64%1325.04%10463032438.73%000.00%000.00%
    1482494.13%72154.04%1355.51%5215051.92%000.00%000.00%
    1592764.58%72244.21%1304.72%14241275.27%000.00%000.00%
    1651502.49%41332.50%0203.15%8324073.07%000.00%000.00%
    1772113.50%61803.38%1375.83%7722402.86%000.00%000.00%
    18102944.88%92614.90%1385.98%13639325.02%000.00%000.00%
    1982534.20%72284.28%0264.09%5816762.14%000.00%000.00%
    20103035.02%92835.31%0192.99%9326863.43%000.00%000.00%
    2192664.41%72284.28%1345.35%6117732.26%000.00%000.00%
    2282484.11%72184.09%1325.04%9928683.66%000.00%000.00%
    2351582.62%41412.65%091.42%329271.18%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 500 Total URLs
    #HitskB FkB InkB OutURL
    1319352.95%2184427.90%00.00%00.00%/phpBB2/viewtopic.php
    23636.02%3740.48%00.00%00.00%/News/permalink.php
    32914.83%41005.24%00.00%00.00%/phpBB2/
    42464.08%22992.94%00.00%00.00%/phpBB2/login.php
    51372.27%2550.33%00.00%00.00%/News/
    6691.14%00.00%00.00%00.00%*
    7621.03%2800.36%00.00%00.00%/phpBB2/search.php
    8540.90%2750.35%00.00%00.00%/phpBB2/profile.php
    9460.76%160.02%00.00%00.00%/cgi-bin/*
    10370.61%4660.60%00.00%00.00%/phpBB2/viewforum.php
    11230.38%2630.34%00.00%00.00%/phpBB2/faq.php
    12230.38%980.13%00.00%00.00%/phpBB2/groupcp.php
    13220.36%260.03%00.00%00.00%/favicon.ico
    14210.35%1030.13%00.00%00.00%/phpBB2/memberlist.php
    15170.28%190.02%00.00%00.00%/styles/header.css
    16170.28%20.00%00.00%00.00%/styles/main.css
    17150.25%1150.15%00.00%00.00%/Pics/logo-100.png
    18140.23%720.09%00.00%00.00%/phpBB2/viewonline.php
    1970.12%2240.29%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    2070.12%180.02%00.00%00.00%/phppages/rss.php
    2160.10%1950.25%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    2260.10%10.00%00.00%00.00%/Pics/newsitem_ul.png
    2360.10%10.00%00.00%00.00%/Pics/newsitem_ur.png
    2460.10%30.00%00.00%00.00%/Pics/xml.png
    2560.10%40.01%00.00%00.00%/styles/newspage.css
    2650.08%20.00%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    2750.08%30.00%00.00%00.00%/phppages/foto.php
    2840.07%20.00%00.00%00.00%/Pictures/
    2940.07%40.01%00.00%00.00%/Pictures/20070206_Domburg/
    3040.07%2410330.78%00.00%00.00%/tmp/test2.pdf
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 500 Total URLs By kB F
    #HitskB FkB InkB OutURL
    140.07%2410330.78%00.00%00.00%/tmp/test2.pdf
    2319352.95%2184427.90%00.00%00.00%/phpBB2/viewtopic.php
    32914.83%41005.24%00.00%00.00%/phpBB2/
    420.03%27613.53%00.00%00.00%/tmp/0596009836.tar.gz
    52464.08%22992.94%00.00%00.00%/phpBB2/login.php
    610.02%16632.12%00.00%00.00%/tmp/test.chm
    730.05%10581.35%00.00%00.00%/tmp/test.pdf
    8370.61%4660.60%00.00%00.00%/phpBB2/viewforum.php
    93636.02%3740.48%00.00%00.00%/News/permalink.php
    10621.03%2800.36%00.00%00.00%/phpBB2/search.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 11 Total Entry Pages
    #HitsVisitsURL
    12914.83%16153.85%/phpBB2/
    21372.27%10836.12%/News/
    3691.14%175.69%*
    440.07%31.00%/Pictures/20070206_Domburg/
    540.07%20.67%/Pictures/
    620.03%20.67%/Pictures/20030713_MTB/
    730.05%20.67%/Pictures/20051112_COS_Garden_of_the_Gods/
    820.03%10.33%/Pictures/20021229_Serial_Console/
    920.03%10.33%/Pictures/20050409_New_York/
    1010.02%10.33%/tmp/big_html.html
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 10 Total Exit Pages
    #HitsVisitsURL
    11372.27%7259.50%/News/
    22914.83%4033.06%/phpBB2/
    330.05%21.65%/Pictures/20051112_COS_Garden_of_the_Gods/
    440.07%10.83%/Pictures/
    520.03%10.83%/Pictures/20021229_Serial_Console/
    620.03%10.83%/Pictures/20030201_Sneeuw/
    720.03%10.83%/Pictures/20030713_MTB/
    820.03%10.83%/Pictures/20050409_New_York/
    920.03%10.83%/Pictures/200505_Amsterdam/
    1040.07%10.83%/Pictures/20070206_Domburg/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 234 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1308151.09%292054.83%1774922.67%00.00%00.00%8422.05%66.249.70.150
    279613.20%78714.78%53246.80%00.00%00.00%30.79%66.249.66.19
    33956.55%3356.29%12371.58%00.00%00.00%6015.75%66.249.66.203
    43555.89%3536.63%37544.79%00.00%00.00%10.26%164.15.3.7
    51642.72%991.86%1394517.81%00.00%00.00%61.57%83.101.44.34
    6931.54%921.73%5380.69%00.00%00.00%20.52%193.190.253.146
    7741.23%721.35%1690.22%00.00%00.00%10.26%75.74.173.58
    8601.00%601.13%00.00%00.00%00.00%82.10%192.168.1.2
    9500.83%360.68%5570.71%00.00%00.00%61.57%195.138.193.179
    10480.80%450.84%1160.15%00.00%00.00%10.26%62.178.247.109
    11290.48%160.30%17642.25%00.00%00.00%61.57%65.55.213.103
    12290.48%290.54%360.05%00.00%00.00%00.00%81.83.53.226
    13270.45%180.34%3110.40%00.00%00.00%30.79%64.184.169.176
    14270.45%140.26%580.07%00.00%00.00%41.05%65.55.210.79
    15240.40%110.21%480.06%00.00%00.00%71.84%65.55.210.78
    16240.40%150.28%2540.32%00.00%00.00%30.79%78.62.9.58
    17230.38%160.30%2630.34%00.00%00.00%41.05%60.190.79.24
    18190.32%140.26%2240.29%00.00%00.00%20.52%89.149.254.13
    19180.30%110.21%2430.31%00.00%00.00%20.52%212.142.143.116
    20180.30%90.17%500.06%00.00%00.00%71.84%65.55.210.71
    21160.27%110.21%1880.24%00.00%00.00%20.52%218.57.11.112
    22140.23%80.15%330.04%00.00%00.00%30.79%59.106.82.243
    23140.23%100.19%560.07%00.00%00.00%51.31%59.106.82.251
    24130.22%00.00%140.02%00.00%00.00%00.00%68.142.212.220
    25120.20%60.11%240.03%00.00%00.00%61.57%88.131.106.11
    26110.18%70.13%1170.15%00.00%00.00%10.26%62.141.48.212
    27100.17%100.19%1776722.69%00.00%00.00%00.00%170.86.15.15
    28100.17%100.19%780.10%00.00%00.00%10.26%194.50.176.206
    29100.17%30.06%110.01%00.00%00.00%20.52%65.55.210.72
    3090.15%60.11%1040.13%00.00%00.00%10.26%195.229.242.154
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 234 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1100.17%100.19%1776722.69%00.00%00.00%00.00%170.86.15.15
    2308151.09%292054.83%1774922.67%00.00%00.00%8422.05%66.249.70.150
    31642.72%991.86%1394517.81%00.00%00.00%61.57%83.101.44.34
    479613.20%78714.78%53246.80%00.00%00.00%30.79%66.249.66.19
    53555.89%3536.63%37544.79%00.00%00.00%10.26%164.15.3.7
    6290.48%160.30%17642.25%00.00%00.00%61.57%65.55.213.103
    73956.55%3356.29%12371.58%00.00%00.00%6015.75%66.249.66.203
    8500.83%360.68%5570.71%00.00%00.00%61.57%195.138.193.179
    9931.54%921.73%5380.69%00.00%00.00%20.52%193.190.253.146
    1030.05%30.06%4520.58%00.00%00.00%00.00%82.215.36.213
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 61 Total Referrers
    #HitsReferrer
    12974.93%frederik.gotdns.org/phpBB2/index.php
    21252.07%frederik.gotdns.org/phpBB2/login.php
    31121.86%frederik.gotdns.org/viewforum.php
    4530.88%frederik.gotdns.org/News/index.php
    5480.80%frederik.gotdns.org/profile.php
    6380.63%frederik.gotdns.org/tmp/big_html.html
    7240.40%frederik.gotdns.org/phpBB2/viewforum.php
    8190.32%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    9120.20%frederik.gotdns.org/phpBB2/viewtopic.php
    10110.18%frederik.gotdns.org/login.php
    1160.10%frederik.gotdns.org/
    1250.08%vanrenterghem.biz/About/index.shtml
    1340.07%frederik.gotdns.org/posting.php
    1440.07%vanrenterghem.biz/secured/Pictures/index.shtml
    1530.05%1millionbloglinks.biz/blogs/asp-hosting-service-web
    1630.05%frederik.gotdns.org/:1976/phpBB2/index.php
    1730.05%frederik.gotdns.org/phpBB2/memberlist.php
    1830.05%frederik.gotdns.org/phpBB2/profile.php
    1930.05%frederik.gotdns.org/styles/header.css
    2030.05%images.google.com/imgres
    2130.05%vanrenterghem.biz/index.shtml
    2220.03%frederik.gotdns.org/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2320.03%frederik.gotdns.org/phpbb2/indeforum.php
    2420.03%frederik.gotdns.org/styles/newspage.css
    2520.03%images.google.ch/imgres
    2620.03%images.google.co.uk/imgres
    2720.03%images.google.fr/imgres
    2820.03%images.google.pl/imgres
    2920.03%nsys.ws
    3020.03%search.live.com/results.aspx
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    14016.65%4017.53%42285.40%00.00%00.00%20.52%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 32 Total User Agents
    #HitsUser Agent
    1427470.88%Googlebot/2.1
    286614.36%Mozilla/5.0
    32844.71%MSIE 6.0
    41201.99%MSIE 7.0
    5961.59%msnbot/1.0 (+http://search.msn.com/msnbot.htm)
    6601.00%Apache/2.2.8 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    7450.75%Konqueror/3.5
    8440.73%veryprivateacsor
    9340.56%Yahoo! Slurp
    10290.48%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    11230.38%MSIE 5.5
    12160.27%Opera 7.0
    13130.22%Yahoo-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)
    14120.20%Opera 8.0
    15120.20%Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)
    +

    + +Usage by Location for February 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 42 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1465777.23%427180.19%4647059.34%00.00%00.00%United States
    264810.75%57410.78%1850023.63%00.00%00.00%Belgium
    31212.01%781.46%13131.68%00.00%00.00%Ukraine
    4631.04%611.15%210.03%00.00%00.00%Unresolved/Unknown
    5601.00%380.71%6390.82%00.00%00.00%China
    6580.96%370.69%7660.98%00.00%00.00%Germany
    7580.96%310.58%5310.68%00.00%00.00%Russian Federation
    8480.80%450.84%1160.15%00.00%00.00%Austria
    9320.53%160.30%5900.75%00.00%00.00%France
    10320.53%200.38%3390.43%00.00%00.00%Lithuania
    11310.51%200.38%970.12%00.00%00.00%Japan
    12270.45%150.28%3140.40%00.00%00.00%Spain
    13200.33%140.26%2350.30%00.00%00.00%United Arab Emirates
    14180.30%180.34%16562.11%00.00%00.00%Switzerland
    15180.30%120.23%2070.26%00.00%00.00%Moldova
    16170.28%80.15%15822.02%00.00%00.00%Poland
    17140.23%90.17%1570.20%00.00%00.00%Korea (South)
    18130.22%70.13%2500.32%00.00%00.00%Sweden
    19100.17%70.13%5360.68%00.00%00.00%Romania
    20100.17%70.13%700.09%00.00%00.00%Taiwan
    2190.15%60.11%1040.13%00.00%00.00%Thailand
    2280.13%50.09%850.11%00.00%00.00%Israel
    2380.13%80.15%4470.57%00.00%00.00%India
    2460.10%40.08%730.09%00.00%00.00%Hong Kong
    2560.10%20.04%2470.32%00.00%00.00%Italy
    2650.08%30.06%6770.86%00.00%00.00%Great Britain (UK)
    2750.08%00.00%60.01%00.00%00.00%Latvia
    2840.07%40.08%2670.34%00.00%00.00%Brazil
    2940.07%30.06%4530.58%00.00%00.00%Netherlands
    3030.05%10.02%210.03%00.00%00.00%Czech Republic
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200803.html b/webalizer/usage_200803.html new file mode 100644 index 0000000..684608b --- /dev/null +++ b/webalizer/usage_200803.html @@ -0,0 +1,3072 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - March 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: March 2008
    +Generated 01-Apr-2008 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for March 2008
    Total Hits2450
    Total Files1774
    Total Pages508
    Total Visits244
    Total kB Files27258
    Total kB In0
    Total kB Out0
    Total Unique Sites336
    Total Unique URLs248
    Total Unique Referrers78
    Total Unique Usernames1
    Total Unique User Agents42
    .Avg Max
    Hits per Hour3166
    Hits per Day79245
    Files per Day57213
    Pages per Day1646
    Visits per Day718
    kB Files per Day8792514
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK1774
    Code 302 - Found265
    Code 304 - Not Modified147
    Code 400 - Bad Request11
    Code 401 - Unauthorized11
    Code 403 - Forbidden31
    Code 404 - Not Found206
    Code 405 - Method Not Allowed5
    +

    + +Daily usage for March 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for March 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1732.98%543.04%132.56%72.87%154.46%13975.12%00.00%00.00%
    2903.67%734.11%295.71%135.33%154.46%7822.87%00.00%00.00%
    3692.82%512.87%173.35%83.28%123.57%11464.20%00.00%00.00%
    4512.08%362.03%71.38%31.23%51.49%3071.13%00.00%00.00%
    5833.39%482.71%132.56%52.05%82.38%12164.46%00.00%00.00%
    6592.41%432.42%152.95%104.10%133.87%7692.82%00.00%00.00%
    7331.35%241.35%50.98%31.23%72.08%11504.22%00.00%00.00%
    8451.84%181.01%81.57%62.46%102.98%3661.34%00.00%00.00%
    9833.39%633.55%428.27%72.87%113.27%4221.55%00.00%00.00%
    101415.76%1206.76%469.06%187.38%226.55%14405.28%00.00%00.00%
    11562.29%462.59%61.18%62.46%123.57%6072.23%00.00%00.00%
    1224510.00%21312.01%316.10%156.15%144.17%21467.87%00.00%00.00%
    13361.47%251.41%61.18%52.05%123.57%1880.69%00.00%00.00%
    141536.24%653.66%20.39%20.82%113.27%8393.08%00.00%00.00%
    15803.27%613.44%214.13%72.87%113.27%5301.94%00.00%00.00%
    16572.33%341.92%173.35%83.28%175.06%8843.24%00.00%00.00%
    17833.39%502.82%224.33%124.92%175.06%4901.80%00.00%00.00%
    181094.45%854.79%214.13%156.15%5215.48%7042.58%00.00%00.00%
    19702.86%563.16%122.36%52.05%102.98%12784.69%00.00%00.00%
    20401.63%251.41%142.76%62.46%92.68%5852.14%00.00%00.00%
    21351.43%201.13%101.97%62.46%164.76%4781.75%00.00%00.00%
    22582.37%341.92%193.74%93.69%205.95%4451.63%00.00%00.00%
    23341.39%231.30%152.95%52.05%133.87%3411.25%00.00%00.00%
    24371.51%221.24%81.57%62.46%216.25%4361.60%00.00%00.00%
    251385.63%1116.26%234.53%187.38%4613.69%15715.76%00.00%00.00%
    26612.49%362.03%152.95%93.69%288.33%9953.65%00.00%00.00%
    27190.78%110.62%40.79%10.41%51.49%7882.89%00.00%00.00%
    282449.96%21111.89%275.31%114.51%185.36%25149.22%00.00%00.00%
    29682.78%553.10%91.77%52.05%216.25%7462.74%00.00%00.00%
    30522.12%321.80%142.76%62.46%133.87%10813.96%00.00%00.00%
    31481.96%291.63%173.35%72.87%164.76%6192.27%00.00%00.00%
    +

    + +Hourly usage for March 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for March 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    01421.71%0301.69%071.38%226922.54%000.00%000.00%
    131204.90%2864.85%1418.07%298903.26%000.00%000.00%
    21451.84%1331.86%071.38%154581.68%000.00%000.00%
    32622.53%1422.37%0173.35%144331.59%000.00%000.00%
    42732.98%1512.87%0214.13%319723.56%000.00%000.00%
    51532.16%1362.03%061.18%216492.38%000.00%000.00%
    631204.90%3985.52%16112.01%247382.71%000.00%000.00%
    72622.53%1422.37%0142.76%134071.49%000.00%000.00%
    841425.80%2623.49%0142.76%164901.80%000.00%000.00%
    91552.24%1382.14%0193.74%247552.77%000.00%000.00%
    102803.27%1382.14%0132.56%5617376.37%000.00%000.00%
    1151666.78%41367.67%1336.50%3410513.86%000.00%000.00%
    121572.33%1372.09%0132.56%4012344.53%000.00%000.00%
    1331174.78%3935.24%0244.72%3510763.95%000.00%000.00%
    141461.88%1341.92%0101.97%4915265.60%000.00%000.00%
    1541255.10%2683.83%0285.51%3711604.26%000.00%000.00%
    163953.88%2774.34%0193.74%268032.95%000.00%000.00%
    172923.76%2643.61%0265.12%309273.40%000.00%000.00%
    181546518.98%1238821.87%15510.83%133413415.17%000.00%000.00%
    191602.45%1392.20%091.77%226702.46%000.00%000.00%
    2031074.37%2905.07%0101.97%329903.63%000.00%000.00%
    211512.08%1372.09%081.57%5216185.94%000.00%000.00%
    223973.96%2814.57%0203.94%6118866.92%000.00%000.00%
    2331184.82%2744.17%1336.50%6319617.20%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 248 Total URLs
    #HitskB FkB InkB OutURL
    130712.53%469517.22%00.00%00.00%/phpBB2/
    22219.02%17806.53%00.00%00.00%/phpBB2/viewtopic.php
    32198.94%23378.57%00.00%00.00%/phpBB2/login.php
    41064.33%1040.38%00.00%00.00%/News/permalink.php
    5732.98%00.00%00.00%00.00%*
    6592.41%1050.38%00.00%00.00%/News/
    7351.43%1950.72%00.00%00.00%/phpBB2/profile.php
    8281.14%2891.06%00.00%00.00%/phpBB2/search.php
    9261.06%230.08%00.00%00.00%/styles/header.css
    10261.06%20.01%00.00%00.00%/styles/main.css
    11251.02%1500.55%00.00%00.00%/Pics/logo-100.png
    12251.02%320.12%00.00%00.00%/favicon.ico
    13190.78%6272.30%00.00%00.00%/phpBB2/viewforum.php
    14160.65%940.34%00.00%00.00%/phpBB2/memberlist.php
    15130.53%30.01%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    16120.49%640.23%00.00%00.00%/phpBB2/viewonline.php
    17100.41%1140.42%00.00%00.00%/phpBB2/faq.php
    18100.41%430.16%00.00%00.00%/phpBB2/groupcp.php
    19100.41%00.00%00.00%00.00%/phpbb3/config.php
    2090.37%40.01%00.00%00.00%/styles/newspage.css
    2180.33%1280.47%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    2280.33%1300.48%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    2380.33%10.00%00.00%00.00%/Pics/newsitem_ul.png
    2480.33%10.00%00.00%00.00%/Pics/newsitem_ur.png
    2580.33%20.01%00.00%00.00%/Pics/xml.png
    2660.24%130.05%00.00%00.00%/phppages/rss.php
    2750.20%00.00%00.00%00.00%/phpbb3/
    2830.12%20.01%00.00%00.00%/Pictures/
    2920.08%20.01%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    3020.08%40.01%00.00%00.00%/News/email_from_dannyz.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 248 Total URLs By kB F
    #HitskB FkB InkB OutURL
    130712.53%469517.22%00.00%00.00%/phpBB2/
    22198.94%23378.57%00.00%00.00%/phpBB2/login.php
    32219.02%17806.53%00.00%00.00%/phpBB2/viewtopic.php
    4190.78%6272.30%00.00%00.00%/phpBB2/viewforum.php
    5281.14%2891.06%00.00%00.00%/phpBB2/search.php
    6351.43%1950.72%00.00%00.00%/phpBB2/profile.php
    7251.02%1500.55%00.00%00.00%/Pics/logo-100.png
    880.33%1300.48%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    980.33%1280.47%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    10100.41%1140.42%00.00%00.00%/phpBB2/faq.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 11 Total Entry Pages
    #HitsVisitsURL
    130712.53%13466.67%/phpBB2/
    2592.41%3919.40%/News/
    3732.98%188.96%*
    430.12%31.49%/Pictures/
    510.04%10.50%/Linux/
    610.04%10.50%/Pictures/20021229_Serial_Console/
    710.04%10.50%/Pictures/20030201_Sneeuw/
    810.04%10.50%/Pictures/20030713_MTB/
    910.04%10.50%/Pictures/20050409_New_York/
    1010.04%10.50%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Exit Pages
    #HitsVisitsURL
    1592.41%1140.74%/News/
    230712.53%1037.04%/phpBB2/
    3732.98%311.11%*
    410.04%13.70%/Linux/
    510.04%13.70%/Pictures/20050409_New_York/
    610.04%13.70%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 336 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    128711.71%22412.63%10994.03%00.00%00.00%197.79%66.249.65.103
    22329.47%22712.80%24438.96%00.00%00.00%20.82%193.191.8.85
    32008.16%1739.75%7612.79%00.00%00.00%135.33%66.249.66.203
    41907.76%1126.31%2220.81%00.00%00.00%20.82%193.190.253.146
    51335.43%663.72%740.27%00.00%00.00%72.87%83.101.44.34
    61174.78%1166.54%9463.47%00.00%00.00%10.41%194.78.62.13
    7642.61%643.61%00.00%00.00%00.00%83.28%192.168.1.2
    8481.96%462.59%1190.44%00.00%00.00%10.41%67.191.80.203
    9271.10%271.52%310.11%00.00%00.00%00.00%81.164.13.7
    10220.90%221.24%2470.91%00.00%00.00%10.41%194.187.189.56
    11220.90%00.00%140.05%00.00%00.00%00.00%74.6.30.175
    12210.86%211.18%1060.39%00.00%00.00%10.41%83.130.255.181
    13190.78%00.00%120.05%00.00%00.00%00.00%74.6.30.160
    14180.73%120.68%2070.76%00.00%00.00%20.82%75.144.170.49
    15180.73%120.68%2070.76%00.00%00.00%20.82%87.118.120.202
    16160.65%120.68%1850.68%00.00%00.00%20.82%194.187.130.171
    17160.65%120.68%1850.68%00.00%00.00%20.82%194.187.131.222
    18160.65%100.56%1700.62%00.00%00.00%20.82%78.62.9.58
    19160.65%100.56%1700.62%00.00%00.00%20.82%81.222.240.252
    20140.57%100.56%2120.78%00.00%00.00%20.82%222.127.228.6
    21140.57%80.45%2510.92%00.00%00.00%20.82%85.255.116.243
    22120.49%00.00%130.05%00.00%00.00%00.00%38.99.44.104
    23120.49%00.00%130.05%00.00%00.00%00.00%62.141.42.74
    24110.45%100.56%790.29%00.00%00.00%10.41%193.47.80.77
    25110.45%70.39%1170.43%00.00%00.00%10.41%62.141.48.212
    26110.45%70.39%1170.43%00.00%00.00%10.41%78.129.174.26
    27110.45%70.39%1170.43%00.00%00.00%10.41%82.224.139.88
    28110.45%80.45%1310.48%00.00%00.00%20.82%89.149.253.61
    29110.45%70.39%1170.43%00.00%00.00%10.41%91.124.210.60
    30110.45%70.39%1170.43%00.00%00.00%10.41%92.114.149.103
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 336 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    12329.47%22712.80%24438.96%00.00%00.00%20.82%193.191.8.85
    228711.71%22412.63%10994.03%00.00%00.00%197.79%66.249.65.103
    31174.78%1166.54%9463.47%00.00%00.00%10.41%194.78.62.13
    42008.16%1739.75%7612.79%00.00%00.00%135.33%66.249.66.203
    530.12%30.17%6772.48%00.00%00.00%00.00%90.52.55.181
    630.12%30.17%4521.66%00.00%00.00%00.00%193.40.133.134
    730.12%30.17%4521.66%00.00%00.00%00.00%213.22.238.31
    830.12%30.17%4521.66%00.00%00.00%00.00%89.240.90.230
    920.08%20.11%4511.65%00.00%00.00%00.00%193.205.206.25
    1020.08%20.11%4511.65%00.00%00.00%00.00%67.142.130.13
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 78 Total Referrers
    #HitsReferrer
    135814.61%frederik.gotdns.org/phpBB2/index.php
    21978.04%frederik.gotdns.org/phpBB2/login.php
    31315.35%frederik.gotdns.org/viewforum.php
    4692.82%frederik.gotdns.org/profile.php
    5522.12%frederik.gotdns.org/News/index.php
    6391.59%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    7200.82%209.85.135.104/translate_c
    8180.73%frederik.gotdns.org/phpBB2/viewtopic.php
    9160.65%frederik.gotdns.org/phpBB2/viewforum.php
    10100.41%www.vanrenterghem.biz/
    1190.37%www.vanrenterghem.biz/secured/Pictures/index.shtml
    1280.33%frederik.gotdns.org/posting.php
    1380.33%frederik.gotdns.org/styles/newspage.css
    1470.29%frederik.gotdns.org/login.php
    1560.24%frederik.gotdns.org/phpBB2/search.php
    1660.24%frederik.gotdns.org/styles/header.css
    1740.16%images.google.com/imgres
    1840.16%images.google.pl/imgres
    1940.16%www.google.be/search
    2030.12%1millionbloglinks.biz/blogs/affordable-web-hosting-solution
    2130.12%images.google.co.uk/imgres
    2230.12%images.google.com/images
    2330.12%images.google.fr/imgres
    2420.08%frederik.gotdns.org/Linux/iPAQ_and_obexserver.shtml
    2520.08%frederik.gotdns.org/News/email_from_dannyz.shtml
    2620.08%images.google.co.ma/imgres
    2720.08%users.telenet.be/fvanrenterghem/
    2820.08%vanrenterghem.biz/
    2920.08%vanrenterghem.biz/Surfing/index.shtml
    3020.08%www.google.com/search
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    12188.90%21812.29%24168.86%00.00%00.00%20.82%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 42 Total User Agents
    #HitsUser Agent
    149720.29%Googlebot/2.1
    245318.49%MSIE 6.0
    344718.24%MSIE 7.0
    439516.12%Mozilla/5.0
    52449.96%Yahoo! Slurp
    6481.96%MSIE 5.5
    7411.67%Apache/2.2.8 (Debian) PHP/5.2.5-3 with Suhosin-Patch (internal dummy connection)
    8381.55%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    9281.14%Opera 8.0
    10230.94%Apache/2.2.8 (Debian) PHP/4.4.6-2+b1 (internal dummy connection)
    11180.73%MSIE 5.0
    12170.69%Opera 9.0
    13160.65%Mozilla/4.6
    14110.45%Konqueror/3.5
    15100.41%Mozilla/0.9
    +

    + +Usage by Location for March 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 47 Total Locations
    #HitsFileskB FkB InkB OutLocation
    195238.86%68538.61%572621.01%00.00%00.00%United States
    270228.65%54930.95%394314.46%00.00%00.00%Belgium
    31214.94%774.34%13604.99%00.00%00.00%Russian Federation
    41184.82%794.45%14175.20%00.00%00.00%Ukraine
    5923.76%522.93%10273.77%00.00%00.00%Germany
    6743.02%714.00%3121.14%00.00%00.00%Unresolved/Unknown
    7582.37%402.25%25029.18%00.00%00.00%France
    8371.51%311.75%2761.01%00.00%00.00%Israel
    9301.22%140.79%2480.91%00.00%00.00%China
    10240.98%160.90%17016.24%00.00%00.00%Great Britain (UK)
    11220.90%221.24%2470.91%00.00%00.00%Romania
    12210.86%140.79%3241.19%00.00%00.00%Philippines
    13190.78%80.45%1420.52%00.00%00.00%Japan
    14170.69%120.68%14605.36%00.00%00.00%Poland
    15160.65%100.56%1700.62%00.00%00.00%Lithuania
    16150.61%110.62%10083.70%00.00%00.00%Estonia
    17130.53%90.51%7802.86%00.00%00.00%Netherlands
    18120.49%70.39%430.16%00.00%00.00%Canada
    19110.45%70.39%1170.43%00.00%00.00%Moldova
    2090.37%60.34%1040.38%00.00%00.00%United Arab Emirates
    2190.37%60.34%4911.80%00.00%00.00%Italy
    2290.37%60.34%1040.38%00.00%00.00%Nigeria
    2390.37%60.34%1040.38%00.00%00.00%Thailand
    2480.33%50.28%850.31%00.00%00.00%Czech Republic
    2580.33%40.23%160.06%00.00%00.00%Sweden
    2660.24%20.11%360.13%00.00%00.00%Korea (South)
    2740.16%10.06%2260.83%00.00%00.00%Cameroon
    2830.12%20.11%2270.83%00.00%00.00%Austria
    2930.12%20.11%2400.88%00.00%00.00%Spain
    3030.12%30.17%580.21%00.00%00.00%Hong Kong
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200804.html b/webalizer/usage_200804.html new file mode 100644 index 0000000..9117777 --- /dev/null +++ b/webalizer/usage_200804.html @@ -0,0 +1,2728 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - April 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: April 2008
    +Generated 01-May-2008 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for April 2008
    Total Hits639
    Total Files542
    Total Pages97
    Total Visits37
    Total kB Files3399
    Total kB In0
    Total kB Out0
    Total Unique Sites56
    Total Unique URLs49
    Total Unique Referrers13
    Total Unique Usernames1
    Total Unique User Agents9
    .Avg Max
    Hits per Hour0153
    Hits per Day21485
    Files per Day18444
    Pages per Day335
    Visits per Day18
    kB Files per Day1132668
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK542
    Code 302 - Found23
    Code 304 - Not Modified12
    Code 400 - Bad Request6
    Code 401 - Unauthorized3
    Code 403 - Forbidden10
    Code 404 - Not Found33
    Code 405 - Method Not Allowed10
    +

    + +Daily usage for April 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for April 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    1325.01%193.51%88.25%821.62%2544.64%3209.40%00.00%00.00%
    2365.63%183.32%1515.46%821.62%1119.64%2948.66%00.00%00.00%
    300.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    400.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    530.47%00.00%00.00%00.00%35.36%10.04%00.00%00.00%
    681.25%61.11%77.22%25.41%35.36%10.02%00.00%00.00%
    710.16%00.00%00.00%00.00%11.79%10.02%00.00%00.00%
    820.31%20.37%22.06%25.41%23.57%00.00%00.00%00.00%
    910.16%10.18%11.03%12.70%11.79%00.00%00.00%00.00%
    1071.10%00.00%11.03%12.70%47.14%60.19%00.00%00.00%
    1100.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1230.47%10.18%11.03%12.70%23.57%20.07%00.00%00.00%
    1360.94%61.11%66.19%12.70%11.79%00.00%00.00%00.00%
    1410.16%00.00%11.03%12.70%11.79%10.03%00.00%00.00%
    1500.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1600.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1700.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1800.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1900.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2000.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2100.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2200.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2300.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2400.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2500.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    26121.88%101.85%1111.34%38.11%35.36%10.04%00.00%00.00%
    2750.78%50.92%55.15%12.70%11.79%00.00%00.00%00.00%
    2871.10%00.00%00.00%00.00%11.79%70.20%00.00%00.00%
    29304.69%305.54%44.12%12.70%11.79%972.86%00.00%00.00%
    3048575.90%44481.92%3536.08%718.92%814.29%266878.47%00.00%00.00%
    +

    + +Hourly usage for April 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for April 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0050.78%000.00%011.03%050.14%000.00%000.00%
    10223.44%050.92%044.12%3972.84%000.00%000.00%
    20111.72%071.29%044.12%41173.45%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4071.10%030.55%022.06%1351.04%000.00%000.00%
    5050.78%020.37%011.03%0100.29%000.00%000.00%
    60223.44%0224.06%02222.68%000.00%000.00%000.00%
    7030.47%000.00%022.06%020.06%000.00%000.00%
    8010.16%000.00%011.03%010.03%000.00%000.00%
    9020.31%000.00%022.06%020.06%000.00%000.00%
    10040.63%020.37%022.06%060.18%000.00%000.00%
    110132.03%091.66%077.22%3912.68%000.00%000.00%
    121426.57%0183.32%02121.65%2531.56%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14010.16%010.18%011.03%000.00%000.00%000.00%
    15020.31%010.18%000.00%020.05%000.00%000.00%
    16040.63%020.37%011.03%0120.34%000.00%000.00%
    170132.03%081.48%055.15%1240.70%000.00%000.00%
    180142.19%091.66%011.03%1290.85%000.00%000.00%
    190152.35%0122.21%022.06%2561.65%000.00%000.00%
    20091.41%071.29%088.25%030.09%000.00%000.00%
    21515424.10%414727.12%044.12%2987425.70%000.00%000.00%
    22413621.28%413524.91%022.06%2986225.35%000.00%000.00%
    23515424.10%515228.04%044.12%37112032.93%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 49 Total URLs
    #HitskB FkB InkB OutURL
    138059.47%247772.87%00.00%00.00%/phpBB2/viewtopic.php
    2304.69%00.00%00.00%00.00%*
    3203.13%200.60%00.00%00.00%/News/permalink.php
    4203.13%2587.58%00.00%00.00%/phpBB2/
    5121.88%230.68%00.00%00.00%/News/
    6101.56%1163.42%00.00%00.00%/phpBB2/login.php
    771.10%60.17%00.00%00.00%/Pictures/
    871.10%340.99%00.00%00.00%/phpBB2/profile.php
    960.94%180.52%00.00%00.00%/Pics/logo-100.png
    1060.94%310.91%00.00%00.00%/phpBB2/search.php
    1160.94%30.07%00.00%00.00%/styles/header.css
    1260.94%00.01%00.00%00.00%/styles/main.css
    1330.47%40.10%00.00%00.00%/
    1430.47%40.12%00.00%00.00%/favicon.ico
    1530.47%180.52%00.00%00.00%/phpBB2/viewforum.php
    1620.31%50.14%00.00%00.00%/phppages/rss.php
    1710.16%10.02%00.00%00.00%/About/
    1810.16%320.94%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    1910.16%330.96%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    2010.16%00.01%00.00%00.00%/Pics/newsitem_ul.png
    2110.16%00.01%00.00%00.00%/Pics/newsitem_ur.png
    2210.16%00.01%00.00%00.00%/Pics/xml.png
    2310.16%20.06%00.00%00.00%/Pictures/20051112_COS_Garden_of_the_Gods/
    2410.16%10.03%00.00%00.00%/Pictures/20070206_Domburg/
    2510.16%10.03%00.00%00.00%/Surfing/
    2610.16%10.03%00.00%00.00%/cgi-bin/*
    2710.16%110.34%00.00%00.00%/phpBB2/faq.php
    2810.16%40.13%00.00%00.00%/phpBB2/groupcp.php
    2910.16%50.14%00.00%00.00%/phpBB2/memberlist.php
    3010.16%40.13%00.00%00.00%/phpBB2/viewonline.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 49 Total URLs By kB F
    #HitskB FkB InkB OutURL
    138059.47%247772.87%00.00%00.00%/phpBB2/viewtopic.php
    2203.13%2587.58%00.00%00.00%/phpBB2/
    3101.56%1163.42%00.00%00.00%/phpBB2/login.php
    471.10%340.99%00.00%00.00%/phpBB2/profile.php
    510.16%330.96%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    610.16%320.94%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    760.94%310.91%00.00%00.00%/phpBB2/search.php
    8121.88%230.68%00.00%00.00%/News/
    9203.13%200.60%00.00%00.00%/News/permalink.php
    1060.94%180.52%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 5 of 5 Total Entry Pages
    #HitsVisitsURL
    1203.13%1142.31%/phpBB2/
    2304.69%830.77%*
    3121.88%519.23%/News/
    410.16%13.85%/Pictures/20051112_COS_Garden_of_the_Gods/
    510.16%13.85%/Pictures/20070206_Domburg/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Exit Pages
    #HitsVisitsURL
    1121.88%480.00%/News/
    2203.13%120.00%/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 56 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    143968.70%42578.41%262977.34%00.00%00.00%410.81%66.249.65.232
    27111.11%488.86%1404.12%00.00%00.00%25.41%83.101.44.34
    3294.54%285.17%20.06%00.00%00.00%616.22%192.168.1.2
    4111.72%71.29%1173.45%00.00%00.00%12.70%85.255.121.202
    581.25%50.92%852.50%00.00%00.00%12.70%195.248.184.115
    681.25%00.00%80.23%00.00%00.00%12.70%76.164.47.179
    781.25%50.92%852.50%00.00%00.00%12.70%77.108.96.50
    840.63%00.00%40.12%00.00%00.00%00.00%92.240.68.153
    930.47%00.00%10.03%00.00%00.00%25.41%194.72.238.61
    1030.47%00.00%20.06%00.00%00.00%00.00%196.7.155.155
    1130.47%20.37%330.98%00.00%00.00%12.70%88.191.37.113
    1230.47%00.00%20.06%00.00%00.00%00.00%91.193.130.186
    1320.31%00.00%10.04%00.00%00.00%00.00%74.6.17.167
    1420.31%00.00%10.04%00.00%00.00%00.00%74.6.22.152
    1520.31%00.00%10.04%00.00%00.00%00.00%74.6.22.93
    1620.31%10.18%30.08%00.00%00.00%12.70%81.52.143.15
    1720.31%00.00%20.06%00.00%00.00%12.70%81.88.114.202
    1810.16%10.18%10.04%00.00%00.00%00.00%170.86.15.15
    1910.16%10.18%00.00%00.00%00.00%12.70%192.117.103.207
    2010.16%00.00%00.01%00.00%00.00%00.00%195.96.231.221
    2110.16%00.00%10.03%00.00%00.00%12.70%201.35.206.67
    2210.16%00.00%10.03%00.00%00.00%12.70%208.80.193.34
    2310.16%00.00%00.01%00.00%00.00%00.00%218.7.220.80
    2410.16%10.18%00.00%00.00%00.00%12.70%220.130.58.66
    2510.16%00.00%10.03%00.00%00.00%12.70%222.141.50.175
    2610.16%10.18%2266.63%00.00%00.00%00.00%24.37.196.158
    2710.16%00.00%10.03%00.00%00.00%00.00%38.99.44.104
    2810.16%00.00%00.01%00.00%00.00%00.00%65.111.181.38
    2910.16%00.00%10.03%00.00%00.00%12.70%67.202.31.95
    3010.16%10.18%20.07%00.00%00.00%00.00%74.6.16.250
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 56 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    143968.70%42578.41%262977.34%00.00%00.00%410.81%66.249.65.232
    210.16%10.18%2266.63%00.00%00.00%00.00%24.37.196.158
    37111.11%488.86%1404.12%00.00%00.00%25.41%83.101.44.34
    4111.72%71.29%1173.45%00.00%00.00%12.70%85.255.121.202
    581.25%50.92%852.50%00.00%00.00%12.70%77.108.96.50
    681.25%50.92%852.50%00.00%00.00%12.70%195.248.184.115
    730.47%20.37%330.98%00.00%00.00%12.70%88.191.37.113
    881.25%00.00%80.23%00.00%00.00%12.70%76.164.47.179
    910.16%10.18%50.15%00.00%00.00%12.70%74.6.19.39
    1010.16%10.18%50.15%00.00%00.00%12.70%74.6.20.163
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 12 of 13 Total Referrers
    #HitsReferrer
    1203.13%kauai.vanrenterghem.biz/phpBB2/index.php
    2142.19%kauai.vanrenterghem.biz/Pictures/
    3111.72%frederik.gotdns.org/phpBB2/index.php
    481.25%frederik.gotdns.org/phpBB2/login.php
    581.25%frederik.gotdns.org/viewforum.php
    660.94%kauai.vanrenterghem.biz/styles/header.css
    740.63%kauai.vanrenterghem.biz/News/index.php
    830.47%frederik.gotdns.org/profile.php
    920.31%kauai.vanrenterghem.biz/styles/newspage.css
    1020.31%vanrenterghem.biz/index.shtml
    1120.31%www.netcraft.com/survey/
    1210.16%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    110.16%10.18%30.08%00.00%00.00%12.70%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total User Agents
    #HitsUser Agent
    143968.70%Googlebot/2.1
    28012.52%Mozilla/5.0
    3345.32%MSIE 6.0
    4294.54%Yahoo! Slurp
    5274.23%Apache/2.2.8 (Debian) PHP/5.2.5-3 with Suhosin-Patch (internal dummy connection)
    630.47%MSIE 4.0
    720.31%MSIE 7.0
    820.31%Netcraft Web Server Survey)"
    910.16%Google Desktop)"
    +

    + +Usage by Location for April 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 18 of 18 Total Locations
    #HitsFileskB FkB InkB OutLocation
    148175.27%44281.55%269479.25%00.00%00.00%United States
    27211.27%488.86%1404.13%00.00%00.00%Belgium
    3294.54%285.17%20.06%00.00%00.00%Unresolved/Unknown
    4192.97%122.21%2025.94%00.00%00.00%Ukraine
    5101.56%50.92%872.56%00.00%00.00%Russian Federation
    650.78%30.55%361.06%00.00%00.00%France
    740.63%00.00%20.07%00.00%00.00%Germany
    840.63%00.00%40.12%00.00%00.00%Latvia
    930.47%00.00%10.03%00.00%00.00%Great Britain (UK)
    1030.47%00.00%20.06%00.00%00.00%South Africa
    1120.31%00.00%10.04%00.00%00.00%China
    1210.16%00.00%00.01%00.00%00.00%Bulgaria
    1310.16%00.00%10.03%00.00%00.00%Brazil
    1410.16%10.18%2266.63%00.00%00.00%Canada
    1510.16%10.18%00.00%00.00%00.00%Israel
    1610.16%10.18%00.00%00.00%00.00%Italy
    1710.16%00.00%00.01%00.00%00.00%Turkey
    1810.16%10.18%00.00%00.00%00.00%Taiwan
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200805.html b/webalizer/usage_200805.html new file mode 100644 index 0000000..be6aa77 --- /dev/null +++ b/webalizer/usage_200805.html @@ -0,0 +1,3096 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - May 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: May 2008
    +Generated 01-Jun-2008 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for May 2008
    Total Hits7748
    Total Files6590
    Total Pages733
    Total Visits464
    Total kB Files61662
    Total kB In0
    Total kB Out0
    Total Unique Sites412
    Total Unique URLs603
    Total Unique Referrers85
    Total Unique Usernames1
    Total Unique User Agents57
    .Avg Max
    Hits per Hour10332
    Hits per Day249841
    Files per Day212792
    Pages per Day2353
    Visits per Day1434
    kB Files per Day19896218
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK6590
    Code 302 - Found257
    Code 304 - Not Modified19
    Code 400 - Bad Request35
    Code 401 - Unauthorized25
    Code 404 - Not Found822
    +

    + +Daily usage for May 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for May 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    13053.94%2934.45%192.59%153.23%102.43%16792.72%00.00%00.00%
    2821.06%711.08%223.00%122.59%10.24%1010.16%00.00%00.00%
    3750.97%691.05%172.32%153.23%51.21%790.13%00.00%00.00%
    4550.71%490.74%162.18%81.72%40.97%51898.41%00.00%00.00%
    5350.45%150.23%00.00%00.00%20.49%1000.16%00.00%00.00%
    61101.42%841.27%50.68%40.86%133.16%18473.00%00.00%00.00%
    71171.51%701.06%30.41%30.65%133.16%4500.73%00.00%00.00%
    81872.41%1592.41%10.14%10.22%133.16%11371.84%00.00%00.00%
    980.10%50.08%30.41%20.43%51.21%370.06%00.00%00.00%
    101071.38%1021.55%10.14%10.22%40.97%6711.09%00.00%00.00%
    112413.11%2223.37%111.50%40.86%81.94%14612.37%00.00%00.00%
    122333.01%2303.49%30.41%20.43%20.49%15722.55%00.00%00.00%
    133324.28%3054.63%243.27%163.45%122.91%25874.20%00.00%00.00%
    144435.72%4236.42%111.50%102.16%153.64%45887.44%00.00%00.00%
    1584110.85%79212.02%466.28%204.31%378.98%56289.13%00.00%00.00%
    162883.72%2393.63%385.18%265.60%4510.92%13222.14%00.00%00.00%
    1782210.61%76211.56%516.96%224.74%317.52%49358.00%00.00%00.00%
    185096.57%4466.77%537.23%234.96%286.80%621810.08%00.00%00.00%
    191161.50%681.03%273.68%234.96%358.50%5180.84%00.00%00.00%
    201441.86%570.86%364.91%234.96%389.22%25514.14%00.00%00.00%
    21851.10%430.65%334.50%234.96%307.28%3830.62%00.00%00.00%
    222242.89%1271.93%466.28%275.82%4711.41%7211.17%00.00%00.00%
    232242.89%1402.12%537.23%347.33%4711.41%9401.52%00.00%00.00%
    247359.49%69210.50%314.23%183.88%256.07%53338.65%00.00%00.00%
    251752.26%1061.61%273.68%163.45%276.55%29684.81%00.00%00.00%
    261842.37%1342.03%314.23%245.17%307.28%9191.49%00.00%00.00%
    271802.32%1372.08%344.64%214.53%378.98%29084.72%00.00%00.00%
    283244.18%2734.14%385.18%265.60%409.71%16802.72%00.00%00.00%
    291231.59%851.29%223.00%224.74%4410.68%5730.93%00.00%00.00%
    302262.92%2013.05%121.64%112.37%204.85%14282.32%00.00%00.00%
    312182.81%1912.90%192.59%122.59%245.83%11351.84%00.00%00.00%
    +

    + +Hourly usage for May 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for May 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0154806.20%134246.43%1385.18%8426094.23%000.00%000.00%
    1103254.19%82754.17%1324.37%5918372.98%000.00%000.00%
    2123764.85%113535.36%0202.73%11936795.97%000.00%000.00%
    392883.72%82523.82%0182.46%4915132.45%000.00%000.00%
    492963.82%72303.49%0212.86%5617392.82%000.00%000.00%
    5124015.18%123805.77%0131.77%8325754.18%000.00%000.00%
    693043.92%82513.81%2638.59%4313272.15%000.00%000.00%
    751742.25%41542.34%0141.91%8526264.26%000.00%000.00%
    8103274.22%82764.19%1608.19%5416872.74%000.00%000.00%
    962042.63%41482.25%0273.68%3611301.83%000.00%000.00%
    1082643.41%72233.38%0182.46%13040306.54%000.00%000.00%
    1182573.32%62143.25%0293.96%214664510.78%000.00%000.00%
    1292863.69%72353.57%1314.23%11936905.98%000.00%000.00%
    1392853.68%72353.57%0243.27%11435395.74%000.00%000.00%
    1482693.47%62003.03%0192.59%4213122.13%000.00%000.00%
    15103134.04%92844.31%1405.46%5517152.78%000.00%000.00%
    1692843.67%82593.93%0283.82%4814752.39%000.00%000.00%
    1782673.45%62113.20%0212.86%4313302.16%000.00%000.00%
    18103354.32%92804.25%1354.77%6520093.26%000.00%000.00%
    19113644.70%92944.46%1375.05%6419993.24%000.00%000.00%
    2061892.44%41502.28%0212.86%298871.44%000.00%000.00%
    21154896.31%134096.21%1527.09%10030865.01%000.00%000.00%
    22134305.55%103395.14%1466.28%14645397.36%000.00%000.00%
    23175416.98%165147.80%0263.55%15146837.60%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 603 Total URLs
    #HitskB FkB InkB OutURL
    1429955.49%3031449.16%00.00%00.00%/phpBB2/viewtopic.php
    23814.92%4280.69%00.00%00.00%/News/permalink.php
    31812.34%29404.77%00.00%00.00%/phpBB2/
    41361.76%9371.52%00.00%00.00%/phpBB2/search.php
    51291.66%1920.31%00.00%00.00%/
    61231.59%2870.46%00.00%00.00%/News/
    7770.99%00.00%00.00%00.00%*
    8630.81%4420.72%00.00%00.00%/phpBB2/profile.php
    9610.79%700.11%00.00%00.00%/styles/header.css
    10600.77%80.01%00.00%00.00%/styles/main.css
    11490.63%3980.64%00.00%00.00%/Pics/logo-100.png
    12350.45%4660.76%00.00%00.00%/phpBB2/viewforum.php
    13290.37%380.06%00.00%00.00%/favicon.ico
    14290.37%2950.48%00.00%00.00%/phpBB2/memberlist.php
    15260.34%880.14%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    16240.31%610.10%00.00%00.00%/Linux/
    17220.28%1540.25%00.00%00.00%/phpBB2/groupcp.php
    18210.27%200.03%00.00%00.00%/About/
    19210.27%640.10%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    20210.27%230.04%00.00%00.00%/Pictures/
    21210.27%1150.19%00.00%00.00%/phpBB2/login.php
    22200.26%4570.74%00.00%00.00%/phpBB2/faq.php
    23180.23%1390.22%00.00%00.00%/phpBB2/viewonline.php
    24120.15%210.03%00.00%00.00%/Surfing/
    25100.13%400.07%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2690.12%2870.47%00.00%00.00%/DumpingGround/20071229_1300_wave_height.png
    2790.12%2930.48%00.00%00.00%/DumpingGround/20071230_0700_wave_height.png
    2890.12%40.01%00.00%00.00%/Pics/xml.png
    2990.12%370.06%00.00%00.00%/phppages/rss.php
    3080.10%60.01%00.00%00.00%/styles/newspage.css
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 603 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1429955.49%3031449.16%00.00%00.00%/phpBB2/viewtopic.php
    250.06%833613.52%00.00%00.00%/Pictures/shot_09-03-03_224036.png
    350.06%51148.29%00.00%00.00%/tmp/Fietstochtbrochure.pdf
    41812.34%29404.77%00.00%00.00%/phpBB2/
    520.03%26304.27%00.00%00.00%/Pictures/20060429_chello_extreme.png
    61361.76%9371.52%00.00%00.00%/phpBB2/search.php
    7350.45%4660.76%00.00%00.00%/phpBB2/viewforum.php
    8200.26%4570.74%00.00%00.00%/phpBB2/faq.php
    9630.81%4420.72%00.00%00.00%/phpBB2/profile.php
    103814.92%4280.69%00.00%00.00%/News/permalink.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 21 Total Entry Pages
    #HitsVisitsURL
    11812.34%14532.73%/phpBB2/
    21291.66%9721.90%/
    31231.59%8318.74%/News/
    4770.99%419.26%*
    5240.31%153.39%/Linux/
    6210.27%143.16%/About/
    7210.27%122.71%/Pictures/
    8120.15%81.81%/Surfing/
    960.08%51.13%/Pictures/20021229_Serial_Console/
    1040.05%40.90%/phpBB2//
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 11 Total Exit Pages
    #HitsVisitsURL
    11231.59%5354.64%/News/
    21291.66%1616.49%/
    31812.34%1515.46%/phpBB2/
    4770.99%22.06%*
    5210.27%22.06%/About/
    630.04%22.06%/Pictures/200505_Amsterdam/
    7120.15%22.06%/Surfing/
    840.05%22.06%/secured/Pictures/
    9240.31%11.03%/Linux/
    1060.08%11.03%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 412 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1200625.89%194929.58%1222719.83%00.00%00.00%275.82%66.249.66.46
    2115714.93%111316.89%709711.51%00.00%00.00%81.72%66.249.66.144
    385511.04%84312.79%55999.08%00.00%00.00%30.65%66.249.65.11
    45036.49%4767.22%19363.14%00.00%00.00%429.05%66.249.65.232
    53724.80%3555.39%23793.86%00.00%00.00%10.22%66.249.65.135
    63284.23%3274.96%35505.76%00.00%00.00%10.22%193.190.253.146
    72923.77%2784.22%709611.51%00.00%00.00%265.60%83.101.44.34
    81652.13%1642.49%10611.72%00.00%00.00%40.86%66.249.65.39
    91061.37%891.35%26504.30%00.00%00.00%91.94%65.55.213.78
    10720.93%650.99%2790.45%00.00%00.00%30.65%66.249.65.4
    11640.83%640.97%00.00%00.00%00.00%112.37%192.168.1.2
    12550.71%400.61%7061.15%00.00%00.00%51.08%66.231.188.166
    13530.68%40.06%1270.21%00.00%00.00%30.65%203.162.2.134
    14510.66%60.09%1680.27%00.00%00.00%40.86%203.162.2.133
    15480.62%330.50%470.08%00.00%00.00%81.72%67.195.37.93
    16440.57%00.00%200.03%00.00%00.00%00.00%203.162.2.136
    17380.49%00.00%400.06%00.00%00.00%00.00%67.19.110.138
    18340.44%00.00%360.06%00.00%00.00%20.43%217.72.220.146
    19340.44%290.44%2570.42%00.00%00.00%10.22%38.100.41.102
    20330.43%330.50%1740.28%00.00%00.00%10.22%193.191.219.80
    21330.43%330.50%1020.17%00.00%00.00%10.22%195.33.116.129
    22300.39%200.30%24944.04%00.00%00.00%00.00%193.47.80.138
    23300.39%210.32%6911.12%00.00%00.00%10.22%69.84.207.37
    24260.34%30.05%840.14%00.00%00.00%20.43%203.162.2.135
    25240.31%00.00%150.03%00.00%00.00%20.43%209.3.11.34
    26220.28%20.03%760.12%00.00%00.00%00.00%194.8.75.214
    27220.28%20.03%620.10%00.00%00.00%10.22%203.158.221.227
    28200.26%10.02%400.06%00.00%00.00%10.22%203.162.2.137
    29200.26%00.00%210.03%00.00%00.00%10.22%80.248.208.218
    30200.26%100.15%250.04%00.00%00.00%102.16%81.52.143.15
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 412 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1200625.89%194929.58%1222719.83%00.00%00.00%275.82%66.249.66.46
    2115714.93%111316.89%709711.51%00.00%00.00%81.72%66.249.66.144
    32923.77%2784.22%709611.51%00.00%00.00%265.60%83.101.44.34
    485511.04%84312.79%55999.08%00.00%00.00%30.65%66.249.65.11
    53284.23%3274.96%35505.76%00.00%00.00%10.22%193.190.253.146
    61061.37%891.35%26504.30%00.00%00.00%91.94%65.55.213.78
    7300.39%200.30%24944.04%00.00%00.00%00.00%193.47.80.138
    83724.80%3555.39%23793.86%00.00%00.00%10.22%66.249.65.135
    960.08%60.09%20983.40%00.00%00.00%10.22%84.161.219.56
    1050.06%50.08%20963.40%00.00%00.00%10.22%84.98.204.144
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 85 Total Referrers
    #HitsReferrer
    13164.08%www.vanrenterghem.biz/secured/Pictures/200607_The_Long_Swell/index.shtml
    2941.21%vanrenterghem.biz/secured/Pictures/200507_Surfvakantie_Hossegor/index.shtml
    3760.98%vanrenterghem.biz/phpBB2/
    4750.97%vanrenterghem.biz/viewforum.php
    5690.89%vanrenterghem.biz/secured/Pictures/20031231/index.shtml
    6680.88%vanrenterghem.biz/profile.php
    7510.66%kauai.vanrenterghem.biz/phpBB2/index.php
    8380.49%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    9350.45%vanrenterghem.biz//vanrenterghem.biz/profile.php
    10330.43%vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    11320.41%vanrenterghem.biz//vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    12310.40%kauai.vanrenterghem.biz/viewforum.php
    13300.39%kauai.vanrenterghem.biz/News/index.php
    14300.39%vanrenterghem.biz//vanrenterghem.biz//vanrenterghem.biz/profile.php
    15280.36%vanrenterghem.biz/
    16250.32%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    17240.31%www.vanrenterghem.biz/
    18230.30%vanrenterghem.biz/styles/header.css
    19220.28%vanrenterghem.biz/index.php
    20120.15%vanrenterghem.biz/secured/Pictures/20070212_Blauwe_maandag/index.shtml
    21120.15%www.vanrenterghem.biz/phpBB2/index.php
    2290.12%vanrenterghem.biz//vanrenterghem.biz/index.php
    2390.12%vanrenterghem.biz/Pictures/20070206_Domburg/index.shtml
    2490.12%vanrenterghem.biz/Pictures/index.shtml
    2580.10%vanrenterghem.biz/Linux/index.shtml
    2680.10%www.vanrenterghem.biz/Linux/index.shtml
    2770.09%vanrenterghem.biz/News/index.php
    2870.09%vanrenterghem.biz/index.shtml
    2970.09%vanrenterghem.biz/phpBB2/index.php
    3070.09%vanrenterghem.biz/secured/Pictures/index.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    14996.44%4997.57%51408.34%00.00%00.00%30.65%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 57 Total User Agents
    #HitsUser Agent
    1511566.02%Googlebot/2.1
    26979.00%Mozilla/5.0
    35026.48%MSIE 7.0
    42973.83%MSIE 6.0
    52062.66%Yahoo! Slurp
    61061.37%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    7650.84%Gigabot/3.0 (http://www.gigablast.com/spider.html)
    8640.83%Apache/2.2.8 (Debian) PHP/5.2.5-3 with Suhosin-Patch (internal dummy connection)
    9560.72%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    10380.49%Yahoo! Slurp/3.0
    11360.46%Googlebot-Image/1.0
    12340.44%libwww-perl/5.805
    13300.39%Exabot-Images/3.0
    14250.32%MSIE 5.5
    15240.31%Morfeus Fucking Scanner
    +

    + +Usage by Location for May 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 46 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1595976.91%542982.38%3780661.31%00.00%00.00%United States
    26868.85%66810.14%1099017.82%00.00%00.00%Belgium
    31942.50%140.21%4380.71%00.00%00.00%Viet Nam
    41371.77%630.96%23543.82%00.00%00.00%Germany
    51331.72%620.94%47137.64%00.00%00.00%France
    6931.20%731.11%820.13%00.00%00.00%Unresolved/Unknown
    7871.12%460.70%6741.09%00.00%00.00%Russian Federation
    8811.05%570.86%3300.53%00.00%00.00%Great Britain (UK)
    9670.86%410.62%6811.10%00.00%00.00%China
    10390.50%30.05%960.16%00.00%00.00%Spain
    11370.48%30.05%980.16%00.00%00.00%Thailand
    12250.32%70.11%690.11%00.00%00.00%Poland
    13220.28%120.18%410.07%00.00%00.00%Italy
    14210.27%130.20%2590.42%00.00%00.00%Ukraine
    15170.22%110.17%630.10%00.00%00.00%Romania
    16140.18%30.05%710.11%00.00%00.00%Jordan
    17100.13%80.12%250.04%00.00%00.00%Ireland
    18100.13%70.11%1310.21%00.00%00.00%Latvia
    1990.12%80.12%450.07%00.00%00.00%India
    2090.12%50.08%1590.26%00.00%00.00%Netherlands
    2180.10%20.03%160.03%00.00%00.00%Japan
    2270.09%60.09%21163.43%00.00%00.00%Bulgaria
    2360.08%10.02%180.03%00.00%00.00%Austria
    2460.08%60.09%150.02%00.00%00.00%Czech Republic
    2560.08%40.06%150.02%00.00%00.00%Korea (South)
    2650.06%30.05%280.05%00.00%00.00%Canada
    2750.06%50.08%130.02%00.00%00.00%Luxembourg
    2850.06%50.08%150.02%00.00%00.00%El Salvador
    2950.06%40.06%810.13%00.00%00.00%Yemen
    3040.05%00.00%40.01%00.00%00.00%Argentina
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200806.html b/webalizer/usage_200806.html new file mode 100644 index 0000000..c43bd74 --- /dev/null +++ b/webalizer/usage_200806.html @@ -0,0 +1,3098 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - June 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: June 2008
    +Generated 01-Jul-2008 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for June 2008
    Total Hits5666
    Total Files4495
    Total Pages726
    Total Visits410
    Total kB Files41464
    Total kB In0
    Total kB Out0
    Total Unique Sites563
    Total Unique URLs461
    Total Unique Referrers83
    Total Unique Usernames1
    Total Unique User Agents58
    .Avg Max
    Hits per Hour7393
    Hits per Day188678
    Files per Day149590
    Pages per Day24100
    Visits per Day1335
    kB Files per Day13825497
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK4495
    Code 206 - Partial Content1
    Code 302 - Found257
    Code 304 - Not Modified35
    Code 400 - Bad Request35
    Code 401 - Unauthorized18
    Code 404 - Not Found825
    +

    + +Daily usage for June 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for June 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    14337.64%3998.88%364.96%184.39%407.10%29187.04%00.00%00.00%
    24618.14%3938.74%354.82%225.37%346.04%449810.85%00.00%00.00%
    31162.05%952.11%141.93%143.41%254.44%6651.60%00.00%00.00%
    42263.99%1583.52%537.30%348.29%559.77%8572.07%00.00%00.00%
    53275.77%2846.32%233.17%194.63%325.68%19914.80%00.00%00.00%
    64337.64%3517.81%10013.77%317.56%356.22%490611.83%00.00%00.00%
    7731.29%571.27%273.72%51.22%91.60%4491.08%00.00%00.00%
    800.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    900.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1000.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1100.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1200.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1300.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1400.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1550.09%50.11%50.69%10.24%10.18%00.00%00.00%00.00%
    16540.95%360.80%101.38%51.22%162.84%2090.50%00.00%00.00%
    173546.25%2866.36%638.68%256.10%376.57%541013.05%00.00%00.00%
    183175.59%2475.49%567.71%297.07%457.99%19704.75%00.00%00.00%
    191272.24%1112.47%263.58%143.41%183.20%6331.53%00.00%00.00%
    203085.44%2335.18%202.75%143.41%6211.01%17964.33%00.00%00.00%
    2167811.97%59013.13%344.68%184.39%7212.79%549713.26%00.00%00.00%
    224447.84%3357.45%587.99%358.54%10017.76%26336.35%00.00%00.00%
    233676.48%2545.65%182.48%143.41%6912.26%17164.14%00.00%00.00%
    241642.89%1072.38%253.44%174.15%478.35%10612.56%00.00%00.00%
    251212.14%902.00%141.93%122.93%366.39%7341.77%00.00%00.00%
    261793.16%1533.40%233.17%153.66%396.93%13233.19%00.00%00.00%
    27911.61%651.45%111.52%112.68%295.15%5421.31%00.00%00.00%
    281121.98%701.56%223.03%184.39%356.22%5621.36%00.00%00.00%
    291602.82%1082.40%364.96%245.85%437.64%6001.45%00.00%00.00%
    301162.05%681.51%172.34%153.66%417.28%4931.19%00.00%00.00%
    +

    + +Hourly usage for June 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for June 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    092945.19%61854.12%1375.10%5014963.61%000.00%000.00%
    172213.90%51733.85%0152.07%4212643.05%000.00%000.00%
    272213.90%61834.07%0212.89%5516634.01%000.00%000.00%
    361823.21%41383.07%1354.82%3711122.68%000.00%000.00%
    482524.45%61804.00%1364.96%5115293.69%000.00%000.00%
    541472.59%31162.58%0152.07%267831.89%000.00%000.00%
    672173.83%61884.18%1598.13%3510592.55%000.00%000.00%
    751753.09%41443.20%1324.41%3410342.49%000.00%000.00%
    872324.09%61854.12%1375.10%10631747.65%000.00%000.00%
    9185609.88%1751211.39%1354.82%156466811.26%000.00%000.00%
    1061963.46%51693.76%0172.34%3410102.44%000.00%000.00%
    1151763.11%51503.34%0182.48%339982.41%000.00%000.00%
    1251682.97%41363.03%0263.58%319392.26%000.00%000.00%
    1361953.44%41493.31%0152.07%3911632.80%000.00%000.00%
    1451652.91%41393.09%0192.62%308892.14%000.00%000.00%
    1551753.09%41383.07%0111.52%3610832.61%000.00%000.00%
    1651662.93%41272.83%1314.27%329602.32%000.00%000.00%
    1761953.44%41413.14%0293.99%3911772.84%000.00%000.00%
    18123686.49%92956.56%1385.23%7422065.32%000.00%000.00%
    1961973.48%41383.07%1364.96%3711162.69%000.00%000.00%
    20113486.14%92756.12%1476.47%12136228.73%000.00%000.00%
    2192774.89%61934.29%1425.79%6419184.63%000.00%000.00%
    22123626.39%103086.85%2618.40%182546013.17%000.00%000.00%
    2351773.12%41332.96%0141.93%3811422.75%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 461 Total URLs
    #HitskB FkB InkB OutURL
    1211637.35%1985847.89%00.00%00.00%/phpBB2/viewtopic.php
    22183.85%280.07%00.00%00.00%/styles/main.css
    32173.83%2620.63%00.00%00.00%/styles/header.css
    41642.89%570.14%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    51522.68%2710.65%00.00%00.00%/
    61502.65%24615.94%00.00%00.00%/phpBB2/
    7791.39%00.00%00.00%00.00%*
    8721.27%17524.23%00.00%00.00%/phpbb2/viewtopic.php
    9480.85%1410.34%00.00%00.00%/News/
    10460.81%3450.83%00.00%00.00%/Pics/logo-100.png
    11440.78%650.16%00.00%00.00%/News/permalink.php
    12420.74%7171.73%00.00%00.00%/phpBB2/memberlist.php
    13420.74%4221.02%00.00%00.00%/phpBB2/profile.php
    14390.69%4421.06%00.00%00.00%/phpBB2/login.php
    15390.69%4391.06%00.00%00.00%/phpBB2/search.php
    16380.67%15453.73%00.00%00.00%/phpBB2/viewforum.php
    17370.65%12853.10%00.00%00.00%/phpbb2/viewforum.php
    18360.64%6361.53%00.00%00.00%/phpbb2/
    19340.60%4901.18%00.00%00.00%/phpbb2/search.php
    20320.56%1630.39%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    21310.55%400.10%00.00%00.00%/Pictures/
    22300.53%820.20%00.00%00.00%/Linux/
    23290.51%3870.93%00.00%00.00%/phpBB2/viewonline.php
    24270.48%3540.85%00.00%00.00%/phpbb2/posting.php
    25270.48%3540.85%00.00%00.00%/phpbb2/profile.php
    26250.44%460.11%00.00%00.00%/Surfing/
    27250.44%340.08%00.00%00.00%/news/permalink.php
    28240.42%1080.26%00.00%00.00%/news/
    29230.41%260.06%00.00%00.00%/About/
    30150.26%1150.28%00.00%00.00%/phpBB2/groupcp.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 461 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1211637.35%1985847.89%00.00%00.00%/phpBB2/viewtopic.php
    220.04%26306.34%00.00%00.00%/Pictures/20060429_chello_extreme.png
    31502.65%24615.94%00.00%00.00%/phpBB2/
    4721.27%17524.23%00.00%00.00%/phpbb2/viewtopic.php
    5380.67%15453.73%00.00%00.00%/phpBB2/viewforum.php
    6370.65%12853.10%00.00%00.00%/phpbb2/viewforum.php
    7420.74%7171.73%00.00%00.00%/phpBB2/memberlist.php
    8360.64%6361.53%00.00%00.00%/phpbb2/
    9340.60%4901.18%00.00%00.00%/phpbb2/search.php
    10390.69%4421.06%00.00%00.00%/phpBB2/login.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 16 Total Entry Pages
    #HitsVisitsURL
    11502.65%12130.56%/phpBB2/
    21522.68%11829.80%/
    3791.39%4711.87%*
    4480.85%287.07%/News/
    5300.53%194.80%/Linux/
    6310.55%153.79%/Pictures/
    7250.44%143.54%/Surfing/
    8230.41%112.78%/About/
    9360.64%71.77%/phpbb2/
    1060.11%51.26%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 11 Total Exit Pages
    #HitsVisitsURL
    11522.68%1728.33%/
    21502.65%1321.67%/phpBB2/
    3480.85%711.67%/News/
    4300.53%610.00%/Linux/
    5310.55%58.33%/Pictures/
    6791.39%46.67%*
    7230.41%23.33%/About/
    860.11%23.33%/Pictures/20021229_Serial_Console/
    940.07%23.33%/secured/Pictures/
    10250.44%11.67%/Surfing/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 563 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    195416.84%93220.73%630615.21%00.00%00.00%20.49%66.249.65.135
    24087.20%4048.99%37789.11%00.00%00.00%30.73%193.190.253.146
    33355.91%3056.79%19824.78%00.00%00.00%71.71%66.249.66.144
    41843.25%1763.92%11752.83%00.00%00.00%30.73%66.249.72.37
    51713.02%1453.23%8672.09%00.00%00.00%30.73%66.249.72.97
    61172.06%1012.25%27466.62%00.00%00.00%61.46%65.55.213.78
    7941.66%841.87%39289.47%00.00%00.00%10.24%150.162.10.1
    8811.43%801.78%5391.30%00.00%00.00%00.00%66.249.66.235
    9751.32%751.67%00.00%00.00%00.00%133.17%192.168.1.2
    10751.32%661.47%22455.41%00.00%00.00%10.24%209.213.100.89
    11741.31%621.38%8161.97%00.00%00.00%10.24%194.77.253.248
    12621.09%00.00%650.16%00.00%00.00%00.00%69.64.76.38
    13560.99%420.93%690.17%00.00%00.00%215.12%83.101.44.34
    14540.95%400.89%3640.88%00.00%00.00%10.24%208.116.49.50
    15540.95%461.02%5111.23%00.00%00.00%10.24%62.193.248.93
    16530.94%370.82%2030.49%00.00%00.00%61.46%65.55.105.100
    17490.86%420.93%4241.02%00.00%00.00%10.24%207.126.57.109
    18490.86%370.82%3480.84%00.00%00.00%10.24%212.130.44.130
    19480.85%350.78%1900.46%00.00%00.00%30.73%65.55.105.99
    20480.85%360.80%3280.79%00.00%00.00%10.24%85.13.211.83
    21470.83%280.62%1510.36%00.00%00.00%40.98%65.55.105.97
    22460.81%320.71%480.12%00.00%00.00%92.20%67.195.37.93
    23450.79%180.40%1160.28%00.00%00.00%20.49%65.55.105.115
    24430.76%230.51%1550.37%00.00%00.00%51.22%65.55.105.111
    25420.74%280.62%1640.40%00.00%00.00%20.49%65.55.105.101
    26420.74%250.56%1400.34%00.00%00.00%20.49%65.55.105.114
    27400.71%210.47%1200.29%00.00%00.00%00.00%65.55.105.113
    28400.71%250.56%1350.33%00.00%00.00%30.73%65.55.105.98
    29350.62%230.51%540.13%00.00%00.00%133.17%74.6.22.163
    30330.58%170.38%1050.25%00.00%00.00%10.24%65.55.105.109
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 563 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    195416.84%93220.73%630615.21%00.00%00.00%20.49%66.249.65.135
    2941.66%841.87%39289.47%00.00%00.00%10.24%150.162.10.1
    34087.20%4048.99%37789.11%00.00%00.00%30.73%193.190.253.146
    41172.06%1012.25%27466.62%00.00%00.00%61.46%65.55.213.78
    5751.32%661.47%22455.41%00.00%00.00%10.24%209.213.100.89
    63355.91%3056.79%19824.78%00.00%00.00%71.71%66.249.66.144
    71843.25%1763.92%11752.83%00.00%00.00%30.73%66.249.72.37
    81713.02%1453.23%8672.09%00.00%00.00%30.73%66.249.72.97
    9741.31%621.38%8161.97%00.00%00.00%10.24%194.77.253.248
    10811.43%801.78%5391.30%00.00%00.00%00.00%66.249.66.235
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 83 Total Referrers
    #HitsReferrer
    13145.54%www.vanrenterghem.biz/secured/Pictures/200607_The_Long_Swell/index.shtml
    22794.92%vanrenterghem.biz/phpBB2/viewtopic.php
    32774.89%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    41582.79%search.live.com/results.aspx
    51011.78%vanrenterghem.biz/viewforum.php
    6560.99%www.vanrenterghem.biz/secured/Pictures/20070211_Shooters/index.shtml
    7510.90%kauai.vanrenterghem.biz/viewforum.php
    8370.65%vanrenterghem.biz/profile.php
    9340.60%vanrenterghem.biz/phpBB2/
    10330.58%vanrenterghem.biz/
    11300.53%vanrenterghem.biz/phpBB2/index.php
    12300.53%vanrenterghem.biz/phpBB2/login.php
    13290.51%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    14290.51%vanrenterghem.biz/phpBB2/memberlist.php
    15270.48%www.vanrenterghem.biz/
    16240.42%64.233.183.104/search
    17230.41%kauai.vanrenterghem.biz/phpBB2/viewonline.php
    18190.34%kauai.vanrenterghem.biz/phpBB2/profile.php
    19180.32%vanrenterghem.biz/posting.php
    20170.30%www.vanrenterghem.biz/phpBB2/index.php
    21150.26%kauai.vanrenterghem.biz/profile.php
    22140.25%vanrenterghem.biz/styles/header.css
    23130.23%kauai.vanrenterghem.biz/phpBB2/index.php
    24120.21%kauai.vanrenterghem.biz/posting.php
    25100.18%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    26100.18%vanrenterghem.biz/phpBB2/profile.php
    2790.16%kauai.vanrenterghem.biz/News/index.php
    2890.16%www.keywordspy.com/keyword-research/vanrenterghem.biz
    2990.16%www.vanrenterghem.biz/Pictures/index.shtml
    3070.12%vanrenterghem.biz/Linux/index.shtml
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Search Strings
    #HitsSearch String
    11100.00%beauty pictures for desktop
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    13766.64%3768.36%37379.01%00.00%00.00%40.98%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 58 Total User Agents
    #HitsUser Agent
    1176431.13%Googlebot/2.1
    2166829.44%MSIE 7.0
    359410.48%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    43626.39%Mozilla/5.0
    52845.01%MSIE 6.0
    61873.30%Yahoo! Slurp
    71172.06%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    8540.95%Morfeus Fucking Scanner
    9460.81%Yahoo! Slurp/3.0
    10450.79%libwww-perl/5.805
    11390.69%Apache/2.2.8 (Debian) PHP/5.2.5-3 with Suhosin-Patch (internal dummy connection)
    12380.67%MSIE 5.0
    13360.64%Apache/2.2.9 (Debian) PHP/5.2.6-1 with Suhosin-Patch (internal dummy connection)
    14320.56%libwww-perl/5.803
    15240.42%Konqueror/3.5
    +

    + +Usage by Location for June 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 45 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1388868.62%322471.72%2615263.07%00.00%00.00%United States
    259210.45%56612.59%416310.04%00.00%00.00%Belgium
    31442.54%982.18%13073.15%00.00%00.00%Great Britain (UK)
    41222.15%902.00%40529.77%00.00%00.00%Brazil
    51212.14%831.85%6291.52%00.00%00.00%France
    61142.01%370.82%7731.86%00.00%00.00%Russian Federation
    71091.92%871.94%9192.22%00.00%00.00%Germany
    81001.76%922.05%2250.54%00.00%00.00%Unresolved/Unknown
    9651.15%350.78%6821.65%00.00%00.00%Ukraine
    10520.92%380.85%3710.89%00.00%00.00%Denmark
    11480.85%250.56%5451.32%00.00%00.00%China
    12330.58%30.07%350.08%00.00%00.00%Hungary
    13320.56%150.33%2580.62%00.00%00.00%Netherlands
    14310.55%140.31%2020.49%00.00%00.00%Poland
    15230.41%70.16%1400.34%00.00%00.00%Canada
    16180.32%10.02%370.09%00.00%00.00%Viet Nam
    17160.28%90.20%2240.54%00.00%00.00%Korea (South)
    18160.28%80.18%1470.35%00.00%00.00%Latvia
    19150.26%120.27%370.09%00.00%00.00%Ireland
    20140.25%70.16%430.10%00.00%00.00%Spain
    21130.23%50.11%470.11%00.00%00.00%Sweden
    2290.16%00.00%110.03%00.00%00.00%Colombia
    2390.16%40.09%1310.32%00.00%00.00%Lithuania
    2480.14%20.04%480.12%00.00%00.00%Bulgaria
    2570.12%60.13%280.07%00.00%00.00%Argentina
    2670.12%20.04%410.10%00.00%00.00%Czech Republic
    2760.11%30.07%240.06%00.00%00.00%Hong Kong
    2860.11%30.07%140.03%00.00%00.00%Italy
    2960.11%40.09%170.04%00.00%00.00%Japan
    3060.11%10.02%240.06%00.00%00.00%Romania
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200807.html b/webalizer/usage_200807.html new file mode 100644 index 0000000..2648d32 --- /dev/null +++ b/webalizer/usage_200807.html @@ -0,0 +1,3122 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - July 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: July 2008
    +Generated 01-Aug-2008 06:27 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for July 2008
    Total Hits10192
    Total Files7119
    Total Pages2118
    Total Visits1180
    Total kB Files82234
    Total kB In0
    Total kB Out0
    Total Unique Sites963
    Total Unique URLs1178
    Total Unique Referrers145
    Total Unique Usernames1
    Total Unique User Agents69
    .Avg Max
    Hits per Hour13693
    Hits per Day3281439
    Files per Day2291196
    Pages per Day68261
    Visits per Day38135
    kB Files per Day265311830
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK7119
    Code 206 - Partial Content1
    Code 302 - Found1503
    Code 304 - Not Modified175
    Code 400 - Bad Request10
    Code 401 - Unauthorized35
    Code 403 - Forbidden4
    Code 404 - Not Found1345
    +

    + +Daily usage for July 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for July 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11841.81%1482.08%160.76%161.36%404.15%22342.72%00.00%00.00%
    22372.33%1902.67%241.13%161.36%424.36%12511.52%00.00%00.00%
    32062.02%1502.11%341.61%151.27%434.47%9551.16%00.00%00.00%
    41381.35%700.98%140.66%141.19%303.12%6730.82%00.00%00.00%
    51101.08%690.97%221.04%191.61%293.01%5500.67%00.00%00.00%
    61911.87%1341.88%391.84%292.46%515.30%8821.07%00.00%00.00%
    71281.26%871.22%200.94%181.53%363.74%5890.72%00.00%00.00%
    83393.33%2813.95%673.16%161.36%343.53%26763.25%00.00%00.00%
    91321.30%941.32%231.09%121.02%333.43%32063.90%00.00%00.00%
    105815.70%1211.70%281.32%151.27%363.74%13921.69%00.00%00.00%
    111371.34%861.21%150.71%141.19%586.02%8811.07%00.00%00.00%
    121411.38%961.35%291.37%231.95%363.74%10051.22%00.00%00.00%
    131331.30%931.31%542.55%322.71%515.30%6090.74%00.00%00.00%
    141571.54%1141.60%572.69%242.03%353.63%9511.16%00.00%00.00%
    152462.41%2112.96%462.17%201.69%363.74%16572.02%00.00%00.00%
    16117311.51%113715.97%442.08%131.10%242.49%1012712.31%00.00%00.00%
    171461.43%911.28%381.79%252.12%424.36%9381.14%00.00%00.00%
    183343.28%2643.71%452.12%262.20%474.88%44875.46%00.00%00.00%
    191281.26%781.10%371.75%211.78%383.95%6960.85%00.00%00.00%
    201591.56%1221.71%502.36%272.29%373.84%11361.38%00.00%00.00%
    211431.40%881.24%482.27%322.71%394.05%9301.13%00.00%00.00%
    221211.19%660.93%210.99%161.36%282.91%5440.66%00.00%00.00%
    231561.53%1041.46%271.27%201.69%404.15%5530.67%00.00%00.00%
    242252.21%1411.98%281.32%221.86%565.82%14261.73%00.00%00.00%
    253073.01%2012.82%713.35%413.47%9910.28%57777.03%00.00%00.00%
    266516.39%5327.47%984.63%534.49%676.96%54856.67%00.00%00.00%
    27143914.12%119616.80%26112.32%13211.19%11411.84%1183014.39%00.00%00.00%
    285505.40%3144.41%22310.53%12610.68%11712.15%56666.89%00.00%00.00%
    295975.86%3244.55%25311.95%13511.44%11612.05%52526.39%00.00%00.00%
    304914.82%2653.72%2099.87%1159.75%10110.49%44425.40%00.00%00.00%
    315125.02%2523.54%1778.36%937.88%868.93%34334.17%00.00%00.00%
    +

    + +Hourly usage for July 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for July 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0226846.71%51552.18%3944.44%7422812.77%000.00%000.00%
    182742.69%51762.47%2683.21%5316371.99%000.00%000.00%
    282512.46%51722.42%2673.16%9128173.43%000.00%000.00%
    382622.57%51632.29%2703.31%5818002.19%000.00%000.00%
    4134314.23%82653.72%31185.57%12939894.85%000.00%000.00%
    592922.86%51812.54%2854.01%7322562.74%000.00%000.00%
    682572.52%51792.51%2884.15%5115671.91%000.00%000.00%
    7103353.29%61932.71%3934.39%7121942.67%000.00%000.00%
    836112010.99%3198413.82%31085.10%290897810.92%000.00%000.00%
    9278598.43%2373510.32%31044.91%267826610.05%000.00%000.00%
    10247497.35%185657.94%41245.85%11335174.28%000.00%000.00%
    11134244.16%103334.68%2653.07%8325723.13%000.00%000.00%
    12123753.68%82593.64%31175.52%19359897.28%000.00%000.00%
    13134224.14%103294.62%2663.12%9629643.60%000.00%000.00%
    14216816.68%196088.54%1612.88%25679239.63%000.00%000.00%
    1582672.62%51592.23%3984.63%6319402.36%000.00%000.00%
    1693052.99%72313.24%2703.31%7723972.91%000.00%000.00%
    17123833.76%82633.69%3964.53%15949316.00%000.00%000.00%
    1872382.34%51552.18%2703.31%4614301.74%000.00%000.00%
    19113513.44%72283.20%31195.62%9429083.54%000.00%000.00%
    2082582.53%51792.51%2833.92%6820992.55%000.00%000.00%
    2182772.72%51722.42%2843.97%5216011.95%000.00%000.00%
    22134053.97%82553.58%3944.44%8827223.31%000.00%000.00%
    2392922.86%51802.53%2763.59%11134554.20%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 1178 Total URLs
    #HitskB FkB InkB OutURL
    1208020.41%2150826.15%00.00%00.00%/phpBB2/viewtopic.php
    2106310.43%2119825.78%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    32912.86%49275.99%00.00%00.00%/phpBB2/
    42472.42%2920.35%00.00%00.00%/styles/header.css
    52462.41%310.04%00.00%00.00%/styles/main.css
    62272.23%4160.51%00.00%00.00%/
    71391.36%480.06%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    81081.06%00.00%00.00%00.00%*
    91071.05%1510.18%00.00%00.00%/News/permalink.php
    101061.04%8160.99%00.00%00.00%/Pics/logo-100.png
    11860.84%8461.03%00.00%00.00%/phpBB2/search.php
    12800.78%2310.28%00.00%00.00%/News/
    13650.64%10681.30%00.00%00.00%/phpBB2/memberlist.php
    14560.55%2180.26%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    15490.48%520.06%00.00%00.00%/About/
    16490.48%610.07%00.00%00.00%/Pictures/
    17480.47%4840.59%00.00%00.00%/phpBB2/profile.php
    18460.45%1250.15%00.00%00.00%/Linux/
    19450.44%590.07%00.00%00.00%/favicon.ico
    20430.42%19112.32%00.00%00.00%/phpBB2/viewforum.php
    21360.35%630.08%00.00%00.00%/Surfing/
    22320.31%4220.51%00.00%00.00%/phpBB2//login.php
    23280.27%2700.33%00.00%00.00%/phpBB2/groupcp.php
    24270.26%740.09%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    25250.25%2690.33%00.00%00.00%/phpBB2/login.php
    26250.25%3120.38%00.00%00.00%/phpBB2/viewonline.php
    27210.21%6540.80%00.00%00.00%/phpBB2/faq.php
    28160.16%410.05%00.00%00.00%/mrtg/images/frederik.gotdns.org.eth1-day.png
    29150.15%270.03%00.00%00.00%/mrtg/frederik.gotdns.org.eth1.html
    30140.14%190.02%00.00%00.00%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 1178 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1208020.41%2150826.15%00.00%00.00%/phpBB2/viewtopic.php
    2106310.43%2119825.78%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    350.05%52606.40%00.00%00.00%/Pictures/20060429_chello_extreme.png
    42912.86%49275.99%00.00%00.00%/phpBB2/
    540.04%41685.07%00.00%00.00%/Pictures/shot_09-03-03_224036.png
    6430.42%19112.32%00.00%00.00%/phpBB2/viewforum.php
    7650.64%10681.30%00.00%00.00%/phpBB2/memberlist.php
    8860.84%8461.03%00.00%00.00%/phpBB2/search.php
    91061.04%8160.99%00.00%00.00%/Pics/logo-100.png
    10210.21%6540.80%00.00%00.00%/phpBB2/faq.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 18 Total Entry Pages
    #HitsVisitsURL
    1106310.43%57349.70%http://frederik.gotdns.org:1976/phpBB2/
    22912.86%22419.43%/phpBB2/
    32272.23%17315.00%/
    4800.78%514.42%/News/
    5490.48%211.82%/About/
    61081.06%181.56%*
    7460.45%181.56%/Linux/
    8490.48%181.56%/Pictures/
    9360.35%171.47%/Surfing/
    10110.11%121.04%/secured/Pictures/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 13 Total Exit Pages
    #HitsVisitsURL
    1106310.43%18566.07%http://frederik.gotdns.org:1976/phpBB2/
    22272.23%227.86%/
    32912.86%227.86%/phpBB2/
    4800.78%113.93%/News/
    5490.48%72.50%/About/
    6490.48%72.50%/Pictures/
    7360.35%72.50%/Surfing/
    8460.45%62.14%/Linux/
    91081.06%41.43%*
    10110.11%41.43%/secured/Pictures/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 963 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1109210.71%107515.10%979211.91%00.00%00.00%40.34%193.191.8.85
    24244.16%00.00%4440.54%00.00%00.00%00.00%74.93.118.195
    32482.43%2413.39%15171.84%00.00%00.00%30.25%66.249.71.35
    42462.41%2303.23%14111.72%00.00%00.00%40.34%66.249.71.33
    52432.38%2333.27%14751.79%00.00%00.00%40.34%66.249.71.34
    62302.26%2223.12%14021.71%00.00%00.00%20.17%66.249.71.208
    72222.18%2143.01%13471.64%00.00%00.00%30.25%66.249.71.209
    82132.09%1091.53%2920.36%00.00%00.00%151.27%83.101.44.34
    92122.08%2002.81%12791.56%00.00%00.00%50.42%66.249.71.210
    102082.04%1712.40%10091.23%00.00%00.00%70.59%66.249.70.201
    111771.74%1552.18%36524.44%00.00%00.00%40.34%209.167.50.27
    121271.25%891.25%2180.27%00.00%00.00%10.08%196.205.164.88
    131181.16%1061.49%8831.07%00.00%00.00%10.08%217.110.99.238
    141010.99%1011.42%00.00%00.00%00.00%110.93%192.168.1.2
    151010.99%500.70%3390.41%00.00%00.00%00.00%65.55.105.112
    16940.92%660.93%20202.46%00.00%00.00%191.61%65.55.213.78
    17840.82%560.79%3520.43%00.00%00.00%30.25%66.249.72.97
    18830.81%590.83%1240.15%00.00%00.00%292.46%67.195.37.170
    19700.69%370.52%2410.29%00.00%00.00%10.08%65.55.105.113
    20660.65%340.48%2330.28%00.00%00.00%20.17%65.55.105.115
    21650.64%300.42%1870.23%00.00%00.00%10.08%65.55.105.114
    22630.62%630.88%1150.14%00.00%00.00%10.08%217.136.131.144
    23620.61%550.77%13791.68%00.00%00.00%10.08%217.148.95.133
    24610.60%540.76%13801.68%00.00%00.00%10.08%213.193.229.34
    25560.55%370.52%810.10%00.00%00.00%262.20%74.6.22.179
    26500.49%230.32%1450.18%00.00%00.00%10.08%65.55.105.116
    27480.47%40.06%1820.22%00.00%00.00%00.00%78.157.143.140
    28400.39%320.45%1000.12%00.00%00.00%80.68%65.214.44.28
    29400.39%200.28%3990.49%00.00%00.00%100.85%68.41.98.230
    30390.38%390.55%6700.81%00.00%00.00%100.85%64.27.13.128
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 963 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1109210.71%107515.10%979211.91%00.00%00.00%40.34%193.191.8.85
    21771.74%1552.18%36524.44%00.00%00.00%40.34%209.167.50.27
    320.02%20.03%23632.87%00.00%00.00%00.00%91.64.3.27
    460.06%60.08%23312.84%00.00%00.00%00.00%72.14.164.149
    5940.92%660.93%20202.46%00.00%00.00%191.61%65.55.213.78
    6380.37%290.41%16231.97%00.00%00.00%10.08%85.119.240.210
    72482.43%2413.39%15171.84%00.00%00.00%30.25%66.249.71.35
    8230.23%230.32%15091.84%00.00%00.00%10.08%64.62.142.170
    92432.38%2333.27%14751.79%00.00%00.00%40.34%66.249.71.34
    102462.41%2303.23%14111.72%00.00%00.00%40.34%66.249.71.33
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 145 Total Referrers
    #HitsReferrer
    15335.23%vanrenterghem.biz/phpBB2/profile.php
    25145.04%kauai.vanrenterghem.biz/phpBB2/profile.php
    33593.52%vanrenterghem.biz/phpBB2/viewtopic.php
    42792.74%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    52292.25%vanrenterghem.biz/viewforum.php
    61911.87%www.vanrenterghem.biz/secured/Pictures/200507_Surfvakantie_Hossegor/index.shtml
    71741.71%www.vanrenterghem.biz/secured/Pictures/200407_St_Girons/index.shtml
    81311.29%search.live.com/results.aspx
    91241.22%www.vanrenterghem.biz/secured/Pictures/200304_Marbella/index.shtml
    101061.04%vanrenterghem.biz/phpBB2/index.php
    11960.94%vanrenterghem.biz/mrtg/frederik.gotdns.org.eth1.html
    12940.92%www.vanrenterghem.biz/secured/Pictures/20040918-20040925_Hossegor/index.shtml
    13920.90%vanrenterghem.biz/profile.php
    14880.86%www.vanrenterghem.biz/secured/Pictures/20070217_Parijs/index.shtml
    15740.73%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    16710.70%www.vanrenterghem.biz/secured/Pictures/200507_Surfvakantie_Hossegor_deel2/index.shtml
    17660.65%kauai.vanrenterghem.biz/phpBB2/viewforum.php
    18650.64%vanrenterghem.biz/
    19630.62%kauai.vanrenterghem.biz/phpBB2/index.php
    20600.59%www.vanrenterghem.biz/secured/Pictures/200410_Shooters/index.shtml
    21580.57%vanrenterghem.biz/posting.php
    22570.56%www.vanrenterghem.biz/
    23560.55%vanrenterghem.biz/phpBB2/
    24560.55%www.vanrenterghem.biz/secured/Pictures/20070211_Shooters/index.shtml
    25550.54%www.vanrenterghem.biz/secured/Pictures/20040304_Shooters/index.shtml
    26480.47%kauai.vanrenterghem.biz/viewforum.php
    27470.46%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    28430.42%vanrenterghem.biz/styles/header.css
    29410.40%www.vanrenterghem.biz/secured/Pictures/20051231_Oudejaarsavond/index.shtml
    30380.37%vanrenterghem.biz/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Search Strings
    #HitsSearch String
    1266.67%van renterghem
    2133.33%chateau belair
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    1127412.50%119116.73%1069213.00%00.00%00.00%90.76%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 69 Total User Agents
    #HitsUser Agent
    1204720.08%MSIE 7.0
    2188518.49%Googlebot/2.1
    3102710.08%GoogleToolbar 2.0
    49068.89%MSIE 6.0
    58648.48%Mozilla/5.0
    65425.32%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    71981.94%Yahoo! Slurp
    81771.74%LinkWalker/2.0
    9940.92%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    10730.72%BPImageWalker/2.0 (www.bdbrandprotect.com)
    11690.68%Apache/2.2.9 (Debian) PHP/5.2.6-1 with Suhosin-Patch (internal dummy connection)
    12680.67%MSIE 4.0
    13620.61%MSIE 5.5
    14400.39%libwww-perl/5.79
    15380.37%Yahoo! Slurp/3.0
    +

    + +Usage by Location for July 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 50 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1631861.99%411757.83%4586055.77%00.00%00.00%United States
    2164216.11%148120.80%1205014.65%00.00%00.00%Belgium
    32852.80%2603.65%80509.79%00.00%00.00%Canada
    42172.13%1822.56%37224.53%00.00%00.00%Netherlands
    52162.12%1552.18%15671.91%00.00%00.00%Great Britain (UK)
    62062.02%1472.06%5820.71%00.00%00.00%Unresolved/Unknown
    72001.96%600.84%14161.72%00.00%00.00%Latvia
    81581.55%861.21%13201.60%00.00%00.00%Russian Federation
    91501.47%1081.52%37214.52%00.00%00.00%Germany
    101271.25%891.25%2180.27%00.00%00.00%Egypt
    111161.14%771.08%6460.79%00.00%00.00%China
    12980.96%721.01%3650.44%00.00%00.00%France
    13520.51%190.27%4990.61%00.00%00.00%Ukraine
    14420.41%110.15%1280.16%00.00%00.00%Malaysia
    15400.39%400.56%1110.13%00.00%00.00%Denmark
    16360.35%310.44%1720.21%00.00%00.00%Poland
    17290.28%250.35%570.07%00.00%00.00%Norway
    18270.26%220.31%1710.21%00.00%00.00%Spain
    19250.25%200.28%620.08%00.00%00.00%Ireland
    20220.22%20.03%880.11%00.00%00.00%Lithuania
    21160.16%120.17%820.10%00.00%00.00%Romania
    22130.13%40.06%850.10%00.00%00.00%Korea (South)
    23120.12%120.17%1290.16%00.00%00.00%Taiwan
    24110.11%90.13%1520.19%00.00%00.00%Hong Kong
    2590.09%70.10%1280.16%00.00%00.00%Japan
    2690.09%50.07%1030.12%00.00%00.00%Moldova
    2790.09%80.11%310.04%00.00%00.00%Turkey
    2880.08%30.04%620.08%00.00%00.00%Finland
    2980.08%20.03%290.04%00.00%00.00%Slovenia
    3070.07%30.04%1220.15%00.00%00.00%Brazil
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200808.html b/webalizer/usage_200808.html new file mode 100644 index 0000000..2319dae --- /dev/null +++ b/webalizer/usage_200808.html @@ -0,0 +1,3122 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - August 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: August 2008
    +Generated 01-Sep-2008 06:27 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for August 2008
    Total Hits5350
    Total Files3418
    Total Pages1652
    Total Visits883
    Total kB Files48662
    Total kB In0
    Total kB Out0
    Total Unique Sites718
    Total Unique URLs98
    Total Unique Referrers159
    Total Unique Usernames1
    Total Unique User Agents70
    .Avg Max
    Hits per Hour787
    Hits per Day172347
    Files per Day110217
    Pages per Day53148
    Visits per Day2874
    kB Files per Day15708220
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK3418
    Code 206 - Partial Content5
    Code 302 - Found955
    Code 304 - Not Modified59
    Code 400 - Bad Request3
    Code 401 - Unauthorized16
    Code 404 - Not Found893
    Code 406 - Not Acceptable1
    +

    + +Daily usage for August 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for August 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11262.36%782.28%342.06%222.49%365.01%7581.56%00.00%00.00%
    2811.51%511.49%191.15%161.81%294.04%4780.98%00.00%00.00%
    31332.49%1022.98%442.66%192.15%365.01%7421.52%00.00%00.00%
    4911.70%661.93%281.69%182.04%334.60%6721.38%00.00%00.00%
    5881.64%661.93%221.33%141.59%202.79%3520.72%00.00%00.00%
    62785.20%2176.35%895.39%192.15%294.04%822016.89%00.00%00.00%
    71663.10%1303.80%482.91%242.72%395.43%14102.90%00.00%00.00%
    82725.08%2025.91%674.06%171.93%435.99%16653.42%00.00%00.00%
    91252.34%962.81%372.24%202.27%263.62%8221.69%00.00%00.00%
    101112.07%852.49%422.54%222.49%344.74%5421.11%00.00%00.00%
    112174.06%1223.57%362.18%222.49%466.41%12202.51%00.00%00.00%
    122103.93%1103.22%311.88%192.15%344.74%7191.48%00.00%00.00%
    13791.48%491.43%231.39%131.47%192.65%3800.78%00.00%00.00%
    142725.08%1394.07%352.12%161.81%283.90%10622.18%00.00%00.00%
    151001.87%792.31%231.39%131.47%202.79%11962.46%00.00%00.00%
    16961.79%661.93%271.63%151.70%212.92%31046.38%00.00%00.00%
    171142.13%732.14%422.54%192.15%283.90%4360.90%00.00%00.00%
    182214.13%1945.68%804.84%323.62%273.76%37317.67%00.00%00.00%
    19881.64%481.40%321.94%222.49%223.06%4690.96%00.00%00.00%
    201282.39%752.19%372.24%293.28%304.18%31296.43%00.00%00.00%
    211302.43%631.84%352.12%293.28%385.29%12952.66%00.00%00.00%
    22731.36%551.61%251.51%151.70%212.92%3880.80%00.00%00.00%
    231653.08%1193.48%432.60%222.49%273.76%7311.50%00.00%00.00%
    243476.49%1965.73%1488.96%748.38%7610.58%28185.79%00.00%00.00%
    251392.60%732.14%332.00%273.06%365.01%8861.82%00.00%00.00%
    262224.15%1243.63%674.06%444.98%598.22%14122.90%00.00%00.00%
    272715.07%1504.39%804.84%525.89%709.75%21894.50%00.00%00.00%
    283276.11%2136.23%1398.41%637.13%608.36%23084.74%00.00%00.00%
    291723.21%1012.95%643.87%374.19%486.69%14222.92%00.00%00.00%
    302674.99%1363.98%915.51%566.34%628.64%19223.95%00.00%00.00%
    312414.50%1404.10%1317.93%738.27%628.64%21844.49%00.00%00.00%
    +

    + +Hourly usage for August 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for August 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    092935.48%61865.44%3995.99%8426115.37%000.00%000.00%
    161963.66%41283.74%2734.42%12137517.71%000.00%000.00%
    251572.93%31183.45%1492.97%4112702.61%000.00%000.00%
    372314.32%31223.57%2905.45%5416783.45%000.00%000.00%
    42911.70%1521.52%1332.00%216451.32%000.00%000.00%
    551683.14%2862.52%1492.97%3510992.26%000.00%000.00%
    672334.36%51684.92%41418.54%4714472.97%000.00%000.00%
    741292.41%2782.28%1442.66%3310122.08%000.00%000.00%
    872284.26%3962.81%1573.45%4112722.61%000.00%000.00%
    982654.95%41424.15%2835.02%6018553.81%000.00%000.00%
    1093015.63%62056.00%3965.81%4814943.07%000.00%000.00%
    1162133.98%41273.72%2694.18%4213102.69%000.00%000.00%
    1241402.62%2782.28%1462.78%319742.00%000.00%000.00%
    13123827.14%72186.38%31036.23%15347409.74%000.00%000.00%
    1472444.56%61935.65%1573.45%170528410.86%000.00%000.00%
    1562023.78%41464.27%1573.45%4012302.53%000.00%000.00%
    1661983.70%41454.24%1472.85%5817933.69%000.00%000.00%
    1782715.07%51755.12%2885.33%5517013.49%000.00%000.00%
    1862093.91%41424.15%2764.60%5316393.37%000.00%000.00%
    1972234.17%51674.89%1553.33%3711382.34%000.00%000.00%
    2041442.69%2872.55%1382.30%247411.52%000.00%000.00%
    2162133.98%41384.04%1523.15%4413782.83%000.00%000.00%
    22123937.35%72386.96%2835.02%8024755.09%000.00%000.00%
    2372264.22%51835.35%2674.06%198612612.59%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 98 Total URLs
    #HitskB FkB InkB OutURL
    155310.34%708714.56%00.00%00.00%/phpBB2/viewtopic.php
    254010.09%1066021.91%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    34378.17%781016.05%00.00%00.00%/phpBB2/
    41943.63%3880.80%00.00%00.00%/
    51823.40%2230.46%00.00%00.00%/styles/header.css
    61813.38%240.05%00.00%00.00%/styles/main.css
    7981.83%00.00%00.00%00.00%*
    8871.63%7271.49%00.00%00.00%/Pics/logo-100.png
    9861.61%300.06%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    10691.29%1720.35%00.00%00.00%/Linux/
    11601.12%1940.40%00.00%00.00%/News/
    12571.07%700.14%00.00%00.00%/Pictures/
    13561.05%2330.48%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    14480.90%650.13%00.00%00.00%/favicon.ico
    15430.80%730.15%00.00%00.00%/Surfing/
    16410.77%450.09%00.00%00.00%/About/
    17360.67%1040.21%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    18340.64%650.13%00.00%00.00%/News/permalink.php
    19320.60%3940.81%00.00%00.00%/phpBB2/login.php
    20300.56%4830.99%00.00%00.00%/phpBB2/memberlist.php
    21280.52%4820.99%00.00%00.00%/phpbb2/viewtopic.php
    22260.49%4150.85%00.00%00.00%/phpBB2/search.php
    23200.37%8361.72%00.00%00.00%/phpBB2/faq.php
    24190.36%2650.54%00.00%00.00%/phpBB2/viewonline.php
    25170.32%1830.38%00.00%00.00%/phpBB2/groupcp.php
    26170.32%2040.42%00.00%00.00%/phpBB2/profile.php
    27160.30%2780.57%00.00%00.00%/phpbb2/
    28160.30%2100.43%00.00%00.00%/phpbb2/profile.php
    29150.28%2240.46%00.00%00.00%/phpbb2/search.php
    30140.26%230.05%00.00%00.00%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 98 Total URLs By kB F
    #HitskB FkB InkB OutURL
    154010.09%1066021.91%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    250.09%1042121.41%00.00%00.00%/Pictures/shot_09-03-03_224036.png
    34378.17%781016.05%00.00%00.00%/phpBB2/
    455310.34%708714.56%00.00%00.00%/phpBB2/viewtopic.php
    510.02%13152.70%00.00%00.00%/Pictures/20060429_chello_extreme.png
    6200.37%8361.72%00.00%00.00%/phpBB2/faq.php
    7871.63%7271.49%00.00%00.00%/Pics/logo-100.png
    8300.56%4830.99%00.00%00.00%/phpBB2/memberlist.php
    9280.52%4820.99%00.00%00.00%/phpbb2/viewtopic.php
    1080.15%4580.94%00.00%00.00%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 16 Total Entry Pages
    #HitsVisitsURL
    154010.09%29033.22%http://frederik.gotdns.org:1976/phpBB2/
    24378.17%27431.39%/phpBB2/
    31943.63%16018.33%/
    4691.29%303.44%/Linux/
    5601.12%262.98%/News/
    6571.07%222.52%/Pictures/
    7981.83%161.83%*
    8430.80%131.49%/Surfing/
    9410.77%121.37%/About/
    10140.26%60.69%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 10 Total Exit Pages
    #HitsVisitsURL
    154010.09%6640.99%http://frederik.gotdns.org:1976/phpBB2/
    24378.17%4729.19%/phpBB2/
    3691.29%127.45%/Linux/
    41943.63%95.59%/
    5410.77%84.97%/About/
    6601.12%74.35%/News/
    7430.80%74.35%/Surfing/
    8981.83%21.24%*
    9571.07%21.24%/Pictures/
    1060.11%10.62%/phpBB2//
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 718 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    11602.99%1033.01%6381.31%00.00%00.00%50.57%66.249.67.71
    21442.69%00.00%1510.31%00.00%00.00%00.00%80.33.0.117
    31021.91%60.18%2410.50%00.00%00.00%60.68%84.19.180.179
    4921.72%922.69%00.00%00.00%00.00%101.13%192.168.1.2
    5891.66%892.60%6921.42%00.00%00.00%151.70%213.224.83.33
    6781.46%692.02%30376.24%00.00%00.00%10.11%210.166.216.200
    7771.44%340.99%2410.50%00.00%00.00%30.34%65.55.105.109
    8711.33%361.05%2130.44%00.00%00.00%20.23%65.55.105.108
    9621.16%621.81%1380.28%00.00%00.00%10.11%81.240.164.244
    10571.07%290.85%1920.39%00.00%00.00%50.57%65.55.105.110
    11571.07%401.17%870.18%00.00%00.00%151.70%67.195.37.170
    12541.01%461.35%17623.62%00.00%00.00%10.11%78.46.44.108
    13530.99%330.97%470.10%00.00%00.00%00.00%78.22.240.136
    14520.97%431.26%1210.25%00.00%00.00%20.23%208.99.195.54
    15520.97%351.02%850.17%00.00%00.00%222.49%74.6.18.228
    16470.88%361.05%25545.25%00.00%00.00%10.11%83.169.76.231
    17460.86%461.35%8801.81%00.00%00.00%151.70%92.48.107.33
    18450.84%451.32%8461.74%00.00%00.00%121.36%92.48.107.120
    19400.75%200.59%3990.82%00.00%00.00%101.13%193.46.236.234
    20400.75%180.53%1180.24%00.00%00.00%10.11%65.55.105.106
    21400.75%330.97%2360.48%00.00%00.00%00.00%66.249.71.34
    22400.75%361.05%8221.69%00.00%00.00%10.11%69.84.207.147
    23380.71%310.91%3840.79%00.00%00.00%10.11%211.110.18.54
    24380.71%170.50%1040.21%00.00%00.00%10.11%65.55.105.107
    25380.71%260.76%2460.50%00.00%00.00%10.11%72.232.25.10
    26370.69%260.76%2160.44%00.00%00.00%10.11%88.191.48.74
    27360.67%300.88%2540.52%00.00%00.00%10.11%38.100.41.107
    28350.65%351.02%970.20%00.00%00.00%00.00%80.251.195.2
    29350.65%300.88%530.11%00.00%00.00%20.23%81.165.194.209
    30340.64%280.82%3750.77%00.00%00.00%20.23%195.225.178.39
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 718 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1781.46%692.02%30376.24%00.00%00.00%10.11%210.166.216.200
    2210.39%170.50%26395.42%00.00%00.00%30.34%65.55.213.78
    3470.88%361.05%25545.25%00.00%00.00%10.11%83.169.76.231
    4310.58%310.91%24935.12%00.00%00.00%10.11%90.201.69.23
    580.15%80.23%23784.89%00.00%00.00%10.11%82.230.56.154
    6541.01%461.35%17623.62%00.00%00.00%10.11%78.46.44.108
    7460.86%461.35%8801.81%00.00%00.00%151.70%92.48.107.33
    8450.84%451.32%8461.74%00.00%00.00%121.36%92.48.107.120
    9400.75%361.05%8221.69%00.00%00.00%10.11%69.84.207.147
    10891.66%892.60%6921.42%00.00%00.00%151.70%213.224.83.33
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 159 Total Referrers
    #HitsReferrer
    12624.90%vanrenterghem.biz/phpBB2/profile.php
    22534.73%kauai.vanrenterghem.biz/phpBB2/profile.php
    32394.47%vanrenterghem.biz/phpBB2/viewtopic.php
    41913.57%vanrenterghem.biz/viewforum.php
    51412.64%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    61112.07%vanrenterghem.biz/phpBB2/index.php
    7791.48%search.live.com/results.aspx
    8781.46%vanrenterghem.biz/profile.php
    9731.36%vanrenterghem.biz/phpBB2/
    10691.29%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    11601.12%www.vanrenterghem.biz/
    12591.10%kauai.vanrenterghem.biz/viewforum.php
    13571.07%www.vanrenterghem.biz/phpBB2/index.php
    14561.05%vanrenterghem.biz/
    15541.01%kauai.vanrenterghem.biz/phpBB2/index.php
    16490.92%vanrenterghem.biz/styles/header.css
    17420.79%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    18240.45%kauai.vanrenterghem.biz/News/index.php
    19230.43%vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    20220.41%vanrenterghem.biz/posting.php
    21190.36%vanrenterghem.biz/Pictures/index.shtml
    22190.36%www.vanrenterghem.biz/viewforum.php
    23170.32%vanrenterghem.biz/Linux/index.shtml
    24160.30%vanrenterghem.biz//vanrenterghem.biz/profile.php
    25150.28%www.keywordspy.com/keyword-research/vanrenterghem.biz
    26140.26%kauai.vanrenterghem.biz/posting.php
    27140.26%vanrenterghem.biz//vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    28140.26%vanrenterghem.biz/phpBB2/memberlist.php
    29130.24%kauai.vanrenterghem.biz/phpBB2/viewonline.php
    30130.24%kauai.vanrenterghem.biz/profile.php
    +

    + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Search Strings
    #HitsSearch String
    1150.00%pictures ao
    2150.00%vanrenterghem.biz
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    130.06%30.09%80.02%00.00%00.00%30.34%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 70 Total User Agents
    #HitsUser Agent
    194717.70%Mozilla/5.0
    282115.35%MSIE 7.0
    374013.83%MSIE 6.0
    45189.68%GoogleToolbar 2.0
    54147.74%Googlebot/2.1
    63887.25%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    71843.44%Yahoo! Slurp
    8921.72%Apache/2.2.9 (Debian) PHP/5.2.6-2 with Suhosin-Patch (internal dummy connection)
    9551.03%MSIE 5.5
    10450.84%MSIE 5.0
    11450.84%Mozilla/4.0 (compatible;)
    12320.60%Opera 8.0
    13280.52%Googlebot-Image/1.0
    14210.39%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    15180.34%Opera 9.0
    +

    + +Usage by Location for August 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 52 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1300156.09%188755.21%2379148.89%00.00%00.00%United States
    23396.34%2988.72%11982.46%00.00%00.00%Belgium
    32604.86%932.72%27145.58%00.00%00.00%Germany
    42324.34%1644.80%8801.81%00.00%00.00%Unresolved/Unknown
    52023.78%1765.15%491610.10%00.00%00.00%Great Britain (UK)
    61923.59%852.49%14893.06%00.00%00.00%Russian Federation
    71663.10%160.47%3560.73%00.00%00.00%Spain
    81592.97%1163.39%532910.95%00.00%00.00%France
    9831.55%702.05%30616.29%00.00%00.00%Japan
    10641.20%270.79%6551.35%00.00%00.00%Latvia
    11571.07%561.64%1760.36%00.00%00.00%Denmark
    12541.01%411.20%3630.75%00.00%00.00%Poland
    13520.97%361.05%5121.05%00.00%00.00%Korea (South)
    14500.93%220.64%4190.86%00.00%00.00%Ukraine
    15460.86%290.85%4640.95%00.00%00.00%China
    16410.77%371.08%1780.37%00.00%00.00%Netherlands
    17340.64%280.82%3750.77%00.00%00.00%Panama
    18320.60%310.91%480.10%00.00%00.00%Estonia
    19270.50%240.70%1320.27%00.00%00.00%Taiwan
    20240.45%120.35%1540.32%00.00%00.00%Canada
    21240.45%200.59%630.13%00.00%00.00%Ireland
    22220.41%60.18%530.11%00.00%00.00%Thailand
    23180.34%90.26%1350.28%00.00%00.00%Bulgaria
    24180.34%90.26%1850.38%00.00%00.00%Moldova
    25160.30%150.44%540.11%00.00%00.00%Brazil
    26160.30%130.38%900.18%00.00%00.00%Israel
    27150.28%140.41%620.13%00.00%00.00%Romania
    28140.26%60.18%590.12%00.00%00.00%Sweden
    29120.22%120.35%970.20%00.00%00.00%Hong Kong
    3080.15%60.18%500.10%00.00%00.00%Turkey
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200809.html b/webalizer/usage_200809.html new file mode 100644 index 0000000..45dff91 --- /dev/null +++ b/webalizer/usage_200809.html @@ -0,0 +1,3108 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - September 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: September 2008
    +Generated 01-Oct-2008 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for September 2008
    Total Hits6924
    Total Files4749
    Total Pages1683
    Total Visits1029
    Total kB Files54339
    Total kB In0
    Total kB Out0
    Total Unique Sites866
    Total Unique URLs380
    Total Unique Referrers137
    Total Unique Usernames1
    Total Unique User Agents72
    .Avg Max
    Hits per Hour9357
    Hits per Day230732
    Files per Day158567
    Pages per Day56187
    Visits per Day34101
    kB Files per Day18116422
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK4749
    Code 302 - Found1038
    Code 304 - Not Modified140
    Code 400 - Bad Request3
    Code 401 - Unauthorized29
    Code 404 - Not Found963
    Code 406 - Not Acceptable2
    +

    + +Daily usage for September 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for September 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    13114.49%1853.90%1317.78%676.51%718.20%25044.61%00.00%00.00%
    273210.57%56711.94%18711.11%1019.82%9510.97%567010.43%00.00%00.00%
    31221.76%691.45%563.33%373.60%445.08%10992.02%00.00%00.00%
    41161.68%631.33%181.07%151.46%232.66%4890.90%00.00%00.00%
    51732.50%891.87%513.03%272.62%505.77%11142.05%00.00%00.00%
    61922.77%1252.63%704.16%383.69%495.66%15262.81%00.00%00.00%
    72814.06%1703.58%975.76%464.47%617.04%18573.42%00.00%00.00%
    83935.68%1984.17%1488.79%848.16%9811.32%35136.46%00.00%00.00%
    92563.70%1693.56%1056.24%535.15%657.51%25064.61%00.00%00.00%
    101632.35%1202.53%342.02%201.94%343.93%14162.61%00.00%00.00%
    113024.36%1914.02%362.14%292.82%778.89%18763.45%00.00%00.00%
    122123.06%1463.07%482.85%262.53%586.70%17553.23%00.00%00.00%
    132223.21%1112.34%442.61%292.82%465.31%15452.84%00.00%00.00%
    141942.80%1222.57%734.34%272.62%343.93%29255.38%00.00%00.00%
    155277.61%4429.31%513.03%272.62%8810.16%632311.64%00.00%00.00%
    163795.47%3296.93%311.84%272.62%778.89%642211.82%00.00%00.00%
    171412.04%1012.13%452.67%424.08%495.66%6691.23%00.00%00.00%
    182443.52%1633.43%633.74%393.79%485.54%15152.79%00.00%00.00%
    193184.59%2575.41%412.44%282.72%252.89%13592.50%00.00%00.00%
    202133.08%1883.96%432.55%363.50%273.12%10281.89%00.00%00.00%
    211361.96%871.83%472.79%333.21%465.31%7771.43%00.00%00.00%
    222623.78%1473.10%422.50%272.62%323.70%7521.38%00.00%00.00%
    231472.12%1092.30%211.25%201.94%313.58%8351.54%00.00%00.00%
    241181.70%821.73%281.66%242.33%323.70%5661.04%00.00%00.00%
    252012.90%1322.78%251.49%222.14%495.66%9721.79%00.00%00.00%
    261642.37%1262.65%342.02%242.33%414.73%10181.87%00.00%00.00%
    27911.31%521.09%201.19%191.85%293.35%4430.82%00.00%00.00%
    28981.42%761.60%513.03%242.33%354.04%4270.79%00.00%00.00%
    291181.70%651.37%241.43%222.14%374.27%8871.63%00.00%00.00%
    30981.42%681.43%191.13%181.75%293.35%5511.01%00.00%00.00%
    +

    + +Hourly usage for September 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for September 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0144386.33%113477.31%2704.16%227682012.55%000.00%000.00%
    182533.65%51793.77%2704.16%12537416.88%000.00%000.00%
    272353.39%51583.33%1502.97%4513502.49%000.00%000.00%
    372343.38%51523.20%2724.28%5215582.87%000.00%000.00%
    472263.26%51623.41%2603.57%6519533.59%000.00%000.00%
    5103174.58%72194.61%2875.17%7923834.39%000.00%000.00%
    6113404.91%72244.72%41468.67%6920573.79%000.00%000.00%
    782653.83%41483.12%1573.39%11133226.11%000.00%000.00%
    872383.44%41433.01%2663.92%5416343.01%000.00%000.00%
    951562.25%31112.34%1533.15%3911692.15%000.00%000.00%
    10134186.04%72385.01%2895.29%5616713.07%000.00%000.00%
    1172303.32%51613.39%1583.45%5115182.79%000.00%000.00%
    12226889.94%1959712.57%31046.18%16850309.26%000.00%000.00%
    13103044.39%72184.59%2653.86%7522614.16%000.00%000.00%
    1462072.99%41312.76%1502.97%3410241.88%000.00%000.00%
    1572303.32%41443.03%1502.97%4112432.29%000.00%000.00%
    1682523.64%61803.79%2673.98%4714222.62%000.00%000.00%
    1782533.65%51743.66%2663.92%7723184.27%000.00%000.00%
    1861852.67%41232.59%1452.67%4012052.22%000.00%000.00%
    1992894.17%62024.25%2774.58%6419173.53%000.00%000.00%
    2092874.15%62004.21%2623.68%5616893.11%000.00%000.00%
    2182533.65%41362.86%1502.97%5516363.01%000.00%000.00%
    2292723.93%51573.31%2855.05%5717003.13%000.00%000.00%
    23113545.11%82455.16%2844.99%12437206.85%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 380 Total URLs
    #HitskB FkB InkB OutURL
    1115116.62%1864934.32%00.00%00.00%/phpBB2/viewtopic.php
    25628.12%989618.21%00.00%00.00%/phpBB2/
    34596.63%901616.59%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    42723.93%3030.56%00.00%00.00%/News/permalink.php
    52213.19%280.05%00.00%00.00%/styles/main.css
    62203.18%2590.48%00.00%00.00%/styles/header.css
    71802.60%3730.69%00.00%00.00%/
    81432.07%480.09%00.00%00.00%/phpBB2/templates/subSilver/formIE.css
    91051.52%2650.49%00.00%00.00%/News/
    101011.46%12122.23%00.00%00.00%/phpBB2/search.php
    11811.17%6011.11%00.00%00.00%/Pics/logo-100.png
    12761.10%9081.67%00.00%00.00%/phpBB2/login.php
    13761.10%32155.92%00.00%00.00%/phpBB2/viewforum.php
    14691.00%7241.33%00.00%00.00%/phpBB2/profile.php
    15670.97%00.00%00.00%00.00%*
    16500.72%620.11%00.00%00.00%/Pictures/
    17430.62%590.11%00.00%00.00%/favicon.ico
    18420.61%480.09%00.00%00.00%/About/
    19350.51%1030.19%00.00%00.00%/Linux/
    20340.49%1320.24%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    21290.42%2870.53%00.00%00.00%/phpBB2/groupcp.php
    22290.42%4660.86%00.00%00.00%/phpBB2/memberlist.php
    23280.40%520.10%00.00%00.00%/Surfing/
    24270.39%8791.62%00.00%00.00%/phpBB2/faq.php
    25260.38%650.12%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    26200.29%2390.44%00.00%00.00%/phpBB2/viewonline.php
    27160.23%560.10%00.00%00.00%/phppages/rss.php
    28120.17%360.07%00.00%00.00%/Linux/logitech.shtml
    29100.14%330.06%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    30100.14%140.03%00.00%00.00%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 380 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1115116.62%1864934.32%00.00%00.00%/phpBB2/viewtopic.php
    25628.12%989618.21%00.00%00.00%/phpBB2/
    34596.63%901616.59%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    4761.10%32155.92%00.00%00.00%/phpBB2/viewforum.php
    510.01%13152.42%00.00%00.00%/Pictures/20060429_chello_extreme.png
    61011.46%12122.23%00.00%00.00%/phpBB2/search.php
    7761.10%9081.67%00.00%00.00%/phpBB2/login.php
    8270.39%8791.62%00.00%00.00%/phpBB2/faq.php
    9691.00%7241.33%00.00%00.00%/phpBB2/profile.php
    10811.17%6011.11%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 23 Total Entry Pages
    #HitsVisitsURL
    15628.12%42842.59%/phpBB2/
    24596.63%23923.78%http://frederik.gotdns.org:1976/phpBB2/
    31802.60%14414.33%/
    41051.52%727.16%/News/
    5500.72%252.49%/Pictures/
    6350.51%181.79%/Linux/
    7420.61%161.59%/About/
    8280.40%131.29%/Surfing/
    9670.97%111.09%*
    1040.06%111.09%/secured/Pictures/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 16 Total Exit Pages
    #HitsVisitsURL
    15628.12%5935.33%/phpBB2/
    21051.52%3923.35%/News/
    34596.63%3319.76%http://frederik.gotdns.org:1976/phpBB2/
    41802.60%116.59%/
    5500.72%74.19%/Pictures/
    6350.51%42.40%/Linux/
    7420.61%31.80%/About/
    8100.14%21.20%/Pictures/20021229_Serial_Console/
    940.06%21.20%/secured/Pictures/
    10670.97%10.60%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 866 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    13324.79%3306.95%25074.61%00.00%00.00%30.29%194.7.173.59
    22994.32%2685.64%905316.66%00.00%00.00%121.17%65.55.213.78
    32673.86%2525.31%11652.14%00.00%00.00%252.43%66.249.71.201
    42553.68%2214.65%9931.83%00.00%00.00%242.33%66.249.71.199
    52533.65%2364.97%10531.94%00.00%00.00%191.85%66.249.71.200
    61361.96%661.39%1570.29%00.00%00.00%10.10%213.246.216.2
    71261.82%962.02%5310.98%00.00%00.00%50.49%66.249.71.107
    81181.70%891.87%4720.87%00.00%00.00%90.87%66.249.71.106
    91121.62%811.71%4750.87%00.00%00.00%30.29%66.249.71.108
    10761.10%521.09%14612.69%00.00%00.00%60.58%72.232.96.242
    11741.07%561.18%10982.02%00.00%00.00%373.60%89.161.239.192
    12721.04%561.18%8151.50%00.00%00.00%10.10%66.231.189.95
    13640.92%641.35%00.00%00.00%00.00%80.78%192.168.1.2
    14630.91%440.93%11892.19%00.00%00.00%60.58%72.232.96.42
    15610.88%260.55%4020.74%00.00%00.00%171.65%200.63.42.151
    16600.87%300.63%5991.10%00.00%00.00%302.92%200.63.42.147
    17590.85%290.61%1590.29%00.00%00.00%20.19%65.55.105.115
    18550.79%320.67%2000.37%00.00%00.00%00.00%65.55.105.114
    19540.78%240.51%450.08%00.00%00.00%00.00%217.110.99.238
    20530.77%400.84%4070.75%00.00%00.00%131.26%38.99.44.105
    21530.77%220.46%1470.27%00.00%00.00%80.78%65.55.105.112
    22520.75%250.53%1680.31%00.00%00.00%70.68%65.55.105.117
    23520.75%80.17%2230.41%00.00%00.00%40.39%78.157.143.205
    24460.66%360.76%450.08%00.00%00.00%70.68%38.99.44.104
    25450.65%450.95%6021.11%00.00%00.00%00.00%216.255.179.130
    26440.64%290.61%1860.34%00.00%00.00%20.19%65.55.105.106
    27440.64%290.61%1710.32%00.00%00.00%00.00%65.55.105.107
    28430.62%140.29%720.13%00.00%00.00%20.19%65.55.105.116
    29420.61%270.57%4710.87%00.00%00.00%20.19%78.157.143.233
    30400.58%390.82%1180.22%00.00%00.00%10.10%206.170.79.5
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 866 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    12994.32%2685.64%905316.66%00.00%00.00%121.17%65.55.213.78
    23324.79%3306.95%25074.61%00.00%00.00%30.29%194.7.173.59
    3150.22%140.29%14942.75%00.00%00.00%20.19%64.62.142.170
    4761.10%521.09%14612.69%00.00%00.00%60.58%72.232.96.242
    5630.91%440.93%11892.19%00.00%00.00%60.58%72.232.96.42
    62673.86%2525.31%11652.14%00.00%00.00%252.43%66.249.71.201
    7741.07%561.18%10982.02%00.00%00.00%373.60%89.161.239.192
    82533.65%2364.97%10531.94%00.00%00.00%191.85%66.249.71.200
    92553.68%2214.65%9931.83%00.00%00.00%242.33%66.249.71.199
    10721.04%561.18%8151.50%00.00%00.00%10.10%66.231.189.95
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 137 Total Referrers
    #HitsReferrer
    13655.27%vanrenterghem.biz/viewforum.php
    23645.26%vanrenterghem.biz/phpBB2/viewtopic.php
    32703.90%vanrenterghem.biz/phpBB2/profile.php
    42323.35%kauai.vanrenterghem.biz/phpBB2/profile.php
    51692.44%kauai.vanrenterghem.biz/phpBB2/index.php
    61612.33%vanrenterghem.biz/phpBB2/index.php
    71331.92%search.live.com/results.aspx
    81051.52%kauai.vanrenterghem.biz/viewforum.php
    9951.37%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    10911.31%vanrenterghem.biz/phpBB2/
    11881.27%vanrenterghem.biz/secured/Pictures/20070217_Parijs/index.shtml
    12741.07%vanrenterghem.biz/profile.php
    13670.97%vanrenterghem.biz/secured/Pictures/20021118_Memphis/index.shtml
    14620.90%vanrenterghem.biz/
    15520.75%vanrenterghem.biz/posting.php
    16400.58%www.vanrenterghem.biz/
    17350.51%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    18350.51%vanrenterghem.biz/phpBB2/search.php
    19350.51%vanrenterghem.biz/styles/header.css
    20330.48%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    21290.42%kauai.vanrenterghem.biz/posting.php
    22270.39%kauai.vanrenterghem.biz/News/index.php
    23230.33%kauai.vanrenterghem.biz/profile.php
    24220.32%vanrenterghem.biz/secured/Pictures/200612_Winterswell_Le_Rozel/index.shtml
    25200.29%vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    26200.29%vanrenterghem.biz/Pictures/index.shtml
    27200.29%vanrenterghem.biz/secured/Pictures/20060531_Surfing_Bredene/index.shtml
    28190.27%vanrenterghem.biz/About/index.shtml
    29190.27%www.vanrenterghem.biz/phpBB2/index.php/profile.php
    30180.26%vanrenterghem.biz/Pictures/20051112_COS_Garden_of_the_Gods/index.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Search Strings
    #HitsSearch String
    1360.00%vanrenterghem.biz
    2120.00%south-
    3120.00%vanrenterghem
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    12333.37%2334.91%20673.80%00.00%00.00%30.29%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 72 Total User Agents
    #HitsUser Agent
    1163823.66%MSIE 6.0
    2110515.96%Googlebot/2.1
    379311.45%Mozilla/5.0
    46138.85%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    54466.44%GoogleToolbar 2.0
    63344.82%MSIE 7.0
    72994.32%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    81061.53%msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)
    91001.44%MSIE 5.0
    10951.37%Yahoo! Slurp
    11911.31%MSIE 5.5
    12741.07%Gigabot/3.0 (http://www.gigablast.com/spider.html)
    13680.98%Opera 9.0
    14640.92%Apache/2.2.9 (Debian) PHP/5.2.6-2 with Suhosin-Patch (internal dummy connection)
    15480.69%Python-urllib/2.4
    +

    + +Usage by Location for September 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 48 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1455965.84%328369.13%3847070.80%00.00%00.00%United States
    25918.54%50410.61%29125.36%00.00%00.00%Belgium
    33324.79%2024.25%21563.97%00.00%00.00%Unresolved/Unknown
    41902.74%962.02%17853.28%00.00%00.00%Russian Federation
    51702.46%581.22%19473.58%00.00%00.00%China
    61562.25%711.50%14132.60%00.00%00.00%Latvia
    71051.52%721.52%12392.28%00.00%00.00%Poland
    81041.50%491.03%6041.11%00.00%00.00%Germany
    91021.47%571.20%3690.68%00.00%00.00%Great Britain (UK)
    10791.14%581.22%1810.33%00.00%00.00%France
    11791.14%370.78%6671.23%00.00%00.00%Ukraine
    12510.74%390.82%3420.63%00.00%00.00%Netherlands
    13440.64%40.08%1320.24%00.00%00.00%Saudi Arabia
    14330.48%330.69%1190.22%00.00%00.00%Denmark
    15320.46%70.15%1750.32%00.00%00.00%Moldova
    16260.38%10.02%550.10%00.00%00.00%Spain
    17250.36%50.11%2030.37%00.00%00.00%Estonia
    18210.30%170.36%1010.19%00.00%00.00%Romania
    19200.29%160.34%500.09%00.00%00.00%Ireland
    20180.26%100.21%310.06%00.00%00.00%Austria
    21170.25%60.13%520.09%00.00%00.00%India
    22160.23%130.27%470.09%00.00%00.00%Taiwan
    23150.22%100.21%2080.38%00.00%00.00%Canada
    24150.22%100.21%1150.21%00.00%00.00%Israel
    25140.20%130.27%660.12%00.00%00.00%Sweden
    26130.19%110.23%1650.30%00.00%00.00%Bulgaria
    27110.16%110.23%260.05%00.00%00.00%Italy
    28110.16%50.11%1170.22%00.00%00.00%Korea (South)
    29100.14%70.15%1410.26%00.00%00.00%Hong Kong
    30100.14%100.21%280.05%00.00%00.00%Slovenia
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200810.html b/webalizer/usage_200810.html new file mode 100644 index 0000000..b3fa913 --- /dev/null +++ b/webalizer/usage_200810.html @@ -0,0 +1,3102 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - October 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: October 2008
    +Generated 01-Nov-2008 06:30 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for October 2008
    Total Hits7167
    Total Files4416
    Total Pages1401
    Total Visits759
    Total kB Files42953
    Total kB In0
    Total kB Out0
    Total Unique Sites577
    Total Unique URLs163
    Total Unique Referrers97
    Total Unique Usernames1
    Total Unique User Agents71
    .Avg Max
    Hits per Hour91297
    Hits per Day2311441
    Files per Day1421009
    Pages per Day4587
    Visits per Day2445
    kB Files per Day13866574
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK4416
    Code 206 - Partial Content2
    Code 302 - Found522
    Code 304 - Not Modified59
    Code 400 - Bad Request8
    Code 401 - Unauthorized31
    Code 404 - Not Found2124
    Code 405 - Method Not Allowed2
    Code 501 - Not Implemented3
    +

    + +Daily usage for October 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for October 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11742.43%892.02%322.28%202.64%345.89%5841.36%00.00%00.00%
    21762.46%922.08%503.57%273.56%437.45%9852.29%00.00%00.00%
    31071.49%751.70%402.86%222.90%325.55%6851.59%00.00%00.00%
    44275.96%3517.95%584.14%182.37%233.99%31107.24%00.00%00.00%
    52263.15%1563.53%634.50%314.08%366.24%13313.10%00.00%00.00%
    61662.32%1112.51%523.71%303.95%366.24%9582.23%00.00%00.00%
    7731.02%430.97%221.57%192.50%254.33%4250.99%00.00%00.00%
    81091.52%631.43%423.00%162.11%274.68%4991.16%00.00%00.00%
    91251.74%751.70%342.43%263.43%345.89%31397.31%00.00%00.00%
    10761.06%541.22%292.07%222.90%233.99%41759.72%00.00%00.00%
    111502.09%1152.60%322.28%222.90%6310.92%11372.65%00.00%00.00%
    121421.98%952.15%503.57%233.03%376.41%9302.16%00.00%00.00%
    131391.94%1022.31%402.86%283.69%386.59%22385.21%00.00%00.00%
    142493.47%2194.96%574.07%374.87%386.59%10572.46%00.00%00.00%
    15144120.11%1172.65%372.64%263.43%274.68%19274.49%00.00%00.00%
    161792.50%982.22%594.21%314.08%386.59%14493.37%00.00%00.00%
    171882.62%1152.60%785.57%455.93%467.97%15943.71%00.00%00.00%
    181321.84%741.68%402.86%263.43%366.24%11002.56%00.00%00.00%
    191181.65%631.43%372.64%172.24%274.68%5281.23%00.00%00.00%
    201041.45%330.75%181.28%151.98%233.99%5241.22%00.00%00.00%
    21490.68%230.52%141.00%121.58%162.77%2540.59%00.00%00.00%
    22791.10%491.11%342.43%233.03%244.16%5121.19%00.00%00.00%
    235407.53%48510.98%644.57%253.29%305.20%27326.36%00.00%00.00%
    24105114.66%100922.85%846.00%273.56%233.99%657415.31%00.00%00.00%
    251452.02%932.11%332.36%243.16%213.64%4210.98%00.00%00.00%
    26801.12%531.20%322.28%233.03%213.64%2640.61%00.00%00.00%
    271011.41%761.72%503.57%222.90%203.47%6741.57%00.00%00.00%
    281852.58%1593.60%876.21%293.82%325.55%9872.30%00.00%00.00%
    291832.55%1513.42%765.42%354.61%274.68%10882.53%00.00%00.00%
    301522.12%1152.60%352.50%222.90%223.81%5651.31%00.00%00.00%
    311011.41%631.43%221.57%162.11%376.41%5081.18%00.00%00.00%
    +

    + +Hourly usage for October 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for October 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    072273.17%61874.23%1584.14%174539712.56%000.00%000.00%
    151772.47%41363.08%1483.43%3611182.60%000.00%000.00%
    251832.55%41423.22%1513.64%3811692.72%000.00%000.00%
    362022.82%41433.24%1402.86%329822.29%000.00%000.00%
    462092.92%51553.51%1443.14%4212883.00%000.00%000.00%
    562032.83%41523.44%1483.43%3912192.84%000.00%000.00%
    682593.61%72174.91%31087.71%4213153.06%000.00%000.00%
    762153.00%51733.92%1493.50%10131347.30%000.00%000.00%
    861952.72%41453.28%1402.86%3410682.49%000.00%000.00%
    972463.43%51753.96%1433.07%4714453.37%000.00%000.00%
    1051722.40%31182.67%1372.64%319482.21%000.00%000.00%
    1182493.47%51844.17%1594.21%4814733.43%000.00%000.00%
    1282683.74%62084.71%1423.00%4714653.41%000.00%000.00%
    1392994.17%72245.07%2876.21%13240919.52%000.00%000.00%
    1462002.79%31072.42%1473.35%3611262.62%000.00%000.00%
    1562042.85%51563.53%1412.93%237151.67%000.00%000.00%
    1692964.13%72335.28%2715.07%5216253.78%000.00%000.00%
    1782753.84%51643.71%2876.21%4112852.99%000.00%000.00%
    18185687.93%1548010.87%3936.64%13742609.92%000.00%000.00%
    1982563.57%51633.69%2805.71%3711532.68%000.00%000.00%
    2072253.14%51834.14%1443.14%3510822.52%000.00%000.00%
    2161962.73%41483.35%1513.64%3711342.64%000.00%000.00%
    2248151821.18%51804.08%1594.21%9228456.62%000.00%000.00%
    23103254.53%72435.50%2745.28%5216153.76%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 163 Total URLs
    #HitskB FkB InkB OutURL
    1159022.19%1299430.25%00.00%00.00%/phpBB2/viewtopic.php
    24556.35%817919.04%00.00%00.00%/phpBB2/
    33054.26%4080.95%00.00%00.00%/News/permalink.php
    42463.43%4581.07%00.00%00.00%/
    51452.02%4331.01%00.00%00.00%/News/
    61181.65%10892.53%00.00%00.00%/phpBB2/search.php
    7991.38%00.00%00.00%00.00%*
    8931.30%990.23%00.00%00.00%/styles/header.css
    9931.30%110.02%00.00%00.00%/styles/main.css
    10921.28%18044.20%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    11901.26%1140.27%00.00%00.00%/Pictures/
    12680.95%790.18%00.00%00.00%/About/
    13650.91%5211.21%00.00%00.00%/Pics/logo-100.png
    14540.75%6571.53%00.00%00.00%/phpBB2/login.php
    15510.71%1590.37%00.00%00.00%/Linux/
    16480.67%18854.39%00.00%00.00%/phpBB2/viewforum.php
    17440.61%910.21%00.00%00.00%/Surfing/
    18420.59%3580.83%00.00%00.00%/phpBB2/profile.php
    19330.46%410.10%00.00%00.00%/favicon.ico
    20320.45%5471.27%00.00%00.00%/phpBB2/memberlist.php
    21300.42%1080.25%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    22280.39%830.19%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    23240.33%2410.56%00.00%00.00%/phpBB2/groupcp.php
    24210.29%8451.97%00.00%00.00%/phpBB2/faq.php
    25200.28%2050.48%00.00%00.00%/phpBB2/viewonline.php
    26180.25%900.21%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    27170.24%2190.51%00.00%00.00%http://vanrenterghem.biz/phpBB2/login.php
    28130.18%190.05%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    29130.18%380.09%00.00%00.00%/Linux/logitech.shtml
    30130.18%180.04%00.00%00.00%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 163 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1159022.19%1299430.25%00.00%00.00%/phpBB2/viewtopic.php
    24556.35%817919.04%00.00%00.00%/phpBB2/
    330.04%41689.70%00.00%00.00%/Pictures/shot_09-03-03_224036.png
    430.04%26306.12%00.00%00.00%/Pictures/20060429_chello_extreme.png
    5480.67%18854.39%00.00%00.00%/phpBB2/viewforum.php
    6921.28%18044.20%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    71181.65%10892.53%00.00%00.00%/phpBB2/search.php
    8210.29%8451.97%00.00%00.00%/phpBB2/faq.php
    9540.75%6571.53%00.00%00.00%/phpBB2/login.php
    10320.45%5471.27%00.00%00.00%/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 20 Total Entry Pages
    #HitsVisitsURL
    14556.35%30541.55%/phpBB2/
    22463.43%18625.34%/
    31452.02%719.67%/News/
    4921.28%435.86%http://frederik.gotdns.org:1976/phpBB2/
    5901.26%375.04%/Pictures/
    6680.95%233.13%/About/
    7510.71%182.45%/Linux/
    8440.61%111.50%/Surfing/
    9991.38%101.36%*
    10130.18%91.23%/Pictures/20021229_Serial_Console/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 13 Total Exit Pages
    #HitsVisitsURL
    14556.35%4628.40%/phpBB2/
    22463.43%3521.60%/
    31452.02%3219.75%/News/
    4901.26%169.88%/Pictures/
    5921.28%74.32%http://frederik.gotdns.org:1976/phpBB2/
    6680.95%63.70%/About/
    7440.61%63.70%/Surfing/
    8510.71%53.09%/Linux/
    9130.18%31.85%/Pictures/20021229_Serial_Console/
    1020.03%31.85%/secured/Pictures/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 577 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1129118.01%00.00%13533.15%00.00%00.00%10.13%193.34.91.41
    298113.69%97722.12%643014.97%00.00%00.00%50.66%66.249.70.86
    33534.93%3207.25%17053.97%00.00%00.00%60.79%66.249.67.150
    43454.81%3157.13%28386.61%00.00%00.00%10.13%67.68.4.151
    53104.33%2425.48%12562.92%00.00%00.00%172.24%66.249.67.71
    61592.22%1002.26%1870.44%00.00%00.00%425.53%67.195.37.126
    71532.13%1232.79%2300.54%00.00%00.00%212.77%66.249.73.58
    81021.42%1022.31%2520.59%00.00%00.00%162.11%134.58.179.36
    91021.42%1022.31%130.03%00.00%00.00%91.19%192.168.1.2
    10881.23%80.18%3200.75%00.00%00.00%00.00%79.143.177.4
    11670.93%380.86%780.18%00.00%00.00%182.37%38.99.44.105
    12610.85%430.97%3510.82%00.00%00.00%121.58%65.55.213.78
    13610.85%521.18%5531.29%00.00%00.00%50.66%94.102.60.45
    14590.82%320.72%660.15%00.00%00.00%131.71%38.99.44.104
    15510.71%481.09%1360.32%00.00%00.00%10.13%212.224.148.35
    16510.71%511.15%930.22%00.00%00.00%10.13%84.197.1.247
    17490.68%00.00%510.12%00.00%00.00%00.00%89.255.72.169
    18450.63%350.79%2120.49%00.00%00.00%10.13%66.249.70.187
    19440.61%320.72%1190.28%00.00%00.00%10.13%84.29.75.148
    20430.60%430.97%490.12%00.00%00.00%00.00%194.78.208.95
    21420.59%340.77%6481.51%00.00%00.00%20.26%195.42.102.59
    22420.59%340.77%6121.43%00.00%00.00%20.26%200.63.42.109
    23420.59%300.68%1180.27%00.00%00.00%30.40%66.249.73.8
    24410.57%220.50%420.10%00.00%00.00%162.11%193.47.80.42
    25410.57%280.63%2510.58%00.00%00.00%30.40%62.231.208.12
    26410.57%410.93%1270.30%00.00%00.00%10.13%82.93.10.215
    27360.50%300.68%1860.43%00.00%00.00%30.40%66.249.70.227
    28360.50%190.43%2590.60%00.00%00.00%20.26%70.86.110.130
    29360.50%280.63%410.10%00.00%00.00%131.71%83.101.44.34
    30350.49%290.66%5741.34%00.00%00.00%182.37%89.161.239.192
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 577 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    198113.69%97722.12%643014.97%00.00%00.00%50.66%66.249.70.86
    2290.40%270.61%29626.90%00.00%00.00%30.40%64.62.142.170
    33454.81%3157.13%28386.61%00.00%00.00%10.13%67.68.4.151
    430.04%30.07%23665.51%00.00%00.00%00.00%213.39.251.126
    530.04%30.07%23665.51%00.00%00.00%00.00%87.187.1.72
    63534.93%3207.25%17053.97%00.00%00.00%60.79%66.249.67.150
    7129118.01%00.00%13533.15%00.00%00.00%10.13%193.34.91.41
    83104.33%2425.48%12562.92%00.00%00.00%172.24%66.249.67.71
    9420.59%340.77%6481.51%00.00%00.00%20.26%195.42.102.59
    10420.59%340.77%6121.43%00.00%00.00%20.26%200.63.42.109
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 97 Total Referrers
    #HitsReferrer
    1741.03%vanrenterghem.biz/phpBB2/viewtopic.php
    2690.96%vanrenterghem.biz/phpBB2/profile.php
    3650.91%vanrenterghem.biz/viewforum.php
    4630.88%vanrenterghem.biz/phpBB2/
    5620.87%kauai.vanrenterghem.biz/phpBB2/index.php
    6560.78%vanrenterghem.biz/
    7530.74%vanrenterghem.biz/phpBB2/index.php
    8440.61%kauai.vanrenterghem.biz/phpBB2/profile.php
    9370.52%www.vanrenterghem.biz/
    10360.50%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    11340.47%vanrenterghem.biz/phpBB2/login.php
    12280.39%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    13250.35%vanrenterghem.biz/phpBB2/search.php
    14220.31%vanrenterghem.biz/profile.php
    15200.28%vanrenterghem.biz/styles/header.css
    16190.27%vanrenterghem.biz/Pictures/index.shtml
    17150.21%kauai.vanrenterghem.biz/News/index.php
    18150.21%kauai.vanrenterghem.biz/phpBB2/viewonline.php
    19150.21%www.keywordspy.com/keyword-research/vanrenterghem.biz
    20110.15%www.vanrenterghem.biz/phpBB2/index.php
    21100.14%vanrenterghem.biz/About/index.shtml
    2290.13%vanrenterghem.biz/News/index.php
    2390.13%vanrenterghem.biz/phpBB2/viewforum.php
    2490.13%www.vanrenterghem.biz/News/index.php
    2580.11%kauai.vanrenterghem.biz/viewforum.php
    2680.11%vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2780.11%vanrenterghem.biz/Linux/index.shtml
    2880.11%www.google.be/search
    2980.11%www.vanrenterghem.biz/Linux/index.shtml
    3080.11%www.vanrenterghem.biz/phpBB2/index.php/profile.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    120.03%20.05%60.01%00.00%00.00%20.26%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 71 Total User Agents
    #HitsUser Agent
    1207028.88%Googlebot/2.1
    2125917.57%MSIE 6.0
    35667.90%Mozilla/5.0
    42653.70%MSIE 7.0
    51922.68%Yahoo! Slurp
    61191.66%MSIE 5.5
    7941.31%Yahoo! Slurp/3.0
    8901.26%GoogleToolbar 2.0
    9761.06%msnbot/1.1 (+http://search.msn.com/msnbot.htm)
    10620.87%Apache/2.2.9 (Debian) PHP/5.2.6-2 with Suhosin-Patch (internal dummy connection)
    11610.85%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    12570.80%Mozilla/4.0 (compatible;)
    13540.75%Opera 8.0
    14440.61%MJ12bot/v1.2
    15410.57%Exabot/3.0
    +

    + +Usage by Location for October 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 53 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1326845.60%261459.19%1949245.38%00.00%00.00%United States
    2171623.94%3888.79%22225.17%00.00%00.00%Belgium
    34095.71%3117.04%30617.13%00.00%00.00%Unresolved/Unknown
    43605.02%3227.29%29666.90%00.00%00.00%Canada
    52833.95%1383.12%16783.91%00.00%00.00%Netherlands
    61842.57%761.72%13883.23%00.00%00.00%Russian Federation
    71452.02%902.04%5061.18%00.00%00.00%France
    8971.35%681.54%9212.15%00.00%00.00%Great Britain (UK)
    9680.95%501.13%534012.43%00.00%00.00%Germany
    10680.95%611.38%9662.25%00.00%00.00%Poland
    11590.82%320.72%6681.56%00.00%00.00%Ukraine
    12570.80%230.52%6031.40%00.00%00.00%China
    13530.74%240.54%5401.26%00.00%00.00%Saudi Arabia
    14410.57%120.27%4801.12%00.00%00.00%Latvia
    15410.57%280.63%2510.58%00.00%00.00%Oman
    16310.43%60.14%1230.29%00.00%00.00%Spain
    17230.32%40.09%1150.27%00.00%00.00%India
    18210.29%70.16%1500.35%00.00%00.00%Moldova
    19200.28%200.45%1060.25%00.00%00.00%Denmark
    20200.28%160.36%500.12%00.00%00.00%Ireland
    21180.25%140.32%860.20%00.00%00.00%Sweden
    22170.24%70.16%570.13%00.00%00.00%Italy
    23160.22%80.18%1090.25%00.00%00.00%Bulgaria
    24160.22%40.09%900.21%00.00%00.00%Korea (South)
    25140.20%20.05%530.12%00.00%00.00%Viet Nam
    26130.18%110.25%1690.39%00.00%00.00%Thailand
    27110.15%80.18%920.21%00.00%00.00%Israel
    2890.13%70.16%700.16%00.00%00.00%Estonia
    2980.11%80.18%530.12%00.00%00.00%Switzerland
    3080.11%30.07%570.13%00.00%00.00%Japan
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200811.html b/webalizer/usage_200811.html new file mode 100644 index 0000000..eb15c49 --- /dev/null +++ b/webalizer/usage_200811.html @@ -0,0 +1,3085 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - November 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: November 2008
    +Generated 01-Dec-2008 06:28 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for November 2008
    Total Hits7277
    Total Files5547
    Total Pages1527
    Total Visits783
    Total kB Files52436
    Total kB In0
    Total kB Out0
    Total Unique Sites455
    Total Unique URLs495
    Total Unique Referrers97
    Total Unique Usernames1
    Total Unique User Agents66
    .Avg Max
    Hits per Hour10402
    Hits per Day242974
    Files per Day184931
    Pages per Day5089
    Visits per Day2638
    kB Files per Day17486304
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5547
    Code 206 - Partial Content4
    Code 301 - Moved Permanently1
    Code 302 - Found664
    Code 304 - Not Modified129
    Code 400 - Bad Request26
    Code 401 - Unauthorized27
    Code 403 - Forbidden1
    Code 404 - Not Found878
    +

    + +Daily usage for November 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for November 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    14365.99%2855.14%634.13%222.81%235.05%625611.93%00.00%00.00%
    21562.14%1242.24%503.27%182.30%194.18%6641.27%00.00%00.00%
    31211.66%891.60%402.62%222.81%255.49%6901.32%00.00%00.00%
    41431.97%871.57%402.62%182.30%327.03%11782.25%00.00%00.00%
    51401.92%781.41%412.69%202.55%367.91%8541.63%00.00%00.00%
    6971.33%460.83%291.90%202.55%286.15%4280.82%00.00%00.00%
    74826.62%4458.02%322.10%182.30%265.71%559010.66%00.00%00.00%
    86819.36%61511.09%694.52%243.07%275.93%39297.49%00.00%00.00%
    997413.38%93116.78%523.41%303.83%255.49%630412.02%00.00%00.00%
    101211.66%631.14%362.36%263.32%286.15%18833.59%00.00%00.00%
    111922.64%1432.58%513.34%232.94%255.49%10041.91%00.00%00.00%
    121792.46%991.78%322.10%273.45%275.93%6871.31%00.00%00.00%
    131592.18%1172.11%573.73%384.85%235.05%6621.26%00.00%00.00%
    142022.78%1382.49%674.39%324.09%316.81%11962.28%00.00%00.00%
    151572.16%971.75%382.49%303.83%265.71%6851.31%00.00%00.00%
    161942.67%1362.45%795.17%263.32%306.59%15592.97%00.00%00.00%
    171562.14%951.71%644.19%303.83%337.25%13612.60%00.00%00.00%
    181261.73%751.35%493.21%324.09%347.47%9981.90%00.00%00.00%
    192303.16%1512.72%362.36%222.81%296.37%14742.81%00.00%00.00%
    201842.53%1051.89%523.41%263.32%316.81%13112.50%00.00%00.00%
    212082.86%1713.08%895.83%354.47%235.05%9741.86%00.00%00.00%
    222323.19%1753.15%603.93%293.70%337.25%13752.62%00.00%00.00%
    231872.57%1342.42%795.17%374.73%337.25%11882.26%00.00%00.00%
    243354.60%2173.91%724.72%374.73%4910.77%19183.66%00.00%00.00%
    253675.04%3005.41%664.32%253.19%275.93%23614.50%00.00%00.00%
    261802.47%1442.60%261.70%222.81%255.49%9691.85%00.00%00.00%
    272873.94%2334.20%543.54%293.70%347.47%26635.08%00.00%00.00%
    281161.59%831.50%352.29%263.32%265.71%7181.37%00.00%00.00%
    291131.55%791.42%261.70%182.30%224.84%6991.33%00.00%00.00%
    301221.68%921.66%432.82%222.81%245.27%8601.64%00.00%00.00%
    +

    + +Hourly usage for November 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for November 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    072132.93%51512.72%1473.08%4313032.48%000.00%000.00%
    162002.75%51662.99%1543.54%4112312.35%000.00%000.00%
    272343.22%41472.65%1503.27%4613862.64%000.00%000.00%
    382463.38%61833.30%1533.47%9528575.45%000.00%000.00%
    472193.01%41272.29%1493.21%3811392.17%000.00%000.00%
    551762.42%41442.60%2603.93%4212472.38%000.00%000.00%
    672233.06%51773.19%3946.16%3510472.00%000.00%000.00%
    7113314.55%82684.83%31107.20%8726044.97%000.00%000.00%
    872293.15%61823.28%1473.08%4212722.42%000.00%000.00%
    962022.78%51562.81%2654.26%5014862.83%000.00%000.00%
    10195998.23%185489.88%2734.78%179537010.24%000.00%000.00%
    1182403.30%61903.43%1533.47%4313052.49%000.00%000.00%
    1272323.19%51673.01%1412.69%4313022.48%000.00%000.00%
    1382493.42%51773.19%1583.80%4914592.78%000.00%000.00%
    14113454.74%72153.88%1412.69%5717023.24%000.00%000.00%
    15103054.19%72394.31%2644.19%6519503.72%000.00%000.00%
    16185627.72%144277.70%3915.96%296889216.96%000.00%000.00%
    1792783.82%72173.91%2613.99%5014892.84%000.00%000.00%
    18154636.36%113426.17%2775.04%13440087.64%000.00%000.00%
    1992813.86%72183.93%2603.93%4814442.75%000.00%000.00%
    20134165.72%113566.42%2724.72%7823304.44%000.00%000.00%
    2192713.72%72193.95%1392.55%4814432.75%000.00%000.00%
    22144396.03%103035.46%3905.89%7422164.23%000.00%000.00%
    23103244.45%72284.11%2785.11%6519573.73%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 495 Total URLs
    #HitskB FkB InkB OutURL
    1225230.95%2205342.06%00.00%00.00%/phpBB2/viewtopic.php
    25998.23%1001619.10%00.00%00.00%/phpBB2/
    34255.84%4530.86%00.00%00.00%/News/permalink.php
    42643.63%5180.99%00.00%00.00%/
    51782.45%4660.89%00.00%00.00%/News/
    61181.62%13812.63%00.00%00.00%/phpBB2/search.php
    71161.59%960.18%00.00%00.00%/styles/header.css
    81161.59%100.02%00.00%00.00%/styles/main.css
    9881.21%2600.50%00.00%00.00%/About/
    10871.20%00.00%00.00%00.00%*
    11781.07%4240.81%00.00%00.00%/Pics/logo-100.png
    12680.93%1010.19%00.00%00.00%/Pictures/
    13620.85%2060.39%00.00%00.00%/Linux/
    14610.84%7511.43%00.00%00.00%/phpBB2/profile.php
    15560.77%1150.22%00.00%00.00%/Surfing/
    16560.77%10251.95%00.00%00.00%/phpBB2/memberlist.php
    17500.69%690.13%00.00%00.00%/favicon.ico
    18400.55%4970.95%00.00%00.00%/phpBB2/groupcp.php
    19370.51%16673.18%00.00%00.00%/phpBB2/faq.php
    20360.49%4770.91%00.00%00.00%/phpBB2/viewonline.php
    21310.43%6111.17%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    22300.41%13272.53%00.00%00.00%/phpBB2/viewforum.php
    23290.40%3480.66%00.00%00.00%/phpBB2/login.php
    24240.33%3090.59%00.00%00.00%http://vanrenterghem.biz/phpBB2/login.php
    25210.29%630.12%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    26200.27%2620.50%00.00%00.00%/phpbb2/viewtopic.php
    27180.25%810.15%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    28140.19%1660.32%00.00%00.00%/phpBB2//login.php
    29120.16%90.02%00.00%00.00%/styles/newspage.css
    30110.15%1900.36%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 495 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1225230.95%2205342.06%00.00%00.00%/phpBB2/viewtopic.php
    25998.23%1001619.10%00.00%00.00%/phpBB2/
    320.03%26305.02%00.00%00.00%/Pictures/20060429_chello_extreme.png
    4370.51%16673.18%00.00%00.00%/phpBB2/faq.php
    51181.62%13812.63%00.00%00.00%/phpBB2/search.php
    6300.41%13272.53%00.00%00.00%/phpBB2/viewforum.php
    7560.77%10251.95%00.00%00.00%/phpBB2/memberlist.php
    8610.84%7511.43%00.00%00.00%/phpBB2/profile.php
    9310.43%6111.17%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    102643.63%5180.99%00.00%00.00%/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 22 Total Entry Pages
    #HitsVisitsURL
    15998.23%29138.44%/phpBB2/
    22643.63%21428.27%/
    31782.45%10513.87%/News/
    4680.93%233.04%/Pictures/
    5881.21%212.77%/About/
    6620.85%212.77%/Linux/
    7560.77%202.64%/Surfing/
    8310.43%182.38%http://frederik.gotdns.org:1976/phpBB2/
    9871.20%151.98%*
    1050.07%40.53%/Pictures/20050409_New_York/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 14 Total Exit Pages
    #HitsVisitsURL
    11782.45%5933.15%/News/
    25998.23%5229.21%/phpBB2/
    32643.63%2916.29%/
    4680.93%95.06%/Pictures/
    5881.21%63.37%/About/
    6871.20%42.25%*
    7560.77%42.25%/Surfing/
    820.03%42.25%/secured/Pictures/
    9620.85%31.69%/Linux/
    1050.07%31.69%/Pictures/20050409_New_York/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 455 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1162822.37%155828.09%937417.88%00.00%00.00%303.83%66.249.67.71
    26368.74%55910.08%36016.87%00.00%00.00%232.94%66.249.67.195
    33985.47%3836.90%37567.16%00.00%00.00%10.13%217.110.99.238
    42683.68%2043.68%31756.05%00.00%00.00%111.40%94.102.60.174
    52423.33%1622.92%567810.83%00.00%00.00%10.13%92.136.164.27
    61802.47%1703.06%9621.84%00.00%00.00%10.13%84.29.102.71
    71552.13%921.66%1320.25%00.00%00.00%172.17%83.101.44.34
    81441.98%1242.24%2520.48%00.00%00.00%222.81%66.249.67.149
    91181.62%751.35%1370.26%00.00%00.00%313.96%67.195.37.126
    101021.40%921.66%1620.31%00.00%00.00%162.04%66.249.70.196
    11891.22%661.19%1070.20%00.00%00.00%182.30%38.99.44.104
    12861.18%861.55%00.00%00.00%00.00%141.79%192.168.1.2
    13861.18%661.19%1670.32%00.00%00.00%10.13%217.228.57.115
    14821.13%611.10%910.17%00.00%00.00%131.66%38.99.44.105
    15811.11%601.08%15482.95%00.00%00.00%10.13%69.84.207.147
    16781.07%651.17%3350.64%00.00%00.00%40.51%66.249.67.41
    17720.99%641.15%12772.44%00.00%00.00%162.04%89.161.239.192
    18560.77%460.83%7211.37%00.00%00.00%40.51%194.165.42.135
    19550.76%280.50%4230.81%00.00%00.00%131.66%66.231.189.95
    20550.76%50.09%1640.31%00.00%00.00%00.00%94.102.60.162
    21550.76%50.09%1660.32%00.00%00.00%00.00%94.102.60.166
    22510.70%350.63%3960.75%00.00%00.00%50.64%94.76.199.10
    23480.66%240.43%3090.59%00.00%00.00%00.00%70.86.110.130
    24470.65%350.63%5140.98%00.00%00.00%30.38%194.165.42.137
    25440.60%40.07%1300.25%00.00%00.00%00.00%78.157.142.29
    26440.60%440.79%1330.25%00.00%00.00%10.13%91.177.177.139
    27430.59%260.47%630.12%00.00%00.00%81.02%38.108.180.163
    28430.59%420.76%2530.48%00.00%00.00%10.13%88.197.191.237
    29420.58%300.54%5861.12%00.00%00.00%151.92%78.110.175.13
    30400.55%390.70%790.15%00.00%00.00%00.00%78.23.80.244
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 455 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1162822.37%155828.09%937417.88%00.00%00.00%303.83%66.249.67.71
    22423.33%1622.92%567810.83%00.00%00.00%10.13%92.136.164.27
    33985.47%3836.90%37567.16%00.00%00.00%10.13%217.110.99.238
    46368.74%55910.08%36016.87%00.00%00.00%232.94%66.249.67.195
    52683.68%2043.68%31756.05%00.00%00.00%111.40%94.102.60.174
    6811.11%601.08%15482.95%00.00%00.00%10.13%69.84.207.147
    7280.38%140.25%14772.82%00.00%00.00%81.02%65.55.213.78
    820.03%20.04%13162.51%00.00%00.00%00.00%217.212.224.182
    9720.99%641.15%12772.44%00.00%00.00%162.04%89.161.239.192
    101802.47%1703.06%9621.84%00.00%00.00%10.13%84.29.102.71
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 97 Total Referrers
    #HitsReferrer
    13174.36%www.vanrenterghem.biz/secured/Pictures/200607_The_Long_Swell/index.shtml
    2861.18%vanrenterghem.biz/
    3590.81%kauai.vanrenterghem.biz/phpBB2/index.php
    4590.81%www.vanrenterghem.biz/secured/Pictures/20070211_Shooters/index.shtml
    5570.78%www.vanrenterghem.biz/phpBB2/index.php
    6480.66%vanrenterghem.biz/phpBB2/
    7480.66%vanrenterghem.biz/phpBB2/login.php
    8440.60%vanrenterghem.biz/styles/header.css
    9440.60%www.vanrenterghem.biz/
    10400.55%vanrenterghem.biz/About/index.shtml
    11390.54%kauai.vanrenterghem.biz/News/index.php
    12380.52%vanrenterghem.biz/viewforum.php
    13360.49%vanrenterghem.biz/phpBB2/profile.php
    14350.48%vanrenterghem.biz/phpBB2/index.php
    15320.44%vanrenterghem.biz/index.shtml
    16240.33%www.vanrenterghem.biz/phpBB2/index.php/profile.php
    17220.30%vanrenterghem.biz/Pictures/20051112_COS_Garden_of_the_Gods/index.shtml
    18200.27%vanrenterghem.biz/phpBB2/viewtopic.php
    19170.23%kauai.vanrenterghem.biz/phpBB2/profile.php
    20170.23%vanrenterghem.biz/News/index.php
    21170.23%www.vanrenterghem.biz/Pictures/index.shtml
    22120.16%www.keywordspy.com/keyword-research/vanrenterghem.biz
    23100.14%vanrenterghem.biz/Pictures/index.shtml
    24100.14%www.vanrenterghem.biz/Linux/index.shtml
    2590.12%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    2690.12%vanrenterghem.biz/login.php
    2790.12%vanrenterghem.biz/phpBB2//index.php
    2880.11%vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    2980.11%vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    3080.11%vanrenterghem.biz/Surfing/index.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    13745.14%3746.74%37327.12%00.00%00.00%10.13%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 66 Total User Agents
    #HitsUser Agent
    1259435.65%Googlebot/2.1
    2179124.61%MSIE 6.0
    377710.68%Mozilla/5.0
    44466.13%MSIE 7.0
    51842.53%MJ12bot/v1.2
    61712.35%Yahoo! Slurp
    71462.01%MSIE 5.5
    81031.42%Yahoo! Slurp/3.0
    9861.18%Apache/2.2.9 (Debian) PHP/5.2.6-5 with Suhosin-Patch (internal dummy connection)
    10751.03%Opera 9.0
    11670.92%Opera 8.0
    12670.92%ScoutJet
    13550.76%Gigabot/3.0 (http://www.gigablast.com/spider.html)
    14500.69%MSIE 5.0
    15380.52%Exabot/3.0
    +

    + +Usage by Location for November 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 45 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1370250.87%313356.48%2066939.42%00.00%00.00%United States
    26879.44%4207.57%537410.25%00.00%00.00%Unresolved/Unknown
    35317.30%4518.13%49839.50%00.00%00.00%Great Britain (UK)
    44135.68%2795.03%610711.65%00.00%00.00%France
    53464.75%2785.01%7971.52%00.00%00.00%Belgium
    63104.26%1703.06%29895.70%00.00%00.00%Saudi Arabia
    72263.11%1933.48%14162.70%00.00%00.00%Netherlands
    82243.08%1332.40%13022.48%00.00%00.00%Germany
    91421.95%761.37%13522.58%00.00%00.00%Russian Federation
    10941.29%621.12%8661.65%00.00%00.00%Canada
    11871.20%120.22%4280.82%00.00%00.00%Latvia
    12851.17%721.30%14982.86%00.00%00.00%Poland
    13640.88%631.14%3330.64%00.00%00.00%Thailand
    14540.74%330.59%5881.12%00.00%00.00%China
    15370.51%100.18%1570.30%00.00%00.00%Italy
    16360.49%170.31%3690.70%00.00%00.00%Ukraine
    17330.45%140.25%2180.42%00.00%00.00%Romania
    18300.41%240.43%750.14%00.00%00.00%Ireland
    19200.27%170.31%2730.52%00.00%00.00%Switzerland
    20170.23%140.25%1830.35%00.00%00.00%Japan
    21170.23%70.13%1430.27%00.00%00.00%Moldova
    22150.21%50.09%870.17%00.00%00.00%Korea (South)
    23120.16%50.09%1000.19%00.00%00.00%Luxembourg
    24110.15%10.02%330.06%00.00%00.00%Estonia
    25110.15%100.18%14122.69%00.00%00.00%Sweden
    26100.14%80.14%840.16%00.00%00.00%Denmark
    27100.14%50.09%1000.19%00.00%00.00%Israel
    2870.10%60.11%690.13%00.00%00.00%Taiwan
    2960.08%50.09%380.07%00.00%00.00%Australia
    3050.07%40.07%580.11%00.00%00.00%Brazil
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200812.html b/webalizer/usage_200812.html new file mode 100644 index 0000000..bbc9798 --- /dev/null +++ b/webalizer/usage_200812.html @@ -0,0 +1,3056 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - December 2008 + + + +

    Usage Statistics for kauai

    + +Summary Period: December 2008
    +Generated 01-Jan-2009 06:29 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for December 2008
    Total Hits6463
    Total Files4923
    Total Pages1313
    Total Visits741
    Total kB Files59823
    Total kB In0
    Total kB Out0
    Total Unique Sites464
    Total Unique URLs161
    Total Unique Referrers96
    Total Unique User Agents66
    .Avg Max
    Hits per Hour8702
    Hits per Day2081471
    Files per Day1581050
    Pages per Day42136
    Visits per Day2340
    kB Files per Day193026547
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK4923
    Code 302 - Found758
    Code 304 - Not Modified54
    Code 400 - Bad Request46
    Code 401 - Unauthorized31
    Code 404 - Not Found648
    Code 406 - Not Acceptable3
    +

    + +Daily usage for December 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for December 2008
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    12874.44%2274.61%816.17%263.51%469.91%18753.13%00.00%00.00%
    22143.31%1913.88%332.51%212.83%224.74%13972.34%00.00%00.00%
    31902.94%1543.13%403.05%283.78%388.19%11511.92%00.00%00.00%
    43004.64%2605.28%302.28%233.10%367.76%20363.40%00.00%00.00%
    51722.66%1342.72%564.27%405.40%408.62%11851.98%00.00%00.00%
    6147122.76%105021.33%13610.36%202.70%429.05%2654744.37%00.00%00.00%
    72694.16%2234.53%534.04%243.24%316.68%19883.32%00.00%00.00%
    81412.18%1072.17%392.97%212.83%347.33%11381.90%00.00%00.00%
    92063.19%1813.68%251.90%192.56%347.33%12922.16%00.00%00.00%
    101632.52%1132.30%382.89%182.43%296.25%12842.15%00.00%00.00%
    111542.38%1242.52%352.67%233.10%326.90%10311.72%00.00%00.00%
    121892.92%1472.99%352.67%273.64%367.76%10281.72%00.00%00.00%
    131602.48%1052.13%433.27%182.43%255.39%15912.66%00.00%00.00%
    141632.52%1372.78%413.12%253.37%326.90%8971.50%00.00%00.00%
    152393.70%1793.64%523.96%334.45%5511.85%14522.43%00.00%00.00%
    161522.35%801.63%241.83%233.10%316.68%6221.04%00.00%00.00%
    171502.32%971.97%392.97%263.51%388.19%8231.38%00.00%00.00%
    181271.97%861.75%382.89%212.83%326.90%7071.18%00.00%00.00%
    191201.86%911.85%272.06%212.83%275.82%5930.99%00.00%00.00%
    201011.56%751.52%241.83%202.70%255.39%5170.86%00.00%00.00%
    211191.84%891.81%443.35%263.51%306.47%7171.20%00.00%00.00%
    221332.06%1062.15%241.83%182.43%286.03%5800.97%00.00%00.00%
    231392.15%1082.19%523.96%324.32%337.11%7391.24%00.00%00.00%
    241201.86%821.67%352.67%212.83%265.60%6801.14%00.00%00.00%
    25941.45%681.38%292.21%202.70%265.60%6071.01%00.00%00.00%
    261392.15%1072.17%453.43%243.24%377.97%9351.56%00.00%00.00%
    271352.09%1132.30%382.89%243.24%286.03%6291.05%00.00%00.00%
    281482.29%1182.40%453.43%273.64%357.54%7841.31%00.00%00.00%
    291912.96%1683.41%423.20%233.10%357.54%33935.67%00.00%00.00%
    301332.06%1032.09%403.05%263.51%398.41%8231.38%00.00%00.00%
    311442.23%1002.03%302.28%233.10%265.60%7821.31%00.00%00.00%
    +

    + +Hourly usage for December 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for December 2008
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    072313.57%61913.88%1564.27%11736366.08%000.00%000.00%
    151802.79%41372.78%1413.12%309331.56%000.00%000.00%
    262153.33%51613.27%1554.19%5517162.87%000.00%000.00%
    351732.68%41362.76%1473.58%3410671.78%000.00%000.00%
    461943.00%41513.07%1433.27%4714602.44%000.00%000.00%
    561862.88%41412.86%1362.74%3912082.02%000.00%000.00%
    662043.16%51663.37%2705.33%319521.59%000.00%000.00%
    751622.51%31152.34%0272.06%288571.43%000.00%000.00%
    861943.00%41513.07%1453.43%3811671.95%000.00%000.00%
    92374211.48%1649710.10%1574.34%4461382623.11%000.00%000.00%
    102889713.88%2269314.08%31199.06%4121278521.37%000.00%000.00%
    1151842.85%41493.03%1403.05%4714482.42%000.00%000.00%
    1261983.06%41533.11%1423.20%3611191.87%000.00%000.00%
    1361953.02%41382.80%1453.43%3912012.01%000.00%000.00%
    1462013.11%41452.95%1392.97%3912032.01%000.00%000.00%
    1572443.78%61873.80%1523.96%4614372.40%000.00%000.00%
    1662143.31%51693.43%1503.81%3911982.00%000.00%000.00%
    1772343.62%51803.66%1473.58%3410401.74%000.00%000.00%
    1851832.83%41432.90%1513.88%278321.39%000.00%000.00%
    1961993.08%51603.25%1503.81%4213032.18%000.00%000.00%
    2082483.84%61923.90%1534.04%7422933.83%000.00%000.00%
    21113425.29%92815.71%2856.47%6921343.57%000.00%000.00%
    22123865.97%92885.85%3957.24%8927624.62%000.00%000.00%
    2382573.98%61994.04%2685.18%7322483.76%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 161 Total URLs
    #HitskB FkB InkB OutURL
    1226635.06%3575559.77%00.00%00.00%/phpBB2/viewtopic.php
    26079.39%1111118.57%00.00%00.00%/phpBB2/
    34647.18%7911.32%00.00%00.00%/News/permalink.php
    41912.96%3530.59%00.00%00.00%/
    51632.52%5120.86%00.00%00.00%/News/
    61181.83%140.02%00.00%00.00%/styles/main.css
    71151.78%1270.21%00.00%00.00%/styles/header.css
    8801.24%00.00%00.00%00.00%*
    9550.85%740.12%00.00%00.00%/Pictures/
    10520.80%8501.42%00.00%00.00%/phpBB2/search.php
    11480.74%1530.26%00.00%00.00%/About/
    12480.74%3980.66%00.00%00.00%/Pics/logo-100.png
    13420.65%1380.23%00.00%00.00%/Linux/
    14410.63%790.13%00.00%00.00%/Surfing/
    15350.54%480.08%00.00%00.00%/favicon.ico
    16310.48%4760.80%00.00%00.00%/phpBB2/profile.php
    17290.45%5010.84%00.00%00.00%/phpBB2/memberlist.php
    18270.42%1440.24%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    19240.37%14522.43%00.00%00.00%/phpBB2/viewforum.php
    20230.36%9441.58%00.00%00.00%/phpBB2/faq.php
    21230.36%150.02%00.00%00.00%/styles/newspage.css
    22220.34%2620.44%00.00%00.00%/phpBB2/groupcp.php
    23180.28%2280.38%00.00%00.00%/phpBB2/viewonline.php
    24170.26%650.11%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    25150.23%760.13%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    26150.23%1840.31%00.00%00.00%/phpBB2/login.php
    27140.22%2050.34%00.00%00.00%/phpbb2/viewtopic.php
    28140.22%1800.30%00.00%00.00%http://vanrenterghem.biz/phpBB2/login.php
    29110.17%2060.34%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    30100.15%170.03%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 161 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1226635.06%3575559.77%00.00%00.00%/phpBB2/viewtopic.php
    26079.39%1111118.57%00.00%00.00%/phpBB2/
    310.02%20843.48%00.00%00.00%/Pictures/shot_09-03-03_224036.png
    4240.37%14522.43%00.00%00.00%/phpBB2/viewforum.php
    5230.36%9441.58%00.00%00.00%/phpBB2/faq.php
    6520.80%8501.42%00.00%00.00%/phpBB2/search.php
    74647.18%7911.32%00.00%00.00%/News/permalink.php
    81632.52%5120.86%00.00%00.00%/News/
    9290.45%5010.84%00.00%00.00%/phpBB2/memberlist.php
    10310.48%4760.80%00.00%00.00%/phpBB2/profile.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 20 Total Entry Pages
    #HitsVisitsURL
    16079.39%33046.22%/phpBB2/
    21912.96%16322.83%/
    31632.52%9313.03%/News/
    4550.85%314.34%/Pictures/
    5480.74%233.22%/About/
    6410.63%192.66%/Surfing/
    7801.24%152.10%*
    8420.65%152.10%/Linux/
    980.12%60.84%/Pictures/20021229_Serial_Console/
    1050.08%40.56%/Pictures/20030713_MTB/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Exit Pages
    #HitsVisitsURL
    16079.39%5744.88%/phpBB2/
    21632.52%3527.56%/News/
    31912.96%129.45%/
    4550.85%97.09%/Pictures/
    5480.74%53.94%/About/
    6420.65%32.36%/Linux/
    7410.63%32.36%/Surfing/
    8801.24%21.57%*
    940.06%10.79%/Pictures/200505_Amsterdam/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 464 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1122618.97%88217.92%2429840.62%00.00%00.00%20.27%83.29.214.134
    22333.61%2164.39%14992.51%00.00%00.00%30.40%66.249.71.227
    32323.59%2094.25%14062.35%00.00%00.00%30.40%66.249.71.225
    42263.50%2124.31%14252.38%00.00%00.00%50.67%66.249.71.226
    51943.00%1713.47%6581.10%00.00%00.00%314.18%38.99.44.105
    61902.94%1813.68%11581.94%00.00%00.00%30.40%66.249.67.195
    71752.71%1663.37%10091.69%00.00%00.00%70.94%66.249.71.86
    81662.57%1452.95%8891.49%00.00%00.00%50.67%66.249.71.88
    91552.40%1322.68%6191.03%00.00%00.00%283.78%38.99.44.104
    101542.38%1102.23%20783.47%00.00%00.00%40.54%62.141.58.179
    111542.38%1402.84%8761.46%00.00%00.00%40.54%66.249.71.87
    121472.27%1392.82%8721.46%00.00%00.00%60.81%66.249.71.108
    131231.90%1142.32%7571.26%00.00%00.00%40.54%66.249.71.107
    141111.72%1042.11%6681.12%00.00%00.00%10.13%66.249.71.106
    15941.45%841.71%5930.99%00.00%00.00%10.13%149.32.192.33
    16941.45%831.69%16562.77%00.00%00.00%222.97%89.161.239.192
    17751.16%751.52%00.00%00.00%00.00%101.35%192.168.1.2
    18741.14%501.02%9731.63%00.00%00.00%253.37%78.110.175.13
    19741.14%561.14%8511.42%00.00%00.00%30.40%87.118.118.246
    20711.10%470.95%9141.53%00.00%00.00%243.24%78.110.175.11
    21580.90%310.63%5650.94%00.00%00.00%50.67%66.231.189.95
    22550.85%420.85%630.11%00.00%00.00%172.29%67.195.37.182
    23480.74%60.12%2320.39%00.00%00.00%00.00%194.165.42.15
    24460.71%310.63%1960.33%00.00%00.00%00.00%66.249.71.57
    25440.68%260.53%1120.19%00.00%00.00%101.35%65.55.213.78
    26410.63%210.43%570.10%00.00%00.00%131.75%193.47.80.42
    27410.63%410.83%24844.15%00.00%00.00%10.13%213.158.199.71
    28360.56%300.61%1850.31%00.00%00.00%10.13%66.249.71.58
    29360.56%200.41%430.07%00.00%00.00%101.35%67.195.37.158
    30360.56%360.73%670.11%00.00%00.00%10.13%78.20.191.16
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 464 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1122618.97%88217.92%2429840.62%00.00%00.00%20.27%83.29.214.134
    2410.63%410.83%24844.15%00.00%00.00%10.13%213.158.199.71
    31542.38%1102.23%20783.47%00.00%00.00%40.54%62.141.58.179
    4941.45%831.69%16562.77%00.00%00.00%222.97%89.161.239.192
    52333.61%2164.39%14992.51%00.00%00.00%30.40%66.249.71.227
    62263.50%2124.31%14252.38%00.00%00.00%50.67%66.249.71.226
    72323.59%2094.25%14062.35%00.00%00.00%30.40%66.249.71.225
    81902.94%1813.68%11581.94%00.00%00.00%30.40%66.249.67.195
    91752.71%1663.37%10091.69%00.00%00.00%70.94%66.249.71.86
    10741.14%501.02%9731.63%00.00%00.00%253.37%78.110.175.13
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 96 Total Referrers
    #HitsReferrer
    1841.30%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    2620.96%vanrenterghem.biz/phpBB2/
    3590.91%vanrenterghem.biz/
    4470.73%kauai.vanrenterghem.biz/phpBB2/index.php
    5300.46%www.vanrenterghem.biz/phpBB2/index.php/profile.php
    6280.43%vanrenterghem.biz/phpBB2/login.php
    7280.43%www.vanrenterghem.biz/
    8270.42%vanrenterghem.biz/styles/header.css
    9270.42%www.vanrenterghem.biz/phpBB2/viewtopic.php
    10240.37%kauai.vanrenterghem.biz/News/index.php
    11240.37%vanrenterghem.biz/viewforum.php
    12170.26%vanrenterghem.biz/phpBB2/profile.php
    13160.25%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    14160.25%vanrenterghem.biz/Pictures/index.shtml
    15160.25%vanrenterghem.biz/phpBB2/index.php
    16120.19%vanrenterghem.biz/News/permalink.php
    17120.19%vanrenterghem.biz/index.shtml
    18120.19%www.vanrenterghem.biz/News/permalink.php
    19110.17%vanrenterghem.biz/Linux/index.shtml
    20100.15%seedmain.com
    21100.15%vanrenterghem.biz/phpBB2/viewtopic.php
    22100.15%www.vanrenterghem.biz/Linux/index.shtml
    23100.15%www.vanrenterghem.biz/phpBB2/index.php
    24100.15%www.vanrenterghem.biz/phpBB2/index.php/
    2590.14%vanrenterghem.biz/About/index.shtml
    2690.14%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    2790.14%www.vanrenterghem.biz/News/index.php
    2880.12%vanrenterghem.biz/Surfing/index.shtml
    2970.11%www.google.be/search
    3060.09%vanrenterghem.biz/News/index.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 66 Total User Agents
    #HitsUser Agent
    1202531.33%MSIE 6.0
    2185128.64%Googlebot/2.1
    394014.54%Mozilla/5.0
    42774.29%MSIE 7.0
    52423.74%Yahoo! Slurp
    62223.43%Yahoo! Slurp/3.0
    7721.11%MSIE 5.5
    8580.90%Gigabot/3.0 (http://www.gigablast.com/spider.html)
    9450.70%Toata dragostea mea pentru diavola
    10440.68%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    11430.67%Googlebot-Image/1.0
    12420.65%Mozilla/4.0 (compatible;)
    13410.63%Exabot/3.0
    14400.62%Apache/2.2.9 (Debian) PHP/5.2.6-5 with Suhosin-Patch (internal dummy connection)
    15390.60%Opera 8.0
    +

    + +Usage by Location for December 2008

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 42 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1323550.05%268454.52%1628427.22%00.00%00.00%United States
    2137321.24%101220.56%2847547.60%00.00%00.00%Poland
    33875.99%2465.00%41696.97%00.00%00.00%Germany
    42614.04%1773.60%19763.30%00.00%00.00%Unresolved/Unknown
    52103.25%1402.84%12182.04%00.00%00.00%France
    61973.05%1974.00%3450.58%00.00%00.00%Belgium
    71892.92%1272.58%22263.72%00.00%00.00%Great Britain (UK)
    81302.01%761.54%13942.33%00.00%00.00%Russian Federation
    9941.45%320.65%7461.25%00.00%00.00%Saudi Arabia
    10620.96%390.79%6191.03%00.00%00.00%Ukraine
    11400.62%260.53%4760.80%00.00%00.00%Canada
    12260.40%200.41%620.10%00.00%00.00%Ireland
    13220.34%90.18%1660.28%00.00%00.00%Israel
    14200.31%100.20%2300.38%00.00%00.00%Luxembourg
    15190.29%70.14%620.10%00.00%00.00%Argentina
    16180.28%160.33%1240.21%00.00%00.00%Czech Republic
    17170.26%140.28%900.15%00.00%00.00%Sweden
    18150.23%130.26%2300.38%00.00%00.00%Austria
    19150.23%10.02%330.06%00.00%00.00%Australia
    20140.22%70.14%930.16%00.00%00.00%China
    21130.20%130.26%660.11%00.00%00.00%Thailand
    22120.19%60.12%890.15%00.00%00.00%Netherlands
    23110.17%00.00%70.01%00.00%00.00%Mexico
    24100.15%90.18%760.13%00.00%00.00%Hong Kong
    25100.15%60.12%1170.19%00.00%00.00%Moldova
    2690.14%50.10%1010.17%00.00%00.00%Latvia
    2770.11%30.06%480.08%00.00%00.00%Japan
    2870.11%10.02%260.04%00.00%00.00%Korea (South)
    2950.08%40.08%580.10%00.00%00.00%Romania
    3050.08%50.10%140.02%00.00%00.00%Uruguay
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200901.html b/webalizer/usage_200901.html new file mode 100644 index 0000000..33f75d9 --- /dev/null +++ b/webalizer/usage_200901.html @@ -0,0 +1,3086 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - January 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: January 2009
    +Generated 01-Feb-2009 06:29 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for January 2009
    Total Hits7215
    Total Files5447
    Total Pages1882
    Total Visits985
    Total kB Files41225
    Total kB In0
    Total kB Out0
    Total Unique Sites459
    Total Unique URLs147
    Total Unique Referrers86
    Total Unique User Agents66
    .Avg Max
    Hits per Hour9270
    Hits per Day232690
    Files per Day175630
    Pages per Day60267
    Visits per Day3172
    kB Files per Day13305661
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5447
    Code 302 - Found387
    Code 304 - Not Modified85
    Code 400 - Bad Request37
    Code 401 - Unauthorized36
    Code 403 - Forbidden2
    Code 404 - Not Found1176
    Code 405 - Method Not Allowed6
    Code 406 - Not Acceptable32
    Code 500 - Internal Server Error7
    +

    + +Daily usage for January 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for January 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11572.18%1132.07%462.44%303.05%316.75%7781.89%00.00%00.00%
    26909.56%63011.57%281.49%252.54%286.10%422410.25%00.00%00.00%
    33114.31%2404.41%1387.33%494.97%429.15%13463.26%00.00%00.00%
    45447.54%4878.94%814.30%464.67%367.84%30717.45%00.00%00.00%
    51231.70%901.65%201.06%161.62%255.45%5191.26%00.00%00.00%
    65507.62%4658.54%1055.58%424.26%459.80%21625.24%00.00%00.00%
    71401.94%1132.07%442.34%373.76%347.41%6311.53%00.00%00.00%
    85257.28%2885.29%26714.19%727.31%7115.47%24505.94%00.00%00.00%
    93855.34%2214.06%1618.55%616.19%6013.07%17114.15%00.00%00.00%
    103594.98%2454.50%934.94%484.87%449.59%17544.26%00.00%00.00%
    115087.04%4167.64%975.15%454.57%367.84%566113.73%00.00%00.00%
    123534.89%2414.42%653.45%444.47%388.28%19184.65%00.00%00.00%
    132633.65%2053.76%422.23%373.76%357.63%14293.47%00.00%00.00%
    142693.73%2123.89%693.67%414.16%367.84%17684.29%00.00%00.00%
    151542.13%1142.09%412.18%292.94%347.41%9422.29%00.00%00.00%
    161882.61%1382.53%683.61%373.76%439.37%15253.70%00.00%00.00%
    171502.08%1122.06%603.19%292.94%316.75%9232.24%00.00%00.00%
    181522.11%971.78%583.08%353.55%357.63%7551.83%00.00%00.00%
    191872.59%1162.13%613.24%414.16%306.54%6881.67%00.00%00.00%
    20921.28%571.05%251.33%222.23%316.75%4521.10%00.00%00.00%
    211361.88%1031.89%422.23%121.22%275.88%12202.96%00.00%00.00%
    2200.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2300.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2400.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    2500.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    261632.26%891.63%261.38%232.34%235.01%5891.43%00.00%00.00%
    274606.38%4187.67%884.68%434.37%316.75%25336.14%00.00%00.00%
    281151.59%821.51%472.50%343.45%306.54%8452.05%00.00%00.00%
    29710.98%300.55%271.43%252.54%255.45%2570.62%00.00%00.00%
    30901.25%621.14%442.34%323.25%255.45%5911.43%00.00%00.00%
    31801.11%631.16%392.07%303.05%306.54%4831.17%00.00%00.00%
    +

    + +Hourly usage for January 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for January 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    062162.99%51773.25%1462.44%4413693.32%000.00%000.00%
    172403.33%61923.52%2844.46%4313323.23%000.00%000.00%
    2123905.41%93045.58%41477.81%7723785.77%000.00%000.00%
    372353.26%51773.25%2774.09%4012342.99%000.00%000.00%
    492964.10%62053.76%2713.77%5416714.05%000.00%000.00%
    561922.66%51572.88%1583.08%329852.39%000.00%000.00%
    6103164.38%62093.84%51558.24%4614113.42%000.00%000.00%
    7103334.62%72324.26%41276.75%4714583.54%000.00%000.00%
    892823.91%62153.95%2874.62%5216003.88%000.00%000.00%
    982593.59%51683.08%1573.03%4012543.04%000.00%000.00%
    10154876.75%134257.80%1382.02%9629797.23%000.00%000.00%
    1192873.98%61923.52%31015.37%4313473.27%000.00%000.00%
    1292823.91%41472.70%2774.09%3510802.62%000.00%000.00%
    1392883.99%72364.33%1552.92%5617374.21%000.00%000.00%
    1493044.21%82544.66%1472.50%12037309.05%000.00%000.00%
    15123845.32%92975.45%31125.95%10131337.60%000.00%000.00%
    1672183.02%51592.92%1522.76%4915173.68%000.00%000.00%
    1762122.94%51632.99%1603.19%3410412.53%000.00%000.00%
    18154786.63%123746.87%3985.21%5818034.37%000.00%000.00%
    1972443.38%61983.64%2703.72%4915263.70%000.00%000.00%
    20165237.25%144568.37%1462.44%9629837.24%000.00%000.00%
    2182663.69%61883.45%2844.46%4714703.57%000.00%000.00%
    2272343.24%41542.83%1522.76%3510722.60%000.00%000.00%
    2382493.45%51683.08%2814.30%3611142.70%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 147 Total URLs
    #HitskB FkB InkB OutURL
    1273437.89%2301355.82%00.00%00.00%/phpBB2/viewtopic.php
    24295.95%732417.77%00.00%00.00%/phpBB2/
    34105.68%5021.22%00.00%00.00%/News/permalink.php
    43945.46%9732.36%00.00%00.00%/
    51942.69%14943.63%00.00%00.00%/phpBB2/search.php
    61772.45%4721.14%00.00%00.00%/News/
    7801.11%00.00%00.00%00.00%*
    8761.05%70.02%00.00%00.00%/styles/main.css
    9741.03%670.16%00.00%00.00%/styles/header.css
    10680.94%5021.22%00.00%00.00%/phpBB2/profile.php
    11640.89%950.23%00.00%00.00%/Pictures/
    12590.82%1930.47%00.00%00.00%/Linux/
    13570.79%2000.49%00.00%00.00%/About/
    14540.75%1110.27%00.00%00.00%/Surfing/
    15390.54%13463.26%00.00%00.00%/phpBB2/viewforum.php
    16380.53%5451.32%00.00%00.00%/phpBB2/memberlist.php
    17340.47%1520.37%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    18330.46%11352.75%00.00%00.00%/phpBB2/faq.php
    19300.42%3270.79%00.00%00.00%/phpBB2/groupcp.php
    20290.40%2300.56%00.00%00.00%/Pics/logo-100.png
    21270.37%320.08%00.00%00.00%/favicon.ico
    22250.35%890.22%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    23210.29%1530.37%00.00%00.00%/phpBB2/login.php
    24190.26%1690.41%00.00%00.00%/phpBB2/viewonline.php
    25180.25%470.11%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    26180.25%70.02%00.00%00.00%/styles/newspage.css
    27160.22%500.12%00.00%00.00%/phppages/rss.php
    28140.19%180.04%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    29130.18%190.05%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    30120.17%240.06%00.00%00.00%/Linux/logitech.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 147 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1273437.89%2301355.82%00.00%00.00%/phpBB2/viewtopic.php
    24295.95%732417.77%00.00%00.00%/phpBB2/
    31942.69%14943.63%00.00%00.00%/phpBB2/search.php
    4390.54%13463.26%00.00%00.00%/phpBB2/viewforum.php
    5330.46%11352.75%00.00%00.00%/phpBB2/faq.php
    63945.46%9732.36%00.00%00.00%/
    7380.53%5451.32%00.00%00.00%/phpBB2/memberlist.php
    8680.94%5021.22%00.00%00.00%/phpBB2/profile.php
    94105.68%5021.22%00.00%00.00%/News/permalink.php
    101772.45%4721.14%00.00%00.00%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 19 Total Entry Pages
    #HitsVisitsURL
    13945.46%35440.97%/
    24295.95%25729.75%/phpBB2/
    31772.45%11913.77%/News/
    4640.89%303.47%/Pictures/
    5590.82%192.20%/Linux/
    6801.11%171.97%*
    7570.79%171.97%/About/
    8540.75%131.50%/Surfing/
    9100.14%91.04%/Pictures/20021229_Serial_Console/
    10120.17%70.81%http://frederik.gotdns.org:1976/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 11 Total Exit Pages
    #HitsVisitsURL
    13945.46%20458.79%/
    24295.95%5616.14%/phpBB2/
    31772.45%4914.12%/News/
    4590.82%92.59%/Linux/
    5640.89%72.02%/Pictures/
    6570.79%61.73%/About/
    770.10%51.44%/Pictures/200505_Amsterdam/
    8540.75%51.44%/Surfing/
    9100.14%30.86%/Pictures/20021229_Serial_Console/
    10801.11%20.58%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 459 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    14766.60%4548.33%26846.51%00.00%00.00%151.52%66.249.71.225
    24706.51%4608.45%27216.60%00.00%00.00%161.62%66.249.71.226
    34546.29%4347.97%25156.10%00.00%00.00%222.23%66.249.71.227
    44185.79%4067.45%25766.25%00.00%00.00%90.91%66.249.71.33
    54055.61%3857.07%24826.02%00.00%00.00%90.91%66.249.71.35
    63885.38%3756.88%23735.76%00.00%00.00%90.91%66.249.71.34
    72543.52%2534.64%17644.28%00.00%00.00%00.00%80.202.87.60
    81962.72%1963.60%5771.40%00.00%00.00%19619.90%119.63.193.55
    91902.63%1673.07%448210.87%00.00%00.00%121.22%65.55.213.78
    101902.63%1773.25%4141.00%00.00%00.00%10.10%67.68.7.42
    111592.20%1092.00%3900.95%00.00%00.00%121.22%208.115.111.246
    12891.23%781.43%1180.29%00.00%00.00%222.23%38.99.13.121
    13791.09%691.27%930.22%00.00%00.00%202.03%38.99.44.104
    14751.04%611.12%990.24%00.00%00.00%202.03%38.99.44.105
    15731.01%731.34%00.00%00.00%00.00%101.02%192.168.1.2
    16680.94%280.51%550.13%00.00%00.00%161.62%74.6.8.102
    17660.91%591.08%2670.65%00.00%00.00%70.71%66.249.71.115
    18640.89%571.05%3680.89%00.00%00.00%50.51%66.249.71.88
    19620.86%510.94%6751.64%00.00%00.00%20.20%78.26.179.68
    20590.82%561.03%3620.88%00.00%00.00%10.10%66.249.71.87
    21540.75%480.88%2850.69%00.00%00.00%40.41%66.249.71.86
    22540.75%340.62%6641.61%00.00%00.00%202.03%78.110.175.13
    23510.71%460.84%3780.92%00.00%00.00%40.41%77.242.20.18
    24480.67%450.83%8061.95%00.00%00.00%30.30%138.4.9.196
    25450.62%50.09%1390.34%00.00%00.00%00.00%194.8.74.53
    26450.62%50.09%1390.34%00.00%00.00%00.00%78.110.175.31
    27440.61%370.68%1910.46%00.00%00.00%50.51%66.249.71.116
    28400.55%100.18%4791.16%00.00%00.00%50.51%212.95.54.175
    29360.50%320.59%1880.46%00.00%00.00%20.20%66.249.71.117
    30360.50%140.26%230.06%00.00%00.00%80.81%72.30.79.57
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 459 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    11902.63%1673.07%448210.87%00.00%00.00%121.22%65.55.213.78
    24706.51%4608.45%27216.60%00.00%00.00%161.62%66.249.71.226
    34766.60%4548.33%26846.51%00.00%00.00%151.52%66.249.71.225
    44185.79%4067.45%25766.25%00.00%00.00%90.91%66.249.71.33
    54546.29%4347.97%25156.10%00.00%00.00%222.23%66.249.71.227
    64055.61%3857.07%24826.02%00.00%00.00%90.91%66.249.71.35
    73885.38%3756.88%23735.76%00.00%00.00%90.91%66.249.71.34
    82543.52%2534.64%17644.28%00.00%00.00%00.00%80.202.87.60
    9480.67%450.83%8061.95%00.00%00.00%30.30%138.4.9.196
    10620.86%510.94%6751.64%00.00%00.00%20.20%78.26.179.68
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 86 Total Referrers
    #HitsReferrer
    1540.75%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    2480.67%vanrenterghem.biz/
    3360.50%vanrenterghem.biz/phpBB2/viewtopic.php
    4320.44%vanrenterghem.biz/viewforum.php
    5300.42%vanrenterghem.biz/phpBB2/
    6180.25%vanrenterghem.biz/News/permalink.php
    7180.25%vanrenterghem.biz/styles/header.css
    8120.17%www.vanrenterghem.biz/phpBB2/index.php/profile.php
    9110.15%vanrenterghem.biz/phpBB2/index.php
    10110.15%www.vanrenterghem.biz/
    11100.14%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    12100.14%www.vanrenterghem.biz/Linux/index.shtml
    13100.14%www.vanrenterghem.biz/phpBB2/index.php
    1490.12%vanrenterghem.biz/News/index.php
    1590.12%vanrenterghem.biz/Pictures/index.shtml
    1690.12%www.keywordspy.com/keyword-research/vanrenterghem.biz
    1790.12%www.vanrenterghem.biz/News/
    1890.12%www.vanrenterghem.biz/News/index.php
    1970.10%kauai.vanrenterghem.biz/phpBB2/index.php
    2070.10%vanrenterghem.biz/phpBB2/profile.php
    2160.08%kauai.vanrenterghem.biz/phpBB2/profile.php
    2260.08%search.live.com/results.aspx
    2360.08%vanrenterghem.biz/phpBB2/login.php
    2460.08%www.google.co.uk/search
    2540.06%kauai.vanrenterghem.biz/viewforum.php
    2640.06%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    2740.06%vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2840.06%vanrenterghem.biz/Linux/iPAQ_and_obexserver.shtml
    2940.06%vanrenterghem.biz/profile.php
    3040.06%whois.domaintools.com/vanrenterghem.biz
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Search Strings
    #HitsSearch String
    11100.00%vanrenterghem
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 66 Total User Agents
    #HitsUser Agent
    1293940.73%Googlebot/2.1
    2118816.47%MSIE 6.0
    394313.07%Mozilla/5.0
    42543.52%MJ12bot/v1.2
    52193.04%Baiduspider+(+http://www.baidu.com/search/spider_jp.html)
    61902.63%msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
    71592.20%DotBot/1.1
    81582.19%Yahoo! Slurp
    91351.87%Yahoo! Slurp/3.0
    101121.55%MSIE 7.0
    11961.33%MSIE 5.5
    12921.28%Opera 8.0
    13710.98%Googlebot-Mobile/2.1
    14680.94%Apache/2.2.11 (Debian) PHP/5.2.6-0.1+b1 with Suhosin-Patch (internal dummy connection)
    15440.61%Googlebot-Image/1.0
    +

    + +Usage by Location for January 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 54 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1442761.36%379269.62%2543861.71%00.00%00.00%United States
    279310.99%4317.91%37539.10%00.00%00.00%Unresolved/Unknown
    32603.60%2534.64%17714.30%00.00%00.00%Norway
    42563.55%1863.41%5801.41%00.00%00.00%Canada
    51892.62%881.62%14383.49%00.00%00.00%Great Britain (UK)
    61632.26%871.60%4671.13%00.00%00.00%France
    71401.94%861.58%8432.04%00.00%00.00%Germany
    81231.70%701.29%11292.74%00.00%00.00%Ukraine
    9851.18%340.62%6781.64%00.00%00.00%Russian Federation
    10781.08%240.44%3780.92%00.00%00.00%China
    11660.91%460.84%6661.62%00.00%00.00%Israel
    12660.91%190.35%3130.76%00.00%00.00%Netherlands
    13590.82%470.86%1200.29%00.00%00.00%Belgium
    14510.71%460.84%3780.92%00.00%00.00%Albania
    15480.67%450.83%8061.95%00.00%00.00%Spain
    16480.67%370.68%6931.68%00.00%00.00%Poland
    17310.43%230.42%1040.25%00.00%00.00%Sweden
    18290.40%90.17%1010.25%00.00%00.00%Brazil
    19290.40%250.46%3740.91%00.00%00.00%Switzerland
    20290.40%240.44%840.20%00.00%00.00%Ireland
    21230.32%150.28%1330.32%00.00%00.00%Italy
    22180.25%00.00%190.05%00.00%00.00%Singapore
    23180.25%60.11%930.23%00.00%00.00%Turkey
    24160.22%50.09%1060.26%00.00%00.00%Latvia
    25160.22%110.20%1290.31%00.00%00.00%Taiwan
    26150.21%00.00%100.02%00.00%00.00%Indonesia
    27150.21%00.00%100.02%00.00%00.00%Philippines
    28140.19%20.04%400.10%00.00%00.00%India
    29130.18%100.18%950.23%00.00%00.00%Czech Republic
    3080.11%40.07%800.19%00.00%00.00%Luxembourg
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200902.html b/webalizer/usage_200902.html new file mode 100644 index 0000000..92dfc4d --- /dev/null +++ b/webalizer/usage_200902.html @@ -0,0 +1,3047 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - February 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: February 2009
    +Generated 01-Mar-2009 06:29 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Users] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for February 2009
    Total Hits4818
    Total Files3444
    Total Pages1260
    Total Visits787
    Total kB Files33508
    Total kB In0
    Total kB Out0
    Total Unique Sites410
    Total Unique URLs323
    Total Unique Referrers100
    Total Unique Usernames1
    Total Unique User Agents79
    .Avg Max
    Hits per Hour7310
    Hits per Day172748
    Files per Day123667
    Pages per Day4590
    Visits per Day2852
    kB Files per Day11977970
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK3444
    Code 302 - Found338
    Code 304 - Not Modified84
    Code 400 - Bad Request21
    Code 401 - Unauthorized25
    Code 403 - Forbidden1
    Code 404 - Not Found905
    +

    + +Daily usage for February 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for February 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    11903.94%1203.48%907.14%526.61%409.76%8372.50%00.00%00.00%
    21473.05%732.12%503.97%324.07%276.59%5811.74%00.00%00.00%
    31232.55%782.26%403.17%334.19%327.80%6291.88%00.00%00.00%
    41092.26%551.60%352.78%273.43%225.37%4121.23%00.00%00.00%
    51322.74%732.12%372.94%293.68%317.56%6191.85%00.00%00.00%
    61322.74%501.45%332.62%253.18%245.85%4771.42%00.00%00.00%
    73126.48%2858.28%675.32%364.57%348.29%797023.79%00.00%00.00%
    81903.94%1303.77%786.19%384.83%256.10%8212.45%00.00%00.00%
    91944.03%892.58%564.44%364.57%317.56%8282.47%00.00%00.00%
    101954.05%1323.83%453.57%283.56%338.05%346310.33%00.00%00.00%
    11821.70%692.00%181.43%162.03%133.17%4401.31%00.00%00.00%
    121062.20%381.10%272.14%212.67%194.63%3090.92%00.00%00.00%
    131172.43%712.06%524.13%192.41%174.15%7262.17%00.00%00.00%
    14871.81%411.19%322.54%182.29%174.15%5101.52%00.00%00.00%
    1500.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    16771.60%521.51%332.62%182.29%153.66%4861.45%00.00%00.00%
    17961.99%551.60%342.70%253.18%225.37%3110.93%00.00%00.00%
    18961.99%692.00%282.22%222.80%194.63%3210.96%00.00%00.00%
    191232.55%742.15%342.70%232.92%215.12%6561.96%00.00%00.00%
    201312.72%922.67%423.33%344.32%307.32%6461.93%00.00%00.00%
    21551.14%421.22%302.38%172.16%133.17%6381.90%00.00%00.00%
    221523.15%1143.31%776.11%324.07%307.32%8492.53%00.00%00.00%
    231653.42%992.87%645.08%415.21%379.02%8472.53%00.00%00.00%
    241693.51%1043.02%413.25%243.05%215.12%5651.69%00.00%00.00%
    253136.50%2597.52%544.29%334.19%266.34%22236.63%00.00%00.00%
    261583.28%1213.51%635.00%435.46%317.56%8552.55%00.00%00.00%
    274198.70%39211.38%383.02%253.18%245.85%22156.61%00.00%00.00%
    2874815.53%66719.37%624.92%415.21%338.05%427312.75%00.00%00.00%
    +

    + +Hourly usage for February 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for February 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    061693.51%31083.14%2594.68%349502.83%000.00%000.00%
    151463.03%3842.44%1403.17%287862.34%000.00%000.00%
    231092.26%2712.06%1413.25%184951.48%000.00%000.00%
    361944.03%31053.05%2766.03%11833139.89%000.00%000.00%
    461843.82%31113.22%2594.68%3810583.16%000.00%000.00%
    572184.52%41123.25%2584.60%3810713.20%000.00%000.00%
    651453.01%3992.87%2564.44%164541.35%000.00%000.00%
    741222.53%31022.96%1514.05%164511.35%000.00%000.00%
    831052.18%2722.09%1342.70%277432.22%000.00%000.00%
    9102986.19%92778.04%1403.17%149417112.45%000.00%000.00%
    10102996.21%82376.88%1433.41%7721646.46%000.00%000.00%
    111954911.39%1749014.23%2806.35%11030699.16%000.00%000.00%
    121749210.21%1441812.14%1433.41%248693620.70%000.00%000.00%
    1341302.70%2722.09%1282.22%195301.58%000.00%000.00%
    1482264.69%51454.21%2655.16%5415024.48%000.00%000.00%
    1561763.65%41273.69%2685.40%246702.00%000.00%000.00%
    1682505.19%51534.44%2665.24%267282.17%000.00%000.00%
    1751463.03%3942.73%2715.63%287892.35%000.00%000.00%
    1841162.41%2702.03%1362.86%174861.45%000.00%000.00%
    1941382.86%3982.85%2624.92%205471.63%000.00%000.00%
    2051543.20%3892.58%1342.70%195191.55%000.00%000.00%
    2141322.74%2631.83%1312.46%185091.52%000.00%000.00%
    2241352.80%31012.93%1524.13%318722.60%000.00%000.00%
    2361853.84%51464.24%2675.32%256972.08%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 323 Total URLs
    #HitskB FkB InkB OutURL
    1123825.70%909027.13%00.00%00.00%/phpBB2/viewtopic.php
    23868.01%9192.74%00.00%00.00%/
    33316.87%569416.99%00.00%00.00%/phpBB2/
    41352.80%8242.46%00.00%00.00%/phpBB2/search.php
    5982.03%870.26%00.00%00.00%/styles/header.css
    6972.01%90.03%00.00%00.00%/styles/main.css
    7911.89%2540.76%00.00%00.00%/News/
    8781.62%860.26%00.00%00.00%/News/permalink.php
    9591.22%1640.49%00.00%00.00%/Linux/
    10581.20%790.23%00.00%00.00%/Pictures/
    11561.16%4681.40%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    12481.00%1390.41%00.00%00.00%/About/
    13430.89%3801.13%00.00%00.00%/Pics/logo-100.png
    14410.85%720.21%00.00%00.00%/Surfing/
    15410.85%560.17%00.00%00.00%/favicon.ico
    16340.71%00.00%00.00%00.00%*
    17250.52%1190.36%00.00%00.00%/phpBB2/profile.php
    18190.39%120.04%00.00%00.00%/styles/newspage.css
    19180.37%3901.16%00.00%00.00%/phpBB2/viewforum.php
    20170.35%2450.73%00.00%00.00%/phpBB2/memberlist.php
    21160.33%460.14%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    22160.33%1660.50%00.00%00.00%/phpBB2/groupcp.php
    23150.31%5861.75%00.00%00.00%/phpBB2/faq.php
    24140.29%220.07%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    25140.29%610.18%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    26130.27%380.11%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    27130.27%170.05%00.00%00.00%/Pictures/20021229_Serial_Console/
    28130.27%1080.32%00.00%00.00%/phpBB2/login.php
    29120.25%180.05%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    30110.23%430.13%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 323 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1123825.70%909027.13%00.00%00.00%/phpBB2/viewtopic.php
    23316.87%569416.99%00.00%00.00%/phpBB2/
    330.06%394511.77%00.00%00.00%/Pictures/20060429_chello_extreme.png
    420.04%20846.22%00.00%00.00%/Pictures/shot_09-03-03_224036.png
    53868.01%9192.74%00.00%00.00%/
    61352.80%8242.46%00.00%00.00%/phpBB2/search.php
    7150.31%5861.75%00.00%00.00%/phpBB2/faq.php
    8561.16%4681.40%00.00%00.00%http://frederik.gotdns.org:1976/phpBB2/
    9180.37%3901.16%00.00%00.00%/phpBB2/viewforum.php
    10430.89%3801.13%00.00%00.00%/Pics/logo-100.png
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 18 Total Entry Pages
    #HitsVisitsURL
    13868.01%35047.11%/
    23316.87%19426.11%/phpBB2/
    3911.89%496.59%/News/
    4561.16%354.71%http://frederik.gotdns.org:1976/phpBB2/
    5591.22%283.77%/Linux/
    6581.20%202.69%/Pictures/
    7481.00%192.56%/About/
    8410.85%141.88%/Surfing/
    9130.27%101.35%/Pictures/20021229_Serial_Console/
    10340.71%70.94%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 12 Total Exit Pages
    #HitsVisitsURL
    13868.01%15658.21%/
    23316.87%4817.91%/phpBB2/
    3911.89%165.97%/News/
    4591.22%124.48%/Linux/
    5581.20%114.10%/Pictures/
    6410.85%93.36%/Surfing/
    7481.00%62.24%/About/
    8130.27%31.12%/Pictures/20021229_Serial_Console/
    920.04%31.12%/secured/Pictures/
    10340.71%20.75%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 410 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1129626.90%116933.94%722021.55%00.00%00.00%516.48%66.249.67.82
    23036.29%2998.68%18255.45%00.00%00.00%10.13%205.209.170.2
    31633.38%1634.73%4791.43%00.00%00.00%16320.71%119.63.193.55
    41372.84%1353.92%15444.61%00.00%00.00%10.13%62.132.204.212
    51212.51%1193.46%31499.40%00.00%00.00%40.51%83.101.44.34
    6982.03%491.42%1230.37%00.00%00.00%151.91%67.195.37.179
    7701.45%50.15%1690.51%00.00%00.00%40.51%201.229.208.2
    8661.37%60.17%1870.56%00.00%00.00%00.00%194.8.75.239
    9651.35%50.15%1590.48%00.00%00.00%40.51%201.229.208.3
    10561.16%541.57%685920.47%00.00%00.00%30.38%64.62.142.170
    11541.12%20.06%360.11%00.00%00.00%10.13%219.141.231.161
    12541.12%270.78%610.18%00.00%00.00%212.67%72.30.161.235
    13531.10%381.10%680.20%00.00%00.00%111.40%38.99.44.104
    14511.06%411.19%6241.86%00.00%00.00%20.25%174.37.15.66
    15511.06%351.02%570.17%00.00%00.00%101.27%38.99.44.105
    16440.91%431.25%1390.42%00.00%00.00%10.13%134.58.179.36
    17420.87%320.93%5711.70%00.00%00.00%20.25%94.76.204.194
    18390.81%351.02%5611.67%00.00%00.00%20.25%89.149.241.188
    19380.79%210.61%410.12%00.00%00.00%81.02%67.195.37.156
    20350.73%340.99%1090.33%00.00%00.00%10.13%210.176.168.217
    21350.73%290.84%2910.87%00.00%00.00%10.13%38.105.83.10
    22340.71%290.84%840.25%00.00%00.00%60.76%91.205.124.13
    23330.68%330.96%00.00%00.00%00.00%60.76%192.168.1.2
    24310.64%230.67%470.14%00.00%00.00%70.89%67.195.37.110
    25300.62%240.70%750.22%00.00%00.00%60.76%78.137.163.133
    26290.60%250.73%3711.11%00.00%00.00%20.25%217.114.210.189
    27270.56%180.52%300.09%00.00%00.00%91.14%38.108.180.163
    28260.54%260.75%300.09%00.00%00.00%00.00%81.241.144.160
    29260.54%250.73%1200.36%00.00%00.00%10.13%81.242.248.197
    30260.54%260.75%300.09%00.00%00.00%00.00%84.198.106.26
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 410 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1129626.90%116933.94%722021.55%00.00%00.00%516.48%66.249.67.82
    2561.16%541.57%685920.47%00.00%00.00%30.38%64.62.142.170
    31212.51%1193.46%31499.40%00.00%00.00%40.51%83.101.44.34
    43036.29%2998.68%18255.45%00.00%00.00%10.13%205.209.170.2
    51372.84%1353.92%15444.61%00.00%00.00%10.13%62.132.204.212
    6511.06%411.19%6241.86%00.00%00.00%20.25%174.37.15.66
    7420.87%320.93%5711.70%00.00%00.00%20.25%94.76.204.194
    8390.81%351.02%5611.67%00.00%00.00%20.25%89.149.241.188
    91633.38%1634.73%4791.43%00.00%00.00%16320.71%119.63.193.55
    10290.60%250.73%3711.11%00.00%00.00%20.25%217.114.210.189
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 100 Total Referrers
    #HitsReferrer
    11272.64%www.vanrenterghem.biz/secured/Pictures/200306_Vakantie_Barcelona/index.shtml
    2931.93%vanrenterghem.biz/viewforum.php
    3881.83%vanrenterghem.biz/secured/Pictures/20070217_Parijs/index.shtml
    4871.81%vanrenterghem.biz/
    5851.76%vanrenterghem.biz/phpBB2/viewtopic.php
    6701.45%vanrenterghem.biz/phpBB2/
    7551.14%vanrenterghem.biz/profile.php
    8470.98%vanrenterghem.biz/phpBB2/index.php
    9460.95%kauai.vanrenterghem.biz/phpBB2/index.php
    10290.60%kauai.vanrenterghem.biz/News/index.php
    11290.60%www.vanrenterghem.biz/
    12260.54%vanrenterghem.biz/News/index.php
    13220.46%kauai.vanrenterghem.biz/viewforum.php
    14220.46%vanrenterghem.biz/Linux/index.shtml
    15220.46%vanrenterghem.biz/styles/header.css
    16210.44%vanrenterghem.biz/Pictures/index.shtml
    17180.37%vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    18160.33%www.vanrenterghem.biz/phpBB2/index.php
    19150.31%kauai.vanrenterghem.biz/phpBB2/search.php
    20120.25%kauai.vanrenterghem.biz/profile.php
    21120.25%www.forumseek.net
    22100.21%www.myspacio.us
    2390.19%vanrenterghem.biz/Surfing/index.shtml
    2490.19%vanrenterghem.biz/phpBB2/posting.php
    2590.19%vanrenterghem.biz/secured/Pictures/200605_Malta/
    2680.17%vanrenterghem.biz//vanrenterghem.biz/profile.php
    2780.17%vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2880.17%vanrenterghem.biz/index.php
    2980.17%vanrenterghem.biz/phpBB2/profile.php
    3080.17%vanrenterghem.biz/posting.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Usernames
    #HitsFileskB FkB InkB OutVisitsUsername
    12274.71%2276.59%461113.76%00.00%00.00%20.25%ShowMe
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 79 Total User Agents
    #HitsUser Agent
    1123025.53%Googlebot/2.1
    295119.74%MSIE 6.0
    358812.20%Mozilla/5.0
    43036.29%MJ12bot/v1.2
    52404.98%MSIE 7.0
    61883.90%Baiduspider+(+http://www.baidu.com/search/spider_jp.html)
    71823.78%Yahoo! Slurp/3.0
    81412.93%Yahoo! Slurp
    91202.49%MSIE 5.5
    10701.45%Opera 8.0
    11581.20%Googlebot-M
    12571.18%Morfeus Fucking Scanner
    13501.04%Googlebot-Mobile/2.1
    14360.75%Toata dragostea mea pentru diavola
    15340.71%Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)
    +

    + +Usage by Location for February 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 44 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1260954.15%212161.59%1902056.76%00.00%00.00%United States
    266813.86%40111.64%377711.27%00.00%00.00%Unresolved/Unknown
    33126.48%3018.74%361910.80%00.00%00.00%Belgium
    42916.04%2437.06%31909.52%00.00%00.00%Germany
    51352.80%100.29%3290.98%00.00%00.00%Dominican Republic
    61102.28%180.52%2110.63%00.00%00.00%China
    71072.22%661.92%2160.64%00.00%00.00%France
    8791.64%381.10%6681.99%00.00%00.00%Russian Federation
    9611.27%441.28%2560.76%00.00%00.00%Great Britain (UK)
    10470.98%361.05%1540.46%00.00%00.00%Hong Kong
    11450.93%160.46%3381.01%00.00%00.00%Ukraine
    12430.89%260.75%4031.20%00.00%00.00%Switzerland
    13300.62%240.70%750.22%00.00%00.00%Ireland
    14270.56%160.46%2200.66%00.00%00.00%Netherlands
    15250.52%170.49%1330.40%00.00%00.00%Sweden
    16240.50%00.00%150.05%00.00%00.00%Chile
    17230.48%70.20%700.21%00.00%00.00%Canada
    18230.48%20.06%650.19%00.00%00.00%Slovenia
    19170.35%20.06%340.10%00.00%00.00%Italy
    20170.35%30.09%710.21%00.00%00.00%Taiwan
    21140.29%30.09%500.15%00.00%00.00%Korea (South)
    22140.29%90.26%630.19%00.00%00.00%Saudi Arabia
    23140.29%10.03%330.10%00.00%00.00%Turkey
    24120.25%10.03%330.10%00.00%00.00%Georgia
    25100.21%10.03%300.09%00.00%00.00%Thailand
    2690.19%60.17%1170.35%00.00%00.00%Moldova
    2770.15%60.17%160.05%00.00%00.00%Spain
    2860.12%40.12%620.18%00.00%00.00%Israel
    2950.10%30.09%320.10%00.00%00.00%Japan
    3040.08%20.06%90.03%00.00%00.00%Australia
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200903.html b/webalizer/usage_200903.html new file mode 100644 index 0000000..215d1f7 --- /dev/null +++ b/webalizer/usage_200903.html @@ -0,0 +1,3090 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - March 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: March 2009
    +Generated 01-Apr-2009 06:28 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for March 2009
    Total Hits5764
    Total Files4304
    Total Pages1192
    Total Visits842
    Total kB Files30399
    Total kB In0
    Total kB Out0
    Total Unique Sites473
    Total Unique URLs86
    Total Unique Referrers119
    Total Unique User Agents74
    .Avg Max
    Hits per Hour7302
    Hits per Day185452
    Files per Day138408
    Pages per Day3876
    Visits per Day2744
    kB Files per Day9812973
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK4304
    Code 302 - Found405
    Code 304 - Not Modified215
    Code 400 - Bad Request15
    Code 401 - Unauthorized27
    Code 404 - Not Found770
    Code 405 - Method Not Allowed28
    +

    + +Daily usage for March 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for March 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    12103.64%1252.90%544.53%333.92%377.82%10203.36%00.00%00.00%
    22474.29%2064.79%584.87%313.68%275.71%13874.56%00.00%00.00%
    31492.59%1192.76%272.27%242.85%204.23%6702.20%00.00%00.00%
    42013.49%1553.60%514.28%374.39%439.09%9793.22%00.00%00.00%
    52033.52%1423.30%453.78%323.80%398.25%8402.76%00.00%00.00%
    62163.75%1573.65%373.10%283.33%326.77%13914.58%00.00%00.00%
    71803.12%1222.83%332.77%283.33%306.34%8852.91%00.00%00.00%
    81602.78%1162.70%383.19%252.97%296.13%5881.93%00.00%00.00%
    91452.52%1202.79%302.52%222.61%285.92%10353.41%00.00%00.00%
    101913.31%1583.67%403.36%323.80%245.07%20706.81%00.00%00.00%
    112003.47%1463.39%715.96%404.75%336.98%5691.87%00.00%00.00%
    122273.94%1423.30%635.29%445.23%357.40%10563.47%00.00%00.00%
    131422.46%962.23%544.53%435.11%296.13%4691.54%00.00%00.00%
    142253.90%1282.97%393.27%344.04%306.34%8562.82%00.00%00.00%
    15210.36%180.42%20.17%20.24%51.06%930.31%00.00%00.00%
    1600.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1700.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    1800.00%00.00%00.00%00.00%00.00%00.00%00.00%00.00%
    19871.51%691.60%131.09%80.95%51.06%3411.12%00.00%00.00%
    203255.64%2646.13%473.94%384.51%275.71%14964.92%00.00%00.00%
    213285.69%2525.86%605.03%435.11%275.71%10283.38%00.00%00.00%
    223395.88%2385.53%766.38%394.63%336.98%14434.75%00.00%00.00%
    231352.34%942.18%433.61%313.68%224.65%8342.74%00.00%00.00%
    241722.98%932.16%463.86%313.68%316.55%8682.85%00.00%00.00%
    251322.29%1092.53%443.69%323.80%234.86%5231.72%00.00%00.00%
    261722.98%1333.09%393.27%344.04%245.07%6122.01%00.00%00.00%
    272303.99%1613.74%383.19%273.21%255.29%29739.78%00.00%00.00%
    282123.68%1724.00%201.68%202.38%234.86%9303.06%00.00%00.00%
    292334.04%1944.51%342.85%232.73%265.50%14314.71%00.00%00.00%
    302303.99%1673.88%514.28%313.68%388.03%12864.23%00.00%00.00%
    314527.84%4089.48%393.27%313.68%306.34%27298.98%00.00%00.00%
    +

    + +Hourly usage for March 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for March 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    082564.44%51613.74%1524.36%7924648.11%000.00%000.00%
    1175339.25%1547110.94%2736.12%117361311.89%000.00%000.00%
    261993.45%41383.21%1352.94%309363.08%000.00%000.00%
    372344.06%51673.88%2816.80%3811873.91%000.00%000.00%
    482634.56%61874.34%1403.36%7222177.29%000.00%000.00%
    592965.14%72315.37%1463.86%8225578.41%000.00%000.00%
    672384.13%51703.95%2877.30%288792.89%000.00%000.00%
    761913.31%41453.37%1453.78%319613.16%000.00%000.00%
    851783.09%41373.18%1413.44%237002.30%000.00%000.00%
    941502.60%31102.56%1373.10%226762.22%000.00%000.00%
    1072344.06%51553.60%0242.01%3611223.69%000.00%000.00%
    1182704.68%51804.18%2635.29%3310233.36%000.00%000.00%
    1261863.23%41403.25%1514.28%3410503.45%000.00%000.00%
    1361913.31%41403.25%1484.03%278252.72%000.00%000.00%
    1462133.70%41493.46%1342.85%319673.18%000.00%000.00%
    1551783.09%41433.32%1352.94%257672.52%000.00%000.00%
    1672414.18%62004.65%1352.94%268142.68%000.00%000.00%
    1751833.17%41463.39%1322.68%278502.80%000.00%000.00%
    1862163.75%51563.62%1524.36%226782.23%000.00%000.00%
    19103315.74%82716.30%2665.54%4614214.67%000.00%000.00%
    2061873.24%31222.83%1413.44%309343.07%000.00%000.00%
    2161923.33%41262.93%2635.29%247292.40%000.00%000.00%
    2262143.71%51633.79%1332.77%3611233.70%000.00%000.00%
    23123906.77%92966.88%2786.54%6219076.27%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 86 Total URLs
    #HitskB FkB InkB OutURL
    1177530.79%1378445.34%00.00%00.00%/phpBB2/viewtopic.php
    23946.84%8722.87%00.00%00.00%/
    33055.29%497416.36%00.00%00.00%/phpBB2/
    42314.01%2400.79%00.00%00.00%/News/permalink.php
    51873.24%1270.42%00.00%00.00%/styles/header.css
    61863.23%130.04%00.00%00.00%/styles/main.css
    71292.24%3071.01%00.00%00.00%/News/
    81121.94%8802.90%00.00%00.00%/phpBB2/search.php
    9911.58%12454.09%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    10891.54%1220.40%00.00%00.00%/favicon.ico
    11661.15%00.00%00.00%00.00%*
    12611.06%5301.74%00.00%00.00%/Pics/logo-100.png
    13530.92%3731.23%00.00%00.00%/phpBB2/profile.php
    14470.82%1250.41%00.00%00.00%/Linux/
    15460.80%550.18%00.00%00.00%/Pictures/
    16460.80%750.25%00.00%00.00%/Surfing/
    17450.78%200.07%00.00%00.00%/styles/newspage.css
    18440.76%1230.40%00.00%00.00%/About/
    19410.71%12384.07%00.00%00.00%/phpBB2/viewforum.php
    20340.59%1200.39%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    21240.42%450.15%00.00%00.00%/Linux/logitech.shtml
    22220.38%630.21%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    23220.38%2410.79%00.00%00.00%/phpBB2/memberlist.php
    24210.36%290.10%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    25200.35%250.08%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    26200.35%5691.87%00.00%00.00%/phpBB2/faq.php
    27170.29%1530.50%00.00%00.00%/phpBB2/login.php
    28160.28%380.13%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    29160.28%190.06%00.00%00.00%/Pictures/20021229_Serial_Console/
    30160.28%1370.45%00.00%00.00%/phpBB2/groupcp.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 86 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1177530.79%1378445.34%00.00%00.00%/phpBB2/viewtopic.php
    23055.29%497416.36%00.00%00.00%/phpBB2/
    310.02%13154.33%00.00%00.00%/Pictures/20060429_chello_extreme.png
    4911.58%12454.09%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    5410.71%12384.07%00.00%00.00%/phpBB2/viewforum.php
    61121.94%8802.90%00.00%00.00%/phpBB2/search.php
    73946.84%8722.87%00.00%00.00%/
    8200.35%5691.87%00.00%00.00%/phpBB2/faq.php
    9611.06%5301.74%00.00%00.00%/Pics/logo-100.png
    10530.92%3731.23%00.00%00.00%/phpBB2/profile.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 17 Total Entry Pages
    #HitsVisitsURL
    13946.84%35744.29%/
    23055.29%23429.03%/phpBB2/
    31292.24%8310.30%/News/
    4470.82%253.10%/Linux/
    5460.80%242.98%/Surfing/
    6440.76%182.23%/About/
    7460.80%182.23%/Pictures/
    8661.15%161.99%*
    9160.28%151.86%/Pictures/20021229_Serial_Console/
    10120.21%80.99%http://frederik.gotdns.org:1976/phpBB2/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 12 Total Exit Pages
    #HitsVisitsURL
    13946.84%20462.58%/
    23055.29%3811.66%/phpBB2/
    31292.24%3711.35%/News/
    4460.80%123.68%/Surfing/
    5460.80%92.76%/Pictures/
    6440.76%72.15%/About/
    7470.82%72.15%/Linux/
    8160.28%72.15%/Pictures/20021229_Serial_Console/
    9661.15%20.61%*
    1010.02%10.31%/Pictures/20030201_Sneeuw/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 473 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1147725.62%131630.58%807526.56%00.00%00.00%9411.16%66.249.67.82
    23025.24%2996.95%19856.53%00.00%00.00%10.12%85.225.145.82
    32925.07%2355.46%12964.26%00.00%00.00%50.59%208.115.111.246
    41853.21%1854.30%5211.71%00.00%00.00%18521.97%119.63.193.55
    51322.29%1252.90%8732.87%00.00%00.00%20.24%66.249.67.130
    61121.94%1102.56%7102.33%00.00%00.00%10.12%213.93.147.235
    71021.77%721.67%24798.15%00.00%00.00%10.12%69.84.207.62
    81001.73%491.14%1280.42%00.00%00.00%161.90%67.195.37.179
    9861.49%821.91%4751.56%00.00%00.00%20.24%66.249.73.242
    10851.47%701.63%3481.15%00.00%00.00%60.71%66.249.66.170
    11821.42%290.67%1260.41%00.00%00.00%30.36%72.30.78.223
    12671.16%240.56%460.15%00.00%00.00%111.31%74.6.17.185
    13641.11%641.49%00.00%00.00%00.00%141.66%192.168.1.2
    14581.01%521.21%9193.02%00.00%00.00%40.48%89.149.241.188
    15560.97%190.44%420.14%00.00%00.00%111.31%72.30.142.226
    16480.83%190.44%600.20%00.00%00.00%30.36%74.6.22.165
    17450.78%30.07%1120.37%00.00%00.00%30.36%120.28.64.69
    18370.64%150.35%570.19%00.00%00.00%10.12%72.30.142.89
    19360.62%190.44%300.10%00.00%00.00%101.19%67.195.37.126
    20340.59%290.67%2610.86%00.00%00.00%10.12%38.105.83.13
    21320.56%320.74%860.28%00.00%00.00%60.71%83.101.44.34
    22310.54%310.72%370.12%00.00%00.00%00.00%81.82.174.91
    23300.52%240.56%740.24%00.00%00.00%60.71%78.137.163.133
    24280.49%120.28%180.06%00.00%00.00%50.59%74.6.8.112
    25280.49%280.65%340.11%00.00%00.00%00.00%81.164.33.82
    26270.47%30.07%1430.47%00.00%00.00%00.00%194.8.75.245
    27270.47%270.63%310.10%00.00%00.00%00.00%80.201.51.173
    28270.47%270.63%350.12%00.00%00.00%00.00%81.247.128.119
    29270.47%270.63%310.10%00.00%00.00%00.00%81.83.112.143
    30260.45%00.00%170.05%00.00%00.00%00.00%119.63.193.56
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 473 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1147725.62%131630.58%807526.56%00.00%00.00%9411.16%66.249.67.82
    21021.77%721.67%24798.15%00.00%00.00%10.12%69.84.207.62
    33025.24%2996.95%19856.53%00.00%00.00%10.12%85.225.145.82
    42925.07%2355.46%12964.26%00.00%00.00%50.59%208.115.111.246
    5581.01%521.21%9193.02%00.00%00.00%40.48%89.149.241.188
    61322.29%1252.90%8732.87%00.00%00.00%20.24%66.249.67.130
    71121.94%1102.56%7102.33%00.00%00.00%10.12%213.93.147.235
    81853.21%1854.30%5211.71%00.00%00.00%18521.97%119.63.193.55
    9861.49%821.91%4751.56%00.00%00.00%20.24%66.249.73.242
    10851.47%701.63%3481.15%00.00%00.00%60.71%66.249.66.170
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 119 Total Referrers
    #HitsReferrer
    12043.54%vanrenterghem.biz/phpBB2/viewtopic.php
    21522.64%vanrenterghem.biz/viewforum.php
    31282.22%vanrenterghem.biz/
    41152.00%vanrenterghem.biz/phpBB2/index.php
    5841.46%vanrenterghem.biz/profile.php
    6781.35%vanrenterghem.biz/phpBB2/
    7671.16%vanrenterghem.biz/News/index.php
    8641.11%www.stumbleupon.com/refer.php
    9360.62%kauai.vanrenterghem.biz/phpBB2/index.php
    10360.62%vanrenterghem.biz/styles/header.css
    11340.59%kauai.vanrenterghem.biz/News/index.php
    12320.56%kauai.vanrenterghem.biz/News/permalink.php
    13300.52%kauai.vanrenterghem.biz/viewforum.php
    14280.49%vanrenterghem.biz/News/permalink.php
    15270.47%vanrenterghem.biz//vanrenterghem.biz/viewforum.php
    16210.36%vanrenterghem.biz/index.shtml
    17180.31%vanrenterghem.biz//vanrenterghem.biz/profile.php
    18170.29%vanrenterghem.biz/Pictures/index.shtml
    19160.28%vanrenterghem.biz/phpBB2/profile.php
    20160.28%vanrenterghem.biz/posting.php
    21140.24%www.google.be/search
    22140.24%www.google.com/search
    23130.23%kauai.vanrenterghem.biz/phpBB2/indeforum.php
    24130.23%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    25130.23%vanrenterghem.biz/Pictures/20021229_Serial_Console/index.shtml
    26120.21%vanrenterghem.biz/Surfing/index.shtml
    27120.21%www.vanrenterghem.biz/
    28120.21%www.vanrenterghem.biz/phpBB2/index.php
    29110.19%vanrenterghem.biz/index.php
    30100.17%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Search Strings
    #HitsSearch String
    1350.00%http://better.gotdns.org
    2233.33%van renterghem
    3116.67%mr. zogs
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 74 Total User Agents
    #HitsUser Agent
    1164628.56%Googlebot/2.1
    268011.80%MSIE 6.0
    35699.87%Mozilla/5.0
    44988.64%Yahoo! Slurp/3.0
    54407.63%MJ12bot/v1.2
    63295.71%MSIE 7.0
    72925.07%DotBot/1.1
    81502.60%Baiduspider+(+http://www.baidu.jp/spider/)
    91302.26%Yahoo! Slurp
    10761.32%Baiduspider+(+http://help.baidu.jp/system/05.html)
    11741.28%SimilarPages/Nutch-1.0-dev (SimilarPages Nutch Crawler; http://www.similarpages.com; info at similarpages dot com)
    12641.11%Apache/2.2.11 (Debian) PHP/5.2.6-3 with Suhosin-Patch (internal dummy connection)
    13591.02%Googlebot-Mobile/2.1
    14550.95%Googlebot-M
    15530.92%MSIE 5.5
    +

    + +Usage by Location for March 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 55 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1333957.93%253958.99%1746957.46%00.00%00.00%United States
    23165.48%3117.23%20406.71%00.00%00.00%Sweden
    32955.12%2956.85%5311.75%00.00%00.00%Belgium
    42594.49%2165.02%7082.33%00.00%00.00%Japan
    51753.04%992.30%12704.18%00.00%00.00%Great Britain (UK)
    61662.88%1012.35%15014.94%00.00%00.00%Russian Federation
    71552.69%872.02%2140.70%00.00%00.00%France
    81392.41%972.25%15345.05%00.00%00.00%Germany
    91382.39%1363.16%7402.43%00.00%00.00%Netherlands
    10951.65%451.05%6262.06%00.00%00.00%Ukraine
    11791.37%270.63%2710.89%00.00%00.00%China
    12641.11%641.49%00.00%00.00%00.00%Unresolved/Unknown
    13581.01%360.84%2370.78%00.00%00.00%Canada
    14460.80%270.63%3651.20%00.00%00.00%Switzerland
    15450.78%30.07%1120.37%00.00%00.00%Philippines
    16300.52%240.56%740.24%00.00%00.00%Ireland
    17290.50%280.65%2130.70%00.00%00.00%Austria
    18270.47%80.19%1540.51%00.00%00.00%Moldova
    19250.43%50.12%2550.84%00.00%00.00%Chile
    20240.42%180.42%3291.08%00.00%00.00%Israel
    21240.42%70.16%930.31%00.00%00.00%Poland
    22200.35%190.44%1060.35%00.00%00.00%Thailand
    23180.31%60.14%2130.70%00.00%00.00%Korea (South)
    24180.31%90.21%2220.73%00.00%00.00%Latvia
    25180.31%20.05%490.16%00.00%00.00%Pakistan
    26180.31%30.07%760.25%00.00%00.00%Romania
    27170.29%170.39%490.16%00.00%00.00%Slovak Republic
    28150.26%140.33%2140.71%00.00%00.00%Nigeria
    29140.24%70.16%1450.48%00.00%00.00%Belarus
    30140.24%10.02%360.12%00.00%00.00%Turkey
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200904.html b/webalizer/usage_200904.html new file mode 100644 index 0000000..6a71058 --- /dev/null +++ b/webalizer/usage_200904.html @@ -0,0 +1,2613 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - April 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: April 2009
    +Generated 09-May-2009 07:58 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for April 2009
    Total Hits859
    Total Files694
    Total Pages714
    Total Visits412
    Total kB Files3388
    Total kB In0
    Total kB Out0
    Total Unique Sites142
    Total Unique URLs36
    Total Unique Referrers44
    Total Unique User Agents86
    .Avg Max
    Hits per Hour744
    Hits per Day171200
    Files per Day138174
    Pages per Day142186
    Visits per Day82106
    kB Files per Day6782589
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK694
    Code 304 - Not Modified4
    Code 400 - Bad Request4
    Code 401 - Unauthorized1
    Code 403 - Forbidden4
    Code 404 - Not Found152
    +

    + +Daily usage for April 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for April 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    2613415.60%10214.70%10714.99%6114.81%2316.20%1664.90%00.00%00.00%
    2714917.35%10214.70%11215.69%5413.11%4430.99%1664.89%00.00%00.00%
    2817720.61%14621.04%14119.75%9523.06%3423.94%258976.43%00.00%00.00%
    2920023.28%17425.07%18626.05%10625.73%4733.10%2326.84%00.00%00.00%
    3019923.17%17024.50%16823.53%9623.30%3726.06%2356.94%00.00%00.00%
    +

    + +Hourly usage for April 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for April 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    015768.85%147010.09%147310.22%13651.93%000.00%000.00%
    14232.68%4213.03%4223.08%4210.63%000.00%000.00%
    24212.44%3162.31%3182.52%4220.64%000.00%000.00%
    35293.38%5253.60%4233.22%6310.91%000.00%000.00%
    45293.38%5263.75%5283.92%11571.69%000.00%000.00%
    54202.33%3172.45%3172.38%4190.57%000.00%000.00%
    612606.98%10527.49%9456.30%486242971.69%000.00%000.00%
    76303.49%5273.89%5283.92%4220.64%000.00%000.00%
    810546.29%9486.92%9476.58%11531.57%000.00%000.00%
    98414.77%6344.90%6314.34%7371.08%000.00%000.00%
    107374.31%6304.32%6304.20%6290.84%000.00%000.00%
    115273.14%4233.31%4243.36%5260.78%000.00%000.00%
    129455.24%7365.19%6344.76%18882.61%000.00%000.00%
    137394.54%7365.19%4233.22%11531.57%000.00%000.00%
    143171.98%2121.73%2141.96%6290.84%000.00%000.00%
    155252.91%4202.88%3182.52%8391.14%000.00%000.00%
    167374.31%7355.04%5263.64%16782.31%000.00%000.00%
    177364.19%4233.31%6314.34%9451.32%000.00%000.00%
    189465.36%4213.03%7375.18%10491.45%000.00%000.00%
    199455.24%7365.19%7365.04%8401.17%000.00%000.00%
    208435.01%6344.90%7375.18%12591.73%000.00%000.00%
    215252.91%3162.31%4212.94%7330.97%000.00%000.00%
    222111.28%2111.59%2111.54%5260.76%000.00%000.00%
    238435.01%5253.60%8405.60%8381.13%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 29 of 36 Total URLs
    #HitskB FkB InkB OutURL
    121725.26%58217.18%00.00%00.00%/
    217720.61%180.54%00.00%00.00%/phpBB2/viewtopic.php
    39110.59%90.28%00.00%00.00%/phpBB2/
    4384.42%210.62%00.00%00.00%/phppages/fotobiz.php
    5273.14%170.51%00.00%00.00%/News/permalink.php
    6161.86%180.52%00.00%00.00%/styles/header.css
    7161.86%20.06%00.00%00.00%/styles/main.css
    8111.28%00.00%00.00%00.00%*
    9111.28%90.27%00.00%00.00%/News/
    1091.05%10.03%00.00%00.00%/phpBB2/profile.php
    1180.93%110.32%00.00%00.00%/favicon.ico
    1280.93%10.02%00.00%00.00%/phpBB2/viewonline.php
    1360.70%10.02%00.00%00.00%/phpBB2/privmsg.php
    1450.58%160.49%00.00%00.00%/Linux/
    1550.58%230.67%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    1650.58%10.02%00.00%00.00%/phpBB2/search.php
    1750.58%10.02%00.00%00.00%/phpBB2/viewforum.php
    1840.47%130.38%00.00%00.00%/About/
    1940.47%00.01%00.00%00.00%/phpBB2/posting.php
    2030.35%50.14%00.00%00.00%/Pictures/
    2130.35%70.19%00.00%00.00%/Surfing/
    2230.35%20.07%00.00%00.00%/styles/newspage.css
    2320.23%110.33%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    2410.12%20.07%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    2510.12%10.04%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    2610.12%20.05%00.00%00.00%/Linux/logitech.shtml
    2710.12%20.05%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    2810.12%30.09%00.00%00.00%/Pictures/20050409_New_York/
    2910.12%00.00%00.00%00.00%/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 36 Total URLs By kB F
    #HitskB FkB InkB OutURL
    121725.26%58217.18%00.00%00.00%/
    250.58%230.67%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    3384.42%210.62%00.00%00.00%/phppages/fotobiz.php
    417720.61%180.54%00.00%00.00%/phpBB2/viewtopic.php
    5161.86%180.52%00.00%00.00%/styles/header.css
    6273.14%170.51%00.00%00.00%/News/permalink.php
    750.58%160.49%00.00%00.00%/Linux/
    840.47%130.38%00.00%00.00%/About/
    920.23%110.33%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1080.93%110.32%00.00%00.00%/favicon.ico
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 15 Total Entry Pages
    #HitsVisitsURL
    121725.26%21553.22%/
    217720.61%7518.56%/phpBB2/viewtopic.php
    39110.59%6014.85%/phpBB2/
    4273.14%276.68%/News/permalink.php
    5111.28%102.48%/News/
    680.93%40.99%/phpBB2/viewonline.php
    750.58%30.74%/Linux/
    840.47%20.50%/About/
    950.58%20.50%/phpBB2/search.php
    10111.28%10.25%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 16 Total Exit Pages
    #HitsVisitsURL
    121725.26%21358.20%/
    217720.61%7219.67%/phpBB2/viewtopic.php
    39110.59%277.38%/phpBB2/
    4273.14%267.10%/News/permalink.php
    5111.28%102.73%/News/
    630.35%30.82%/Surfing/
    780.93%30.82%/phpBB2/viewonline.php
    840.47%20.55%/About/
    950.58%20.55%/Linux/
    1050.58%20.55%/phpBB2/search.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 142 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    115217.69%13920.03%280.83%00.00%00.00%143.40%208.115.111.246
    2799.20%7911.38%2226.57%00.00%00.00%7919.17%123.125.64.38
    3738.50%7010.09%381.12%00.00%00.00%317.52%66.249.71.114
    4485.59%486.92%1353.99%00.00%00.00%4811.65%220.181.7.97
    5364.19%314.47%140.42%00.00%00.00%317.52%66.249.71.207
    6283.26%284.03%792.33%00.00%00.00%286.80%119.63.193.55
    7192.21%00.00%130.37%00.00%00.00%10.24%189.17.110.2
    8171.98%172.45%481.41%00.00%00.00%174.13%220.181.32.22
    9171.98%172.45%481.41%00.00%00.00%174.13%61.135.168.82
    10161.86%142.02%239370.62%00.00%00.00%10.24%4.226.219.194
    11151.75%121.73%260.77%00.00%00.00%30.73%206.80.1.253
    12151.75%00.00%100.29%00.00%00.00%10.24%64.15.156.247
    13131.51%111.59%50.15%00.00%00.00%112.67%66.249.70.23
    14111.28%111.59%00.00%00.00%00.00%10.24%192.168.1.2
    15101.16%101.44%180.53%00.00%00.00%20.49%83.101.44.34
    1691.05%30.43%50.13%00.00%00.00%20.49%74.6.22.110
    1780.93%81.15%250.74%00.00%00.00%10.24%94.76.199.10
    1870.81%71.01%341.00%00.00%00.00%10.24%213.65.209.244
    1970.81%50.72%30.09%00.00%00.00%30.73%92.243.69.5
    2070.81%71.01%250.72%00.00%00.00%10.24%93.85.57.28
    2160.70%30.43%70.20%00.00%00.00%10.24%174.142.104.55
    2260.70%60.86%10.02%00.00%00.00%10.24%194.160.76.5
    2360.70%30.43%40.12%00.00%00.00%30.73%194.8.74.11
    2460.70%30.43%40.12%00.00%00.00%30.73%194.8.74.157
    2560.70%30.43%40.12%00.00%00.00%30.73%194.8.74.47
    2660.70%30.43%40.12%00.00%00.00%30.73%194.8.75.92
    2760.70%30.43%40.12%00.00%00.00%30.73%194.8.75.94
    2850.58%30.43%20.07%00.00%00.00%10.24%194.8.75.251
    2950.58%30.43%30.08%00.00%00.00%20.49%212.95.54.175
    3050.58%50.72%10.02%00.00%00.00%10.24%217.20.116.59
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 142 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1161.86%142.02%239370.62%00.00%00.00%10.24%4.226.219.194
    2799.20%7911.38%2226.57%00.00%00.00%7919.17%123.125.64.38
    3485.59%486.92%1353.99%00.00%00.00%4811.65%220.181.7.97
    4283.26%284.03%792.33%00.00%00.00%286.80%119.63.193.55
    5171.98%172.45%481.41%00.00%00.00%174.13%220.181.32.22
    6171.98%172.45%481.41%00.00%00.00%174.13%61.135.168.82
    7738.50%7010.09%381.12%00.00%00.00%317.52%66.249.71.114
    870.81%71.01%341.00%00.00%00.00%10.24%213.65.209.244
    915217.69%13920.03%280.83%00.00%00.00%143.40%208.115.111.246
    10151.75%121.73%260.77%00.00%00.00%30.73%206.80.1.253
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 44 Total Referrers
    #HitsReferrer
    162472.64%- (Direct Request)
    2515.94%vanrenterghem.biz/phpBB2/index.php
    3303.49%vanrenterghem.biz/phpbb2/index.php
    4222.56%vanrenterghem.biz/phpBB2/viewtopic.php
    5182.10%vanrenterghem.biz/
    6121.40%vanrenterghem.biz/phpBB2/
    7111.28%vanrenterghem.biz/phpbb2/
    880.93%vanrenterghem.biz/Linux/index.shtml
    970.81%vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1070.81%vanrenterghem.biz/News/index.php
    1170.81%vanrenterghem.biz/styles/header.css
    1240.47%images.google.se/imgres
    1330.35%kauai.vanrenterghem.biz/News/index.php
    1430.35%kauai.vanrenterghem.biz/phpBB2/
    1530.35%kauai.vanrenterghem.biz/phpBB2/viewonline.php
    1630.35%vanrenterghem.biz/About/index.shtml
    1730.35%vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1830.35%vanrenterghem.biz/Pictures/index.shtml
    1920.23%kauai.vanrenterghem.biz/phpBB2/index.php
    2020.23%kauai.vanrenterghem.biz/phpbb2/
    2120.23%vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    2220.23%vanrenterghem.biz/Linux/website_quarter_circle_ll.pl.shtml
    2320.23%vanrenterghem.biz/phpBB2/viewonline.php
    2420.23%vanrenterghem.biz/phpbb2/viewtopic.php
    2520.23%www.google.com/search
    2610.12%kauai.vanrenterghem.biz/
    2710.12%kauai.vanrenterghem.biz/phpBB2/indeforum.php
    2810.12%kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    2910.12%kauai.vanrenterghem.biz/phpbb2/indeforum.php
    3010.12%kauai.vanrenterghem.biz/phpbb2/viewforum.php
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Search Strings
    #HitsSearch String
    11100.00%cap gris nez surfing
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 86 Total User Agents
    #HitsUser Agent
    116218.86%Baiduspider+(+http://www.baidu.com/search/spider.htm)
    215217.69%Mozilla/5.0 (compatible; DotBot/1.1; http://www.dotnetdotcom.org/, crawler@dotnetdotcom.org)
    38810.24%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    4394.54%Googlebot-Image/1.0
    5333.84%Baiduspider+(+http://www.baidu.jp/spider/)
    6273.14%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    7232.68%Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01 [en]
    8202.33%Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20070308 Minefield/3.0a1
    9202.33%Toata dragostea mea pentru diavola
    10171.98%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    11171.98%Opera/9.60 (X11; Linux i686; U; en) Presto/2.1.1
    12151.75%Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
    13121.40%Mozilla/1.22 (compatible; MSIE 2.0d; Windows NT)
    14111.28%Apache/2.2.11 (Debian) PHP/5.2.9-1 with Suhosin-Patch (internal dummy connection)
    1591.05%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
    +

    + +Usage by Location for April 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 29 of 29 Total Locations
    #HitsFileskB FkB InkB OutLocation
    139045.40%32847.26%259276.50%00.00%00.00%United States
    217520.37%17224.78%45913.54%00.00%00.00%China
    3698.03%436.20%641.89%00.00%00.00%Great Britain (UK)
    4333.84%294.18%822.43%00.00%00.00%Japan
    5232.68%40.58%190.57%00.00%00.00%Canada
    6232.68%152.16%110.34%00.00%00.00%Russian Federation
    7212.44%10.14%140.41%00.00%00.00%Brazil
    8141.63%111.59%290.84%00.00%00.00%Belarus
    9131.51%121.73%10.04%00.00%00.00%Unresolved/Unknown
    10131.51%111.59%120.36%00.00%00.00%Germany
    11121.40%91.30%381.13%00.00%00.00%Sweden
    12121.40%71.01%70.20%00.00%00.00%Ukraine
    13101.16%101.44%180.53%00.00%00.00%Belgium
    1491.05%71.01%90.25%00.00%00.00%France
    1560.70%60.86%10.02%00.00%00.00%Slovak Republic
    1650.58%40.58%90.26%00.00%00.00%Ireland
    1750.58%50.72%10.02%00.00%00.00%India
    1850.58%50.72%110.32%00.00%00.00%Italy
    1940.47%20.29%30.08%00.00%00.00%Moldova
    2040.47%30.43%40.13%00.00%00.00%Netherlands
    2120.23%10.14%10.04%00.00%00.00%Costa Rica
    2220.23%20.29%00.01%00.00%00.00%Hong Kong
    2320.23%10.14%10.04%00.00%00.00%Israel
    2420.23%20.29%00.01%00.00%00.00%Romania
    2510.12%10.14%00.00%00.00%00.00%Korea (South)
    2610.12%10.14%00.00%00.00%00.00%Kazakhstan
    2710.12%00.00%10.03%00.00%00.00%Latvia
    2810.12%10.14%00.00%00.00%00.00%Philippines
    2910.12%10.14%00.00%00.00%00.00%Taiwan
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200905.html b/webalizer/usage_200905.html new file mode 100644 index 0000000..efb7ecb --- /dev/null +++ b/webalizer/usage_200905.html @@ -0,0 +1,2161 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - May 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: May 2009
    +Generated 13-Jun-2009 07:45 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for May 2009
    Total Hits133
    Total Files101
    Total Pages80
    Total Visits41
    Total kB Files4698
    Total kB In0
    Total kB Out0
    Total Unique Sites31
    Total Unique URLs27
    Total Unique Referrers16
    Total Unique User Agents27
    .Avg Max
    Hits per Hour526
    Hits per Day133133
    Files per Day101101
    Pages per Day8080
    Visits per Day4141
    kB Files per Day46984698
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK101
    Code 304 - Not Modified3
    Code 400 - Bad Request1
    Code 401 - Unauthorized3
    Code 403 - Forbidden2
    Code 404 - Not Found23
    +

    + +Daily usage for May 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for May 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    31133100.00%101100.00%80100.00%41100.00%31100.00%4698100.00%00.00%00.00%
    +

    + +Hourly usage for May 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for May 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7262619.55%222221.78%171721.25%2413241351.35%000.00%000.00%
    8664.51%443.96%445.00%16160.35%000.00%000.00%
    9110.75%110.99%111.25%330.06%000.00%000.00%
    10332.26%221.98%333.75%440.09%000.00%000.00%
    11151511.28%121211.88%121215.00%37370.79%000.00%000.00%
    12553.76%332.97%333.75%990.19%000.00%000.00%
    13996.77%776.93%222.50%14140.30%000.00%000.00%
    14553.76%443.96%222.50%660.13%000.00%000.00%
    15443.01%332.97%445.00%440.09%000.00%000.00%
    16332.26%221.98%222.50%550.11%000.00%000.00%
    17664.51%443.96%222.50%550.10%000.00%000.00%
    18161612.03%998.91%556.25%18180.38%000.00%000.00%
    19443.01%332.97%222.50%770.16%000.00%000.00%
    20221.50%221.98%222.50%660.12%000.00%000.00%
    21202015.04%171716.83%111113.75%2142214245.60%000.00%000.00%
    22553.76%443.96%556.25%440.09%000.00%000.00%
    23332.26%221.98%333.75%440.09%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 22 of 27 Total URLs
    #HitskB FkB InkB OutURL
    12720.30%741.58%00.00%00.00%/
    2107.52%00.00%00.00%00.00%*
    3107.52%10.02%00.00%00.00%/phpBB2/
    453.76%60.13%00.00%00.00%/News/
    553.76%20.03%00.00%00.00%/styles/header.css
    653.76%00.01%00.00%00.00%/styles/main.css
    743.01%150.31%00.00%00.00%/Linux/
    843.01%90.19%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    943.01%240.51%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    1032.26%140.30%00.00%00.00%/About/
    1132.26%60.12%00.00%00.00%/Pictures/
    1221.50%110.24%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    1321.50%60.14%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    1421.50%110.24%00.00%00.00%/Linux/logitech.shtml
    1521.50%140.30%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    1621.50%10.01%00.00%00.00%/styles/newspage.css
    1710.75%30.06%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1810.75%10.01%00.00%00.00%/News/permalink.php
    1910.75%30.06%00.00%00.00%/Surfing/
    2010.75%10.03%00.00%00.00%/favicon.ico
    2110.75%00.00%00.00%00.00%/phpBB2/faq.php
    2210.75%00.00%00.00%00.00%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 27 Total URLs By kB F
    #HitskB FkB InkB OutURL
    12720.30%741.58%00.00%00.00%/
    243.01%240.51%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    343.01%150.31%00.00%00.00%/Linux/
    432.26%140.30%00.00%00.00%/About/
    521.50%140.30%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    621.50%110.24%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    721.50%110.24%00.00%00.00%/Linux/logitech.shtml
    843.01%90.19%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    921.50%60.14%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    1053.76%60.13%00.00%00.00%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    12720.30%2360.53%/
    2107.52%615.79%/phpBB2/
    353.76%37.89%/News/
    443.01%25.26%/Linux/
    5107.52%12.63%*
    610.75%12.63%/News/permalink.php
    710.75%12.63%/phpBB2/faq.php
    810.75%12.63%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Exit Pages
    #HitsVisitsURL
    12720.30%2165.62%/
    253.76%39.38%/News/
    3107.52%39.38%/phpBB2/
    4107.52%13.12%*
    543.01%13.12%/Linux/
    610.75%13.12%/News/permalink.php
    710.75%13.12%/phpBB2/faq.php
    810.75%13.12%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 31 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    11813.53%1615.84%213945.52%00.00%00.00%12.44%89.122.29.3
    21712.78%1413.86%242151.53%00.00%00.00%12.44%210.173.180.153
    31612.03%1615.84%450.96%00.00%00.00%1639.02%123.125.64.38
    4118.27%76.93%60.13%00.00%00.00%37.32%74.6.17.184
    5118.27%98.91%300.64%00.00%00.00%12.44%80.69.208.149
    6107.52%109.90%00.00%00.00%00.00%12.44%192.168.1.2
    753.76%32.97%20.04%00.00%00.00%12.44%72.30.78.234
    853.76%54.95%100.22%00.00%00.00%00.00%92.226.193.74
    943.01%43.96%90.19%00.00%00.00%00.00%86.166.238.72
    1032.26%21.98%10.03%00.00%00.00%24.88%66.249.71.6
    1132.26%21.98%10.03%00.00%00.00%12.44%92.113.183.190
    1232.26%21.98%40.09%00.00%00.00%12.44%92.48.193.55
    1321.50%21.98%60.12%00.00%00.00%24.88%119.63.193.55
    1421.50%10.99%10.03%00.00%00.00%12.44%194.8.74.130
    1521.50%10.99%10.03%00.00%00.00%12.44%194.8.75.16
    1621.50%10.99%10.03%00.00%00.00%12.44%194.8.75.92
    1721.50%10.99%10.03%00.00%00.00%12.44%194.8.75.94
    1821.50%10.99%30.06%00.00%00.00%12.44%209.167.50.27
    1921.50%00.00%10.03%00.00%00.00%12.44%72.249.185.140
    2021.50%10.99%20.05%00.00%00.00%12.44%77.88.27.25
    2110.75%10.99%00.00%00.00%00.00%12.44%194.8.75.191
    2210.75%10.99%30.06%00.00%00.00%12.44%208.80.195.55
    2310.75%00.00%10.01%00.00%00.00%00.00%216.129.119.44
    2410.75%10.99%30.06%00.00%00.00%12.44%58.185.72.134
    2510.75%00.00%10.02%00.00%00.00%00.00%65.55.106.164
    2610.75%00.00%10.02%00.00%00.00%00.00%65.55.106.166
    2710.75%00.00%10.02%00.00%00.00%00.00%65.55.106.232
    2810.75%00.00%10.02%00.00%00.00%00.00%65.55.106.234
    2910.75%00.00%00.01%00.00%00.00%00.00%69.94.112.54
    3010.75%00.00%10.01%00.00%00.00%00.00%81.20.128.162
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 31 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    11712.78%1413.86%242151.53%00.00%00.00%12.44%210.173.180.153
    21813.53%1615.84%213945.52%00.00%00.00%12.44%89.122.29.3
    31612.03%1615.84%450.96%00.00%00.00%1639.02%123.125.64.38
    4118.27%98.91%300.64%00.00%00.00%12.44%80.69.208.149
    553.76%54.95%100.22%00.00%00.00%00.00%92.226.193.74
    643.01%43.96%90.19%00.00%00.00%00.00%86.166.238.72
    7118.27%76.93%60.13%00.00%00.00%37.32%74.6.17.184
    821.50%21.98%60.12%00.00%00.00%24.88%119.63.193.55
    932.26%21.98%40.09%00.00%00.00%12.44%92.48.193.55
    1010.75%10.99%30.06%00.00%00.00%12.44%208.80.195.55
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 16 of 16 Total Referrers
    #HitsReferrer
    19974.44%- (Direct Request)
    264.51%http://vanrenterghem.biz/phpBB2/index.php
    343.01%http://vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    443.01%http://vanrenterghem.biz/phpbb2/index.php
    532.26%http://kauai.vanrenterghem.biz/News/permalink.php
    632.26%http://vanrenterghem.biz/News/index.php
    721.50%http://masterofsurf.com/Linux/imode_on_iPAQ_running_Familiar.shtml
    821.50%http://vanrenterghem.biz/
    921.50%http://vanrenterghem.biz/Linux/index.shtml
    1021.50%http://vanrenterghem.biz/phpbb2/
    1110.75%http://images.google.co.uk/imgres
    1210.75%http://masterofsurf.com/styles/header.css
    1310.75%http://vanrenterghem.biz/phpBB2/
    1410.75%http://vanrenterghem.biz/phpbb2/viewforum.php
    1510.75%http://www.google.com/search
    1610.75%www.seventwentyfour.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 27 Total User Agents
    #HitsUser Agent
    11813.53%Java/1.6.0_04
    21712.78%ichiro/3.0 (http://help.goo.ne.jp/door/crawler.html)
    31612.03%Baiduspider+(+http://www.baidu.com/search/spider.htm)
    4139.77%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    5118.27%Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
    6107.52%Apache/2.2.11 (Debian) PHP/5.2.9-4 with Suhosin-Patch (internal dummy connection)
    753.76%Opera/9.64 (Windows NT 5.1; U; de) Presto/2.1.1
    843.01%Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
    943.01%msnbot/2.0b (+http://search.msn.com/msnbot.htm)
    1032.26%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
    1132.26%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    1232.26%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    1332.26%Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
    1421.50%Baiduspider+(+http://www.baidu.jp/spider/)
    1521.50%LinkWalker/2.0
    +

    + +Usage by Location for May 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 13 of 13 Total Locations
    #HitsFileskB FkB InkB OutLocation
    12821.05%1312.87%180.39%00.00%00.00%United States
    21914.29%1615.84%242751.65%00.00%00.00%Japan
    31813.53%1615.84%213945.52%00.00%00.00%Romania
    41612.03%1615.84%450.96%00.00%00.00%China
    5139.77%98.91%140.30%00.00%00.00%Great Britain (UK)
    6118.27%98.91%300.64%00.00%00.00%Reunion
    7107.52%109.90%00.00%00.00%00.00%Unresolved/Unknown
    864.51%54.95%110.23%00.00%00.00%Germany
    943.01%21.98%30.06%00.00%00.00%Ukraine
    1032.26%21.98%40.09%00.00%00.00%Netherlands
    1121.50%10.99%30.06%00.00%00.00%Canada
    1221.50%10.99%20.05%00.00%00.00%Russian Federation
    1310.75%10.99%30.06%00.00%00.00%Singapore
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200906.html b/webalizer/usage_200906.html new file mode 100644 index 0000000..3f11a32 --- /dev/null +++ b/webalizer/usage_200906.html @@ -0,0 +1,2542 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - June 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: June 2009
    +Generated 11-Jul-2009 07:48 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for June 2009
    Total Hits418
    Total Files304
    Total Pages299
    Total Visits204
    Total kB Files303
    Total kB In0
    Total kB Out0
    Total Unique Sites161
    Total Unique URLs36
    Total Unique Referrers24
    Total Unique User Agents49
    .Avg Max
    Hits per Hour529
    Hits per Day139176
    Files per Day101125
    Pages per Day99124
    Visits per Day6879
    kB Files per Day101128
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK304
    Code 304 - Not Modified2
    Code 401 - Unauthorized1
    Code 403 - Forbidden1
    Code 404 - Not Found110
    +

    + +Daily usage for June 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for June 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    2810926.08%8026.32%8428.09%5225.49%5332.92%5317.55%00.00%00.00%
    2917642.11%12541.12%12441.47%7938.73%8150.31%12842.39%00.00%00.00%
    3013331.82%9932.57%9130.43%7335.78%6942.86%12140.06%00.00%00.00%
    +

    + +Hourly usage for June 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for June 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    08255.98%6185.92%4144.68%175016.59%000.00%000.00%
    19296.94%8268.55%8248.03%272.24%000.00%000.00%
    29276.46%7227.24%7227.36%393.05%000.00%000.00%
    33102.39%261.97%272.34%141.42%000.00%000.00%
    4140.96%020.66%010.33%4113.73%000.00%000.00%
    5392.15%020.66%020.67%382.80%000.00%000.00%
    67235.50%6206.58%7227.36%382.66%000.00%000.00%
    7130.72%010.33%010.33%120.64%000.00%000.00%
    86184.31%5165.26%5175.69%251.76%000.00%000.00%
    9140.96%130.99%020.67%141.24%000.00%000.00%
    1011348.13%8268.55%9299.70%6196.13%000.00%000.00%
    1113419.81%103210.53%9279.03%7227.15%000.00%000.00%
    12392.15%130.99%141.34%272.41%000.00%000.00%
    13392.15%272.30%141.34%141.43%000.00%000.00%
    149296.94%6185.92%4144.68%5165.39%000.00%000.00%
    1511358.37%7227.24%103010.03%6175.65%000.00%000.00%
    165153.59%392.96%3113.68%7217.06%000.00%000.00%
    17151.20%020.66%020.67%141.29%000.00%000.00%
    186184.31%5154.93%5155.02%5154.80%000.00%000.00%
    194122.87%151.64%151.67%6175.57%000.00%000.00%
    206204.78%6185.92%6186.02%5144.76%000.00%000.00%
    218245.74%7227.24%7237.69%5144.55%000.00%000.00%
    224122.87%272.30%131.00%7217.09%000.00%000.00%
    23130.72%020.66%020.67%120.60%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 29 of 36 Total URLs
    #HitskB FkB InkB OutURL
    117842.58%186.04%00.00%00.00%/phpBB2/
    2296.94%196.18%00.00%00.00%/News/permalink.php
    3133.11%00.00%00.00%00.00%*
    4112.63%227.42%00.00%00.00%/
    592.15%72.31%00.00%00.00%/News/
    681.91%41.22%00.00%00.00%/styles/header.css
    781.91%10.26%00.00%00.00%/styles/main.css
    871.67%10.24%00.00%00.00%/phpBB2/viewtopic.php
    961.44%20.64%00.00%00.00%/styles/newspage.css
    1040.96%00.14%00.00%00.00%http://kauai.vanrenterghem.biz/phpBB2/
    1130.72%51.81%00.00%00.00%/About/
    1220.48%41.20%00.00%00.00%/Linux/
    1320.48%61.99%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1420.48%00.07%00.00%00.00%/phpBB2/search.php
    1520.48%00.07%00.00%00.00%/phpBB2/viewforum.php
    1620.48%00.07%00.00%00.00%http://vanrenterghem.biz/phpBB2/
    1710.24%20.74%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    1810.24%10.43%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    1910.24%10.39%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    2010.24%30.96%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    2110.24%20.57%00.00%00.00%/Linux/logitech.shtml
    2210.24%20.58%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    2310.24%20.62%00.00%00.00%/News/email_from_dannyz.shtml
    2410.24%10.29%00.00%00.00%/Pictures/
    2510.24%10.38%00.00%00.00%/Surfing/
    2610.24%10.45%00.00%00.00%/favicon.ico
    2710.24%00.03%00.00%00.00%/phpBB2/posting.php
    2810.24%00.03%00.00%00.00%/phpBB2/profile.php
    2910.24%30.93%00.00%00.00%http://www.baidu.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 36 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1112.63%227.42%00.00%00.00%/
    2296.94%196.18%00.00%00.00%/News/permalink.php
    317842.58%186.04%00.00%00.00%/phpBB2/
    492.15%72.31%00.00%00.00%/News/
    520.48%61.99%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    630.72%51.81%00.00%00.00%/About/
    781.91%41.22%00.00%00.00%/styles/header.css
    820.48%41.20%00.00%00.00%/Linux/
    910.24%30.96%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    1010.24%30.93%00.00%00.00%http://www.baidu.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 16 Total Entry Pages
    #HitsVisitsURL
    117842.58%12864.32%/phpBB2/
    2296.94%2914.57%/News/permalink.php
    3112.63%105.03%/
    492.15%84.02%/News/
    571.67%73.52%/phpBB2/viewtopic.php
    640.96%31.51%http://kauai.vanrenterghem.biz/phpBB2/
    7133.11%21.01%*
    830.72%21.01%/About/
    920.48%21.01%/phpBB2/search.php
    1020.48%21.01%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 15 Total Exit Pages
    #HitsVisitsURL
    117842.58%10862.07%/phpBB2/
    2296.94%2715.52%/News/permalink.php
    3112.63%95.17%/
    492.15%84.60%/News/
    571.67%63.45%/phpBB2/viewtopic.php
    640.96%31.72%http://kauai.vanrenterghem.biz/phpBB2/
    7133.11%21.15%*
    830.72%21.15%/About/
    920.48%21.15%/phpBB2/search.php
    1020.48%21.15%/phpBB2/viewforum.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 161 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    15112.20%4615.13%7825.66%00.00%00.00%4019.61%66.249.67.67
    2184.31%134.28%227.40%00.00%00.00%10.49%38.100.8.50
    3122.87%123.95%00.00%00.00%00.00%10.49%192.168.1.2
    4102.39%82.63%51.49%00.00%00.00%20.98%74.6.8.93
    571.67%61.97%20.61%00.00%00.00%10.49%60.191.15.206
    671.67%51.64%30.99%00.00%00.00%20.98%74.6.8.112
    771.67%51.64%31.13%00.00%00.00%10.49%74.6.8.116
    861.44%61.97%10.20%00.00%00.00%41.96%222.168.78.178
    961.44%61.97%10.20%00.00%00.00%20.98%60.208.64.177
    1061.44%00.00%72.34%00.00%00.00%00.00%77.100.248.60
    1151.20%51.64%10.17%00.00%00.00%52.45%114.127.246.36
    1251.20%41.32%20.54%00.00%00.00%31.47%121.28.7.181
    1351.20%51.64%10.17%00.00%00.00%31.47%121.9.221.187
    1451.20%51.64%10.17%00.00%00.00%31.47%121.9.221.189
    1551.20%51.64%10.17%00.00%00.00%52.45%41.210.252.11
    1651.20%30.99%51.63%00.00%00.00%00.00%72.30.81.177
    1751.20%20.66%20.54%00.00%00.00%10.49%74.6.17.154
    1840.96%41.32%00.14%00.00%00.00%10.49%119.82.26.89
    1940.96%20.66%30.87%00.00%00.00%20.98%194.8.74.11
    2040.96%20.66%30.87%00.00%00.00%20.98%194.8.74.157
    2140.96%20.66%30.87%00.00%00.00%20.98%194.8.74.47
    2240.96%20.66%30.87%00.00%00.00%20.98%194.8.75.92
    2340.96%20.66%30.87%00.00%00.00%20.98%194.8.75.94
    2440.96%41.32%00.14%00.00%00.00%20.98%199.96.38.16
    2540.96%30.99%20.50%00.00%00.00%31.47%200.45.94.130
    2640.96%41.32%00.14%00.00%00.00%10.49%207.192.75.81
    2740.96%41.32%00.14%00.00%00.00%10.49%59.162.33.158
    2840.96%30.99%20.58%00.00%00.00%10.49%74.6.8.126
    2940.96%20.66%3511.63%00.00%00.00%00.00%83.167.62.179
    3030.72%30.99%82.79%00.00%00.00%31.47%119.63.193.55
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 161 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    15112.20%4615.13%7825.66%00.00%00.00%4019.61%66.249.67.67
    240.96%20.66%3511.63%00.00%00.00%00.00%83.167.62.179
    3184.31%134.28%227.40%00.00%00.00%10.49%38.100.8.50
    430.72%30.99%82.79%00.00%00.00%31.47%119.63.193.55
    561.44%00.00%72.34%00.00%00.00%00.00%77.100.248.60
    620.48%20.66%61.86%00.00%00.00%20.98%208.80.195.44
    751.20%30.99%51.63%00.00%00.00%00.00%72.30.81.177
    8102.39%82.63%51.49%00.00%00.00%20.98%74.6.8.93
    920.48%10.33%41.28%00.00%00.00%10.49%208.96.54.74
    1030.72%20.66%41.18%00.00%00.00%20.98%66.249.68.168
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 24 of 24 Total Referrers
    #HitsReferrer
    118644.50%- (Direct Request)
    29622.97%http://vanrenterghem.biz/phpBB2/index.php
    36415.31%http://kauai.vanrenterghem.biz/phpBB2/index.php
    4163.83%http://vanrenterghem.biz/phpbb2/index.php
    5122.87%http://kauai.vanrenterghem.biz/News/permalink.php
    661.44%http://vanrenterghem.biz/
    751.20%http://vanrenterghem.biz/phpBB2/
    851.20%http://vanrenterghem.biz/phpbb2/
    940.96%http://www.exalead.com/
    1030.72%http://kauai.vanrenterghem.biz/News/index.php
    1130.72%http://majestic12.co.uk/bot.php
    1230.72%http://vanrenterghem.biz/News/index.php
    1320.48%http://kauai.vanrenterghem.biz/phpbb2/index.php
    1420.48%http://vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1520.48%http://vanrenterghem.biz/News/email_from_dannyz.shtml
    1610.24%http://michaeljacksonfarewellstore.com
    1710.24%http://vanrenterghem.biz/phpBB2/posting.php
    1810.24%http://vanrenterghem.biz/phpBB2/viewtopic.php
    1910.24%http://vanrenterghem.biz/phpbb2/posting.php
    2010.24%http://vanrenterghem.biz/phpbb2/viewtopic.php
    2110.24%http://www.google.bg/search
    2210.24%http://www.google.com.gh/search
    2310.24%http://www.michaeljacksonfarewellstore.com
    2410.24%www.seventwentyfour.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 49 Total User Agents
    #HitsUser Agent
    15011.96%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    2378.85%msnbot/2.0b (+http://search.msn.com/msnbot.htm)
    3296.94%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    4235.50%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01
    5215.02%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT) ::ELNSB50::000061100320025802a00111000000000507000900000000
    6194.55%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en]
    7184.31%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; KTXN)
    8184.31%panscient.com
    9174.07%Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98)
    10153.59%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
    11153.59%Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)
    12133.11%Mozilla/4.0 (compatible- MSIE 6.0- Windows NT 5.1- SV1- .NET CLR 1.1.4322
    13133.11%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.00
    14122.87%Apache/2.2.11 (Debian) PHP/5.2.9-4 with Suhosin-Patch (internal dummy connection)
    15102.39%Mozilla/4.0 (compatible;)
    +

    + +Usage by Location for June 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 33 Total Locations
    #HitsFileskB FkB InkB OutLocation
    120749.52%13444.08%18761.80%00.00%00.00%United States
    25212.44%5016.45%103.40%00.00%00.00%China
    3286.70%123.95%206.77%00.00%00.00%Great Britain (UK)
    4163.83%134.28%113.76%00.00%00.00%Japan
    5153.59%113.62%62.00%00.00%00.00%Russian Federation
    6143.35%72.30%4514.85%00.00%00.00%France
    7122.87%123.95%00.00%00.00%00.00%Unresolved/Unknown
    851.20%51.64%10.17%00.00%00.00%Angola
    951.20%41.32%20.54%00.00%00.00%Argentina
    1051.20%41.32%20.55%00.00%00.00%Germany
    1151.20%51.64%10.17%00.00%00.00%Indonesia
    1251.20%51.64%10.17%00.00%00.00%India
    1340.96%20.66%41.35%00.00%00.00%Canada
    1440.96%41.32%00.14%00.00%00.00%Italy
    1540.96%41.32%00.14%00.00%00.00%Slovak Republic
    1640.96%30.99%20.51%00.00%00.00%Taiwan
    1730.72%30.99%30.83%00.00%00.00%Ghana
    1830.72%30.99%00.07%00.00%00.00%Hungary
    1930.72%20.66%10.48%00.00%00.00%Moldova
    2030.72%30.99%00.10%00.00%00.00%Malaysia
    2130.72%20.66%10.47%00.00%00.00%Netherlands
    2220.48%20.66%00.07%00.00%00.00%Austria
    2320.48%10.33%10.43%00.00%00.00%Costa Rica
    2420.48%20.66%00.07%00.00%00.00%Czech Republic
    2520.48%20.66%00.07%00.00%00.00%Hong Kong
    2620.48%20.66%00.07%00.00%00.00%Pakistan
    2720.48%10.33%10.43%00.00%00.00%Ukraine
    2810.24%10.33%00.03%00.00%00.00%Australia
    2910.24%10.33%10.45%00.00%00.00%Bulgaria
    3010.24%10.33%00.03%00.00%00.00%Belarus
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200907.html b/webalizer/usage_200907.html new file mode 100644 index 0000000..1552196 --- /dev/null +++ b/webalizer/usage_200907.html @@ -0,0 +1,2638 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - July 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: July 2009
    +Generated 08-Aug-2009 08:05 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for July 2009
    Total Hits709
    Total Files477
    Total Pages498
    Total Visits320
    Total kB Files761
    Total kB In0
    Total kB Out0
    Total Unique Sites219
    Total Unique URLs36
    Total Unique Referrers48
    Total Unique User Agents95
    .Avg Max
    Hits per Hour428
    Hits per Day118169
    Files per Day79128
    Pages per Day83117
    Visits per Day5380
    kB Files per Day127232
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK477
    Code 304 - Not Modified20
    Code 400 - Bad Request2
    Code 401 - Unauthorized2
    Code 403 - Forbidden3
    Code 404 - Not Found198
    Code 416 - Requested Range Not Satisfiable7
    +

    + +Daily usage for July 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for July 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    269813.82%7515.72%7114.26%319.69%2712.33%15620.53%00.00%00.00%
    2716923.84%12826.83%11623.29%6620.62%6429.22%23230.55%00.00%00.00%
    289613.54%6112.79%7214.46%5015.62%4821.92%7910.39%00.00%00.00%
    297510.58%428.81%428.43%3611.25%3013.70%668.67%00.00%00.00%
    3015822.28%10622.22%11723.49%8025.00%8036.53%13317.42%00.00%00.00%
    3111315.94%6513.63%8016.06%5717.81%5223.74%9512.44%00.00%00.00%
    +

    + +Hourly usage for July 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for July 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    05334.65%4255.24%4265.22%9547.14%000.00%000.00%
    17446.21%6398.18%6418.23%2101.37%000.00%000.00%
    26395.50%5326.71%5306.02%3182.36%000.00%000.00%
    32172.40%171.47%181.61%2141.84%000.00%000.00%
    46375.22%5306.29%5336.63%4263.41%000.00%000.00%
    5030.42%020.42%030.60%020.32%000.00%000.00%
    6191.27%030.63%051.00%140.55%000.00%000.00%
    72141.97%191.89%171.41%5314.12%000.00%000.00%
    88537.48%6398.18%6367.23%8516.68%000.00%000.00%
    94283.95%1102.10%3193.82%3192.44%000.00%000.00%
    107466.49%6367.55%4295.82%10587.65%000.00%000.00%
    112172.40%2122.52%2142.81%2121.59%000.00%000.00%
    125314.37%3234.82%3214.22%7425.47%000.00%000.00%
    133202.82%2122.52%1112.21%8516.65%000.00%000.00%
    143233.24%2132.73%3204.02%3172.18%000.00%000.00%
    156375.22%3204.19%4275.42%8516.67%000.00%000.00%
    166385.36%4265.45%4275.42%8466.06%000.00%000.00%
    178486.77%4255.24%6367.23%148310.94%000.00%000.00%
    183182.54%1102.10%2122.41%6385.02%000.00%000.00%
    197476.63%6398.18%5357.03%6374.89%000.00%000.00%
    203182.54%1112.31%2122.41%4273.48%000.00%000.00%
    212172.40%191.89%171.41%3202.60%000.00%000.00%
    225354.94%4275.66%3214.22%4253.31%000.00%000.00%
    236375.22%3183.77%3183.61%4253.26%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 36 Total URLs
    #HitskB FkB InkB OutURL
    118425.95%192.48%00.00%00.00%/phpBB2/
    29713.68%20827.38%00.00%00.00%/
    3233.24%101.28%00.00%00.00%/styles/header.css
    4233.24%20.26%00.00%00.00%/styles/main.css
    5202.82%162.14%00.00%00.00%/News/
    6162.26%101.36%00.00%00.00%/News/permalink.php
    7131.83%445.72%00.00%00.00%/About/
    8111.55%324.24%00.00%00.00%/Linux/
    9111.55%172.25%00.00%00.00%/Pictures/
    10111.55%10.15%00.00%00.00%/phpBB2/search.php
    11101.41%00.00%00.00%00.00%*
    12101.41%212.72%00.00%00.00%/Surfing/
    1391.27%739.55%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1491.27%10.12%00.00%00.00%/phpBB2/viewtopic.php
    1591.27%10.17%00.00%00.00%/styles/newspage.css
    1670.99%101.26%00.00%00.00%/favicon.ico
    1740.56%162.06%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    1840.56%243.14%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    1930.42%00.04%00.00%00.00%/phpBB2/viewforum.php
    2020.28%263.36%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    2120.28%91.14%00.00%00.00%/Linux/website_quarter_circle_ll.pl.shtml
    2210.14%30.43%00.00%00.00%/Linux/e_launchOrMoveApp_sh.shtml
    2310.14%30.34%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    2410.14%60.73%00.00%00.00%/Linux/logitech.shtml
    2510.14%00.01%00.00%00.00%/phpBB2/groupcp.php
    2610.14%00.01%00.00%00.00%/phpBB2/login.php
    2710.14%00.01%00.00%00.00%/phpBB2/memberlist.php
    2810.14%00.01%00.00%00.00%/phpBB2/viewonline.php
    2910.14%20.33%00.00%00.00%/phpmyadmin/main.php
    3010.14%30.37%00.00%00.00%http://vanrenterghem.biz/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 36 Total URLs By kB F
    #HitskB FkB InkB OutURL
    19713.68%20827.38%00.00%00.00%/
    291.27%739.55%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    3131.83%445.72%00.00%00.00%/About/
    4111.55%324.24%00.00%00.00%/Linux/
    520.28%263.36%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    640.56%243.14%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    7101.41%212.72%00.00%00.00%/Surfing/
    818425.95%192.48%00.00%00.00%/phpBB2/
    9111.55%172.25%00.00%00.00%/Pictures/
    10202.82%162.14%00.00%00.00%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 19 Total Entry Pages
    #HitsVisitsURL
    118425.95%13043.77%/phpBB2/
    29713.68%9331.31%/
    3202.82%124.04%/News/
    4162.26%113.70%/News/permalink.php
    5111.55%103.37%/phpBB2/search.php
    6131.83%93.03%/About/
    791.27%93.03%/phpBB2/viewtopic.php
    8111.55%41.35%/Linux/
    9111.55%41.35%/Pictures/
    10101.41%41.35%/Surfing/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 19 Total Exit Pages
    #HitsVisitsURL
    118425.95%9436.43%/phpBB2/
    29713.68%8733.72%/
    3202.82%124.65%/News/
    4162.26%114.26%/News/permalink.php
    5111.55%103.88%/phpBB2/search.php
    6131.83%83.10%/About/
    791.27%83.10%/phpBB2/viewtopic.php
    8101.41%72.71%/Surfing/
    9111.55%62.33%/Linux/
    10111.55%41.55%/Pictures/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 219 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1334.65%336.92%9312.21%00.00%00.00%3310.31%119.63.193.55
    2324.51%326.71%12916.96%00.00%00.00%51.56%121.140.62.153
    3223.10%163.35%81.11%00.00%00.00%144.37%66.249.71.117
    4192.68%153.14%597.80%00.00%00.00%10.31%116.71.92.150
    5182.54%132.73%81.07%00.00%00.00%134.06%66.249.67.9
    6182.54%91.89%81.05%00.00%00.00%61.88%74.6.18.219
    7182.54%61.26%111.48%00.00%00.00%10.31%75.101.186.121
    8172.40%81.68%50.66%00.00%00.00%51.56%72.30.87.84
    9141.97%122.52%101.32%00.00%00.00%10.31%65.98.224.5
    10101.41%102.10%00.00%00.00%00.00%10.31%192.168.1.2
    11101.41%51.05%70.87%00.00%00.00%51.56%194.8.74.11
    12101.41%51.05%70.87%00.00%00.00%51.56%194.8.74.157
    13101.41%51.05%70.87%00.00%00.00%51.56%194.8.74.47
    14101.41%51.05%40.47%00.00%00.00%20.63%72.30.79.95
    1591.27%10.21%81.00%00.00%00.00%10.31%212.34.155.10
    1691.27%91.89%141.86%00.00%00.00%10.31%76.231.189.204
    1781.13%00.00%50.67%00.00%00.00%41.25%209.202.168.79
    1870.99%00.00%20.28%00.00%00.00%61.88%124.115.4.212
    1970.99%71.47%182.37%00.00%00.00%10.31%217.210.130.91
    2070.99%00.00%81.11%00.00%00.00%00.00%58.61.164.140
    2160.85%00.00%40.50%00.00%00.00%00.00%119.63.193.56
    2260.85%00.00%40.50%00.00%00.00%30.94%209.202.168.76
    2360.85%00.00%40.50%00.00%00.00%30.94%209.202.168.81
    2460.85%51.05%20.23%00.00%00.00%10.31%212.13.103.76
    2560.85%40.84%10.14%00.00%00.00%30.94%66.249.66.166
    2660.85%30.63%50.64%00.00%00.00%30.94%66.249.71.166
    2750.71%30.63%30.36%00.00%00.00%20.63%194.8.75.64
    2850.71%51.05%101.32%00.00%00.00%00.00%202.214.154.143
    2950.71%00.00%30.42%00.00%00.00%20.63%209.202.168.78
    3050.71%00.00%30.42%00.00%00.00%00.00%216.129.119.10
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 219 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1324.51%326.71%12916.96%00.00%00.00%51.56%121.140.62.153
    2334.65%336.92%9312.21%00.00%00.00%3310.31%119.63.193.55
    3192.68%153.14%597.80%00.00%00.00%10.31%116.71.92.150
    430.42%30.63%273.54%00.00%00.00%00.00%79.76.9.53
    530.42%30.63%212.72%00.00%00.00%00.00%72.44.46.1
    670.99%71.47%182.37%00.00%00.00%10.31%217.210.130.91
    791.27%91.89%141.86%00.00%00.00%10.31%76.231.189.204
    8182.54%61.26%111.48%00.00%00.00%10.31%75.101.186.121
    950.71%51.05%101.32%00.00%00.00%00.00%202.214.154.143
    10141.97%122.52%101.32%00.00%00.00%10.31%65.98.224.5
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 48 Total Referrers
    #HitsReferrer
    136451.34%- (Direct Request)
    28111.42%http://vanrenterghem.biz/phpBB2/index.php
    3659.17%http://kauai.vanrenterghem.biz/phpBB2/index.php
    4294.09%http://vanrenterghem.biz/phpbb2/index.php
    5243.39%http://vanrenterghem.biz/
    6121.69%http://kauai.vanrenterghem.biz/News/permalink.php
    7101.41%http://vanrenterghem.biz/phpBB2/
    8101.41%http://vanrenterghem.biz/phpbb2/
    981.13%http://vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1070.99%http://vanrenterghem.biz/index.shtml
    1160.85%http://vanrenterghem.biz/About/index.shtml
    1260.85%http://vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    1360.85%http://vanrenterghem.biz/News/permalink.php
    1450.71%http://vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    1540.56%http://kauai.vanrenterghem.biz/phpbb2/index.php
    1640.56%http://vanrenterghem.biz/Pictures/index.shtml
    1740.56%http://vanrenterghem.biz/Surfing/index.shtml
    1840.56%http://vanrenterghem.biz/robots.txt
    1940.56%http://vanrenterghem.biz/styles/header.css
    2030.42%http://handhelds.org/moin/moin.cgi/HandheldsUsers
    2130.42%http://vanrenterghem.biz/Linux/index.shtml
    2220.28%http://foto.mail.ru/mail/juliakudr.07/75/i-109.jpg
    2320.28%http://hubpages.com/hub/How-to-make-WindowsXP-to-Vista-without-paying-for-upgrade
    2420.28%http://masterofsurf.com/
    2520.28%http://masterofsurf.com/About/index.shtml
    2620.28%http://www.masterofsurf.com/
    2720.28%http://www.stumbleupon.com/refer.php
    2820.28%http://www.whois.sc/
    2910.14%http://diablo-airsoft.proboards.com
    3010.14%http://vanrenterghem.biz/News/index.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 95 Total User Agents
    #HitsUser Agent
    1567.90%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    2476.63%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    3446.21%GingerCrawler/1.0 (Language Assistant for Dyslexics; www.gingersoftware.com/crawler_agent.htm; support at ginger software dot
    4405.64%Baiduspider+(+http://www.baidu.jp/spider/)
    5324.51%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    6253.53%Baiduspider+(+http://www.baidu.com/search/spider.htm)
    7253.53%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar; (R1 1.5))
    8243.39%Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461)
    9233.24%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; MRA 4.6 (build 01425); .NET CLR 1.1.4322; .NET CLR 2.
    10223.10%Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320)
    11212.96%Mozilla/4.0 (compatible; MSIE 4.01; Digital AlphaServer 1000A 4/233; Windows NT; Powered By 64-Bit Alpha Processor)
    12182.54%Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
    13162.26%Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)
    14152.12%Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
    15141.97%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
    +

    + +Usage by Location for July 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 37 Total Locations
    #HitsFileskB FkB InkB OutLocation
    131344.15%17436.48%23430.71%00.00%00.00%United States
    2557.76%326.71%506.57%00.00%00.00%China
    3527.33%459.43%11014.42%00.00%00.00%Japan
    4507.05%296.08%557.25%00.00%00.00%Great Britain (UK)
    5415.78%408.39%13217.29%00.00%00.00%Korea (South)
    6212.96%204.19%20.29%00.00%00.00%Unresolved/Unknown
    7212.96%173.56%192.52%00.00%00.00%France
    8192.68%153.14%597.80%00.00%00.00%Pakistan
    9162.26%122.52%70.91%00.00%00.00%Russian Federation
    10152.12%71.47%162.09%00.00%00.00%Spain
    11141.97%102.10%60.77%00.00%00.00%Ukraine
    1291.27%81.68%192.55%00.00%00.00%Sweden
    1370.99%61.26%30.43%00.00%00.00%Canada
    1460.85%51.05%101.28%00.00%00.00%Belgium
    1560.85%51.05%10.11%00.00%00.00%Czech Republic
    1660.85%30.63%40.52%00.00%00.00%Germany
    1760.85%51.05%40.56%00.00%00.00%Hong Kong
    1860.85%30.63%40.52%00.00%00.00%Israel
    1960.85%51.05%20.23%00.00%00.00%Mexico
    2050.71%40.84%81.05%00.00%00.00%Ireland
    2140.56%30.63%20.20%00.00%00.00%Brazil
    2240.56%40.84%101.28%00.00%00.00%Greece
    2330.42%30.63%00.04%00.00%00.00%Egypt
    2430.42%30.63%00.04%00.00%00.00%Moldova
    2530.42%30.63%00.04%00.00%00.00%Philippines
    2630.42%30.63%00.04%00.00%00.00%Thailand
    2720.28%10.21%10.17%00.00%00.00%Costa Rica
    2820.28%10.21%10.17%00.00%00.00%Latvia
    2920.28%20.42%00.03%00.00%00.00%Taiwan
    3020.28%20.42%00.03%00.00%00.00%Uzbekistan
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200908.html b/webalizer/usage_200908.html new file mode 100644 index 0000000..0897cab --- /dev/null +++ b/webalizer/usage_200908.html @@ -0,0 +1,2196 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - August 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: August 2009
    +Generated 19-Sep-2009 07:48 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for August 2009
    Total Hits161
    Total Files128
    Total Pages121
    Total Visits75
    Total kB Files509
    Total kB In0
    Total kB Out0
    Total Unique Sites64
    Total Unique URLs19
    Total Unique Referrers17
    Total Unique User Agents31
    .Avg Max
    Hits per Hour328
    Hits per Day80119
    Files per Day6495
    Pages per Day6097
    Visits per Day3759
    kB Files per Day255420
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK128
    Code 206 - Partial Content1
    Code 404 - Not Found32
    +

    + +Daily usage for August 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for August 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    304226.09%3325.78%2419.83%1621.33%1320.31%8917.56%00.00%00.00%
    3111973.91%9574.22%9780.17%5978.67%5382.81%42082.44%00.00%00.00%
    +

    + +Hourly usage for August 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for August 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0253.11%132.34%254.13%351.06%000.00%000.00%
    16138.07%497.03%5119.09%12254.86%000.00%000.00%
    2131.86%121.56%132.48%240.80%000.00%000.00%
    3010.62%000.00%000.00%010.12%000.00%000.00%
    4242.48%121.56%121.65%471.43%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6010.62%010.78%010.83%130.55%000.00%000.00%
    77159.32%5118.59%6129.92%361.10%000.00%000.00%
    8363.73%243.12%243.31%5112.16%000.00%000.00%
    9374.35%253.91%121.65%591.78%000.00%000.00%
    105116.83%497.03%132.48%16533064.75%000.00%000.00%
    11131.86%121.56%121.65%240.84%000.00%000.00%
    12112213.66%102116.41%102117.36%7132.58%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14253.11%243.12%243.31%471.46%000.00%000.00%
    15121.24%010.78%121.65%110.25%000.00%000.00%
    16242.48%132.34%132.48%361.25%000.00%000.00%
    17010.62%010.78%010.83%000.02%000.00%000.00%
    18253.11%132.34%243.31%481.59%000.00%000.00%
    195106.21%486.25%486.61%11214.17%000.00%000.00%
    20253.11%132.34%132.48%371.37%000.00%000.00%
    21010.62%000.00%000.00%110.23%000.00%000.00%
    22163320.50%163325.78%142923.97%17346.76%000.00%000.00%
    23242.48%132.34%010.83%240.86%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 17 of 19 Total URLs
    #HitskB FkB InkB OutURL
    15232.30%51.05%00.00%00.00%/phpBB2/
    22918.01%7414.49%00.00%00.00%/
    384.97%00.00%00.00%00.00%*
    442.48%193.66%00.00%00.00%/About/
    542.48%61.25%00.00%00.00%/News/
    631.86%387.53%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    731.86%132.52%00.00%00.00%/Linux/
    831.86%61.15%00.00%00.00%/Pictures/
    931.86%81.58%00.00%00.00%/Surfing/
    1031.86%40.81%00.00%00.00%/favicon.ico
    1131.86%20.31%00.00%00.00%/styles/header.css
    1231.86%00.07%00.00%00.00%/styles/main.css
    1321.24%61.18%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1421.24%30.61%00.00%00.00%/News/permalink.php
    1521.24%00.04%00.00%00.00%/phpBB2/viewtopic.php
    1610.62%30.57%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    1710.62%30.61%00.00%00.00%/Pictures/20050409_New_York/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 19 Total URLs By kB F
    #HitskB FkB InkB OutURL
    12918.01%7414.49%00.00%00.00%/
    231.86%387.53%00.00%00.00%/JossWhedonandTelevisionCreativity.shtml
    342.48%193.66%00.00%00.00%/About/
    431.86%132.52%00.00%00.00%/Linux/
    531.86%81.58%00.00%00.00%/Surfing/
    642.48%61.25%00.00%00.00%/News/
    721.24%61.18%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    831.86%61.15%00.00%00.00%/Pictures/
    95232.30%51.05%00.00%00.00%/phpBB2/
    1031.86%40.81%00.00%00.00%/favicon.ico
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Entry Pages
    #HitsVisitsURL
    15232.30%3852.05%/phpBB2/
    22918.01%2635.62%/
    342.48%22.74%/About/
    421.24%22.74%/News/permalink.php
    521.24%22.74%/phpBB2/viewtopic.php
    684.97%11.37%*
    742.48%11.37%/News/
    810.62%11.37%/Pictures/20050409_New_York/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Exit Pages
    #HitsVisitsURL
    15232.30%3046.88%/phpBB2/
    22918.01%2640.62%/
    331.86%34.69%/Surfing/
    421.24%23.12%/phpBB2/viewtopic.php
    584.97%11.56%*
    642.48%11.56%/About/
    742.48%11.56%/News/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 64 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    12012.42%2015.62%5611.06%00.00%00.00%2026.67%119.63.193.55
    295.59%86.25%214.05%00.00%00.00%11.33%194.8.75.251
    395.59%86.25%214.05%00.00%00.00%11.33%91.214.46.18
    484.97%86.25%00.00%00.00%00.00%11.33%192.168.1.2
    574.35%75.47%183.55%00.00%00.00%11.33%151.1.155.124
    663.73%43.12%71.47%00.00%00.00%22.67%66.249.71.117
    753.11%43.12%81.56%00.00%00.00%11.33%78.137.163.133
    842.48%43.12%407.80%00.00%00.00%00.00%174.51.73.49
    942.48%32.34%40.86%00.00%00.00%11.33%72.30.142.83
    1042.48%43.12%91.71%00.00%00.00%00.00%82.112.214.252
    1131.86%32.34%00.06%00.00%00.00%11.33%143.90.221.194
    1231.86%21.56%10.27%00.00%00.00%22.67%195.2.240.117
    1331.86%32.34%00.06%00.00%00.00%11.33%212.46.162.130
    1431.86%32.34%00.06%00.00%00.00%11.33%221.214.27.252
    1531.86%21.56%28255.30%00.00%00.00%00.00%74.6.149.96
    1621.24%00.00%10.24%00.00%00.00%00.00%119.63.193.56
    1721.24%21.56%00.04%00.00%00.00%11.33%121.129.47.166
    1821.24%21.56%00.04%00.00%00.00%11.33%173.45.93.20
    1921.24%21.56%00.04%00.00%00.00%11.33%193.254.217.250
    2021.24%10.78%20.34%00.00%00.00%11.33%193.47.80.42
    2121.24%10.78%10.25%00.00%00.00%11.33%194.8.74.65
    2221.24%10.78%10.25%00.00%00.00%11.33%194.8.75.192
    2321.24%10.78%10.25%00.00%00.00%11.33%194.8.75.42
    2421.24%10.78%10.25%00.00%00.00%11.33%194.8.75.54
    2521.24%21.56%00.04%00.00%00.00%11.33%208.98.50.211
    2621.24%21.56%00.04%00.00%00.00%11.33%208.98.50.219
    2721.24%00.00%20.46%00.00%00.00%00.00%58.61.164.140
    2821.24%10.78%10.22%00.00%00.00%11.33%65.55.106.231
    2921.24%10.78%40.75%00.00%00.00%11.33%65.55.106.235
    3021.24%10.78%61.12%00.00%00.00%11.33%65.55.207.26
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 64 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    131.86%21.56%28255.30%00.00%00.00%00.00%74.6.149.96
    22012.42%2015.62%5611.06%00.00%00.00%2026.67%119.63.193.55
    342.48%43.12%407.80%00.00%00.00%00.00%174.51.73.49
    495.59%86.25%214.05%00.00%00.00%11.33%194.8.75.251
    595.59%86.25%214.05%00.00%00.00%11.33%91.214.46.18
    674.35%75.47%183.55%00.00%00.00%11.33%151.1.155.124
    742.48%43.12%91.71%00.00%00.00%00.00%82.112.214.252
    853.11%43.12%81.56%00.00%00.00%11.33%78.137.163.133
    963.73%43.12%71.47%00.00%00.00%22.67%66.249.71.117
    1021.24%10.78%61.12%00.00%00.00%11.33%65.55.207.26
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 14 of 17 Total Referrers
    #HitsReferrer
    19156.52%- (Direct Request)
    22716.77%http://vanrenterghem.biz/phpBB2/index.php
    31710.56%http://kauai.vanrenterghem.biz/phpBB2/index.php
    474.35%http://vanrenterghem.biz/phpbb2/index.php
    531.86%http://www.stumbleupon.com/refer.php
    621.24%http://vanrenterghem.biz/
    721.24%http://vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml
    821.24%http://vanrenterghem.biz/styles/header.css
    910.62%http://images.google.it/imgres
    1010.62%http://vanrenterghem.biz/phpBB2/
    1110.62%http://vanrenterghem.biz/phpbb2/
    1210.62%http://vanrenterghem.biz/robots.txt
    1310.62%http://www.cheap-24h.com/Marlboro-cigarettes
    1410.62%www.seventwentyfour.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 31 Total User Agents
    #HitsUser Agent
    12716.77%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    22213.66%Baiduspider+(+http://www.baidu.jp/spider/)
    31911.80%Mozilla/0.91 Beta (Windows)
    41811.18%Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320)
    584.97%Apache/2.2.12 (Debian) (internal dummy connection)
    663.73%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    763.73%msnbot/2.0b (+http://search.msn.com/msnbot.htm)
    853.11%Mozilla/5.0 (Yahoo-MMCrawler/4.0; mailto:vertical-crawl-support@yahoo-inc.com)
    942.48%Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
    1042.48%Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
    1142.48%Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20070308 Minefield/3.0a1
    1231.86%Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)
    1331.86%Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
    1431.86%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    1521.24%LinkWalker/2.0
    +

    + +Usage by Location for August 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 21 of 21 Total Locations
    #HitsFileskB FkB InkB OutLocation
    13924.22%2821.88%35269.11%00.00%00.00%United States
    22716.77%2519.53%5811.40%00.00%00.00%Japan
    31911.80%1713.28%224.31%00.00%00.00%Unresolved/Unknown
    41811.18%1310.16%265.08%00.00%00.00%Great Britain (UK)
    5148.70%1410.94%275.32%00.00%00.00%Italy
    684.97%53.91%30.68%00.00%00.00%China
    753.11%21.56%40.80%00.00%00.00%Canada
    853.11%32.34%30.50%00.00%00.00%France
    953.11%43.12%81.56%00.00%00.00%Ireland
    1053.11%32.34%30.52%00.00%00.00%Russian Federation
    1121.24%21.56%00.04%00.00%00.00%Indonesia
    1221.24%21.56%00.04%00.00%00.00%Korea (South)
    1321.24%10.78%10.25%00.00%00.00%Romania
    1421.24%21.56%00.04%00.00%00.00%Saudi Arabia
    1521.24%21.56%00.04%00.00%00.00%Ukraine
    1610.62%10.78%00.02%00.00%00.00%United Arab Emirates
    1710.62%10.78%00.02%00.00%00.00%Angola
    1810.62%10.78%10.22%00.00%00.00%Germany
    1910.62%10.78%00.02%00.00%00.00%Denmark
    2010.62%10.78%00.02%00.00%00.00%Macau
    2110.62%10.78%00.02%00.00%00.00%Thailand
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200909.html b/webalizer/usage_200909.html new file mode 100644 index 0000000..65fee79 --- /dev/null +++ b/webalizer/usage_200909.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - September 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: September 2009
    +Generated 05-Nov-2009 08:05 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for September 2009
    Total Hits5
    Total Files5
    Total Pages5
    Total Visits1
    Total kB Files0
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs1
    Total Unique Referrers1
    Total Unique User Agents1
    .Avg Max
    Hits per Hour05
    Hits per Day55
    Files per Day55
    Pages per Day55
    Visits per Day11
    kB Files per Day00
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5
    +

    + +Daily usage for September 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for September 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    135100.00%5100.00%5100.00%1100.00%1100.00%00.00%00.00%00.00%
    +

    + +Hourly usage for September 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for September 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7000.00%000.00%000.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    1255100.00%55100.00%55100.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs
    #HitskB FkB InkB OutURL
    15100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs By kB F
    #HitskB FkB InkB OutURL
    15100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    15100.00%1100.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%00.00%00.00%00.00%1100.00%192.168.1.2
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%00.00%00.00%00.00%1100.00%192.168.1.2
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    15100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    15100.00%Apache/2.2.12 (Debian) (internal dummy connection)
    +

    + +Usage by Location for September 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    15100.00%5100.00%00.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_200911.html b/webalizer/usage_200911.html new file mode 100644 index 0000000..14397ec --- /dev/null +++ b/webalizer/usage_200911.html @@ -0,0 +1,920 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - November 2009 + + + +

    Usage Statistics for kauai

    + +Summary Period: November 2009
    +Generated 13-May-2010 08:02 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for November 2009
    Total Hits5
    Total Files5
    Total Pages1
    Total Visits1
    Total kB Files8
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs5
    Total Unique Referrers3
    Total Unique User Agents1
    .Avg Max
    Hits per Hour05
    Hits per Day55
    Files per Day55
    Pages per Day11
    Visits per Day11
    kB Files per Day88
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5
    +

    + +Daily usage for November 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for November 2009
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    55100.00%5100.00%1100.00%1100.00%1100.00%8100.00%00.00%00.00%
    +

    + +Hourly usage for November 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for November 2009
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7000.00%000.00%000.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    1755100.00%55100.00%11100.00%88100.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 5 Total URLs
    #HitskB FkB InkB OutURL
    1120.00%113.44%00.00%00.00%/
    2120.00%116.60%00.00%00.00%/favicon.ico
    3120.00%16.40%00.00%00.00%/styles/header.css
    4120.00%01.37%00.00%00.00%/styles/main.css
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 5 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1120.00%116.60%00.00%00.00%/favicon.ico
    2120.00%113.44%00.00%00.00%/
    3120.00%16.40%00.00%00.00%/styles/header.css
    4120.00%01.37%00.00%00.00%/styles/main.css
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    1120.00%1100.00%/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%8100.00%00.00%00.00%1100.00%192.168.11.2
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%8100.00%00.00%00.00%1100.00%192.168.11.2
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Referrers
    #HitsReferrer
    1240.00%- (Direct Request)
    2240.00%http://192.168.11.2/
    3120.00%http://192.168.11.2/styles/header.css
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    15100.00%Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091028 Iceweasel/3.5.4 (Debian-3.5.4-1)
    +

    + +Usage by Location for November 2009

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    15100.00%5100.00%8100.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201005.html b/webalizer/usage_201005.html new file mode 100644 index 0000000..3adf21f --- /dev/null +++ b/webalizer/usage_201005.html @@ -0,0 +1,1891 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - May 2010 + + + +

    Usage Statistics for kauai

    + +Summary Period: May 2010
    +Generated 12-Jun-2010 07:53 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for May 2010
    Total Hits76
    Total Files45
    Total Pages40
    Total Visits28
    Total kB Files88
    Total kB In0
    Total kB Out0
    Total Unique Sites26
    Total Unique URLs13
    Total Unique Referrers6
    Total Unique User Agents18
    .Avg Max
    Hits per Hour111
    Hits per Day3843
    Files per Day2230
    Pages per Day2029
    Visits per Day1417
    kB Files per Day4456
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK45
    Code 304 - Not Modified4
    Code 401 - Unauthorized1
    Code 404 - Not Found26
    +

    + +Daily usage for May 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for May 2010
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    304356.58%3066.67%2972.50%1760.71%1661.54%5663.67%00.00%00.00%
    313343.42%1533.33%1127.50%1139.29%1453.85%3236.33%00.00%00.00%
    +

    + +Hourly usage for May 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for May 2010
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0256.58%124.44%000.00%244.58%000.00%000.00%
    1011.32%000.00%000.00%111.17%000.00%000.00%
    2133.95%124.44%125.00%133.30%000.00%000.00%
    3011.32%000.00%000.00%111.16%000.00%000.00%
    4011.32%012.22%000.00%121.96%000.00%000.00%
    5133.95%012.22%125.00%122.54%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7011.32%012.22%000.00%121.96%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    961317.11%61226.67%61230.00%010.82%000.00%000.00%
    10256.58%248.89%137.50%366.85%000.00%000.00%
    11367.89%124.44%012.50%244.19%000.00%000.00%
    12011.32%012.22%012.50%133.20%000.00%000.00%
    13245.26%012.22%012.50%122.74%000.00%000.00%
    14133.95%136.67%137.50%377.68%000.00%000.00%
    15133.95%012.22%012.50%255.53%000.00%000.00%
    16011.32%012.22%012.50%133.20%000.00%000.00%
    17122.63%012.22%012.50%122.43%000.00%000.00%
    18122.63%124.44%125.00%366.41%000.00%000.00%
    19122.63%012.22%012.50%244.37%000.00%000.00%
    20245.26%136.67%137.50%377.71%000.00%000.00%
    21122.63%012.22%012.50%122.44%000.00%000.00%
    22379.21%012.22%012.50%478.33%000.00%000.00%
    23367.89%248.89%2410.00%81517.42%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 13 of 13 Total URLs
    #HitskB FkB InkB OutURL
    12026.32%4348.58%00.00%00.00%/
    21114.47%00.00%00.00%00.00%*
    333.95%1112.68%00.00%00.00%/About/
    422.63%22.67%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    522.63%33.92%00.00%00.00%/Linux/logitech.shtml
    622.63%21.98%00.00%00.00%/Pictures/
    722.63%00.00%00.00%00.00%/styles/header.css
    822.63%00.00%00.00%00.00%/styles/main.css
    911.32%22.55%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    1011.32%10.63%00.00%00.00%/News/
    1111.32%11.56%00.00%00.00%/favicon.ico
    1211.32%00.12%00.00%00.00%/phpBB2/
    1311.32%00.12%00.00%00.00%/phpBB2/viewtopic.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 13 Total URLs By kB F
    #HitskB FkB InkB OutURL
    12026.32%4348.58%00.00%00.00%/
    233.95%1112.68%00.00%00.00%/About/
    322.63%33.92%00.00%00.00%/Linux/logitech.shtml
    422.63%22.67%00.00%00.00%/Linux/iPAQ_and_obexserver.shtml
    511.32%22.55%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    622.63%21.98%00.00%00.00%/Pictures/
    711.32%11.56%00.00%00.00%/favicon.ico
    811.32%10.63%00.00%00.00%/News/
    911.32%00.12%00.00%00.00%/phpBB2/
    1011.32%00.12%00.00%00.00%/phpBB2/viewtopic.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Entry Pages
    #HitsVisitsURL
    12026.32%2074.07%/
    222.63%27.41%/Pictures/
    31114.47%13.70%*
    433.95%13.70%/About/
    511.32%13.70%/News/
    611.32%13.70%/phpBB2/
    711.32%13.70%/phpBB2/viewtopic.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 7 of 7 Total Exit Pages
    #HitsVisitsURL
    12026.32%1869.23%/
    233.95%27.69%/About/
    322.63%27.69%/Pictures/
    41114.47%13.85%*
    511.32%13.85%/News/
    611.32%13.85%/phpBB2/
    711.32%13.85%/phpBB2/viewtopic.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 26 of 26 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    11418.42%715.56%1617.91%00.00%00.00%517.86%77.88.25.27
    21114.47%1124.44%00.00%00.00%00.00%13.57%192.168.11.10
    3810.53%24.44%55.28%00.00%00.00%00.00%67.195.111.37
    479.21%715.56%2022.43%00.00%00.00%725.00%119.63.193.55
    545.26%36.67%1314.98%00.00%00.00%13.57%203.6.203.60
    633.95%24.44%33.53%00.00%00.00%13.57%38.99.98.63
    733.95%24.44%32.96%00.00%00.00%27.14%66.249.71.118
    822.63%12.22%44.36%00.00%00.00%13.57%114.111.36.26
    922.63%12.22%11.33%00.00%00.00%13.57%193.252.118.175
    1022.63%12.22%22.43%00.00%00.00%13.57%207.46.13.98
    1122.63%00.00%11.40%00.00%00.00%00.00%216.129.119.10
    1222.63%00.00%11.40%00.00%00.00%00.00%216.129.119.44
    1322.63%12.22%22.44%00.00%00.00%13.57%64.246.161.30
    1422.63%12.22%44.37%00.00%00.00%13.57%88.191.108.76
    1511.32%00.00%10.76%00.00%00.00%00.00%119.63.193.56
    1611.32%00.00%10.70%00.00%00.00%00.00%119.63.198.10
    1711.32%00.00%10.70%00.00%00.00%00.00%119.63.198.3
    1811.32%12.22%22.07%00.00%00.00%13.57%193.252.118.173
    1911.32%00.00%11.16%00.00%00.00%00.00%207.46.199.180
    2011.32%00.00%11.17%00.00%00.00%00.00%207.46.199.185
    2111.32%12.22%33.20%00.00%00.00%13.57%208.80.193.30
    2211.32%12.22%00.12%00.00%00.00%13.57%213.5.66.151
    2311.32%00.00%10.70%00.00%00.00%00.00%216.129.119.43
    2411.32%12.22%33.20%00.00%00.00%13.57%74.222.5.146
    2511.32%12.22%00.12%00.00%00.00%13.57%81.52.143.29
    2611.32%12.22%11.27%00.00%00.00%13.57%81.52.143.35
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 26 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    179.21%715.56%2022.43%00.00%00.00%725.00%119.63.193.55
    21418.42%715.56%1617.91%00.00%00.00%517.86%77.88.25.27
    345.26%36.67%1314.98%00.00%00.00%13.57%203.6.203.60
    4810.53%24.44%55.28%00.00%00.00%00.00%67.195.111.37
    522.63%12.22%44.37%00.00%00.00%13.57%88.191.108.76
    622.63%12.22%44.36%00.00%00.00%13.57%114.111.36.26
    733.95%24.44%33.53%00.00%00.00%13.57%38.99.98.63
    811.32%12.22%33.20%00.00%00.00%13.57%208.80.193.30
    911.32%12.22%33.20%00.00%00.00%13.57%74.222.5.146
    1033.95%24.44%32.96%00.00%00.00%27.14%66.249.71.118
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 6 of 6 Total Referrers
    #HitsReferrer
    16990.79%- (Direct Request)
    222.63%http://vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    322.63%http://vanrenterghem.biz/Linux/iPAQ_and_obexserver.shtml
    411.32%http://kauai.vanrenterghem.biz/
    511.32%http://kauai.vanrenterghem.biz/phpBB2/viewtopic.php
    611.32%http://whois.domaintools.com/vanrenterghem.biz
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 18 Total User Agents
    #HitsUser Agent
    11418.42%Yandex/1.01.001 (compatible; Win16; I)
    21114.47%Apache/2.2.15 (Debian) (internal dummy connection)
    3810.53%Baiduspider+(+http://www.baidu.jp/spider/)
    467.89%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    556.58%Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
    656.58%Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)
    745.26%CatchBot/2.0; +http://www.catchbot.com
    845.26%msnbot/2.0b (+http://search.msn.com/msnbot.htm)
    933.95%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    1033.95%Mozilla/5.0 (compatible; ScoutJet; +http://www.scoutjet.com/)
    1122.63%Baiduspider+(+http://www.baidu.com/search/spider.htm)
    1222.63%Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp)
    1322.63%Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.0.13) Gecko/2009073022 Firefox/3.5.2 (.NET CLR 3.5.30729) SurveyBot/2.3 (
    1422.63%Mozilla/5.0 (compatible; MJ12bot/v1.3.3; http://www.majestic12.co.uk/bot.php?+)
    1522.63%Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
    +

    + +Usage by Location for May 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 8 of 8 Total Locations
    #HitsFileskB FkB InkB OutLocation
    12735.53%1022.22%2528.88%00.00%00.00%United States
    21418.42%715.56%1617.91%00.00%00.00%Russian Federation
    31114.47%1124.44%00.00%00.00%00.00%Unresolved/Unknown
    41013.16%715.56%2224.59%00.00%00.00%Japan
    579.21%511.11%89.16%00.00%00.00%France
    645.26%36.67%1314.98%00.00%00.00%Australia
    722.63%12.22%44.36%00.00%00.00%Korea (South)
    811.32%12.22%00.12%00.00%00.00%Netherlands
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201006.html b/webalizer/usage_201006.html new file mode 100644 index 0000000..e512723 --- /dev/null +++ b/webalizer/usage_201006.html @@ -0,0 +1,2288 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - June 2010 + + + +

    Usage Statistics for kauai

    + +Summary Period: June 2010
    +Generated 10-Jul-2010 07:46 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for June 2010
    Total Hits674
    Total Files515
    Total Pages556
    Total Visits81
    Total kB Files1393
    Total kB In0
    Total kB Out0
    Total Unique Sites68
    Total Unique URLs19
    Total Unique Referrers24
    Total Unique User Agents42
    .Avg Max
    Hits per Hour4114
    Hits per Day112291
    Files per Day85286
    Pages per Day92285
    Visits per Day1319
    kB Files per Day232782
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK515
    Code 304 - Not Modified11
    Code 401 - Unauthorized3
    Code 403 - Forbidden1
    Code 404 - Not Found132
    Code 405 - Method Not Allowed12
    +

    + +Daily usage for June 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for June 2010
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    2029143.18%28655.53%28551.26%1012.35%1116.18%78256.15%00.00%00.00%
    2116624.63%14427.96%13824.82%1720.99%2232.35%40328.97%00.00%00.00%
    22345.04%132.52%142.52%911.11%1623.53%312.21%00.00%00.00%
    23588.61%336.41%264.68%1923.46%2029.41%614.35%00.00%00.00%
    24375.49%163.11%183.24%1113.58%1623.53%493.49%00.00%00.00%
    258813.06%234.47%7513.49%1518.52%1623.53%674.84%00.00%00.00%
    +

    + +Hourly usage for June 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for June 2010
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0020.30%000.00%000.00%020.15%000.00%000.00%
    1181.19%030.58%040.72%190.65%000.00%000.00%
    2181.19%030.58%030.54%170.52%000.00%000.00%
    32131.93%050.97%050.90%2120.88%000.00%000.00%
    4050.74%020.39%020.36%160.46%000.00%000.00%
    5171.04%030.58%030.54%150.36%000.00%000.00%
    610629.20%181.55%106010.79%6382.74%000.00%000.00%
    7050.74%000.00%000.00%140.28%000.00%000.00%
    82113119.44%2112624.47%2012422.30%5533023.67%000.00%000.00%
    9050.74%010.19%010.18%140.28%000.00%000.00%
    101101.48%181.55%181.44%2110.80%000.00%000.00%
    113182.67%1101.94%161.08%2151.06%000.00%000.00%
    121111.63%020.39%020.36%180.60%000.00%000.00%
    13127210.68%106412.43%116611.87%2917612.66%000.00%000.00%
    142162.37%2132.52%2122.16%5322.29%000.00%000.00%
    15148712.91%148416.31%148515.29%3822516.16%000.00%000.00%
    16191.34%040.78%050.90%180.56%000.00%000.00%
    17030.45%030.58%020.36%170.48%000.00%000.00%
    18181.19%181.55%181.44%3211.49%000.00%000.00%
    194274.01%3214.08%2173.06%8513.63%000.00%000.00%
    20181.19%020.39%030.54%140.32%000.00%000.00%
    2110659.64%106312.23%106311.33%3018012.92%000.00%000.00%
    22148512.61%127314.17%127313.13%3621515.45%000.00%000.00%
    23191.34%191.75%040.72%4221.59%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 17 of 19 Total URLs
    #HitskB FkB InkB OutURL
    142763.35%116183.35%00.00%00.00%/
    2233.41%20.17%00.00%00.00%/phpBB2/
    3131.93%00.00%00.00%00.00%*
    4111.63%40.28%00.00%00.00%/styles/header.css
    5111.63%10.04%00.00%00.00%/styles/main.css
    681.19%201.45%00.00%00.00%/About/
    771.04%80.59%00.00%00.00%/Pictures/
    840.59%161.12%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    930.45%40.30%00.00%00.00%/favicon.ico
    1020.30%60.44%00.00%00.00%/Linux/
    1120.30%110.80%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    1220.30%60.42%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    1320.30%30.25%00.00%00.00%/Linux/logitech.shtml
    1420.30%10.08%00.00%00.00%/News/
    1520.30%40.28%00.00%00.00%/Surfing/
    1610.15%00.02%00.00%00.00%/styles/newspage.css
    1710.15%30.20%00.00%00.00%http://www.yahoo.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 19 Total URLs By kB F
    #HitskB FkB InkB OutURL
    142763.35%116183.35%00.00%00.00%/
    281.19%201.45%00.00%00.00%/About/
    340.59%161.12%00.00%00.00%/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    420.30%110.80%00.00%00.00%/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    571.04%80.59%00.00%00.00%/Pictures/
    620.30%60.44%00.00%00.00%/Linux/
    720.30%60.42%00.00%00.00%/Linux/imode_on_iPAQ_running_Familiar.shtml
    830.45%40.30%00.00%00.00%/favicon.ico
    9111.63%40.28%00.00%00.00%/styles/header.css
    1020.30%40.28%00.00%00.00%/Surfing/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Entry Pages
    #HitsVisitsURL
    142763.35%4458.67%/
    2233.41%1722.67%/phpBB2/
    371.04%45.33%/Pictures/
    4131.93%34.00%*
    581.19%22.67%/About/
    620.30%22.67%/News/
    720.30%11.33%/Linux/
    820.30%11.33%/Surfing/
    910.15%11.33%http://www.yahoo.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 9 of 9 Total Exit Pages
    #HitsVisitsURL
    142763.35%4156.94%/
    2233.41%1419.44%/phpBB2/
    371.04%68.33%/Pictures/
    4131.93%34.17%*
    581.19%34.17%/About/
    620.30%22.78%/News/
    720.30%11.39%/Linux/
    820.30%11.39%/Surfing/
    910.15%11.39%http://www.yahoo.com/
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 30 of 68 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    138557.12%38574.76%108477.83%00.00%00.00%44.94%192.168.11.72
    2537.86%10.19%342.41%00.00%00.00%11.23%217.97.165.125
    3345.04%183.50%402.89%00.00%00.00%1518.52%95.108.245.251
    4243.56%91.75%120.85%00.00%00.00%67.41%67.195.110.165
    5121.78%122.33%00.00%00.00%00.00%22.47%192.168.11.10
    6121.78%00.00%110.82%00.00%00.00%00.00%92.62.43.77
    791.34%91.75%130.96%00.00%00.00%11.23%193.190.253.146
    891.34%81.55%292.05%00.00%00.00%11.23%80.245.113.150
    981.19%81.55%201.46%00.00%00.00%11.23%199.82.243.73
    1060.89%61.17%171.21%00.00%00.00%67.41%119.63.193.55
    1160.89%00.00%40.26%00.00%00.00%00.00%216.129.119.44
    1260.89%00.00%40.27%00.00%00.00%00.00%216.129.119.45
    1360.89%00.00%40.27%00.00%00.00%11.23%88.191.117.43
    1450.74%50.97%181.27%00.00%00.00%00.00%200.109.249.138
    1550.74%00.00%30.22%00.00%00.00%00.00%216.129.119.43
    1650.74%40.78%80.57%00.00%00.00%11.23%66.235.124.132
    1750.74%20.39%40.28%00.00%00.00%33.70%66.249.65.154
    1840.59%30.58%10.10%00.00%00.00%11.23%66.249.65.171
    1930.45%20.39%10.10%00.00%00.00%11.23%109.172.40.96
    2030.45%00.00%30.22%00.00%00.00%00.00%207.46.199.198
    2130.45%20.39%10.10%00.00%00.00%11.23%84.51.107.253
    2230.45%30.58%90.68%00.00%00.00%11.23%88.214.206.82
    2330.45%20.39%10.10%00.00%00.00%11.23%89.37.199.88
    2430.45%20.39%10.10%00.00%00.00%11.23%91.201.66.71
    2520.30%10.19%20.13%00.00%00.00%11.23%116.125.141.6
    2620.30%00.00%10.10%00.00%00.00%00.00%119.63.193.56
    2720.30%20.39%30.21%00.00%00.00%11.23%184.73.134.180
    2820.30%10.19%10.08%00.00%00.00%11.23%193.252.118.175
    2920.30%00.00%20.15%00.00%00.00%00.00%207.46.199.185
    3020.30%10.19%20.15%00.00%00.00%11.23%207.46.204.192
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 10 of 68 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    138557.12%38574.76%108477.83%00.00%00.00%44.94%192.168.11.72
    2345.04%183.50%402.89%00.00%00.00%1518.52%95.108.245.251
    3537.86%10.19%342.41%00.00%00.00%11.23%217.97.165.125
    491.34%81.55%292.05%00.00%00.00%11.23%80.245.113.150
    581.19%81.55%201.46%00.00%00.00%11.23%199.82.243.73
    650.74%50.97%181.27%00.00%00.00%00.00%200.109.249.138
    760.89%61.17%171.21%00.00%00.00%67.41%119.63.193.55
    891.34%91.75%130.96%00.00%00.00%11.23%193.190.253.146
    9243.56%91.75%120.85%00.00%00.00%67.41%67.195.110.165
    10121.78%00.00%110.82%00.00%00.00%00.00%92.62.43.77
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 22 of 24 Total Referrers
    #HitsReferrer
    160489.61%- (Direct Request)
    2192.82%http://vanrenterghem.biz/
    360.89%http://vanrenterghem.biz/phpBB2/
    460.89%http://vanrenterghem.biz/phpbb2/
    550.74%http://vanrenterghem.biz/About/index.shtml
    640.59%http://vanrenterghem.biz/Pictures/index.shtml
    730.45%http://vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml
    830.45%http://vanrenterghem.biz/Linux/HOWTO_run_GSR_on_Familiar_0.8.2.shtml
    930.45%http://vanrenterghem.biz/News/index.php
    1030.45%http://vanrenterghem.biz/index.shtml
    1120.30%http://kauai.vanrenterghem.biz/phpBB2/index.php
    1220.30%http://kauai.vanrenterghem.biz/robots.txt
    1320.30%http://vanrenterghem.biz/styles/header.css
    1420.30%http://www.google.co.ve/search
    1510.15%http://kauai.vanrenterghem.biz/phpbb2/index.php
    1610.15%http://vanrenterghem.biz/Linux/index.shtml
    1710.15%http://vanrenterghem.biz/Surfing/index.shtml
    1810.15%http://vanrenterghem.biz/robots.txt
    1910.15%http://www.facebook.com/l.php
    2010.15%http://www.google.com/search
    2110.15%vanrenterghem.biz
    2210.15%vanrenterghem.biz/
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Search Strings
    #HitsSearch String
    11100.00%frederik vanrenterghem
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 15 of 42 Total User Agents
    #HitsUser Agent
    1537.86%Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
    2345.04%Yandex/1.01.001 (compatible; Win16; I)
    3213.12%Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
    4172.52%Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
    5121.78%Apache/2.2.15 (Debian) (internal dummy connection)
    6121.78%Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)
    7101.48%msnbot/2.0b (+http://search.msn.com/msnbot.htm)
    891.34%Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.02 Bork-edition [en]
    991.34%Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
    1091.34%Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
    1181.19%Baiduspider+(+http://www.baidu.jp/spider/)
    1281.19%Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0
    1381.19%Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    1460.89%Morfeus strikes again.
    1550.74%Baiduspider+(+http://www.baidu.com/search/spider.htm)
    +

    + +Usage by Location for June 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 16 of 16 Total Locations
    #HitsFileskB FkB InkB OutLocation
    139758.90%39777.09%108477.83%00.00%00.00%Unresolved/Unknown
    29514.09%438.35%1017.27%00.00%00.00%United States
    3537.86%10.19%342.41%00.00%00.00%Poland
    4497.27%285.44%533.78%00.00%00.00%Russian Federation
    5182.67%81.55%151.06%00.00%00.00%France
    6142.08%112.14%312.24%00.00%00.00%Ukraine
    7131.93%61.17%211.53%00.00%00.00%Japan
    8121.78%00.00%110.82%00.00%00.00%Norway
    991.34%91.75%130.96%00.00%00.00%Belgium
    1050.74%50.97%181.27%00.00%00.00%Venezuela
    1130.45%20.39%10.10%00.00%00.00%Moldova
    1220.30%10.19%20.13%00.00%00.00%Korea (South)
    1310.15%10.19%30.20%00.00%00.00%Egypt
    1410.15%10.19%30.20%00.00%00.00%Ireland
    1510.15%10.19%00.00%00.00%00.00%Italy
    1610.15%10.19%30.20%00.00%00.00%Sweden
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201007.html b/webalizer/usage_201007.html new file mode 100644 index 0000000..bb9476e --- /dev/null +++ b/webalizer/usage_201007.html @@ -0,0 +1,1072 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - July 2010 + + + +

    Usage Statistics for kauai

    + +Summary Period: July 2010
    +Generated 06-Sep-2010 08:13 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for July 2010
    Total Hits9
    Total Files7
    Total Pages7
    Total Visits3
    Total kB Files4
    Total kB In0
    Total kB Out0
    Total Unique Sites4
    Total Unique URLs3
    Total Unique Referrers1
    Total Unique User Agents4
    .Avg Max
    Hits per Hour07
    Hits per Day99
    Files per Day77
    Pages per Day77
    Visits per Day33
    kB Files per Day44
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK7
    Code 404 - Not Found2
    +

    + +Daily usage for July 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for July 2010
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    299100.00%7100.00%7100.00%3100.00%4100.00%4100.00%00.00%00.00%
    +

    + +Hourly usage for July 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for July 2010
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7000.00%000.00%000.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    197777.78%6685.71%6685.71%1117.38%000.00%000.00%
    202222.22%1114.29%1114.29%3382.62%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total URLs
    #HitskB FkB InkB OutURL
    1555.56%00.00%00.00%00.00%*
    2111.11%367.82%00.00%00.00%/
    3111.11%02.52%00.00%00.00%/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total URLs By kB F
    #HitskB FkB InkB OutURL
    1111.11%367.82%00.00%00.00%/
    2111.11%02.52%00.00%00.00%/phpBB2/memberlist.php
    3555.56%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 3 of 3 Total Entry Pages
    #HitsVisitsURL
    1555.56%133.33%*
    2111.11%133.33%/
    3111.11%133.33%/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 2 of 2 Total Exit Pages
    #HitsVisitsURL
    1555.56%150.00%*
    2111.11%150.00%/phpBB2/memberlist.php
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    1555.56%571.43%00.00%00.00%00.00%133.33%192.168.11.10
    2222.22%114.29%117.38%00.00%00.00%133.33%193.47.80.42
    3111.11%114.29%367.82%00.00%00.00%133.33%119.63.193.55
    4111.11%00.00%114.80%00.00%00.00%00.00%216.129.119.44
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    1111.11%114.29%367.82%00.00%00.00%133.33%119.63.193.55
    2222.22%114.29%117.38%00.00%00.00%133.33%193.47.80.42
    3111.11%00.00%114.80%00.00%00.00%00.00%216.129.119.44
    4555.56%571.43%00.00%00.00%00.00%133.33%192.168.11.10
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    19100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total User Agents
    #HitsUser Agent
    1555.56%Apache/2.2.15 (Debian) (internal dummy connection)
    2222.22%Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)
    3111.11%Baiduspider+(+http://www.baidu.jp/spider/)
    4111.11%Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
    +

    + +Usage by Location for July 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 4 of 4 Total Locations
    #HitsFileskB FkB InkB OutLocation
    1555.56%571.43%00.00%00.00%00.00%Unresolved/Unknown
    2222.22%114.29%117.38%00.00%00.00%France
    3111.11%114.29%367.82%00.00%00.00%Japan
    4111.11%00.00%114.80%00.00%00.00%United States
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201009.html b/webalizer/usage_201009.html new file mode 100644 index 0000000..e0b0175 --- /dev/null +++ b/webalizer/usage_201009.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - September 2010 + + + +

    Usage Statistics for kauai

    + +Summary Period: September 2010
    +Generated 08-Aug-2011 07:58 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for September 2010
    Total Hits8
    Total Files8
    Total Pages8
    Total Visits1
    Total kB Files0
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs1
    Total Unique Referrers1
    Total Unique User Agents1
    .Avg Max
    Hits per Hour08
    Hits per Day88
    Files per Day88
    Pages per Day88
    Visits per Day11
    kB Files per Day00
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK8
    +

    + +Daily usage for September 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for September 2010
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    198100.00%8100.00%8100.00%1100.00%1100.00%00.00%00.00%00.00%
    +

    + +Hourly usage for September 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for September 2010
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    788100.00%88100.00%88100.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs
    #HitskB FkB InkB OutURL
    18100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs By kB F
    #HitskB FkB InkB OutURL
    18100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    18100.00%1100.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    18100.00%8100.00%00.00%00.00%00.00%1100.00%192.168.11.10
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    18100.00%8100.00%00.00%00.00%00.00%1100.00%192.168.11.10
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    18100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    18100.00%Apache/2.2.16 (Debian) (internal dummy connection)
    +

    + +Usage by Location for September 2010

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    18100.00%8100.00%00.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201108.html b/webalizer/usage_201108.html new file mode 100644 index 0000000..8a2cae5 --- /dev/null +++ b/webalizer/usage_201108.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - August 2011 + + + +

    Usage Statistics for kauai

    + +Summary Period: August 2011
    +Generated 12-Oct-2011 08:10 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for August 2011
    Total Hits5
    Total Files5
    Total Pages5
    Total Visits1
    Total kB Files0
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs1
    Total Unique Referrers1
    Total Unique User Agents1
    .Avg Max
    Hits per Hour05
    Hits per Day55
    Files per Day55
    Pages per Day55
    Visits per Day11
    kB Files per Day00
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5
    +

    + +Daily usage for August 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for August 2011
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    265100.00%5100.00%5100.00%1100.00%1100.00%00.00%00.00%00.00%
    +

    + +Hourly usage for August 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for August 2011
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7000.00%000.00%000.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    1055100.00%55100.00%55100.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs
    #HitskB FkB InkB OutURL
    15100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs By kB F
    #HitskB FkB InkB OutURL
    15100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    15100.00%1100.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%00.00%00.00%00.00%1100.00%192.168.12.10
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%00.00%00.00%00.00%1100.00%192.168.12.10
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    15100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    15100.00%Apache/2.2.16 (Debian) (internal dummy connection)
    +

    + +Usage by Location for August 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    15100.00%5100.00%00.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201109.html b/webalizer/usage_201109.html new file mode 100644 index 0000000..ff8dc41 --- /dev/null +++ b/webalizer/usage_201109.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - September 2011 + + + +

    Usage Statistics for kauai

    + +Summary Period: September 2011
    +Generated 12-Oct-2011 08:10 CEST
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for September 2011
    Total Hits5
    Total Files5
    Total Pages5
    Total Visits1
    Total kB Files0
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs1
    Total Unique Referrers1
    Total Unique User Agents1
    .Avg Max
    Hits per Hour05
    Hits per Day55
    Files per Day55
    Pages per Day55
    Visits per Day11
    kB Files per Day00
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK5
    +

    + +Daily usage for September 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for September 2011
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    185100.00%5100.00%5100.00%1100.00%1100.00%00.00%00.00%00.00%
    +

    + +Hourly usage for September 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for September 2011
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    7000.00%000.00%000.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    955100.00%55100.00%55100.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs
    #HitskB FkB InkB OutURL
    15100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs By kB F
    #HitskB FkB InkB OutURL
    15100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    15100.00%1100.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%00.00%00.00%00.00%1100.00%192.168.12.10
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    15100.00%5100.00%00.00%00.00%00.00%1100.00%192.168.12.10
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    15100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    15100.00%Apache/2.2.16 (Debian) (internal dummy connection)
    +

    + +Usage by Location for September 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    15100.00%5100.00%00.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201110.html b/webalizer/usage_201110.html new file mode 100644 index 0000000..cc51dbe --- /dev/null +++ b/webalizer/usage_201110.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - October 2011 + + + +

    Usage Statistics for kauai

    + +Summary Period: October 2011
    +Generated 12-Nov-2011 07:56 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for October 2011
    Total Hits10
    Total Files10
    Total Pages10
    Total Visits1
    Total kB Files0
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs1
    Total Unique Referrers1
    Total Unique User Agents1
    .Avg Max
    Hits per Hour010
    Hits per Day1010
    Files per Day1010
    Pages per Day1010
    Visits per Day11
    kB Files per Day00
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK10
    +

    + +Daily usage for October 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for October 2011
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    3010100.00%10100.00%10100.00%1100.00%1100.00%00.00%00.00%00.00%
    +

    + +Hourly usage for October 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for October 2011
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    71010100.00%1010100.00%1010100.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs
    #HitskB FkB InkB OutURL
    110100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs By kB F
    #HitskB FkB InkB OutURL
    110100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    110100.00%1100.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    110100.00%10100.00%00.00%00.00%00.00%1100.00%Unknown
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    110100.00%10100.00%00.00%00.00%00.00%1100.00%Unknown
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    110100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    110100.00%Apache/2.2.16 (Debian) (internal dummy connection)
    +

    + +Usage by Location for October 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    110100.00%10100.00%00.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/usage_201111.html b/webalizer/usage_201111.html new file mode 100644 index 0000000..eb3fdab --- /dev/null +++ b/webalizer/usage_201111.html @@ -0,0 +1,844 @@ + + + + + + + + + + + + + + + + + + + + Usage Statistics for kauai - November 2011 + + + +

    Usage Statistics for kauai

    + +Summary Period: November 2011
    +Generated 05-Dec-2011 08:05 CET
    +
    +
    +
    +

    + +[Daily Statistics] +[Hourly Statistics] +[URLs] +[Entry] +[Exit] +[Sites] +[Referrers] +[Search] +[Agents] +[Locations] + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Monthly Statistics for November 2011
    Total Hits12
    Total Files12
    Total Pages12
    Total Visits1
    Total kB Files0
    Total kB In0
    Total kB Out0
    Total Unique Sites1
    Total Unique URLs1
    Total Unique Referrers1
    Total Unique User Agents1
    .Avg Max
    Hits per Hour012
    Hits per Day1212
    Files per Day1212
    Pages per Day1212
    Visits per Day11
    kB Files per Day00
    kB In per Day00
    kB Out per Day00
    +Hits by Response Code
    Code 200 - OK12
    +

    + +Daily usage for November 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Daily Statistics for November 2011
    DayHitsFilesPagesVisitsSiteskB FkB InkB Out
    2712100.00%12100.00%12100.00%1100.00%1100.00%00.00%00.00%00.00%
    +

    + +Hourly usage for November 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Hourly Statistics for November 2011
    HourHitsFilesPageskB FkB InkB Out
    AvgTotalAvgTotalAvgTotalAvgTotalAvgTotalAvgTotal
    0000.00%000.00%000.00%000.00%000.00%000.00%
    1000.00%000.00%000.00%000.00%000.00%000.00%
    2000.00%000.00%000.00%000.00%000.00%000.00%
    3000.00%000.00%000.00%000.00%000.00%000.00%
    4000.00%000.00%000.00%000.00%000.00%000.00%
    5000.00%000.00%000.00%000.00%000.00%000.00%
    6000.00%000.00%000.00%000.00%000.00%000.00%
    71212100.00%1212100.00%1212100.00%000.00%000.00%000.00%
    8000.00%000.00%000.00%000.00%000.00%000.00%
    9000.00%000.00%000.00%000.00%000.00%000.00%
    10000.00%000.00%000.00%000.00%000.00%000.00%
    11000.00%000.00%000.00%000.00%000.00%000.00%
    12000.00%000.00%000.00%000.00%000.00%000.00%
    13000.00%000.00%000.00%000.00%000.00%000.00%
    14000.00%000.00%000.00%000.00%000.00%000.00%
    15000.00%000.00%000.00%000.00%000.00%000.00%
    16000.00%000.00%000.00%000.00%000.00%000.00%
    17000.00%000.00%000.00%000.00%000.00%000.00%
    18000.00%000.00%000.00%000.00%000.00%000.00%
    19000.00%000.00%000.00%000.00%000.00%000.00%
    20000.00%000.00%000.00%000.00%000.00%000.00%
    21000.00%000.00%000.00%000.00%000.00%000.00%
    22000.00%000.00%000.00%000.00%000.00%000.00%
    23000.00%000.00%000.00%000.00%000.00%000.00%
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs
    #HitskB FkB InkB OutURL
    112100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total URLs By kB F
    #HitskB FkB InkB OutURL
    112100.00%00.00%00.00%00.00%*
    +

    + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Entry Pages
    #HitsVisitsURL
    112100.00%1100.00%*
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites
    #HitsFileskB FkB InkB OutVisitsHostname
    112100.00%12100.00%00.00%00.00%00.00%1100.00%127.0.0.1
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Sites By kB F
    #HitsFileskB FkB InkB OutVisitsHostname
    112100.00%12100.00%00.00%00.00%00.00%1100.00%127.0.0.1
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Referrers
    #HitsReferrer
    112100.00%- (Direct Request)
    +

    + + + + + + + + + + + + + + + +
    Top 1 of 1 Total User Agents
    #HitsUser Agent
    112100.00%Apache/2.2.21 (Debian) (internal dummy connection)
    +

    + +Usage by Location for November 2011

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Top 1 of 1 Total Locations
    #HitsFileskB FkB InkB OutLocation
    112100.00%12100.00%00.00%00.00%00.00%Unresolved/Unknown
    +

    +

    +

    +


    + + + + +
    +Generated by +Webalizer Version 2.01 + +
    + + + + + diff --git a/webalizer/webalizer.current b/webalizer/webalizer.current new file mode 100644 index 0000000..b79f994 --- /dev/null +++ b/webalizer/webalizer.current @@ -0,0 +1,643 @@ +# Webalizer V2.01-10 Incremental Data - 04/04/2009 06:25:31 +2009 4 4 6 25 31 +795 580 71 72 38 30 2489605 364 260 0 0 0 +12 13 185 1 4 +382 263 1075399 23 169 82 0 0 +157 114 495177 34 85 79 0 0 +185 141 606259 32 85 78 0 0 +71 62 312770 12 25 21 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 +33 26 93625 15 0 0 +28 23 84512 16 0 0 +41 29 126126 20 0 0 +29 22 117427 13 0 0 +40 29 151957 21 0 0 +33 24 101746 16 0 0 +28 25 93065 14 0 0 +39 23 86453 20 0 0 +17 16 59709 13 0 0 +12 8 36805 6 0 0 +19 14 116769 11 0 0 +10 8 42757 7 0 0 +26 20 87491 16 0 0 +27 22 67898 10 0 0 +16 14 29949 7 0 0 +12 10 51522 8 0 0 +19 16 49540 10 0 0 +14 12 38338 7 0 0 +51 45 73630 16 0 0 +20 14 66021 10 0 0 +51 41 117330 27 0 0 +197 111 641051 65 0 0 +18 14 75732 9 0 0 +15 14 80152 7 0 0 +0 +0 +0 +580 +0 +0 +0 +0 +0 +0 +0 +1 +24 +0 +80 +0 +0 +2 +3 +0 +0 +101 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +4 +0 +0 +0 +0 +0 +# -urls- +/phpBB2/templates/subSilver/images/icon_mini_faq.gif +1 1 0 219 0 0 0 0 +/laconica/theme/base/css/print.css +0 10 0 3056 0 0 0 0 +* +0 23 0 0 4 2 0 0 +/Pictures/ +0 5 0 4460 2 0 0 0 +/ +0 211 0 562295 205 171 0 0 +/laconica/theme/default/images/icons/twotone/green/arrow-left.gif +1 1 0 73 0 0 0 0 +/phpBB2/templates/subSilver/images/whosonline.gif +1 2 0 929 0 0 0 0 +/News/permalink.php +0 4 0 4325 0 0 0 0 +/phppages/rss.php +0 3 0 7152 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_latest_reply.gif +1 2 0 135 0 0 0 0 +/laconica/js/xbImportNode.js +0 10 0 6636 0 0 0 0 +/phpBB2/ +0 30 0 472454 25 3 0 0 +/laconica/theme/default/images/icons/twotone/green/disfavourite.gif +1 1 0 88 0 0 0 0 +/laconica/js/jquery.form.js +0 10 0 92300 0 0 0 0 +/laconica/js/util.js +0 10 0 36364 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/trash.gif +1 1 0 77 0 0 0 0 +/styles/newspage.css +0 5 0 3770 0 0 0 0 +/Pictures/20021229_Serial_Console/ +0 3 0 3126 3 1 0 0 +/laconica/theme/base/images/icons/icon_rss.png +0 10 0 3108 0 0 0 0 +/Linux/logitech.shtml +0 2 0 3522 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_mini_message.gif +1 1 0 232 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_mini_members.gif +1 1 0 223 0 0 0 0 +/styles/header.css +0 20 0 14168 0 0 0 0 +/phpBB2/templates/subSilver/images/cellpic3.gif +1 1 0 257 0 0 0 0 +/laconica/install.php +0 9 0 3377 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/quote.gif +1 1 0 79 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_mini_profile.gif +1 1 0 236 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/edit.gif +1 1 0 75 0 0 0 0 +/Linux/ +0 5 0 9330 4 1 0 0 +/Linux/imode_on_iPAQ_running_Familiar.shtml +0 5 0 14920 0 0 0 0 +/Linux/GPRS_on_iPAQ_running_Familiar.shtml +0 4 0 9164 0 0 0 0 +/Surfing/ +0 5 0 5920 3 0 0 0 +/laconica/theme/default/images/icons/twotone/green/news.gif +1 1 0 76 0 0 0 0 +/phpBB2/faq.php +0 1 0 11705 0 0 0 0 +/phpBB2/viewforum.php +0 1 0 8291 0 0 0 0 +/phpBB2/profile.php +0 2 0 10136 0 0 0 0 +/phpBB2/templates/subSilver/images/folder_locked_big.gif +1 1 0 673 0 0 0 0 +/phpBB2/memberlist.php +0 3 0 15021 0 0 0 0 +/phpBB2/templates/subSilver/images/cellpic1.gif +1 1 0 246 0 0 0 0 +/laconica/theme/base/css/display.css +0 13 0 86705 0 0 0 0 +/About/ +0 8 0 17836 2 1 0 0 +/phpBB2/templates/subSilver/images/icon_mini_groups.gif +1 1 0 222 0 0 0 0 +/phpBB2/templates/subSilver/images/folder_new_big.gif +1 1 0 663 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/mail.gif +1 1 0 82 0 0 0 0 +/phpBB2/viewtopic.php +0 88 0 536592 0 0 0 0 +/favicon.ico +0 5 0 7030 0 0 0 0 +/Pictures/dsc00383_thumb.jpg +1 1 0 9531 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/arrow-right.gif +1 1 0 74 0 0 0 0 +/laconica/ +0 30 0 58509 1 0 0 0 +/News/ +0 6 0 11766 5 4 0 0 +/laconica/theme/default/images/icons/twotone/green/shield.gif +1 1 0 85 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_mini_search.gif +1 1 0 237 0 0 0 0 +/phpBB2/templates/subSilver/formIE.css +0 2 0 708 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/favourite.gif +1 1 0 73 0 0 0 0 +/laconica/theme/base/images/icons/icon_atom.png +0 10 0 3280 0 0 0 0 +/phpBB2/search.php +0 12 0 53956 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_mini_login.gif +1 1 0 233 0 0 0 0 +/phpBB2/templates/subSilver/images/icon_mini_register.gif +1 1 0 224 0 0 0 0 +/laconica/theme/base/images/icons/icon_foaf.gif +1 1 0 1144 0 0 0 0 +/laconica/js/jquery.min.js +0 10 0 221088 0 0 0 0 +/Pics/logo-100.png +0 11 0 33251 0 0 0 0 +/Linux/e_launchOrMoveApp_sh.shtml +0 2 0 2640 0 0 0 0 +/Linux/iPAQ_and_obexserver.shtml +0 3 0 3606 0 0 0 0 +/linux/ +0 1 0 4373 1 0 0 0 +/Linux/website_quarter_circle_ll.pl.shtml +0 2 0 3592 0 0 0 0 +/styles/main.css +0 20 0 1668 0 0 0 0 +/phpBB2/templates/subSilver/images/cellpic2.jpg +1 1 0 480 0 0 0 0 +/phpBB2/groupcp.php +0 1 0 4366 0 0 0 0 +/phpBB2/login.php +0 1 0 4183 0 0 0 0 +/phpBB2/templates/subSilver/images/folder_big.gif +1 1 0 677 0 0 0 0 +/laconica/theme/default/images/icons/twotone/green/reply.gif +1 1 0 79 0 0 0 0 +/laconica/theme/default/css/display.css +0 13 0 25810 0 0 0 0 +# End Of Table - urls +# -sites- (monthly) +66.235.124.132 +0 5 4 8916 1 1238778789 +/ 0 0 +195.189.96.186 +0 1 0 1214 1 1238652814 +- 0 0 +218.91.251.222 +0 1 1 20434 1 1238667171 +- 0 0 +77.88.26.25 +0 2 1 2220 1 1238722373 +- 0 0 +192.168.1.2 +0 23 23 0 4 1238745010 +* 0 0 +66.235.124.57 +0 2 1 4063 0 0 +- 0 0 +208.80.195.27 +0 1 1 2882 1 1238630832 +- 0 0 +208.80.195.39 +0 1 1 2882 1 1238734564 +- 0 0 +194.250.161.122 +0 6 0 3960 1 1238558802 +- 0 0 +93.182.175.37 +0 1 1 1141 1 1238657935 +- 0 0 +220.181.32.22 +0 79 79 227678 79 1238825426 +/ 0 0 +82.208.46.25 +0 1 1 20435 1 1238771031 +/phpBB2/ 0 0 +81.52.143.29 +0 2 1 5815 1 1238791677 +/phpBB2/ 0 0 +220.181.32.72 +0 1 0 652 0 0 +- 0 0 +66.249.71.79 +0 124 113 542946 8 1238825262 +/Pictures/ 0 0 +81.52.143.30 +0 1 1 1141 1 1238724035 +- 0 0 +81.52.143.32 +0 1 1 1866 1 1238669454 +- 0 0 +81.52.143.35 +0 1 1 1141 1 1238736114 +- 0 0 +87.118.90.189 +0 4 2 40869 2 1238671232 +- 0 0 +24.222.195.169 +0 2 1 20435 1 1238589604 +- 0 0 +65.55.106.108 +0 1 0 1085 0 0 +- 0 0 +206.169.171.51 +0 9 0 5916 1 1238639226 +- 0 0 +119.63.193.55 +0 20 20 57640 20 1238818061 +/ 0 0 +119.63.193.56 +0 4 0 2607 0 0 +- 0 0 +64.246.161.42 +0 2 1 4090 1 1238635929 +- 0 0 +65.55.106.141 +0 1 0 1079 0 0 +- 0 0 +65.55.106.163 +0 1 0 1079 0 0 +- 0 0 +67.205.67.178 +0 2 2 7255 1 1238625227 +- 0 0 +192.100.124.219 +0 6 6 11109 1 1238763490 +/About/ 0 0 +87.225.35.15 +0 2 1 20435 1 1238713151 +- 0 0 +221.136.64.122 +0 1 0 342 0 0 +- 0 0 +194.72.238.61 +0 2 2 0 2 1238616023 +- 0 0 +66.249.71.204 +0 31 27 138277 3 1238822684 +/phpBB2/ 0 0 +79.114.94.214 +0 1 1 5168 1 1238676376 +- 0 0 +82.80.154.119 +0 2 1 20438 1 1238786355 +/phpBB2/ 0 0 +95.28.230.240 +0 2 1 20435 1 1238675812 +- 0 0 +72.30.142.224 +0 10 5 5506 1 1238787844 +/ 0 0 +88.191.79.43 +0 9 8 13874 5 1238652237 +- 0 0 +61.135.168.39 +0 79 79 227678 79 1238825344 +/ 0 0 +87.248.169.14 +0 6 4 79618 2 1238753266 +/phpBB2/ 0 0 +88.198.157.210 +0 2 1 20435 1 1238706256 +- 0 0 +61.135.168.173 +0 1 0 1079 0 0 +- 0 0 +69.49.102.173 +0 1 0 0 0 0 +- 0 0 +194.8.75.109 +0 3 2 39809 1 1238812028 +/phpBB2/ 0 0 +74.55.161.226 +0 2 2 7656 1 1238642258 +- 0 0 +220.181.50.207 +0 1 1 1141 1 1238684864 +- 0 0 +220.181.50.210 +0 1 1 1141 1 1238785882 +/ 0 0 +220.181.50.213 +0 1 1 1141 1 1238727597 +- 0 0 +83.101.44.34 +0 220 124 604398 3 1238623136 +- 0 0 +87.118.86.147 +0 2 1 20434 1 1238817792 +/phpBB2/ 0 0 +65.55.106.204 +0 1 0 1079 0 0 +- 0 0 +65.55.106.209 +0 2 0 2158 0 0 +- 0 0 +194.8.75.151 +0 2 1 20438 1 1238802891 +/phpBB2/ 0 0 +88.191.94.206 +0 8 7 20324 4 1238654870 +- 0 0 +67.195.37.107 +0 14 7 10811 3 1238678756 +- 0 0 +67.195.37.116 +0 8 6 12154 0 0 +- 0 0 +65.55.106.241 +0 1 0 1085 0 0 +- 0 0 +195.2.241.162 +0 2 1 20434 1 1238732739 +- 0 0 +195.2.240.126 +0 2 1 20437 1 1238737160 +- 0 0 +95.71.66.245 +0 1 1 20435 1 1238593248 +- 0 0 +79.219.171.233 +0 10 10 26175 1 1238620296 +- 0 0 +217.133.58.58 +0 12 1 33948 1 1238744997 +/phpBB2/ 0 0 +74.6.8.97 +0 10 5 9075 1 1238736441 +- 0 0 +64.56.65.37 +0 3 3 8646 1 1238616657 +- 0 0 +38.99.44.104 +0 4 1 3395 1 1238553599 +- 0 0 +38.99.44.105 +0 2 0 1303 0 0 +- 0 0 +193.252.149.13 +0 1 1 1866 1 1238794780 +/About/ 0 0 +193.252.149.14 +0 2 1 1836 1 1238691144 +- 0 0 +193.252.149.15 +0 2 1 2613 1 1238760367 +/News/ 0 0 +72.30.87.107 +0 19 5 31618 2 1238790987 +/ 0 0 +88.191.88.79 +0 5 4 8220 2 1238807491 +- 0 0 +# End Of Table - sites (monthly) +# -sites- (daily) +220.181.32.22 +0 7 7 20174 7 1238825426 +/ 0 0 +66.249.71.79 +0 30 30 144365 1 1238825262 +/Pictures/ 0 0 +119.63.193.55 +0 2 2 5764 2 1238818061 +/ 0 0 +119.63.193.56 +0 1 0 652 0 0 +- 0 0 +65.55.106.141 +0 1 0 1079 0 0 +- 0 0 +66.249.71.204 +0 9 8 49123 1 1238822684 +/phpBB2/ 0 0 +72.30.142.224 +0 2 0 671 0 0 +- 0 0 +61.135.168.39 +0 7 7 20174 7 1238825344 +/ 0 0 +194.8.75.109 +0 3 2 39809 1 1238812028 +/phpBB2/ 0 0 +87.118.86.147 +0 2 1 20434 1 1238817792 +/phpBB2/ 0 0 +67.195.37.116 +0 4 3 5063 0 0 +- 0 0 +88.191.88.79 +0 3 2 5462 1 1238807491 +- 0 0 +# End Of Table - sites (daily) +# -referrers- +http://kauai.vanrenterghem.biz/phpBB2/groupcp.php +0 2 +- (Direct Request) +1 505 +http://vanrenterghem.biz//vanrenterghem.biz/viewforum.php +0 3 +http://partnerpage.google.com/vanrenterghem.biz +0 1 +http://kauai.vanrenterghem.biz/styles/header.css +0 1 +http://kauai.vanrenterghem.biz/profile.php +0 1 +http://www.google.de/search +0 1 +http://vanrenterghem.biz/phpBB2/index.php +0 10 +http://www.metroblink.com/ +0 1 +http://vanrenterghem.biz/laconica/install.php +0 16 +http://vanrenterghem.biz/Linux/index.shtml +0 2 +http://kauai.vanrenterghem.biz/phpBB2/memberlist.php +0 2 +http://whois.domaintools.com/vanrenterghem.biz +0 1 +http://vanrenterghem.biz/laconica/ +0 99 +http://vanrenterghem.biz/News/permalink.php +0 6 +http://vanrenterghem.biz/styles/header.css +0 8 +http://kauai.vanrenterghem.biz/index.php +0 1 +http://identi.ca/frederikv +0 1 +http://vanrenterghem.biz/index.shtml +0 11 +http://vanrenterghem.biz/ +0 24 +http://vanrenterghem.biz/Surfing/index.shtml +0 2 +http://vanrenterghem.biz/phpBB2/ +0 6 +http://all4nothing.info/Health/ +0 1 +http://vanrenterghem.biz/Linux/imode_on_iPAQ_running_Familiar.shtml +0 2 +http://vanrenterghem.biz/profile.php +0 9 +http://vanrenterghem.biz/Linux/GPRS_on_iPAQ_running_Familiar.shtml +0 3 +http://vanrenterghem.biz/index.php +0 2 +http://kauai.vanrenterghem.biz/ +0 6 +http://kauai.vanrenterghem.biz/phpBB2/index.php +0 22 +http://www.whois.sc/ +0 1 +http://vanrenterghem.biz/Pictures/index.shtml +0 4 +http://kauai.vanrenterghem.biz/News/index.php +0 3 +http://vanrenterghem.biz/viewforum.php +0 11 +http://www.keywordspy.com/keyword-research/vanrenterghem.biz +0 3 +http://www.netcraft.com/survey/ +0 2 +http://vanrenterghem.biz//vanrenterghem.biz/profile.php +0 2 +http://vanrenterghem.biz/laconica/theme/default/css/display.css +0 18 +http://vanrenterghem.biz/About/index.shtml +0 2 +# End Of Table - referrers +# -agents- +Mozilla/0.6 +0 3 +Baiduspider+(+http://www.baidu.jp/spider/) +0 24 +MSIE 7.0 +0 5 +Netcraft Web Server Survey)" +0 2 +Googlebot-Image/1.0 +0 2 +Googlebot/2.1 +0 119 +MSIE 5.5 +0 1 +Baiduspider+(+http://www.baidu.com/search/spider.htm) +0 162 +Googlebot-Mobile/2.1 +0 7 +Opera 9.0 +0 2 +Opera 7.5 +0 2 +Opera 7.6 +0 1 +OffByOne +0 2 +Win16 +0 2 +Mozilla/5.0 +0 242 +Googlebot-M +0 27 +Ask Jeeves/Teoma +0 2 +SurveyBot/2.3 (Whois Source) +0 2 +Apache/2.2.11 (Debian) PHP/5.2.9-1 with Suhosin-Patch (internal dummy connection) +0 9 +MSIE 6.0 +0 51 +Yahoo! Slurp/3.0 +0 48 +Apache/2.2.11 (Debian) PHP/5.2.6-3 with Suhosin-Patch (internal dummy connection) +0 14 +Opera 8.0 +0 3 +Opera 6.0 +0 2 +Konqueror/4.2 +0 27 +Toata dragostea mea pentru diavola(diavola is a girl,and this is not an pbot or browser...) +0 9 +Wget/1.10.2+(+Red+Hat+modified) +0 1 +Yahoo! Slurp +0 13 +msnbot/2.0b (+http://search.msn.com/msnbot.htm) +0 7 +libwww-perl/5.812 +0 2 +# End Of Table - agents +# -search strings- +# End Of Table - search strings +# -usernames- +# End Of Table - usernames diff --git a/webalizer/webalizer.hist b/webalizer/webalizer.hist new file mode 100644 index 0000000..6f6d16a --- /dev/null +++ b/webalizer/webalizer.hist @@ -0,0 +1,12 @@ +1 2009 7215 5447 459 41225 1 31 1882 985 0 0 +2 2009 4818 3444 410 33508 1 28 1260 787 0 0 +3 2009 5764 4304 473 30399 1 31 1192 842 0 0 +4 2009 859 694 142 3388 26 30 714 412 0 0 +5 2010 76 45 26 88 30 31 40 28 0 0 +6 2010 674 515 68 1393 20 25 556 81 0 0 +7 2010 9 7 4 4 29 29 7 3 0 0 +8 2011 5 5 1 0 26 26 5 1 0 0 +9 2011 5 5 1 0 18 18 5 1 0 0 +10 2011 10 10 1 0 30 30 10 1 0 0 +11 2011 12 12 1 0 27 27 12 1 0 0 +12 2008 6463 4923 464 59823 1 31 1313 741 0 0