826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#! /usr/bin/ksh
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# This file and its contents are supplied under the terms of the
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# Common Development and Distribution License ("CDDL"), version 1.0.
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# You may only use this file in accordance with the terms of version
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# 1.0 of the CDDL.
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# A full copy of the text of the CDDL should have accompanied this
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# source. A copy of the CDDL is also available via the Internet at
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# http://www.illumos.org/license/CDDL.
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore# Copyright 2014 Garrett D'Amore <garrett@damore.org>
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore#
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'AmoreXARGS=${XARGS:=/usr/bin/xargs}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest_start() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore print "TEST STARTING ${1}: ${2}"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest_pass() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore print "TEST PASS: ${1}"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest_fail() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore print "TEST FAIL: ${1}: ${2}"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore exit -1
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amorecheckrv() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore if [[ $? -ne 0 ]]; then
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_fail $1 "exit failure"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore fi
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amorecompare() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore if [[ "$2" != "$3" ]]; then
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_fail $1 "compare mismatch, got [$2] expected [$3]"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore fi
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest1() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test1
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-I handling"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(echo foo bar baz other | $XARGS -I THING echo '** THING **')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** foo bar baz other **'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest2() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test2
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-n 1 handling"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(echo foo bar baz other | $XARGS -n 1 echo '***')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='*** foo
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore*** bar
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore*** baz
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore*** other'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest3() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test3
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-I before -n 1"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(echo foo bar baz other | $XARGS -I THING -n1 echo '** THING **')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** THING ** foo
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** THING ** bar
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** THING ** baz
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** THING ** other'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest4() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test4
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-n 1 before -I"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(echo foo bar baz other | $XARGS -n 1 -I THING echo '** THING **')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** foo bar baz other **'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest5() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test5
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-i multiple lines handling"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def\nxyz\n123" | $XARGS -n1 -i echo '[{}]')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='[abc def]
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore[xyz]
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore[123]'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest6() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test6
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-E handling"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def xyx\n_\n123\nnope" | $XARGS -edef echo)
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='abc'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest7() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test7
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "newlines in arguments"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def\nxyz\n\n123 456\n789" | $XARGS echo)
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='abc def xyz 123 456 789'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest8() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test8
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "limited counts via -n3"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def ghi jkl mno 123 456 789" | $XARGS -n 3 echo '**' )
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def ghi
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** jkl mno 123
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** 456 789'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest9() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test9
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "multiple lines via -L2"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def\n123 456\npeterpiper" | $XARGS -L2 echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def 123 456
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** peterpiper'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest10() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test10
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "argument sizes"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def 123 456 peter alpha\n" | $XARGS -s15 echo)
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='abc def
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore123 456
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amorepeter
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amorealpha'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest11() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test11
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "bare -e"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def _ end of string" | $XARGS -e echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def _ end of string'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest12() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test12
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "-E ''"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def _ end of string" | $XARGS -E '' echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def _ end of string'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest13() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test13
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "end of string (no -E or -e)"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def _ end of string" | $XARGS echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest14() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test14
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "trailing blank with -L"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def \n123 456\npeter\nbogus" | $XARGS -L2 echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def 123 456 peter
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** bogus'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest15() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test15
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "leading and embedded blanks with -i"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf "abc def\n xyz bogus\nnext" | $XARGS -i echo '** {}')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** abc def
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** xyz bogus
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** next'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest16() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test16
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "single character replstring"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(echo foo bar baz other | $XARGS -I X echo '** X **')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** foo bar baz other **'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest17() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test17
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "null byte separators"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(print 'foo bar baz\000more data' | $XARGS -n1 -0 echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** foo bar baz
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** more data'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest18() {
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore t=test18
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_start $t "escape characters"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore comp=$(printf 'foo\\ bar second" "arg third' | $XARGS -n1 echo '**')
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore checkrv $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore good='** foo bar
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** second arg
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore** third'
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore compare $t "$comp" "$good"
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore test_pass $t
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore}
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amore
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest1
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest2
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest3
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest4
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest5
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest6
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest7
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest8
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest9
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest10
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest11
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest12
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest13
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest14
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest15
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest16
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest17
826ac02a0def83e0a41b29321470d299c7389aabGarrett D'Amoretest18