2022 day 3 part 1 (bash)
This commit is contained in:
111
2022/day03/Makefile
Normal file
111
2022/day03/Makefile
Normal file
@@ -0,0 +1,111 @@
|
||||
# AOC daily Makefile - GNU make only.
|
||||
#
|
||||
# Copyright (C) 2021-2022 Bruno Raoult ("br")
|
||||
# Licensed under the GNU General Public License v3.0 or later.
|
||||
# Some rights reserved. See COPYING.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with this
|
||||
# program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||
#
|
||||
|
||||
INPUT := input/input.txt
|
||||
SHELL := /bin/bash
|
||||
|
||||
CC := gcc
|
||||
BEAR := bear
|
||||
CCLSFILE:= compile_commands.json
|
||||
|
||||
LIB := aoc_$(shell uname -m)
|
||||
INCDIR := ../include
|
||||
LIBDIR := ../lib
|
||||
LDFLAGS := -L$(LIBDIR)
|
||||
#LDLIB := -l$(LIB) -lm
|
||||
LDLIB := -l$(LIB)
|
||||
|
||||
export LD_LIBRARY_PATH = $(LIBDIR)
|
||||
|
||||
CFLAGS += -std=gnu11
|
||||
CFLAGS += -O2
|
||||
CFLAGS += -g
|
||||
# for gprof
|
||||
# CFLAGS += -pg
|
||||
CFLAGS += -Wall
|
||||
CFLAGS += -Wextra
|
||||
CFLAGS += -march=native
|
||||
# Next one may be useful for valgrind (some invalid instructions)
|
||||
# CFLAGS += -mno-tbm
|
||||
CFLAGS += -Wmissing-declarations
|
||||
CFLAGS += -Wno-unused-result
|
||||
|
||||
CFLAGS += -DDEBUG_DEBUG # activate general debug (debug.c)
|
||||
CFLAGS += -DDEBUG_POOL # memory pools management
|
||||
|
||||
VALGRIND := valgrind
|
||||
VALGRINDFLAGS := --leak-check=full --show-leak-kinds=all --track-origins=yes \
|
||||
--sigill-diagnostics=yes --quiet --show-error-list=yes
|
||||
|
||||
|
||||
TIME := \time -f "\ttime: %E real, %U user, %S sys\n\tcontext-switch:\t%c+%w, page-faults: %F+%R\n"
|
||||
export PATH := .:$(PATH)
|
||||
|
||||
.PHONY: clean all compile assembly memcheck memcheck1 memcheck2 part1 part2 ccls bear org
|
||||
|
||||
all: README.org ccls part1 part2
|
||||
|
||||
memcheck: memcheck1 memcheck2
|
||||
|
||||
memcheck1: aoc-c
|
||||
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 1 < $(INPUT)
|
||||
|
||||
memcheck2: aoc-c
|
||||
@$(VALGRIND) $(VALGRINDFLAGS) aoc-c -p 2 < $(INPUT)
|
||||
@#@valgrind -s --track-origins=yes aoc-c -p 2 < $(INPUT)
|
||||
|
||||
compile: aoc-c
|
||||
|
||||
cpp: aoc-c.i
|
||||
|
||||
assembly: aoc-c.s
|
||||
|
||||
part1: aoc-c
|
||||
@$(TIME) aoc.bash -p 1 < $(INPUT) 2>&1
|
||||
@$(TIME) aoc-c -p 1 < $(INPUT)
|
||||
|
||||
part2: aoc-c
|
||||
@$(TIME) aoc.bash -p 2 < $(INPUT) 2>&1
|
||||
@$(TIME) aoc-c -p 2 < $(INPUT)
|
||||
|
||||
ccls: $(CCLSFILE)
|
||||
|
||||
clean:
|
||||
@rm -f aoc-c core* vgcore* gmon.out aoc-c.s aoc-c.i README.html compile_commands.json
|
||||
|
||||
aoc-c: aoc-c.c common.c
|
||||
@echo compiling $<
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCDIR) $^ $(LDLIB) -o $@
|
||||
|
||||
# generate pre-processed file (.i) and assembler (.s)
|
||||
%.i: %.c
|
||||
@echo generating $@
|
||||
@$(CC) -E $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||
|
||||
%.s: %.c
|
||||
@echo generating $@
|
||||
@$(CC) -S -fverbose-asm $(CFLAGS) -I $(INCDIR) $< -o $@
|
||||
|
||||
# generate README.org from README.html (must cleanup !)
|
||||
org: README.org
|
||||
|
||||
%.org: %.html
|
||||
@echo generating $@. Cleanup before commit !
|
||||
@pandoc $< -o $@
|
||||
|
||||
# generate compile_commands.json
|
||||
$(CCLSFILE): aoc-c.c Makefile
|
||||
$(BEAR) -- make clean compile
|
||||
|
||||
bear: clean
|
||||
@touch .ccls-root
|
||||
@$(BEAR) -- make compile
|
121
2022/day03/README.org
Normal file
121
2022/day03/README.org
Normal file
@@ -0,0 +1,121 @@
|
||||
** --- Day 3: Rucksack Reorganization ---
|
||||
One Elf has the important job of loading all of the
|
||||
[[https://en.wikipedia.org/wiki/Rucksack][rucksacks]] with supplies for
|
||||
the jungle journey. Unfortunately, that Elf didn't quite follow the
|
||||
packing instructions, and so a few items now need to be rearranged.
|
||||
|
||||
Each rucksack has two large /compartments/. All items of a given type
|
||||
are meant to go into exactly one of the two compartments. The Elf that
|
||||
did the packing failed to follow this rule for exactly one item type per
|
||||
rucksack.
|
||||
|
||||
The Elves have made a list of all of the items currently in each
|
||||
rucksack (your puzzle input), but they need your help finding the
|
||||
errors. Every item type is identified by a single lowercase or uppercase
|
||||
letter (that is, =a= and =A= refer to different types of items).
|
||||
|
||||
The list of items for each rucksack is given as characters all on a
|
||||
single line. A given rucksack always has the same number of items in
|
||||
each of its two compartments, so the first half of the characters
|
||||
represent items in the first compartment, while the second half of the
|
||||
characters represent items in the second compartment.
|
||||
|
||||
For example, suppose you have the following list of contents from six
|
||||
rucksacks:
|
||||
|
||||
#+begin_example
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||
#+end_example
|
||||
|
||||
- The first rucksack contains the items =vJrwpWtwJgWrhcsFMMfFFhFp=,
|
||||
which means its first compartment contains the items =vJrwpWtwJgWr=,
|
||||
while the second compartment contains the items =hcsFMMfFFhFp=. The
|
||||
only item type that appears in both compartments is lowercase =p=.
|
||||
- The second rucksack's compartments contain =jqHRNqRjqzjGDLGL= and
|
||||
=rsFMfFZSrLrFZsSL=. The only item type that appears in both
|
||||
compartments is uppercase =L=.
|
||||
- The third rucksack's compartments contain =PmmdzqPrV= and =vPwwTWBwg=;
|
||||
the only common item type is uppercase =P=.
|
||||
- The fourth rucksack's compartments only share item type =v=.
|
||||
- The fifth rucksack's compartments only share item type =t=.
|
||||
- The sixth rucksack's compartments only share item type =s=.
|
||||
|
||||
To help prioritize item rearrangement, every item type can be converted
|
||||
to a /priority/:
|
||||
|
||||
- Lowercase item types =a= through =z= have priorities 1 through 26.
|
||||
- Uppercase item types =A= through =Z= have priorities 27 through 52.
|
||||
|
||||
In the above example, the priority of the item type that appears in both
|
||||
compartments of each rucksack is 16 (=p=), 38 (=L=), 42 (=P=), 22 (=v=),
|
||||
20 (=t=), and 19 (=s=); the sum of these is =157=.
|
||||
|
||||
Find the item type that appears in both compartments of each rucksack.
|
||||
/What is the sum of the priorities of those item types?/
|
||||
|
||||
Your puzzle answer was =7878=.
|
||||
|
||||
The first half of this puzzle is complete! It provides one gold star: *
|
||||
|
||||
** --- Part Two ---
|
||||
As you finish identifying the misplaced items, the Elves come to you
|
||||
with another issue.
|
||||
|
||||
For safety, the Elves are divided into groups of three. Every Elf
|
||||
carries a badge that identifies their group. For efficiency, within each
|
||||
group of three Elves, the badge is the /only item type carried by all
|
||||
three Elves/. That is, if a group's badge is item type =B=, then all
|
||||
three Elves will have item type =B= somewhere in their rucksack, and at
|
||||
most two of the Elves will be carrying any other item type.
|
||||
|
||||
The problem is that someone forgot to put this year's updated
|
||||
authenticity sticker on the badges. All of the badges need to be pulled
|
||||
out of the rucksacks so the new authenticity stickers can be attached.
|
||||
|
||||
Additionally, nobody wrote down which item type corresponds to each
|
||||
group's badges. The only way to tell which item type is the right one is
|
||||
by finding the one item type that is /common between all three Elves/ in
|
||||
each group.
|
||||
|
||||
Every set of three lines in your list corresponds to a single group, but
|
||||
each group can have a different badge item type. So, in the above
|
||||
example, the first group's rucksacks are the first three lines:
|
||||
|
||||
#+begin_example
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
#+end_example
|
||||
|
||||
And the second group's rucksacks are the next three lines:
|
||||
|
||||
#+begin_example
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||
#+end_example
|
||||
|
||||
In the first group, the only item type that appears in all three
|
||||
rucksacks is lowercase =r=; this must be their badges. In the second
|
||||
group, their badge item type must be =Z=.
|
||||
|
||||
Priorities for these items must still be found to organize the sticker
|
||||
attachment efforts: here, they are 18 (=r=) for the first group and 52
|
||||
(=Z=) for the second group. The sum of these is =70=.
|
||||
|
||||
Find the item type that corresponds to the badges of each three-Elf
|
||||
group. /What is the sum of the priorities of those item types?/
|
||||
|
||||
Answer:
|
||||
|
||||
Although it hasn't changed, you can still [[file:3/input][get your
|
||||
puzzle input]].
|
||||
|
||||
You can also [Shareon
|
||||
[[https://twitter.com/intent/tweet?text=I%27ve+completed+Part+One+of+%22Rucksack+Reorganization%22+%2D+Day+3+%2D+Advent+of+Code+2022&url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F3&related=ericwastl&hashtags=AdventOfCode][Twitter]]
|
||||
[[javascript:void(0);][Mastodon]]] this puzzle.
|
70
2022/day03/aoc.bash
Executable file
70
2022/day03/aoc.bash
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# aoc.bash: Advent of Code 2022, day 2
|
||||
#
|
||||
# Copyright (C) 2022 Bruno Raoult ("br")
|
||||
# Licensed under the GNU General Public License v3.0 or later.
|
||||
# Some rights reserved. See COPYING.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with this
|
||||
# program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||
|
||||
. common.bash
|
||||
|
||||
export LANG=C
|
||||
declare -a tot=(1 2)
|
||||
|
||||
# get priority value for an item
|
||||
# $1: character
|
||||
prio() {
|
||||
local -n _val="$1"
|
||||
local _char="$2"
|
||||
|
||||
printf -v _val "%d" "'$_char"
|
||||
if [[ $_char > "Z" ]]; then # a-z
|
||||
((_val += (1 - 97) ))
|
||||
else # A-Z
|
||||
((_val += (27 - 65) ))
|
||||
fi
|
||||
}
|
||||
|
||||
parse() {
|
||||
local input half1 half2 result=""
|
||||
local -i len half i j=1 prio part1=0 line=1
|
||||
|
||||
while read -r input; do
|
||||
(( len = ${#input}, half = len/2 ))
|
||||
half1="${input:0:half}"
|
||||
half2="${input:half}"
|
||||
result=""
|
||||
|
||||
#printf "[%d] l=%d h=%d [%s / %s]\n" "$line" "$len" "$half" "$half1" "$half2"
|
||||
|
||||
#c="${half1//[^${half2}]}"
|
||||
#prio prio "${c:0:1}"
|
||||
#(( part1 += prio ))
|
||||
|
||||
for ((i = 0; i < half; ++i)); do
|
||||
c=${half1:$i:1}
|
||||
if [[ $result != *$c* && $half2 == *$c* ]]; then
|
||||
echo "found $c"
|
||||
result=$result$c
|
||||
prio prio "${c:0:1}"
|
||||
(( part1 += prio ))
|
||||
#printf "%d prio(%c)=%d tot=%d\n" "$line" "$c" "$prio" "$part1"
|
||||
fi
|
||||
done
|
||||
((j++, line++))
|
||||
echo
|
||||
done
|
||||
echo "result=$part1"
|
||||
}
|
||||
|
||||
solve() {
|
||||
res="${tot[$1]}"
|
||||
}
|
||||
|
||||
main "$@"
|
||||
exit 0
|
67
2022/day03/common.bash
Executable file
67
2022/day03/common.bash
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# common.bash: Advent of Code 2022, common bash functions
|
||||
#
|
||||
# Copyright (C) 2022 Bruno Raoult ("br")
|
||||
# Licensed under the GNU General Public License v3.0 or later.
|
||||
# Some rights reserved. See COPYING.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with this
|
||||
# program. If not, see <https://www.gnu.org/licenses/gpl-3.0-standalone.html>.
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later <https://spdx.org/licenses/GPL-3.0-or-later.html>
|
||||
|
||||
# shellcheck disable=2034
|
||||
export cmdname=${0##*/}
|
||||
export debug=0
|
||||
export res
|
||||
|
||||
shopt -s extglob
|
||||
set -o noglob
|
||||
|
||||
usage() {
|
||||
printf "usage: %s [-d DEBUG] [-p PART]\n" "$cmdname"
|
||||
exit 1
|
||||
}
|
||||
|
||||
checkargs() {
|
||||
local part=1
|
||||
while getopts p:d: todo; do
|
||||
case "$todo" in
|
||||
d)
|
||||
if [[ "$OPTARG" =~ ^[[:digit:]+]$ ]]; then
|
||||
debug="$OPTARG"
|
||||
else
|
||||
printf "%s: illegal [%s] debug level.\n" "$CMD" "$OPTARG"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
p)
|
||||
if [[ "$OPTARG" =~ ^[12]$ ]]; then
|
||||
part="$OPTARG"
|
||||
else
|
||||
printf "%s: illegal [%s] part.\n" "$CMD" "$OPTARG"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# Now check remaining argument (backup directory)
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
(( $# > 1 )) && usage
|
||||
return "$part"
|
||||
}
|
||||
|
||||
main() {
|
||||
local -i part
|
||||
|
||||
checkargs "$@"
|
||||
part=$?
|
||||
parse "$part"
|
||||
solve "$part"
|
||||
printf "%s: res=%s\n" "$cmdname" "$res"
|
||||
}
|
6
2022/day03/input/example.txt
Normal file
6
2022/day03/input/example.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
300
2022/day03/input/input.txt
Normal file
300
2022/day03/input/input.txt
Normal file
@@ -0,0 +1,300 @@
|
||||
ZNNvFWHqLNPZHHqPTHHnTGBhrrpjvmwfMmpfpjBjwpmw
|
||||
sbdzQgzgssgbglRtmjlwhjBlfrSrMt
|
||||
zgsCRzJbsdRVQCDbcgLGWWLnZNGVLLZMNZnq
|
||||
tvHhRtZGMvMHvfsrBBCTRbwbccRc
|
||||
qznnlpzzDppWlDpQpCrcrwnBNwTZnBTZrn
|
||||
PdVZJJqVZdllDPFtMjMgLjGMHvSgMF
|
||||
csbhhVDDvzlVDcbccGGvfRjDHCjNLRHRCLfmnZfR
|
||||
dFrStSTTmrrrHVfV
|
||||
MMgQMMTMVTdgWtwTPwSgWSgGbbppJzlplvhBlPbzhlhbzG
|
||||
FDJSTtSGhpPFDmFTZDpTFPmCBBrHqsCBhgBlqqrqrlRrHH
|
||||
dQwMtfdzVwWfwctwnfnQCHllzRrsNzrrgNlCgqsr
|
||||
fLfQnVjfwQfMdfvfnVvWDvtJPFGDpvZGbZpmbSPP
|
||||
TzzCrJcDrTDdLDCJDvGNPCFqlZWlvNvWpq
|
||||
RRHfjsQBFsjgjBQsWqGpNvZQqQlPPQPN
|
||||
VnHBnRVssnnjsSfBwbMSrrbTwJTcwSDF
|
||||
HJCgHCCFFFVGJWTlbqDdlqTDDpgl
|
||||
cZccSmLrfZcrmmzSQftdpDtTHdbQTDMQ
|
||||
NZZccrrBwZRPNNzmcLSSjJhGhVWCnsFnHBjGChsJ
|
||||
qwwwJHTHqdFDtZBFPfFBZFzM
|
||||
gVRcLnnWVgggnnnQgVWWNZtZrBfLBzZzBrMPPrZvPv
|
||||
GQgQSVRtsVnNRGSCdpmwspmbmDpHmhwd
|
||||
bhNgNfgwpbLMhCZMGQBmDm
|
||||
FrcHrSllcqcFFMGLBDQlMDTGlT
|
||||
FVSddRSJRjLwbjJPJw
|
||||
wzhhrTwwTrSsdHQjjSHnBjQj
|
||||
gRDCmVgRgMvtMfVMRBBBhWCHQQHGJHZJQZ
|
||||
NtgVgttVbMNmvsNlpcrLhLTNPw
|
||||
MCgjsfnscgjjgnGgJHHqHDgdHbGr
|
||||
QSSmRFPpRtPFQLQRmPzvBzzzDWqrqWWHJGGNrJJbdtVWHJDV
|
||||
BdSFdLQzRFlSLmQplffwncfscChhcsMj
|
||||
GfVmfnmJVnNVFhnhGmbmhpHvqjrzHZBjfvrtBHHZrwBt
|
||||
ddWQldlMdWMlQsLWTLQgMNwBrvjrZjNrwzZjswHqrv
|
||||
QQdTRcgTRPDlMQlQPQdhcNNnbJmbGpVnGchFmm
|
||||
CjjZCCZfvWZRHHhRtwhvPN
|
||||
mrnqlqMqBlSSLnBTLBwmHPPWhPPHtFRPWzwt
|
||||
rBVTrrMMSMLQBrndGcddWQbbdZfCZJ
|
||||
LFtdjHjLjLqHqstLTjFLFqNMnMhhZdDDNMVbWdDDbhnZ
|
||||
CrBpBGnzrzmczcllrphCZZWJMDWRbbZNMDMR
|
||||
GwgvzpzvrcmBrnfHjTgqTsgHjF
|
||||
rMPPZcplCZlZPwtSwhtBwCQQzB
|
||||
FvDGffLqqmQFwmmhzt
|
||||
TjJjJfHHVDVnHVgZZlQppcVscP
|
||||
hVcqHwhgwwwjHjjGWbvrbBGrsWVWGn
|
||||
CttPRpMmPDTWbWltlLBnGl
|
||||
pZmDFMmPMfnZwqqwfcqJdHgz
|
||||
bSJWhWJCbGGWJPStWTgRQwzDjgQQjsDW
|
||||
nFBBVQVrVBrNFMFZVpBBZFZrDgdTldgsRsslsljsRzTRjzns
|
||||
rMcZcHcBQPvbbHGP
|
||||
mSfmwqfmzrfHwFfmrwvPHqPmMFRlMDDZBCVVRCVZVlZpMRRR
|
||||
TWjdTWhTsssLTGsJNWhTQddjRMDMtNNBSCDBllMMBVtDMVRZ
|
||||
QhWTQcdhjThsdGbTLGjWHmffnmHwnwHrwqmmfcwS
|
||||
LmrsMQnnpfmMLllvTvqvFFzvFHNN
|
||||
WGRFVWdwZWZvCbJzcvJNzw
|
||||
VjGhDtWGSFRGjVVSFdjjDPBfspPnnMBLPLrrpMMm
|
||||
qqqCCJjtqtqCtqLZspHWBdSrWWSzzbzHFWBldb
|
||||
GhwwcwPFVDcNFRRGwwzmlBrBWvllrvSzlrcd
|
||||
DGGhQNNDhTpZZqqLQFQQ
|
||||
QfZmgQQZCCMLfNrgprdNvvdrTg
|
||||
hhttsBmBDcFRBlJshJcRrnjnTvNqpddNNqvndp
|
||||
JtsGJGtGGJJJHDbctllhZHmMwMQSPVPzHSLMPZmV
|
||||
DScSjZcNBZqjDDcLLfFtPfCfjfPvfv
|
||||
pTmRlWhdMwTLGwCf
|
||||
mRdWCVVglWrCmVHVrVCmdrbSzNcBDBqBZDNHqssscNzqNc
|
||||
sPMHGFMsrPNCPnNS
|
||||
ffJzllbzpZBllttBtfglgBTbSCVCmmrNFmmbFNvCFLLb
|
||||
cpZqpfgZZJtJqJJJfWHWhHdHWHjcdRdFHD
|
||||
ZZPfppvzMrlNBFcvFB
|
||||
shJgstJwWLVJwcrFFVFrBVNNqFFB
|
||||
HwWJdLHWWLcQgssHwwSQSQtQzCnZZMpZCmdzZCzpPzpCPRCj
|
||||
QCpLRbsCCQQLbQzCBQDQBBfTTffWtTctJVRNVtnfwtWV
|
||||
GvlqqlGlmMrdsvrhmlcTvwJtwNwTvfJfcWTW
|
||||
lMhgqGhddjqFFCzBBpbsSQpD
|
||||
JJwGJwVQQwVSsSMhQMQgHfgfTtrrfVTNgNNfrt
|
||||
dFDWCDdFppvDFmWWWnJTPllHmHlgrqrgggtH
|
||||
DzFbWjdRpbdFCjjRbnFbQBGhhQBBJZwMhScwZwJz
|
||||
HttvHpHmpJWtHmFNvlvdMSVdPMtLVCCMMMfcfL
|
||||
GjgzhGSGSSdCcRMVjMdc
|
||||
QshbnghgnGDnqsFrNSJFrsNs
|
||||
wJpjMwzjzdVbzPPVpbCHnqGnBqnsBrNCwgrC
|
||||
ftTLLDTQtLTGTGtFrgHrvqgQnrvQsCHH
|
||||
fTcFFfLSfFFcGFllcFhPJPjWWJSjSWzMWPdS
|
||||
ZjNdmjVQVZmvNNZNNZHWZmWtsJnwTpJJswpWwGqJhJqGpp
|
||||
FcRRcDblDMLRcRMLFFMDGsJnqhwpqTTJGwnsfnlp
|
||||
LRBrcLbbgLFgBbFqDvdHQvCCjNzzzVrZdV
|
||||
BdbLWrgdvgWvVJgWnDfNhVnqhCCpDpcq
|
||||
tSQPSTSGPMmlMPtQQPJGtGQRCcnqqfnRhCcChDqnCfRScf
|
||||
jTssPsjMQMmszPjlTtsJdFBFrJzrbJdHZFHdWH
|
||||
vCccctvvTTtZcgLGcZTbssbMWnpMpmLWqnNjpfPPfPjMPp
|
||||
wwBBlRBBwDDVFRhFlRhdRRVWPnnpMpffmmffrpWqVNPm
|
||||
ddhddRzHlQHFJcGsCztTgbNzST
|
||||
fJctfpVWcnfRLfrRwP
|
||||
vmmnvDQDZTNTmGGTqTMTvMqwBdLjBvRzBRrRBRLjjBPzBB
|
||||
GMnmqSTFFQqttcbcJWgsSt
|
||||
rHNfmfRsmfRGfDNcRmcmMQlLCGSnQwwPPCSnzQlSCl
|
||||
bsJTBsVhFsVpqFWFgPCwnQwBZzwQzZLlzn
|
||||
qggTTqvqgqbbTTFqVqgWqvNmmMMRdffftNfMDMmscR
|
||||
rFWQFszrwjsjFWvshPTCmLZLSTLwSLlgSP
|
||||
BQbcqVHNVqVpVpmClJgJJHSmZLJm
|
||||
qBNNNVdDMGBpDcDWsvdQsFrFnjttfj
|
||||
qGhmttmzhtMvhbrLdSHbdSHRzb
|
||||
WCBgQJJpjCQlgdHZrfPRPSRbNg
|
||||
jBTTDjlnjnJDJTQCVntcwtwMSvqcGFDhcvsh
|
||||
ZTrnTqMWWWnfrddMGJPgPLlPbw
|
||||
VvmGRVpBpNNmvNvjVjtpNpCNLLLJHHBdgLPdwsdsbLlwwlwb
|
||||
GmCVSCRVGmpCRVvttmpDrQZfhnzhzqnDWnrZZTQq
|
||||
DQBZHHtWHzSvZvDQWchgqsqqhrrhhcqrcZ
|
||||
jdMfwlFfFlTfndwpjjwGnNrqhPTmPSPTPPhmgrPSrh
|
||||
jlGbwGMdlnJpGFGjpnFCSJzzDDtWHCBBQBvtVC
|
||||
RrbBWBRRWSRsBBVvsPHZDwSjjPdnHwtPtH
|
||||
fTgfzMmNJpmJgfllgpjVQtDDndVQpdnHVtPp
|
||||
gGmlNclTGmGFhLVcVrvLqrvc
|
||||
QcpCTVCZVcCwLcCVvHvvVsCcNzNNSbPRzsDRDSBlsNNzDRtb
|
||||
fggMfJqgrWFpmjWMggmrfMWNSbRSPBDbNtJRtPJzlStBbN
|
||||
gdnmpWGnZvdQCvdv
|
||||
tqqcLqqDDqNtDrqHrrPWlTlTWZTMzTFzQlMPSZ
|
||||
pfnpmmppmppRGjwbjmnjwspWbQQQTMWZbCTSZCSQlCllZF
|
||||
gmpVnGmmmpjDvVLBFqqvrH
|
||||
LqBvJHZvbHGBHrBtGGQTmSVprVzhpVPDPQzQ
|
||||
CRdRgwCfhTVDzSdQ
|
||||
fRCcjgSMjfNgMMLGbGZtvBbGHv
|
||||
HgvtDDzDpvwgvvqdHPZWdMssTTddSs
|
||||
rJFrGNFVQmNFVmRnWhhsrTbhwhZTrdTd
|
||||
VQGBBBVNQClpcBvBwD
|
||||
PWlSzZGmdmGmlGmhggBpvMjvMjFgPJ
|
||||
TtLRDtQQfTVcQQQRtBsJFFccFjWhJJFMBs
|
||||
HqVCNtWHCDwdnlGwGqSr
|
||||
RwdRJgCJRGGmdMbcGbdnTnTtttLLnptMtMtMqZ
|
||||
DWsWPFrPqVPPLVCB
|
||||
zQWWsslsQHFhDSszDSFQzJJJmvcgblRgmNvCJmvNgw
|
||||
tpmFrWTtRpRTtggsSlnQpsnnlSHPsn
|
||||
bZwZjNNZGLSrVsGndPPV
|
||||
NvrcjCfbvvLBDBWfWFgRRm
|
||||
WWFMgWmMhhwDcMMMDcmLWLtQwwsjbsQHvZHbRjZfsZzH
|
||||
PTCplTCdSJJCpvPGNSvsbsfHtbQZzdHjQtjjsj
|
||||
vNGJPpqJvJvqghgFgWFmLD
|
||||
RlRpLTZCjWRjRWwpRsjHjbSbqMqMvvnbnGMnGGqQCq
|
||||
gddfDNczmgPthNcDdgPVnbbzbnJrJJGSSVJJQS
|
||||
BmDmcDmcmhffdBHlRwjRLpwlWQ
|
||||
prQlfzlWRPzgQWzlMPMRppssHHsDsHjwnHHbWDwwbwjL
|
||||
vFBJJtZNShJvZFtdSqtmqjTDVHVGDHbwVHDVsDnThH
|
||||
vcjBZZdZqvCfpzRfcgRp
|
||||
cggpqgRlSpNsgNggbjjj
|
||||
ZZSSJVLVLFDZWNGjCWWbCjsF
|
||||
vZLvfZQQfQtJVJDQShLrLfMmnldmwqwTqqMcMTMTndrm
|
||||
bQBMtBPddtMFbJFhRGzMfzvnRGRSvWnW
|
||||
TmHTqlVHwVpQqjmwGvSgSpnLpzfWGWSn
|
||||
TTrDQCDrrTmDCCCVHHQZBdZFPdsNdFBtFDhtFB
|
||||
fjpQvNZcGhGGTtQS
|
||||
DVJzvbVmHbbtSTSTRStzTM
|
||||
VDvmqllmJfjWlnplNs
|
||||
ZmdHZJjvQLdRjpmLJrqqZBhhtCschPfBPcrDfPffCD
|
||||
MWWSMMwnwlSgzWFFgSwzVwzqcfDCfChCbbtssbfDChcD
|
||||
NMqFTwGqMwgwwgjHRdHRjdmQmQTm
|
||||
TTqWPCWRhTWqPNjPJMNtrlbJFttQwwrBrlbwlc
|
||||
GfpSDGZvpQffSHDgggDZrHctFmrHncnnwwbBtBrt
|
||||
SQGfLsSLZsqMTRNMPT
|
||||
HdBdnBZJTZBBmsfwwBlh
|
||||
MjCVjzwqWrfzplzW
|
||||
vVbqCjjRgjwMbnbGHJScScZHLL
|
||||
dwwwtCdznvDDFrMrrw
|
||||
GmWLQmgQmHgcdGcsTgTDqDbSfFWfMDMfbSNqvr
|
||||
QhTLmVQHLmdLTjGGVptRnZpZBZVRpPpP
|
||||
CzjFpzRHdtBFBCqNqSbJZWcQJTSbQjMTWZ
|
||||
wGwVLlGrdVGwDnwsgfMSZvJMbWJcWlvbbMSc
|
||||
rDfsgggrGnGngsPwdVLfDnmDtzzFNCPHtzCtFHpBRqhPztzR
|
||||
mrgWzBcDtVCcQcCCdscf
|
||||
LRJhjRjPZvqSRGhGjLgMCdHpMNwQCpMHpHMS
|
||||
GRvGJRJjqPZbvGGhRjnqLJWtgFgtzTzDrFnTWrlTlllW
|
||||
cbmcddlffvbTfvFflpZzsMVNznNVlnqnzqHMNM
|
||||
StWJBQRWLRWNPNMCswRVHC
|
||||
BJQBhSWhjSthJQGGWWggJDDDfbdbbfHbddbrFrddvFvv
|
||||
jFqvqvWZWDtBJrrlrq
|
||||
TzGcbHcrmVzMGNSmTcGDtBthJCNtsJDlBCghgP
|
||||
bTrnTccnLSrrTHbnwfLjfdvRRwZFdwfR
|
||||
drHVrdVDfsDbVsdVDbVqRwbZZwCRCCCJlJThwRgT
|
||||
jFPcFpBSvtNPzSFcjcQpcQjpThZCRltGRRRJhwCwGhwgwhRm
|
||||
SQSzPBjjPPSvLqqssdnqLZLMsM
|
||||
bQTWlWlvQclNwwWlCCLStCRSSjStpj
|
||||
zVZZDdBnBmgzVsjsLthSpshdCL
|
||||
DfBnrmBmgzHBfDHmnGrNFCwQvTPvqCTwqTFGbF
|
||||
srSWJnrbmlWlbhzsWszSvPGwvgDhcjdjjfvhjvGv
|
||||
BRRQFLtNfQNMpqpQHDjdDjDcZZcvwZZHPH
|
||||
NLCNCtRQfRttRFRCTqMBqQQrzrbzrlJmVVbsSWmVrTbSzJ
|
||||
RHLfLcSRTFSghLRHGbwZmMZddgJswZsbMm
|
||||
ptqjtCzzQztqCjDlBGpDpbMZdwmMbZsdwNmdJpbs
|
||||
tttzCVllDCtDQnQBVHGHWvWTLWcLSLHf
|
||||
FVlNnPqbGTHftghggJqf
|
||||
zLcZWZpWWrcrZLLZDWrwMcrhBFBttChBmBgptChhtFftmf
|
||||
LZZLrDrrDDMrcwrDwsWFzdTlnGQPQQVbdbnsvnvsVQ
|
||||
BbPNMJNbQvDbvPLwHflczlwwzf
|
||||
pZjWZGZjFGdgpnVgZhghdmcflrlswzzcstlrLwhtwc
|
||||
WZSdqFjqSqSWdGFjZpdMTTDNTvLCRRLLqRQMCN
|
||||
FqgFGtbgTvRwrLqhvw
|
||||
JCCWJWCdJMQNNsSWsMPQRDDLDSDLwTrrvnwfDvnD
|
||||
HdPJlBBHCCQdBMWdTtVbgHczGVGjmtzG
|
||||
PLlZDLZDsFCvbDQv
|
||||
HVcTmVmJqVzqczfzbjvvCFMRfCsWjMvR
|
||||
cqHzTqJTTTTzzmnmrctrBlLlvSlgLdZvSwSlpw
|
||||
SbMMNJjmgMnJdSSbjVFZVSQrlQfWVQVWZh
|
||||
PtqDqPGcLHzHpqLcRzRsfQFfZlfRfZfRFVsl
|
||||
cTDLcqGCzDTqzzDLDzqPTtJvbBJMnmvjbdlmJNvmdgNC
|
||||
tDJDlZVqJGbvHNQbNFFsFPmLns
|
||||
ppczpzpffGwfBNLGmn
|
||||
WShzgTTpWzhWztJJGJSvtvvtjq
|
||||
TbZFTFScnCZFQRTCqQdBjdJqjBqjjQDB
|
||||
rmmLpLLfzrlmslMBHvdRddNDDJDrqD
|
||||
MWwLPzmWfpsMmmlMPMWLwRTZTZnnTcVCcZFCwSnZ
|
||||
SqmClqHssNWCqPTcWcGhBTchVV
|
||||
ZnnnDflRpBVTTVhPBZ
|
||||
DpgfvnvMfCsqlMtSll
|
||||
ZzLMRZpLMwwppZqnQGvQgBSvlNVlBFFNFVrg
|
||||
HcqhTmhmdDTPFTJgTTFBSgJN
|
||||
mccPdDDHbssbtwZMqpbzCRGM
|
||||
TgqnTltgWqLRSRnlqddngFfrvHvrBTfCCFrFVTvVCf
|
||||
cwNJmPzQwNzczzNsJGhhHfhrfvVHGvtvVVfC
|
||||
jjtbtDswcmPWlbgRnRdMZL
|
||||
TmpTBBwvspTptRmsmTGLQDGRHGgVGLSQSMHQ
|
||||
ZlPWqjWrzjPqdrlzbrbrwfrWLHVMLnHDMVDQnLQfQfVngQLS
|
||||
zNwbrrFWbFJpmpmvvt
|
||||
RMQQMwHMMzcFsWsDrWfcpJpS
|
||||
LLhZmGVLhVlTZfWWfWpCrDsGSp
|
||||
VLVTnqjjZngtQRFjvzDM
|
||||
gmRBpjrpRvCfRCrBgvjHShnbnngbgSJnNsHMHS
|
||||
ZDPTwGWtqwHhSnbcMNJw
|
||||
DWGGqtVVqldWZzMzWmvjrjprLRFjRVvvff
|
||||
tCzVzsVtDFzssnSsgdqJdCNqJhmgmpqq
|
||||
PZccPGvQfRLMQwNdhpwhNh
|
||||
jLrcbRjPZBrcPdjRHFlWnVtBFslSWznW
|
||||
vvvbJbWrLvFWHzZzZRhB
|
||||
chtwTmCNlRRZzRPT
|
||||
hmcCssCswrMDGMSrsr
|
||||
LStGBsQLlllhzMzs
|
||||
dzVZDNWRDdZNDTZTPvWVhhphpMlfMccRmfnlMlRn
|
||||
VFvgTrNPdFWNNFNFTzTFFSjSQBCqrtQwSBGLLBGwGL
|
||||
qGJSJhWStdSfWvSvtGRRnzRDDggrgvnzsmRP
|
||||
lTTLpcljjGlLlLNBpjwFQDQmRnrRDPrPscRrDDng
|
||||
NCNjFlHNCTVjpwGqGSVbJddqZZJM
|
||||
MbWdgvHFlMvmzTzShvmm
|
||||
tqjqpLsNsrrsjstNLpQrGVhVBzrhVcfmchDcTPVVmc
|
||||
RqwjqjqsGjjGGQNjGpQZpqRFJgmMHwdbFWgnHMFdwmmCFW
|
||||
HHHLcCcVHjTHglsB
|
||||
wDSRwzzRpMSdNSPSwSpRbqvgBsdqlgTvBFBjgFvvgB
|
||||
RpbzPssDMWwNRbRNRPDsDhJthLQVGLJcctQCJQfQJCLm
|
||||
WsZgbNgZVCCWbVVVmgZbCCRPccGnzPBqJjzWJBJPzvBvGz
|
||||
SpfThHtrHFBPPzJvPntj
|
||||
QHDhhrhpTQpHhQHnfwnTCNlbZCCDLNllZlVsNCNl
|
||||
QtzJFRQLMRnZcZsfcphlPQ
|
||||
qSBbjmWSCNmVldSqqSqmjCSZshfwfrPPZZfcPVZfhgsgPg
|
||||
HqBbHqBGSlNBbltnLLHFJMtRvRTD
|
||||
tcGtDdMcttttHNBlMctldlwjwwqqCLCwDwZjFCZhmnwC
|
||||
VrJgvWWsPvRgVgrJQvfQfzgVzZwCbLZmnmwCwZqmnhjZbnLj
|
||||
sJpffsRWWRJVWWpHltSpnMHGcMTl
|
||||
zNqRbqSbfdcTLLfS
|
||||
ZVPzPnVvdLwLDPfF
|
||||
VWnzQCVWZVMzQRHgqgqrHGtGMp
|
||||
PbHpWfWPvRfbzWPFfRpPDtBwSHMwCBgDwBjDtMMM
|
||||
hTTdZQlcnTcmqVTdcddrDgBSwsjjBgqBtsCgMD
|
||||
hlldTmdJJmJdZvzfFfNJFJgRzR
|
||||
PJWvJBbWsfLQWsLvmCqHCcNLHqHLLcwDqV
|
||||
dQztrZrdwHhptqDH
|
||||
ZrMGjgMSrdzQGQRJPvGGbm
|
||||
RmjljZChlDZBCRRvlmNSLSqMNLzwLvppwQSQ
|
||||
sTnVnPrVGsGTPddJrfgQgqLgGpMNQtgNtNzg
|
||||
sbbTfTdcJPnHbsJfHsdcmDDmmqBZlClmjBRDCZ
|
||||
CJmHLmHFFCFbHsbJsJqvqhQqLDhQZvnQDZnn
|
||||
wGwppTjdWPdgFpGcScBqNnNqNhQlDqnDlZZW
|
||||
pGcgGgTpGjFdwpSFVgSdpPjrMCMffzJzRzztRfHCRsVmtbsz
|
||||
CgBClZfCflPflNZRvfQswwmwmwQsQhgppdhm
|
||||
qbzDGrjLLNLDHDqtJmmhhmQdhwpQhhbp
|
||||
NLGqVqjDjjGrMFrvFWPBRBZnCvfFnT
|
||||
tbrrHsgsVmmmbtgwVsQRqjJMmqMjQfJfLFLD
|
||||
ZvlBGzdvjGfRFJQJ
|
||||
dBppnnBBhdzZncBPlznpnNdWHSsbWthbSCgHrVfgSSwVgr
|
||||
VRvMtRVFHQLvMRQFQtBctrthshTTgCmhTrgWhWZsZZ
|
||||
lzJlGBSPPhzjgZsTCr
|
||||
wJlpJPfDSpwBnddqJDdpPpcvMFHFMvNbvnNMFHHRVVbR
|
||||
CPShbbdlGCdQqlRPGPdlDWDFzjtFjggCDJgWczfF
|
||||
mrHrTrrBMBsmNsrwsBpnfpggDDcjjDDpjzFJzzjtJz
|
||||
BvsNvBLHrrrNvwBTNNsNGbdQhlPGGfqhhRGqLGdl
|
||||
PSSlPtlStGhPNMtwPMPJzDddnbnDNTDDnJqjbz
|
||||
FFVHRwVLvFvVrVHrZcLmRHggjDmdDnDnznnznzQjzdmJddbn
|
||||
WrvgRgcRcRrrcRvgcVrHVrwCCSfsCsGsllhMSSSSMttlSCpG
|
||||
hBPJqVZTqqPSlGlfddfddZvl
|
||||
JWWMJCpnMrmztzdjnzld
|
||||
RbWsrwMrpbRspbWgpwhLJPccNVqLLPSVgVPV
|
||||
hcTrWqcfhwGfWrWMjHjGvDHPmJMDzF
|
||||
ZtlsnZZtLBSbSssnbndjDJJFHFHJPHPsHMTHHM
|
||||
ntRZtSbtZgZStTqchwQfRwNpcq
|
||||
GfLqrsqQGgPgjjQGVcNvTpTpNFcWPvPPpT
|
||||
bRnRLnMZFdCMcpvT
|
||||
RnRhzRlmlhhHhhmhRsqLrfzrGVSrGBSGrL
|
||||
fbMffwdZsncrGcfG
|
||||
qDBjSSLqhLBSmDbjqNhqTLjCGrCHGrvcGWcpWcrGWnCrpm
|
||||
STLDqbhTLqNTNSRhlwZlJlRQFFRwMdPQ
|
||||
TVVGNFggcjPPJzwvQlRRwRvSlcSc
|
||||
frsBbWhtSRzSLfRf
|
||||
qDCqddbsWrqzhsdNmdJNJHjTggFFVV
|
||||
NTWTDrSdFTLtPTGf
|
||||
lZqjHlVRvRltLtRWFMtFLL
|
||||
qvjWzzvVbZpjqllggscdchwDrCphwsdhrD
|
Reference in New Issue
Block a user