summaryrefslogtreecommitdiff
path: root/rt/lib/RT/.Handle.pm.swp
blob: 5ae85734dd7a869523f026be8891ae535a882ea5 (plain)
ofshex dumpascii
0000 62 30 56 49 4d 20 37 2e 34 00 00 00 00 10 00 00 b8 70 b5 53 9e c8 40 00 e8 39 00 00 69 76 61 6e b0VIM.7.4........p.S..@..9..ivan
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 66 6c 65 65 74 70 61 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....fleetpaw....................
0060 00 00 00 00 00 00 00 00 00 00 00 00 7e 69 76 61 6e 2f 66 72 65 65 73 69 64 65 2f 72 74 2f 6c 69 ............~ivan/freeside/rt/li
0080 62 2f 52 54 2f 48 61 6e 64 6c 65 2e 70 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b/RT/Handle.pm..................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 .........utf-8..3210....#"!...U.
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 74 70 0d 00 7f 00 00 00 02 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 tp..............t...............
1020 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 75 00 00 00 00 00 00 00 ........................u.......
1040 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 77 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 ................w...............
1060 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 fb 00 00 00 00 00 00 00 ................\...............
1080 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 00 57 01 00 00 00 00 00 00 ................n.......W.......
10a0 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 c5 01 00 00 00 00 00 00 ................................
10c0 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 6c 00 00 00 00 00 00 00 46 02 00 00 00 00 00 00 ................l.......F.......
10e0 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 6d 00 00 00 00 00 00 00 b2 02 00 00 00 00 00 00 ................m...............
1100 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 1f 03 00 00 00 00 00 00 ................Z...............
1120 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 79 03 00 00 00 00 00 00 ................Z.......y.......
1140 01 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 65 00 00 00 00 00 00 00 d3 03 00 00 00 00 00 00 ................e...............
1160 01 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 76 00 00 00 00 00 00 00 38 04 00 00 00 00 00 00 ................v.......8.......
1180 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 4f 00 00 00 00 00 00 00 ae 04 00 00 00 00 00 00 ................O...............
11a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 61 64 00 00 18 00 00 00 04 02 00 00 00 10 00 00 74 00 00 00 00 00 00 00 e3 0f 00 00 e1 0f 00 00 ad..............t...............
2020 d4 0f 00 00 d2 0f 00 00 89 0f 00 00 44 0f 00 00 42 0f 00 00 00 0f 00 00 fe 0e 00 00 fc 0e 00 00 ............D...B...............
2040 f1 0e 00 00 ef 0e 00 00 aa 0e 00 00 65 0e 00 00 21 0e 00 00 0d 0e 00 00 0b 0e 00 00 c8 0d 00 00 ............e...!...............
2060 8b 0d 00 00 47 0d 00 00 1c 0d 00 00 1a 0d 00 00 d6 0c 00 00 98 0c 00 00 58 0c 00 00 20 0c 00 00 ....G...................X.......
2080 e7 0b 00 00 e5 0b 00 00 e3 0b 00 00 c1 0b 00 00 bf 0b 00 00 78 0b 00 00 35 0b 00 00 f0 0a 00 00 ....................x...5.......
20a0 b0 0a 00 00 6e 0a 00 00 6c 0a 00 00 2c 0a 00 00 e8 09 00 00 a2 09 00 00 5d 09 00 00 14 09 00 00 ....n...l...,...........].......
20c0 d1 08 00 00 8d 08 00 00 5a 08 00 00 58 08 00 00 3d 08 00 00 3c 08 00 00 30 08 00 00 2f 08 00 00 ........Z...X...=...<...0.../...
20e0 0d 08 00 00 0c 08 00 00 fc 07 00 00 fb 07 00 00 ef 07 00 00 cf 07 00 00 bb 07 00 00 ba 07 00 00 ................................
2100 a7 07 00 00 a6 07 00 00 56 07 00 00 06 07 00 00 b6 06 00 00 6a 06 00 00 62 06 00 00 61 06 00 00 ........V...........j...b...a...
2120 5c 06 00 00 5b 06 00 00 47 06 00 00 46 06 00 00 3a 06 00 00 2c 06 00 00 2b 06 00 00 1b 06 00 00 \...[...G...F...:...,...+.......
2140 1a 06 00 00 0b 06 00 00 0a 06 00 00 ee 05 00 00 ed 05 00 00 b5 05 00 00 6c 05 00 00 6b 05 00 00 ........................l...k...
2160 66 05 00 00 65 05 00 00 4a 05 00 00 3f 05 00 00 ec 04 00 00 e5 04 00 00 e4 04 00 00 d6 04 00 00 f...e...J...?...................
2180 65 04 00 00 0a 04 00 00 fa 03 00 00 f4 03 00 00 f2 03 00 00 f1 03 00 00 e2 03 00 00 e1 03 00 00 e...............................
21a0 95 03 00 00 86 03 00 00 85 03 00 00 80 03 00 00 7f 03 00 00 71 03 00 00 5b 03 00 00 46 03 00 00 ....................q...[...F...
21c0 45 03 00 00 12 03 00 00 f0 02 00 00 b8 02 00 00 90 02 00 00 8a 02 00 00 89 02 00 00 6e 02 00 00 E...........................n...
21e0 3d 02 00 00 04 02 00 00 03 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =...............................
2200 00 00 00 00 20 20 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 ............Password.=>.RT->Conf
2220 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 50 61 73 73 77 6f 72 64 27 29 2c 00 20 20 20 ig->Get('DatabasePassword'),....
2240 20 20 20 20 20 55 73 65 72 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 .....User.=>.RT->Config->Get('Da
2260 74 61 62 61 73 65 55 73 65 72 27 29 2c 00 20 20 20 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a tabaseUser'),.....$self->SUPER::
2280 43 6f 6e 6e 65 63 74 28 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 45 4e 56 7b 27 4e 4c Connect(......}.........$ENV{'NL
22a0 53 5f 4e 43 48 41 52 27 7d 20 3d 20 22 41 4c 33 32 55 54 46 38 22 3b 00 20 20 20 20 20 20 20 20 S_NCHAR'}.=."AL32UTF8";.........
22c0 24 45 4e 56 7b 27 4e 4c 53 5f 4c 41 4e 47 27 7d 20 3d 20 22 41 4d 45 52 49 43 41 4e 5f 41 4d 45 $ENV{'NLS_LANG'}.=."AMERICAN_AME
22e0 52 49 43 41 2e 41 4c 33 32 55 54 46 38 22 3b 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 RICA.AL32UTF8";.....if.(.$db_typ
2300 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 29 20 7b 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 e.eq.'Oracle'.).{.....my.$db_typ
2320 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 e.=.RT->Config->Get('DatabaseTyp
2340 65 27 29 3b 00 00 20 20 20 20 6d 79 20 25 61 72 67 73 20 3d 20 28 40 5f 29 3b 00 20 20 20 20 6d e');......my.%args.=.(@_);.....m
2360 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 43 6f 6e 6e 65 63 74 20 7b 00 00 y.$self.=.shift;.sub.Connect.{..
2380 3d 63 75 74 00 00 54 61 6b 65 73 20 6e 6f 74 68 69 6e 67 2e 00 43 6f 6e 6e 65 63 74 73 20 74 6f =cut..Takes.nothing..Connects.to
23a0 20 52 54 27 73 20 64 61 74 61 62 61 73 65 20 75 73 69 6e 67 20 63 72 65 64 65 6e 74 69 61 6c 73 .RT's.database.using.credentials
23c0 20 61 6e 64 20 6f 70 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 52 54 20 63 6f 6e 66 69 67 2e .and.options.from.the.RT.config.
23e0 00 00 3d 68 65 61 64 32 20 43 6f 6e 6e 65 63 74 00 00 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 ..=head2.Connect..}.....}.......
2400 20 20 20 20 20 20 24 40 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 22 50 65 72 68 61 70 73 20 79 ......$@;............."Perhaps.y
2420 6f 75 27 76 65 20 70 69 63 6b 65 64 20 61 6e 20 69 6e 76 61 6c 69 64 20 64 61 74 61 62 61 73 65 ou've.picked.an.invalid.database
2440 20 74 79 70 65 20 6f 72 20 73 70 65 6c 6c 65 64 20 69 74 20 69 6e 63 6f 72 72 65 63 74 6c 79 2e .type.or.spelled.it.incorrectly.
2460 5c 6e 22 2e 00 20 20 20 20 20 20 20 20 64 69 65 20 22 55 6e 61 62 6c 65 20 74 6f 20 6c 6f 61 64 \n"..........die."Unable.to.load
2480 20 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 72 20 64 61 74 61 62 61 73 65 20 68 61 .DBIx::SearchBuilder.database.ha
24a0 6e 64 6c 65 20 66 6f 72 20 27 22 2e 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 ndle.for.'"..RT->Config->Get('Da
24c0 74 61 62 61 73 65 54 79 70 65 27 29 20 2e 22 27 2e 5c 6e 22 2e 00 20 20 20 20 69 66 20 28 24 40 tabaseType').."'.\n"......if.($@
24e0 29 20 7b 00 00 20 20 20 20 7d 3b 00 20 20 20 20 20 20 20 20 75 73 65 20 62 61 73 65 20 22 44 42 ).{......};.........use.base."DB
2500 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 72 3a 3a 48 61 6e 64 6c 65 3a 3a 22 2e 20 52 54 Ix::SearchBuilder::Handle::"..RT
2520 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 ->Config->Get('DatabaseType');..
2540 20 20 20 65 76 61 6c 20 7b 00 73 75 62 20 46 69 6e 61 6c 69 7a 65 44 61 74 61 62 61 73 65 54 79 ...eval.{.sub.FinalizeDatabaseTy
2560 70 65 20 7b 00 00 3d 63 75 74 00 00 4c 3c 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 pe.{..=cut..L<DBIx::SearchBuilde
2580 72 3a 3a 48 61 6e 64 6c 65 3e 2c 20 75 73 69 6e 67 20 74 68 65 20 43 3c 44 61 74 61 62 61 73 65 r::Handle>,.using.the.C<Database
25a0 54 79 70 65 3e 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 00 53 65 74 73 20 52 54 3a 3a 48 61 Type>.configuration..Sets.RT::Ha
25c0 6e 64 6c 65 27 73 20 73 75 70 65 72 63 6c 61 73 73 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 ndle's.superclass.to.the.correct
25e0 20 73 75 62 63 6c 61 73 73 20 6f 66 00 00 3d 68 65 61 64 32 20 46 69 6e 61 6c 69 7a 65 44 61 74 .subclass.of..=head2.FinalizeDat
2600 61 62 61 73 65 54 79 70 65 00 00 3d 68 65 61 64 31 20 4d 45 54 48 4f 44 53 00 00 75 73 65 20 46 abaseType..=head1.METHODS..use.F
2620 69 6c 65 3a 3a 53 70 65 63 3b 00 00 75 73 65 20 77 61 72 6e 69 6e 67 73 3b 00 75 73 65 20 73 74 ile::Spec;..use.warnings;.use.st
2640 72 69 63 74 3b 00 00 70 61 63 6b 61 67 65 20 52 54 3a 3a 48 61 6e 64 6c 65 3b 00 00 3d 63 75 74 rict;..package.RT::Handle;..=cut
2660 00 00 6c 6f 61 64 65 64 2e 00 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 2e 20 59 6f 75 20 42 3c 6d ..loaded..config.option..You.B<m
2680 75 73 74 3e 20 6c 6f 61 64 20 74 68 69 73 20 6d 6f 64 75 6c 65 20 6f 6e 6c 79 20 77 68 65 6e 20 ust>.load.this.module.only.when.
26a0 74 68 65 20 63 6f 6e 66 69 67 73 20 68 61 76 65 20 62 65 65 6e 00 66 72 6f 6d 20 4c 3c 44 42 49 the.configs.have.been.from.L<DBI
26c0 78 3a 3a 53 65 72 61 63 68 42 75 69 6c 64 65 72 3e 2e 20 54 79 70 65 20 6f 66 20 74 68 65 20 44 x::SerachBuilder>..Type.of.the.D
26e0 42 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 43 3c 44 61 74 61 62 61 73 73 65 54 79 70 65 3e B.is.defined.by.C<DatabasseType>
2700 20 52 54 27 73 00 63 6c 61 73 73 65 73 2e 20 41 73 20 52 54 20 77 6f 72 6b 73 20 77 69 74 68 20 .RT's.classes..As.RT.works.with.
2720 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 6f 66 20 44 42 73 20 77 65 20 73 75 62 63 6c 61 different.types.of.DBs.we.subcla
2740 73 73 20 72 65 70 73 65 63 74 69 76 65 20 68 61 6e 64 6c 65 72 00 43 3c 52 54 3a 3a 48 61 6e 64 ss.repsective.handler.C<RT::Hand
2760 6c 65 3e 20 69 73 20 52 54 20 73 70 65 63 69 66 69 63 20 77 72 61 70 70 65 72 20 6f 76 65 72 20 le>.is.RT.specific.wrapper.over.
2780 6f 6e 65 20 6f 66 20 4c 3c 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 69 6c 64 65 72 3a 3a 48 61 one.of.L<DBIx::SearchBuilder::Ha
27a0 6e 64 6c 65 3e 00 00 3d 68 65 61 64 31 20 44 45 53 43 52 49 50 54 49 4f 4e 00 00 20 20 20 20 75 ndle>..=head1.DESCRIPTION......u
27c0 73 65 20 52 54 3a 3a 48 61 6e 64 6c 65 3b 00 20 20 20 20 42 45 47 49 4e 20 7b 20 52 54 3a 3a 4c se.RT::Handle;.....BEGIN.{.RT::L
27e0 6f 61 64 43 6f 6e 66 69 67 28 29 20 7d 3b 00 20 20 20 20 75 73 65 20 52 54 3b 00 00 3d 68 65 61 oadConfig().};.....use.RT;..=hea
2800 64 31 20 53 59 4e 4f 50 53 49 53 00 00 52 54 3a 3a 48 61 6e 64 6c 65 20 2d 20 52 54 27 73 20 64 d1.SYNOPSIS..RT::Handle.-.RT's.d
2820 61 74 61 62 61 73 65 20 68 61 6e 64 6c 65 00 00 3d 68 65 61 64 31 20 4e 41 4d 45 00 00 23 20 45 atabase.handle..=head1.NAME..#.E
2840 4e 44 20 42 50 53 20 54 41 47 47 45 44 20 42 4c 4f 43 4b 20 7d 7d 7d 00 23 00 23 20 74 68 6f 73 ND.BPS.TAGGED.BLOCK.}}}.#.#.thos
2860 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 61 6e 79 20 64 65 72 69 76 61 74 69 e.contributions.and.any.derivati
2880 76 65 73 20 74 68 65 72 65 6f 66 2e 00 23 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 74 68 ves.thereof..#.works.based.on.th
28a0 6f 73 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 2c 20 61 6e 64 20 73 75 62 6c 69 63 65 6e 73 ose.contributions,.and.sublicens
28c0 65 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 00 23 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 2c e.and.distribute.#.royalty-free,
28e0 20 70 65 72 70 65 74 75 61 6c 2c 20 6c 69 63 65 6e 73 65 20 74 6f 20 75 73 65 2c 20 63 6f 70 79 .perpetual,.license.to.use,.copy
2900 2c 20 63 72 65 61 74 65 20 64 65 72 69 76 61 74 69 76 65 00 23 20 42 65 73 74 20 50 72 61 63 74 ,.create.derivative.#.Best.Pract
2920 69 63 61 6c 20 53 6f 6c 75 74 69 6f 6e 73 2c 20 20 4c 4c 43 20 61 20 6e 6f 6e 65 78 63 6c 75 73 ical.Solutions,..LLC.a.nonexclus
2940 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 69 72 72 65 76 6f 63 61 62 6c 65 2c 00 23 20 79 ive,.worldwide,.irrevocable,.#.y
2960 6f 75 20 61 72 65 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 66 6f 72 20 ou.are.the.copyright.holder.for.
2980 74 68 6f 73 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 79 6f 75 20 67 72 61 6e those.contributions.and.you.gran
29a0 74 00 23 20 52 65 71 75 65 73 74 20 54 72 61 63 6b 65 72 2c 20 74 6f 20 42 65 73 74 20 50 72 61 t.#.Request.Tracker,.to.Best.Pra
29c0 63 74 69 63 61 6c 20 53 6f 6c 75 74 69 6f 6e 73 2c 20 4c 4c 43 2c 20 79 6f 75 20 63 6f 6e 66 69 ctical.Solutions,.LLC,.you.confi
29e0 72 6d 20 74 68 61 74 00 23 20 64 65 72 69 76 61 74 69 76 65 73 20 74 6f 20 74 68 69 73 20 77 6f rm.that.#.derivatives.to.this.wo
2a00 72 6b 2c 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 77 6f 72 6b 20 69 6e 74 65 6e 64 65 64 20 66 rk,.or.any.other.work.intended.f
2a20 6f 72 20 75 73 65 20 77 69 74 68 00 23 20 42 79 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 6c 79 20 73 or.use.with.#.By.intentionally.s
2a40 75 62 6d 69 74 74 69 6e 67 20 61 6e 79 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 2c 20 63 6f 72 ubmitting.any.modifications,.cor
2a60 72 65 63 74 69 6f 6e 73 20 6f 72 00 23 00 23 20 63 6f 6d 6d 75 6e 69 74 79 20 62 79 20 73 75 62 rections.or.#.#.community.by.sub
2a80 6d 69 74 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 42 65 73 74 20 50 72 61 63 74 69 63 61 6c 20 53 mitting.them.to.Best.Practical.S
2aa0 6f 6c 75 74 69 6f 6e 73 2c 20 4c 4c 43 2e 29 00 23 20 79 6f 75 20 63 68 6f 6f 73 65 20 74 6f 20 olutions,.LLC.).#.you.choose.to.
2ac0 63 6f 6e 74 72 69 62 75 74 65 20 79 6f 75 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e 68 61 contribute.your.changes.and.enha
2ae0 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 00 23 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 ncements.to.the.#.the.GNU.Genera
2b00 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 69 73 20 6f 6e 6c 79 20 6f 66 20 l.Public.License.and.is.only.of.
2b20 69 6d 70 6f 72 74 61 6e 63 65 20 74 6f 20 79 6f 75 20 69 66 00 23 20 74 6f 20 79 6f 75 20 74 6f importance.to.you.if.#.to.you.to
2b40 20 6d 6f 64 69 66 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 74 68 69 73 20 73 6f 66 74 .modify.and.distribute.this.soft
2b60 77 61 72 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 00 23 20 28 54 68 65 20 66 ware.under.the.terms.of.#.(The.f
2b80 6f 6c 6c 6f 77 69 6e 67 20 70 61 72 61 67 72 61 70 68 20 69 73 20 6e 6f 74 20 69 6e 74 65 6e 64 ollowing.paragraph.is.not.intend
2ba0 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 00 23 ed.to.limit.the.rights.granted.#
2bc0 00 23 20 43 4f 4e 54 52 49 42 55 54 49 4f 4e 20 53 55 42 4d 49 53 53 49 4f 4e 20 50 4f 4c 49 43 .#.CONTRIBUTION.SUBMISSION.POLIC
2be0 59 3a 00 23 00 23 00 23 20 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 Y:.#.#.#.http://www.gnu.org/lice
2c00 6e 73 65 73 2f 6f 6c 64 2d 6c 69 63 65 6e 73 65 73 2f 67 70 6c 2d 32 2e 30 2e 68 74 6d 6c 2e 00 nses/old-licenses/gpl-2.0.html..
2c20 23 20 30 32 31 31 30 2d 31 33 30 31 20 6f 72 20 76 69 73 69 74 20 74 68 65 69 72 20 77 65 62 20 #.02110-1301.or.visit.their.web.
2c40 70 61 67 65 20 6f 6e 20 74 68 65 20 69 6e 74 65 72 6e 65 74 20 61 74 00 23 20 46 6f 75 6e 64 61 page.on.the.internet.at.#.Founda
2c60 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 tion,.Inc.,.51.Franklin.Street,.
2c80 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 00 23 20 61 6c 6f 6e 67 20 Fifth.Floor,.Boston,.MA.#.along.
2ca0 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 with.this.program;.if.not,.write
2cc0 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 00 23 20 59 6f 75 20 73 68 6f 75 .to.the.Free.Software.#.You.shou
2ce0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
2d00 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 00 23 00 23 20 47 65 NU.General.Public.License.#.#.Ge
2d20 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 neral.Public.License.for.more.de
2d40 74 61 69 6c 73 2e 00 23 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e tails..#.MERCHANTABILITY.or.FITN
2d60 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 ESS.FOR.A.PARTICULAR.PURPOSE...S
2d80 65 65 20 74 68 65 20 47 4e 55 00 23 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 ee.the.GNU.#.WITHOUT.ANY.WARRANT
2da0 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 Y;.without.even.the.implied.warr
2dc0 61 6e 74 79 20 6f 66 00 23 20 54 68 69 73 20 77 6f 72 6b 20 69 73 20 64 69 73 74 72 69 62 75 74 anty.of.#.This.work.is.distribut
2de0 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 ed.in.the.hope.that.it.will.be.u
2e00 73 65 66 75 6c 2c 20 62 75 74 00 23 00 23 20 66 72 6f 6d 20 77 77 77 2e 67 6e 75 2e 6f 72 67 2e seful,.but.#.#.from.www.gnu.org.
2e20 00 23 20 62 65 65 6e 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 69 73 20 73 6f 66 74 77 .#.been.provided.with.this.softw
2e40 61 72 65 2c 20 62 75 74 20 69 6e 20 61 6e 79 20 65 76 65 6e 74 20 63 61 6e 20 62 65 20 73 6e 61 are,.but.in.any.event.can.be.sna
2e60 72 66 65 64 00 23 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 rfed.#.the.GNU.General.Public.Li
2e80 63 65 6e 73 65 2e 20 41 20 63 6f 70 79 20 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 73 68 cense..A.copy.of.that.license.sh
2ea0 6f 75 6c 64 20 68 61 76 65 00 23 20 54 68 69 73 20 77 6f 72 6b 20 69 73 20 6d 61 64 65 20 61 76 ould.have.#.This.work.is.made.av
2ec0 61 69 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f ailable.to.you.under.the.terms.o
2ee0 66 20 56 65 72 73 69 6f 6e 20 32 20 6f 66 00 23 00 23 20 4c 49 43 45 4e 53 45 3a 00 23 00 23 00 f.Version.2.of.#.#.LICENSE:.#.#.
2f00 23 20 28 45 78 63 65 70 74 20 77 68 65 72 65 20 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 65 72 #.(Except.where.explicitly.super
2f20 73 65 64 65 64 20 62 79 20 6f 74 68 65 72 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 seded.by.other.copyright.notices
2f40 29 00 23 00 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).#.#...........................
2f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 61 6c 65 73 40 62 65 73 74 70 72 61 63 74 69 ...............<sales@bestpracti
2f80 63 61 6c 2e 63 6f 6d 3e 00 23 20 54 68 69 73 20 73 6f 66 74 77 61 72 65 20 69 73 20 43 6f 70 79 cal.com>.#.This.software.is.Copy
2fa0 72 69 67 68 74 20 28 63 29 20 31 39 39 36 2d 32 30 31 34 20 42 65 73 74 20 50 72 61 63 74 69 63 right.(c).1996-2014.Best.Practic
2fc0 61 6c 20 53 6f 6c 75 74 69 6f 6e 73 2c 20 4c 4c 43 00 23 00 23 20 43 4f 50 59 52 49 47 48 54 3a al.Solutions,.LLC.#.#.COPYRIGHT:
2fe0 00 23 00 23 20 42 45 47 49 4e 20 42 50 53 20 54 41 47 47 45 44 20 42 4c 4f 43 4b 20 7b 7b 7b 00 .#.#.BEGIN.BPS.TAGGED.BLOCK.{{{.
3000 61 64 00 00 dc 07 00 00 34 09 00 00 00 10 00 00 4f 00 00 00 00 00 00 00 ff 0f 00 00 f2 0f 00 00 ad......4.......O...............
3020 f1 0f 00 00 a2 0f 00 00 4b 0f 00 00 38 0f 00 00 37 0f 00 00 32 0f 00 00 31 0f 00 00 25 0f 00 00 ........K...8...7...2...1...%...
3040 0f 0f 00 00 f8 0e 00 00 f7 0e 00 00 d1 0e 00 00 cf 0e 00 00 ce 0e 00 00 c0 0e 00 00 bf 0e 00 00 ................................
3060 72 0e 00 00 59 0e 00 00 58 0e 00 00 53 0e 00 00 52 0e 00 00 45 0e 00 00 2f 0e 00 00 19 0e 00 00 r...Y...X...S...R...E.../.......
3080 03 0e 00 00 02 0e 00 00 f3 0d 00 00 f2 0d 00 00 d2 0d 00 00 a0 0d 00 00 9f 0d 00 00 8e 0d 00 00 ................................
30a0 8c 0d 00 00 8b 0d 00 00 3b 0d 00 00 11 0d 00 00 fa 0c 00 00 e4 0c 00 00 c9 0c 00 00 af 0c 00 00 ........;.......................
30c0 9c 0c 00 00 9b 0c 00 00 76 0c 00 00 ef 0b 00 00 ed 0b 00 00 ec 0b 00 00 eb 0b 00 00 d9 0b 00 00 ........v.......................
30e0 c3 0b 00 00 a0 0b 00 00 9f 0b 00 00 99 0b 00 00 87 0b 00 00 7a 0b 00 00 4f 0b 00 00 1b 0b 00 00 ....................z...O.......
3100 e4 0a 00 00 d8 0a 00 00 65 0a 00 00 5b 0a 00 00 55 0a 00 00 54 0a 00 00 47 0a 00 00 46 0a 00 00 ........e...[...U...T...G...F...
3120 08 0a 00 00 d5 09 00 00 94 09 00 00 8e 09 00 00 8d 09 00 00 7c 09 00 00 7a 09 00 00 79 09 00 00 ....................|...z...y...
3140 56 09 00 00 55 09 00 00 38 09 00 00 37 09 00 00 34 09 00 00 33 09 00 00 00 00 00 00 00 00 00 00 V...U...8...7...4...3...........
3160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 3b 00 00 52 54 3a 3a 42 61 73 65 ....................1;..RT::Base
3940 2d 3e 5f 49 6d 70 6f 72 74 4f 76 65 72 6c 61 79 73 28 29 3b 00 00 5f 5f 50 41 43 4b 41 47 45 5f ->_ImportOverlays();..__PACKAGE_
3960 5f 2d 3e 46 69 6e 61 6c 69 7a 65 44 61 74 61 62 61 73 65 54 79 70 65 3b 00 00 7d 00 20 20 20 20 _->FinalizeDatabaseType;..}.....
3980 72 65 74 75 72 6e 20 40 72 65 73 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 70 75 73 68 return.@res;......}.........push
39a0 20 40 72 65 73 2c 20 24 74 61 62 6c 65 2d 3e 7b 54 41 42 4c 45 5f 4e 41 4d 45 7d 20 7c 7c 20 24 .@res,.$table->{TABLE_NAME}.||.$
39c0 74 61 62 6c 65 2d 3e 7b 74 61 62 6c 65 5f 6e 61 6d 65 7d 3b 00 20 20 20 20 77 68 69 6c 65 20 28 table->{table_name};.....while.(
39e0 20 6d 79 20 24 74 61 62 6c 65 20 3d 20 24 73 74 68 2d 3e 66 65 74 63 68 72 6f 77 5f 68 61 73 68 .my.$table.=.$sth->fetchrow_hash
3a00 72 65 66 20 29 20 7b 00 20 20 20 20 6d 79 20 24 73 74 68 20 3d 20 24 64 62 68 2d 3e 74 61 62 6c ref.).{.....my.$sth.=.$dbh->tabl
3a20 65 5f 69 6e 66 6f 28 20 27 27 2c 20 75 6e 64 65 66 2c 20 75 6e 64 65 66 2c 20 22 27 54 41 42 4c e_info(.'',.undef,.undef,."'TABL
3a40 45 27 22 29 3b 00 00 20 20 20 20 6d 79 20 40 72 65 73 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 E'");......my.@res;......}......
3a60 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 64 69 65 20 22 59 6f 75 27 72 65 20 75 73 69 ...}.............die."You're.usi
3a80 6e 67 20 50 6f 73 74 67 72 65 53 51 4c 20 39 2e 32 20 6f 72 20 6e 65 77 65 72 2e 20 59 6f 75 20 ng.PostgreSQL.9.2.or.newer..You.
3aa0 68 61 76 65 20 74 6f 20 75 70 67 72 61 64 65 20 44 42 44 3a 3a 50 67 20 6d 6f 64 75 6c 65 20 74 have.to.upgrade.DBD::Pg.module.t
3ac0 6f 20 32 2e 31 39 2e 33 20 6f 72 20 6e 65 77 65 72 3a 20 24 40 22 3b 00 20 20 20 20 20 20 20 20 o.2.19.3.or.newer:.$@";.........
3ae0 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 26 26 20 21 65 76 61 6c 20 7b 20 44 42 44 3a 3a ).{.............&&.!eval.{.DBD::
3b00 50 67 2d 3e 56 45 52 53 49 4f 4e 28 27 32 2e 31 39 2e 33 27 29 3b 20 31 20 7d 00 20 20 20 20 20 Pg->VERSION('2.19.3');.1.}......
3b20 20 20 20 20 20 20 20 26 26 20 24 64 62 68 2d 3e 7b 27 70 67 5f 73 65 72 76 65 72 5f 76 65 72 73 .......&&.$dbh->{'pg_server_vers
3b40 69 6f 6e 27 7d 20 3e 3d 20 39 30 32 30 30 00 20 20 20 20 20 20 20 20 20 20 20 20 24 64 62 68 2d ion'}.>=.90200.............$dbh-
3b60 3e 7b 44 72 69 76 65 72 7d 2d 3e 7b 4e 61 6d 65 7d 20 65 71 20 27 50 67 27 00 20 20 20 20 20 20 >{Driver}->{Name}.eq.'Pg'.......
3b80 20 20 69 66 20 28 00 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 20 20 20 20 7b 00 00 ..if.(.........local.$@;.....{..
3ba0 20 20 20 20 6d 79 20 24 64 62 68 20 3d 20 73 68 69 66 74 20 7c 7c 20 24 73 65 6c 66 2d 3e 64 62 ....my.$dbh.=.shift.||.$self->db
3bc0 68 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 5f 54 61 h;.....my.$self.=.shift;.sub._Ta
3be0 62 6c 65 4e 61 6d 65 73 20 7b 00 00 00 7d 00 20 20 20 20 70 75 73 68 20 40 7b 24 73 65 6c 66 2d bleNames.{...}.....push.@{$self-
3c00 3e 7b 27 53 74 61 74 65 6d 65 6e 74 4c 6f 67 27 7d 7d 20 2c 20 28 5b 54 69 6d 65 3a 3a 48 69 52 >{'StatementLog'}}.,.([Time::HiR
3c20 65 73 3a 3a 74 69 6d 65 28 29 2c 20 24 73 74 61 74 65 6d 65 6e 74 2c 20 5b 40 62 69 6e 64 5d 2c es::time(),.$statement,.[@bind],
3c40 20 24 64 75 72 61 74 69 6f 6e 2c 20 48 54 4d 4c 3a 3a 4d 61 73 6f 6e 3a 3a 45 78 63 65 70 74 69 .$duration,.HTML::Mason::Excepti
3c60 6f 6e 2d 3e 6e 65 77 2d 3e 61 73 5f 73 74 72 69 6e 67 5d 29 3b 00 20 20 20 20 72 65 71 75 69 72 on->new->as_string]);.....requir
3c80 65 20 48 54 4d 4c 3a 3a 4d 61 73 6f 6e 3a 3a 45 78 63 65 70 74 69 6f 6e 73 3b 00 00 20 20 20 20 e.HTML::Mason::Exceptions;......
3ca0 6d 79 20 40 62 69 6e 64 20 3d 20 40 5f 3b 00 20 20 20 20 6d 79 20 24 64 75 72 61 74 69 6f 6e 20 my.@bind.=.@_;.....my.$duration.
3cc0 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 20 73 68 69 =.shift;.....my.$statement.=.shi
3ce0 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 5f 4c ft;.....my.$self.=.shift;.sub._L
3d00 6f 67 53 51 4c 53 74 61 74 65 6d 65 6e 74 20 7b 00 23 20 61 6e 64 20 75 73 65 73 20 6d 61 73 6f ogSQLStatement.{.#.and.uses.maso
3d20 6e 20 63 6f 6d 70 6f 6e 65 6e 74 20 70 61 74 68 73 20 70 72 6f 70 65 72 6c 79 00 23 20 6c 6f 67 n.component.paths.properly.#.log
3d40 20 61 20 6d 61 73 6f 6e 20 73 74 61 63 6b 20 74 72 61 63 65 20 69 6e 73 74 65 61 64 20 6f 66 20 .a.mason.stack.trace.instead.of.
3d60 61 20 43 61 72 70 3a 3a 6c 6f 6e 67 6d 65 73 73 20 62 65 63 61 75 73 65 20 69 74 27 73 20 6c 65 a.Carp::longmess.because.it's.le
3d80 73 73 20 70 61 69 6e 66 75 6c 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 73 71 6c 3b 00 00 ss.painful..}.....return.$sql;..
3da0 20 20 20 20 24 73 71 6c 20 3d 7e 20 73 7b 5c 3f 7d 7b 24 73 65 6c 66 2d 3e 51 75 6f 74 65 28 24 ....$sql.=~.s{\?}{$self->Quote($
3dc0 62 69 6e 64 2d 3e 5b 24 62 2b 2b 5d 29 7d 65 67 3b 00 20 20 20 20 23 20 69 73 20 74 68 69 73 20 bind->[$b++])}eg;.....#.is.this.
3de0 72 65 67 65 78 20 73 75 66 66 69 63 69 65 6e 74 3f 00 00 20 20 20 20 6d 79 20 24 62 20 3d 20 30 regex.sufficient?......my.$b.=.0
3e00 3b 00 00 20 20 20 20 6d 79 20 24 62 69 6e 64 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 ;......my.$bind.=.shift;.....my.
3e20 24 73 71 6c 20 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 $sql..=.shift;.....my.$self.=.sh
3e40 69 66 74 3b 00 73 75 62 20 46 69 6c 6c 49 6e 20 7b 00 00 3d 63 75 74 00 00 71 75 65 72 79 27 73 ift;.sub.FillIn.{..=cut..query's
3e60 20 43 3c 3f 3e 20 70 61 72 61 6d 65 74 65 72 73 2e 00 54 61 6b 65 73 20 61 20 53 51 4c 20 71 75 .C<?>.parameters..Takes.a.SQL.qu
3e80 65 72 79 20 61 6e 64 20 61 6e 20 61 72 72 61 79 20 72 65 66 65 72 65 6e 63 65 20 6f 66 20 62 69 ery.and.an.array.reference.of.bi
3ea0 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 00 00 nd.parameters.and.fills.in.the..
3ec0 3d 68 65 61 64 32 20 46 69 6c 6c 49 6e 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 73 65 6c =head2.FillIn..}.....return.$sel
3ee0 66 2d 3e 64 62 68 2d 3e 71 75 6f 74 65 28 24 76 61 6c 75 65 29 3b 00 00 20 20 20 20 6d 79 20 24 f->dbh->quote($value);......my.$
3f00 76 61 6c 75 65 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 value.=.shift;.....my.$self.=.sh
3f20 69 66 74 3b 00 73 75 62 20 51 75 6f 74 65 20 7b 00 00 3d 63 75 74 00 00 77 69 74 68 20 74 68 65 ift;.sub.Quote.{..=cut..with.the
3f40 20 64 61 74 61 62 61 73 65 2e 00 55 73 65 20 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 28 .database..Use.bind.parameters.(
3f60 43 3c 3f 3e 29 20 69 6e 73 74 65 61 64 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 C<?>).instead..This.is.used.only
3f80 20 6f 75 74 73 69 64 65 20 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 6e 74 65 72 61 63 74 69 6e .outside.the.scope.of.interactin
3fa0 67 00 52 65 74 75 72 6e 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 71 75 6f 74 65 64 20 62 g.Returns.the.parameter.quoted.b
3fc0 79 20 44 42 49 2e 20 42 3c 59 6f 75 20 61 6c 6d 6f 73 74 20 63 65 72 74 61 69 6e 6c 79 20 64 6f y.DBI..B<You.almost.certainly.do
3fe0 20 6e 6f 74 20 6e 65 65 64 20 74 68 69 73 2e 3e 00 00 3d 68 65 61 64 32 20 51 75 6f 74 65 00 00 .not.need.this.>..=head2.Quote..
4000 61 64 00 00 0b 02 00 00 03 04 00 00 00 10 00 00 77 00 00 00 00 00 00 00 fa 0f 00 00 f9 0f 00 00 ad..............w...............
4020 f8 0f 00 00 f7 0f 00 00 af 0f 00 00 ad 0f 00 00 ac 0f 00 00 9c 0f 00 00 9b 0f 00 00 4c 0f 00 00 ............................L...
4040 3b 0f 00 00 3a 0f 00 00 35 0f 00 00 34 0f 00 00 33 0f 00 00 24 0f 00 00 0e 0f 00 00 b7 0e 00 00 ;...:...5...4...3...$...........
4060 84 0e 00 00 3b 0e 00 00 08 0e 00 00 e2 0d 00 00 af 0d 00 00 7c 0d 00 00 41 0d 00 00 f0 0c 00 00 ....;...............|...A.......
4080 ef 0c 00 00 de 0c 00 00 be 0c 00 00 9e 0c 00 00 7e 0c 00 00 5e 0c 00 00 21 0c 00 00 1a 0c 00 00 ................~...^...!.......
40a0 ec 0b 00 00 bb 0b 00 00 b5 0b 00 00 90 0b 00 00 8e 0b 00 00 8d 0b 00 00 82 0b 00 00 81 0b 00 00 ................................
40c0 39 0b 00 00 16 0b 00 00 15 0b 00 00 d2 0a 00 00 91 0a 00 00 90 0a 00 00 8b 0a 00 00 8a 0a 00 00 9...............................
40e0 80 0a 00 00 6a 0a 00 00 3f 0a 00 00 3e 0a 00 00 21 0a 00 00 0a 0a 00 00 f1 09 00 00 ef 09 00 00 ....j...?...>...!...............
4100 ee 09 00 00 dd 09 00 00 dc 09 00 00 a6 09 00 00 8a 09 00 00 89 09 00 00 4b 09 00 00 1a 09 00 00 ........................K.......
4120 19 09 00 00 14 09 00 00 13 09 00 00 03 09 00 00 ed 08 00 00 ec 08 00 00 b9 08 00 00 86 08 00 00 ................................
4140 85 08 00 00 6b 08 00 00 4a 08 00 00 02 08 00 00 db 07 00 00 d5 07 00 00 b4 07 00 00 71 07 00 00 ....k...J...................q...
4160 3a 07 00 00 34 07 00 00 23 07 00 00 21 07 00 00 20 07 00 00 ed 06 00 00 ec 06 00 00 eb 06 00 00 :...4...#...!...................
4180 ea 06 00 00 e5 06 00 00 e4 06 00 00 cf 06 00 00 b9 06 00 00 91 06 00 00 90 06 00 00 60 06 00 00 ............................`...
41a0 4e 06 00 00 15 06 00 00 e6 05 00 00 dc 05 00 00 d6 05 00 00 d5 05 00 00 b8 05 00 00 8e 05 00 00 N...............................
41c0 6b 05 00 00 4b 05 00 00 e8 04 00 00 e2 04 00 00 e1 04 00 00 ba 04 00 00 9a 04 00 00 7a 04 00 00 k...K.......................z...
41e0 1a 04 00 00 14 04 00 00 13 04 00 00 05 04 00 00 03 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4400 00 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 ...}.....return.1;......}.......
4420 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 6e 6f 62 6f 64 79 20 75 73 65 72 27 2c 20 22 ..return.(0,.'no.nobody.user',."
4440 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 4e 6f 62 6f 64 79 20 75 73 65 72 20 69 6e 20 74 68 65 Couldn't.find.Nobody.user.in.the
4460 20 44 42 20 27 22 2e 20 24 73 65 6c 66 2d 3e 44 53 4e 20 2e 22 27 22 29 3b 00 20 20 20 20 75 6e .DB.'"..$self->DSN.."'");.....un
4480 6c 65 73 73 20 28 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 24 74 less.(.$test_user->id.).{.....$t
44a0 65 73 74 5f 75 73 65 72 2d 3e 4c 6f 61 64 28 27 4e 6f 62 6f 64 79 27 29 3b 00 20 20 20 20 24 74 est_user->Load('Nobody');.....$t
44c0 65 73 74 5f 75 73 65 72 20 3d 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b est_user.=.RT::CurrentUser->new;
44e0 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 73 ......}.........return.(0,.'no.s
4500 79 73 74 65 6d 20 75 73 65 72 27 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 52 54 5f 53 ystem.user',."Couldn't.find.RT_S
4520 79 73 74 65 6d 20 75 73 65 72 20 69 6e 20 74 68 65 20 44 42 20 27 22 2e 20 24 73 65 6c 66 2d 3e ystem.user.in.the.DB.'"..$self->
4540 44 53 4e 20 2e 22 27 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 74 65 73 74 5f 75 73 DSN.."'");.....unless.(.$test_us
4560 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c 6f 61 64 28 er->id.).{.....$test_user->Load(
4580 27 52 54 5f 53 79 73 74 65 6d 27 29 3b 00 20 20 20 20 6d 79 20 24 74 65 73 74 5f 75 73 65 72 20 'RT_System');.....my.$test_user.
45a0 3d 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 20 20 20 20 72 65 71 75 =.RT::CurrentUser->new;.....requ
45c0 69 72 65 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 3b 00 00 20 20 20 20 7d 00 20 20 20 20 ire.RT::CurrentUser;......}.....
45e0 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f ....}.............return.(0,.'no
4600 20 63 6f 6e 6e 65 63 74 69 6f 6e 27 2c 20 22 24 40 22 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c .connection',."$@");.........unl
4620 65 73 73 20 28 20 65 76 61 6c 20 7b 20 52 54 3a 3a 43 6f 6e 6e 65 63 74 54 6f 44 61 74 61 62 61 ess.(.eval.{.RT::ConnectToDataba
4640 73 65 28 29 3b 20 31 20 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 se();.1.}.).{.........local.$@;.
4660 20 20 20 20 75 6e 6c 65 73 73 20 28 24 52 54 3a 3a 48 61 6e 64 6c 65 20 61 6e 64 20 24 52 54 3a ....unless.($RT::Handle.and.$RT:
4680 3a 48 61 6e 64 6c 65 2d 3e 64 62 68 29 20 7b 00 00 20 20 20 20 24 73 65 6c 66 20 3d 20 6e 65 77 :Handle->dbh).{......$self.=.new
46a0 20 24 73 65 6c 66 20 75 6e 6c 65 73 73 20 72 65 66 20 24 73 65 6c 66 3b 00 20 20 20 20 6d 79 20 .$self.unless.ref.$self;.....my.
46c0 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 43 68 65 63 6b 49 6e 74 65 67 72 69 74 $self.=.shift;.sub.CheckIntegrit
46e0 79 20 7b 00 00 3d 63 75 74 00 00 00 00 3d 68 65 61 64 32 20 44 61 74 61 62 61 73 65 20 63 6f 6d y.{..=cut....=head2.Database.com
4700 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20 69 6e 74 65 67 72 69 74 79 20 63 68 65 63 6b 73 00 patibility.and.integrity.checks.
4720 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 64 73 6e 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 .}.....return.$dsn;.....}.......
4740 20 20 24 64 73 6e 20 3d 7e 20 73 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 64 62 ..$dsn.=~.s/dbname=\Q$db_name/db
4760 6e 61 6d 65 3d 74 65 6d 70 6c 61 74 65 31 2f 3b 00 20 20 20 20 20 20 20 20 23 20 77 69 74 68 20 name=template1/;.........#.with.
4780 70 6f 73 74 67 72 65 73 2c 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f postgres,.you.want.to.connect.to
47a0 20 74 65 6d 70 6c 61 74 65 31 20 64 61 74 61 62 61 73 65 00 20 20 20 20 65 6c 73 69 66 20 28 20 .template1.database.....elsif.(.
47c0 24 64 62 5f 74 79 70 65 20 65 71 20 27 50 67 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 $db_type.eq.'Pg'.).{.....}......
47e0 20 20 20 24 64 73 6e 20 3d 7e 20 73 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 2f ...$dsn.=~.s/dbname=\Q$db_name//
4800 3b 00 20 20 20 20 20 20 20 20 23 20 77 69 74 68 20 6d 79 73 71 6c 2c 20 79 6f 75 20 77 61 6e 74 ;.........#.with.mysql,.you.want
4820 20 74 6f 20 63 6f 6e 6e 65 63 74 20 73 61 6e 73 20 64 61 74 61 62 61 73 65 20 74 6f 20 66 75 6e .to.connect.sans.database.to.fun
4840 67 65 20 74 68 69 6e 67 73 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 ge.things.....if.(.$db_type.eq.'
4860 6d 79 73 71 6c 27 20 29 20 7b 00 20 20 20 20 6d 79 20 24 64 73 6e 20 3d 20 24 73 65 6c 66 2d 3e mysql'.).{.....my.$dsn.=.$self->
4880 44 53 4e 3b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 DSN;......my.$db_type.=.RT->Conf
48a0 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 20 ig->Get('DatabaseType');.....my.
48c0 24 64 62 5f 6e 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 $db_name.=.RT->Config->Get('Data
48e0 62 61 73 65 4e 61 6d 65 27 29 3b 00 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 baseName');......my.$self.=.shif
4900 74 3b 00 73 75 62 20 53 79 73 74 65 6d 44 53 4e 20 7b 00 00 3d 63 75 74 00 00 74 6f 20 72 65 71 t;.sub.SystemDSN.{..=cut..to.req
4920 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 73 79 73 74 65 6d 20 52 uirements.of.a.database.system.R
4940 54 27 73 20 75 73 69 6e 67 2e 00 47 65 74 73 20 52 54 27 73 20 44 53 4e 20 66 69 72 73 74 20 28 T's.using..Gets.RT's.DSN.first.(
4960 73 65 65 20 4c 3c 44 53 4e 3e 29 20 61 6e 64 20 74 68 65 6e 20 63 68 61 6e 67 65 20 69 74 20 61 see.L<DSN>).and.then.change.it.a
4980 63 63 6f 72 64 69 6e 67 00 00 61 6e 64 20 75 73 65 72 20 63 72 65 61 74 65 73 20 61 6e 64 20 64 ccording..and.user.creates.and.d
49a0 72 6f 70 73 2e 00 52 65 74 75 72 6e 73 20 61 20 44 53 4e 20 73 75 69 74 61 62 6c 65 20 66 6f 72 rops..Returns.a.DSN.suitable.for
49c0 20 64 61 74 61 62 61 73 65 20 63 72 65 61 74 65 73 20 61 6e 64 20 64 72 6f 70 73 00 00 3d 68 65 .database.creates.and.drops..=he
49e0 61 64 32 20 53 79 73 74 65 6d 44 53 4e 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 68 61 6e ad2.SystemDSN..}.....return.$han
4a00 64 6c 65 2d 3e 44 53 4e 3b 00 20 20 20 20 24 68 61 6e 64 6c 65 2d 3e 42 75 69 6c 64 44 53 4e 3b dle->DSN;.....$handle->BuildDSN;
4a20 00 20 20 20 20 6d 79 20 24 68 61 6e 64 6c 65 20 3d 20 24 73 65 6c 66 2d 3e 6e 65 77 3b 00 00 20 .....my.$handle.=.$self->new;...
4a40 20 20 20 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a 44 53 4e 20 69 66 20 72 ...return.$self->SUPER::DSN.if.r
4a60 65 66 20 24 73 65 6c 66 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 ef.$self;.....my.$self.=.shift;.
4a80 73 75 62 20 44 53 4e 20 7b 00 00 3d 63 75 74 00 00 74 65 6d 70 6f 72 61 72 79 20 68 61 6e 64 6c sub.DSN.{..=cut..temporary.handl
4aa0 65 20 6f 62 6a 65 63 74 2c 20 4c 3c 2f 42 75 69 6c 64 44 53 4e 20 62 75 69 6c 64 73 20 44 53 4e e.object,.L</BuildDSN.builds.DSN
4ac0 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 69 74 2e 00 54 68 69 73 20 69 73 20 6d 65 74 68 6f 64 >.and.returns.it..This.is.method
4ae0 20 63 61 6e 20 62 65 20 63 61 6c 6c 65 64 20 61 73 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 2c 20 .can.be.called.as.class.method,.
4b00 69 6e 20 74 68 69 73 20 63 61 73 65 20 63 72 65 61 74 65 73 00 00 62 75 69 6c 64 20 44 53 4e 20 in.this.case.creates..build.DSN.
4b20 66 69 72 73 74 2c 20 73 65 65 20 4c 3c 2f 42 75 69 6c 64 44 53 4e 3e 2e 00 52 65 74 75 72 6e 73 first,.see.L</BuildDSN>..Returns
4b40 20 74 68 65 20 44 53 4e 20 66 6f 72 20 74 68 69 73 20 68 61 6e 64 6c 65 2e 20 49 6e 20 6f 72 64 .the.DSN.for.this.handle..In.ord
4b60 65 72 20 74 6f 20 67 65 74 20 63 6f 72 72 65 63 74 20 76 61 6c 75 65 20 79 6f 75 20 6d 75 73 74 er.to.get.correct.value.you.must
4b80 00 00 3d 68 65 61 64 32 20 44 53 4e 00 00 7d 00 20 20 20 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 ..=head2.DSN..}.....$self->SUPER
4ba0 3a 3a 42 75 69 6c 64 44 53 4e 28 20 25 61 72 67 73 20 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 ::BuildDSN(.%args.);.....}......
4bc0 20 20 20 24 61 72 67 73 7b 27 53 49 44 27 7d 20 3d 20 64 65 6c 65 74 65 20 24 61 72 67 73 7b 27 ...$args{'SID'}.=.delete.$args{'
4be0 44 61 74 61 62 61 73 65 27 7d 3b 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 Database'};.....if.(.$db_type.eq
4c00 20 27 4f 72 61 63 6c 65 27 20 26 26 20 24 64 62 5f 68 6f 73 74 20 29 20 7b 00 20 20 20 20 29 3b .'Oracle'.&&.$db_host.).{.....);
4c20 00 20 20 20 20 20 20 20 20 52 65 71 75 69 72 65 53 53 4c 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 69 .........RequireSSL.=>.RT->Confi
4c40 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 52 65 71 75 69 72 65 53 53 4c 27 29 2c 00 20 20 g->Get('DatabaseRequireSSL'),...
4c60 20 20 20 20 20 20 44 72 69 76 65 72 20 20 20 20 20 3d 3e 20 24 64 62 5f 74 79 70 65 2c 00 20 20 ......Driver.....=>.$db_type,...
4c80 20 20 20 20 20 20 50 6f 72 74 20 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 70 6f 72 74 2c 00 20 20 ......Port.......=>.$db_port,...
4ca0 20 20 20 20 20 20 44 61 74 61 62 61 73 65 20 20 20 3d 3e 20 24 64 62 5f 6e 61 6d 65 2c 00 20 20 ......Database...=>.$db_name,...
4cc0 20 20 20 20 20 20 48 6f 73 74 20 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 68 6f 73 74 2c 00 20 20 ......Host.......=>.$db_host,...
4ce0 20 20 6d 79 20 25 61 72 67 73 20 3d 20 28 00 00 20 20 20 20 20 20 20 20 69 66 20 24 64 62 5f 74 ..my.%args.=.(..........if.$db_t
4d00 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 20 26 26 20 21 46 69 6c 65 3a 3a 53 70 65 63 2d 3e ype.eq.'SQLite'.&&.!File::Spec->
4d20 66 69 6c 65 5f 6e 61 6d 65 5f 69 73 5f 61 62 73 6f 6c 75 74 65 28 24 64 62 5f 6e 61 6d 65 29 3b file_name_is_absolute($db_name);
4d40 00 20 20 20 20 24 64 62 5f 6e 61 6d 65 20 3d 20 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 .....$db_name.=.File::Spec->catf
4d60 69 6c 65 28 24 52 54 3a 3a 56 61 72 50 61 74 68 2c 20 24 64 62 5f 6e 61 6d 65 29 00 20 20 20 20 ile($RT::VarPath,.$db_name).....
4d80 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 my.$db_type.=.RT->Config->Get('D
4da0 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d atabaseType');.....my.$db_name.=
4dc0 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 .RT->Config->Get('DatabaseName')
4de0 3b 00 20 20 20 20 24 64 62 5f 68 6f 73 74 20 3d 20 75 6e 64 65 66 20 75 6e 6c 65 73 73 20 24 64 ;.....$db_host.=.undef.unless.$d
4e00 62 5f 68 6f 73 74 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 68 6f 73 74 20 3d 20 52 54 2d 3e 43 6f b_host;.....my.$db_host.=.RT->Co
4e20 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 48 6f 73 74 27 29 3b 00 20 20 20 20 24 nfig->Get('DatabaseHost');.....$
4e40 64 62 5f 70 6f 72 74 20 3d 20 75 6e 64 65 66 20 75 6e 6c 65 73 73 20 28 64 65 66 69 6e 65 64 20 db_port.=.undef.unless.(defined.
4e60 24 64 62 5f 70 6f 72 74 20 26 26 20 24 64 62 5f 70 6f 72 74 20 3d 7e 20 2f 5e 28 5c 64 2b 29 24 $db_port.&&.$db_port.=~./^(\d+)$
4e80 2f 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 70 6f 72 74 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 /);.....my.$db_port.=.RT->Config
4ea0 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 50 6f 72 74 27 29 3b 00 20 20 20 20 23 20 55 6e 6c ->Get('DatabasePort');.....#.Unl
4ec0 65 73 73 20 74 68 65 20 64 61 74 61 62 61 73 65 20 70 6f 72 74 20 69 73 20 61 20 70 6f 73 69 74 ess.the.database.port.is.a.posit
4ee0 69 76 65 20 69 6e 74 65 67 65 72 2c 20 77 65 20 72 65 61 6c 6c 79 20 64 6f 6e 27 74 20 77 61 6e ive.integer,.we.really.don't.wan
4f00 74 20 74 6f 20 70 61 73 73 20 69 74 2e 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 t.to.pass.it......my.$self.=.shi
4f20 66 74 3b 00 73 75 62 20 42 75 69 6c 64 44 53 4e 20 7b 00 00 00 3d 63 75 74 00 00 66 72 6f 6d 20 ft;.sub.BuildDSN.{...=cut..from.
4f40 74 68 65 20 63 6f 6e 66 69 67 2e 00 42 75 69 6c 64 20 74 68 65 20 44 53 4e 20 66 6f 72 20 74 68 the.config..Build.the.DSN.for.th
4f60 65 20 52 54 20 64 61 74 61 62 61 73 65 2e 20 44 6f 65 73 6e 27 74 20 74 61 6b 65 20 61 6e 79 20 e.RT.database..Doesn't.take.any.
4f80 70 61 72 61 6d 65 74 65 72 73 2c 20 64 72 61 77 73 20 61 6c 6c 20 74 68 61 74 00 00 3d 68 65 61 parameters,.draws.all.that..=hea
4fa0 64 32 20 42 75 69 6c 64 44 53 4e 00 00 7d 00 20 20 20 20 24 73 65 6c 66 2d 3e 64 62 68 2d 3e 7b d2.BuildDSN..}.....$self->dbh->{
4fc0 27 4c 6f 6e 67 52 65 61 64 4c 65 6e 27 7d 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 'LongReadLen'}.=.RT->Config->Get
4fe0 28 27 4d 61 78 41 74 74 61 63 68 6d 65 6e 74 53 69 7a 65 27 29 3b 00 00 00 00 20 20 20 20 7d 00 ('MaxAttachmentSize');........}.
5000 61 64 00 00 70 0d 00 00 cc 0d 00 00 00 10 00 00 10 00 00 00 00 00 00 00 d8 0f 00 00 c9 0f 00 00 ad..p...........................
5020 c2 0f 00 00 c1 0f 00 00 a0 0f 00 00 72 0f 00 00 42 0f 00 00 03 0f 00 00 fd 0e 00 00 fc 0e 00 00 ............r...B...............
5040 fb 0e 00 00 dd 0e 00 00 af 0e 00 00 7f 0e 00 00 16 0e 00 00 cc 0d 00 00 2e 0e 00 00 2d 0e 00 00 ............................-...
5060 2c 0e 00 00 e4 0d 00 00 e2 0d 00 00 e1 0d 00 00 d1 0d 00 00 d0 0d 00 00 81 0d 00 00 70 0d 00 00 ,...........................p...
5080 6f 0d 00 00 6a 0d 00 00 69 0d 00 00 68 0d 00 00 59 0d 00 00 43 0d 00 00 ec 0c 00 00 b9 0c 00 00 o...j...i...h...Y...C...........
50a0 70 0c 00 00 3d 0c 00 00 17 0c 00 00 e4 0b 00 00 b1 0b 00 00 76 0b 00 00 25 0b 00 00 24 0b 00 00 p...=...............v...%...$...
50c0 13 0b 00 00 f3 0a 00 00 d3 0a 00 00 b3 0a 00 00 93 0a 00 00 56 0a 00 00 4f 0a 00 00 21 0a 00 00 ....................V...O...!...
50e0 f0 09 00 00 ea 09 00 00 c5 09 00 00 c3 09 00 00 c2 09 00 00 b7 09 00 00 b6 09 00 00 6e 09 00 00 ............................n...
5100 4b 09 00 00 4a 09 00 00 07 09 00 00 c6 08 00 00 c5 08 00 00 c0 08 00 00 bf 08 00 00 b5 08 00 00 K...J...........................
5120 9f 08 00 00 74 08 00 00 73 08 00 00 56 08 00 00 3f 08 00 00 26 08 00 00 24 08 00 00 23 08 00 00 ....t...s...V...?...&...$...#...
5140 12 08 00 00 11 08 00 00 db 07 00 00 bf 07 00 00 be 07 00 00 80 07 00 00 4f 07 00 00 4e 07 00 00 ........................O...N...
5160 49 07 00 00 48 07 00 00 38 07 00 00 22 07 00 00 21 07 00 00 ee 06 00 00 bb 06 00 00 ba 06 00 00 I...H...8..."...!...............
5180 a0 06 00 00 7f 06 00 00 37 06 00 00 10 06 00 00 0a 06 00 00 e9 05 00 00 a6 05 00 00 6f 05 00 00 ........7...................o...
51a0 69 05 00 00 58 05 00 00 56 05 00 00 55 05 00 00 22 05 00 00 21 05 00 00 20 05 00 00 1f 05 00 00 i...X...V...U..."...!...........
51c0 1a 05 00 00 19 05 00 00 04 05 00 00 ee 04 00 00 c6 04 00 00 c5 04 00 00 95 04 00 00 83 04 00 00 ................................
51e0 4a 04 00 00 1b 04 00 00 11 04 00 00 0b 04 00 00 0a 04 00 00 ed 03 00 00 c3 03 00 00 a0 03 00 00 J...............................
5200 80 03 00 00 1d 03 00 00 17 03 00 00 16 03 00 00 ef 02 00 00 cf 02 00 00 af 02 00 00 4f 02 00 00 ............................O...
5220 49 02 00 00 48 02 00 00 3a 02 00 00 38 02 00 00 00 00 00 00 00 00 00 00 7d 00 20 20 20 20 72 65 I...H...:...8...........}.....re
5240 74 75 72 6e 20 31 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 turn.1;......}.........return.(0
5260 2c 20 27 6e 6f 20 6e 6f 62 6f 64 79 20 75 73 65 72 27 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 ,.'no.nobody.user',."Couldn't.fi
5280 6e 64 20 4e 6f 62 6f 64 79 20 75 73 65 72 20 69 6e 20 74 68 65 20 44 42 20 27 22 2e 20 24 73 65 nd.Nobody.user.in.the.DB.'"..$se
52a0 6c 66 2d 3e 44 53 4e 20 2e 22 27 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 74 65 73 lf->DSN.."'");.....unless.(.$tes
52c0 74 5f 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c t_user->id.).{.....$test_user->L
52e0 6f 61 64 28 27 4e 6f 62 6f 64 79 27 29 3b 00 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 20 3d 20 oad('Nobody');.....$test_user.=.
5300 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 00 20 20 20 20 7d 00 20 20 20 RT::CurrentUser->new;......}....
5320 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 73 79 73 74 65 6d 20 75 73 65 72 27 .....return.(0,.'no.system.user'
5340 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 52 54 5f 53 79 73 74 65 6d 20 75 73 65 72 20 ,."Couldn't.find.RT_System.user.
5360 69 6e 20 74 68 65 20 44 42 20 27 22 2e 20 24 73 65 6c 66 2d 3e 44 53 4e 20 2e 22 27 22 29 3b 00 in.the.DB.'"..$self->DSN.."'");.
5380 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 ....unless.(.$test_user->id.).{.
53a0 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c 6f 61 64 28 27 52 54 5f 53 79 73 74 65 6d 27 ....$test_user->Load('RT_System'
53c0 29 3b 00 20 20 20 20 6d 79 20 24 74 65 73 74 5f 75 73 65 72 20 3d 20 52 54 3a 3a 43 75 72 72 65 );.....my.$test_user.=.RT::Curre
53e0 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 20 20 20 20 72 65 71 75 69 72 65 20 52 54 3a 3a 43 75 72 ntUser->new;.....require.RT::Cur
5400 72 65 6e 74 55 73 65 72 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 rentUser;......}.........}......
5420 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 27 6e 6f 20 63 6f 6e 6e 65 63 74 69 6f 6e .......return.(0,.'no.connection
5440 27 2c 20 22 24 40 22 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 65 76 61 6c 20 ',."$@");.........unless.(.eval.
5460 7b 20 52 54 3a 3a 43 6f 6e 6e 65 63 74 54 6f 44 61 74 61 62 61 73 65 28 29 3b 20 31 20 7d 20 29 {.RT::ConnectToDatabase();.1.}.)
5480 20 7b 00 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 .{.........local.$@;.....unless.
54a0 28 24 52 54 3a 3a 48 61 6e 64 6c 65 20 61 6e 64 20 24 52 54 3a 3a 48 61 6e 64 6c 65 2d 3e 64 62 ($RT::Handle.and.$RT::Handle->db
54c0 68 29 20 7b 00 00 20 20 20 20 24 73 65 6c 66 20 3d 20 6e 65 77 20 24 73 65 6c 66 20 75 6e 6c 65 h).{......$self.=.new.$self.unle
54e0 73 73 20 72 65 66 20 24 73 65 6c 66 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 ss.ref.$self;.....my.$self.=.shi
5500 66 74 3b 00 73 75 62 20 43 68 65 63 6b 49 6e 74 65 67 72 69 74 79 20 7b 00 00 3d 63 75 74 00 00 ft;.sub.CheckIntegrity.{..=cut..
5520 00 00 3d 68 65 61 64 32 20 44 61 74 61 62 61 73 65 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 ..=head2.Database.compatibility.
5540 61 6e 64 20 69 6e 74 65 67 72 69 74 79 20 63 68 65 63 6b 73 00 00 7d 00 20 20 20 20 72 65 74 75 and.integrity.checks..}.....retu
5560 72 6e 20 24 64 73 6e 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 7e 20 73 rn.$dsn;.....}.........$dsn.=~.s
5580 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 64 62 6e 61 6d 65 3d 74 65 6d 70 6c 61 /dbname=\Q$db_name/dbname=templa
55a0 74 65 31 2f 3b 00 20 20 20 20 20 20 20 20 23 20 77 69 74 68 20 70 6f 73 74 67 72 65 73 2c 20 79 te1/;.........#.with.postgres,.y
55c0 6f 75 20 77 61 6e 74 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 74 65 6d 70 6c 61 74 65 31 20 ou.want.to.connect.to.template1.
55e0 64 61 74 61 62 61 73 65 00 20 20 20 20 65 6c 73 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 database.....elsif.(.$db_type.eq
5600 20 27 50 67 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 64 73 6e 20 3d 7e 20 .'Pg'.).{.....}.........$dsn.=~.
5620 73 2f 64 62 6e 61 6d 65 3d 5c 51 24 64 62 5f 6e 61 6d 65 2f 2f 3b 00 20 20 20 20 20 20 20 20 23 s/dbname=\Q$db_name//;.........#
5640 20 77 69 74 68 20 6d 79 73 71 6c 2c 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 6f 6e 6e 65 63 74 .with.mysql,.you.want.to.connect
5660 20 73 61 6e 73 20 64 61 74 61 62 61 73 65 20 74 6f 20 66 75 6e 67 65 20 74 68 69 6e 67 73 00 20 .sans.database.to.funge.things..
5680 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 6d 79 73 71 6c 27 20 29 20 7b 00 ...if.(.$db_type.eq.'mysql'.).{.
56a0 20 20 20 20 6d 79 20 24 64 73 6e 20 3d 20 24 73 65 6c 66 2d 3e 44 53 4e 3b 00 00 20 20 20 20 6d ....my.$dsn.=.$self->DSN;......m
56c0 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 y.$db_type.=.RT->Config->Get('Da
56e0 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d 20 tabaseType');.....my.$db_name.=.
5700 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 3b RT->Config->Get('DatabaseName');
5720 00 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 53 79 73 74 ......my.$self.=.shift;.sub.Syst
5740 65 6d 44 53 4e 20 7b 00 00 3d 63 75 74 00 00 74 6f 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f emDSN.{..=cut..to.requirements.o
5760 66 20 61 20 64 61 74 61 62 61 73 65 20 73 79 73 74 65 6d 20 52 54 27 73 20 75 73 69 6e 67 2e 00 f.a.database.system.RT's.using..
5780 47 65 74 73 20 52 54 27 73 20 44 53 4e 20 66 69 72 73 74 20 28 73 65 65 20 4c 3c 44 53 4e 3e 29 Gets.RT's.DSN.first.(see.L<DSN>)
57a0 20 61 6e 64 20 74 68 65 6e 20 63 68 61 6e 67 65 20 69 74 20 61 63 63 6f 72 64 69 6e 67 00 00 61 .and.then.change.it.according..a
57c0 6e 64 20 75 73 65 72 20 63 72 65 61 74 65 73 20 61 6e 64 20 64 72 6f 70 73 2e 00 52 65 74 75 72 nd.user.creates.and.drops..Retur
57e0 6e 73 20 61 20 44 53 4e 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 64 61 74 61 62 61 73 65 20 63 ns.a.DSN.suitable.for.database.c
5800 72 65 61 74 65 73 20 61 6e 64 20 64 72 6f 70 73 00 00 3d 68 65 61 64 32 20 53 79 73 74 65 6d 44 reates.and.drops..=head2.SystemD
5820 53 4e 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 68 61 6e 64 6c 65 2d 3e 44 53 4e 3b 00 20 SN..}.....return.$handle->DSN;..
5840 20 20 20 24 68 61 6e 64 6c 65 2d 3e 42 75 69 6c 64 44 53 4e 3b 00 20 20 20 20 6d 79 20 24 68 61 ...$handle->BuildDSN;.....my.$ha
5860 6e 64 6c 65 20 3d 20 24 73 65 6c 66 2d 3e 6e 65 77 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 24 ndle.=.$self->new;......return.$
5880 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a 44 53 4e 20 69 66 20 72 65 66 20 24 73 65 6c 66 3b 00 20 self->SUPER::DSN.if.ref.$self;..
58a0 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 44 53 4e 20 7b 00 00 ...my.$self.=.shift;.sub.DSN.{..
58c0 3d 63 75 74 00 00 74 65 6d 70 6f 72 61 72 79 20 68 61 6e 64 6c 65 20 6f 62 6a 65 63 74 2c 20 4c =cut..temporary.handle.object,.L
58e0 3c 2f 42 75 69 6c 64 44 53 4e 20 62 75 69 6c 64 73 20 44 53 4e 3e 20 61 6e 64 20 72 65 74 75 72 </BuildDSN.builds.DSN>.and.retur
5900 6e 73 20 69 74 2e 00 54 68 69 73 20 69 73 20 6d 65 74 68 6f 64 20 63 61 6e 20 62 65 20 63 61 6c ns.it..This.is.method.can.be.cal
5920 6c 65 64 20 61 73 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 2c 20 69 6e 20 74 68 69 73 20 63 61 73 led.as.class.method,.in.this.cas
5940 65 20 63 72 65 61 74 65 73 00 00 62 75 69 6c 64 20 44 53 4e 20 66 69 72 73 74 2c 20 73 65 65 20 e.creates..build.DSN.first,.see.
5960 4c 3c 2f 42 75 69 6c 64 44 53 4e 3e 2e 00 52 65 74 75 72 6e 73 20 74 68 65 20 44 53 4e 20 66 6f L</BuildDSN>..Returns.the.DSN.fo
5980 72 20 74 68 69 73 20 68 61 6e 64 6c 65 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 67 65 74 20 63 r.this.handle..In.order.to.get.c
59a0 6f 72 72 65 63 74 20 76 61 6c 75 65 20 79 6f 75 20 6d 75 73 74 00 00 3d 68 65 61 64 32 20 44 53 orrect.value.you.must..=head2.DS
59c0 4e 00 00 7d 00 20 20 20 20 24 73 65 6c 66 2d 3e 53 55 50 45 52 3a 3a 42 75 69 6c 64 44 53 4e 28 N..}.....$self->SUPER::BuildDSN(
59e0 20 25 61 72 67 73 20 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 61 72 67 73 7b 27 53 .%args.);.....}.........$args{'S
5a00 49 44 27 7d 20 3d 20 64 65 6c 65 74 65 20 24 61 72 67 73 7b 27 44 61 74 61 62 61 73 65 27 7d 3b ID'}.=.delete.$args{'Database'};
5a20 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 26 .....if.(.$db_type.eq.'Oracle'.&
5a40 26 20 24 64 62 5f 68 6f 73 74 20 29 20 7b 00 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 52 65 &.$db_host.).{.....);.........Re
5a60 71 75 69 72 65 53 53 4c 20 3d 3e 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 quireSSL.=>.RT->Config->Get('Dat
5a80 61 62 61 73 65 52 65 71 75 69 72 65 53 53 4c 27 29 2c 00 20 20 20 20 20 20 20 20 44 72 69 76 65 abaseRequireSSL'),.........Drive
5aa0 72 20 20 20 20 20 3d 3e 20 24 64 62 5f 74 79 70 65 2c 00 20 20 20 20 20 20 20 20 50 6f 72 74 20 r.....=>.$db_type,.........Port.
5ac0 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 70 6f 72 74 2c 00 20 20 20 20 20 20 20 20 44 61 74 61 62 ......=>.$db_port,.........Datab
5ae0 61 73 65 20 20 20 3d 3e 20 24 64 62 5f 6e 61 6d 65 2c 00 20 20 20 20 20 20 20 20 48 6f 73 74 20 ase...=>.$db_name,.........Host.
5b00 20 20 20 20 20 20 3d 3e 20 24 64 62 5f 68 6f 73 74 2c 00 20 20 20 20 6d 79 20 25 61 72 67 73 20 ......=>.$db_host,.....my.%args.
5b20 3d 20 28 00 00 20 20 20 20 20 20 20 20 69 66 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c =.(..........if.$db_type.eq.'SQL
5b40 69 74 65 27 20 26 26 20 21 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 66 69 6c 65 5f 6e 61 6d 65 5f 69 ite'.&&.!File::Spec->file_name_i
5b60 73 5f 61 62 73 6f 6c 75 74 65 28 24 64 62 5f 6e 61 6d 65 29 3b 00 20 20 20 20 24 64 62 5f 6e 61 s_absolute($db_name);.....$db_na
5b80 6d 65 20 3d 20 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 69 6c 65 28 24 52 54 3a 3a 56 61 me.=.File::Spec->catfile($RT::Va
5ba0 72 50 61 74 68 2c 20 24 64 62 5f 6e 61 6d 65 29 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 rPath,.$db_name).....my.$db_type
5bc0 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 .=.RT->Config->Get('DatabaseType
5be0 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 ');.....my.$db_name.=.RT->Config
5c00 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 3b 00 20 20 20 20 24 64 62 5f 68 ->Get('DatabaseName');.....$db_h
5c20 6f 73 74 20 3d 20 75 6e 64 65 66 20 75 6e 6c 65 73 73 20 24 64 62 5f 68 6f 73 74 3b 00 20 20 20 ost.=.undef.unless.$db_host;....
5c40 20 6d 79 20 24 64 62 5f 68 6f 73 74 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 .my.$db_host.=.RT->Config->Get('
5c60 44 61 74 61 62 61 73 65 48 6f 73 74 27 29 3b 00 20 20 20 20 24 64 62 5f 70 6f 72 74 20 3d 20 75 DatabaseHost');.....$db_port.=.u
5c80 6e 64 65 66 20 75 6e 6c 65 73 73 20 28 64 65 66 69 6e 65 64 20 24 64 62 5f 70 6f 72 74 20 26 26 ndef.unless.(defined.$db_port.&&
5ca0 20 24 64 62 5f 70 6f 72 74 20 3d 7e 20 2f 5e 28 5c 64 2b 29 24 2f 29 3b 00 20 20 20 20 6d 79 20 .$db_port.=~./^(\d+)$/);.....my.
5cc0 24 64 62 5f 70 6f 72 74 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 $db_port.=.RT->Config->Get('Data
5ce0 62 61 73 65 50 6f 72 74 27 29 3b 00 20 20 20 20 23 20 55 6e 6c 65 73 73 20 74 68 65 20 64 61 74 basePort');.....#.Unless.the.dat
5d00 61 62 61 73 65 20 70 6f 72 74 20 69 73 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 abase.port.is.a.positive.integer
5d20 2c 20 77 65 20 72 65 61 6c 6c 79 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 70 61 73 73 20 69 ,.we.really.don't.want.to.pass.i
5d40 74 2e 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 42 75 69 t......my.$self.=.shift;.sub.Bui
5d60 6c 64 44 53 4e 20 7b 00 00 00 3d 63 75 74 00 00 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 2e ldDSN.{...=cut..from.the.config.
5d80 00 42 75 69 6c 64 20 74 68 65 20 44 53 4e 20 66 6f 72 20 74 68 65 20 52 54 20 64 61 74 61 62 61 .Build.the.DSN.for.the.RT.databa
5da0 73 65 2e 20 44 6f 65 73 6e 27 74 20 74 61 6b 65 20 61 6e 79 20 70 61 72 61 6d 65 74 65 72 73 2c se..Doesn't.take.any.parameters,
5dc0 20 64 72 61 77 73 20 61 6c 6c 20 74 20 20 20 20 20 20 20 20 24 73 65 6c 66 2d 3e 64 62 68 2d 3e .draws.all.t........$self->dbh->
5de0 64 6f 28 22 53 45 54 20 62 79 74 65 61 5f 6f 75 74 70 75 74 20 3d 20 27 65 73 63 61 70 65 27 22 do("SET.bytea_output.=.'escape'"
5e00 29 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3e 3d 20 39 2e 30 3b 00 20 20 20 20 20 20 20 20 24 73 ).if.$version.>=.9.0;.........$s
5e20 65 6c 66 2d 3e 64 62 68 2d 3e 7b 70 67 5f 73 65 72 76 65 72 5f 70 72 65 70 61 72 65 7d 20 3d 20 elf->dbh->{pg_server_prepare}.=.
5e40 30 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3e 20 39 2e 31 3b 20 23 61 6e 64 20 77 65 27 72 65 20 0.if.$version.>.9.1;.#and.we're.
5e60 75 73 69 6e 67 20 61 20 64 65 62 2d 37 20 76 65 72 73 69 6f 6e 20 44 42 44 3a 3a 50 67 3f 00 20 using.a.deb-7.version.DBD::Pg?..
5e80 20 20 20 20 20 20 20 28 24 76 65 72 73 69 6f 6e 29 20 3d 20 24 76 65 72 73 69 6f 6e 20 3d 7e 20 .......($version).=.$version.=~.
5ea0 2f 5e 28 5c 64 2b 5c 2e 5c 64 2b 29 2f 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 76 65 72 73 69 /^(\d+\.\d+)/;.........my.$versi
5ec0 6f 6e 20 3d 20 24 73 65 6c 66 2d 3e 44 61 74 61 62 61 73 65 56 65 72 73 69 6f 6e 3b 00 20 20 20 on.=.$self->DatabaseVersion;....
5ee0 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 50 67 27 20 29 20 7b 00 00 00 20 20 20 .if.(.$db_type.eq.'Pg'.).{......
5f00 20 7d 00 20 20 20 20 20 20 20 20 24 73 65 6c 66 2d 3e 64 62 68 2d 3e 64 6f 28 22 53 45 54 20 4e .}.........$self->dbh->do("SET.N
5f20 41 4d 45 53 20 27 75 74 66 38 27 22 29 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3e 3d 20 34 2e 31 AMES.'utf8'").if.$version.>=.4.1
5f40 3b 00 20 20 20 20 20 20 20 20 28 24 76 65 72 73 69 6f 6e 29 20 3d 20 24 76 65 72 73 69 6f 6e 20 ;.........($version).=.$version.
5f60 3d 7e 20 2f 5e 28 5c 64 2b 5c 2e 5c 64 2b 29 2f 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 76 65 =~./^(\d+\.\d+)/;.........my.$ve
5f80 72 73 69 6f 6e 20 3d 20 24 73 65 6c 66 2d 3e 44 61 74 61 62 61 73 65 56 65 72 73 69 6f 6e 3b 00 rsion.=.$self->DatabaseVersion;.
5fa0 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 6d 79 73 71 6c 27 20 29 20 7b ....if.(.$db_type.eq.'mysql'.).{
5fc0 00 00 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 25 61 72 67 73 2c 00 20 20 20 20 20 20 20 20 ......);.........%args,.........
5fe0 44 69 73 63 6f 6e 6e 65 63 74 48 61 6e 64 6c 65 4f 6e 44 65 73 74 72 6f 79 20 3d 3e 20 31 2c 00 DisconnectHandleOnDestroy.=>.1,.
6000 61 64 00 00 11 00 00 00 9d 01 00 00 00 10 00 00 5c 00 00 00 00 00 00 00 ff 0f 00 00 e6 0f 00 00 ad..............\...............
6020 d0 0f 00 00 bb 0f 00 00 9a 0f 00 00 99 0f 00 00 66 0f 00 00 45 0f 00 00 19 0f 00 00 c6 0e 00 00 ................f...E...........
6040 87 0e 00 00 6a 0e 00 00 69 0e 00 00 39 0e 00 00 d8 0d 00 00 b9 0d 00 00 b8 0d 00 00 8f 0d 00 00 ....j...i...9...................
6060 5b 0d 00 00 f4 0c 00 00 d3 0c 00 00 79 0c 00 00 21 0c 00 00 cd 0b 00 00 a1 0b 00 00 4d 0b 00 00 [...........y...!...........M...
6080 d2 0a 00 00 c8 0a 00 00 c7 0a 00 00 a5 0a 00 00 4a 0a 00 00 00 0a 00 00 9b 09 00 00 8d 09 00 00 ................J...............
60a0 8c 09 00 00 30 09 00 00 ee 08 00 00 8c 08 00 00 42 08 00 00 34 08 00 00 2a 08 00 00 29 08 00 00 ....0...........B...4...*...)...
60c0 c8 07 00 00 7c 07 00 00 36 07 00 00 77 06 00 00 6d 06 00 00 67 06 00 00 58 06 00 00 56 06 00 00 ....|...6...w...m...g...X...V...
60e0 55 06 00 00 41 06 00 00 2b 06 00 00 2a 06 00 00 0a 06 00 00 e6 05 00 00 c2 05 00 00 73 05 00 00 U...A...+...*...............s...
6100 4e 05 00 00 df 04 00 00 d4 04 00 00 d3 04 00 00 a8 04 00 00 9a 04 00 00 98 04 00 00 97 04 00 00 N...............................
6120 7b 04 00 00 7a 04 00 00 5f 04 00 00 5e 04 00 00 1d 04 00 00 1c 04 00 00 da 03 00 00 96 03 00 00 {...z..._...^...................
6140 7c 03 00 00 7b 03 00 00 4a 03 00 00 49 03 00 00 44 03 00 00 43 03 00 00 2e 03 00 00 18 03 00 00 |...{...J...I...D...C...........
6160 da 02 00 00 a7 02 00 00 74 02 00 00 73 02 00 00 63 02 00 00 41 02 00 00 ff 01 00 00 f9 01 00 00 ........t...s...c...A...........
6180 d4 01 00 00 9d 01 00 00 9c 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 ................................
61a0 20 20 20 20 20 6d 79 20 24 64 62 5f 75 73 65 72 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 .....my.$db_user.=.RT->Config->G
61c0 65 74 28 27 44 61 74 61 62 61 73 65 55 73 65 72 27 29 3b 00 20 20 20 20 65 6c 73 69 66 20 28 20 et('DatabaseUser');.....elsif.(.
61e0 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 29 20 7b 00 20 20 20 20 7d 00 20 $db_type.eq.'Oracle'.).{.....}..
6200 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 31 2c 20 27 53 6b 69 70 70 65 64 20 61 73 20 53 51 .......return.(1,.'Skipped.as.SQ
6220 4c 69 74 65 20 64 6f 65 73 6e 5c 27 74 20 6e 65 65 64 20 61 6e 79 20 61 63 74 69 6f 6e 27 29 3b Lite.doesn\'t.need.any.action');
6240 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 20 29 .....if.(.$db_type.eq.'SQLite'.)
6260 20 7b 00 20 20 20 20 6d 79 20 24 73 74 61 74 75 73 3b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 6e .{.....my.$status;......my.$db_n
6280 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e ame.=.RT->Config->Get('DatabaseN
62a0 61 6d 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e ame');.....my.$db_type.=.RT->Con
62c0 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 6d 79 fig->Get('DatabaseType');.....my
62e0 20 24 64 62 68 20 20 3d 20 73 68 69 66 74 20 6f 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f .$dbh..=.shift.or.return.(0,."No
6300 20 44 42 49 20 68 61 6e 64 6c 65 20 70 72 6f 76 69 64 65 64 22 29 3b 00 20 20 20 20 6d 79 20 24 .DBI.handle.provided");.....my.$
6320 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 43 72 65 61 74 65 44 61 74 61 62 61 73 65 self.=.shift;.sub.CreateDatabase
6340 20 7b 00 00 3d 63 75 74 00 00 46 65 74 63 68 65 73 20 74 79 70 65 20 61 6e 64 20 6e 61 6d 65 20 .{..=cut..Fetches.type.and.name.
6360 6f 66 20 74 68 65 20 44 42 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 2e 00 00 6d 65 74 68 of.the.DB.from.the.config...meth
6380 6f 64 20 64 75 72 69 6e 67 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 00 61 6c 6c 6f 77 20 79 6f 75 20 od.during.connection..allow.you.
63a0 74 6f 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 2c 20 73 6f 20 79 6f 75 to.create.a.new.database,.so.you
63c0 20 68 61 76 65 20 74 6f 20 75 73 65 20 4c 3c 53 79 73 74 65 6d 44 53 4e 3e 00 54 61 6b 65 73 20 .have.to.use.L<SystemDSN>.Takes.
63e0 44 42 49 20 68 61 6e 64 6c 65 2e 20 4d 61 6e 79 20 64 61 74 61 62 61 73 65 20 73 79 73 74 65 6d DBI.handle..Many.database.system
6400 73 20 72 65 71 75 69 72 65 20 73 70 65 63 69 61 6c 20 68 61 6e 64 6c 65 20 74 6f 00 00 43 72 65 s.require.special.handle.to..Cre
6420 61 74 65 73 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65 2e 20 54 68 69 73 20 6d 65 74 68 6f 64 ates.a.new.database..This.method
6440 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 2e 00 00 3d .can.be.used.as.class.method...=
6460 68 65 61 64 33 20 43 72 65 61 74 65 44 61 74 61 62 61 73 65 20 24 44 42 48 00 00 3d 68 65 61 64 head3.CreateDatabase.$DBH..=head
6480 32 20 44 61 74 61 62 61 73 65 20 6d 61 69 6e 74 61 6e 61 6e 63 65 00 00 7d 00 20 20 20 20 72 65 2.Database.maintanance..}.....re
64a0 74 75 72 6e 20 31 3b 00 20 20 20 20 72 65 74 75 72 6e 20 30 20 75 6e 6c 65 73 73 20 6c 63 28 24 turn.1;.....return.0.unless.lc($
64c0 68 61 73 7c 7c 27 27 29 20 65 71 20 22 79 65 73 22 3b 00 00 20 20 20 20 29 29 5b 30 5d 3b 00 20 has||'').eq."yes";......))[0];..
64e0 20 20 20 20 20 20 20 22 73 65 6c 65 63 74 20 27 79 65 73 27 20 66 72 6f 6d 20 49 4e 46 4f 52 4d ......."select.'yes'.from.INFORM
6500 41 54 49 4f 4e 5f 53 43 48 45 4d 41 2e 50 4c 55 47 49 4e 53 20 77 68 65 72 65 20 50 4c 55 47 49 ATION_SCHEMA.PLUGINS.where.PLUGI
6520 4e 5f 4e 41 4d 45 20 3d 20 27 73 70 68 69 6e 78 27 20 41 4e 44 20 50 4c 55 47 49 4e 5f 53 54 41 N_NAME.=.'sphinx'.AND.PLUGIN_STA
6540 54 55 53 3d 27 61 63 74 69 76 65 27 22 00 20 20 20 20 24 68 61 73 20 7c 7c 3d 20 28 24 64 62 68 TUS='active'".....$has.||=.($dbh
6560 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 00 20 20 20 20 6d 79 20 24 68 61 73 20 3d ->selectrow_array(.....my.$has.=
6580 20 28 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 22 73 68 6f 77 20 76 61 .($dbh->selectrow_array("show.va
65a0 72 69 61 62 6c 65 73 20 6c 69 6b 65 20 27 68 61 76 65 5f 73 70 68 69 6e 78 27 22 29 29 5b 31 5d riables.like.'have_sphinx'"))[1]
65c0 3b 00 20 20 20 20 6c 6f 63 61 6c 20 24 64 62 68 2d 3e 7b 27 50 72 69 6e 74 45 72 72 6f 72 27 7d ;.....local.$dbh->{'PrintError'}
65e0 20 3d 20 30 3b 00 20 20 20 20 6c 6f 63 61 6c 20 24 64 62 68 2d 3e 7b 27 52 61 69 73 65 45 72 72 .=.0;.....local.$dbh->{'RaiseErr
6600 6f 72 27 7d 20 3d 20 30 3b 00 20 20 20 20 6d 79 20 24 64 62 68 20 3d 20 24 52 54 3a 3a 48 61 6e or'}.=.0;.....my.$dbh.=.$RT::Han
6620 64 6c 65 2d 3e 64 62 68 3b 00 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b dle->dbh;......my.$self.=.shift;
6640 00 73 75 62 20 43 68 65 63 6b 53 70 68 69 6e 78 53 45 20 7b 00 00 7d 00 20 20 20 20 72 65 74 75 .sub.CheckSphinxSE.{..}.....retu
6660 72 6e 20 28 31 29 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 rn.(1).....}.........}..........
6680 20 20 20 77 61 72 6e 20 22 6d 61 78 5f 61 6c 6c 6f 77 65 64 5f 70 61 63 6b 65 74 20 69 73 20 73 ...warn."max_allowed_packet.is.s
66a0 65 74 20 74 6f 20 24 6d 61 78 5f 70 61 63 6b 65 74 2c 20 77 68 69 63 68 20 6c 69 6d 69 74 73 20 et.to.$max_packet,.which.limits.
66c0 74 68 65 20 6d 61 78 69 6d 75 6d 20 61 74 74 61 63 68 6d 65 6e 74 20 6f 72 20 65 6d 61 69 6c 20 the.maximum.attachment.or.email.
66e0 73 69 7a 65 20 74 68 61 74 20 52 54 20 63 61 6e 20 70 72 6f 63 65 73 73 2e 20 20 43 6f 6e 73 69 size.that.RT.can.process...Consi
6700 64 65 72 20 61 64 6a 75 73 74 69 6e 67 20 4d 79 53 51 4c 27 73 20 6d 61 78 5f 61 6c 6c 6f 77 65 der.adjusting.MySQL's.max_allowe
6720 64 5f 70 61 63 6b 65 74 20 73 65 74 74 69 6e 67 2e 5c 6e 22 3b 00 20 20 20 20 20 20 20 20 20 20 d_packet.setting.\n";...........
6740 20 20 6d 79 20 24 6d 61 78 5f 70 61 63 6b 65 74 20 3d 20 73 70 72 69 6e 74 66 28 22 25 2e 31 66 ..my.$max_packet.=.sprintf("%.1f
6760 4d 22 2c 20 24 6d 61 78 5f 70 61 63 6b 65 74 2f 31 30 32 34 2f 31 30 32 34 29 3b 00 20 20 20 20 M",.$max_packet/1024/1024);.....
6780 20 20 20 20 69 66 20 28 24 73 74 61 74 65 20 3d 7e 20 2f 5e 28 63 72 65 61 74 65 7c 70 6f 73 74 ....if.($state.=~./^(create|post
67a0 29 24 2f 20 61 6e 64 20 24 6d 61 78 5f 70 61 63 6b 65 74 20 3c 3d 20 28 31 30 32 34 20 2a 20 31 )$/.and.$max_packet.<=.(1024.*.1
67c0 30 32 34 29 29 20 7b 00 20 20 20 20 20 20 20 20 6d 79 20 24 6d 61 78 5f 70 61 63 6b 65 74 20 3d 024)).{.........my.$max_packet.=
67e0 20 28 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 22 73 68 6f 77 20 76 61 .($dbh->selectrow_array("show.va
6800 72 69 61 62 6c 65 73 20 6c 69 6b 65 20 27 6d 61 78 5f 61 6c 6c 6f 77 65 64 5f 70 61 63 6b 65 74 riables.like.'max_allowed_packet
6820 27 22 29 29 5b 31 5d 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 '"))[1];..........}.............
6840 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 46 6f 6c 6c 6f 77 20 69 }......................"Follow.i
6860 6e 73 74 72 75 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 55 50 47 52 41 44 49 4e 47 2e 6d 79 73 nstructions.in.the.UPGRADING.mys
6880 71 6c 20 66 69 6c 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ql.file.");.................retu
68a0 72 6e 20 28 30 2c 20 22 52 54 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 33 2e 38 20 68 61 73 rn.(0,."RT.since.version.3.8.has
68c0 20 6e 65 77 20 73 63 68 65 6d 61 20 66 6f 72 20 4d 79 53 51 4c 20 76 65 72 73 69 6f 6e 73 20 61 .new.schema.for.MySQL.versions.a
68e0 66 74 65 72 20 34 2e 31 2e 30 5c 6e 22 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 fter.4.1.0\n".............unless
6900 20 28 20 24 63 72 65 61 74 65 5f 74 61 62 6c 65 20 3d 7e 20 2f 5c 62 43 6f 6e 74 65 6e 74 5c 62 .(.$create_table.=~./\bContent\b
6920 5b 5e 2c 5d 2a 42 4c 4f 42 2f 69 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 63 72 65 [^,]*BLOB/i.).{.............$cre
6940 61 74 65 5f 74 61 62 6c 65 20 3d 20 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 ate_table.=.$dbh->selectrow_arra
6960 79 72 65 66 28 22 53 48 4f 57 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 41 74 74 61 63 68 6d 65 yref("SHOW.CREATE.TABLE.Attachme
6980 6e 74 73 22 29 2d 3e 5b 31 5d 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 nts")->[1];..............}......
69a0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 52 54 20 72 65 71 75 69 72 ...........return.(0,."RT.requir
69c0 65 73 20 74 68 61 74 20 61 6c 6c 20 69 74 73 20 74 61 62 6c 65 73 20 62 65 20 6f 66 20 49 6e 6e es.that.all.its.tables.be.of.Inn
69e0 6f 44 42 20 74 79 70 65 2e 20 55 70 67 72 61 64 65 20 52 54 20 74 61 62 6c 65 73 2e 22 29 3b 00 oDB.type..Upgrade.RT.tables.");.
6a00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 63 72 65 61 74 65 5f 74 61 62 ............unless.(.$create_tab
6a20 6c 65 20 3d 7e 20 2f 28 3f 3a 45 4e 47 49 4e 45 7c 54 59 50 45 29 5c 73 2a 3d 5c 73 2a 49 6e 6e le.=~./(?:ENGINE|TYPE)\s*=\s*Inn
6a40 6f 44 42 2f 69 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 63 72 65 61 74 65 oDB/i.).{.............my.$create
6a60 5f 74 61 62 6c 65 20 3d 20 24 64 62 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 72 65 _table.=.$dbh->selectrow_arrayre
6a80 66 28 22 53 48 4f 57 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 54 69 63 6b 65 74 73 22 29 2d 3e f("SHOW.CREATE.TABLE.Tickets")->
6aa0 5b 31 5d 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 73 74 61 74 65 20 65 71 20 27 70 6f 73 [1];.........if.(.$state.eq.'pos
6ac0 74 27 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t'.).{..........}...............
6ae0 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 27 73 6b 69 70 2d 69 6e 6e 6f 64 62 27 20 6f 72 20 27 .."Remove.the.'skip-innodb'.or.'
6b00 69 6e 6e 6f 64 62 20 3d 20 4f 46 46 27 20 6c 69 6e 65 20 66 72 6f 6d 20 79 6f 75 72 20 6d 79 2e innodb.=.OFF'.line.from.your.my.
6b20 63 6e 66 20 66 69 6c 65 2c 20 72 65 73 74 61 72 74 20 4d 79 53 51 4c 2c 20 61 6e 64 20 74 72 79 cnf.file,.restart.MySQL,.and.try
6b40 20 61 67 61 69 6e 2e 5c 6e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 .again.\n");.............return.
6b60 28 30 2c 20 22 52 54 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 4d 79 53 51 4c 20 49 6e 6e 6f (0,."RT.requires.that.MySQL.Inno
6b80 44 42 20 74 61 62 6c 65 20 73 75 70 70 6f 72 74 20 62 65 20 65 6e 61 62 6c 65 64 2e 5c 6e 22 2e DB.table.support.be.enabled.\n".
6ba0 00 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 6e 6e 6f 64 62 20 65 71 20 22 64 .........}.elsif.(.$innodb.eq."d
6bc0 69 73 61 62 6c 65 64 22 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e isabled".).{................."an
6be0 64 20 63 68 65 63 6b 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 27 73 6b 69 70 2d d.check.that.there.are.no.'skip-
6c00 69 6e 6e 6f 64 62 27 20 6c 69 6e 65 73 20 69 6e 20 79 6f 75 72 20 6d 79 2e 63 6e 66 2e 22 29 3b innodb'.lines.in.your.my.cnf.");
6c20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 65 65 20 3c 68 74 74 70 3a 2f 2f 64 65 ................."See.<http://de
6c40 76 2e 6d 79 73 71 6c 2e 63 6f 6d 2f 64 6f 63 2f 6d 79 73 71 6c 2f 65 6e 2f 69 6e 6e 6f 64 62 2d v.mysql.com/doc/mysql/en/innodb-
6c60 73 74 6f 72 61 67 65 2d 65 6e 67 69 6e 65 2e 68 74 6d 6c 3e 5c 6e 22 2e 00 20 20 20 20 20 20 20 storage-engine.html>\n".........
6c80 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 52 54 20 72 65 71 75 69 72 65 73 20 74 68 61 .....return.(0,."RT.requires.tha
6ca0 74 20 4d 79 53 51 4c 20 62 65 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 49 6e 6e 6f 44 42 20 t.MySQL.be.compiled.with.InnoDB.
6cc0 74 61 62 6c 65 20 73 75 70 70 6f 72 74 2e 5c 6e 22 2e 00 20 20 20 20 20 20 20 20 69 66 20 28 20 table.support.\n"..........if.(.
6ce0 24 69 6e 6e 6f 64 62 20 65 71 20 22 6e 6f 22 20 29 20 7b 00 20 20 20 20 20 20 20 20 6d 79 20 24 $innodb.eq."no".).{.........my.$
6d00 69 6e 6e 6f 64 62 20 3d 20 6c 63 28 24 64 62 68 2d 3e 73 65 6c 65 63 74 61 6c 6c 5f 68 61 73 68 innodb.=.lc($dbh->selectall_hash
6d20 72 65 66 28 22 53 48 4f 57 20 45 4e 47 49 4e 45 53 22 2c 20 22 65 6e 67 69 6e 65 22 29 2d 3e 7b ref("SHOW.ENGINES",."engine")->{
6d40 49 6e 6e 6f 44 42 7d 7b 73 75 70 70 6f 72 74 7d 20 7c 7c 20 22 6e 6f 22 29 3b 00 20 20 20 20 20 InnoDB}{support}.||."no");......
6d60 20 20 20 6c 6f 63 61 6c 20 24 64 62 68 2d 3e 7b 46 65 74 63 68 48 61 73 68 4b 65 79 4e 61 6d 65 ...local.$dbh->{FetchHashKeyName
6d80 7d 20 3d 20 27 4e 41 4d 45 5f 6c 63 27 3b 00 20 20 20 20 20 20 20 20 23 20 4d 79 53 51 4c 20 6d }.=.'NAME_lc';.........#.MySQL.m
6da0 75 73 74 20 68 61 76 65 20 49 6e 6e 6f 44 42 20 73 75 70 70 6f 72 74 00 00 20 20 20 20 20 20 20 ust.have.InnoDB.support.........
6dc0 20 20 20 20 20 69 66 20 24 76 65 72 73 69 6f 6e 20 3c 20 34 2e 31 3b 00 20 20 20 20 20 20 20 20 .....if.$version.<.4.1;.........
6de0 72 65 74 75 72 6e 20 28 30 2c 20 22 52 54 20 69 73 20 75 6e 73 75 70 70 6f 72 74 65 64 20 6f 6e return.(0,."RT.is.unsupported.on
6e00 20 4d 79 53 51 4c 20 76 65 72 73 69 6f 6e 73 20 62 65 66 6f 72 65 20 34 2e 31 2e 20 20 59 6f 75 .MySQL.versions.before.4.1...You
6e20 72 20 76 65 72 73 69 6f 6e 20 69 73 20 24 76 65 72 73 69 6f 6e 2e 22 29 00 20 20 20 20 20 20 20 r.version.is.$version.")........
6e40 20 28 24 76 65 72 73 69 6f 6e 29 20 3d 20 24 76 65 72 73 69 6f 6e 20 3d 7e 20 2f 5e 28 5c 64 2b .($version).=.$version.=~./^(\d+
6e60 5c 2e 5c 64 2b 29 2f 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 24 76 65 \.\d+)/;..............unless.$ve
6e80 72 73 69 6f 6e 3b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 63 6f 75 6c 64 rsion;.........return.(0,."could
6ea0 6e 27 74 20 67 65 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 6d 79 73 71 6c 20 73 65 72 n't.get.version.of.the.mysql.ser
6ec0 76 65 72 22 29 00 20 20 20 20 20 20 20 20 6d 79 20 24 76 65 72 73 69 6f 6e 20 3d 20 28 24 64 62 ver").........my.$version.=.($db
6ee0 68 2d 3e 73 65 6c 65 63 74 72 6f 77 5f 61 72 72 61 79 28 22 73 68 6f 77 20 76 61 72 69 61 62 6c h->selectrow_array("show.variabl
6f00 65 73 20 6c 69 6b 65 20 27 76 65 72 73 69 6f 6e 27 22 29 29 5b 31 5d 3b 00 20 20 20 20 20 20 20 es.like.'version'"))[1];........
6f20 20 23 20 43 68 65 63 6b 20 77 68 69 63 68 20 76 65 72 73 69 6f 6e 20 77 65 27 72 65 20 72 75 6e .#.Check.which.version.we're.run
6f40 6e 69 6e 67 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 22 6d 79 73 71 6c ning.....if.(.$db_type.eq."mysql
6f60 22 20 29 20 7b 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 ".).{.....my.$db_type.=.RT->Conf
6f80 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b 00 00 20 20 20 20 6d 79 ig->Get('DatabaseType');......my
6fa0 20 24 73 74 61 74 65 20 3d 20 73 68 69 66 74 20 7c 7c 20 27 70 6f 73 74 27 3b 00 20 20 20 20 6d .$state.=.shift.||.'post';.....m
6fc0 79 20 24 64 62 68 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 y.$dbh.=.shift;.....my.$self.=.s
6fe0 68 69 66 74 3b 00 73 75 62 20 43 68 65 63 6b 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 7b 00 00 hift;.sub.CheckCompatibility.{..
7000 61 64 00 00 13 00 00 00 e7 01 00 00 00 10 00 00 6e 00 00 00 00 00 00 00 c5 0f 00 00 a9 0f 00 00 ad..............n...............
7020 6f 0f 00 00 46 0f 00 00 1c 0f 00 00 f3 0e 00 00 e8 0e 00 00 cb 0e 00 00 77 0e 00 00 4b 0e 00 00 o...F...................w...K...
7040 41 0e 00 00 fc 0d 00 00 df 0d 00 00 90 0d 00 00 64 0d 00 00 5a 0d 00 00 02 0d 00 00 fc 0c 00 00 A...............d...Z...........
7060 db 0c 00 00 78 0c 00 00 72 0c 00 00 4e 0c 00 00 fb 0b 00 00 f5 0b 00 00 ea 0b 00 00 b2 0b 00 00 ....x...r...N...................
7080 ac 0b 00 00 88 0b 00 00 86 0b 00 00 85 0b 00 00 6c 0b 00 00 6b 0b 00 00 2d 0b 00 00 2c 0b 00 00 ................l...k...-...,...
70a0 ea 0a 00 00 a8 0a 00 00 75 0a 00 00 74 0a 00 00 39 0a 00 00 38 0a 00 00 33 0a 00 00 32 0a 00 00 ........u...t...9...8...3...2...
70c0 1f 0a 00 00 09 0a 00 00 cb 09 00 00 ca 09 00 00 97 09 00 00 64 09 00 00 63 09 00 00 41 09 00 00 ....................d...c...A...
70e0 0a 09 00 00 cb 08 00 00 ae 08 00 00 79 08 00 00 4d 08 00 00 43 08 00 00 f6 07 00 00 f0 07 00 00 ............y...M...C...........
7100 cb 07 00 00 ae 07 00 00 66 07 00 00 23 07 00 00 0f 07 00 00 02 07 00 00 d5 06 00 00 ac 06 00 00 ........f...#...................
7120 a6 06 00 00 96 06 00 00 94 06 00 00 93 06 00 00 82 06 00 00 81 06 00 00 7c 06 00 00 7b 06 00 00 ........................|...{...
7140 6b 06 00 00 50 06 00 00 35 06 00 00 0a 06 00 00 09 06 00 00 d6 05 00 00 ae 05 00 00 ad 05 00 00 k...P...5.......................
7160 80 05 00 00 4a 05 00 00 49 05 00 00 06 05 00 00 05 05 00 00 f7 04 00 00 dc 04 00 00 9a 04 00 00 ....J...I.......................
7180 66 04 00 00 65 04 00 00 2d 04 00 00 07 04 00 00 d1 03 00 00 b4 03 00 00 a7 03 00 00 8b 03 00 00 f...e...-.......................
71a0 85 03 00 00 84 03 00 00 74 03 00 00 3b 03 00 00 22 03 00 00 ff 02 00 00 d3 02 00 00 73 02 00 00 ........t...;..."...........s...
71c0 50 02 00 00 f7 01 00 00 ed 01 00 00 e7 01 00 00 e6 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P...............................
71e0 00 00 00 00 00 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 ...........}.........}..........
7200 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 72 75 6e 20 53 51 4c 20 ...return.(0,."Couldn't.run.SQL.
7220 71 75 65 72 79 3a 5c 6e 20 24 73 74 61 74 65 6d 65 6e 74 5c 6e 5c 6e 45 52 52 4f 52 3a 20 22 2e query:\n.$statement\n\nERROR:.".
7240 20 24 73 74 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 .$sth->errstr);.........unless.(
7260 20 24 73 74 68 2d 3e 65 78 65 63 75 74 65 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6f .$sth->execute.).{.............o
7280 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 70 72 65 70 61 72 65 20 53 r.return.(0,."Couldn't.prepare.S
72a0 51 4c 20 71 75 65 72 79 3a 5c 6e 20 24 73 74 61 74 65 6d 65 6e 74 5c 6e 5c 6e 45 52 52 4f 52 3a QL.query:\n.$statement\n\nERROR:
72c0 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 73 ."..$dbh->errstr);.........my.$s
72e0 74 68 20 3d 20 24 64 62 68 2d 3e 70 72 65 70 61 72 65 28 24 73 74 61 74 65 6d 65 6e 74 29 00 20 th.=.$dbh->prepare($statement)..
7300 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 73 74 61 74 65 6d 65 6e 74 20 28 40 61 63 6c 29 20 ...foreach.my.$statement.(@acl).
7320 7b 00 20 20 20 20 6d 79 20 40 61 63 6c 20 3d 20 61 63 6c 28 24 64 62 68 29 3b 00 20 20 20 20 64 {.....my.@acl.=.acl($dbh);.....d
7340 6f 20 24 70 61 74 68 20 7c 7c 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 o.$path.||.return.(0,."Couldn't.
7360 6c 6f 61 64 20 41 43 4c 73 3a 20 22 20 2e 20 24 40 29 3b 00 20 20 20 20 6c 6f 63 61 6c 20 2a 61 load.ACLs:."...$@);.....local.*a
7380 63 6c 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 24 62 61 73 65 cl;......}.........$path.=.$base
73a0 5f 70 61 74 68 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 _path;.....}.else.{.............
73c0 75 6e 6c 65 73 73 20 2d 65 20 24 70 61 74 68 3b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 unless.-e.$path;.........return.
73e0 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 41 43 4c 73 20 66 6f 72 20 24 64 62 5f (0,."Couldn't.find.ACLs.for.$db_
7400 74 79 70 65 22 29 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 24 70 61 74 68 20 type").............unless.$path.
7420 26 26 20 2d 65 20 24 70 61 74 68 3b 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 46 69 6c &&.-e.$path;.........$path.=.Fil
7440 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 69 6c 65 28 20 24 62 61 73 65 5f 70 61 74 68 2c 20 22 61 e::Spec->catfile(.$base_path,."a
7460 63 6c 22 29 00 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 24 73 65 6c 66 2d 3e 47 65 74 cl")..........$path.=.$self->Get
7480 56 65 72 73 69 6f 6e 46 69 6c 65 28 24 64 62 68 2c 20 24 70 61 74 68 29 3b 00 20 20 20 20 20 20 VersionFile($dbh,.$path);.......
74a0 20 20 24 70 61 74 68 20 3d 20 46 69 6c 65 3a 3a 53 70 65 63 2d 3e 63 61 74 66 69 6c 65 28 20 24 ..$path.=.File::Spec->catfile(.$
74c0 62 61 73 65 5f 70 61 74 68 2c 20 22 61 63 6c 2e 24 64 62 5f 74 79 70 65 22 29 3b 00 20 20 20 20 base_path,."acl.$db_type");.....
74e0 69 66 20 28 20 2d 64 20 24 62 61 73 65 5f 70 61 74 68 20 29 20 7b 00 20 20 20 20 6d 79 20 24 70 if.(.-d.$base_path.).{.....my.$p
7500 61 74 68 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 27 24 62 61 73 65 5f 70 61 74 ath;......return.(0,."'$base_pat
7520 68 27 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 22 29 20 75 6e 6c 65 73 73 20 2d 65 20 24 62 61 h'.doesn't.exist").unless.-e.$ba
7540 73 65 5f 70 61 74 68 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f 20 44 42 49 se_path;......return.(0,."No.DBI
7560 20 68 61 6e 64 6c 65 20 70 72 6f 76 69 64 65 64 22 29 20 75 6e 6c 65 73 73 20 24 64 62 68 3b 00 .handle.provided").unless.$dbh;.
7580 20 20 20 20 24 64 62 68 20 3d 20 24 73 65 6c 66 2d 3e 64 62 68 20 69 66 20 21 24 64 62 68 20 26 ....$dbh.=.$self->dbh.if.!$dbh.&
75a0 26 20 72 65 66 20 24 73 65 6c 66 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 31 29 20 69 66 20 &.ref.$self;......return.(1).if.
75c0 24 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 3b 00 20 20 20 20 6d 79 20 24 64 62 $db_type.eq.'SQLite';.....my.$db
75e0 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 _type.=.RT->Config->Get('Databas
7600 65 54 79 70 65 27 29 3b 00 00 20 20 20 20 6d 79 20 24 62 61 73 65 5f 70 61 74 68 20 3d 20 73 68 eType');......my.$base_path.=.sh
7620 69 66 74 20 7c 7c 20 24 52 54 3a 3a 45 74 63 50 61 74 68 3b 00 20 20 20 20 6d 79 20 24 64 62 68 ift.||.$RT::EtcPath;.....my.$dbh
7640 20 20 20 20 20 20 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 20 20 20 .......=.shift;.....my.$self....
7660 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 49 6e 73 65 72 74 41 43 4c 20 7b 00 00 3d 63 75 74 ..=.shift;.sub.InsertACL.{..=cut
7680 00 00 3d 68 65 61 64 32 20 49 6e 73 65 72 74 41 43 4c 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e ..=head2.InsertACL..}.....return
76a0 20 28 31 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 72 65 74 75 72 .(1);.....}.............or.retur
76c0 6e 20 28 30 2c 20 24 44 42 49 3a 3a 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 24 64 62 n.(0,.$DBI::errstr);.........$db
76e0 68 2d 3e 64 6f 28 22 44 52 4f 50 20 44 41 54 41 42 41 53 45 20 22 2e 20 24 64 62 5f 6e 61 6d 65 h->do("DROP.DATABASE."..$db_name
7700 29 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 31 ).....}.else.{.........return.(1
7720 29 3b 00 20 20 20 20 20 20 20 20 75 6e 6c 69 6e 6b 20 24 70 61 74 68 20 6f 72 20 72 65 74 75 72 );.........unlink.$path.or.retur
7740 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 72 65 6d 6f 76 65 20 27 24 70 61 74 68 27 3a 20 n.(0,."Couldn't.remove.'$path':.
7760 24 21 22 29 3b 00 20 20 20 20 20 20 20 20 24 70 61 74 68 20 3d 20 22 24 52 54 3a 3a 56 61 72 50 $!");.........$path.=."$RT::VarP
7780 61 74 68 2f 24 70 61 74 68 22 20 75 6e 6c 65 73 73 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 ath/$path".unless.substr($path,.
77a0 30 2c 20 31 29 20 65 71 20 27 2f 27 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 70 61 74 68 20 3d 0,.1).eq.'/';.........my.$path.=
77c0 20 24 64 62 5f 6e 61 6d 65 3b 00 20 20 20 20 65 6c 73 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 .$db_name;.....elsif.(.$db_type.
77e0 65 71 20 27 53 51 4c 69 74 65 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 eq.'SQLite'.).{.....}.........re
7800 74 75 72 6e 20 28 31 2c 20 22 53 75 63 63 65 73 73 66 75 6c 6c 79 20 64 72 6f 70 70 65 64 20 75 turn.(1,."Successfully.dropped.u
7820 73 65 72 20 27 24 64 62 5f 75 73 65 72 27 20 77 69 74 68 20 68 69 73 20 73 63 68 65 6d 61 2e 22 ser.'$db_user'.with.his.schema."
7840 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 5c );.........}.................."\
7860 6e 45 72 72 6f 72 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 20 nError:."..$dbh->errstr;........
7880 20 20 20 20 20 72 65 74 75 72 6e 20 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 64 72 6f 70 20 75 73 .....return.0,."Couldn't.drop.us
78a0 65 72 20 24 64 62 5f 75 73 65 72 2e 22 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 er.$db_user.".........unless.(.$
78c0 73 74 61 74 75 73 20 29 20 7b 00 20 20 20 20 20 20 20 20 6d 79 20 24 73 74 61 74 75 73 20 3d 20 status.).{.........my.$status.=.
78e0 24 64 62 68 2d 3e 64 6f 28 20 22 44 52 4f 50 20 55 53 45 52 20 24 64 62 5f 75 73 65 72 20 43 41 $dbh->do(."DROP.USER.$db_user.CA
7900 53 43 41 44 45 22 20 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 64 62 5f 75 73 65 72 20 3d 20 SCADE".);.........my.$db_user.=.
7920 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 55 73 65 72 27 29 3b RT->Config->Get('DatabaseUser');
7940 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 20 29 .....if.(.$db_type.eq.'Oracle'.)
7960 20 7b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 6e 61 6d 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 .{......my.$db_name.=.RT->Config
7980 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 4e 61 6d 65 27 29 3b 00 20 20 20 20 6d 79 20 24 64 ->Get('DatabaseName');.....my.$d
79a0 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 b_type.=.RT->Config->Get('Databa
79c0 73 65 54 79 70 65 27 29 3b 00 00 20 20 20 20 6d 79 20 24 64 62 68 20 20 3d 20 73 68 69 66 74 20 seType');......my.$dbh..=.shift.
79e0 6f 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f 20 44 42 49 20 68 61 6e 64 6c 65 20 70 72 6f or.return.(0,."No.DBI.handle.pro
7a00 76 69 64 65 64 22 29 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 vided");.....my.$self.=.shift;.s
7a20 75 62 20 44 72 6f 70 44 61 74 61 62 61 73 65 20 7b 00 00 3d 63 75 74 00 00 46 65 74 63 68 65 73 ub.DropDatabase.{..=cut..Fetches
7a40 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 .the.type.and.name.of.the.databa
7a60 73 65 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 2e 00 00 74 6f 20 75 73 65 20 4c 3c 53 79 se.from.the.config...to.use.L<Sy
7a80 73 74 65 6d 44 53 4e 3e 20 77 68 65 6e 20 61 63 71 75 69 72 69 6e 67 20 74 68 65 20 44 42 49 20 stemDSN>.when.acquiring.the.DBI.
7aa0 68 61 6e 64 6c 65 2e 00 61 20 73 70 65 63 69 61 6c 20 68 61 6e 64 6c 65 20 74 6f 20 61 6c 6c 6f handle..a.special.handle.to.allo
7ac0 77 20 79 6f 75 20 74 6f 20 64 72 6f 70 20 61 20 64 61 74 61 62 61 73 65 2c 20 73 6f 20 79 6f 75 w.you.to.drop.a.database,.so.you
7ae0 20 6d 61 79 20 68 61 76 65 00 54 61 6b 65 73 20 44 42 49 20 68 61 6e 64 6c 65 20 61 73 20 66 69 .may.have.Takes.DBI.handle.as.fi
7b00 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 20 4d 61 6e 79 20 64 61 74 61 62 61 73 65 20 73 79 73 74 rst.argument..Many.database.syst
7b20 65 6d 73 20 72 65 71 75 69 72 65 00 00 44 72 6f 70 73 20 52 54 27 73 20 64 61 74 61 62 61 73 65 ems.require..Drops.RT's.database
7b40 2e 20 54 68 69 73 20 6d 65 74 68 6f 64 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 63 6c 61 ..This.method.can.be.used.as.cla
7b60 73 73 20 6d 65 74 68 6f 64 2e 00 00 3d 68 65 61 64 33 20 44 72 6f 70 44 61 74 61 62 61 73 65 20 ss.method...=head3.DropDatabase.
7b80 24 44 42 48 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 28 24 73 74 61 74 75 73 2c 20 24 44 42 $DBH..}.....return.($status,.$DB
7ba0 49 3a 3a 65 72 72 73 74 72 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 73 74 61 74 75 I::errstr);.....}.........$statu
7bc0 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 22 43 52 45 41 54 45 20 44 41 54 41 42 41 53 45 20 24 64 s.=.$dbh->do("CREATE.DATABASE.$d
7be0 62 5f 6e 61 6d 65 22 29 3b 00 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 b_name");.....else.{.....}......
7c00 20 20 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 22 43 52 45 41 54 45 20 44 41 ...$status.=.$dbh->do("CREATE.DA
7c20 54 41 42 41 53 45 20 24 64 62 5f 6e 61 6d 65 20 44 45 46 41 55 4c 54 20 43 48 41 52 41 43 54 45 TABASE.$db_name.DEFAULT.CHARACTE
7c40 52 20 53 45 54 20 75 74 66 38 22 29 3b 00 20 20 20 20 65 6c 73 69 66 20 28 20 24 64 62 5f 74 79 R.SET.utf8");.....elsif.(.$db_ty
7c60 70 65 20 65 71 20 27 6d 79 73 71 6c 27 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 pe.eq.'mysql'.).{.....}.........
7c80 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 22 43 52 45 41 54 45 20 44 41 54 41 42 $status.=.$dbh->do("CREATE.DATAB
7ca0 41 53 45 20 24 64 62 5f 6e 61 6d 65 20 57 49 54 48 20 45 4e 43 4f 44 49 4e 47 3d 27 55 4e 49 43 ASE.$db_name.WITH.ENCODING='UNIC
7cc0 4f 44 45 27 20 54 45 4d 50 4c 41 54 45 20 74 65 6d 70 6c 61 74 65 30 22 29 3b 00 20 20 20 20 65 ODE'.TEMPLATE.template0");.....e
7ce0 6c 73 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 50 67 27 20 29 20 7b 00 20 20 20 20 lsif.(.$db_type.eq.'Pg'.).{.....
7d00 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 31 2c 20 22 43 72 65 61 74 65 64 20 75 73 }.........return.(1,."Created.us
7d20 65 72 20 24 64 62 5f 75 73 65 72 2e 20 41 6c 6c 20 52 54 27 73 20 6f 62 6a 65 63 74 73 20 73 68 er.$db_user..All.RT's.objects.sh
7d40 6f 75 6c 64 20 62 65 20 69 6e 20 68 69 73 20 73 63 68 65 6d 61 2e 22 29 3b 00 20 20 20 20 20 20 ould.be.in.his.schema.");.......
7d60 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 5c 6e 45 72 72 6f 72 3a 20 22 ..}.................."\nError:."
7d80 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 ..$dbh->errstr;.............retu
7da0 72 6e 20 24 73 74 61 74 75 73 2c 20 22 43 6f 75 6c 64 6e 27 74 20 67 72 61 6e 74 20 63 6f 6e 6e rn.$status,."Couldn't.grant.conn
7dc0 65 63 74 20 61 6e 64 20 72 65 73 6f 75 72 63 65 20 74 6f 20 24 64 62 5f 75 73 65 72 2e 22 00 20 ect.and.resource.to.$db_user."..
7de0 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 61 74 75 73 20 29 20 7b 00 20 20 20 20 .......unless.(.$status.).{.....
7e00 20 20 20 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 20 22 47 52 41 4e 54 20 63 ....$status.=.$dbh->do(."GRANT.c
7e20 6f 6e 6e 65 63 74 2c 20 72 65 73 6f 75 72 63 65 20 54 4f 20 24 64 62 5f 75 73 65 72 22 20 29 3b onnect,.resource.TO.$db_user".);
7e40 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 5c 6e 45 .........}.................."\nE
7e60 72 72 6f 72 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 20 20 20 rror:."..$dbh->errstr;..........
7e80 20 20 20 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 2c 20 22 43 6f 75 6c 64 6e 27 74 20 63 72 65 ...return.$status,."Couldn't.cre
7ea0 61 74 65 20 75 73 65 72 20 24 64 62 5f 75 73 65 72 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 ate.user.$db_user.identified.by.
7ec0 24 64 62 5f 70 61 73 73 2e 22 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 61 $db_pass.".........unless.(.$sta
7ee0 74 75 73 20 29 20 7b 00 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 2e tus.).{.........);..............
7f00 22 20 71 75 6f 74 61 20 75 6e 6c 69 6d 69 74 65 64 20 6f 6e 20 55 53 45 52 53 22 00 20 20 20 20 ".quota.unlimited.on.USERS".....
7f20 20 20 20 20 20 20 20 20 2e 22 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 73 70 61 63 65 20 .........".temporary.tablespace.
7f40 54 45 4d 50 22 00 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 64 65 66 61 75 6c 74 20 74 61 62 TEMP"..............".default.tab
7f60 6c 65 73 70 61 63 65 20 55 53 45 52 53 22 00 20 20 20 20 20 20 20 20 20 20 20 20 22 43 52 45 41 lespace.USERS"............."CREA
7f80 54 45 20 55 53 45 52 20 24 64 62 5f 75 73 65 72 20 49 44 45 4e 54 49 46 49 45 44 20 42 59 20 24 TE.USER.$db_user.IDENTIFIED.BY.$
7fa0 64 62 5f 70 61 73 73 22 00 20 20 20 20 20 20 20 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d db_pass".........$status.=.$dbh-
7fc0 3e 64 6f 28 00 20 20 20 20 20 20 20 20 6d 79 20 24 64 62 5f 70 61 73 73 20 3d 20 52 54 2d 3e 43 >do(.........my.$db_pass.=.RT->C
7fe0 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 50 61 73 73 77 6f 72 64 27 29 3b 00 onfig->Get('DatabasePassword');.
8000 61 64 00 00 17 00 00 00 37 02 00 00 00 10 00 00 81 00 00 00 00 00 00 00 f0 0f 00 00 ee 0f 00 00 ad......7.......................
8020 ed 0f 00 00 d9 0f 00 00 d8 0f 00 00 d3 0f 00 00 d2 0f 00 00 bf 0f 00 00 a9 0f 00 00 93 0f 00 00 ................................
8040 66 0f 00 00 65 0f 00 00 38 0f 00 00 02 0f 00 00 01 0f 00 00 ce 0e 00 00 cd 0e 00 00 bf 0e 00 00 f...e...8.......................
8060 a4 0e 00 00 70 0e 00 00 63 0e 00 00 47 0e 00 00 41 0e 00 00 40 0e 00 00 0e 0e 00 00 f7 0d 00 00 ....p...c...G...A...@...........
8080 ba 0d 00 00 b4 0d 00 00 8e 0d 00 00 48 0d 00 00 42 0d 00 00 41 0d 00 00 2f 0d 00 00 2e 0d 00 00 ............H...B...A.../.......
80a0 fd 0c 00 00 fc 0c 00 00 e5 0c 00 00 76 0c 00 00 5a 0c 00 00 59 0c 00 00 41 0c 00 00 e8 0b 00 00 ............v...Z...Y...A.......
80c0 cc 0b 00 00 b0 0b 00 00 93 0b 00 00 6f 0b 00 00 47 0b 00 00 21 0b 00 00 04 0b 00 00 fa 0a 00 00 ............o...G...!...........
80e0 f4 0a 00 00 c6 0a 00 00 c5 0a 00 00 a3 0a 00 00 6c 0a 00 00 1e 0a 00 00 01 0a 00 00 ba 09 00 00 ................l...............
8100 8e 09 00 00 84 09 00 00 7e 09 00 00 7d 09 00 00 5a 09 00 00 44 09 00 00 f2 08 00 00 cc 08 00 00 ........~...}...Z...D...........
8120 a4 08 00 00 83 08 00 00 79 08 00 00 78 08 00 00 4c 08 00 00 ed 07 00 00 bd 07 00 00 65 07 00 00 ........y...x...L...........e...
8140 5b 07 00 00 55 07 00 00 06 07 00 00 f6 06 00 00 f4 06 00 00 f3 06 00 00 dd 06 00 00 dc 06 00 00 [...U...........................
8160 8d 06 00 00 3f 06 00 00 3e 06 00 00 39 06 00 00 38 06 00 00 23 06 00 00 0d 06 00 00 f8 05 00 00 ....?...>...9...8...#...........
8180 dd 05 00 00 dc 05 00 00 bd 05 00 00 9c 05 00 00 8d 05 00 00 66 05 00 00 49 05 00 00 26 05 00 00 ....................f...I...&...
81a0 1b 05 00 00 1a 05 00 00 02 05 00 00 cd 04 00 00 b0 04 00 00 af 04 00 00 64 04 00 00 53 04 00 00 ........................d...S...
81c0 1a 04 00 00 e5 03 00 00 ca 03 00 00 b8 03 00 00 ae 03 00 00 a8 03 00 00 a7 03 00 00 6c 03 00 00 ............................l...
81e0 6a 03 00 00 69 03 00 00 5a 03 00 00 49 03 00 00 38 03 00 00 27 03 00 00 16 03 00 00 05 03 00 00 j...i...Z...I...8...'...........
8200 f4 02 00 00 e1 02 00 00 de 02 00 00 c8 02 00 00 b0 02 00 00 56 02 00 00 37 02 00 00 36 02 00 00 ....................V...7...6...
8220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 73 ...............................s
8240 70 6c 69 74 20 2f 28 5b 5e 30 2d 39 5d 2b 29 2f 2c 20 24 61 3b 00 20 20 20 20 6d 79 20 40 61 20 plit./([^0-9]+)/,.$a;.....my.@a.
8260 3d 20 67 72 65 70 20 64 65 66 69 6e 65 64 2c 20 6d 61 70 20 7b 20 2f 5e 5b 30 2d 39 5d 2b 24 2f =.grep.defined,.map.{./^[0-9]+$/
8280 3f 20 24 5f 20 3a 20 2f 5e 5b 61 2d 7a 41 2d 5a 5d 2b 24 2f 3f 20 24 77 6f 72 64 7b 24 5f 7d 7c ?.$_.:./^[a-zA-Z]+$/?.$word{$_}|
82a0 7c 20 2d 31 30 20 3a 20 75 6e 64 65 66 20 7d 00 20 20 20 20 6d 79 20 28 24 61 2c 20 24 62 29 20 |.-10.:.undef.}.....my.($a,.$b).
82c0 3d 20 28 40 5f 29 3b 00 73 75 62 20 63 6d 70 5f 76 65 72 73 69 6f 6e 28 24 24 29 20 7b 00 29 3b =.(@_);.sub.cmp_version($$).{.);
82e0 00 20 20 20 20 68 65 61 64 20 20 3d 3e 20 39 39 39 39 2c 00 20 20 20 20 72 63 20 20 20 20 3d 3e .....head..=>.9999,.....rc....=>
8300 20 2d 31 2c 00 20 20 20 20 70 72 65 20 20 20 3d 3e 20 2d 32 2c 00 20 20 20 20 62 65 74 61 20 20 .-1,.....pre...=>.-2,.....beta..
8320 3d 3e 20 2d 33 2c 00 20 20 20 20 62 20 20 20 20 20 3d 3e 20 2d 33 2c 00 20 20 20 20 61 6c 70 68 =>.-3,.....b.....=>.-3,.....alph
8340 61 20 3d 3e 20 2d 34 2c 00 20 20 20 20 61 20 20 20 20 20 3d 3e 20 2d 34 2c 00 7b 20 6d 79 20 25 a.=>.-4,.....a.....=>.-4,.{.my.%
8360 77 6f 72 64 20 3d 20 28 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 64 65 66 69 6e 65 64 20 24 word.=.(..}.....return.defined.$
8380 76 65 72 73 69 6f 6e 3f 20 24 76 65 72 73 69 6f 6e 7b 20 24 76 65 72 73 69 6f 6e 20 7d 20 3a 20 version?.$version{.$version.}.:.
83a0 75 6e 64 65 66 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 undef;......}.........}.........
83c0 20 20 20 20 6c 61 73 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 76 65 72 73 69 6f 6e 20 3d ....last;.............$version.=
83e0 20 24 5f 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 63 6d 70 5f 76 65 72 73 69 6f 6e 28 20 24 .$_;.........if.(.cmp_version(.$
8400 64 62 5f 76 65 72 73 69 6f 6e 2c 20 24 5f 20 29 20 3e 3d 20 30 20 29 20 7b 00 20 20 20 20 66 6f db_version,.$_.).>=.0.).{.....fo
8420 72 65 61 63 68 20 28 20 72 65 76 65 72 73 65 20 73 6f 72 74 20 63 6d 70 5f 76 65 72 73 69 6f 6e reach.(.reverse.sort.cmp_version
8440 20 6b 65 79 73 20 25 76 65 72 73 69 6f 6e 20 29 20 7b 00 20 20 20 20 6d 79 20 24 76 65 72 73 69 .keys.%version.).{.....my.$versi
8460 6f 6e 3b 00 20 20 20 20 6d 79 20 25 76 65 72 73 69 6f 6e 20 3d 20 6d 61 70 20 7b 20 24 5f 20 3d on;.....my.%version.=.map.{.$_.=
8480 7e 20 2f 5c 2e 5c 77 2b 2d 28 5b 2d 5c 77 5c 2e 5d 2b 29 24 2f 3b 20 28 24 31 7c 7c 30 29 20 3d ~./\.\w+-([-\w\.]+)$/;.($1||0).=
84a0 3e 20 24 5f 20 7d 20 40 66 69 6c 65 73 3b 00 00 20 20 20 20 72 65 74 75 72 6e 20 27 27 20 75 6e >.$_.}.@files;......return.''.un
84c0 6c 65 73 73 20 40 66 69 6c 65 73 3b 00 20 20 20 20 6d 79 20 40 66 69 6c 65 73 20 3d 20 46 69 6c less.@files;.....my.@files.=.Fil
84e0 65 3a 3a 47 6c 6f 62 3a 3a 62 73 64 5f 67 6c 6f 62 28 22 24 62 61 73 65 5f 6e 61 6d 65 2a 22 29 e::Glob::bsd_glob("$base_name*")
8500 3b 00 20 20 20 20 72 65 71 75 69 72 65 20 46 69 6c 65 3a 3a 47 6c 6f 62 3b 00 00 20 20 20 20 20 ;.....require.File::Glob;.......
8520 20 20 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 74 6d 70 2d 3e 44 61 74 61 62 61 73 65 ...};.............$tmp->Database
8540 56 65 72 73 69 6f 6e 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 74 6d 70 2d 3e 64 62 68 28 24 Version;.............$tmp->dbh($
8560 64 62 68 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 74 6d 70 20 3d 20 52 54 3a 3a dbh);.............my.$tmp.=.RT::
8580 48 61 6e 64 6c 65 2d 3e 6e 65 77 3b 00 20 20 20 20 20 20 20 20 3a 20 64 6f 20 7b 00 20 20 20 20 Handle->new;.........:.do.{.....
85a0 20 20 20 20 3f 20 24 73 65 6c 66 2d 3e 44 61 74 61 62 61 73 65 56 65 72 73 69 6f 6e 00 20 20 20 ....?.$self->DatabaseVersion....
85c0 20 6d 79 20 24 64 62 5f 76 65 72 73 69 6f 6e 20 3d 20 72 65 66 20 24 73 65 6c 66 00 00 20 20 20 .my.$db_version.=.ref.$self.....
85e0 20 6d 79 20 24 62 61 73 65 5f 6e 61 6d 65 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 .my.$base_name.=.shift;.....my.$
8600 64 62 68 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 dbh.=.shift;.....my.$self.=.shif
8620 74 3b 00 73 75 62 20 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 20 7b 00 00 3d 63 75 74 00 00 66 t;.sub.GetVersionFile.{..=cut..f
8640 69 6c 65 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 66 69 6c 65 20 6e 61 6d 65 20 77 69 74 68 20 iles.and.returns.file.name.with.
8660 63 6c 6f 73 65 73 74 20 76 65 72 73 69 6f 6e 20 74 6f 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6f closest.version.to.the.version.o
8680 66 20 74 68 65 20 52 54 20 44 42 2e 00 54 61 6b 65 73 20 62 61 73 65 20 6e 61 6d 65 20 6f 66 20 f.the.RT.DB..Takes.base.name.of.
86a0 74 68 65 20 66 69 6c 65 20 61 73 20 61 72 67 75 6d 65 6e 74 2c 20 73 63 61 6e 73 20 66 6f 72 20 the.file.as.argument,.scans.for.
86c0 3c 62 61 73 65 20 6e 61 6d 65 3e 2d 3c 76 65 72 73 69 6f 6e 3e 20 6e 61 6d 65 64 00 00 3d 68 65 <base.name>-<version>.named..=he
86e0 61 64 31 20 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e ad1.GetVersionFile..}.....return
8700 20 28 31 29 3b 00 20 20 20 20 24 64 62 68 2d 3e 63 6f 6d 6d 69 74 20 6f 72 20 72 65 74 75 72 6e .(1);.....$dbh->commit.or.return
8720 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 63 6f 6d 6d 69 74 20 74 72 61 6e 73 61 63 74 69 6f .(0,."Couldn't.commit.transactio
8740 6e 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 n:."..$dbh->errstr);.....}......
8760 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 ...}.............return.(0,."Cou
8780 6c 64 6e 27 74 20 72 75 6e 20 53 51 4c 20 71 75 65 72 79 3a 5c 6e 24 73 74 61 74 65 6d 65 6e 74 ldn't.run.SQL.query:\n$statement
87a0 5c 6e 5c 6e 45 52 52 4f 52 3a 20 22 2e 20 24 73 74 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 \n\nERROR:."..$sth->errstr);....
87c0 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 68 2d 3e 65 78 65 63 75 74 65 20 6f 72 20 24 .....unless.(.$sth->execute.or.$
87e0 69 73 5f 6c 6f 63 61 6c 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 20 72 65 74 75 is_local.).{.............or.retu
8800 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 70 72 65 70 61 72 65 20 53 51 4c 20 71 75 65 rn.(0,."Couldn't.prepare.SQL.que
8820 72 79 3a 5c 6e 24 73 74 61 74 65 6d 65 6e 74 5c 6e 5c 6e 45 52 52 4f 52 3a 20 22 2e 20 24 64 62 ry:\n$statement\n\nERROR:."..$db
8840 68 2d 3e 65 72 72 73 74 72 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 73 74 68 20 3d 20 24 64 h->errstr);.........my.$sth.=.$d
8860 62 68 2d 3e 70 72 65 70 61 72 65 28 24 73 74 61 74 65 6d 65 6e 74 29 00 00 20 20 20 20 20 20 20 bh->prepare($statement).........
8880 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 24 69 73 5f 6c 6f 63 61 6c 20 3d 20 31 3b 20 6e 65 .}.............$is_local.=.1;.ne
88a0 78 74 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 7e 20 2f xt;.........if.(.$statement.=~./
88c0 5e 5c 73 2a 3b 24 2f 20 29 20 7b 00 20 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 73 74 61 74 ^\s*;$/.).{.....foreach.my.$stat
88e0 65 6d 65 6e 74 20 28 40 73 63 68 65 6d 61 29 20 7b 00 20 20 20 20 24 64 62 68 2d 3e 62 65 67 69 ement.(@schema).{.....$dbh->begi
8900 6e 5f 77 6f 72 6b 20 6f 72 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 62 n_work.or.return.(0,."Couldn't.b
8920 65 67 69 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 egin.transaction:."..$dbh->errst
8940 72 29 3b 00 20 20 20 20 6d 79 20 24 69 73 5f 6c 6f 63 61 6c 20 3d 20 30 3b 00 20 20 20 20 6c 6f r);.....my.$is_local.=.0;.....lo
8960 63 61 6c 20 24 53 49 47 7b 5f 5f 57 41 52 4e 5f 5f 7d 20 3d 20 73 75 62 20 7b 7d 3b 00 00 20 20 cal.$SIG{__WARN__}.=.sub.{};....
8980 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 ..}.........}.................."
89a0 5c 6e 45 72 72 6f 72 3a 20 22 2e 20 24 64 62 68 2d 3e 65 72 72 73 74 72 3b 00 20 20 20 20 20 20 \nError:."..$dbh->errstr;.......
89c0 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 2c 20 22 43 6f 75 6c 64 6e 27 74 20 ......return.$status,."Couldn't.
89e0 73 65 74 20 63 75 72 72 65 6e 74 20 73 63 68 65 6d 61 20 74 6f 20 24 64 62 5f 75 73 65 72 2e 22 set.current.schema.to.$db_user."
8a00 00 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 73 74 61 74 75 73 20 29 20 7b 00 20 20 .........unless.(.$status.).{...
8a20 20 20 20 20 20 20 6d 79 20 24 73 74 61 74 75 73 20 3d 20 24 64 62 68 2d 3e 64 6f 28 20 22 41 4c ......my.$status.=.$dbh->do(."AL
8a40 54 45 52 20 53 45 53 53 49 4f 4e 20 53 45 54 20 43 55 52 52 45 4e 54 5f 53 43 48 45 4d 41 3d 24 TER.SESSION.SET.CURRENT_SCHEMA=$
8a60 64 62 5f 75 73 65 72 22 20 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 64 62 5f 75 73 65 72 20 db_user".);.........my.$db_user.
8a80 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 55 73 65 72 27 =.RT->Config->Get('DatabaseUser'
8aa0 29 3b 00 20 20 20 20 69 66 20 28 20 24 64 62 5f 74 79 70 65 20 65 71 20 27 4f 72 61 63 6c 65 27 );.....if.(.$db_type.eq.'Oracle'
8ac0 20 29 20 7b 00 00 20 20 20 20 63 6c 6f 73 65 20 24 66 68 5f 73 63 68 65 6d 61 3b 20 63 6c 6f 73 .).{......close.$fh_schema;.clos
8ae0 65 20 24 66 68 5f 73 63 68 65 6d 61 5f 6c 6f 63 61 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 e.$fh_schema_local;.....}.......
8b00 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 20 22 22 3b ..}.............$statement.=."";
8b20 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 73 63 68 65 6d 61 2c 20 24 73 74 61 74 .............push.@schema,.$stat
8b40 65 6d 65 6e 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 7e ement;.............$statement.=~
8b60 20 73 2f 3b 28 5c 73 2a 29 24 2f 2f 67 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 6c 69 6e .s/;(\s*)$//g;.........if.(.$lin
8b80 65 20 3d 7e 20 2f 3b 28 5c 73 2a 29 24 2f 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 73 74 61 74 e.=~./;(\s*)$/.).{.........$stat
8ba0 65 6d 65 6e 74 20 2e 3d 20 24 6c 69 6e 65 3b 00 20 20 20 20 20 20 20 20 24 6c 69 6e 65 20 3d 7e ement..=.$line;.........$line.=~
8bc0 20 73 2f 2d 2d 2e 2a 2f 2f 67 3b 00 20 20 20 20 20 20 20 20 24 6c 69 6e 65 20 3d 7e 20 73 2f 5c .s/--.*//g;.........$line.=~.s/\
8be0 23 2e 2a 2f 2f 67 3b 00 20 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 6c 69 6e 65 20 28 20 3c #.*//g;.....foreach.my.$line.(.<
8c00 24 66 68 5f 73 63 68 65 6d 61 3e 2c 20 28 24 5f 20 3d 20 27 3b 3b 27 29 2c 20 24 68 61 73 5f 6c $fh_schema>,.($_.=.';;'),.$has_l
8c20 6f 63 61 6c 3f 20 3c 24 66 68 5f 73 63 68 65 6d 61 5f 6c 6f 63 61 6c 3e 3a 20 28 29 20 29 20 7b ocal?.<$fh_schema_local>:.().).{
8c40 00 20 20 20 20 6d 79 20 24 73 74 61 74 65 6d 65 6e 74 20 3d 20 22 22 3b 00 00 20 20 20 20 20 20 .....my.$statement.=."";........
8c60 20 20 61 6e 64 20 24 68 61 73 5f 6c 6f 63 61 6c 20 3d 20 31 3b 00 20 20 20 20 6f 70 65 6e 28 20 ..and.$has_local.=.1;.....open(.
8c80 6d 79 20 24 66 68 5f 73 63 68 65 6d 61 5f 6c 6f 63 61 6c 2c 20 22 3c 22 20 2e 20 24 73 65 6c 66 my.$fh_schema_local,."<"...$self
8ca0 2d 3e 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 28 20 24 64 62 68 2c 20 24 52 54 3a 3a 4c 6f 63 ->GetVersionFile(.$dbh,.$RT::Loc
8cc0 61 6c 45 74 63 50 61 74 68 20 2e 20 22 2f 73 63 68 65 6d 61 2e 22 20 2e 20 24 64 62 5f 74 79 70 alEtcPath..."/schema."...$db_typ
8ce0 65 20 29 29 00 20 20 20 20 6d 79 20 24 68 61 73 5f 6c 6f 63 61 6c 20 3d 20 30 3b 00 00 20 20 20 e.)).....my.$has_local.=.0;.....
8d00 20 6f 70 65 6e 28 20 6d 79 20 24 66 68 5f 73 63 68 65 6d 61 2c 20 27 3c 27 2c 20 24 66 69 6c 65 .open(.my.$fh_schema,.'<',.$file
8d20 20 29 20 6f 72 20 64 69 65 20 24 21 3b 00 00 20 20 20 20 6d 79 20 28 40 73 63 68 65 6d 61 29 3b .).or.die.$!;......my.(@schema);
8d40 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 46 69 6c 65 ......}.........return.(0,."File
8d60 20 27 24 66 69 6c 65 27 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 6f 72 20 63 6f 75 6c 64 6e .'$file'.doesn't.exist.or.couldn
8d80 27 74 20 62 65 20 72 65 61 64 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 2d 66 20 24 66 't.be.read");.....unless.(.-f.$f
8da0 69 6c 65 20 26 26 20 2d 72 20 24 66 69 6c 65 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 ile.&&.-r.$file.).{.....}.......
8dc0 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 73 63 68 65 ..return.(0,."Couldn't.find.sche
8de0 6d 61 20 66 69 6c 65 28 73 29 20 27 24 66 69 6c 65 2a 27 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 ma.file(s).'$file*'");.....unles
8e00 73 20 28 20 24 66 69 6c 65 20 29 20 7b 00 20 20 20 20 24 66 69 6c 65 20 3d 20 24 73 65 6c 66 2d s.(.$file.).{.....$file.=.$self-
8e20 3e 47 65 74 56 65 72 73 69 6f 6e 46 69 6c 65 28 20 24 64 62 68 2c 20 24 66 69 6c 65 20 29 3b 00 >GetVersionFile(.$dbh,.$file.);.
8e40 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 24 62 61 73 65 5f 70 61 74 .....}.........$file.=.$base_pat
8e60 68 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 h;.....}.else.{.........$file.=.
8e80 24 62 61 73 65 5f 70 61 74 68 20 2e 20 22 2f 73 63 68 65 6d 61 2e 22 20 2e 20 24 64 62 5f 74 79 $base_path..."/schema."...$db_ty
8ea0 70 65 3b 00 20 20 20 20 69 66 20 28 20 2d 64 20 24 62 61 73 65 5f 70 61 74 68 20 29 20 7b 00 20 pe;.....if.(.-d.$base_path.).{..
8ec0 20 20 20 6d 79 20 24 66 69 6c 65 3b 00 00 20 20 20 20 6d 79 20 24 64 62 5f 74 79 70 65 20 3d 20 ...my.$file;......my.$db_type.=.
8ee0 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 62 61 73 65 54 79 70 65 27 29 3b RT->Config->Get('DatabaseType');
8f00 00 00 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 4e 6f 20 44 42 49 20 68 61 6e 64 6c 65 20 ......return.(0,."No.DBI.handle.
8f20 70 72 6f 76 69 64 65 64 22 29 20 75 6e 6c 65 73 73 20 24 64 62 68 3b 00 20 20 20 20 24 64 62 68 provided").unless.$dbh;.....$dbh
8f40 20 3d 20 24 73 65 6c 66 2d 3e 64 62 68 20 69 66 20 21 24 64 62 68 20 26 26 20 72 65 66 20 24 73 .=.$self->dbh.if.!$dbh.&&.ref.$s
8f60 65 6c 66 3b 00 00 20 20 20 20 6d 79 20 24 62 61 73 65 5f 70 61 74 68 20 3d 20 28 73 68 69 66 74 elf;......my.$base_path.=.(shift
8f80 20 7c 7c 20 24 52 54 3a 3a 45 74 63 50 61 74 68 29 3b 00 20 20 20 20 6d 79 20 24 64 62 68 20 20 .||.$RT::EtcPath);.....my.$dbh..
8fa0 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 =.shift;.....my.$self.=.shift;.s
8fc0 75 62 20 49 6e 73 65 72 74 53 63 68 65 6d 61 20 7b 00 00 3d 63 75 74 00 00 3d 68 65 61 64 32 20 ub.InsertSchema.{..=cut..=head2.
8fe0 49 6e 73 65 72 74 53 63 68 65 6d 61 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 28 31 29 3b 00 InsertSchema..}.....return.(1);.
9000 61 64 00 00 37 00 00 00 03 02 00 00 00 10 00 00 6c 00 00 00 00 00 00 00 a6 0f 00 00 87 0f 00 00 ad..7...........l...............
9020 7b 0f 00 00 5a 0f 00 00 38 0f 00 00 11 0f 00 00 da 0e 00 00 d4 0e 00 00 c6 0e 00 00 c4 0e 00 00 {...Z...8.......................
9040 c3 0e 00 00 af 0e 00 00 98 0e 00 00 96 0e 00 00 95 0e 00 00 93 0e 00 00 92 0e 00 00 91 0e 00 00 ................................
9060 78 0e 00 00 77 0e 00 00 34 0e 00 00 f3 0d 00 00 b5 0d 00 00 8f 0d 00 00 8e 0d 00 00 58 0d 00 00 x...w...4...................X...
9080 57 0d 00 00 14 0d 00 00 13 0d 00 00 0e 0d 00 00 0d 0d 00 00 f5 0c 00 00 dc 0c 00 00 db 0c 00 00 W...............................
90a0 cc 0c 00 00 cb 0c 00 00 9a 0c 00 00 94 0c 00 00 73 0c 00 00 72 0c 00 00 31 0c 00 00 0a 0c 00 00 ................s...r...1.......
90c0 ea 0b 00 00 b1 0b 00 00 a7 0b 00 00 98 0b 00 00 58 0b 00 00 1f 0b 00 00 f6 0a 00 00 c2 0a 00 00 ................X...............
90e0 80 0a 00 00 32 0a 00 00 11 0a 00 00 eb 09 00 00 dc 09 00 00 af 09 00 00 a5 09 00 00 6a 09 00 00 ....2.......................j...
9100 64 09 00 00 63 09 00 00 32 09 00 00 15 09 00 00 f1 08 00 00 c0 08 00 00 ba 08 00 00 b9 08 00 00 d...c...2.......................
9120 8e 08 00 00 88 08 00 00 51 08 00 00 32 08 00 00 ee 07 00 00 c8 07 00 00 9e 07 00 00 73 07 00 00 ........Q...2...............s...
9140 53 07 00 00 48 07 00 00 29 07 00 00 e5 06 00 00 d4 06 00 00 9e 06 00 00 66 06 00 00 1e 06 00 00 S...H...)...............f.......
9160 f4 05 00 00 c6 05 00 00 97 05 00 00 73 05 00 00 64 05 00 00 37 05 00 00 2d 05 00 00 f2 04 00 00 ............s...d...7...-.......
9180 ec 04 00 00 eb 04 00 00 d7 04 00 00 82 04 00 00 2b 04 00 00 d2 03 00 00 94 03 00 00 5e 03 00 00 ................+...........^...
91a0 2c 03 00 00 10 03 00 00 cf 02 00 00 bd 02 00 00 b3 02 00 00 b2 02 00 00 7f 02 00 00 52 02 00 00 ,...........................R...
91c0 30 02 00 00 03 02 00 00 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0...............................
91e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9200 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 6d 61 69 6e 20 20 20 20 20 20 3d 3e 20 27 53 ...............Domain......=>.'S
9220 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 54 79 70 65 ystemInternal',.............Type
9240 20 20 20 20 20 20 20 20 3d 3e 20 24 6e 61 6d 65 2c 00 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 ........=>.$name,.........my.(.$
9260 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 67 72 6f 75 70 2d 3e 5f 43 72 65 61 74 65 28 00 20 val,.$msg.).=.$group->_Create(..
9280 20 20 20 20 20 20 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 20 .......$group.=.RT::Group->new(.
92a0 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 RT->SystemUser.);..........}....
92c0 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 .........next;.............push.
92e0 40 77 61 72 6e 73 2c 20 22 53 79 73 74 65 6d 20 67 72 6f 75 70 20 27 24 6e 61 6d 65 27 20 61 6c @warns,."System.group.'$name'.al
9300 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 67 72 ready.exists.";.........if.(.$gr
9320 6f 75 70 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 67 72 6f 75 70 2d 3e 4c 6f 61 64 oup->id.).{.........$group->Load
9340 53 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 47 72 6f 75 70 28 20 24 6e 61 6d 65 20 29 3b 00 20 20 SystemInternalGroup(.$name.);...
9360 20 20 20 20 20 20 6d 79 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 ......my.$group.=.RT::Group->new
9380 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 66 6f 72 65 61 63 68 20 (.RT->SystemUser.);.....foreach.
93a0 6d 79 20 24 6e 61 6d 65 20 28 71 77 28 45 76 65 72 79 6f 6e 65 20 50 72 69 76 69 6c 65 67 65 64 my.$name.(qw(Everyone.Privileged
93c0 20 55 6e 70 72 69 76 69 6c 65 67 65 64 29 29 20 7b 00 20 20 20 20 23 20 24 73 65 6c 66 2d 3e 6c .Unprivileged)).{.....#.$self->l
93e0 6f 63 28 27 55 6e 70 72 69 76 69 6c 65 67 65 64 27 29 3b 20 23 20 46 6f 72 20 74 68 65 20 73 74 oc('Unprivileged');.#.For.the.st
9400 72 69 6e 67 20 65 78 74 72 61 63 74 6f 72 20 74 6f 20 67 65 74 20 61 20 73 74 72 69 6e 67 20 74 ring.extractor.to.get.a.string.t
9420 6f 20 6c 6f 63 61 6c 69 7a 65 00 20 20 20 20 23 20 24 73 65 6c 66 2d 3e 6c 6f 63 28 27 50 72 69 o.localize.....#.$self->loc('Pri
9440 76 69 6c 65 67 65 64 27 29 3b 20 23 20 46 6f 72 20 74 68 65 20 73 74 72 69 6e 67 20 65 78 74 72 vileged');.#.For.the.string.extr
9460 61 63 74 6f 72 20 74 6f 20 67 65 74 20 61 20 73 74 72 69 6e 67 20 74 6f 20 6c 6f 63 61 6c 69 7a actor.to.get.a.string.to.localiz
9480 65 00 20 20 20 20 23 20 24 73 65 6c 66 2d 3e 6c 6f 63 28 27 45 76 65 72 79 6f 6e 65 27 29 3b 20 e.....#.$self->loc('Everyone');.
94a0 23 20 46 6f 72 20 74 68 65 20 73 74 72 69 6e 67 20 65 78 74 72 61 63 74 6f 72 20 74 6f 20 67 65 #.For.the.string.extractor.to.ge
94c0 74 20 61 20 73 74 72 69 6e 67 20 74 6f 20 6c 6f 63 61 6c 69 7a 65 00 20 20 20 20 23 20 73 79 73 t.a.string.to.localize.....#.sys
94e0 74 65 6d 20 67 72 6f 75 70 73 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 44 42 49 78 3a 3a tem.groups......}.........DBIx::
9500 53 65 61 72 63 68 42 75 69 6c 64 65 72 3a 3a 52 65 63 6f 72 64 3a 3a 43 61 63 68 61 62 6c 65 2d SearchBuilder::Record::Cachable-
9520 3e 46 6c 75 73 68 43 61 63 68 65 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 >FlushCache;.........}..........
9540 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 ...return.($val,.$msg).unless.$v
9560 61 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 al;.............);..............
9580 20 20 20 4f 62 6a 65 63 74 49 64 20 20 20 20 20 20 3d 3e 20 31 2c 00 20 20 20 20 20 20 20 20 20 ...ObjectId......=>.1,..........
95a0 20 20 20 20 20 20 20 4f 62 6a 65 63 74 54 79 70 65 20 20 20 20 3d 3e 20 27 52 54 3a 3a 53 79 73 .......ObjectType....=>.'RT::Sys
95c0 74 65 6d 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 4e 61 6d 65 20 tem',.................RightName.
95e0 20 20 20 20 3d 3e 20 27 53 75 70 65 72 55 73 65 72 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 ....=>.'SuperUser',.............
9600 20 20 20 20 50 72 69 6e 63 69 70 61 6c 54 79 70 65 20 3d 3e 20 27 47 72 6f 75 70 27 2c 00 20 20 ....PrincipalType.=>.'Group',...
9620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6e 63 69 70 61 6c 49 64 20 20 20 3d 3e 20 41 ..............PrincipalId...=>.A
9640 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 2d 3e CLEquivGroupId(.RT->SystemUser->
9660 49 64 20 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 Id.),.............my.(.$val,.$ms
9680 67 20 29 20 3d 20 24 61 63 65 2d 3e 5f 42 6f 6f 74 73 74 72 61 70 43 72 65 61 74 65 28 00 20 20 g.).=.$ace->_BootstrapCreate(...
96a0 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 61 63 65 20 3d 20 52 54 3a 3a 41 43 45 2d 3e 6e 65 77 ..........my.$ace.=.RT::ACE->new
96c0 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 7d 20 65 6c (.RT->SystemUser.);.........}.el
96e0 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c 20 22 53 se.{.............push.@warns,."S
9700 79 73 74 65 6d 20 75 73 65 72 20 68 61 73 20 67 6c 6f 62 61 6c 20 53 75 70 65 72 55 73 65 72 20 ystem.user.has.global.SuperUser.
9720 72 69 67 68 74 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 74 65 73 74 5f 61 63 65 2d right.";.........if.(.$test_ace-
9740 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 4f >id.).{.........);.............O
9760 62 6a 65 63 74 49 64 20 20 20 20 20 20 3d 3e 20 31 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 4f bjectId......=>.1,.............O
9780 62 6a 65 63 74 54 79 70 65 20 20 20 20 3d 3e 20 27 52 54 3a 3a 53 79 73 74 65 6d 27 2c 00 20 20 bjectType....=>.'RT::System',...
97a0 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 4e 61 6d 65 20 20 20 20 20 3d 3e 20 27 53 75 70 65 ..........RightName.....=>.'Supe
97c0 72 55 73 65 72 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6e 63 69 70 61 6c 54 79 70 rUser',.............PrincipalTyp
97e0 65 20 3d 3e 20 27 47 72 6f 75 70 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 50 72 69 6e 63 69 e.=>.'Group',.............Princi
9800 70 61 6c 49 64 20 20 20 3d 3e 20 41 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 28 20 52 54 2d 3e palId...=>.ACLEquivGroupId(.RT->
9820 53 79 73 74 65 6d 55 73 65 72 2d 3e 49 64 20 29 2c 00 20 20 20 20 20 20 20 20 24 74 65 73 74 5f SystemUser->Id.),.........$test_
9840 61 63 65 2d 3e 4c 6f 61 64 42 79 43 6f 6c 73 28 00 20 20 20 20 20 20 20 20 6d 79 20 24 74 65 73 ace->LoadByCols(.........my.$tes
9860 74 5f 61 63 65 20 3d 20 52 54 3a 3a 41 43 45 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d t_ace.=.RT::ACE->new(.RT->System
9880 55 73 65 72 20 29 3b 00 20 20 20 20 7b 00 20 20 20 20 23 20 67 72 61 6e 74 20 53 75 70 65 72 55 User.);.....{.....#.grant.SuperU
98a0 73 65 72 20 72 69 67 68 74 20 74 6f 20 73 79 73 74 65 6d 20 75 73 65 72 00 00 20 20 20 20 7d 00 ser.right.to.system.user......}.
98c0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 61 ........return.(0,."Couldn't.loa
98e0 64 20 73 79 73 74 65 6d 20 75 73 65 72 22 29 3b 00 20 20 20 20 75 6e 6c 65 73 73 20 28 20 52 54 d.system.user");.....unless.(.RT
9900 2d 3e 53 79 73 74 65 6d 55 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 52 54 3a 3a 49 6e 69 ->SystemUser->id.).{.....RT::Ini
9920 74 53 79 73 74 65 6d 4f 62 6a 65 63 74 73 28 29 3b 00 20 20 20 20 23 20 69 6e 69 74 20 52 54 3a tSystemObjects();.....#.init.RT:
9940 3a 53 79 73 74 65 6d 55 73 65 72 20 61 6e 64 20 52 54 3a 3a 53 79 73 74 65 6d 20 6f 62 6a 65 63 :SystemUser.and.RT::System.objec
9960 74 73 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 44 42 49 78 3a 3a 53 65 61 72 63 68 42 75 ts......}.........DBIx::SearchBu
9980 69 6c 64 65 72 3a 3a 52 65 63 6f 72 64 3a 3a 43 61 63 68 61 62 6c 65 2d 3e 46 6c 75 73 68 43 61 ilder::Record::Cachable->FlushCa
99a0 63 68 65 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 che;.........}.............retur
99c0 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 n.($val,.$msg).unless.$val;.....
99e0 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 61 73 74 55 ........);.................LastU
9a00 70 64 61 74 65 64 42 79 20 3d 3e 20 27 31 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pdatedBy.=>.'1',................
9a20 20 43 72 65 61 74 6f 72 20 20 3d 3e 20 27 31 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Creator..=>.'1',...............
9a40 20 20 20 20 20 20 2e 20 27 49 74 20 69 73 20 69 6e 74 65 67 72 61 6c 20 74 6f 20 52 54 5c 27 73 ........'It.is.integral.to.RT\'s
9a60 20 69 6e 74 65 72 6e 61 6c 20 64 61 74 61 62 61 73 65 20 73 74 72 75 63 74 75 72 65 73 27 2c 00 .internal.database.structures',.
9a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6d 6d 65 6e 74 73 20 3d 3e 20 27 44 6f 20 ................Comments.=>.'Do.
9aa0 6e 6f 74 20 64 65 6c 65 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 75 73 65 72 2e 20 not.delete.or.modify.this.user..
9ac0 27 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 61 6c 4e 61 6d 65 20 3d 3e 20 27 54 '.................RealName.=>.'T
9ae0 68 65 20 52 54 20 53 79 73 74 65 6d 20 69 74 73 65 6c 66 27 2c 00 20 20 20 20 20 20 20 20 20 20 he.RT.System.itself',...........
9b00 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 3d 3e 20 27 52 54 5f 53 79 73 74 65 6d 27 2c 00 20 ......Name.....=>.'RT_System',..
9b20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 ...........my.(.$val,.$msg.).=.$
9b40 75 73 65 72 2d 3e 5f 42 6f 6f 74 73 74 72 61 70 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 user->_BootstrapCreate(.........
9b60 20 20 20 20 6d 79 20 24 75 73 65 72 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 52 54 ....my.$user.=.RT::User->new(.RT
9b80 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 28 29 20 29 3b 00 20 20 20 20 20 20 20 20 ::CurrentUser->new().);.........
9ba0 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 else.{.........}.............pus
9bc0 68 20 40 77 61 72 6e 73 2c 20 22 46 6f 75 6e 64 20 73 79 73 74 65 6d 20 75 73 65 72 20 69 6e 20 h.@warns,."Found.system.user.in.
9be0 74 68 65 20 44 42 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 74 65 73 74 5f 75 73 65 the.DB.";.........if.(.$test_use
9c00 72 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 74 65 73 74 5f 75 73 65 72 2d 3e 4c 6f r->id.).{.........$test_user->Lo
9c20 61 64 28 27 52 54 5f 53 79 73 74 65 6d 27 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 74 65 73 ad('RT_System');.........my.$tes
9c40 74 5f 75 73 65 72 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 52 54 3a 3a 43 75 72 72 t_user.=.RT::User->new(.RT::Curr
9c60 65 6e 74 55 73 65 72 2d 3e 6e 65 77 28 29 20 29 3b 00 00 20 20 20 20 20 20 20 20 72 65 71 75 69 entUser->new().);..........requi
9c80 72 65 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 3b 00 20 20 20 20 7b 00 20 20 20 20 23 20 re.RT::CurrentUser;.....{.....#.
9ca0 63 72 65 61 74 65 20 52 54 5f 53 79 73 74 65 6d 20 75 73 65 72 20 61 6e 64 20 67 72 61 6e 74 20 create.RT_System.user.and.grant.
9cc0 68 69 6d 20 72 69 67 68 74 73 00 00 20 20 20 20 6d 79 20 40 77 61 72 6e 73 3b 00 00 20 20 20 20 him.rights......my.@warns;......
9ce0 6d 79 20 24 73 65 6c 66 20 20 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 49 6e 73 65 72 74 49 my.$self....=.shift;.sub.InsertI
9d00 6e 69 74 69 61 6c 44 61 74 61 20 7b 00 00 3d 63 75 74 00 00 49 74 27 73 20 73 61 66 65 20 74 6f nitialData.{..=cut..It's.safe.to
9d20 20 63 61 6c 6c 20 74 68 69 73 20 6d 65 74 68 6f 64 20 65 76 65 6e 20 69 66 20 74 68 6f 73 65 20 .call.this.method.even.if.those.
9d40 6f 62 6a 65 63 74 73 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 2e 00 00 54 61 6b 65 73 20 6e 6f objects.already.exist...Takes.no
9d60 20 61 72 67 75 6d 65 6e 74 73 2e 20 52 65 74 75 72 6e 73 20 73 74 61 74 75 73 20 61 6e 64 20 6d .arguments..Returns.status.and.m
9d80 65 73 73 61 67 65 20 74 75 70 6c 65 2e 00 00 49 6e 73 65 72 74 44 61 74 61 20 6f 72 20 61 6e 6f essage.tuple...InsertData.or.ano
9da0 74 68 65 72 20 77 61 79 20 74 6f 20 64 6f 20 74 68 61 74 2e 00 64 6f 65 73 6e 27 74 20 69 6e 73 ther.way.to.do.that..doesn't.ins
9dc0 65 72 74 20 61 6e 79 20 72 65 61 6c 20 75 73 65 72 73 20 6c 69 6b 65 20 27 72 6f 6f 74 27 20 61 ert.any.real.users.like.'root'.a
9de0 6e 64 20 79 6f 75 20 68 61 76 65 20 74 6f 20 75 73 65 00 69 6e 74 65 72 6e 61 6c 20 67 72 6f 75 nd.you.have.to.use.internal.grou
9e00 70 73 20 61 6e 64 20 6f 74 68 65 72 20 72 65 63 6f 72 64 73 20 72 65 71 75 69 72 65 64 2e 20 48 ps.and.other.records.required..H
9e20 6f 77 65 76 65 72 2c 20 74 68 69 73 20 6d 65 74 68 6f 64 00 49 6e 73 65 72 74 73 20 73 79 73 74 owever,.this.method.Inserts.syst
9e40 65 6d 20 6f 62 6a 65 63 74 73 20 69 6e 74 6f 20 52 54 27 73 20 44 42 2c 20 6c 69 6b 65 20 73 79 em.objects.into.RT's.DB,.like.sy
9e60 73 74 65 6d 20 75 73 65 72 20 6f 72 20 27 6e 6f 62 6f 64 79 27 2c 00 00 3d 68 65 61 64 32 20 49 stem.user.or.'nobody',..=head2.I
9e80 6e 73 65 72 74 49 6e 69 74 69 61 6c 44 61 74 61 00 00 00 7d 00 00 7d 00 20 20 20 20 72 65 74 75 nsertInitialData...}..}.....retu
9ea0 72 6e 20 6b 65 79 73 20 25 77 6f 72 64 3b 00 73 75 62 20 76 65 72 73 69 6f 6e 5f 77 6f 72 64 73 rn.keys.%word;.sub.version_words
9ec0 20 7b 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 .{..}.....return.0;.....}.......
9ee0 20 20 72 65 74 75 72 6e 20 24 61 5b 24 69 5d 20 3c 3d 3e 20 24 62 5b 24 69 5d 20 69 66 20 24 61 ..return.$a[$i].<=>.$b[$i].if.$a
9f00 5b 24 69 5d 20 3c 3d 3e 20 24 62 5b 24 69 5d 3b 00 20 20 20 20 66 6f 72 20 28 20 6d 79 20 24 69 [$i].<=>.$b[$i];.....for.(.my.$i
9f20 20 3d 20 30 3b 20 24 69 20 3c 20 40 61 3b 20 24 69 2b 2b 20 29 20 7b 00 20 20 20 20 20 20 20 20 .=.0;.$i.<.@a;.$i++.).{.........
9f40 3a 20 70 75 73 68 20 40 61 2c 20 28 30 29 20 78 20 28 40 62 2d 40 61 29 3b 00 20 20 20 20 20 20 :.push.@a,.(0).x.(@b-@a);.......
9f60 20 20 3f 20 70 75 73 68 20 40 62 2c 20 28 30 29 20 78 20 28 40 61 2d 40 62 29 00 20 20 20 20 40 ..?.push.@b,.(0).x.(@a-@b).....@
9f80 61 20 3e 20 40 62 00 20 20 20 20 20 20 20 20 73 70 6c 69 74 20 2f 28 5b 5e 30 2d 39 5d 2b 29 2f a.>.@b.........split./([^0-9]+)/
9fa0 2c 20 24 62 3b 00 20 20 20 20 6d 79 20 40 62 20 3d 20 67 72 65 70 20 64 65 66 69 6e 65 64 2c 20 ,.$b;.....my.@b.=.grep.defined,.
9fc0 6d 61 70 20 7b 20 2f 5e 5b 30 2d 39 5d 2b 24 2f 3f 20 24 5f 20 3a 20 2f 5e 5b 61 2d 7a 41 2d 5a map.{./^[0-9]+$/?.$_.:./^[a-zA-Z
9fe0 5d 2b 24 2f 3f 20 24 77 6f 72 64 7b 24 5f 7d 7c 7c 20 2d 31 30 20 3a 20 75 6e 64 65 66 20 7d 00 ]+$/?.$word{$_}||.-10.:.undef.}.
a000 61 64 00 00 01 00 00 00 d1 01 00 00 00 10 00 00 6d 00 00 00 00 00 00 00 be 0f 00 00 9f 0f 00 00 ad..............m...............
a020 80 0f 00 00 75 0f 00 00 4c 0f 00 00 46 0f 00 00 45 0f 00 00 38 0f 00 00 32 0f 00 00 fe 0e 00 00 ....u...L...F...E...8...2.......
a040 df 0e 00 00 c4 0e 00 00 89 0e 00 00 7f 0e 00 00 70 0e 00 00 41 0e 00 00 1b 0e 00 00 e7 0d 00 00 ................p...A...........
a060 96 0d 00 00 5c 0d 00 00 3b 0d 00 00 2c 0d 00 00 ff 0c 00 00 f5 0c 00 00 f4 0c 00 00 a4 0c 00 00 ....\...;...,...................
a080 5e 0c 00 00 4d 0c 00 00 0c 0c 00 00 e6 0b 00 00 bf 0b 00 00 b0 0b 00 00 83 0b 00 00 79 0b 00 00 ^...M.......................y...
a0a0 73 0b 00 00 72 0b 00 00 4b 0b 00 00 2e 0b 00 00 2d 0b 00 00 14 0b 00 00 dc 0a 00 00 a6 0a 00 00 s...r...K.......-...............
a0c0 78 0a 00 00 5c 0a 00 00 1c 0a 00 00 0a 0a 00 00 00 0a 00 00 ff 09 00 00 cc 09 00 00 9f 09 00 00 x...\...........................
a0e0 7d 09 00 00 4f 09 00 00 09 09 00 00 ea 08 00 00 cb 08 00 00 c0 08 00 00 97 08 00 00 91 08 00 00 }...O...........................
a100 90 08 00 00 50 08 00 00 3d 08 00 00 3c 08 00 00 19 08 00 00 17 08 00 00 16 08 00 00 04 08 00 00 ....P...=...<...................
a120 03 08 00 00 c3 07 00 00 c2 07 00 00 bd 07 00 00 bc 07 00 00 ab 07 00 00 91 07 00 00 77 07 00 00 ............................w...
a140 58 07 00 00 43 07 00 00 24 07 00 00 19 07 00 00 12 07 00 00 11 07 00 00 bf 06 00 00 6b 06 00 00 X...C...$...................k...
a160 1c 06 00 00 c6 05 00 00 77 05 00 00 76 05 00 00 68 05 00 00 29 05 00 00 0a 05 00 00 b4 04 00 00 ........w...v...h...)...........
a180 b3 04 00 00 9d 04 00 00 63 04 00 00 44 04 00 00 2e 04 00 00 d9 03 00 00 cf 03 00 00 aa 03 00 00 ........c...D...................
a1a0 a4 03 00 00 8f 03 00 00 5d 03 00 00 38 03 00 00 fa 02 00 00 cb 02 00 00 93 02 00 00 5e 02 00 00 ........]...8...............^...
a1c0 1e 02 00 00 fd 01 00 00 d1 01 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a1e0 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 .$RT::Logger->error(.$msg.);....
a200 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 .........unless.(.$return.).{...
a220 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d ..........my.(.$return,.$msg.).=
a240 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 5f 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 .$new_entry->_Create(%$item);...
a260 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6d 65 6d 62 65 72 73 20 3d 20 64 65 6c 65 74 65 20 24 ..........my.$members.=.delete.$
a280 69 74 65 6d 2d 3e 7b 27 4d 65 6d 62 65 72 73 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d item->{'Members'};.............m
a2a0 79 20 24 6d 65 6d 62 65 72 5f 6f 66 20 3d 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 27 4d y.$member_of.=.delete.$item->{'M
a2c0 65 6d 62 65 72 4f 66 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 44 emberOf'};.............$item->{D
a2e0 6f 6d 61 69 6e 7d 20 7c 7c 3d 20 27 55 73 65 72 44 65 66 69 6e 65 64 27 3b 00 20 20 20 20 20 20 omain}.||=.'UserDefined';.......
a300 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d ......my.$new_entry.=.RT::Group-
a320 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 >new(.RT->SystemUser.);.........
a340 66 6f 72 65 61 63 68 20 6d 79 20 24 69 74 65 6d 20 28 40 47 72 6f 75 70 73 29 20 7b 00 20 20 20 foreach.my.$item.(@Groups).{....
a360 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e .....$RT::Logger->debug("Creatin
a380 67 20 67 72 6f 75 70 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 47 72 6f 75 70 73 20 g.groups...");.....if.(.@Groups.
a3a0 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 ).{.....}.........$RT::Logger->d
a3c0 65 62 75 67 28 22 44 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 ebug("Done.");.........}........
a3e0 20 20 20 20 20 65 76 61 6c 20 7b 20 24 5f 2d 3e 28 29 3b 20 31 20 7d 20 6f 72 20 72 65 74 75 72 .....eval.{.$_->();.1.}.or.retur
a400 6e 20 28 30 2c 20 22 4f 6e 65 20 6f 66 20 69 6e 69 74 69 61 6c 20 66 75 6e 63 74 69 6f 6e 73 20 n.(0,."One.of.initial.functions.
a420 66 61 69 6c 65 64 3a 20 24 40 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 failed:.$@");.............local.
a440 24 40 3b 00 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 20 40 49 6e 69 74 69 61 6c 20 29 $@;.........foreach.(.@Initial.)
a460 20 7b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 52 .{.........$RT::Logger->debug("R
a480 75 6e 6e 69 6e 67 20 69 6e 69 74 69 61 6c 20 61 63 74 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 unning.initial.actions...");....
a4a0 20 69 66 20 28 20 40 49 6e 69 74 69 61 6c 20 29 20 7b 00 00 20 20 20 20 20 20 6f 72 20 72 65 74 .if.(.@Initial.).{........or.ret
a4c0 75 72 6e 20 28 30 2c 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 61 64 20 64 61 74 61 20 66 72 6f 6d urn.(0,."Couldn't.load.data.from
a4e0 20 27 24 64 61 74 61 66 69 6c 65 27 20 66 6f 72 20 69 6d 70 6f 72 74 3a 5c 6e 5c 6e 45 52 52 4f .'$datafile'.for.import:\n\nERRO
a500 52 3a 22 2e 20 24 40 29 3b 00 20 20 20 20 65 76 61 6c 20 7b 20 72 65 71 75 69 72 65 20 24 64 61 R:"..$@);.....eval.{.require.$da
a520 74 61 66 69 6c 65 20 7d 00 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 tafile.}.....$RT::Logger->debug(
a540 22 47 6f 69 6e 67 20 74 6f 20 6c 6f 61 64 20 27 24 64 61 74 61 66 69 6c 65 27 20 64 61 74 61 20 "Going.to.load.'$datafile'.data.
a560 66 69 6c 65 22 29 3b 00 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 00 20 20 20 20 20 20 20 20 20 file");.....local.$@;...........
a580 20 20 40 54 65 6d 70 6c 61 74 65 73 2c 20 40 43 75 73 74 6f 6d 46 69 65 6c 64 73 2c 20 40 53 63 ..@Templates,.@CustomFields,.@Sc
a5a0 72 69 70 73 2c 20 40 41 74 74 72 69 62 75 74 65 73 2c 20 40 49 6e 69 74 69 61 6c 2c 20 40 46 69 rips,.@Attributes,.@Initial,.@Fi
a5c0 6e 61 6c 29 3b 00 20 20 20 20 6c 6f 63 61 6c 20 28 40 47 72 6f 75 70 73 2c 20 40 55 73 65 72 73 nal);.....local.(@Groups,.@Users
a5e0 2c 20 40 4d 65 6d 62 65 72 73 2c 20 40 41 43 4c 2c 20 40 51 75 65 75 65 73 2c 20 40 53 63 72 69 ,.@Members,.@ACL,.@Queues,.@Scri
a600 70 41 63 74 69 6f 6e 73 2c 20 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 2c 00 20 20 20 20 pActions,.@ScripConditions,.....
a620 20 20 20 20 20 20 20 40 54 65 6d 70 6c 61 74 65 73 2c 20 40 43 75 73 74 6f 6d 46 69 65 6c 64 73 .......@Templates,.@CustomFields
a640 2c 20 40 53 63 72 69 70 73 2c 20 40 41 74 74 72 69 62 75 74 65 73 2c 20 40 49 6e 69 74 69 61 6c ,.@Scrips,.@Attributes,.@Initial
a660 2c 20 40 46 69 6e 61 6c 29 3b 00 20 20 20 20 6f 75 72 20 28 40 47 72 6f 75 70 73 2c 20 40 55 73 ,.@Final);.....our.(@Groups,.@Us
a680 65 72 73 2c 20 40 4d 65 6d 62 65 72 73 2c 20 40 41 43 4c 2c 20 40 51 75 65 75 65 73 2c 20 40 53 ers,.@Members,.@ACL,.@Queues,.@S
a6a0 63 72 69 70 41 63 74 69 6f 6e 73 2c 20 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 2c 00 20 cripActions,.@ScripConditions,..
a6c0 20 20 20 23 20 53 6c 75 72 70 20 69 6e 20 73 74 75 66 66 20 74 6f 20 69 6e 73 65 72 74 20 66 72 ...#.Slurp.in.stuff.to.insert.fr
a6e0 6f 6d 20 74 68 65 20 64 61 74 61 66 69 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 74 68 69 6e 67 73 om.the.datafile..Possible.things
a700 20 74 6f 20 67 6f 20 69 6e 20 68 65 72 65 3a 2d 00 00 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 .to.go.in.here:-......);........
a720 20 40 5f 00 20 20 20 20 20 20 20 20 64 69 73 63 6f 6e 6e 65 63 74 5f 61 66 74 65 72 20 3d 3e 20 .@_.........disconnect_after.=>.
a740 31 2c 00 20 20 20 20 6d 79 20 25 61 72 67 73 20 20 20 20 20 3d 20 28 00 20 20 20 20 6d 79 20 24 1,.....my.%args.....=.(.....my.$
a760 72 6f 6f 74 5f 70 61 73 73 77 6f 72 64 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 64 root_password.=.shift;.....my.$d
a780 61 74 61 66 69 6c 65 20 3d 20 73 68 69 66 74 3b 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 20 20 atafile.=.shift;.....my.$self...
a7a0 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 49 6e 73 65 72 74 44 61 74 61 20 7b 00 00 3d 63 75 ..=.shift;.sub.InsertData.{..=cu
a7c0 74 00 00 4c 6f 61 64 20 73 6f 6d 65 20 73 6f 72 74 20 6f 66 20 64 61 74 61 20 69 6e 74 6f 20 74 t..Load.some.sort.of.data.into.t
a7e0 68 65 20 64 61 74 61 62 61 73 65 2c 20 74 61 6b 65 73 20 70 61 74 68 20 74 6f 20 61 20 66 69 6c he.database,.takes.path.to.a.fil
a800 65 2e 00 00 3d 68 65 61 64 32 20 49 6e 73 65 72 74 44 61 74 61 00 00 7d 00 20 20 20 20 72 65 74 e...=head2.InsertData..}.....ret
a820 75 72 6e 20 28 31 2c 20 6a 6f 69 6e 20 22 5c 6e 22 2c 20 40 77 61 72 6e 73 29 3b 00 00 20 20 20 urn.(1,.join."\n",.@warns);.....
a840 20 20 20 20 20 69 66 20 40 77 61 72 6e 73 3b 00 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c .....if.@warns;.....push.@warns,
a860 20 22 59 6f 75 20 61 70 70 65 61 72 20 74 6f 20 68 61 76 65 20 61 20 66 75 6e 63 74 69 6f 6e 61 ."You.appear.to.have.a.functiona
a880 6c 20 52 54 20 64 61 74 61 62 61 73 65 2e 22 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 l.RT.database."......}.........r
a8a0 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 eturn.($val,.$msg).unless.$val;.
a8c0 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 73 74 61 6e 63 65 20 ........);.............Instance.
a8e0 20 20 20 3d 3e 20 27 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 20 ...=>.'',.............Name......
a900 20 20 3d 3e 20 27 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e ..=>.'',.............Description
a920 20 3d 3e 20 27 53 79 73 74 65 6d 52 6f 6c 65 67 72 6f 75 70 20 66 6f 72 20 69 6e 74 65 72 6e 61 .=>.'SystemRolegroup.for.interna
a940 6c 20 75 73 65 27 2c 20 20 23 20 6c 6f 63 00 20 20 20 20 20 20 20 20 20 20 20 20 44 6f 6d 61 69 l.use',..#.loc.............Domai
a960 6e 20 20 20 20 20 20 3d 3e 20 27 52 54 3a 3a 53 79 73 74 65 6d 2d 52 6f 6c 65 27 2c 00 20 20 20 n......=>.'RT::System-Role',....
a980 20 20 20 20 20 20 20 20 20 54 79 70 65 20 20 20 20 20 20 20 20 3d 3e 20 24 6e 61 6d 65 2c 00 20 .........Type........=>.$name,..
a9a0 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 67 72 6f 75 .......my.(.$val,.$msg.).=.$grou
a9c0 70 2d 3e 5f 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 24 67 72 6f 75 70 20 3d 20 52 54 3a p->_Create(.........$group.=.RT:
a9e0 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 00 :Group->new(.RT->SystemUser.);..
aa00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 ........}.............next;.....
aa20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c 20 22 53 79 73 74 65 6d 20 72 6f 6c ........push.@warns,."System.rol
aa40 65 20 27 24 6e 61 6d 65 27 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 3b 00 20 20 20 20 e.'$name'.already.exists.";.....
aa60 20 20 20 20 69 66 20 28 20 24 67 72 6f 75 70 2d 3e 69 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 ....if.(.$group->id.).{.........
aa80 24 67 72 6f 75 70 2d 3e 4c 6f 61 64 53 79 73 74 65 6d 52 6f 6c 65 47 72 6f 75 70 28 20 24 6e 61 $group->LoadSystemRoleGroup(.$na
aaa0 6d 65 20 29 3b 00 20 20 20 20 20 20 20 20 6d 79 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 me.);.........my.$group.=.RT::Gr
aac0 6f 75 70 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 oup->new(.RT->SystemUser.);.....
aae0 66 6f 72 65 61 63 68 20 6d 79 20 24 6e 61 6d 65 20 28 71 77 28 4f 77 6e 65 72 20 52 65 71 75 65 foreach.my.$name.(qw(Owner.Reque
ab00 73 74 6f 72 20 43 63 20 41 64 6d 69 6e 43 63 29 29 20 7b 00 20 20 20 20 23 20 73 79 73 74 65 6d stor.Cc.AdminCc)).{.....#.system
ab20 20 72 6f 6c 65 20 67 72 6f 75 70 73 00 00 20 20 20 20 52 54 3a 3a 49 6e 69 74 53 79 73 74 65 6d .role.groups......RT::InitSystem
ab40 4f 62 6a 65 63 74 73 28 29 3b 00 20 20 20 20 23 20 72 65 72 75 6e 20 74 6f 20 67 65 74 20 69 6e Objects();.....#.rerun.to.get.in
ab60 69 74 20 4e 6f 62 6f 64 79 20 61 73 20 77 65 6c 6c 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 it.Nobody.as.well......}........
ab80 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 .}.............return.($val,.$ms
aba0 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 g).unless.$val;.............);..
abc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 62 6a 65 63 74 20 3d 3e 20 24 52 54 3a 3a 53 79 ...............Object.=>.$RT::Sy
abe0 73 74 65 6d 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 69 67 68 74 20 3d 3e 20 27 stem,.................Right.=>.'
ac00 4f 77 6e 54 69 63 6b 65 74 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 OwnTicket',.............my.(.$va
ac20 6c 2c 20 24 6d 73 67 20 29 20 3d 20 24 75 73 65 72 2d 3e 50 72 69 6e 63 69 70 61 6c 4f 62 6a 2d l,.$msg.).=.$user->PrincipalObj-
ac40 3e 47 72 61 6e 74 52 69 67 68 74 28 00 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 >GrantRight(.........}.else.{...
ac60 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 2c 20 22 55 73 65 72 20 27 4e 6f ..........push.@warns,."User.'No
ac80 62 6f 64 79 27 20 68 61 73 20 67 6c 6f 62 61 6c 20 4f 77 6e 54 69 63 6b 65 74 20 72 69 67 68 74 body'.has.global.OwnTicket.right
aca0 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 75 73 65 72 2d 3e 48 61 73 52 69 67 68 74 .";.........if.(.$user->HasRight
acc0 28 20 52 69 67 68 74 20 3d 3e 20 27 4f 77 6e 54 69 63 6b 65 74 27 2c 20 4f 62 6a 65 63 74 20 3d (.Right.=>.'OwnTicket',.Object.=
ace0 3e 20 24 52 54 3a 3a 53 79 73 74 65 6d 20 29 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 7d 00 20 >.$RT::System.).).{..........}..
ad00 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c 2c 20 24 6d 73 67 29 20 75 ...........return.($val,.$msg).u
ad20 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 nless.$val;.............);......
ad40 20 20 20 20 20 20 20 20 20 20 20 50 72 69 76 69 6c 65 67 65 64 20 3d 3e 20 30 2c 00 20 20 20 20 ...........Privileged.=>.0,.....
ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 27 74 6f 20 52 54 5c 27 73 20 69 6e 74 65 72 .................'to.RT\'s.inter
ad80 6e 61 6c 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 27 2c 00 20 20 20 20 20 20 20 20 20 20 nal.data.structures',...........
ada0 20 20 20 20 20 20 43 6f 6d 6d 65 6e 74 73 20 3d 3e 20 27 44 6f 20 6e 6f 74 20 64 65 6c 65 74 65 ......Comments.=>.'Do.not.delete
adc0 20 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 75 73 65 72 2e 20 49 74 20 69 73 20 69 6e 74 65 .or.modify.this.user..It.is.inte
ade0 67 72 61 6c 20 27 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 61 6c 4e 61 6d 65 20 gral.'.................RealName.
ae00 3d 3e 20 27 4e 6f 62 6f 64 79 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 27 2c 00 20 20 20 20 20 =>.'Nobody.in.particular',......
ae20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 3d 3e 20 27 4e 6f 62 6f 64 79 27 2c ...........Name.....=>.'Nobody',
ae40 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 76 61 6c 2c 20 24 6d 73 67 20 29 20 3d .............my.(.$val,.$msg.).=
ae60 20 24 75 73 65 72 2d 3e 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 .$user->Create(.........else.{..
ae80 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 77 61 72 6e 73 .......}.............push.@warns
aea0 2c 20 22 46 6f 75 6e 64 20 27 4e 6f 62 6f 64 79 27 20 75 73 65 72 20 69 6e 20 74 68 65 20 44 42 ,."Found.'Nobody'.user.in.the.DB
aec0 2e 22 3b 00 20 20 20 20 20 20 20 20 69 66 20 28 20 24 75 73 65 72 2d 3e 69 64 20 29 20 7b 00 20 .";.........if.(.$user->id.).{..
aee0 20 20 20 20 20 20 20 24 75 73 65 72 2d 3e 4c 6f 61 64 28 27 4e 6f 62 6f 64 79 27 29 3b 00 20 20 .......$user->Load('Nobody');...
af00 20 20 20 20 20 20 6d 79 20 24 75 73 65 72 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 ......my.$user.=.RT::User->new(.
af20 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 7b 00 20 20 20 20 23 20 6e 6f RT->SystemUser.);.....{.....#.no
af40 62 6f 64 79 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 24 76 61 6c body......}.........return.($val
af60 2c 20 24 6d 73 67 29 20 75 6e 6c 65 73 73 20 24 76 61 6c 3b 00 20 20 20 20 20 20 20 20 29 3b 00 ,.$msg).unless.$val;.........);.
af80 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 73 74 61 6e 63 65 20 20 20 20 3d 3e 20 27 27 2c 00 20 ............Instance....=>.'',..
afa0 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 20 20 20 20 20 20 20 20 3d 3e 20 27 27 2c 00 20 20 ...........Name........=>.'',...
afc0 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 3e 20 27 50 73 65 75 64 6f ..........Description.=>.'Pseudo
afe0 67 72 6f 75 70 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 27 2c 20 20 23 20 6c 6f 63 00 group.for.internal.use',..#.loc.
b000 61 64 00 00 07 00 00 00 8b 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 ea 0f 00 00 d5 0f 00 00 ad..............Z...............
b020 a3 0f 00 00 95 0f 00 00 75 0f 00 00 27 0f 00 00 fe 0e 00 00 bd 0e 00 00 8f 0e 00 00 5b 0e 00 00 ........u...'...............[...
b040 45 0e 00 00 1d 0e 00 00 e0 0d 00 00 ca 0d 00 00 af 0d 00 00 83 0d 00 00 3d 0d 00 00 f5 0c 00 00 E.......................=.......
b060 a8 0c 00 00 59 0c 00 00 3e 0c 00 00 20 0c 00 00 0a 0c 00 00 dd 0b 00 00 83 0b 00 00 65 0b 00 00 ....Y...>...................e...
b080 4f 0b 00 00 fe 0a 00 00 d5 0a 00 00 a1 0a 00 00 84 0a 00 00 48 0a 00 00 32 0a 00 00 20 0a 00 00 O...................H...2.......
b0a0 12 0a 00 00 d6 09 00 00 90 09 00 00 62 09 00 00 26 09 00 00 df 08 00 00 b0 08 00 00 a6 08 00 00 ............b...&...............
b0c0 81 08 00 00 7b 08 00 00 67 08 00 00 36 08 00 00 12 08 00 00 d1 07 00 00 9b 07 00 00 8d 07 00 00 ....{...g...6...................
b0e0 50 07 00 00 11 07 00 00 f0 06 00 00 c4 06 00 00 af 06 00 00 7b 06 00 00 6d 06 00 00 63 06 00 00 P...................{...m...c...
b100 3e 06 00 00 38 06 00 00 22 06 00 00 de 05 00 00 bc 05 00 00 84 05 00 00 41 05 00 00 1f 05 00 00 >...8..."...............A.......
b120 c9 04 00 00 b3 04 00 00 a5 04 00 00 a4 04 00 00 67 04 00 00 2f 04 00 00 e5 03 00 00 ba 03 00 00 ................g.../...........
b140 97 03 00 00 1e 03 00 00 08 03 00 00 fa 02 00 00 f9 02 00 00 a7 02 00 00 86 02 00 00 5a 02 00 00 ............................Z...
b160 45 02 00 00 11 02 00 00 03 02 00 00 f9 01 00 00 f3 01 00 00 de 01 00 00 ac 01 00 00 8b 01 00 00 E...............................
b180 8a 01 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 ...................for.my.$item.
b1a0 28 40 51 75 65 75 65 73 29 20 7b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d (@Queues).{.........$RT::Logger-
b1c0 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 71 75 65 75 65 73 2e 2e 2e 22 29 3b 00 20 20 >debug("Creating.queues...");...
b1e0 20 20 69 66 20 28 20 40 51 75 65 75 65 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 ..if.(.@Queues.).{.....}........
b200 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .}.............}................
b220 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e .$RT::Logger->debug(.$return..".
b240 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 ".);.............}.else.{.......
b260 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d ..........$RT::Logger->error(.$m
b280 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 sg.);.............unless.(.$retu
b2a0 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c rn.).{.............my.(.$return,
b2c0 20 24 6d 73 67 29 20 3d 20 24 67 72 6f 75 70 2d 3e 41 64 64 4d 65 6d 62 65 72 28 20 24 6d 65 6d .$msg).=.$group->AddMember(.$mem
b2e0 62 65 72 2d 3e 50 72 69 6e 63 69 70 61 6c 4f 62 6a 2d 3e 49 64 20 29 3b 00 00 20 20 20 20 20 20 ber->PrincipalObj->Id.);........
b300 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 ......}.................next;...
b320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 54 2d 3e 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 ..............RT->Logger->error(
b340 22 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 24 63 6c 61 73 73 20 27 22 2e 28 24 69 74 65 6d "Unable.to.find.$class.'".($item
b360 2d 3e 7b 69 64 7d 20 7c 7c 20 24 69 74 65 6d 2d 3e 7b 4e 61 6d 65 7d 29 2e 22 27 20 74 6f 20 61 ->{id}.||.$item->{Name})."'.to.a
b380 64 64 20 74 6f 20 22 2e 24 67 72 6f 75 70 2d 3e 4e 61 6d 65 29 3b 00 20 20 20 20 20 20 20 20 20 dd.to.".$group->Name);..........
b3a0 20 20 20 75 6e 6c 65 73 73 20 28 24 6d 65 6d 62 65 72 2d 3e 49 64 29 20 7b 00 20 20 20 20 20 20 ...unless.($member->Id).{.......
b3c0 20 20 20 20 20 20 24 6d 65 6d 62 65 72 2d 3e 4c 6f 61 64 42 79 43 6f 6c 73 28 20 25 24 69 74 65 ......$member->LoadByCols(.%$ite
b3e0 6d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 44 6f 6d 61 69 6e 7d m.);.............$item->{Domain}
b400 20 3d 20 27 55 73 65 72 44 65 66 69 6e 65 64 27 20 69 66 20 24 6d 65 6d 62 65 72 2d 3e 69 73 61 .=.'UserDefined'.if.$member->isa
b420 28 22 52 54 3a 3a 47 72 6f 75 70 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6d ("RT::Group");.............my.$m
b440 65 6d 62 65 72 20 3d 20 24 63 6c 61 73 73 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 6d 55 ember.=.$class->new(.RT->SystemU
b460 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 63 6c 61 73 73 20 3d 20 64 ser.);.............my.$class.=.d
b480 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 43 6c 61 73 73 7d 20 7c 7c 20 27 52 54 3a 3a 55 73 65 elete.$item->{Class}.||.'RT::Use
b4a0 72 27 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 r';..............}..............
b4c0 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 54 2d 3e 4c 6f 67 ...next;.................RT->Log
b4e0 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 67 72 6f 75 70 ger->error("Unable.to.find.group
b500 20 27 24 67 72 6f 75 70 27 20 74 6f 20 61 64 64 20 6d 65 6d 62 65 72 73 20 74 6f 22 29 3b 00 20 .'$group'.to.add.members.to");..
b520 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 24 67 72 6f 75 70 2d 3e 49 64 29 20 7b ...........unless.($group->Id).{
b540 00 20 20 20 20 20 20 20 20 20 20 20 20 24 67 72 6f 75 70 2d 3e 4c 6f 61 64 55 73 65 72 44 65 66 .............$group->LoadUserDef
b560 69 6e 65 64 47 72 6f 75 70 28 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 47 72 6f 75 70 7d inedGroup(.delete.$item->{Group}
b580 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 67 72 6f 75 70 20 3d 20 52 54 3a 3a .);.............my.$group.=.RT::
b5a0 47 72 6f 75 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 Group->new(RT->SystemUser);.....
b5c0 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 28 40 4d 65 6d 62 65 72 73 29 20 7b 00 20 20 ....for.my.$item.(@Members).{...
b5e0 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 41 64 64 69 6e 67 ......$RT::Logger->debug("Adding
b600 20 75 73 65 72 73 20 61 6e 64 20 67 72 6f 75 70 73 20 74 6f 20 67 72 6f 75 70 73 2e 2e 2e 22 29 .users.and.groups.to.groups...")
b620 3b 00 20 20 20 20 69 66 20 28 20 40 4d 65 6d 62 65 72 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 ;.....if.(.@Members.).{.....}...
b640 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 ......$RT::Logger->debug("done."
b660 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 );.........}.............}......
b680 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 ...........$RT::Logger->debug(.$
b6a0 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 return..".".);.............}.els
b6c0 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d e.{.................$RT::Logger-
b6e0 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 >error(.$msg.);.............unle
b700 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 ss.(.$return.).{.............my.
b720 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e (.$return,.$msg.).=.$new_entry->
b740 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 Create(%$item);.............my.$
b760 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 new_entry.=.RT::User->new(.RT->S
b780 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 ystemUser.);.............}......
b7a0 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 27 50 61 73 73 77 6f 72 64 27 7d 20 3d ...........$item->{'Password'}.=
b7c0 20 24 72 6f 6f 74 5f 70 61 73 73 77 6f 72 64 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 .$root_password;.............if.
b7e0 28 20 24 69 74 65 6d 2d 3e 7b 27 4e 61 6d 65 27 7d 20 65 71 20 27 72 6f 6f 74 27 20 26 26 20 24 (.$item->{'Name'}.eq.'root'.&&.$
b800 72 6f 6f 74 5f 70 61 73 73 77 6f 72 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 root_password.).{.........foreac
b820 68 20 6d 79 20 24 69 74 65 6d 20 28 40 55 73 65 72 73 29 20 7b 00 20 20 20 20 20 20 20 20 24 52 h.my.$item.(@Users).{.........$R
b840 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 75 73 65 72 73 T::Logger->debug("Creating.users
b860 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 55 73 65 72 73 20 29 20 7b 00 20 20 20 20 7d ...");.....if.(.@Users.).{.....}
b880 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e .........$RT::Logger->debug("don
b8a0 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.");.........}.................
b8c0 40 7b 20 24 6d 65 6d 62 65 72 73 2d 3e 7b 47 72 6f 75 70 73 7d 20 7c 7c 20 5b 5d 20 7d 3b 00 20 @{.$members->{Groups}.||.[].};..
b8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
b900 20 20 43 6c 61 73 73 20 3d 3e 20 22 52 54 3a 3a 47 72 6f 75 70 22 2c 20 4e 61 6d 65 20 3d 3e 20 ..Class.=>."RT::Group",.Name.=>.
b920 24 5f 7d 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 4d 65 6d 62 65 72 73 2c $_}.}.............push.@Members,
b940 20 6d 61 70 20 7b 20 2b 7b 47 72 6f 75 70 20 3d 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 69 64 .map.{.+{Group.=>.$new_entry->id
b960 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40 7b 20 24 6d 65 6d 62 65 72 73 2d 3e 7b ,.................@{.$members->{
b980 55 73 65 72 73 7d 20 7c 7c 20 5b 5d 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Users}.||.[].};.................
b9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6c 61 73 73 20 3d 3e 20 22 52 54 3a ...................Class.=>."RT:
b9c0 3a 55 73 65 72 22 2c 20 4e 61 6d 65 20 3d 3e 20 24 5f 7d 20 7d 00 20 20 20 20 20 20 20 20 20 20 :User",.Name.=>.$_}.}...........
b9e0 20 20 70 75 73 68 20 40 4d 65 6d 62 65 72 73 2c 20 6d 61 70 20 7b 20 2b 7b 47 72 6f 75 70 20 3d ..push.@Members,.map.{.+{Group.=
ba00 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 69 64 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 >.$new_entry->id,.............}.
ba20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................}...............
ba40 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......}.........................
ba60 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 $RT::Logger->debug(.$return.."."
ba80 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b .);.....................}.else.{
baa0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f .........................$RT::Lo
bac0 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 gger->error(.$msg.);............
bae0 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 .........unless.(.$return.).{...
bb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 ..................my.(.$return,.
bb20 24 6d 73 67 20 29 20 3d 20 24 70 61 72 65 6e 74 2d 3e 41 64 64 4d 65 6d 62 65 72 28 20 24 6e 65 $msg.).=.$parent->AddMember(.$ne
bb40 77 5f 65 6e 74 72 79 2d 3e 49 64 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 w_entry->Id.);..................
bb60 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 ...}.........................nex
bb80 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a t;.........................$RT::
bba0 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 28 45 72 72 6f 72 3a 20 63 6f 75 6c 64 6e 27 74 20 Logger->error("(Error:.couldn't.
bbc0 6c 6f 61 64 20 67 72 6f 75 70 20 74 6f 20 61 64 64 20 6d 65 6d 62 65 72 29 22 29 3b 00 20 20 20 load.group.to.add.member)");....
bbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 70 61 72 65 6e .................unless.(.$paren
bc00 74 2d 3e 49 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 t->Id.).{.....................}.
bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 ........................next;...
bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 ......................);........
bc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 55 73 65 20 61 72 72 61 ......................".Use.arra
bc80 79 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 64 64 20 74 6f 20 6d 75 6c 74 69 70 6c 65 20 67 y.reference.to.add.to.multiple.g
bca0 72 6f 75 70 73 29 22 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roups)".........................
bcc0 20 20 20 20 2e 22 20 68 61 73 68 20 72 65 66 65 72 65 6e 63 65 20 77 69 74 68 20 27 63 6f 6c 75 .....".hash.reference.with.'colu
bce0 6d 6e 20 3d 3e 20 76 61 6c 75 65 27 20 70 61 69 72 73 2e 22 00 20 20 20 20 20 20 20 20 20 20 20 mn.=>.value'.pairs."............
bd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 22 20 53 68 6f 75 6c 64 20 62 65 20 6e 61 ..................".Should.be.na
bd20 6d 65 20 6f 66 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 67 72 6f 75 70 20 6f 72 22 00 20 20 20 me.of.user.defined.group.or"....
bd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 45 72 72 6f 72 ........................."(Error
bd60 3a 20 77 72 6f 6e 67 20 66 6f 72 6d 61 74 20 6f 66 20 4d 65 6d 62 65 72 4f 66 20 66 69 65 6c 64 :.wrong.format.of.MemberOf.field
bd80 2e 22 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a .".........................$RT::
bda0 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Logger->error(..................
bdc0 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 ...else.{.....................}.
bde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 65 6e 74 2d ........................$parent-
be00 3e 4c 6f 61 64 55 73 65 72 44 65 66 69 6e 65 64 47 72 6f 75 70 28 20 24 5f 20 29 3b 00 20 20 20 >LoadUserDefinedGroup(.$_.);....
be20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 69 66 20 28 20 21 72 65 66 20 24 5f .................elsif.(.!ref.$_
be40 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 .).{.....................}......
be60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 61 72 65 6e 74 2d 3e 4c 6f 61 64 ...................$parent->Load
be80 42 79 43 6f 6c 73 28 20 25 24 5f 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ByCols(.%$_.);..................
bea0 20 20 20 69 66 20 28 20 72 65 66 20 24 5f 20 65 71 20 27 48 41 53 48 27 20 29 20 7b 00 20 20 20 ...if.(.ref.$_.eq.'HASH'.).{....
bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 70 61 72 65 6e 74 20 3d 20 52 54 .................my.$parent.=.RT
bee0 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 ::Group->new(RT->SystemUser);...
bf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 40 24 6d 65 6d 62 65 72 5f ..............foreach(.@$member_
bf20 6f 66 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 65 6d 62 65 72 5f 6f of.).{.................$member_o
bf40 66 20 3d 20 5b 20 24 6d 65 6d 62 65 72 5f 6f 66 20 5d 20 75 6e 6c 65 73 73 20 72 65 66 20 24 6d f.=.[.$member_of.].unless.ref.$m
bf60 65 6d 62 65 72 5f 6f 66 20 65 71 20 27 41 52 52 41 59 27 3b 00 20 20 20 20 20 20 20 20 20 20 20 ember_of.eq.'ARRAY';............
bf80 20 69 66 20 28 20 24 6d 65 6d 62 65 72 5f 6f 66 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 .if.(.$member_of.).{............
bfa0 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e .}.................$RT::Logger->
bfc0 64 65 62 75 67 28 24 72 65 74 75 72 6e 20 2e 22 2e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 debug($return..".");............
bfe0 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 .}.else.{.................next;.
c000 61 64 00 00 0e 00 00 00 92 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 c4 0f 00 00 85 0f 00 00 ad..............Z...............
c020 64 0f 00 00 38 0f 00 00 23 0f 00 00 ef 0e 00 00 e1 0e 00 00 d7 0e 00 00 b2 0e 00 00 ac 0e 00 00 d...8...#.......................
c040 91 0e 00 00 58 0e 00 00 2f 0e 00 00 eb 0d 00 00 b5 0d 00 00 b4 0d 00 00 9c 0d 00 00 55 0d 00 00 ....X.../...................U...
c060 10 0d 00 00 ce 0c 00 00 96 0c 00 00 88 0c 00 00 87 0c 00 00 5f 0c 00 00 29 0c 00 00 ee 0b 00 00 ...................._...).......
c080 ba 0b 00 00 71 0b 00 00 19 0b 00 00 b6 0a 00 00 97 0a 00 00 5c 0a 00 00 3f 0a 00 00 bb 09 00 00 ....q...............\...?.......
c0a0 88 09 00 00 72 09 00 00 59 09 00 00 d4 08 00 00 a5 08 00 00 93 08 00 00 92 08 00 00 83 08 00 00 ....r...Y.......................
c0c0 82 08 00 00 43 08 00 00 23 08 00 00 f7 07 00 00 e1 07 00 00 d3 07 00 00 d2 07 00 00 a3 07 00 00 ....C...#.......................
c0e0 5d 07 00 00 22 07 00 00 14 07 00 00 13 07 00 00 f4 06 00 00 a3 06 00 00 5d 06 00 00 1e 06 00 00 ]..."...................].......
c100 10 06 00 00 0f 06 00 00 ed 05 00 00 b1 05 00 00 8f 05 00 00 67 05 00 00 21 05 00 00 07 05 00 00 ....................g...!.......
c120 f5 04 00 00 af 04 00 00 7d 04 00 00 4a 04 00 00 1b 04 00 00 08 04 00 00 c0 03 00 00 b2 03 00 00 ........}...J...................
c140 a8 03 00 00 a7 03 00 00 82 03 00 00 7c 03 00 00 6a 03 00 00 3b 03 00 00 1d 03 00 00 1c 03 00 00 ............|...j...;...........
c160 fa 02 00 00 f9 02 00 00 cc 02 00 00 a9 02 00 00 67 02 00 00 2e 02 00 00 c3 01 00 00 92 01 00 00 ................g...............
c180 91 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c1a0 20 20 24 6f 62 6a 65 63 74 2d 3e 4c 6f 61 64 42 79 4e 61 6d 65 28 20 40 63 6f 6c 75 6d 6e 73 20 ..$object->LoadByName(.@columns.
c1c0 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 63 6f 6c 75 6d 6e 73 );.................push.@columns
c1e0 2c 20 51 75 65 75 65 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 69 66 20 24 ,.Queue.=>.$item->{'Queue'}.if.$
c200 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 61 6e 64 20 6e 6f 74 20 72 65 66 20 24 69 74 65 item->{'Queue'}.and.not.ref.$ite
c220 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 m->{'Queue'};.................my
c240 20 40 63 6f 6c 75 6d 6e 73 20 3d 20 28 20 4e 61 6d 65 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 43 .@columns.=.(.Name.=>.$item->{'C
c260 46 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 20 3d F'}.);.................$object.=
c280 20 52 54 3a 3a 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e 6e 65 77 28 20 52 54 2d 3e 53 79 73 74 65 .RT::CustomField->new(.RT->Syste
c2a0 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 74 65 6d 2d mUser.);.............if.(.$item-
c2c0 3e 7b 27 43 46 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 47 6c 6f 62 61 6c >{'CF'}.).{.............#.Global
c2e0 20 72 69 67 68 74 73 20 6f 72 20 51 75 65 75 65 20 72 69 67 68 74 73 3f 00 00 20 20 20 20 20 20 .rights.or.Queue.rights?........
c300 20 20 20 20 20 20 6d 79 20 28 24 70 72 69 6e 63 2c 20 24 6f 62 6a 65 63 74 29 3b 00 00 20 20 20 ......my.($princ,.$object);.....
c320 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 28 40 41 43 4c 29 20 7b 00 20 20 20 20 20 .....for.my.$item.(@ACL).{......
c340 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 ...$RT::Logger->debug("Creating.
c360 41 43 4c 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 41 43 4c 20 29 20 7b 00 20 20 20 20 ACL...");.....if.(.@ACL.).{.....
c380 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f }.........$RT::Logger->debug("do
c3a0 6e 65 2e 22 29 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 ne.");..........}.............}.
c3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 ................$RT::Logger->err
c3e0 6f 72 28 20 24 6d 73 67 20 29 20 75 6e 6c 65 73 73 20 24 72 65 74 75 72 6e 20 61 6e 64 20 24 4f or(.$msg.).unless.$return.and.$O
c400 43 46 2d 3e 49 64 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 CF->Id;.................);......
c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 62 6a 65 63 74 49 64 20 20 20 20 3d 3e 20 24 71 ...............ObjectId....=>.$q
c440 5f 6f 62 6a 2d 3e 49 64 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 75 _obj->Id,.....................Cu
c460 73 74 6f 6d 46 69 65 6c 64 20 3d 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 49 64 2c 00 20 20 20 stomField.=>.$new_entry->Id,....
c480 20 20 20 20 20 20 20 20 20 20 20 20 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d .............(.$return,.$msg.).=
c4a0 20 24 4f 43 46 2d 3e 43 72 65 61 74 65 28 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d .$OCF->Create(.................m
c4c0 79 20 24 4f 43 46 20 3d 20 52 54 3a 3a 4f 62 6a 65 63 74 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e y.$OCF.=.RT::ObjectCustomField->
c4e0 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 new(RT->SystemUser);............
c500 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b .....}.....................next;
c520 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 .....................$RT::Logger
c540 2d 3e 65 72 72 6f 72 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 71 75 65 75 65 20 22 2e ->error("Could.not.find.queue.".
c560 20 24 71 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 .$q.);.................unless.(.
c580 24 71 5f 6f 62 6a 2d 3e 49 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 $q_obj->Id.).{.................$
c5a0 71 5f 6f 62 6a 2d 3e 4c 6f 61 64 28 24 71 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 q_obj->Load($q);................
c5c0 20 6d 79 20 24 71 5f 6f 62 6a 20 3d 20 52 54 3a 3a 51 75 65 75 65 2d 3e 6e 65 77 28 52 54 2d 3e .my.$q_obj.=.RT::Queue->new(RT->
c5e0 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 SystemUser);.............for.my.
c600 24 71 20 28 40 71 75 65 75 65 73 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 $q.(@queues).{..............}...
c620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 63 66 2d 3e 43 72 65 61 74 65 28 20 43 75 73 74 ..............$ocf->Create(.Cust
c640 6f 6d 46 69 65 6c 64 20 3d 3e 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 49 64 20 29 3b 00 20 20 20 omField.=>.$new_entry->Id.);....
c660 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6f 63 66 20 3d 20 52 54 3a 3a 4f 62 6a 65 63 .............my.$ocf.=.RT::Objec
c680 74 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 tCustomField->new(RT->SystemUser
c6a0 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 21 40 71 75 65 75 65 73 20 26 26 20 );.............if.(.!@queues.&&.
c6c0 21 65 78 69 73 74 73 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 26 26 20 24 69 74 65 !exists.$item->{'Queue'}.&&.$ite
c6e0 6d 2d 3e 7b 4c 6f 6f 6b 75 70 54 79 70 65 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 m->{LookupType}.).{.............
c700 23 20 61 70 70 6c 79 20 62 79 20 64 65 66 61 75 6c 74 00 00 20 20 20 20 20 20 20 20 20 20 20 20 #.apply.by.default..............
c720 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 }.................$RT::Logger->e
c740 72 72 6f 72 28 20 24 6d 73 67 20 29 20 75 6e 6c 65 73 73 20 24 72 65 74 75 72 6e 3b 00 20 20 20 rror(.$msg.).unless.$return;....
c760 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 .............my.(.$return,.$msg.
c780 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 41 64 64 56 61 6c 75 65 28 25 24 76 61 6c 75 65 ).=.$new_entry->AddValue(%$value
c7a0 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 76 61 6c 75 65 );.............foreach.my.$value
c7c0 20 28 20 40 7b 24 76 61 6c 75 65 73 7d 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d .(.@{$values}.).{..............}
c7e0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 .................next;..........
c800 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 .......$RT::Logger->error(.$msg.
c820 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 28 20 24 72 65 74 75 72 6e 20 29 );.............unless(.$return.)
c840 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 .{.............my.(.$return,.$ms
c860 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 g.).=.$new_entry->Create(%$item)
c880 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..............}................
c8a0 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 20 ...}.....................delete.
c8c0 24 69 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 $item->{'BasedOn'};.............
c8e0 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 ........$RT::Logger->error("Unab
c900 6c 65 20 74 6f 20 6c 6f 61 64 20 43 46 20 24 69 74 65 6d 2d 3e 7b 42 61 73 65 64 4f 6e 7d 20 62 le.to.load.CF.$item->{BasedOn}.b
c920 65 63 61 75 73 65 20 6e 6f 20 4c 6f 6f 6b 75 70 54 79 70 65 20 77 61 73 20 73 70 65 63 69 66 69 ecause.no.LookupType.was.specifi
c940 65 64 2e 20 20 53 6b 69 70 70 69 6e 67 20 42 61 73 65 64 4f 6e 22 29 3b 00 20 20 20 20 20 20 20 ed...Skipping.BasedOn");........
c960 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........}.else.{...............
c980 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......}.........................
c9a0 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 3b 00 20 20 20 20 20 delete.$item->{'BasedOn'};......
c9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e ...................$RT::Logger->
c9e0 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 6f 20 6c 6f 61 64 20 24 69 74 65 6d 2d 3e 7b 42 61 error("Unable.to.load.$item->{Ba
ca00 73 65 64 4f 6e 7d 20 61 73 20 61 20 24 69 74 65 6d 2d 3e 7b 4c 6f 6f 6b 75 70 54 79 70 65 7d 20 sedOn}.as.a.$item->{LookupType}.
ca20 43 46 2e 20 20 53 6b 69 70 70 69 6e 67 20 42 61 73 65 64 4f 6e 3a 20 24 6d 73 67 22 29 3b 00 20 CF...Skipping.BasedOn:.$msg");..
ca40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 ...................}.else.{.....
ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 27 42 61 73 ....................$item->{'Bas
ca80 65 64 4f 6e 27 7d 20 3d 20 24 62 61 73 65 64 6f 6e 2d 3e 49 64 3b 00 20 20 20 20 20 20 20 20 20 edOn'}.=.$basedon->Id;..........
caa0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6f 6b 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 ...........if.($ok).{...........
cac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
cae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 6f 6f 6b 75 70 54 79 70 65 20 3d 3e 20 ..................LookupType.=>.
cb00 24 69 74 65 6d 2d 3e 7b 27 4c 6f 6f 6b 75 70 54 79 70 65 27 7d 20 29 3b 00 20 20 20 20 20 20 20 $item->{'LookupType'}.);........
cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 24 6f 6b 2c 20 24 6d 73 67 20 29 20 3d 20 24 .............my.($ok,.$msg.).=.$
cb40 62 61 73 65 64 6f 6e 2d 3e 4c 6f 61 64 42 79 43 6f 6c 73 28 20 4e 61 6d 65 20 3d 3e 20 24 69 74 basedon->LoadByCols(.Name.=>.$it
cb60 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 em->{'BasedOn'},................
cb80 20 20 20 20 20 6d 79 20 24 62 61 73 65 64 6f 6e 20 3d 20 52 54 3a 3a 43 75 73 74 6f 6d 46 69 65 .....my.$basedon.=.RT::CustomFie
cba0 6c 64 2d 3e 6e 65 77 28 24 52 54 3a 3a 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 ld->new($RT::SystemUser);.......
cbc0 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 4c 6f 6f ..........}.elsif.(.$item->{'Loo
cbe0 6b 75 70 54 79 70 65 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kupType'}.).{...................
cc00 20 20 23 20 41 6c 72 65 61 64 79 20 68 61 76 65 20 61 6e 20 49 44 20 2d 2d 20 73 68 6f 75 6c 64 ..#.Already.have.an.ID.--.should
cc20 20 62 65 20 66 69 6e 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 .be.fine.................if.(.$i
cc40 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e 27 7d 20 3d 7e 20 2f 5e 5c 64 2b 24 2f 29 20 7b 00 20 tem->{'BasedOn'}.=~./^\d+$/).{..
cc60 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 42 61 73 65 64 4f 6e ...........if.(.$item->{'BasedOn
cc80 27 7d 20 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 '}.).{..............}...........
cca0 20 20 20 20 20 20 40 71 75 65 75 65 73 20 3d 20 40 7b 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d ......@queues.=.@{.delete.$item-
ccc0 3e 7b 27 51 75 65 75 65 27 7d 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 >{'Queue'}.};.................$i
cce0 74 65 6d 2d 3e 7b 27 4c 6f 6f 6b 75 70 54 79 70 65 27 7d 20 7c 7c 3d 20 27 52 54 3a 3a 51 75 65 tem->{'LookupType'}.||=.'RT::Que
cd00 75 65 2d 52 54 3a 3a 54 69 63 6b 65 74 27 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 ue-RT::Ticket';.............if.(
cd20 20 65 78 69 73 74 73 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 26 26 20 72 65 66 20 .exists.$item->{'Queue'}.&&.ref.
cd40 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 $item->{'Queue'}.).{............
cd60 20 23 20 69 66 20 72 65 66 20 74 68 65 6e 20 69 74 27 73 20 6c 69 73 74 20 6f 66 20 71 75 65 75 .#.if.ref.then.it's.list.of.queu
cd80 65 73 2c 20 73 6f 20 77 65 20 64 6f 20 74 68 69 6e 67 73 20 6f 75 72 73 65 6c 66 00 20 20 20 20 es,.so.we.do.things.ourself.....
cda0 20 20 20 20 20 20 20 20 6d 79 20 40 71 75 65 75 65 73 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 ........my.@queues;.............
cdc0 20 6d 79 20 24 76 61 6c 75 65 73 20 20 20 20 3d 20 64 65 6c 65 74 65 20 24 69 74 65 6d 2d 3e 7b .my.$values....=.delete.$item->{
cde0 27 56 61 6c 75 65 73 27 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 'Values'};.............my.$new_e
ce00 6e 74 72 79 20 3d 20 52 54 3a 3a 43 75 73 74 6f 6d 46 69 65 6c 64 2d 3e 6e 65 77 28 20 52 54 2d ntry.=.RT::CustomField->new(.RT-
ce20 3e 53 79 73 74 65 6d 55 73 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 >SystemUser.);.........for.my.$i
ce40 74 65 6d 20 28 20 40 43 75 73 74 6f 6d 46 69 65 6c 64 73 20 29 20 7b 00 20 20 20 20 20 20 20 20 tem.(.@CustomFields.).{.........
ce60 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 63 75 73 $RT::Logger->debug("Creating.cus
ce80 74 6f 6d 20 66 69 65 6c 64 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 43 75 73 74 6f tom.fields...");.....if.(.@Custo
cea0 6d 46 69 65 6c 64 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c mFields.).{.....}.........$RT::L
cec0 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d ogger->debug("done.");.........}
cee0 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .............}.................$
cf00 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 RT::Logger->debug(.$return..".".
cf20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 );.............}.else.{.........
cf40 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 ........$RT::Logger->error(.$msg
cf60 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e .);.............unless.(.$return
cf80 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 .).{.............my.(.$return,.$
cfa0 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 msg.).=.$new_entry->Create(%$ite
cfc0 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 m);.............my.$new_entry.=.
cfe0 52 54 3a 3a 51 75 65 75 65 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 RT::Queue->new(RT->SystemUser);.
d000 61 64 00 00 0c 00 00 00 bc 01 00 00 00 10 00 00 65 00 00 00 00 00 00 00 d5 0f 00 00 9b 0f 00 00 ad..............e...............
d020 68 0f 00 00 53 0f 00 00 2c 0f 00 00 1e 0f 00 00 1d 0f 00 00 bd 0e 00 00 bc 0e 00 00 91 0e 00 00 h...S...,.......................
d040 65 0e 00 00 2c 0e 00 00 eb 0d 00 00 a5 0d 00 00 5c 0d 00 00 11 0d 00 00 c7 0c 00 00 80 0c 00 00 e...,...........\...............
d060 38 0c 00 00 0b 0c 00 00 f9 0b 00 00 ad 0b 00 00 68 0b 00 00 4f 0b 00 00 19 0b 00 00 07 0b 00 00 8...............h...O...........
d080 df 0a 00 00 45 0a 00 00 2b 0a 00 00 19 0a 00 00 04 0a 00 00 cc 09 00 00 88 09 00 00 67 09 00 00 ....E...+...................g...
d0a0 11 09 00 00 f7 08 00 00 e5 08 00 00 d7 08 00 00 d6 08 00 00 bf 08 00 00 7a 08 00 00 4f 08 00 00 ........................z...O...
d0c0 2d 08 00 00 1e 08 00 00 fd 07 00 00 d1 07 00 00 c3 07 00 00 b0 07 00 00 7c 07 00 00 6e 07 00 00 -.......................|...n...
d0e0 64 07 00 00 3f 07 00 00 39 07 00 00 38 07 00 00 1d 07 00 00 e5 06 00 00 e4 06 00 00 bd 06 00 00 d...?...9...8...................
d100 7b 06 00 00 3c 06 00 00 1b 06 00 00 ef 05 00 00 e1 05 00 00 ce 05 00 00 9a 05 00 00 8c 05 00 00 {...<...........................
d120 82 05 00 00 81 05 00 00 5c 05 00 00 56 05 00 00 55 05 00 00 37 05 00 00 fc 04 00 00 fb 04 00 00 ........\...V...U...7...........
d140 d1 04 00 00 8c 04 00 00 4d 04 00 00 2c 04 00 00 00 04 00 00 f2 03 00 00 df 03 00 00 ab 03 00 00 ........M...,...................
d160 9d 03 00 00 93 03 00 00 92 03 00 00 6d 03 00 00 67 03 00 00 66 03 00 00 4e 03 00 00 19 03 00 00 ............m...g...f...N.......
d180 18 03 00 00 f4 02 00 00 b5 02 00 00 76 02 00 00 55 02 00 00 29 02 00 00 1b 02 00 00 08 02 00 00 ............v...U...)...........
d1a0 d4 01 00 00 c6 01 00 00 bc 01 00 00 bb 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 ................................
d1c0 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 ....}.............}.............
d1e0 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 ....$RT::Logger->debug(.$return.
d200 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 .".".);.............else.{......
d220 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f .......}.................$RT::Lo
d240 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 gger->error(.$msg.);............
d260 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 .unless.(.$return.).{...........
d280 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e ..my.(.$return,.$msg.).=.$new_en
d2a0 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 try->Create(%$item);............
d2c0 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 54 65 6d 70 6c 61 74 65 2d 3e 6e .my.$new_entry.=.RT::Template->n
d2e0 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 ew(RT->SystemUser);.........for.
d300 6d 79 20 24 69 74 65 6d 20 28 40 54 65 6d 70 6c 61 74 65 73 29 20 7b 00 00 20 20 20 20 20 20 20 my.$item.(@Templates).{.........
d320 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 74 65 .$RT::Logger->debug("Creating.te
d340 6d 70 6c 61 74 65 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 54 65 6d 70 6c 61 74 65 mplates...");.....if.(.@Template
d360 73 20 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 s.).{......}.........$RT::Logger
d380 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 ->debug("done.");..........}....
d3a0 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a .........}.................$RT::
d3c0 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 Logger->debug(.$return..".".);..
d3e0 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 ...........else.{.............}.
d400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 ................$RT::Logger->err
d420 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 or(.$msg.);.............unless.(
d440 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 .$return.).{.............my.(.$r
d460 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 eturn,.$msg.).=.$new_entry->Crea
d480 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f te(%$item);.............my.$new_
d4a0 65 6e 74 72 79 20 3d 20 52 54 3a 3a 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 2d 3e 6e 65 77 28 entry.=.RT::ScripCondition->new(
d4c0 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 RT->SystemUser);.........for.my.
d4e0 24 69 74 65 6d 20 28 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 29 20 7b 00 00 20 20 20 20 $item.(@ScripConditions).{......
d500 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 ....$RT::Logger->debug("Creating
d520 20 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 .ScripConditions...");.....if.(.
d540 40 53 63 72 69 70 43 6f 6e 64 69 74 69 6f 6e 73 20 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 @ScripConditions.).{......}.....
d560 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b ....$RT::Logger->debug("done.");
d580 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 ..........}.............}.......
d5a0 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 ..........$RT::Logger->debug(.$r
d5c0 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b eturn..".".);.............else.{
d5e0 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 .............}.................$
d600 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 20 20 RT::Logger->error(.$msg.);......
d620 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 20 20 .......unless.(.$return.).{.....
d640 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 ........my.(.$return,.$msg.).=.$
d660 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 25 24 69 74 65 6d 29 3b 00 20 20 20 20 20 new_entry->Create(%$item);......
d680 20 20 20 20 20 20 20 6d 79 20 24 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 53 63 72 69 70 .......my.$new_entry.=.RT::Scrip
d6a0 41 63 74 69 6f 6e 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 Action->new(RT->SystemUser);....
d6c0 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d 20 28 40 53 63 72 69 70 41 63 74 69 6f 6e 73 .....for.my.$item.(@ScripActions
d6e0 29 20 7b 00 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 ).{..........$RT::Logger->debug(
d700 22 43 72 65 61 74 69 6e 67 20 53 63 72 69 70 41 63 74 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 "Creating.ScripActions...");....
d720 20 69 66 20 28 20 40 53 63 72 69 70 41 63 74 69 6f 6e 73 20 29 20 7b 00 00 20 20 20 20 7d 00 20 .if.(.@ScripActions.).{......}..
d740 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e .......$RT::Logger->debug("done.
d760 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 ");.........}.............}.....
d780 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 ............$RT::Logger->debug(.
d7a0 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 $return..".".);.............else
d7c0 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .{.............}................
d7e0 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 20 20 .$RT::Logger->error(.$msg.);....
d800 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 29 20 7b 00 20 20 .........unless.(.$return.).{...
d820 20 20 20 20 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 62 6a ..........);.................Obj
d840 65 63 74 20 3d 3e 20 24 6f 62 6a 65 63 74 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 ect.=>.$object.................R
d860 69 67 68 74 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 52 69 67 68 74 27 7d 2c 00 20 20 20 20 20 20 ight.=>.$item->{'Right'},.......
d880 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d 73 67 20 29 20 3d 20 24 70 72 ......my.(.$return,.$msg.).=.$pr
d8a0 69 6e 63 2d 3e 50 72 69 6e 63 69 70 61 6c 4f 62 6a 2d 3e 47 72 61 6e 74 52 69 67 68 74 28 00 20 inc->PrincipalObj->GrantRight(..
d8c0 20 20 20 20 20 20 20 20 20 20 20 23 20 47 72 61 6e 74 20 69 74 00 00 20 20 20 20 20 20 20 20 20 ...........#.Grant.it...........
d8e0 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 ...}.................}..........
d900 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........next;................
d920 20 20 20 20 20 52 54 2d 3e 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 .....RT->Logger->error("Unable.t
d940 6f 20 6c 6f 61 64 20 75 73 65 72 3a 20 24 69 74 65 6d 2d 3e 7b 55 73 65 72 49 64 7d 20 3a 20 24 o.load.user:.$item->{UserId}.:.$
d960 6d 73 67 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 msg");.................unless.(.
d980 24 6f 6b 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 24 6f 6b 2c $ok.).{.................my.($ok,
d9a0 20 24 6d 73 67 29 20 3d 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 28 20 24 69 74 65 6d 2d 3e 7b 27 .$msg).=.$princ->Load(.$item->{'
d9c0 55 73 65 72 49 64 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 UserId'}.);.................$pri
d9e0 6e 63 20 3d 20 52 54 3a 3a 55 73 65 72 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 nc.=.RT::User->new(RT->SystemUse
da00 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 r);.............}.else.{........
da20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e .........}.....................n
da40 65 78 74 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 54 2d 3e 4c 6f 67 ext;.....................RT->Log
da60 67 65 72 2d 3e 65 72 72 6f 72 28 22 55 6e 61 62 6c 65 20 74 6f 20 6c 6f 61 64 20 47 72 6f 75 70 ger->error("Unable.to.load.Group
da80 3a 20 47 72 6f 75 70 44 6f 6d 61 69 6e 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 47 72 6f 75 70 44 6f :.GroupDomain.=>.$item->{GroupDo
daa0 6d 61 69 6e 7d 2c 20 47 72 6f 75 70 49 64 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 47 72 6f 75 70 49 main},.GroupId.=>.$item->{GroupI
dac0 64 7d 2c 20 51 75 65 75 65 20 3d 3e 20 24 69 74 65 6d 2d 3e 7b 51 75 65 75 65 7d 22 29 3b 00 20 d},.Queue.=>.$item->{Queue}");..
dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 70 72 69 6e 63 2d 3e ...............unless.(.$princ->
db00 49 64 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 Id.).{.................}........
db20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 28 20 24 69 74 65 6d 2d 3e ...........$princ->Load(.$item->
db40 7b 27 47 72 6f 75 70 49 64 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d {'GroupId'}.);.................}
db60 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .else.{.........................
db80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 65 75 65 20 3d 3e 20 24 ......................Queue.=>.$
dba0 6f 62 6a 65 63 74 2d 3e 69 64 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 object->id);...................$
dbc0 70 72 69 6e 63 2d 3e 4c 6f 61 64 51 75 65 75 65 52 6f 6c 65 47 72 6f 75 70 28 20 54 79 70 65 20 princ->LoadQueueRoleGroup(.Type.
dbe0 3d 3e 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 54 79 70 65 27 7d 2c 00 20 20 20 20 20 20 20 =>.$item->{'GroupType'},........
dc00 20 20 20 20 20 20 20 20 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........{......................
dc20 20 20 20 20 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 00 20 20 20 20 20 20 20 20 .....$item->{'Queue'}.).........
dc40 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 ........}.elsif.(.$item->{'Group
dc60 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 52 54 3a 3a 51 75 65 75 65 2d 52 6f 6c 65 27 20 26 26 00 Domain'}.eq.'RT::Queue-Role'.&&.
dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 53 79 ..................$princ->LoadSy
dca0 73 74 65 6d 52 6f 6c 65 47 72 6f 75 70 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 54 79 70 stemRoleGroup(.$item->{'GroupTyp
dcc0 65 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 e'}.);.................}.elsif.(
dce0 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 52 54 3a 3a .$item->{'GroupDomain'}.eq.'RT::
dd00 53 79 73 74 65 6d 2d 52 6f 6c 65 27 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 System-Role'.).{................
dd20 20 20 20 24 70 72 69 6e 63 2d 3e 4c 6f 61 64 53 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 47 72 6f ...$princ->LoadSystemInternalGro
dd40 75 70 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 54 79 70 65 27 7d 20 29 3b 00 20 20 20 20 up(.$item->{'GroupType'}.);.....
dd60 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 47 ............}.elsif.(.$item->{'G
dd80 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 53 79 73 74 65 6d 49 6e 74 65 72 6e 61 6c 27 roupDomain'}.eq.'SystemInternal'
dda0 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 6e 63 2d 3e 4c .).{...................$princ->L
ddc0 6f 61 64 55 73 65 72 44 65 66 69 6e 65 64 47 72 6f 75 70 28 20 24 69 74 65 6d 2d 3e 7b 27 47 72 oadUserDefinedGroup(.$item->{'Gr
dde0 6f 75 70 49 64 27 7d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 oupId'}.);.................if.(.
de00 24 69 74 65 6d 2d 3e 7b 27 47 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 65 71 20 27 55 73 65 72 44 $item->{'GroupDomain'}.eq.'UserD
de20 65 66 69 6e 65 64 27 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 72 69 efined'.).{.................$pri
de40 6e 63 20 3d 20 52 54 3a 3a 47 72 6f 75 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 nc.=.RT::Group->new(RT->SystemUs
de60 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 47 er);.............if.(.$item->{'G
de80 72 6f 75 70 44 6f 6d 61 69 6e 27 7d 20 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 47 roupDomain'}.).{.............#.G
dea0 72 6f 75 70 20 72 69 67 68 74 73 20 6f 72 20 75 73 65 72 20 72 69 67 68 74 73 3f 00 00 20 20 20 roup.rights.or.user.rights?.....
dec0 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 22 43 6f 75 .........$RT::Logger->error("Cou
dee0 6c 64 6e 27 74 20 6c 6f 61 64 20 6f 62 6a 65 63 74 22 29 20 61 6e 64 20 6e 65 78 74 20 75 6e 6c ldn't.load.object").and.next.unl
df00 65 73 73 20 24 6f 62 6a 65 63 74 20 61 6e 64 20 24 6f 62 6a 65 63 74 2d 3e 49 64 3b 00 00 20 20 ess.$object.and.$object->Id;....
df20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a ..........}.................$obj
df40 65 63 74 20 3d 20 24 52 54 3a 3a 53 79 73 74 65 6d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d ect.=.$RT::System;.............}
df60 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 2d .else.{.................$object-
df80 3e 4c 6f 61 64 28 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 3b 00 20 20 20 20 20 >Load(.$item->{'Queue'}.);......
dfa0 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 65 63 74 20 3d 20 52 54 3a 3a 51 75 65 75 65 2d 3e ...........$object.=.RT::Queue->
dfc0 6e 65 77 28 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 new(RT->SystemUser);............
dfe0 20 7d 20 65 6c 73 69 66 20 28 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 29 20 7b 00 .}.elsif.(.$item->{'Queue'}.).{.
e000 61 64 00 00 02 00 00 00 f6 01 00 00 00 10 00 00 76 00 00 00 00 00 00 00 db 0f 00 00 d5 0f 00 00 ad..............v...............
e020 c0 0f 00 00 8e 0f 00 00 8d 0f 00 00 6c 0f 00 00 30 0f 00 00 2f 0f 00 00 c7 0e 00 00 7f 0e 00 00 ............l...0.../...........
e040 7e 0e 00 00 56 0e 00 00 04 0e 00 00 df 0d 00 00 af 0d 00 00 9d 0d 00 00 86 0d 00 00 4e 0d 00 00 ~...V.......................N...
e060 3c 0d 00 00 2e 0d 00 00 24 0d 00 00 ff 0c 00 00 f9 0c 00 00 e0 0c 00 00 aa 0c 00 00 77 0c 00 00 <.......$...................w...
e080 76 0c 00 00 51 0c 00 00 ff 0b 00 00 e4 0b 00 00 a4 0b 00 00 83 0b 00 00 57 0b 00 00 49 0b 00 00 v...Q...................W...I...
e0a0 36 0b 00 00 02 0b 00 00 f4 0a 00 00 ea 0a 00 00 c5 0a 00 00 bf 0a 00 00 ab 0a 00 00 73 0a 00 00 6...........................s...
e0c0 5a 0a 00 00 44 0a 00 00 26 0a 00 00 db 09 00 00 c4 09 00 00 ba 09 00 00 95 09 00 00 8f 09 00 00 Z...D...&.......................
e0e0 8e 09 00 00 3f 09 00 00 f4 08 00 00 a5 08 00 00 71 08 00 00 4c 08 00 00 15 08 00 00 d6 07 00 00 ....?...........q...L...........
e100 d0 07 00 00 cf 07 00 00 92 07 00 00 91 07 00 00 49 07 00 00 05 07 00 00 be 06 00 00 96 06 00 00 ................I...............
e120 94 06 00 00 93 06 00 00 7c 06 00 00 7b 06 00 00 42 06 00 00 41 06 00 00 3c 06 00 00 3b 06 00 00 ........|...{...B...A...<...;...
e140 25 06 00 00 11 06 00 00 10 06 00 00 f3 05 00 00 de 05 00 00 bd 05 00 00 99 05 00 00 73 05 00 00 %...........................s...
e160 37 05 00 00 31 05 00 00 30 05 00 00 03 05 00 00 d1 04 00 00 b4 04 00 00 b2 04 00 00 b1 04 00 00 7...1...0.......................
e180 9d 04 00 00 9c 04 00 00 4d 04 00 00 ff 03 00 00 ab 03 00 00 aa 03 00 00 a5 03 00 00 a4 03 00 00 ........M.......................
e1a0 91 03 00 00 7b 03 00 00 7a 03 00 00 58 03 00 00 56 03 00 00 55 03 00 00 3a 03 00 00 39 03 00 00 ....{...z...X...V...U...:...9...
e1c0 ec 02 00 00 a0 02 00 00 7b 02 00 00 7a 02 00 00 75 02 00 00 74 02 00 00 5a 02 00 00 41 02 00 00 ........{...z...u...t...Z...A...
e1e0 28 02 00 00 27 02 00 00 f8 01 00 00 f6 01 00 00 00 00 00 00 00 00 7d 00 20 20 20 20 70 75 73 68 (...'.................}.....push
e200 20 40 7b 20 24 73 65 6c 66 2d 3e 7b 51 75 65 72 79 48 69 73 74 6f 72 79 7d 20 7d 2c 20 24 72 65 .@{.$self->{QueryHistory}.},.$re
e220 71 75 65 73 74 3b 00 00 20 20 20 20 6d 79 20 24 72 65 71 75 65 73 74 20 3d 20 73 68 69 66 74 3b quest;......my.$request.=.shift;
e240 00 20 20 20 20 6d 79 20 24 73 65 6c 66 20 20 20 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 41 64 .....my.$self....=.shift;.sub.Ad
e260 64 52 65 71 75 65 73 74 54 6f 48 69 73 74 6f 72 79 20 7b 00 00 3d 63 75 74 00 00 73 71 6c 2c 20 dRequestToHistory.{..=cut..sql,.
e280 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 61 6e 64 20 64 75 72 61 74 69 6f 6e 29 2e 00 bind.parameters,.and.duration)..
e2a0 73 74 72 69 6e 67 29 20 61 6e 64 20 51 75 65 72 69 65 73 20 28 61 6e 20 61 72 72 61 79 20 72 65 string).and.Queries.(an.array.re
e2c0 66 65 72 65 6e 63 65 20 6f 66 20 61 72 72 61 79 73 2c 20 77 68 65 72 65 20 65 6c 65 6d 65 6e 74 ference.of.arrays,.where.element
e2e0 73 20 61 72 65 20 74 69 6d 65 2c 00 41 64 64 73 20 61 20 77 65 62 20 72 65 71 75 65 73 74 20 74 s.are.time,.Adds.a.web.request.t
e300 6f 20 74 68 65 20 71 75 65 72 79 20 68 69 73 74 6f 72 79 2e 20 49 74 20 6d 75 73 74 20 62 65 20 o.the.query.history..It.must.be.
e320 61 20 68 61 73 68 20 77 69 74 68 20 6b 65 79 73 20 50 61 74 68 20 28 61 00 00 3d 68 65 61 64 32 a.hash.with.keys.Path.(a..=head2
e340 20 41 64 64 52 65 71 75 65 73 74 54 6f 48 69 73 74 6f 72 79 00 00 7d 00 20 20 20 20 72 65 74 75 .AddRequestToHistory..}.....retu
e360 72 6e 20 24 73 65 6c 66 2d 3e 7b 51 75 65 72 79 48 69 73 74 6f 72 79 7d 3b 00 00 20 20 20 20 6d rn.$self->{QueryHistory};......m
e380 79 20 24 73 65 6c 66 20 3d 20 73 68 69 66 74 3b 00 73 75 62 20 51 75 65 72 79 48 69 73 74 6f 72 y.$self.=.shift;.sub.QueryHistor
e3a0 79 20 7b 00 00 3d 63 75 74 00 00 72 65 71 75 65 73 74 20 28 73 75 63 68 20 61 73 20 74 68 65 20 y.{..=cut..request.(such.as.the.
e3c0 55 52 4c 29 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 71 75 65 72 69 65 73 2e 20 59 6f 75 27 URL).and.a.list.of.queries..You'
e3e0 6c 6c 20 70 72 6f 62 61 62 6c 79 20 6e 6f 74 20 62 65 20 75 73 69 6e 67 20 74 68 69 73 2e 00 72 ll.probably.not.be.using.this..r
e400 65 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 73 20 6f 66 20 72 65 71 75 65 73 74 2e 20 45 61 epresents.a.lists.of.request..Ea
e420 63 68 20 72 65 71 75 65 73 74 20 69 73 20 61 20 68 61 73 68 20 77 69 74 68 20 6d 65 74 61 64 61 ch.request.is.a.hash.with.metada
e440 74 61 20 61 62 6f 75 74 20 74 68 65 00 52 65 74 75 72 6e 73 20 74 68 65 20 53 51 4c 20 71 75 65 ta.about.the.Returns.the.SQL.que
e460 72 79 20 68 69 73 74 6f 72 79 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 69 73 20 ry.history.associated.with.this.
e480 68 61 6e 64 6c 65 2e 20 54 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 61 72 72 61 79 00 00 3d 68 65 handle..The.top.level.array..=he
e4a0 61 64 32 20 51 75 65 72 79 48 69 73 74 6f 72 79 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e 20 24 ad2.QueryHistory..}.....return.$
e4c0 65 71 75 69 76 5f 67 72 6f 75 70 2d 3e 49 64 3b 00 20 20 20 20 24 65 71 75 69 76 5f 67 72 6f 75 equiv_group->Id;.....$equiv_grou
e4e0 70 2d 3e 4c 6f 61 64 41 43 4c 45 71 75 69 76 61 6c 65 6e 63 65 47 72 6f 75 70 28 20 24 69 64 20 p->LoadACLEquivalenceGroup(.$id.
e500 29 3b 00 20 20 20 20 6d 79 20 24 65 71 75 69 76 5f 67 72 6f 75 70 20 3d 20 52 54 3a 3a 47 72 6f );.....my.$equiv_group.=.RT::Gro
e520 75 70 2d 3e 6e 65 77 28 20 24 63 75 20 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 77 up->new(.$cu.);......}.........w
e540 61 72 6e 20 22 43 6f 75 6c 64 6e 27 74 20 6c 6f 61 64 20 52 54 5f 53 79 73 74 65 6d 20 75 73 65 arn."Couldn't.load.RT_System.use
e560 72 22 20 75 6e 6c 65 73 73 20 24 63 75 2d 3e 69 64 3b 00 20 20 20 20 20 20 20 20 24 63 75 2d 3e r".unless.$cu->id;.........$cu->
e580 4c 6f 61 64 42 79 4e 61 6d 65 28 27 52 54 5f 53 79 73 74 65 6d 27 29 3b 00 20 20 20 20 20 20 20 LoadByName('RT_System');........
e5a0 20 24 63 75 20 3d 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 2d 3e 6e 65 77 3b 00 20 20 20 .$cu.=.RT::CurrentUser->new;....
e5c0 20 20 20 20 20 72 65 71 75 69 72 65 20 52 54 3a 3a 43 75 72 72 65 6e 74 55 73 65 72 3b 00 20 20 .....require.RT::CurrentUser;...
e5e0 20 20 75 6e 6c 65 73 73 20 28 20 24 63 75 20 29 20 7b 00 20 20 20 20 6d 79 20 24 63 75 20 3d 20 ..unless.(.$cu.).{.....my.$cu.=.
e600 52 54 2d 3e 53 79 73 74 65 6d 55 73 65 72 3b 00 00 20 20 20 20 6d 79 20 24 69 64 20 3d 20 73 68 RT->SystemUser;......my.$id.=.sh
e620 69 66 74 3b 00 73 75 62 20 41 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 20 7b 00 00 3d 63 75 74 ift;.sub.ACLEquivGroupId.{..=cut
e640 00 00 47 69 76 65 6e 20 61 20 75 73 65 72 69 64 2c 20 72 65 74 75 72 6e 20 74 68 61 74 20 75 73 ..Given.a.userid,.return.that.us
e660 65 72 27 73 20 61 63 6c 20 65 71 75 69 76 61 6c 65 6e 63 65 20 67 72 6f 75 70 00 00 3d 68 65 61 er's.acl.equivalence.group..=hea
e680 64 32 20 41 43 4c 45 71 75 69 76 47 72 6f 75 70 49 64 00 00 7d 00 20 20 20 20 72 65 74 75 72 6e d2.ACLEquivGroupId..}.....return
e6a0 28 20 31 2c 20 27 44 6f 6e 65 20 69 6e 73 65 72 74 69 6e 67 20 64 61 74 61 27 20 29 3b 00 23 20 (.1,.'Done.inserting.data'.);.#.
e6c0 61 6e 79 77 61 79 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 72 65 74 75 72 6e 20 73 6f 6d 65 74 68 anyway,.we.need.to.return.someth
e6e0 69 6e 67 20 68 65 72 65 20 74 6f 20 74 65 6c 6c 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 69 ing.here.to.tell.if.everything.i
e700 73 20 6f 6b 00 23 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 28 30 2c 20 24 6d 73 67 29 20 69 s.ok.#.should.return.(0,.$msg).i
e720 66 20 65 72 72 6f 72 20 68 61 70 70 65 6e 73 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 f.error.happens.instead.of.just.
e740 77 61 72 6e 69 6e 67 2e 00 23 20 54 4f 44 4f 20 69 73 20 69 74 20 6f 6b 20 74 6f 20 72 65 74 75 warning..#.TODO.is.it.ok.to.retu
e760 72 6e 20 31 20 68 65 72 65 3f 20 49 66 20 73 6f 2c 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 63 rn.1.here?.If.so,.the.previous.c
e780 6f 64 65 73 20 69 6e 20 74 68 69 73 20 73 75 62 00 00 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 odes.in.this.sub......$RT::Logge
e7a0 72 2d 3e 64 65 62 75 67 28 22 44 6f 6e 65 20 73 65 74 74 69 6e 67 20 75 70 20 64 61 74 61 62 61 r->debug("Done.setting.up.databa
e7c0 73 65 20 63 6f 6e 74 65 6e 74 2e 22 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 se.content.");......}.........$R
e7e0 54 3a 3a 48 61 6e 64 6c 65 2d 3e 44 69 73 63 6f 6e 6e 65 63 74 28 29 20 75 6e 6c 65 73 73 20 24 T::Handle->Disconnect().unless.$
e800 64 62 5f 74 79 70 65 20 65 71 20 27 53 51 4c 69 74 65 27 3b 00 20 20 20 20 20 20 20 20 6d 79 20 db_type.eq.'SQLite';.........my.
e820 24 64 62 5f 74 79 70 65 20 3d 20 52 54 2d 3e 43 6f 6e 66 69 67 2d 3e 47 65 74 28 27 44 61 74 61 $db_type.=.RT->Config->Get('Data
e840 62 61 73 65 54 79 70 65 27 29 3b 00 20 20 20 20 69 66 20 28 20 24 61 72 67 73 7b 64 69 73 63 6f baseType');.....if.(.$args{disco
e860 6e 6e 65 63 74 5f 61 66 74 65 72 7d 20 29 20 7b 00 20 20 20 20 23 20 77 65 20 63 61 6e 20 70 72 nnect_after}.).{.....#.we.can.pr
e880 6f 76 69 64 65 20 61 20 77 61 79 20 74 6f 20 73 6b 69 70 20 74 68 65 20 73 69 64 65 2d 65 66 66 ovide.a.way.to.skip.the.side-eff
e8a0 65 63 74 2e 00 20 20 20 20 23 20 64 65 70 65 6e 64 73 20 6f 6e 20 69 74 20 74 6f 20 63 68 61 6e ect......#.depends.on.it.to.chan
e8c0 67 65 20 77 69 74 68 6f 75 74 20 73 69 67 6e 69 66 69 63 61 6e 74 20 74 65 73 74 69 6e 67 2e 20 ge.without.significant.testing..
e8e0 20 41 74 20 74 68 65 20 76 65 72 79 20 6c 65 61 73 74 2c 00 20 20 20 20 23 20 74 68 69 73 20 6d .At.the.very.least,.....#.this.m
e900 65 74 68 6f 64 20 77 61 73 20 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 72 74 2d 73 65 74 75 ethod.was.extracted.from.rt-setu
e920 70 2d 64 61 74 61 62 61 73 65 2e 20 20 48 6f 77 65 76 65 72 2c 20 74 6f 6f 20 6d 75 63 68 00 20 p-database...However,.too.much..
e940 20 20 20 23 20 58 58 58 3a 20 54 68 69 73 20 64 69 73 63 6f 6e 6e 65 63 74 20 64 6f 65 73 6e 27 ...#.XXX:.This.disconnect.doesn'
e960 74 20 72 65 61 6c 6c 79 20 62 65 6c 6f 6e 67 20 68 65 72 65 3b 20 69 74 27 73 20 61 20 72 65 6c t.really.belong.here;.it's.a.rel
e980 69 63 74 20 66 72 6f 6d 20 77 68 65 6e 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 ict.from.when......}.........$RT
e9a0 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 ::Logger->debug("done.");.......
e9c0 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 24 40 3b 00 20 20 20 20 20 ..}.................if.$@;......
e9e0 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 22 46 61 69 6c .......$RT::Logger->error(."Fail
ea00 65 64 20 74 6f 20 72 75 6e 20 6f 6e 65 20 6f 66 20 66 69 6e 61 6c 20 61 63 74 69 6f 6e 73 3a 20 ed.to.run.one.of.final.actions:.
ea20 24 40 22 20 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 20 7b 20 24 5f 2d 3e 28 29 3b $@".).............eval.{.$_->();
ea40 20 7d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 20 24 40 3b 00 20 20 20 20 20 20 .};.............local.$@;.......
ea60 20 20 66 6f 72 20 28 20 40 46 69 6e 61 6c 20 29 20 7b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a ..for.(.@Final.).{.........$RT::
ea80 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 52 75 6e 6e 69 6e 67 20 66 69 6e 61 6c 20 61 63 74 Logger->debug("Running.final.act
eaa0 69 6f 6e 73 2e 2e 2e 22 29 3b 00 20 20 20 20 69 66 20 28 20 40 46 69 6e 61 6c 20 29 20 7b 00 20 ions...");.....if.(.@Final.).{..
eac0 20 20 20 7d 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 ...}.........$RT::Logger->debug(
eae0 22 64 6f 6e 65 2e 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 "done.");.........}.............
eb00 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 }.................$RT::Logger->d
eb20 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 ebug(.$return..".".);...........
eb40 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 ..else.{.............}..........
eb60 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 .......$RT::Logger->error(.$msg.
eb80 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 );.............unless.(.$return.
eba0 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e 2c 20 24 6d ).{.............my.(.$return,.$m
ebc0 73 67 20 29 20 3d 20 24 6f 62 6a 2d 3e 41 64 64 41 74 74 72 69 62 75 74 65 20 28 25 24 69 74 65 sg.).=.$obj->AddAttribute.(%$ite
ebe0 6d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 62 6a 20 7c 7c 3d 20 24 73 79 73 3b 00 20 m);.............$obj.||=.$sys;..
ec00 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 6f 62 6a 20 3d 20 64 65 6c 65 74 65 20 24 69 74 65 ...........my.$obj.=.delete.$ite
ec20 6d 2d 3e 7b 4f 62 6a 65 63 74 7d 3b 20 23 20 58 58 58 3a 20 6d 61 6b 65 20 74 68 69 73 20 73 6f m->{Object};.#.XXX:.make.this.so
ec40 6d 65 74 68 69 6e 67 20 6c 6f 61 64 61 62 6c 65 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 mething.loadable.........for.my.
ec60 24 69 74 65 6d 20 28 40 41 74 74 72 69 62 75 74 65 73 29 20 7b 00 00 20 20 20 20 20 20 20 20 6d $item.(@Attributes).{..........m
ec80 79 20 24 73 79 73 20 3d 20 52 54 3a 3a 53 79 73 74 65 6d 2d 3e 6e 65 77 28 52 54 2d 3e 53 79 73 y.$sys.=.RT::System->new(RT->Sys
eca0 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 temUser);.........$RT::Logger->d
ecc0 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 61 74 74 72 69 62 75 74 65 73 2e 2e 2e 22 29 3b 00 ebug("Creating.attributes...");.
ece0 20 20 20 20 69 66 20 28 20 40 41 74 74 72 69 62 75 74 65 73 20 29 20 7b 00 20 20 20 20 7d 00 20 ....if.(.@Attributes.).{.....}..
ed00 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e .......$RT::Logger->debug("done.
ed20 22 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 ");.........}.............}.....
ed40 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............}...................
ed60 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 20 24 72 65 74 75 72 6e 20 2e 22 ..$RT::Logger->debug(.$return.."
ed80 2e 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 .".);.................else.{....
eda0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............}..................
edc0 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 65 72 72 6f 72 28 20 24 6d 73 67 20 29 3b 00 20 ...$RT::Logger->error(.$msg.);..
ede0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 20 24 72 65 74 75 72 6e 20 ...............unless.(.$return.
ee00 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 28 20 24 72 65 74 75 72 6e ).{.................my.(.$return
ee20 2c 20 24 6d 73 67 20 29 20 3d 20 24 6e 65 77 5f 65 6e 74 72 79 2d 3e 43 72 65 61 74 65 28 20 25 ,.$msg.).=.$new_entry->Create(.%
ee40 24 69 74 65 6d 2c 20 51 75 65 75 65 20 3d 3e 20 24 71 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 $item,.Queue.=>.$q.);...........
ee60 20 20 66 6f 72 65 61 63 68 20 6d 79 20 24 71 20 28 20 40 71 75 65 75 65 73 20 29 20 7b 00 00 20 ..foreach.my.$q.(.@queues.).{...
ee80 20 20 20 20 20 20 20 20 20 20 20 70 75 73 68 20 40 71 75 65 75 65 73 2c 20 30 20 75 6e 6c 65 73 ...........push.@queues,.0.unles
eea0 73 20 40 71 75 65 75 65 73 3b 20 23 20 61 64 64 20 67 6c 6f 62 61 6c 20 71 75 65 75 65 20 61 74 s.@queues;.#.add.global.queue.at
eec0 20 6c 65 61 73 74 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 40 71 75 65 75 65 73 20 3d 20 .least.............my.@queues.=.
eee0 72 65 66 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 65 71 20 27 41 52 52 41 59 27 3f ref.$item->{'Queue'}.eq.'ARRAY'?
ef00 20 40 7b 20 24 69 74 65 6d 2d 3e 7b 27 51 75 65 75 65 27 7d 20 7d 3a 20 24 69 74 65 6d 2d 3e 7b .@{.$item->{'Queue'}.}:.$item->{
ef20 27 51 75 65 75 65 27 7d 20 7c 7c 20 30 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 79 20 24 'Queue'}.||.0;..............my.$
ef40 6e 65 77 5f 65 6e 74 72 79 20 3d 20 52 54 3a 3a 53 63 72 69 70 2d 3e 6e 65 77 28 52 54 2d 3e 53 new_entry.=.RT::Scrip->new(RT->S
ef60 79 73 74 65 6d 55 73 65 72 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 20 6d 79 20 24 69 74 65 6d ystemUser);.........for.my.$item
ef80 20 28 40 53 63 72 69 70 73 29 20 7b 00 00 20 20 20 20 20 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 .(@Scrips).{..........$RT::Logge
efa0 72 2d 3e 64 65 62 75 67 28 22 43 72 65 61 74 69 6e 67 20 73 63 72 69 70 73 2e 2e 2e 22 29 3b 00 r->debug("Creating.scrips...");.
efc0 20 20 20 20 69 66 20 28 20 40 53 63 72 69 70 73 20 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 ....if.(.@Scrips.).{.....}......
efe0 20 20 20 24 52 54 3a 3a 4c 6f 67 67 65 72 2d 3e 64 65 62 75 67 28 22 64 6f 6e 65 2e 22 29 3b 00 ...$RT::Logger->debug("done.");.