Add consultation module assets and libraries

This commit is contained in:
Power BI Dev
2026-05-02 10:11:07 +07:00
parent a52c2a8462
commit 5fb1151fea
1239 changed files with 392281 additions and 0 deletions

3
konsultasi/.htaccess Normal file
View File

@@ -0,0 +1,3 @@
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://spota.untan.ac.id/konsultasi/$1 [R,L]

View File

@@ -0,0 +1,226 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$search = $_GET['search']['value'];
$length = intval($_GET['length']);
$start = intval($_GET['start']);
$draw = $_GET['draw'];
$verif = $_GET['verif'];
$searchText = '%'.$search.'%';
$conn = new createCon();
$dbh = $conn->connect();
$connBio = new createCon();
$dbhBio = $connBio->connectDbBio();
$connDosen = new createCon();
$dbhDosen = $connDosen->connectDbDosen();
if (!isset($_SESSION['konsulDosen'])) {
echo getUnauthorizedMessage();
exit();
}
$whereVerif = '';
if (!($verif == 'all')) {
$verif = intval($verif);
$whereVerif = " AND setuju = '$verif' ";
if (isset($_GET['kp'])) {
$whereVerif = " AND proposalApproved = '$verif' ";
}
}
$nipDosen = $_SESSION['konsulDosen']['nip'];
$sql = 'SELECT * FROM dosen';
$stmt = $dbhDosen->prepare($sql);
$stmt->execute();
$listDosen = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$listDosen[$row['id_dosen']] = $row['nama_dosen'];
}
$sql = 'SELECT * FROM dosen WHERE nip = :nip';
$stmt = $dbhDosen->prepare($sql);
$stmt->bindParam(':nip', $nipDosen);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getDataNotFoundMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$idDosen = $row['id_dosen'];
}
$whereJenisDosen = "AND (id_dosen_pa = '$idDosen' OR pembimbingLapangan = '$idDosen')";
if (isset($_GET['pa'])) {
$whereJenisDosen = "AND id_dosen_pa = '$idDosen'";
}
if (isset($_GET['kp'])) {
$whereJenisDosen = "AND pembimbingLapangan = '$idDosen'";
}
$sql = "SELECT kerja_praktek.*, nama_lengkap, id_dosen_pa, no_telp, no_hp, email FROM kerja_praktek LEFT JOIN bio_mahasiswa ON kerja_praktek.nim = bio_mahasiswa.nim WHERE (nama_lengkap LIKE :search OR kerja_praktek.nim LIKE :search2) $whereJenisDosen $whereVerif";
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':search', $searchText);
$stmt->bindParam(':search2', $searchText);
$stmt->execute();
$totalData = $stmt->rowCount();
$sqlLimit = "SELECT kerja_praktek.*, nama_lengkap, id_dosen_pa, no_telp, no_hp, email FROM kerja_praktek LEFT JOIN bio_mahasiswa ON kerja_praktek.nim = bio_mahasiswa.nim WHERE (nama_lengkap LIKE :search OR kerja_praktek.nim LIKE :search2) $whereJenisDosen $whereVerif ORDER BY waktuInput DESC LIMIT $start, $length";
$stmt = $dbhBio->prepare($sqlLimit);
$stmt->bindParam(':search', $searchText);
$stmt->bindParam(':search2', $searchText);
$stmt->execute();
$data = [];
$no = 1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$noPushed = $start + $no;
$idKerjaPraktek = convertKosong($row['idKerjaPraktek']);
$semester = convertKosong($row['semester']);
$tahun = convertKosong($row['tahun']);
$instansi = convertKosong($row['namaInstansi']);
$alamatInstansi = convertKosong($row['alamatInstansi']);
$idDosenPA = $row['id_dosen_pa'];
$topik = convertKosong($row['topik']);
$pimpinan = convertKosong($row['namaPimpinan']);
$pembimbing = convertKosong($row['pembimbingLapangan']);
$alamatInstansi = convertKosong($row['alamatInstansi']);
$noTelp = convertKosong($row['no_telp']);
$noHP = convertKosong($row['no_hp']);
$email = convertKosong($row['email']);
$proposalApproved = $row['proposalApproved'];
$catatanProposalKP = '';
if (isset($_GET['kp'])) {
$catatanProposalKP = $row['catatanRevisiProposal'];
}
$fileProposal = $row['proposal'];
if ($fileProposal != null && $fileProposal != '') {
$fileProposal = "../../biodata/berkas/$fileProposal";
}
$pembimbingKP = false;
if ($pembimbing === $idDosen) {
$pembimbingKP = true;
}
$pembimbingPA = false;
if ($idDosenPA === $idDosen) {
$pembimbingPA = true;
}
if (isset($listDosen[$pembimbing])) {
$namaPembimbing = $listDosen[$pembimbing];
} else {
$namaPembimbing = '-';
}
if ($pembimbing == '0') {
$namaPembimbing = 'Belum Ditentukan';
}
$narahubung = convertKosong($row['naraHubung']);
$telpNarahubung = convertKosong($row['telpNarahubung']);
$deskripsiKP = convertKosong($row['deskripsiKP']);
$catatanKajur = convertKosong($row['catatanKajur']);
$waktuInput = convertKosong($row['waktuInput']);
$setuju = convertKosong($row['setuju']);
$timestampSetuju = convertKosong($row['timestampSetuju']);
$setujuAdmin = convertKosong($row['setujuAdmin']);
$timestampSetujuAdmin = convertKosong($row['timestampSetujuAdmin']);
$catatanPA = $row['catatanPA'];
$dateTimeInput = '-';
if ($waktuInput !== '0') {
$dateTimeInput = date('d-m-Y H:i:s', $waktuInput);
}
$dateTimeSetuju = '-';
if ($timestampSetuju !== '0') {
$dateTimeSetuju = date('d-m-Y H:i:s', $timestampSetuju);
}
$dateTimeSetujuAdmin = '-';
if ($timestampSetujuAdmin !== '0') {
$dateTimeSetujuAdmin = date('d-m-Y H:i:s', $timestampSetujuAdmin);
}
$namaMahasiswa = $row['nama_lengkap'];
$nim = $row['nim'];
$waktuTerakhirKonsul = $row['waktuTerakhirKonsul'];
if ($waktuTerakhirKonsul == '') {
$diffDay = '';
$terakhirKonsulText = '-';
} else {
$timeAwal = intval($waktuTerakhirKonsul);
$timeAkhir = time();
$datediff = $timeAkhir - $timeAwal;
$diffDay = round($datediff / (60 * 60 * 24));
if ($diffDay < 0) {
$diffDay = 0;
}
$terakhirKonsulText = date('d-m-Y', $waktuTerakhirKonsul).'<br>('.$diffDay.' Hari)';
}
array_push($data, [
$noPushed,
$topik,
$instansi,
$semester,
$tahun,
$namaPembimbing,
$setuju,
$idKerjaPraktek,
$narahubung,
$telpNarahubung,
$deskripsiKP,
$catatanKajur,
$dateTimeInput,
$dateTimeSetuju,
$pimpinan,
$alamatInstansi,
$setujuAdmin,
$namaMahasiswa,
$nim,
$catatanPA,
$pembimbingKP,
$pembimbingPA,
$dateTimeSetujuAdmin,
$proposalApproved,
$fileProposal,
$catatanProposalKP,
intval($row['lanjutanDari']),
$noTelp,
$noHP,
$email,
]
);
++$no;
}
$recordsTotal = $totalData;
$res = [];
$res['draw'] = $draw;
$res['recordsTotal'] = $recordsTotal;
$res['recordsFiltered'] = $recordsTotal;
$res['data'] = $data;
echo json_encode($res);

View File

@@ -0,0 +1,107 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$search = $_GET['search']['value'];
$length = intval($_GET['length']);
$start = intval($_GET['start']);
$draw = $_GET['draw'];
$orderBy = $_GET['orderBy'];
$searchText = '%'.$search.'%';
$conn = new createCon();
$dbh = $conn->connect();
if (!isset($_SESSION['konsulDosen'])) {
echo getUnauthorizedMessage();
exit();
}
$orderQ = '';
switch ($orderBy) {
case 'judulTerbaru': $orderQ = ' ORDER BY tugas_akhir.idTugasAkhir DESC '; break;
case 'konsultasiTerbaru': $orderQ = ' ORDER BY waktuTerakhirKonsul DESC '; break;
case 'konsultasiTerlama': $orderQ = ' ORDER BY waktuTerakhirKonsul ASC '; break;
}
$whereSelesai = '';
if (isset($_GET['selesai'])) {
$selesai = $_GET['selesai'];
if ($selesai != 'all') {
$selesai = intval($selesai);
$whereSelesai = " AND selesai = '$selesai' ";
}
}
$nipDosen = $_SESSION['konsulDosen']['nip'];
$sql = "SELECT * FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim LEFT JOIN (SELECT * FROM konsultasi GROUP BY idTugasAkhir) t ON tugas_akhir.idTugasAkhir = t.idTugasAkhir WHERE (pemb1 = '$nipDosen' OR pemb2 = '$nipDosen') AND (judul LIKE :search OR nama LIKE :search2 OR tugas_akhir.nim LIKE :search3) AND keputusan = '1' $whereSelesai";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':search', $searchText);
$stmt->bindParam(':search2', $searchText);
$stmt->bindParam(':search3', $searchText);
$stmt->execute();
$totalData = $stmt->rowCount();
$sqlLimit = "SELECT tugas_akhir.idTugasAkhir, judul, nama, tugas_akhir.nim, semester, waktuTerakhirKonsul, selesai FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim LEFT JOIN (SELECT idTugasAkhir, MAX(timestamp) AS waktuTerakhirKonsul FROM konsultasi GROUP BY idTugasAkhir) t ON tugas_akhir.idTugasAkhir = t.idTugasAkhir WHERE (pemb1 = '$nipDosen' OR pemb2 = '$nipDosen') AND (judul LIKE :search OR nama LIKE :search2 OR tugas_akhir.nim LIKE :search3) AND keputusan = '1' $whereSelesai $orderQ LIMIT $start, $length";
$stmt = $dbh->prepare($sqlLimit);
$stmt->bindParam(':search', $searchText);
$stmt->bindParam(':search2', $searchText);
$stmt->bindParam(':search3', $searchText);
$stmt->execute();
$data = [];
$no = 1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$noPushed = $start + $no;
$idTA = $row['idTugasAkhir'];
$judul = $row['judul'];
$nama = $row['nama'];
$nim = $row['nim'];
$semester = $row['semester'];
$waktuTerakhirKonsul = $row['waktuTerakhirKonsul'];
if ($waktuTerakhirKonsul == '') {
$diffDay = '';
$terakhirKonsulText = '-';
} else {
$timeAwal = intval($waktuTerakhirKonsul);
$timeAkhir = time();
$datediff = $timeAkhir - $timeAwal;
$diffDay = round($datediff / (60 * 60 * 24));
if ($diffDay < 0) {
$diffDay = 0;
}
$terakhirKonsulText = date('d-m-Y', $waktuTerakhirKonsul).'<br>('.$diffDay.' Hari)';
}
array_push($data, [
$noPushed,
$judul,
$nama.'<br>NIM <b>'.$nim.'</b>',
$semester,
$terakhirKonsulText,
$idTA,
intval($row['selesai']),
]
);
++$no;
}
$recordsTotal = $totalData;
$res = [];
$res['draw'] = $draw;
$res['recordsTotal'] = $recordsTotal;
$res['recordsFiltered'] = $recordsTotal;
$res['data'] = $data;
echo json_encode($res);

View File

View File

@@ -0,0 +1,82 @@
<?php
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('GET', 'id');
$idPraoutline = intval($_GET['id']);
$sql = 'SELECT * FROM tugas_akhir WHERE idPraoutline = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $idPraoutline);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getKonsultasiNotFoundMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$pemb1 = $row['pemb1'];
$pemb2 = $row['pemb2'];
$idTugasAkhir = $row['idTugasAkhir'];
}
$sql = "SELECT * FROM dosen WHERE nip IN('$pemb1','$pemb2')";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$namaPemb1 = '-';
$namaPemb2 = '-';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nipDb = $row['nip'];
if ($nipDb == $pemb1) {
$namaPemb1 = $row['namaDosen'];
}
if ($nipDb == $pemb2) {
$namaPemb2 = $row['namaDosen'];
}
}
$sql = 'SELECT * FROM konsultasi WHERE idTugasAkhir = :id AND (timestampDosen1 > 0 OR timestampDosen2 > 0) ORDER BY timestamp';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $idTugasAkhir);
$stmt->execute();
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$timestamp = $row['timestamp'];
$waktuText = date('d-m-Y', $timestamp);
$topik = $row['topik'];
$timestampDosen1 = intval($row['timestampDosen1']);
$timestampDosen2 = intval($row['timestampDosen2']);
if($timestampDosen1 > 0){
$pemb = $namaPemb1;
}
if($timestampDosen2 > 0){
$pemb = $namaPemb2;
}
array_push($data, array(
'id' => $row['idKonsul'],
'waktu' => $waktuText,
'topik' => $topik,
'pembimbing' => $pemb,
));
}
echo json_encode(utf8ize(array(
'status' => 1,
'data' => $data,
)));

View File

View File

@@ -0,0 +1,96 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'topik');
checkKey('POST', 'tanggal');
$token = trim($_POST['token']);
$id = trim($_POST['id']);
$topik = trim($_POST['topik']);
$tanggal = trim($_POST['tanggal']);
$authorized = false;
$sql = 'SELECT * FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim WHERE token = :token AND idTugasAkhir = (SELECT idTugasAkhir FROM konsultasi WHERE idKonsul = :idKonsul)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$authorized = true;
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
if ($topik == '') {
echo getDataEmptyMessage();
exit();
}
$sql = 'SELECT * FROM konsultasi WHERE idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
$timestamp1 = 0;
$timestamp2 = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$timestamp1 = intval($row['timestampDosen1']);
$timestamp2 = intval($row['timestampDosen2']);
}
if ($timestamp1 > 0 || $timestamp2 > 0) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Tidak dapat mengedit data konsultasi ini, data telah di verifikasi pembimbing!!!',
)
);
exit();
}
$sql = 'UPDATE konsultasi SET tanggal = :tanggal, topik = :topik WHERE idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':tanggal', $tanggal);
$stmt->bindParam(':topik', $topik);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
)
);
} else {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil mengedit data konsultasi!!!',
)
);
}

View File

@@ -0,0 +1,158 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'tipe');
$token = trim($_POST['token']);
$tipe = strtolower(trim($_POST['tipe']));
$idTugasAkhir = intval($_POST['id']);
$mahasiswa = false;
$dosen = false;
switch ($tipe) {
case 'mahasiswa': $tabel = 'mahasiswa'; $mahasiswa = true; break;
case 'dosen': $tabel = 'dosen'; $dosen = true; break;
default: echo getUnknownTypeMessage(); exit();
}
$sql = "SELECT * FROM $tabel WHERE token = :token";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
$nim = '';
$nip = '';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($mahasiswa) {
$nim = $row['nim'];
}
if ($dosen) {
$nip = $row['nip'];
}
}
$authorized = false;
$sql = 'SELECT * FROM tugas_akhir WHERE idTugasAkhir = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $idTugasAkhir);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getKonsultasiNotFoundMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($mahasiswa) {
$nimTA = $row['nim'];
if ($nim == $nimTA) {
$authorized = true;
}
}
if ($dosen) {
$pemb1 = $row['pemb1'];
$pemb2 = $row['pemb2'];
if (($pemb1 == $nip) || ($pemb2 == $nip)) {
$authorized = true;
}
}
$judul = $row['judul'];
$nimDb = $row['nim'];
$pemb1 = $row['pemb1'];
$pemb2 = $row['pemb2'];
$peng1 = $row['peng1'];
$peng2 = $row['peng2'];
$semester = $row['semester'];
$tahunAjaran = $row['tahunAjaran'];
$tanggalKeputusan = $row['tanggalKeputusan'];
$waktuKeputusan = $row['waktuKeputusan'];
$selesai = $row['selesai'];
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
$sql = 'SELECT * FROM dosen WHERE nip IN (:pemb1, :pemb2, :peng1, :peng2)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':pemb1', $pemb1);
$stmt->bindParam(':pemb2', $pemb2);
$stmt->bindParam(':peng1', $peng1);
$stmt->bindParam(':peng2', $peng2);
$stmt->execute();
$namaPemb1 = '-';
$namaPemb2 = '-';
$namaPeng1 = '-';
$namaPeng2 = '-';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nipDosenDb = $row['nip'];
$namaDosenDb = $row['namaDosen'];
if ($pemb1 == $nipDosenDb) {
$namaPemb1 = $namaDosenDb;
}
if ($pemb2 == $nipDosenDb) {
$namaPemb2 = $namaDosenDb;
}
if ($peng1 == $nipDosenDb) {
$namaPeng1 = $namaDosenDb;
}
if ($peng2 == $nipDosenDb) {
$namaPeng2 = $namaDosenDb;
}
}
$sql = 'SELECT * FROM mahasiswa WHERE nim = :nim';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nim', $nimDb);
$stmt->execute();
$namaMahasiswaDb = '-';
$hp = '';
$email = '';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$namaMahasiswaDb = $row['nama'];
$hp = $row['hp'];
$email = $row['email'];
}
$tanggalKeputusanText = convertToDmy($tanggalKeputusan);
echo json_encode(utf8ize(array(
'status' => 1,
'tugasAkhir' => array(
'judul' => $judul,
'mahasiswa' => $namaMahasiswaDb,
'nim' => $nimDb,
'hp' => $hp,
'email' => $email,
'pembimbing1' => $namaPemb1,
'pembimbing2' => $namaPemb2,
'penguji1' => $namaPeng1,
'penguji2' => $namaPeng2,
'semester' => $semester,
'tahun' => $tahunAjaran,
'tanggalKeputusan' => $tanggalKeputusanText,
),
)));

View File

@@ -0,0 +1,183 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'tipe');
$token = trim($_POST['token']);
$tipe = strtolower(trim($_POST['tipe']));
$idTugasAkhir = intval($_POST['id']);
$mahasiswa = false;
$dosen = false;
switch ($tipe) {
case 'mahasiswa': $tabel = 'mahasiswa'; $mahasiswa = true; break;
case 'dosen': $tabel = 'dosen'; $dosen = true; break;
default: echo getUnknownTypeMessage(); exit();
}
$sql = "SELECT * FROM $tabel WHERE token = :token";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
$nim = '';
$nip = '';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($mahasiswa) {
$nim = $row['nim'];
}
if ($dosen) {
$nip = $row['nip'];
}
}
$authorized = false;
$sql = 'SELECT * FROM tugas_akhir WHERE idTugasAkhir = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $idTugasAkhir);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getKonsultasiNotFoundMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$pemb1 = $row['pemb1'];
$pemb2 = $row['pemb2'];
if ($mahasiswa) {
$nimTA = $row['nim'];
if ($nim == $nimTA) {
$authorized = true;
}
}
if ($dosen) {
$isPemb1 = false;
$isPemb2 = false;
if (($pemb1 == $nip)) {
$isPemb1 = true;
$authorized = true;
}
if (($pemb2 == $nip)) {
$isPemb2 = true;
$authorized = true;
}
}
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
$sql = "SELECT * FROM dosen WHERE nip IN('$pemb1','$pemb2')";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$namaPemb1 = '-';
$namaPemb2 = '-';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nipDb = $row['nip'];
if ($nipDb == $pemb1) {
$namaPemb1 = $row['namaDosen'];
}
if ($nipDb == $pemb2) {
$namaPemb2 = $row['namaDosen'];
}
}
$sql = 'SELECT * FROM konsultasi WHERE idTugasAkhir = :id ORDER BY DATE(tanggal) DESC';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $idTugasAkhir);
$stmt->execute();
$data = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$timestamp = $row['timestamp'];
$waktuText = $row['tanggal'];
$topik = $row['topik'];
$timestampDosen1 = intval($row['timestampDosen1']);
$timestampDosen2 = intval($row['timestampDosen2']);
$catatanPemb1 = $row['catatanDosen1'];
$catatanPemb2 = $row['catatanDosen2'];
if ($catatanPemb1 == '') {
$catatanPemb1 = 'Tidak Ada Catatan';
}
if ($catatanPemb2 == '') {
$catatanPemb2 = 'Tidak Ada Catatan';
}
$editable = true;
if ($timestampDosen1 > 0 || $timestampDosen2 > 0) {
$editable = false;
}
$verifPemb1 = false;
if ($timestampDosen1 > 0) {
$verifPemb1 = true;
}
$verifPemb2 = false;
if ($timestampDosen2 > 0) {
$verifPemb2 = true;
}
if ($dosen) {
if ($isPemb1) {
if ($verifPemb1) {
$editable = false;
} else {
$editable = true;
}
}
if ($isPemb2) {
if ($verifPemb2) {
$editable = false;
} else {
$editable = true;
}
}
}
array_push($data, [
'id' => $row['idKonsul'],
'waktu' => $waktuText,
'editable' => $editable,
'isPemb1' => $isPemb1,
'isPemb2' => $isPemb2,
'topik' => $topik,
'pemb1' => $namaPemb1,
'verifPemb1' => $verifPemb1,
'waktuPemb1' => date('d-m-Y H:i:s', $timestampDosen1),
'catatanPemb1' => $catatanPemb1,
'pemb2' => $namaPemb2,
'verifPemb2' => $verifPemb2,
'waktuPemb2' => date('d-m-Y H:i:s', $timestampDosen2),
'catatanPemb2' => $catatanPemb2,
]);
}
echo json_encode(utf8ize([
'status' => 1,
'data' => $data,
]));

View File

@@ -0,0 +1,82 @@
<?php
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
$token = trim($_POST['token']);
$sql = 'SELECT * FROM dosen WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
$authorized = false;
if ($stmt->rowCount() > 0) {
$authorized = true;
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nip = $row['nip'];
}
$sql = 'SELECT tugas_akhir.idTugasAkhir, judul, mahasiswa.nim, nama FROM tugas_akhir LEFT JOIN (SELECT * FROM konsultasi WHERE idKonsul IN (SELECT MAX(idKonsul) FROM konsultasi GROUP BY idTugasAkhir)) as t ON tugas_akhir.idTugasAkhir = t.idTugasAkhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim WHERE pemb1 = :nip1 OR pemb2 = :nip2 AND selesai = 0';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nip1', $nip);
$stmt->bindParam(':nip2', $nip);
$stmt->execute();
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$id = $row['idTugasAkhir'];
$judul = $row['judul'];
$nim = $row['nim'];
$nama = $row['nama'];
$lastKonsultasi = $row['timestamp'];
$diffDay = '-';
if ($lastKonsultasi == null) {
$untilNow = '-';
} else {
if ($lastKonsultasi == 0) {
$untilNow = '-';
} else {
$timeAwal = intval($lastKonsultasi);
$timeAkhir = time();
$datediff = $timeAkhir - $timeAwal;
$diffDay = round($datediff / (60 * 60 * 24));
if ($diffDay < 0) {
$diffDay = 0;
}
$untilNow = $diffDay;
}
}
$konsultasiTerakhir = 'BELUM PERNAH KONSULTASI';
if ($diffDay != '-') {
$konsultasiTerakhir = date('d-m-Y', $lastKonsultasi);
}
array_push($data, array(
'id' => $id,
'judul' => $judul,
'nim' => $nim,
'nama' => $nama,
'konsultasiTerakhir' => $konsultasiTerakhir,
'bedaHari' => $diffDay,
));
}
echo json_encode(utf8ize(array(
'status' => 1,
'data' => $data,
)));

View File

@@ -0,0 +1,39 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
$token = trim($_POST['token']);
$sql = 'SELECT * FROM mahasiswa WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getUnauthorizedMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nim = $row['nim'];
$nama = $row['nama'];
$email = $row['email'];
$hp = $row['hp'];
}
echo json_encode(utf8ize(array(
'status' => 1,
'nim' => $nim,
'nama' => $nama,
'email' => $email,
'hp' => $hp,
)));

View File

@@ -0,0 +1,68 @@
<?php
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'tipe');
$token = trim($_POST['token']);
$tipe = trim($_POST['tipe']);
$mahasiswa = false;
$dosen = false;
switch ($tipe) {
case 'mahasiswa': $tabel = 'mahasiswa'; $mahasiswa = true; break;
case 'dosen': $tabel = 'dosen'; $dosen = true; break;
default: echo getUnknownTypeMessage(); exit();
}
$sql = "SELECT * FROM $tabel WHERE token = :token";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
$authorized = false;
if ($stmt->rowCount() > 0) {
$authorized = true;
}
if ($mahasiswa) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nim = $row['nim'];
}
}
if ($dosen) {
checkKey('POST', 'nim');
$nim = $_POST['nim'];
}
$sql = 'SELECT * FROM tugas_akhir WHERE nim = :nim ORDER BY idTugasAkhir DESC';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nim', $nim);
$stmt->execute();
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$id = $row['idTugasAkhir'];
$judul = $row['judul'];
$semester = $row['semester'];
array_push($data, array(
'id' => $id,
'judul' => $judul,
'semester' => $semester,
));
}
echo json_encode(utf8ize(array(
'status' => 1,
'tugasAkhir' => $data,
)));

View File

@@ -0,0 +1,85 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'id');
$token = trim($_POST['token']);
$id = trim($_POST['id']);
$authorized = false;
$sql = 'SELECT * FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim WHERE token = :token AND idTugasAkhir = (SELECT idTugasAkhir FROM konsultasi WHERE idKonsul = :idKonsul)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$authorized = true;
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
$sql = 'SELECT * FROM konsultasi WHERE idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
$timestamp1 = 0;
$timestamp2 = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$timestamp1 = intval($row['timestampDosen1']);
$timestamp2 = intval($row['timestampDosen2']);
}
if ($timestamp1 > 0 || $timestamp2 > 0) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Tidak dapat menghapus data konsultasi ini, data telah di verifikasi pembimbing!!!',
)
);
exit();
}
$sql = 'DELETE FROM konsultasi WHERE idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
)
);
} else {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil menghapus data konsultasi!!!',
)
);
}

View File

View File

@@ -0,0 +1,211 @@
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
session_start();
include '../../conf/function.php';
include '../../conf/class.server.php';
include '../../conf/koneksiPDO.php';
header('Content-Type: application/json');
$server = new Server();
$urlServiceSpota = $server->getSpotaServiceURL();
$urlLoginSpota = $urlServiceSpota.'/login.php';
$conn = new createCon();
$dbh = $conn->connect();
$dbhSpota = $conn->connectSpota();
checkKey('POST', 'username');
checkKey('POST', 'password');
$username = trim(strtoupper($_POST['username']));
$password = md5($_POST['password']);
$loginSuccess = false;
$pesanError = 'Username dan password tidak cocok!!!';
$redir = '';
$sql = 'SELECT * FROM tbmhs WHERE nim = :nim AND password = :password';
$stmt = $dbhSpota->prepare($sql);
$stmt->bindParam(':nim', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$loginSuccess = true;
$level = 'mahasiswa';
$idMhs = $row['idmhs'];
$nim = $row['nim'];
$namaMhs = $row['nmLengkap'];
$email = $row['email'];
$foto = $row['foto'];
$urlFoto = "http://spota.untan.ac.id/img/$foto";
$data = [
'id' => $idMhs,
'nim' => $nim,
'nama' => $namaMhs,
'email' => $email,
'foto' => $foto,
];
}
if (!$loginSuccess) {
$sql = 'SELECT * FROM tbdosen WHERE nip = :nip AND password = :password';
$stmt = $dbhSpota->prepare($sql);
$stmt->bindParam(':nip', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
// if($username == "123456"){
// $x = '198908192019032012';
// $sql = 'SELECT * FROM tbdosen WHERE nip = :nip';
// $stmt = $dbh->prepare($sql);
// $stmt->bindParam(':nip', $x);
// $stmt->execute();
// }
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$loginSuccess = true;
$level = 'dosen';
$idDosen = $row['iddosen'];
$nip = $row['nip'];
$nama = $row['nmLengkap'];
$email = $row['email'];
$hp = $row['nohp'];
$foto = $row['foto'];
$jenisDosen = $row['jenis'];
$kajur = false;
if ($jenisDosen == 'K') {
$kajur = true;
}
$urlFoto = "http://spota.untan.ac.id/img/$foto";
$data = [
'id' => $idDosen,
'nip' => $nip,
'nama' => $nama,
'email' => $email,
'hp' => $hp,
'foto' => $foto,
'kajur' => $kajur,
];
}
}
if($loginSuccess){
$token = $token = createToken($username);
if ($level == 'mahasiswa') {
$loginSuccess = true;
$sql = 'SELECT * FROM mahasiswa WHERE nim = :nim';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nim', $username);
$stmt->execute();
if ($stmt->rowCount() == 0) {
$sql = 'INSERT INTO mahasiswa(idMahasiswa, nim, nama, email, token) VALUES(:idMhs, :nim, :nama, :email, :token)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idMhs', $data['id']);
$stmt->bindParam(':nim', $username);
$stmt->bindParam(':nama', $data['nama']);
$stmt->bindParam(':email', $data['email']);
$stmt->bindParam(':token', $token);
$stmt->execute();
} else {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$tokenDb = $row['token'];
$updateToken = false;
if ($tokenDb == null) {
$updateToken = true;
} else {
if ($tokenDb == '') {
$updateToken = true;
} else {
$token = $tokenDb;
}
}
if ($updateToken) {
$sql = 'UPDATE mahasiswa SET token = :token WHERE idMahasiswa = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $data['id']);
$stmt->bindParam(':token', $token);
$stmt->execute();
}
}
}
$data['token'] = $token;
$_SESSION['konsulMahasiswa'] = $data;
$redir = 'mahasiswa/';
} elseif ($level == 'dosen') {
$loginSuccess = true;
if($username === "123456"){
$username = "198908192019032012";
}
$sql = 'SELECT * FROM dosen WHERE nip = :nip';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nip', $username);
$stmt->execute();
if ($stmt->rowCount() == 0) {
$sql = 'INSERT INTO dosen(idDosen, nip, namaDosen, email, hp, token) VALUES(:idDosen, :nip, :nama, :email, :hp, :token)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idDosen', $data['id']);
$stmt->bindParam(':nip', $username);
$stmt->bindParam(':nama', $data['nama']);
$stmt->bindParam(':email', $data['email']);
$stmt->bindParam(':hp', $data['hp']);
$stmt->bindParam(':token', $token);
$stmt->execute();
} else {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$tokenDb = $row['token'];
$updateToken = false;
if ($tokenDb == null) {
$updateToken = true;
} else {
if ($tokenDb == '') {
$updateToken = true;
} else {
$token = $tokenDb;
}
}
if ($updateToken) {
$sql = 'UPDATE dosen SET token = :token WHERE idDosen = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $data['id']);
$stmt->bindParam(':token', $token);
$stmt->execute();
}
}
}
$data['token'] = $token;
$_SESSION['konsulDosen'] = $data;
$redir = 'dosen/';
} else {
echo json_encode(array('status' => 0, 'msg' => 'Tipe login user tidak diketahui.'));
}
}
if ($loginSuccess) {
echo json_encode(array('status' => 1, 'msg' => 'Login sukses!!!', 'data' => $data, 'redir' => $redir));
} else {
echo json_encode(array('status' => 0, 'msg' => $pesanError));
}

View File

@@ -0,0 +1,185 @@
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
session_start();
include '../../conf/function.php';
include '../../conf/class.server.php';
include '../../conf/koneksiPDO.php';
header('Content-Type: application/json');
$server = new Server();
$urlServiceSpota = $server->getSpotaServiceURL();
$urlLoginSpota = $urlServiceSpota.'/login.php';
echo $urlLoginSpota;
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'username');
checkKey('POST', 'password');
$username = trim(strtoupper($_POST['username']));
$password = $_POST['password'];
$loginSuccess = false;
$pesanError = 'Username dan password tidak cocok!!!';
$postData = array(
'username' => $username,
'password' => $password,
);
$postData = http_build_query($postData);
/**
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_URL, $urlLoginSpota);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$resultJSON = curl_exec($ch);
*/
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $postData
)
);
$context = stream_context_create($opts);
$resultJSON = file_get_contents($urlLoginSpota, false, $context);
$result = json_decode($resultJSON, 1);
/**
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
print_r($error_msg);
}
*/
$redir = '';
if (isset($result['status'])) {
$status = $result['status'];
if ($status === 1) {
$token = $token = createToken($username);
$level = $result['level'];
$data = $result['data'];
if ($level == 'mahasiswa') {
$loginSuccess = true;
$sql = 'SELECT * FROM mahasiswa WHERE nim = :nim';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nim', $username);
$stmt->execute();
if ($stmt->rowCount() == 0) {
$sql = 'INSERT INTO mahasiswa(idMahasiswa, nim, nama, email, token) VALUES(:idMhs, :nim, :nama, :email, :token)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idMhs', $data['id']);
$stmt->bindParam(':nim', $username);
$stmt->bindParam(':nama', $data['nama']);
$stmt->bindParam(':email', $data['email']);
$stmt->bindParam(':token', $token);
$stmt->execute();
} else {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$tokenDb = $row['token'];
$updateToken = false;
if ($tokenDb == null) {
$updateToken = true;
} else {
if ($tokenDb == '') {
$updateToken = true;
} else {
$token = $tokenDb;
}
}
if ($updateToken) {
$sql = 'UPDATE mahasiswa SET token = :token WHERE idMahasiswa = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $data['id']);
$stmt->bindParam(':token', $token);
$stmt->execute();
}
}
}
$data['token'] = $token;
$_SESSION['konsulMahasiswa'] = $data;
$redir = 'mahasiswa/';
} elseif ($level == 'dosen') {
$loginSuccess = true;
if($username === "123456"){
$username = "198908192019032012";
}
$sql = 'SELECT * FROM dosen WHERE nip = :nip';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':nip', $username);
$stmt->execute();
if ($stmt->rowCount() == 0) {
$sql = 'INSERT INTO dosen(idDosen, nip, namaDosen, email, hp, token) VALUES(:idDosen, :nip, :nama, :email, :hp, :token)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idDosen', $data['id']);
$stmt->bindParam(':nip', $username);
$stmt->bindParam(':nama', $data['nama']);
$stmt->bindParam(':email', $data['email']);
$stmt->bindParam(':hp', $data['hp']);
$stmt->bindParam(':token', $token);
$stmt->execute();
} else {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$tokenDb = $row['token'];
$updateToken = false;
if ($tokenDb == null) {
$updateToken = true;
} else {
if ($tokenDb == '') {
$updateToken = true;
} else {
$token = $tokenDb;
}
}
if ($updateToken) {
$sql = 'UPDATE dosen SET token = :token WHERE idDosen = :id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $data['id']);
$stmt->bindParam(':token', $token);
$stmt->execute();
}
}
}
$data['token'] = $token;
$_SESSION['konsulDosen'] = $data;
$redir = 'dosen/';
} else {
echo json_encode(array('status' => 0, 'msg' => 'Tipe login user tidak diketahui.'));
}
}
} else {
$pesanError = 'Tidak dapat terhubung ke server SPOTA.';
//spota down here
}
if ($loginSuccess) {
echo json_encode(array('status' => 1, 'msg' => 'Login sukses!!!', 'data' => $data, 'redir' => $redir));
} else {
echo json_encode(array('status' => 0, 'msg' => $pesanError));
}

View File

@@ -0,0 +1,48 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'email');
checkKey('POST', 'hp');
$token = trim($_POST['token']);
$email = trim($_POST['email']);
$hp = trim($_POST['hp']);
$sql = 'UPDATE mahasiswa SET email = :email, hp = :hp WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':hp', $hp);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
)
);
} else {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil mengubah data pribadi!!!',
)
);
}

View File

@@ -0,0 +1,77 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'topik');
checkKey('POST', 'tanggal');
$token = trim($_POST['token']);
$id = trim($_POST['id']);
$topik = trim($_POST['topik']);
$tanggal = trim($_POST['tanggal']);
$authorized = false;
$sql = 'SELECT * FROM tugas_akhir LEFT JOIN mahasiswa ON tugas_akhir.nim = mahasiswa.nim WHERE token = :token AND idTugasAkhir = :idTugasAkhir';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->bindParam(':idTugasAkhir', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$authorized = true;
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
if ($topik == '') {
echo getDataEmptyMessage();
exit();
}
$now = time();
$dateNow = date('d-m-Y', $now);
$sql = 'INSERT INTO konsultasi(tanggal, timestamp, idTugasAkhir, topik) VALUES (:tanggal, :timestamp, :idTA, :topik)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':tanggal', $tanggal);
$stmt->bindParam(':timestamp', $now);
$stmt->bindParam(':idTA', $id);
$stmt->bindParam(':topik', $topik);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
'error' => $error,
)
);
} else {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil menambah data konsultasi!!!',
)
);
}

View File

@@ -0,0 +1,143 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'verif');
checkKey('POST', 'catatan');
$token = $_POST['token'];
$id = $_POST['id'];
$verif = $_POST['verif'];
$catatan = $_POST['catatan'];
$conn = new createCon();
$dbh = $conn->connect();
$connBio = new createCon();
$dbhBio = $connBio->connectDbBio();
$connDosen = new createCon();
$dbhDosen = $connDosen->connectDbDosen();
$sql = 'SELECT * FROM dosen WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
if ($stmt->rowCount() === 0) {
echo getUnauthorizedMessage();
exit();
}
$sql = 'SELECT * FROM kerja_praktek WHERE idKerjaPraktek = :idKP';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idKP', $id);
$stmt->execute();
$lanjutan = false;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$lanjutanDari = intval($row['lanjutanDari']);
if($lanjutanDari > 0){
$lanjutan = true;
}
}
if($lanjutan){
$sql = 'SELECT * FROM kerja_praktek WHERE idKerjaPraktek = :idKP';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idKP', $lanjutanDari);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$sql = 'UPDATE kerja_praktek SET setujuAdmin = :setuju, timestampSetujuAdmin = :timestamp, catatanKajur = :catatan WHERE idKerjaPraktek = :id';
$stmt1 = $dbhBio->prepare($sql);
$stmt1->bindParam(':setuju', $row['setujuAdmin']);
$stmt1->bindParam(':timestamp', $row['timestampSetujuAdmin']);
$stmt1->bindParam(':catatan', row['catatanKajur']);
$stmt1->bindParam(':id', $id);
$stmt1->execute();
}
}
$time = time();
$sql = 'UPDATE kerja_praktek SET setuju = :setuju, timestampSetuju = :timestamp, catatanPA = :catatan WHERE idKerjaPraktek = :id';
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':setuju', $verif);
$stmt->bindParam(':timestamp', $time);
$stmt->bindParam(':catatan', $catatan);
$stmt->bindParam(':id', $id);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
[
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
]
);
} else {
if(!$lanjutan){
$sql = 'SELECT kerja_praktek.nim, nama_lengkap, topik, instansi FROM kerja_praktek LEFT JOIN bio_mahasiswa ON kerja_praktek.nim = bio_mahasiswa.nim WHERE idKerjaPraktek = :id';
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nimMahasiswa = $row['nim'];
$namaMahasiswa = $row['nama_lengkap'];
$topik = $row['topik'];
$namaInstansi = $row['instansi'];
}
$emailTo = [];
array_push($emailTo, 'tu@informatika.untan.ac.id');
//array_push($emailTo, 'apriefekon92@gmail.com');
array_push($emailTo, 'sholvariza@untan.ac.id');
$judulEmail = 'Data Kerja Praktek Baru';
$isiEmail = "Data kerja praktek mahasiswa $namaMahasiswa / $nimMahasiswa mengajukan kerja praktek dengan topik '$topik' di instansi $namaInstansi dan telah di verifikasi oleh dosen PA masing-masing.";
$ch = curl_init();
$emailParams = [];
$emailParams['to'] = json_encode($emailTo);
$emailParams['judul'] = $judulEmail;
$emailParams['content'] = $isiEmail;
$emailParams['from'] = 'system@informatika.untan.ac.id';
$postdata = $emailParams;
curl_setopt($ch, CURLOPT_URL, 'https://informatika.untan.ac.id/API/sendMail.php');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
}
}
echo json_encode(
[
'status' => 1,
'msg' => 'Berhasil melakukan verifikasi kerja praktek ini!!!',
]
);
}

View File

@@ -0,0 +1,125 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'catatan');
checkKey('POST', 'tanggal');
$token = trim($_POST['token']);
$id = trim($_POST['id']);
$catatan = trim($_POST['catatan']);
$tanggal = trim($_POST['tanggal']);
$authorized = false;
$sql = 'SELECT * FROM dosen WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$authorized = true;
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nipDosen = $row['nip'];
}
$sql = 'SELECT * FROM konsultasi LEFT JOIN tugas_akhir on konsultasi.idTugasAkhir = tugas_akhir.idTugasAkhir WHERE (pemb1 = :pemb1 OR pemb2 = :pemb2) AND idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':pemb1', $nipDosen);
$stmt->bindParam(':pemb2', $nipDosen);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getUnauthorizedMessage();
exit();
}
$pemb1 = false;
$pemb2 = false;
$timestampDosen = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$pemb1Db = $row['pemb1'];
$pemb2Db = $row['pemb2'];
if ($pemb1Db == $nipDosen) {
$pemb1 = true;
$timestampDosen = $row['timestampDosen1'];
}
if ($pemb2Db == $nipDosen) {
$pemb2 = true;
$timestampDosen = $row['timestampDosen2'];
}
}
/**
if ($timestampDosen > 0) {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil melakukan verifikasi konsultasi ini!!!',
)
);
exit();
}
*/
$now = time();
if ($pemb1) {
$sql = 'UPDATE konsultasi SET tanggal = :tanggal, timestampDosen1 = :timestamp, catatanDosen1 = :catatan WHERE idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':tanggal', $tanggal);
$stmt->bindParam(':timestamp', $now);
$stmt->bindParam(':catatan', $catatan);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
}
if ($pemb2) {
$sql = 'UPDATE konsultasi SET tanggal = :tanggal, timestampDosen2 = :timestamp, catatanDosen2 = :catatan WHERE idKonsul = :idKonsul';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':tanggal', $tanggal);
$stmt->bindParam(':timestamp', $now);
$stmt->bindParam(':catatan', $catatan);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
}
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
)
);
} else {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil melakukan verifikasi konsultasi ini!!!',
)
);
}

View File

@@ -0,0 +1,96 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
$conn = new createCon();
$dbh = $conn->connect();
$connBio = new createCon();
$dbhBio = $connBio->connectDbBio();
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'catatan');
checkKey('POST', 'tanggal');
$token = trim($_POST['token']);
$id = trim($_POST['id']);
$catatan = trim($_POST['catatan']);
$tanggal = trim($_POST['tanggal']);
$authorized = false;
$sql = 'SELECT * FROM dosen WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$authorized = true;
}
if (!$authorized) {
echo getUnauthorizedMessage();
exit();
}
$sql = 'SELECT * FROM konsultasi_kp WHERE idKonsul = :idKonsul';
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
if ($stmt->rowCount() == 0) {
echo getUnauthorizedMessage();
exit();
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$timestampDosen = $row['timestampVerif'];
}
if ($timestampDosen > 0) {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil melakukan verifikasi konsultasi ini!!!',
)
);
exit();
}
$now = time();
$sql = 'UPDATE konsultasi_kp SET tanggal = :tanggal, timestampVerif = :timestamp, catatanDosen = :catatan WHERE idKonsul = :idKonsul';
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':tanggal', $tanggal);
$stmt->bindParam(':timestamp', $now);
$stmt->bindParam(':catatan', $catatan);
$stmt->bindParam(':idKonsul', $id);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
array(
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
)
);
} else {
echo json_encode(
array(
'status' => 1,
'msg' => 'Berhasil melakukan verifikasi konsultasi ini!!!',
)
);
}

View File

@@ -0,0 +1,110 @@
<?php
session_start();
include '../../conf/koneksiPDO.php';
include '../../conf/function.php';
header('Content-Type: application/json');
checkKey('POST', 'token');
checkKey('POST', 'id');
checkKey('POST', 'verif');
checkKey('POST', 'catatan');
$token = $_POST['token'];
$id = $_POST['id'];
$verif = $_POST['verif'];
$catatan = $_POST['catatan'];
$conn = new createCon();
$dbh = $conn->connect();
$connBio = new createCon();
$dbhBio = $connBio->connectDbBio();
$connDosen = new createCon();
$dbhDosen = $connDosen->connectDbDosen();
$sql = 'SELECT * FROM dosen WHERE token = :token';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':token', $token);
$stmt->execute();
if ($stmt->rowCount() === 0) {
echo getUnauthorizedMessage();
exit();
}
$time = time();
$sql = 'UPDATE kerja_praktek SET proposalApproved = :setuju, timestampApproved = :timestamp, catatanRevisiProposal = :catatan WHERE idKerjaPraktek = :id';
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':setuju', $verif);
$stmt->bindParam(':timestamp', $time);
$stmt->bindParam(':catatan', $catatan);
$stmt->bindParam(':id', $id);
$stmt->execute();
$error = $stmt->errorInfo();
$isError = true;
if ($error[0] == '00000') {
$isError = false;
}
if ($isError) {
echo json_encode(
[
'status' => 0,
'msg' => 'Terjadi kesalahan teknis!!!',
]
);
} else {
$sql = 'SELECT kerja_praktek.nim, nama_lengkap, topik, instansi FROM kerja_praktek LEFT JOIN bio_mahasiswa ON kerja_praktek.nim = bio_mahasiswa.nim WHERE idKerjaPraktek = :id';
$stmt = $dbhBio->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nimMahasiswa = $row['nim'];
$namaMahasiswa = $row['nama_lengkap'];
$topik = $row['topik'];
$namaInstansi = $row['instansi'];
}
$emailTo = [];
array_push($emailTo, 'tu@informatika.untan.ac.id');
//array_push($emailTo, 'apriefekon92@gmail.com');
array_push($emailTo, 'sholvariza@untan.ac.id');
$judulEmail = 'Verifikasi Proposal oleh dosen pembimbing KP';
$isiEmail = "Proposal kerja praktek mahasiswa $namaMahasiswa / $nimMahasiswa telah di verifikasi oleh dosen KP masing-masing.";
$ch = curl_init();
$emailParams = [];
$emailParams['to'] = json_encode($emailTo);
$emailParams['judul'] = $judulEmail;
$emailParams['content'] = $isiEmail;
$emailParams['from'] = 'system@informatika.untan.ac.id';
$postdata = $emailParams;
curl_setopt($ch, CURLOPT_URL, 'https://informatika.untan.ac.id/API/sendMail.php');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
}
echo json_encode(
[
'status' => 1,
'msg' => 'Berhasil melakukan verifikasi kerja praktek ini!!!',
]
);
}

View File

@@ -0,0 +1,11 @@
<?php
session_start();
if (isset($_SESSION['konsulDosen'])) {
$_SESSION['konsulDosen'] = $_SESSION['konsulDosen'];
}
if (isset($_SESSION['konsulMahasiswa'])) {
$_SESSION['konsulMahasiswa'] = $_SESSION['konsulMahasiswa'];
}

View File

753
konsultasi/assets/untan.svg Normal file
View File

@@ -0,0 +1,753 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="192px" height="192px" viewBox="0 0 192 192" enable-background="new 0 0 192 192" xml:space="preserve"> <image id="image0" width="192" height="192" x="0" y="0"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAACA
AElEQVR42ux9d3hUxff3Z+69u+khkAQIEHpoUkVFpAhSRBAEEUEQpCh2RcSCiopiRVFBRbGACoKA
9KICUqQ36b2HJATS2+7eKef9Y+/dbEICCYL6/b2e59knsGXuzJlzzpw+wH9wrUEDYBR6r7phGC8a
hnHUMIwzhmE8CqBcEb9h//Tk/4P/4EqAAdDhJWQbApxOZ1en0zmDMZYGgPxfmqadcTgcExwOx/WF
xjIKjfMfXEX4T8JcXdCtv9J+w+FwXAegn5Syr1Iqzn6/fv36Zu/evTWPx4Off/6ZTpw44fD7zWoA
0zjnCwFkFjf2f/Af/BuA4WIVp6zD4bjfMIxfAXBYUr5KlSrmyJEj3Xv27OFEJIhIWi+xYcMGs3//
/u7AwECJgqfCu06ns36h8XX8J7z+g38YNORLZQCAYRi3OByOzxhjibCIOCQkRPbv39+1Zs0a0yb6
1atXi7vvvpvrui5CQ0NF3759xR9//CGISOTk5PBJkya569at60G+iuRxOBxzdV3vVGgO/9kJ/8Hf
DoV1+0qGYTzlcDi2wE+nv/HGGz3ffvut2zRNTkRy//794pFHHuHlypXjAQEBvF27dnzixIn83Xff
5S1atOAAeLly5cSrr74qMjIyBBGJtWvXmj169HADUPa4uq5vdjgcQwCEXmJO/8F/cFXBNmr9pe31
DodjsqZpPoM2LCxMPPzww+6DBw+aRCQuXLgg3nzzTVGjRg0eEBDA27dvz6dOnSpSUlIkESnKB3X6
9Gnx+uuv8+joaA5AdOvWTezYsUMQkUhISOCjRo1yly1b1qdO6bp+3DCMlwDE+M3pP0b4D64q2ITv
A13XbzcMYxFjzCeV69ev7548ebKHc86JSCxevFi0bNmSA+B169bl48eP5wkJCQWIXghBnHPinJOU
0scJUkr5008/8aZNm3IAok6dOmLWrFmCiISUUnz22Wee2rVr+9QjTdNSHA7HBAB1/KeJ/xjhP/iL
4E/4uqZp9zocjvXIV3Nkp06d3KtWrTKJSGRmZoqXX35ZlClThjscDj5gwAC+efNmUZjohRCklL/w
9xE+efkn/1RYv3696NGjBwcgwsPDxbvvviuklIKIxIIFC8wWLVq47fkwxvIMw/gGQJNCa/iPEf6D
UoE/4Ts0TRtkGMZO5KsefNCgQe5Dhw5xIhJ79uwRPXr0EAB4bGws//DDD3lqaqpP2iuliHNeJNEX
BUqpwkyijh8/Lp566inucDgEAPHEE0+I1NRUQURy/fr15u233+5jBADcMIwfAdxYaE3/McJ/cEnw
1/F1TdMGGoaxGxZhBQcHmyNGjHAnJydzIhLLli0TjRs3FgD4zTffzBctWsQtl6ZP2vurNlcC9olh
Q0ZGhnjvvfd4VFQUByD69OnDjx07JohI7N27l/fu3dvfYFaGYcwG0KLQGv9jhP+gAGjwIwpd1+9x
OBzbYRF+aGio58UXX/RkZWUJIhLTpk0TlStXFgB4r169+LZt2wqoOaWR9iWFwuqRaZry22+/5TVr
1uQARNu2bfnWrVsFEYmjR4/y++67zw1vwIwAkGEYPwG4wW/N/zHCf3CRgdtB1/U1yPffe0aPHu3J
yckRRCQ+/fRTERERIQCIoUOH8qNHj/oIX0pZrG5/NcFWp/x5Y/78+bxJkyYcgGjSpIlYtWqVICJx
4sQJ3r9/fx8jMMakYRg/AGjot+b/4gj/n4I/4Te0VAUCQE6n03zmmWd8En/ixIkiNDTU1r15fHy8
j/CvhppzpYzgrxoRkfz111/5zTffzAGIunXrimXLlvlOhD59+vgYQdM0j67rkwHU8MPBf4zw/wn4
6/nRuq5/oGmabUCKIUOGeJKTkwURiS+//FKEh4cLAOKpp57iiYmJPor7pwi/KChsMK9Zs4a3atWK
AxBxcXE+Rti7dy/v2rWrz0bQdT1T1/W3AEQVws9/8H8Q/NUdpmnaw7qun4Ul9bt16+Y+fPgwJyIx
Z84cUaFCBQFAPPLIIzwhIeFfSfhFMYLf3NSaNWv4LbfcwgGIevXq+VSjjRs38ltuucXnNdJ1PV7T
tCcAOC38FLCJ/oP/ffCXam0cDscGWJvfpEkT98qVKzkRifXr14u6desKAKJ///78+PHjPlXnWhi2
fxcj/Pbbb7x58+YcgLj++uuFbSwvXLjQrFu3ro8RDMP4U9f1uwrh7T+16H8Y/CVZBV3Xv2CMEQCK
jIz0fP755yYRiTNnzohOnTpxAKJTp0589+7dnP5hHf8aMIJcsGABr1OnjgAgOnbsKGz36aeffmpG
Rkb6IsuGYSzCxcG0/+B/DHzpyZqmDTYMIwGWnv/II4+48/LyBBGJJ598kgMQ9evX57/99tv/CcIv
ihH8Ti85bdo0Xr58eQFAPPDAAyIzM1O4XC4xcuRID2OMw6sWeXRdH4/8KrX/1KL/EdCQf2zXMwxj
KSzJdtNNN7l37tzJiUh+9913Ijg4WISFhYkpU6b4AlhSyr+F8P3zgAq/rpU71d9r5HK55HvvveeL
LI8bN46T5Trt1q2bz1A2DOOUpmkD/fD7n7foXwy21Geapj2r63o2rEDWxIkTTSKShw8fFtdff70A
IJ588klupR1fRCBXAraP3o4J/NXxiiLgq8EY/vM6f/68eOyxxzgAUa5cOTF//nxBRGLp0qW8Vq1a
/vbBcgCN/XD9n1r0LwL/47mxfzDrrrvucltuTfnMM88IAKJly5Z89+7dBQzcawSKCqY8+2Du3Ln8
o48+kh9//LH87rvv+I8//mhOmzbN/Prrr/m8efNUfHy8L4/I/2+xD/JjvhJNrGBATe3bt0907tyZ
A5AtW7b02QdvvPGGx+l0mvCqRS7G2OsAAi1c/3ca/AvAX9cfpet6HgCKjo72zJo1yyQi+fvvv4vy
5cuLkJAQMXXqVJ+6U1rPjpSyyO/b72VnZ8sXXnjBHDhwoDlixAhz+PDhnt9//50XlrpEpKKjo0Xb
tm35uHHjuGEYEoC6+eabzRdeeMGjaZoYM2aMb442UU+fPt08f/68LMwQhefkzwQlYRy/uanFixfz
atWqCQDimWeeEWQ5Caz4gX0a7AbQwW8P/jsN/gHw9+vHGYaxAtYG3Xvvve7s7GwhpRQDBgzgAMT9
99/PU1JShE0gf0XPL0x8UkryeDyqefPmvG/fvnzv3r1yxYoVokKFCnzkyJGiMLPl5ubKAQMGuMk6
IeLi4qRhGPTpp59yIqJPPvmEv/DCC4KIyO12ExHR5s2bBQCxaNEi4c9QliRXY8aM8bz88st8x44d
3Pt2/hyLSLMukrltnJimKd9++20OQERERNjPFLNnzzYrVKjghjeaTLqufwogwtqD/1ymfyP4JI6m
aUMNw0gHQOXKlXPbUn/ZsmUiPDxcxMTEiF9++cXn3bkcIdgS0V9i28S0e/dunpWVVUAC2+MtXbqU
A1A//vij7wEHDhwQzzzzjKfwCWCapkpLSxNKKcrIyBCVK1fmAOidd97hnHPKzMxU586dE7aaYpqm
bNCggWCM0fDhw7n/c22i3bJlC4c31UF+9tlnvlPHOjFKfMz5z/PUqVPirrvu4gDkHXfcIdLT04Xb
7RbDhg3zABDwngZHAXQram/+g2sDtspTTtf16bCkfteuXd12fvz999/PAYhHH32U5+bmSntjL6UO
XEpK2u8PHTqUt2/fnhORssezCcZmgICAADV48GC+Zs0aW9WSlzptsrKyRMWKFTkAev/997k/Udtj
v/nmm6bD4RCMMapRo4YwTdPHhPZ3NmzYIGDl+kRERIiMjAyplKIJEya4O3TowN99913T5XJJfxwU
pwIWtg8WLVrEK1asKACIL774QhCRXLVqFa9Zs6b/afA5gDJ+e/TfaXCVgSHf0L3VkjzkdDrNTz75
xCRvYYiIiooSFStWFKtWrSrg07+UtPcn0NzcXDVz5kzx4IMPmi6Xy//UUH379hUA6MknnzSJSNkE
ZKtAHTp08NXrAlA33ngjX7p0aQGi9mc4IqL09HRp+eR9DGCapo9h9+/fL7p27WouX77chDejU+3c
udOnytmEOnbsWH7fffe5g4ODCYBavHgxV0rR2bNnZdWqVc25c+fyvLw8RUTkcrkU51z546E4oWDj
Ljc3Vz7zzDMcgLj55puFlRcln3jiCf/T4DCAjn579l/c4CqBv8rzoq7rEgA1btzYvX//fkFEctSo
URyAGDx4MM/JySm1kXvq1Cnx7rvv8u7du3t69+5tli1bls+ZM8df3VANGzYUsIj7gw8+4IWfwTlX
o0aNMq1aAV/Z5M8//3yRIWz/Ji0tTUVHRysANH78eN+YNmF37tzZ/OGHHwQRyUqVKkkAZD/bNE0f
E997772elJQU0bx5c8EYo4EDB3IiotmzZ4sXXnjBtJ+vlKKkpCQxZMgQ94cffsiTkpJ8kyrONvI3
krdt28YbNGggAIhJkyZx8joZePXq1d3weoqIMfYu8vOKjFLs839QBNgIjDYMYwEsonr44Yc9RCTj
4+NFw4YNRXBwsLAIrVip719qqJQil8sl58+fz/v06eOx8vzpqaee4kREiYmJct68eR77u8nJyeqO
O+4wb7/9dlvKy8WLF/sIW0pJZ8+eFUREqamp4rvvvuONGjXiAOi2224TRKSK8s6kpKTI6OhopWka
jR8/3rQkNBERWYRlDh482HP//fe77ZOiY8eO3D6BiIj27t0r+/fv7yEiGj9+PIe3O4X0eDzylVde
4XPmzBG2XWP/5vnnn+fw1jyIp556yp2WlpafM1EEIxRSi+Sbb77JAYhWrVqJlJQUIYSQQ4cO9Z0G
uq5vBtDI2rv/DOQrAH8vT2vDME7AKlKZMWMGJyL5/fffCwCiXbt2wpZkxen6RTCEuuuuu3jFihXF
xo0beZ8+fbhhGFSvXj3hcrkKEAMR0aZNm8Trr79uEpFs2rSpYIxReHi4OHTokP1cdffdd7vt/9uP
rVq1qmjXrp0gy24oPG58fLyw3KD0/vvvm/ZnKSkp8oYbbjDj4+MlEamUlBT1zTffcF3XqUyZMvL8
+fPCVlE+++wz/v7775tKKUpISBDh4eESlqrWq1cvz7lz53w2g6WyqRtvvFEYhkEtW7YUp0+flm63
W23YsMHcvHmzT4gUBf5r2L17t2jcuLHQNE1Mnz6dE5GcO3cuj4yMdMOrEuVomvaQ357+ZyCXEHy6
o6ZpjxuGwWFlbloBGjlo0CABQLzzzjsF/PqXAfnjjz/yL7/80kNE6vHHH+cvvfSSSUS0aNEiDm/4
X61YsYJLKX26OBHRggULRK9evcz333/fbNOmjcf6LjVo0IBnZ2dLIqJHHnlE1K5dW2zevFlcuHBB
rl27VkRERJjLly+/yHVpqyKPP/64q3bt2rJmzZqqb9++nqSkJJ6amiq7d+/uqVGjhnnixAnTZugN
GzbYc6TJkyf7Fvvoo496du3aZTOtGjx4sH1KqbvuuosTkXK73T787Nq1S+i6rgDQrFmzfOMcP35c
OJ1O0bNnT75y5Uphq3eF7aTCp8Grr77KAYi7776bSyllSkqK6Ny5sxtem4V0XZ8GIMza0v9UosuA
LSWcuq5PsbI31aBBgzxEJE+dOiVq1aoloqOjxYYNG3wGZnG6q6XqqB9//JG3aNFCAJB//PEHV0pR
fHy82Lt3LxdCkMfjkfXr1xeMMerTp4/P02Nv9CeffMJbtmxpfvHFF/zo0aNi/vz5PDQ0VAGgunXr
ig0bNvCffvqJN2nSxLz77rvNe+65x9W7d2/PypUrhb/KU4AbpaS8vDwlhFCmaaq8vDzFOVemaarM
zEyZnp4uExMThVKK8vLy5AcffODu0aMHb9y4MW/cuLG5a9cuz4cffmhGR0fz3NxcX+R4586dQtd1
qes62S5Rfxg5ciQHQFFRUTItLU3aePrjjz98jNGmTRvP7Nmz3ZcKqvkHBrds2SJq1KghIiMjxaZN
mwQRybfffttkjJnwngZ7ADS19vY/L1ExYEuHqrqur4dXgpgff/yxSURy9uzZAoC4/fbb7daBRUp9
f4klpaSdO3fyxx9/3ONwOJRhGPTEE08U+JE/kcPb/UGeOnVKKKXI4/EQEdHgwYM9W7du9f0uKytL
VK1a1YyNjRV33303/+2333heXp7d6JZM01T+hHIVQRGRTE5OlmfPnuXz5s3jQ4YM4ZMmTXJLKW01
S3Xs2FEAUKdOnRInT56UTz/9ND9x4oQ0TVNWqlRJMMaof//+nIiUaZpERKpdu3YcADVt2pQTkXS7
3So9PV2+8sorno0bN/oYuTAj2PjzeDxy+PDhHIB49dVXORHJjRs3CttANgwjB4CdWOfv1fsPkE/8
bQzDOAtvOoN77dq1nIjkiBEjOAD55ptv+lSeyySbqZ07d5r+kuvll1/m8LpO5aFDh4TtRrQ3NTU1
VUZFRQkA9Morr/hOF7fbLcuXL8979+5tHj9+nEsp6ciRI3zTpk3CijMUoAh/5itJQpz9/MIR5sLv
XSrBzuVyKX8j/5dffhG1atUyiUgNHTqUA6CvvvqK//bbbz5Vb+XKldwef86cOb73lyxZwi2CJiKi
QYMGiaioKD537ly3/f3C8/D3FM2fP58HBQWJW265hWdlZUmXyyV79uzpHzOYgHzi///eLvA3dgcb
huEBQNdff707KSlJuFwu2apVKxEQEOCL6BaVk+NfEzt16lTev39/DwBu1cOSx+OhjIwMGRMTI+BN
l/CpOf4b+PDDD3PDMKhq1arizJkzwu12q99//50PHDiQT5kyhZ8/f14WfrZ94hQlHa8V2M8qjimk
lOrIkSNcKUVjx47lISEhIjMzk3fo0EEAoJtvvplLKe24gIyLixOMMerQoYMPL5YdpG699VZz9+7d
IicnR3LOKT09vUi1zt82SEhIEC1bthShoaFi9erVPpUIgK0SrQRQydr3/2/tAt8RyBgbp+s6AVB9
+vTxEJE8cOCAiIqKEvXr1xenTp0qVuWxNpyklGrYsGGeRx991Fy8eDGfNGmS6NChgyclJUXa0uzT
Tz+1Cz7Utm3buL1p9ri//vqrgCUJO3fu7D506JBZlApTRPe2fyUopSg3N1c99thjnsaNG5sAZGxs
rNi3b5+w1/X9999zeKWzsu0qG19Tp07l/fr188URhBD05JNPet57772Lco5s8DeQR48ezQGI119/
XRCRXLlyJY+OjrZVotMA2lok8P+dq9SW+gG6rs+wjF0+evRok4jU3LlzOQDZp08f7vF4LunlsSXg
3LlzRb169UwqqJL4VBRbnbGlXadOnXwuP6UUmaapxowZ4+7ZsydfsmQJz8nJuaiR7b+d4P2hEOOq
Xbt2yQ0bNvD09HR/fKqePXsKxhjdcsstvhPWOgFU69atPfv27ZNKKV9i3uOPPy4AqEceecQUQqii
nBB+76nly5fz4OBg0blzZy6llElJSdLuaWoYBtc07XE/uvj/wi7wBbd0XV8Lr7Hr+eabbzgRqddf
f91f31dFbCb5S257Y8aNGydCQkLkhAkTzGnTppljx47lzz33nHj99df5smXLfGN9+eWXHIDSdV3N
nTuXHzlyRHg8HmWapvLv+WM/538d7HSNwgRqG8w9evQQjDEaP348F0JQdnY2ERF99913fNiwYSZR
/olw/PhxERERwXVdJ4fDIa02777nFGcgnz17VjRt2pRXrFjRjp3IwYMHewAoTdOIMfYV8qPH/6ft
Apv46+q6fggAhYeHu62WHbJfv34cgLDSEFRRakYxOi9t2bLFlxBWxEsNHjzY5Jwrl8slq1atKgFQ
5cqVzY8++sjjnxvzd3V5s6jm2j+jmHXZeFy3bh0HIB999FEf8x8/flw2btzYk5CQIG3VJyMjQw0c
ONDz8ssvm1YgUCUkJEilFFktZYpcjL9KNGzYMA5AzJw5UxCRfP/99312gaZp65B/18H/SbvAXtQt
hmEkA6CqVau6Dx8+LDwej7zhhhtEeHi4sHLai1R57Pfi4+PlG2+8wYcPH25LdyIimjZtGr/ppptE
jRo1ZN26dcUNN9wgGzduLAIDAxUAdfjwYZGSkiJbtmzpefLJJwvkwnjp8X9f4pcG7JNh/vz5PC4u
jvft29ccMWKEWa9ePY9VHmlLf9WrVy/P77//LtatW2cCUEFBQfLkyZNcSkkTJkwwb7/9dp6UlCSL
clL4vacmT57MAYhRo0ZxIpKLFi3iISEhdi7RceSnUPyfYgJ7Md0Nw8iF5elJS0uTZ8+elTExMaJO
nTrCbkJVmPj9U3+nT5/Oa9eubSJf2suFCxdyf08QeXNllBBCcc7VqlWrOGNMnDx5UsbHxwsria4A
EfzdoKQkEuIfbz1hrz8vL0/OmzdPfP311/zEiRMF5jV69Gjz6aefNomI5syZYwKggIAAceTIEU5E
9MQTT/BOnTrx2bNnm0WpXEQFvUR//PGHzy4g6/qo2NhY2y5IA3Db/yUmsBcx2DAMBYA6d+7sISK5
Y8cO4XQ6Rfv27YV/7n5hxNn/fOGFF3j37t3NkydPyuPHj4tGjRoJxhj17t3bFEIoj8dD6enpauHC
hQWM4RkzZvA2bdqYtuvPfs4/KfFFZpbKHPeum6RUf6cqVORcilArMzMz1enTp8Wvv/4qbr/9dg9Z
BvLSpUsVrGa7WVlZcvny5WLAgAEe8is6KurmGxv8TnFRp04dUb16dZGYmCjT09PlDTfc4LGYwATQ
93+dCfyvDx1hGAYBkDayli5dKgAIK3XX15bEH/yyMaV1U4qyIrmKiGjNmjWcMaY+/vhj7r+ZAwYM
MFu3bs3feOMN8eSTT5p33nmnJz4+XhaV2/K3g62DZ2TKhJr1hWvtejsY8c/NifJPWbs1S05Ojnzq
qac8AEz/E3PlypUCgAoNDaVFixbxbt26edLT05VtKBeGolQimwncbrfs0qULdzgcYsuWLYKI5J13
3umB924DAvCYHxP8T7lJfQEuTdNesxbDn3rqKZOI1DfffCMAyBdeeMHneivO0+PxeNSXX37p9is4
UZMnTzbJW60kdF1XPXr04IsWLbI7N0sikuXKlRNt2rThCxYs4HZqwr9Cx7drb4+fEGcjK6uUQQ96
jc9/USMufzy99dZb5syZMz32e7YNEBwcTFFRUZ49e/bYzKEOHDgg3nvvPf7000+LcePG2Zf8FYl7
/651jz/+OAcg5s6dK4hIPfjggx4AwjAM0jTtZYum/mdiBT7iZ4x9YAW4zNdee80kIvXee+9xAHLC
hAnFenr8wd+LcOedd3J4j0j18ssvm1YTW99ldeHh4bJOnTqib9++5tatWz3+qc3/CuIn8kn6vFVr
xNnoWJVY6zppnvAG+v5NTOAPubm5vtLObdu2SU3TFAD19ddf25ujxo0bx51Op78XTjqdTn7//feb
eXl5xUbw7XjB+++/zwGIiRMnciJSo0ePNgFwq8jm/f8VJvAlOTHGPtc0jQCYH330kUlE6rnnnuMA
5Pfff+8r6rhUWsPJkyd9qcRSSsrMzJR16tTxPwk8c+bMEffddx+PjIy0j2b5008/FVCJ/lXAvfPJ
/uJrnhAdS2ejYyl7yjfc/7N/E9j4sxng6NGjAoCyVFdFRPTZZ5/5UrXDw8Pla6+9Zu7du1fYV78+
8MADHiJvFVth8DOO1fTp0zkA8fLLL3MiUuPHjzcBmFas4HOLxvy7//2rwJ/4p1rE7/nqq684ESkr
U1Bad2kViwxbIvTp04cD4IsWLeJWpJaIvN0WwsLChGEY1L59e1vloZSUFPnrr7/y8+fP+2pm/zVS
vyBFERGptMdH8ITyVSmhYnVKGfzQv04NKgw2Lk+fPi07derkyc3NlVZnCxkZGSkYY1SlShWxa9eu
i/zXffr0MefPn19UjyQf2Pv766+/cgDi4Ycf5kSkpkyZwgF4LCb4rjCt/VvAd5E0Y2yGTfxW9Za6
7777OABpN4oqjvjt6OQ999xj9unThy9fvlw888wzHts9av9uwYIFPonTu3dv/v3335tWO3Mi+udc
myWgIu9fzmVy204isUptSoyNo3OtbhNkdXv4pz1ClwPTNBXn3IfgtWvXcgAqMDBQ2TEcuwDH4/GQ
EIKmTJkiYmJixNSpU00qVB5aaGwiItq6dSs3DEP07duXE5H68ccfOQCPVWDzE/JPgX8FE/i8Pbqu
f2dxqtuO5t51111C0zSxZcuWEhH/wIEDzeeee46TN6XZl3RVWJq/88473C6YefTRRz3p6enSNM1/
L/ET+XR8z/6D4mxsnEqs2YASq9WlxLpNJE9KsvKo/90MYINtm/3222+CMaYeeuihAol0/v8eP368
gN/pT1S8TWaPe+DAAR4cHCy6devGyUqz1jTNzRgjTdN+Rr498I+rQwYAMMY+tol/3rx5nIhkly5d
hNPplPaxeKlsTiIiq7xO2ZVMY8eO5T179vT59FNTU+XatWtNIm/KbVBQkGnZE/8bYOn4WRM/42fL
xlBiXCNKrFGfEqrWkebhI3a3q396lpcF/2BXQkKCACDnz58vbRfqihUrzG3btvlUnrffftu07bLs
7GyVmZl5UYvHAmiy6MTKPRK2qrtkyRKu67rNBPORf9vlP8YEDsDr6rTVHqs7g+zcuTMPDAyU+/bt
u2Qqsx00mTZtmq+rAAD50Ucf8YSEBA5A3nbbbTwtLU253W7VsGFDz+rVq8XOnTvtBlT/O5maShEJ
IZNvu0MkVqpJibWuo6SaDSghNk569h/8n2EAG2x9vnv37vzFF1/0qaCzZs3ioaGh3CqyJ7IEmGma
xDlXgwYNcp87d04WFzUmyqeX06dPi8jISNGqVStBRHLp0qVc0zS3VVzzk0WH/4h3yCb+Jy1Xp8cq
spadOnXiQUFB4sCBA5ckfn+Pz9atW82dO3eKWrVq+frvxMTE8BdeeIG/+uqr4rnnnnMTkbrttttk
VFRUSSvD/j1guz9/+Y2fjaqiEms3pMSaDSixej1KqNVAmSdPSRLiHw+IlQZsAj5//rxs0aKFZ9my
ZeLYsWMiNjbW3kOxZs0abtU1ExHRiRMnRFRUlOjSpYuvW8blToL4+HgRFRUlWrZsKcjKH2KMuf0y
SYG/OVhmE//9VpDLnDZtmkl+kv9yxG9z/sGDB4WVukBERElJScK604oA0KhRo0wikkIIRUSqbt26
5rRp04TdueF/ApQiEt7cn/O3d+eJMTUosdZ1XgaoWocSG98oRVr6/47oL7A0L/GePXtWdurUyaNp
mgBAgYGB8uuvv+YrVqww7ZT1devWcSt2QwDUyJEjTSrUMqYw2J+dOXNGlCtXTrRu3VoQkbLKOD1+
zbhsJrjmYBu8d1o9bfikSZNMIpJ33HGHcDqdl1V7bMnhcrlU9erV+e233y7Iat9BRJSZmSlvu+02
HxN0796dJycni+eff960Lrv4dxu7F+8iERFlffE1P1u2EiXGNaTEGvW9TBBTk5LbdxFEJLM+/8qU
mZmSlPrXe4P8wf9Svq+//pp36tSJ+zcKJiI1bdo0HhAQIOHtSCGWLFnC27Zty7/44otLukf9Pzt5
8qQICwuzk+jUd999xwF4rIjxKH/hfE2JH97bFl0A5Ntvv+0hItmzZ0+hadplDV77M6UUbdq0yfPO
O++Y9erV47ZO6N9lwMr/sa/ztJtT/e9Ifi91EBGRuWcfT6haRybWqO+V/DXqU2LthpQQVYVShz0i
ZFY2jw8rL9Ofe8kbYPrnE0VLBYXUGP/6Cvnss8/63NYtW7b0lbjeddddMiIiQng8Hnm5mmqbLg4d
OiScTqe4++67BRGpiRMnmgBMSxN54FqeBHalThOHw5EOQD3//PMeIpL9+/fnAKTt6rwU8RfqUKyI
iN5//33+/PPP+2pP/TokSyuGoEaOHFmgJeD/BCjlZQC3Wybf1kUkVqxOibUt6V+jPiXGNaSz4RUo
870PhWfrdn42sgqdrVxLef7czS0E/NMrKOVyvQFLKSWtXLnS3Lp1K/cXYmXKlBFjx471nDt3Tkyf
Pt20utipEydOXFJjsMH+/M8//xQAxNChQ+0qQhOAfdlIl2vBBDbx13Q4HAkAaPjw4W4iksOHDxcA
pL9HpjjwbwmYmpoqiYjy8vLI5XKpzp07e06fPu2TBPY4ixcvNu+//34PlSBv6F8HFgFnf/s9PxtR
kRLrNMonfpsBwspT7s8LRN7SX8z4spVUYsUalDJgiPcU+F9S8yywI/Dbtm3jAQEBvrSVhx9+mCcl
JXHrKiZfA+G4uDiel5fnyzW63P761xQAkHbM6PHHH/cAkA6HIxvA9YXo9i+B765dh8NxGAD16dPH
TUTSarLqaxR7KdXEr5W4bNmypWfmzJmm1clZEREtW7ZMPProowU6GSulaPfu3SIvL09d7oj814Ei
7wlgmjL51s4+t6c/AyTVbkjxZSsp9+atIu/XlSI+oqJKqtPIewrsO/CvTpC7FNg6++zZszkAabWw
tF2h8s033+StW7fmvXv35vv27bMvC1GrVq0qkX1XKCNAfvTRR5yI1N13320X1ZwFEFuIfv8S8Yc7
HI7t8HYndhGRtDoRS9vYuZxebiNl0KBBvtYkVatWFffccw+fNGkSP3DgAG/Xrp1n586dl/QP/53w
l5jO0uHdW7eLsxVrqMLEb9sCZytUk/zUaeFa+4eMLxujkuo1obNlK1Hm+xP+coLcPykwbEn91ltv
eVauXGkW4bUrcInggQMHRLly5bidXn0597Y9ltXkQC5YsEAQka/jhK7rfwIIxV8IlNm5Fk7DMH4H
QM2bN3cRkZwxY4YAID///PMSE79SilauXGlWrVpVVKxYUcIvjRkAORwOFR4eLu++++4CTav+jqS2
Szzjyh9sR30nTbaivg2LZoCKNZR5+IiZNfFzfjYihpLqNKaECtXofM9+3gS5K1y7vR7/Kjj/z/4O
5rCFmK3u2s+2rn7yvTVr1iz7cj5q0qTJRe3kiwO7reMrr7zCAYg9e/aIjIwMWbVqVbsT3SKLlksd
I/Dl9BuGMQ8A1a5d25WdnS3t63jeeOMN/96SJULEmTNnhHVHlly1ahUfO3Ys79Spk31zuc0Qat26
dSWSAn91c4ob357vjBkz3FlZWVemflljpz45UiREVi5o/Pq/qtejpKYtZGKdRjKxej2vhyg2jpKa
3iyFdSdZaZnAnv/MmTM9Z8+eLTbt4O/ogHGpmzW3b9/OrTsXFKy2lU2aNDHnzp1rlqS1pH8q9YAB
A3hISIhIS0uTBw8eFCEhIXagbIIfE5SY+G1f/7cAqHz58q6EhARx8uRJAUA89thjJfbI2IuYMmWK
x7qf96J1pKamijVr1vB3332Xd+vWjb/88sum/2+vJhQ15oF9+ygtNdWHVPs77dq141YXtNLPxUrr
Tuk/mCeUr0qJta8rmgFq1KfE2DhKrF6vwHsJNepL88TJUtsB9mm2d+9eWaNGDdMuCrKJLi83l86c
Pk2FSxivJSP433dsp7uPGTPG9CugUd26deO7du0SRCQPHTrE/X93ubGtvZEtWrQQderUEUQkFy9e
7B8jeKg0TGAT/4eMMQoODnbbR0uZMmVEr169ii1mKW4z0tLSZExMDP/hhx98xpCdMlvEUaeKOrb/
KhR+zsYNf9Lbb46nrh3a0/1976Wc7Gz/SySIiNStt94qHA6HSE9Pl6VWxfIZwLwsA9hxAX8GqFqH
zAMHld9YJQI7q/aWW24R5cqV8+nZ9tqys7Np7JhXqNUNzempRx+jmTMWUl5ubuHfXxOw52bFBQgA
VapUSdhN0fz3admyZSYV036xqL1VSlFWVpaoUKGCL4PU6jvEDcMQANpY9K1flvg1TXvZCjF7Vq5c
yYlI1qxZU7Ro0YKTNy2hRMRgL7h79+6+/pP33HMPt/2+/j027aS4ayv1Jc2etYh6dOlHd3erSn27
l6H6NevQ8WPHfIi050VEqlOnTrxVq1aeZ555pvQnUgEVqErxKlBxr+r1pHnseKlOAP8LPapVq2Z2
7drV43+1q/+ePT/yOapXPYwG942mDq1vo08nTiW3K7cAQV1N8LsXTYSEhEgAatiwYTw5OdlXwORv
FzRq1MicMWNGiVVh+ztHjhwRyO87pAYNGmQX2ScBqGzRuXYp4n/Azu+xSxdbtmzJq1atKrKzs0vs
obEJe+3atWbXrl3NunXr+ny/kZGRvkvW/JFztcF/0/9Yt5G6dbqHenSKpvk/OSj5RADd0S6Wli7+
tQAC/UA2a9bMs3v3btG+fXtzx44dolTeKbv08fMpBVKfL/uy84Oa3CRFRmapbACr5btq3ry5uXXr
Vj548GBPUlJSgaJ0/1Pu3l730Q+TQ2jPNgf17xlBt7XuTPPmLikw3tXcCyKinJwc6XQ6ZY8ePXwF
83bhDBFRXl6eGjFihNmyZUt+2223eVJTU0t8+toq+fLly/1Lb2Xz5s1tz9AGi84vyh61j4UWDofD
A4BbKQ6qX79+PCgoSNiXwJVUCtoTtu6oUrm5uXLs2LE8NDTUVzjdunVrvnHjRk5E8tixY/xqMkL+
WJLGvjqeWjatRrOmBhC5dSLS6P67y9Kbr0+kS62pefPm4vz582rFihWiW7dupTsF7OKXA4dEQpXa
sig1p8hX7esooXw1Suk7sFTBMD9bi/fv398kIurRo4d5+vTpi4SMTdjHj52i5g0b09nDDiLS6LcF
AdSpdQUaPOBxSrmQfEncXAnYY/Xr148/8MADFw28ZMkS0a5dO89bb73FiUidO3dOXK52oDDYTPDu
u+9yAGLXrl3i3LlzsmzZsnYK9eTC9oB9HFQ0DCMe+VFeNWbMGA5AbN++/Yq8MhcuXChQykhEtH//
ft6pUyef5a9pmmzevLn5/fffe67kGUWBjSy3O5cG9H2Y+nYPpwvxTiLFiARowQ8BdPttd5NSgoQo
WroIIahly5a+Lmm333675/fffy8dHmw7YMBgnhAVW6JTIKlOYzobEUO5s38uVTqEfV/xDTfc4Dl4
8KBUSlGfPn08+/btK7Lnkr2Gjz/8ih7oU4aIa0QcJLINenVUMN1yw620f+++At+9GvuilKJz587J
6667zvPzzz+LxMREuXz5ctG/f39Pv379PIcPHy6A49zcXGndvlNaJlC9e/fm4eHhIi8vT65atcrf
KB5eQOsB4LCOB+rYsaObiJR1C6PvntuS5uD4XwHavHnzAq1J7GxPIpKff/65LzW2bt26gnOurobu
aR/vnLvp3l5D6MmhIUTCIMoFmRcYqTyN7upcnpYsWlHk5uYzj1u2adPGk5SUpJRStG7dOnHHHXeU
jkn9T4HYOJlYrd6lbYE6jSkhOpbOd7mLk2lKkqpEkQh7b7744gs+aNAgn7QZMGCAuX79ep+OXRSe
cnNzqd0t7WjXOoOECyTTGBFpNOvbILr+uutp7569VNTvrxTscY4cOSJ79eplduzY0XXvvfeaVrmk
z0Fig9Xp2/RfZ0loQAhBbrdbVq9e3S6mUW+99ZZtFHMALfL1H12fDm9ehtvj8ci1a9cK5IewS5V9
aU9ywoQJZq1atXifPn0806ZN41lZWb6ttMc7c+aMqFKlirl169ar5ve3xxj51Cs0tG8oEekkM0H8
AiPioC0rdOpyW1fi3HvRdGH92maA7Oxs1aZNG3dGRoZv5++66y5zxYoVpVMFhSBBRFlz5vHTZSvJ
hEo1KSmukZcRal3nfdVuSIlxjehMuUoUX7eJyDt0WCg7ka4EYN/mcvPNN3sOHTrky6sZNmyYuXDh
wmLna7/3/juf0zMPhxARI5HCiKcwImI0d1ogtWjWmpLPJVGp7J/L4aTg1U++//gRuDp27Jh44YUX
eGRkpKxcubLMy8u7bMZoUWuzjWLr2ivVtWtXj2UPnARQHoyx7zVNo9DQUM+hQ4fEiRMnBGNM3n//
/VeUfWlPcvXq1WZeXp7cv3+/HDNmjDlw4EDP5MmTuf+lzKmpqXLu3LluexP/KtiLXrRgOd3aojy5
0w1S2SCVBhKp3k194Ylgevetzwp8v6jNSU1NVbfddht3uVw+I3LNmjXizjvvvNIYhaIdu3hKy3bi
VFh5L7GXr0rx0VXpdERFii9bSeX2e0BQekapBrb35/vvv+cDBgwwifIl6IgRI0yrLU2R0tPG+YkT
p6lD6/qUGa8R5YBUOnxM8O7LQdT/3ofIa45cPaO4mNs91bZt2/jgwYO55SnyNdn69ttvS6WJ+H93
1qxZds6ayMrKkjExMXaHiR9hpZDKcePG+dydzZs3F1LKErs7C6yg6O/L2bNnexwOB4+NjRUvv/wy
t9qiX7WWhTbjeY/0jvTHMieRBIkURpQBoiyQJ5XRHe1r0p7dB32bUNz84+PjZYcOHXxNX22C79Kl
i2fTpk2X9QjZ8zFNU02YMIEPGTSIf/7ttzz55EmTFi7hnqdH8eze/UVOv0GCxozjYuXv5sZNm8x3
PviAj3/vPX7u3Llir1gtgFjLzmjbtq1p51HZQa7XX3+dWxH7y5al9r17EC2dpRMpr7BQ6SCRAVIu
ne5oF0U/z/F6h66WPWDjbteuXWLWrFnmr7/+yrt168Y1TfMRvq7rsm/fvnz27Nm8Z8+eJue8RHEB
f7DtgeHDh3OHwyFcLpecOXMmt1yjedB1PR0Abdq0ie/atUsCEHZFV2kXa08uIyND/v777/y9997j
PXr04NbldP65Pyo0NJQvW7asRCHvkiDSHmPq1z/RwN4RRFLzSv0MkEwDkQnatU6jOzt3LVHK9v79
+2XXrl19wRi/DEdhe1kuNW8/VZD7rV1ViImRYz4Yzzfu3s2PnDjh2Xf4kDlz8WKz4113FcBR48aN
ucvluuSxbz9/2bJl4o477vDNyX72pEmTxCOPPHJJBrDH+OC9L2n000FEBB/eRCojkqBV8x10R4ce
+Woj/fVYgb9btHLlyv44orCwMNm6dWtuZQ4oIqJbbrmFWxfulYpebEFlmqYMCgoSP/zwg0hJSbGZ
zISmaVkA6MCBA8JqNivsrl+lWaCNkEOHDokqVaoUJngCoGrUqCGGDBnC58yZw48dOybcbvcVY7C4
q0V73dmPfp1rkJKFNpJA30406PGHXyiw8UWtg4ho7dq14p577ilA6JZ0Vbfccovn5MmTJWrtMWTI
EOFwOCgwMJCs+IoPHxpjEt57Drwtx71JgeR0OsnpdMqUlJRLngL2vLp27Wr+/PPPovDNkXPnzhW9
evW6JLNK6/01q7fQPd1iiPK80p8yvC+VDlK5GvXoFEO/r9p4Ee7+ilpk4+jNN9/kAOjGG2/kP//8
M//uu+/MOnXq8Ly8PEFEau/evTwwMFCOGzeuRIUzxZFMTEyMmDx5ssjIyLAZINMgItsQ1gAIXdd1
5gXYn5UEiAiapuG1116js2fPGrquo3LlyqpWrVqqTZs26NKlC5o1a6YFBgb+5T4uRATGvEOcOH4M
sVWrweFw4OiRk8jL3ok2rRVYLuDt1GIDw+EjTtStV++yYwNAQkICIiMjC7wnpYTT6WQdO3bUvv76
azVu3DhNSgnDuDjFxJ5f7969aerUqQSAKaXAGIOu65BSMkXELNwDAOzPTdNE//79VWRkpC6l9H3u
D0op6LqOo0ePqqSkJHTv3l2zx1JKAQAqVarEUlNTAa+7uUicM83rBa9Ttzpy8iog4/w5REQBxAHG
AKUY9GCFW9uk4pelq9D+tpZgjOHokSOILh+FiIhyUEpB00qfdq9pGogIQ4YM0ZYvX26uXbvWMAyD
tW/fXh05ckSPjY1V7dq1k+vXr9fcbrem67q8UlqxPV4xMTFaVlaWAqAxxrI1e6OICAEBAYZtnJTm
IfZmHDt2TJ4+fZr69esnIiMjxYABA/iKFSu0sWPHGi1btjScTqcmhGD2b64EiAhEgBAmHnvoSQy9
fxBM0wQAbN28B9VizyOoPEEJBmtpYIwAASSeC0bNWtUvOz4AnD59mipXrlyAaOxNHjx4sLZq1SrF
OaeiiBPIJ8Ru3brpI0eOFFbulG/TGWO+l/1/IoJpmmjSpImYNGmSRkSsOMKy8fftt9+qzp07M4fD
waSU1nq9065cuTKys7NhmiaKE2j2d8uXj4TDGYOziQCcgP1VG3etbhY4cvhPKCWhaRrmzfkJ7W7p
gAP79kPTtCvaT03TwBhD5cqVtalTp2qGYWjvvfeeXLNmjRYcHEzh4eH0888/G8nJyVrlypXlfffd
5xO0pQW32w2Px4MKFSogISGBrOdn+UaSUkqHwwFbJy/N4DYSK1WqxH755Rd95syZ+q5du7Ry5crp
DzzwgJgwYQI/e/as0jQNhmFQRkaGsgmhtOAlIoYRT4xG0plvEFlOITfHAwA4fOgI6tTOAxjBf2hN
AygPyM4JQUyl8gXmXBycPHmSatSowfy/q2kapJSoUaOGFhkZyVasWKEs6VLsBksp2YcffuhYuHCh
vO6666SUElJKKKUsZiYopSCEQFBQEI0aNUpYuNMuNU/rFKHVq1fT4MGDNft5/lChQgVGREhOTr4k
ookIuq4jLLwCkpIYYADW4eQVIiZQqybBnXcGF86nAQA8HqBG7GE8/dhgHDt64oqZAPCerHXq1DGO
Hj0qx44dqwFgzz77rDx69Ci+/fZbMX78eLF9+3ZUq1bNvnOi1M/IyckB5xzly5dHfHy8vT/pBmPs
PIAwt9tNQUFBEgDjnJfqCYwxKKWwY8cO0aZNGycRISYmho0aNUrLyMigefPmyZEjR4oqVaqw3Nxc
euKJJ7SIiAjNX5UpKaJ0Xcenn3yDsye+xcwfBfr2z0VurgsAkHwuEdfdUpAYiQBmAO4cgPMQlCtX
xjvnYp5hI/fMmTOIi4srwAA2sRARevXqpc2YMUN17dq12OxCm7D++OMPeebMGTZixAiZlZUlN23a
pG3btk1LT0/XHA6Hql27NrVr1041btyYwsPD2erVq6l9+/bEikGOjYcNGzaosLAw1KtXT/NXQ+z9
CAgIYGXKlMGpU6cQGxuL4vBtn+DhZcohNY1djBwBRJQFHEYGLlzIQIWK0YiPz8BjD3Pk5O7Dw0NH
YtmKmXA4A1DaPbXxpJTC4sWL4XK5tHr16smXX35Z03VdGzJkSIHvXcnYjDFkZmYCACIjI5GYmGgL
hFQNQCIAZGdnIyQkRAMAj8ej7B+X5AEAkJKSQn369GHz5s0Tbrfb98OIiAg2dOhQY8aMGY709HS2
Zs0arVGjRnpp9UZ7kw7uP4Tvvnkfn03KQ1Aoh1IuZGfnAAByc7NQpgx5zRt/YIDLTSAEIjgk0Hrv
YkTax2tubi5lZmYiLi7OR1A26LoOxhh69uzJDhw4gKysLNJ1/SJc2fr89u3bZdu2bdmTTz6pP/TQ
Q84ff/xRv/3222nu3Lli7dq1fNWqVXLcuHEyJSWFPfbYY0b37t2N2267jT333HMSQJGni/2sOXPm
qK5duzKbgAo/HwCqVq2KQ4cOkf97xUFwSBhycgrihTEABBhOwOHwIM8SNnm56eBcoddAE9Wr/I53
3voUV3qqM8agaRpatmwJAOqll14ih8OheTwecM7BOffhs7RgzycjI4MMw0CZMmWQmJhoPzfF0DQt
XUqJrKwsio2NJQDkcrlKTJk2Ia9evVq0a9cO8+bNoy+++ILXrFmT3Xnnndrtt9+uORwO5nA42OjR
o3H+/HkCwK4EUQBh7KvjMXzwaVSua4JyGcJCc5FyIc2ai4BhWAzgjysNEBwAHHAYxddE2NLi6NGj
5HQ6Ua5cOVZY6tgqT2RkpFa1alW5YsUK1bt3b91m0MJ42blzJwHQg4KC4PF4sGPHDv2hhx7SHQ4H
RUREKM45y8jI8HU5DggIgJSS/fbbbzR+/PgiTwFd1yGEoJ07d9LIkSN127AuCho3bsz27NlTImQ7
HU6YZjFExgDmJ1lyc1IRHU1QkvDOW270vOcr9L3vLtSrX6fURrEtQFq0aKHddNNN/I477jA0TUNA
QMBF35VS+vapuDUXBRcuXEBQUBAD4M8A5zXGWAYApKenIzQ0lAFgeXl5JaZO25Bp166dNmvWLGP6
9OmO6dOnGzfddBP75ptvVMeOHfnXX38t4E21MFq3bu2wF11SkNJreK1buwUZKb9gyIMCIp2BBQNl
I/KQkHDOQqQTHg/zZjcVWoGX39glpYgtIbdv3041atQAAFacBCYidOnShS1cuLDI09ImgPbt2zNd
15Xb7fZJOl3XwTlnFy5c0DMyMjTGGLNPFiKCEAIDBw70eY4Kz9E6WSg0NJTVqFFDK0o62s+/6aab
2MGDB8n/veKgWKHEABKAkAaCQ4IghYTbnYKKFQDNzVC+psA9vc7g00++wRUIaf89Zvfeey977rnn
5A8//CBWrFghDx8+LM+cOaMyMjLs4BgZhlFi+rHXdO7cOYSHhwPIZwAiSjY0TcsEgNTUVISGhhIA
ZGVlsUsixG9wxhgyMjKUw+FgnHOmlEL58uW1oUOHakOHDqWjR4/S6NGjZVJSkhgzZoxDCFGk2/BS
YCN19syFuOvOFBjhEp7zDAYjVKnkwckTpwEAoaFlkJ5exA4QoBsASECIy3vSNm/eTDfffHOxW2kz
fZcuXbSvvvpKmqZJTqfzIo+RUgpxcXH6lClT+LBhwyCl1GwiLEyMfl4g6t69uxwxYoRW+FQB8k+W
5cuXq1tuuYX5v1d4PABo2rSplpGRodLS0qioE80fTNODgICCe04EMB1wZQOmGYTyFcohITEZGi6g
fHkAkkB5wP39OPoNXoHzyc+hfIWoUuvr9joHDBigx8bGKpfLhfT0dLV//37WsGFDGRISgrS0NBYa
GsoiIyNRt25dGj16tEFUrKlUAJKSkhAVFQUASE5Otuk7WSOiLAA4f/48goODGQBkZmaW6ASwpePk
yZPlzJkzpcPhIPvY8ng8ME2TxcXFaXPnzjVWr15NCQkJyjCMK4gv6MjLc+HYkU3o1EEAHkCz6KJO
HYETxw4DACrEVEJCYhHMpYDAQADMA5fLc7lNoMOHD1P79u2L9KzY7xERatSowYKDg/Hnn38WqWPb
XqOhQ4c6tmzZQq1atZJKKZ8XyP8lhECZMmXUO++8IxctWqTruq7ZbtLCYwLA1q1bqVOnTqy4Odqq
Wnh4OKtYsSK2bt2qipojkK8t5uZmIyysiL0xgAspgKKyiI4uh4P7j6NcRDoCygJKAuRhKF+TUC32
FFb/vhnFPedSYAuAihUranPmzFGzZs3SFy5caDRp0kT98ssvxqhRo9imTZv0JUuWGN99951mMXOJ
VenExETExMQAAKWkpNh7e95gjGUDXh0JAAzDgBU8uSyh2gQzb9487dixY2znzp2yb9++aNu2rR3w
8oHT6UR6ejoqV65cKulgf/fwwZMIME6jZi0CPICuEWACjRoofPXdIQBA3bpxWPtbAECmXwwAgAKC
gxgMPReZmdmIRcWL5mBL0T179lBERARq167NLqXLWgEw1qxZM7Zq1SrVokULrfD3bS9QZmamysrK
opdeekklJCTITZs2aVu3btWSk5MpMDCQxcXFUZs2bdTNN99M5cqVYwcPHlT169fXC+PfNtIvXLig
srKy0KxZs2KZ1P6+Ugp33nknW716terSpYteZCzA+n12VhqiIpU3Ls3sMRiYk3DyFENIWCzAGLZv
/RN14nIAg3zuUtIJzZvlYPu2neh7350lo/rC87CYoGfPnk7OORwOB6pUqaI9/vjjcsGCBbrH49Gi
oqLkwoUL6ZZbbjFKY2skJiZStWrVmFIK6enpGgCplMpngOTkZABAaGiojxkuBfbD9+3bp7Zv384A
aN9++6327bffUlxcnOrZsyfv1asXq1u3Llu5ciUdO3ZMi4uLY6UNZNgbdvToKVSskAEtDFCZzBvl
dQO16gA6O4GjR07ihpsaYca0CMisbOh6vjeIFKAFAyHBuUhOTkHDRnEoirgAYP/+/ZSTk8M0TWOc
82LnajNPu3bt2Hfffaf837PHs/R56tmzp1qzZo0OQG/QoIHq37+/6tevn3Q4HAQAZ8+exaJFi7SP
P/5Yz8rKYg6HQ61evVq2atWqQCTYVok2b95MlSpVQlBQECsuUmyDpmkoU6YMrD26WPDYkVIhkJN9
HhUrABD5Bi8RAA3Yu09HzdoNwAD8uWMzhj/AvYwCeA1kBdSvK7Fh23Hfc68EbBeu2+1WYWFhLDo6
Gm+99ZYDAGJjY+WSJUvQuHFjo6SqtLVeSkpKQqtWrZCamkqm19LP4ZynGkSUAQAXLlxgACgiIsLH
DCUhzK1bt8q3336buVwutXTpUuzcuVM/evSoPn78eH38+PFUtmxZlZ6err/55psyICCAlcYGICJf
SDIpMRnRUR5Ay5c6UjAY5YCGDS5gycKVGDHqQXh4VZw6Ho9a1wEqzxsEU4pBDwCio/Jw+tTZYglF
KYUePXpoX3zxhZgwYYIYOXJksYi2N7hFixbsrbfegsfjoYCAgAI6tqZpcLlctG3bNs3pdDKlFA4c
OKC/8sorOrx9cMA5B9kLAhAYGAi3261fuHBB+OPZ/98bNmyg5s2bX9JOswVNenq6euedd9TEiRP1
ok5e22F2ISUD3ExGTEUAHH4nKAGK4c/dwehxb0tkpGciLWUnbr6JAJc33YQIgAAqVCDk5ab4hOOV
pEjYBv2XX34pjh8/zn744QcDAOrXry+WLVvGqlevrpeGhuznX7hwAbVq1UJSUpLtEMhUSqVrRJQC
ACkpKQwAypcvj6SkpMsObEudvn37GqNHj3a88cYbxo4dO7QNGzbIJ554gteqVUtaG6Ddfffd8rnn
nivSqLsUMMZ8x3Nebi5CQlShzwFIQo+uJlb8uhiMMdSodQM2btFBAfnRTHura9Vw48jhI8U/izGE
hISwhQsX6hMnTlTr1q2ThmEU6Yu3j+sqVaqwwMBAn6/dJkhbBw8JCdGefPJJZZomCSHgdDrhdDqh
aRozTZMRETMMw/e+2+3GDTfcILp27XoRvuzN3LdvH7Vo0aJoiW6B5VWhoUOHipEjR2rt2rUrMvbi
S/04lYCggBSUjYL3BGBe2aM5gJwk4HR8BbS7rQXmzF6G+nXPIjyWoDxWuokVKwgOIijphmly33xL
6+62GSAmJkb/4osvHLm5uaxFixZi3bp1rHr16npxuVdFgc3wnHNkZmaiWrVq7NSpU/bcUgDkaUqp
CwBUWlqaDgCVKlWy3URUEj09JCREk1JCCAEA2i233GJMmjTJsW/fPrZ371518OBB9fPPP+sBAQFF
GnXFTZyI4PF44PF4jVamaShsV2kagXKAlm0JJDZjx/Y96Na9K1avDQRT+blAsOyAxo0kjh/dX4CY
ChO1lBIRERHarFmz9GHDhqmcnJwChF2YyACwmjVrYvv27RcZwrYUfOedd/Rx48bJwMBAZZomTNMs
8D0hBKz3qVWrVmLRokWa0+kskAphS/S8vDxKTU1Fo0aNijWAbSL5+OOPZZkyZdjgwYMNznmRwsfO
rdq/9zAqV8oAQgApvc9UxEDBwKYtGspG3YCIiHDMnfUDBvT1AILyrWeyn8vAmA7D8OZBHTt6tNTB
K3uO3bp1Y06nUzVv3lyuXLmSRUVF6ZdT94qDtLQ0crvdqFq1Kk6cOEEWXpMBQNN1PRVAXlZWFuOc
U7Vq1XwnQEmJVdd1H1fauS6BgYFagwYN9Hr16um2tV5iw9eSAh+8+zZm/vADiIDQ0BBkZV3c4lFJ
Bj1U4YEBGfjg3U9wa/sbcOpMDaScYtACvJurMe9x3bQxITN9PxITkotNDrOCTLj55pv1e+65hz39
9NPCP8OyKGjSpAnbvXv3RYPZfn8hBHv55Ze1pKQk+uSTT8Stt94qo6KilNPppKCgIKpataq6++67
5eLFi+X69etZTEzMRbZSvi10lAIDAxEVFVUkTm0pf+jQIfX111+riRMnGpeSml6hBGzfth3NmrgA
5rcMApjGsHS5gTvv6olfl69GcMAm3HKbAuUUyrbVgYwMwHCGwjAMZKSn48Vnn0FGRnqB+V8ObBsg
IiJCGz58uPjiiy8oNDRUF0KUmvjtZyYlJUHTNERHR+P48eM2AyQAgOZ2u9MYYxlSSly4cAE1atTA
+fPnAZTsCCu8Abqu+yJ7touvpJLfnrSm68jMSMdPP87ByhUrwRhQtVoVnEsOtI5n8nsegTKBPv0V
0i8swvYtu3D9TXdh/kICgr36P2OAMoGIKkDlimewZvVm3/yKApsJxo0bp+/YsQN//PGHtJLPilx7
kyZN2LFjx8j/PZsYAeDIkSOiUaNGcuzYsahbty6+/PJLtWbNGrl+/XpzzZo14ueffxZPPvmkOnXq
FLp27Yrx48eLwkl29j7s3buXKleuDFwiSMcYo+HDh8vXXntNDw8PL1ZVIiJoTENOdg6OHtqI9m0V
4PHilwjQnYTsRODAkZq48abrMGH8B3j2qRxAVwXUSyJvAt3peA1lImK889yzG2tXb8AvS5cVwEVJ
wBZOH330kaNp06Y6EZU6duSPs/j4eAoNDQUAnDhxwv44HvC2hcjRNC1FSlklKSmJateuzTIyMpCb
m0shISFXnLdfGqL3B1vvXb1qI6pUvgBXzjGkp2ej6fUNMPmTSLjT0hAYBJDMN9RIMuihEmNGZ+CN
997Hg8Mfxtwfq2DY8Hhouu3NYIBG6Hp7LuYvWoL+999V7Pzsueu6zj7++GPtueeeU5s3b76ojsGW
0HXr1mXp6ekQQpBhGBcNGhgYyPbt26fv27ePffzxxwQA5cqVo6CgIE0IwdLT05mV0s0AwIpCF2kA
79u3j+rWrXvJJLkpU6ZIwzDQp08f7VIGo43rxYtWITryIGo0JKhsr+NASgY9lLDwB4YGDbth3pzl
iKu2Fq27Sqg05sOrP+zd50TtOG+9xYY/NqFxIxO/r1iKvv37l8oYtvelKFyWBmycHT9+HBUqVADg
TXK0PjsDWD2BNE07Z31I1atXh1LKdwpcWc7OX4c1q7ei3z1ZqFLpDNat2Y6qVWPA9FrYt5+BgvLz
1QFA0wkyk6FVF4k2N63HvJ+Xgaum2LrBAAvxngKaRkAO0K27QtLZVdi5Y88lU3jtU6Bdu3Z6lSpV
8NVXXxV5CgDeNHDGGM6dO3eRIQx4XcthYWFkGIa9qSwtLU1LSEjQk5OTNdM0maZpLDAwELquIygo
qFhxeeLECapXr16RWapW1qN68803adKkSfql6gl8hSKCY9rX32DYoJwCHjZNI6hc4Pd11ZCZzbF5
/Td4c5wLKpfAtII0oekE5DHs2ReBW9u3BABs3rgJr7xgIvXCLpw8kehTbUoDV4v2jh49Ciu1nRIS
EjQAUErFAxYDMMbOAsDx48cpNjbWThgq1vi7lqDrXrXr5PH9uPkmgWaNs7Hi11UAgCbNWuPXFU4w
o7CHx7thMpPw0phcRAQvx5Yt57FybTSgW+F8BkjOEBwtMbh/Et587QMA5DO4iwJbBXznnXf0SZMm
qby8PPK3HexNdTgcLDw8HKdOnSoSZ0FBQSwwMJCEEPAvWvF/2dFgKWWRSWB20PH8+fOoVavWRQxg
6/5jxoxRt912G7vuuuu0S7kh7c8+//QHREWsR4fuAiqTQdcJSgEsGDi8NxBbtpXBvj9X4N23TqJs
BQV4/JwLgNcxEQTs26UhO68uWtzcFFu37ILHtRvtuxDCQ89jz+4DuBJauhINoig4duwY1atXD7m5
ucjIyDDgzSny2gDWRscDwJEjRxAeHg5N03D8+PErmvRfAe+zGNLTMuF2n0GFCgp3dJHYtWM5MjMz
MWBQb6xeWwGeVB2ao2DRC2OAprwBnAkfJ6Fbl3NYtKQcchJ16E5Lp9UJKgMY9BCHppbi04lTrcKS
oiWTXz6PdtNNN7FJkyZJO73BBluqxcTEFIuzoKAghISEFNhUm/GKYkA7Ld0fL4wx5OXlIS8vD1Wq
VCnAADYxnzlzRs2ePZvefffdIhPk/Oes6zr27zuA7775AOPezAVJu4TbEi5OYO7CctB1gSlfnEKj
G92QWbhI9SHFwJwMM34KQKu23eBwGPhq8vfo0ikFCJCoUjkPR4+cwD8BttA4ffo0GjZsiNOnT5N1
Kmaapun1AlkIPgN4jwoAiI6OxpEjR67wsVcONiEkJp5HoCMVIUEMMXUVWlx/GB++PwUNG9VFufLt
MWuWARbm9QD5A9MAmECQQ2LKV6fx7NNJSDrnKNgVngBGEh99mINpU97Bti07YBh6sVVdtsR/5ZVX
9B9++IFycnKKzP+PjY1lZ86cKVIFMgyD2ZmIJQE7KbEwJCcnk6Zpvlplf2ZijGHMmDGqb9++LCYm
pljpb88tLzcbjz88Cs+NOIUaDb2p5fbXNZ0gsxiqxppYOv8Imt2cZ50OBcdSCtCCCeeO6FjzRzU8
8vhAHDt6Agf3LcKg+4UXL1U4ks9dPq50tcE/BnDhwgXUr1+fHTlyxA6CJQHIAPL7gp4BgFOnTmkA
qFatWjh48OA/MmkAOJ+chpCQXBihAOURnn3WxPLFX+P0qTN45bVR+OLraGSfc4AFFjwFAC8TkADg
Afo+kIa4Om7Ls+H9XNMAmctQtb6Jca+dxROPjMCF88koztVpnwLVq1fXmjdvzr788ktZVBlkbGws
s2tN/cEes0wZqxLt8sc62Z6bwnhJSkqikJCQAnP1l/6rVq2iMWPGaLZruiiwvz/iiddxY5M/0HeY
B7KQUcsAaJLwwLAUxNYwoTJRpNFLioEFaXj7/QB06vIAYmIq4KUX3saAexMQWU0CiiEigpCTk+Ub
9+8Cf5y5XC7Url0bBw4csD11p+E97nT7BEgAQImJiYZSiho1aoTDhw8D3m4Cf+O0vZCVlY3gIA44
AZHHUKkOx8ND4vH4wy+gcdPrcGuH4XjhBQe0EA1SXYxWm8ZkJsvPV/ED3SDIVIYufTy4t+efGPbA
SEhpFkBcwfG8p8ALL7ygff/992Sapq8Y3ibo2NhYXw5VYeMUACIiIkq8aWXLli0wjp87z/6M+TMA
YwzvvPOOuueee1hUVJQmpSyS0Wwv0eeTpiLh1Hd4Z7wbMksV6p5hrVnzppIod37mbYGxBIMeSfh9
gQNbdzbD2LdGYeaM+chOXYiHHuMQGQRoBIdBdpC0yCq8awU2zk6cOEEBAQEIDw/H/v37bQY47rdM
wDTNJMZYumma7MyZM2jWrBlOnToFpRRdaZnbXwGlyOfr13RAZgAPPmkiImQ5Xn15PN79YAwOnWiP
Lz9wwigHWI0mLgJdL37eukGQ6YRnX3WjYrklGPnUWCt9ufhToEGDBlq1atUwc+ZMxRiDEMJHaBUq
VGBZWVlAIaFh4y4yMvKiOEFxm2afFoXfT0xMRFRUFPN/X9d1pKWlqZUrV9ILL7xQrPS3iX/j+s34
9ss38eWX2TAMASaKp0tNA4qSf1Iw6GGEcyedGPliWXw+ZRKOHT2Jd994CRM+zIYRIEGWemqaDIbh
sCd8NcnkkuCX3IiKFSsyALZQh1LKp9/bvu0sXdfPAsCBAweoWbNmyM3Nxblz5woM9ndBcEgQPB4D
kN4orkYAeSQ+n5yHtSvG44vPvseSX3/E1983xY9fGTAiASFLj1+NASpH4tPJLhza+yU+m/SN1x4o
pmiGiDBy5EhtypQpdmt3H0FHRUXB7XajGOnLbL29JJtW3GmRnJxMdlEHAN+zvvzyS3XrrbeymJiY
IqW/bfSeT07GiCeexbvjklCljgmZw4qU7pcCKRj0cEJGmoF7+wTiuZc+QZWqMejbayDeeO0M6t/g
gczKtycyMhnCwrz2zz/hUN+7dy/VrVsXAMhS8UFER22Ua8h3hR4HgN27d6v69esD8LqP/DfmWoO9
cdHR5ZCTGwS4vdKJaQB5gPAIjlmzsjBj6nOY9NEP+HnxdHz7Qzt8MykYRjn4krJK/jwAHHAGcEz9
NhtTv3wTv69cC70Io9g2fNu1a6cxxrBu3boCLVHCw8OZlBI5Od4C/cI48yfc4tZuSW+yDebChJyV
lYXo6GjmPyfOOS1YsIBGjRqlFZVqnu9pEnjkwedxb89d6NjTA5HKoBul21cpGfSyhOOHnejfLwYD
hk5Ag+vqoEv7Hhj59B7c1d8FmYYC4yadM1ChYsWrSSYl3Ftvsuy+ffvQrFkzZGVlUWpqqgFASSlt
txT5opuaph0EgD///BNhYWEsICAAu3fvLnIzryUQEWJjK8DliURaCqweNV5VSOUCMZU9WLw4A7u2
vYTnnhmHvv0H4OtpLfD2K9GAk4H00p0Emg7IHIZKtUx88mEynntmFOLPnCnSKLb+zx588EHts88+
U/4Eaofai6umuxwD2BAUFGTXZl/EALm5uVSuXDkA+dV4y5cvV7GxsRe1RvHNWXql/2uvTECIYyFG
jfFAZlCpiV8pQC9LWPtrGAbcXwv1Gj+ApMRUPP5QT7z/zh7cP9wFmUY+TxFjBEiG02eCUat2jUvG
W64F2GrgiRMncMMNN7DDhw8TAKbr+gUAdk48+bCllNoPAHv37mXwFrBjx44df9uEgfxa2+jocggK
rolDRxgQmE/QNhNElDExc24uet05HatXvIaw0GxMmlwJY16uDKWzUh+1ukEQaQytbvdg2MD9eHT4
85DShLccwT/vyHsK9O3bVzt16hSdPXtWGYbhUzGs9G8vZgu5QiMjI5n37UvPLiQkhOyYgQ32GC6X
CzYD2Lj6/vvv1fDhw7XislV1Q8eCeUvx+y8f47PJeSC3hEal88goBWghwJpl4Xjw4ergMhBnTy8E
E69hyaIEdLzTXYD4iQDNANwpQPKFaDRqXAeMsSvK57kS8G/Vk56ejqZNm2LXrl22C/QkgFxY+oKB
fKXhEACcPHnSEEJQixYtsGXLFuASfSWvNrhcLigpERIainoNmmPd+iW45XaPFfXNN4rJBGBK9BsK
9Ot3GvEnzyIjMwBKAeQCdAdKrXAaBkGmA489Z2LrtuV4a+xEvPrGKPin4NqGb1BQEOvUqRObNm2a
euWVVzQ7z9/hcCA1NbVItdEm3OIYwFaBgoODERgYWOR33G63r7OBw+HAiRMnVGZmJnXo0MHXF9QG
mylPHD+BN199Cd98kYbwKO6tptNLhxy7O1yVGBMzvzuBshEclSubCCwPIBdQGSgQIyACEATs3sKg
O+qgeo0qyM7KQm5uLirGxFxRg6vSgL32w4cPk6ZpqFy5st2eBoyxw9bXdABCg+Uo5Jyf0DQt3ePx
aMePH6fWrVvj6NGj4Jxfc0+QPXZaaioeH/4QcnOycdfdd+CPDZFQOdpFG8aYldqQxgATiK0p0ejG
PDRpkQfDQVdsbWkAyCUx4SMXli2ehA3rt1ykCtkqxrBhw3S7PygR+RilcDmpvdE2A1y2OVVwMHRd
L6AC2fqsx+MhuwxSKYUZM2bIjh07arqus8KZo0SAkhxPP/4SHhl2FE1bm5AZpSd+G98QQO3r3Lih
TS5qNTARGOTFP/GL3aREDMwAlv0SgOtvbAvDMPDay6Oxbs2aEuHgr4JNTzt37kSlSpUYAJ86D2Dv
RXsO73GQoev6UQDYtm2batWqFTwejy999O/Q34KCgrBx/UZMGP8BWtzcFIrdgNUrdLCw/CINf9B1
71lOHkDleF9/xdXANEC5GMpV4Xj1hWS8Onos3G5XgfX79wctW7Ys27hxowoICICu6ywsLEyzy0kL
46tMmTKwa4CLkn72e7b64/97m+mEEKxy5cq2ukW///479evXrxjpr2Hix98iLPAXPPSUCZmOUuv9
BSfoPV1VNoPK82bj6jpd5EIlAjQnIeecjtXrKmLIsH7YvWsnpn07HS5X3pU//wpg27Zt1KhRI8Db
6UMDACnlfnuqQH4kWLc2YS/grTmNi4sDY8x3dFxrrgUA0xSoWi0K82Z/j/gzZ/DYU09g4uchgNAB
rfjNY6x4n3VpQTcIMo2haz+O6pXX49NPpl6UNWobdPfee6/2+uuvy59++okvWbJEJSUlyYyMjEJz
81JIWFgYsw3lS0FISEixnjeXy4WVK1fKBQsWyDFjxoiIiAitWrVqzN/1aRvCJ46fxMwfJuK9t/NA
XKL0llFxeCZoWvGxAyUZWCjw7bcG6jTogeo1quC9cW+g8XUKaWmZf32DSgCWwKA///wTrVq1Yqmp
qZSWlmYA4FJKWwUqwAA28nYAwNatWwEA1apVw/r16/+WSQOAkBoqlFcY0C8Zzz79Crrf1QlS64SZ
0wzoEV4f9N8BjBHIrfDqy27Mmz0FiQlJBZjA7uLWrVs3tnXrVr1fv35G9+7dtS1btjhdLleRlGan
RHvHL34dtgfIZgD7b1ZWFh09elQfNGiQ0atXL23cuHHGnXfeiaJ64zDG8PYbn6Dv3ScQ20BAWXk+
1/oQt3ODko858P2PlTHu3dGY/v1ChAasxf39OVIu8Gu+d7Yr2OPx0MmTJ9G6dWvbAGZWrMvnAQLy
GcBGzZ8AcPDgQUNKibZt29oM8LekRAQGGkjPMPDocBPgi/DtV7Mw+asP8d6Eikg44oQeRlClviKh
ZKAU81pyTPNWkOUxVGskcFvbo5j48bdeoi2UBh0WFsZatGhBuq6z4OBgMMYu6qhhE7vD4WCXSofw
qx2ggvPyMt2BAwcoJSWFGYZhv3DjjTcyu+zS/q6madi+bReOH1mARx/lUNkETSdvZZzTuiD9WjAC
We2EAnU886wT9w95HsHBgXj/7dcxZowLQihouuPabJ7/NKw9Onz4MFwuF5o0aYLNmzcrwOfq5/Bq
PAUYQAGAEOKgpmlpLpdLP3z4MHXu3BkHDx6E2+3+W1IigoICQAhGbq7Exx+78PEHL8Pj8WDUS+Px
wOAAcNMBFoCrzwTklVx5WRJKKjCHdQq4CI897MHGdXNxLikZml8WqB0TqFmzJrProInI116mqNLI
wjk+RUFYWBiDX/Ng+6+daWp7ooKDg30XeBQe74tPp6Hv3UkIipYg05u/rwUR0pKtm4H8fX9XCYRk
MMoyTHjTgTxxF0Y8+zD693kEDw48gth6JhISDUREXF4F/Ktg43rbtm0UHR3NAgMDbW8mAOyy/voQ
5n8CaAAydV3fBwBr165V7du3B+fcl0V3rewAewODggIREBCGhESGSrVNvPtmEu7tNRA97uqAm299
EQP6GmAOB7SryARKeWMN634vgy++fwgTp3RBUiLzPiOPoVI9haaNjmHWzCUFEGxDhQoVCpBSSkqK
F7FF5wMVWG9RUFwqtMfjKfB+REQEhYWF+a3DK/1PnjiD40d/Q79+EpRrRdEdwOIFMfhm5ih888ON
cJsAXS3PNgFCAEYk8NM3Tsya1xyz532Jpx8fg0pRS/DUCx6QBNIzHIguH311nlkCWL9+PZo0aQIA
+PPPP21BcVFgSyvi31sAYPXq1VSpUiUWGBiItWvXetd6jV2hmqYhJDQaqale91rXPm48Pnw3br+t
D559bhiqxo1Cn54GTOmAFnp1bAJN0yDdwPrNt2Hki1PQ5MYPsXc3A4IARQBJQp9eLvy+YqnveiB/
CA0N1f1xk56eDqUUFZERyqKjoy+LwOLqBuxLS+xxAwMD4XQ6Cz8DC+b9husbn0FErIJyM2gBGtKS
gIPHh+C5l8YjMPwVHNwNsGCGvyrPSAGSACNSw4yvHBj/SWMs+XUW3nrzC5w+Mgmff+mBypNgJnAh
JQTVqlX+y/tVkv0EQJs3b6b27dsjOztbJSQkOABI0zRtF6hv5Rcp9oyxTQCwceNGBoBuuOEGrFix
Aihhn6ArBVuylq8Qi5OnNDAHYKYAw57yYOigTehyWx888nh/NGs5Dt3uCMGpEwb0SIKU3o34K8/V
g4D6dTZj6tczsPfPz9GgoQK5vLkyLA9ocbMCd+/Ggf3HLqptLYyTzMxM34UOhQVGdPTlJaC/VAfy
PU5ZWVkFbj0o3BLZZsyN69egS2c3SFkuYq5QpjxQMXIJvp7yAzIufIvqcQC5CX9lO6VgYIGAXkbD
u2N0fPNdO/y8aAY+eO9b7NryJmbOdkFn3JtpmQpkZUehdlzVAnO92mAL0ZycHDp+/Dg6dOjAtm3b
RkTEdF0/A+CU/VUf3vx+rwDANM3tjDFPQkKC4/z589SjRw9s3LgR8NZRXnM7IK5OHA4fDQDgrUCS
aQoPPe3Bi89tQ9+evVG/fhwGPvQZhgyph3kznNDLAiyg6DhBSYAxAtwaevVOQrM696PPnZ+hSnUA
JkGz6oidkUDduPNY/8d2H6JtyMvL87UwZIwhNTWVHTx4UBVVcF8CBiB/V6md2swYoyVLlhR4tsfj
UXaevf3spMTzyMrYhxubKzCrbSEjggFgYL89uLH+IAy+byHKRusg88rS85Wy8oIiCYmJOob0j8DR
0w/i/QlvYNSIt5F27n38PN+FoAAT0s3AQoBDhxkCgmqV+H62KwUb37t37yYhBGvatCnWrVtnG8C7
UcgABi5mAAbgrK7rBwGwtWvXqu7duyMzMxN2Odm1YgB78s2ub4jjJ8qCcr1VSLoOyFSFXgM8+OH7
Y5jy2RBsWr8dffqPwDdTb8foZyohJdUBvRyV3s1HAHMAYAp56UDTNgwxsQzkLkwchMYN3Ti4/8BF
Q+Tk5NgptraBqvXq1YsdPnxYFo4iWwlxRc7SVpMsI9i/bxE98sgjctWqVbrVZAsA4PF4NPt2TLKe
sW/fUZSLOIeIGPiuObW74jHG0KS1hpAyQF6qhBZS+n20mwxrYcCin8pg2IPXISL6UdRv0AAjn3wM
7VvPxNfT3TCIg+wqPB3YuNlAnXrXo3A99dUGmzbXrFmDatW8V+euW7cOAMAYsy3hgidnoTF0eF2e
GwBg2bJlVK9ePRiGgVWrvJ0ZrrYh7EtcunABQgg0aVYPee6aOHHYe8Qq5b3cQqYSGjQysXxJBhrV
/xQrln0ER4ATM2ZVQefb4zDz20iQo+TODSKv8XvkkIEPJ3XCx18MwM51ASC9ECNZBFQtVuHC+QQv
0vyOcOvmEh9uGGM4deqU3rlzZ6Smpir/LhJWQtylhAjZRrAt/Z9//nn55ZdfGoZhFLgtJi8vDy6X
N0qtrPGOHTmJ2Mo5gNMy7v0H1oCscwpffnUzPp82DL//GgkEXPy94vEFsCDg8MFADB1UE8MfqYa0
zAo4c3IzTh17CVO/3oPHRplQmdLbs0mzOseZDJu2lEH7Dm2uKt0UBXbKyKpVq9C2bVsAoF27dukA
IKXcai/F/zfFKWNrAGD16tUMAG688UZYR/A1swOICEcPH0ZwcBDi6t2C5SsMwK/BrW54M0EhJB57
lmPGd/sxfPBiPP5IPJo2dWHGjEis/T3cYprLz1ERgEDg8GGgTadv8dLY6VjzRz1L8uejhYEACZQv
7+18TAW7LVBOoVvlrDYpOHPmjP7JJ58of5vBdoMWJURsprBPAKfTiVOnTsmPPvpIK6ofkdU3tcBm
JiYmoVIML7zH3hhACLB7B1Cl9scY9dLX2LbrVqvc8fL6OBEAJ7BpQyjGjauEzEwNw4ak48lHtmL8
26vw6dc5qBUnINPyo8R2u5SjezSkZtRDm1tvBHBt9X/76tgdO3ZQ165d2alTpyg9Pd1gjGVJKffY
6PD/XeH8VNsO2MQYc58+fTogOTlZ9unTh7366quQUpKu66Xq83k5YMwbpC9foQI2b9yI+tddh3vv
64n33/gOjz2eDE33T0Tz/pVpDMFBhK69TXS9JwkwAQjAzGOAG0XWuF70XHizSmOrKazf8A32/lkJ
Da87aaPTb34AJFC2LMDNDOTkuhAWlp+unJubqwAUuHjCTk1YuHAhe+ONN3zd4iIiIsAYIyrc1Ag+
BiA7FQIA1qxZQ0opvahbdTjnVJgBMtLTUKdKUZ2sCWQyVKnGsGDZd0g5fxTVY/+EFgSoPHXZFBK7
cKhJgzx8//UJsCB4dQUDgBtQaV6DukBGqPL2Zp0114EbW3RBaGgIrrS5bUnApslDhw5RVlYW69Ch
AxYtWqQAwDCMfZzzFHvb/X9XeOm2HZBgGMZuAOzXX39VvXv3Rk5ODvbu3XtN4gHKat6qaRp2/7kT
bdveBNJb4pclOlj4xQaurhNIAjKDQaYzKBcAATgDSq7XahoBeUDT5gpd272OGxoMR+cumb6e9wVA
AmXCAVAWMjOyC3xUVPs+23Nz/vx5lpeX5yugDwsLY0FBQQAuNgRtArevqQKAhISEYgWNVQ9QIBDm
cuWgqDACYwBzE2rUIgy4ezIa1xqIe3udBMySCQsbgkOVN67gAmQW82aDWkXzzI+SiAAtgJCVqGPl
mlg8MLRPkWu+mmDT5O+//46yZcsiKioKK1assGsANllfu4j7iuJ9+0u/A8DChQtV1apVERoaisWL
F1+Tyh77WGzStCmWL10KMIZHn3gEEyeXg8zTAZ0uvvqXeRlB173eGi/mS/dcxgB4gJrNgCZtAIiL
0wTsEyA0DHA4cnwJXXYkuEKFCsy/Ntj7G296QkhICAUEBPjwFRoaisLFLvb3AdhtEX3vF5c6wRhD
aGgoK1u2bAEGMD0uBAcXgwfmPfHKxwHNbgWY07uuUoHVO8sf90XRtDchjuGLLxxo0Ogu1Ksfd0WX
ZZRuL736//Lly6l169YAgPXr19s21x/W1y7CTFEzsqX8CgBYs2aNAQC333475s2bB8bYVc8LYoyB
lEKNWrVw4fwFHDt6FHf26ISy0d3x6cdO6GUYJL8G0oMBHgEsmF4WUz+NQVoaAY6Lk8bIahUYGpKL
c0l2vr/3Sx06dCB7c21GcDgcUEqhS5cupOu6ZuvvwcHBl0yIczqdCA4O9v3/1ltvZURku/HAGIPT
6QQRoWnTpqpMmTIF7jHzePIQEkKW16dQBzfL47V6URC+mVgZ8Sc1y8a6uihVEtDDCKf2OjB3YS08
/9Lj19Tz411bvv6/YcMG1qtXLyQnJ6uzZ886GGMu0zS3Fdg0PyiKkhUASCm3aZp2Pi0tzdi3b58a
MmQIdu/ejbS0tGuSF2R7Mho3bYKZ038AALz13mj8MKsOdq13woikYtufXAlIyYBQYM2aAGhhi9Hi
tn2Yv6gO4ASICqJFKQY4gArReTh18gyU8t5cqZRCr1699I4dOwr70gv7Yo9q1arJMWPG+Pr8W5vE
LtUgKzAwEAEBAczCPxo2bKgNGTJECSEKjB0cHCzff/993y2Jdge0vNwUREfhIsmulDdFedMGDYmZ
P6Bdt32Yv7SVFUC8esKMFLw13MrAEyOCMXT4KNSoUd1XLnqtwP9+t6ysLHTr1o2tWLFCAWCGYewF
kAifP68gFHcC6ABydF1fxxjDnDlzVMeOHUFEWLVqFdkbdDXBRlDnLndg/bp1yEhPR81aNTFm7Ft4
+PFIJJ0MgBFBEFfrJLDMIU0DDEODlB4IgUuoUYS6ddzYv28/NI35/PS6rrP58+drI0aMEFWrVpUx
FSvKvvfeK1avXo0KFSro/gwAeNuiF/eEwMBA3zWzVscJ9vnnn2ujX3xR1ImLk7GxsfLOO+8Ua9eu
pRtuuEG3GQMATp2Ih8d1AtVqoEAnPP8F6zrA4PVSgZBfCnUVQEkABqCFG3hseAAqVRuMRx4fBADY
8Mcf2LvH64S5FvlktnBYvnw5ypYti/Lly2Pp0qX2ybnO+lqprG8DABwOxxAA1KhRIw8RicaNG4te
vXoJIiKrFPCqgpSSiIiGDryfHhr8ACmliIho0sdTqNX15enUoQAiAokUkEoDUcZfe6lMEE8H/fxd
NE3/sjxlJYJUNkilF/yeTAORC3Rit0Etr7+JDh86VuwSrJcq/IEQgohI3XPPPRwAGYZhkyBpXkuU
atWqJYUQioh8ay/J2EScBt43kt4aHerFTyq7eK3pjCgXtHJBCH0xoQYlHgJR7sVrLTUO00E8hRF5
QMrloIfvD6U+vYaQ25VDRETTvvmabmjUkJKSEqmYdf1lsHHbsmVL0bdvX0FEMiYmxgRATqez66UY
oLgyfbtOeBVjzLNv3z5namqqHDp0KHv55ZfBOVcOh0Ojq1zcbEvJQUOG4r7ed2Pkk8/g3Q/fxRNP
PwTDYaDPPWPxxhvn0KUXB9wKMi+/GuxKgBFgaMDd910AHAC4DspRF/e/1wDlAmrUl3j4wUMY3L8f
mt/UEfXq10dUdCScAU5wk0NJpeXm5SE9LQO5udmoUjkUgx98EH4pJJdskBUYGGinmzAAOJ+chMmf
TkV6Wh4io6O1kJAQOJ0OhISGIDAwAKbJkZiQiD/WrkHF6D/wzLNuUHZxnh0CpIYOd+WigzwJeABc
YTqEd6+s66kcBCMCOL7fiRFPhaBi7CBMn/k2nAHBmPL5FIwZ/Tzuf2AgKlaMuSaGMFn6f25uLm3f
vh0vvvgiTp06pZKSkhyMsUzTNO0IcJFHz6UYQANwxjCMbZzz1gsWLFD9+/fXR4wYgY0bN9Ktt97q
q76/WmATSqs2bdDm1vZYu+o7DO5/ARMmfYBHHhuCOnVq4PWXx2LRou149lkPajWUgFBArn1BG/kK
5kuMQAkwkyHlDCEvT6JqHLzEUQg0DaBcwgMPZaFt6134bcUeHD/iwN7tDgihgWkEpyERGCgRFqHg
yuGY9mtj3DdwEIKDgy5KifYH/4s0ADApBAyHA5M/nYYDu15G525OpCQCWRcY3C4deS4dQmgwdEJk
pIlnHpPo1EUCUoGKanVI3nwpV6bChVNA1eoocMNOyYnNDjIS9ABAjyC40wx88Y6BmbNqYMDgEXjq
meEAgI8++AILZo9DzZrl0Kff/dbvr34ajU2D69evJ845OnbsyL755hsBwDAMYyvnPBVeWi4VA8D+
EWNsMYDWM2bMoGHDhrHY2FiaPn06br311mu2IMMwcG//YZg3cwNuvnEx7r7zLN6b8DZu69gON9/S
HO+O+xwPDJmF65seQ7++brRsoaCX8UZskQcoDhDYJXuD2huKAIazZwg/L34QjoDaqHrgA9zZMwUq
j10kSRkDVDZQI07g4UYAYALE8qMnPuFGcCcz3DsoCKbJERyc79q8VIMs2wNkP/XcuTT07+vAXfeb
KBjD8adcqxQry1LpiyhSRwBw6jjDomV9YQQ0QtUKn6N7zwRvujS7NI6U8kbjNY3AnIAe5PWDXjil
Yc4XBn7+ORoVq3TFd7NGol79unC5cvDcM+/jfMIU9O6Vi+177kaLli2uurDMX593/j///DPi4uIQ
HByM+fPnW/vFVlhfK5YBLgUaADidzgYAhNPplHl5eeLVV18V5cqVE1JKqZS6JjqdlJKEENS10z20
ZnEArf4lkG64rha98eqHxLmbiIhSUlLo/bc/o87tbqcu7WPo1ecctGYpKDsRRNIKV2ReWn8VaYyI
QEtn6rR+/VEiInr71Y5EOSCVrhX7O5nu1bNFKiOZlv8SqYx4CiORyej8MUZdb7uekpNTiIjINE2v
TjxtmkAhG0D3cir16NGDE5Gyvzt04GM0/3uNBGfkOa/5nlnU63JrXDZLpzVrjlhr7EEyA6Qy9Evr
+OkgMi1cukCJR0DzpjN65IFgantTPRpy/xO0edN2377Nm7OUbm15Oz0xNJzyzgVSl1ur0Lq1W717
6tXTrzpY9KcqVqwoXnnlFWGapggKChIAlMPhaOZPy0XBpU4ABYCZpnlQ1/U9pmk2W7ZsmfnQQw/p
b7zxBrZt20YtWrS4JuFtW68b9eIIvPriJqzdcA4LFsXjlZfexO3tf0OPXn1wd5878Nzox/Dc6Mdw
YN9h/PbLGkydsRGfT9mLypVScNMNeejZPR0BAQrFCTmNESiX4YabJGbOfQk7NtdBk0Z/gpgdWi/u
dwCKOV2IvFHRoEAAjMPjKVgIbmeEkl86hH/nCP/vejwuhIR4A04wAL0UUVv/NaochuY3Scya+zL+
3FYfLW9aDS3QmwbBiiENIm+wbOPqUPy+LhyJiQFITY9F2cjGaHNbe7zzcXtERJRFbm4uvp86F3Nn
z4E01+G5ERnodq+Jj8Y5UTG2N9q0vdGr+18D6e9/Jey5c+cwaNAgrFu3TrlcLoeu68c453YBTLGI
u1yvOh2A0HV9gZSy2dSpU6l3796sUqVKNG3aNLRo0eKaqEF2GnH721rhh7p3Y/ybX+O5N1yY+r3A
ut9XY+asTRgyfwJCwuohrk4jxNWNQ0ylGEh1CxYtyMCePW7UiTOhB1y6SZY3x4VQPgZ4aOAc5GQD
5WsAUJr3HjJ5hUUjBDicgMZMeNym9SzvQHZCXFF4Cw0NVfDzVnDu9jKSdfXTlQDTAGYwlK/MMLT/
HOTkABWroeiUj4uXgZAwwh9/hOLosQj0uqcDbml9IwzDwFdf/IRdf25H0tldqFzpJIYNykGPOyVY
mMTp/Q7MmlsLs+aNuKb1I3b27c8//4ywsDDExcWx999/X8F7qq6QUgp4aVwUN8blGEBZm7UAwGur
Vq0y3G43Pfjgg5g0aRI+/fRTZRjGVfcG+TaACK++8Sz69lqNe/ocRrXaHG07mGjbhSPj7CHs2X0I
Bw4uwtkjGo64NISFMTwxXMdt7T2IrMaBrBI8xGqsFRyqIbgsgydd4swZhSpVgKAy8BrEpVgas1R1
h8GgaQIej1ngcyu9gVQRKavBwcEFyh6FMBEQiCsvYNcAJYDj+xWiIoGyFTSElmUglyxW8vuvg0yg
yQ25+HXpEaz6PQwbNx7GqqUKmiZRoYLAPXdK3HgjoUocARpBZTAwqWHsm0Ho3fdR1KhZ/ZomwFnR
cfrxxx/RvXt3AKClS5faDZ+XWF+7JPZKwgCMc75X1/Xdbre72ZIlS8yHH37YeOONN2jjxo3Upk2b
a2Lg2MUT1WtUw30Dn8Srrz+PH+Zkg6cRNI0QUZbQtgvQtlsRtk0eir3LtihgzEsoTJeYNuM6aIGP
w7N2Je69ex6iyzOAl/IksJrDGjqH213QpRQeHo6AgAB4PJ6Lbqt3Op3Mng9AUNKDAOfltrCYjVMM
WhBhwfwqOJfxPHKzt2FA7+mIqVryzriMAZQDMB3o0C0bHXr4PsmflAugLO8lJY4owrKfnDid0BqT
vxt6TfN/7LETEhLowIEDmDx5Mg4ePEhJSUkOTdNSTdO0G1pd0vgtyex0eI+UuQAwZcoUValSJdSs
WRNffvklgGtXJWaXFT7x9GCcT2+PudMccEQRQN6ieWVlJBZ+kYlS98DUNAbGgey82njo0UdRLe4F
HNjjzQEqInv5kkAEwAAMQ8Dt8jKAPUJoaCgrKiEOAHRdt8LrDEJISMnhvEIG0HQNMgc4eqolHnvq
SdRrOBynThGYX7ftkgDTrOL3TH8cIx/X1gmpBxOykh14a3x5jH1rDAICis56vVpgR3/nz59PhmGg
bdu2bMaMGZIxRoZh/A7v+V+g/LFIPJXkWdbfnwGINWvWOLOzs+npp5/GvHnz4Ha7VVH56lcD8m9Z
dOKd91/D+59UxvmTDmjB3qotTSNfVqL/60pwTqQAJ1Cn5mZ8+M5IJJ54Fs1vtiTgFRif0AGHIeFy
ue3FAPD2/iwuIc7uCu1Ng1AgxeGwm/2Wck1KKujBQKN6G/Dhuy/g7InRaNAIoLzS+//9sz+LwrVU
DFqIhldeCkDr9g+hddubIaW8pvk/tvozbdo0dOzYEQAwe/ZsOz9qgYWxy660JA3bFQDNNM3DDodj
M+e89axZs8whQ4YYTz/9NC1fvpx69uwJaeX0X4uFSilx/Q1N0avP03h21Bj8MEdBuuVVTOOysidN
oEevZKSf+wgREVa9MC9lM31YHhQdcDjERSqQdal2ce0TLRsAEEKCSMCwmliVlqc1jQAP0PXORNyU
9D6iouDd7StYz6VACgYjkrBwegD2HGqFZSufueapz/b458+fVzt27MDy5ctx6tQpdfToUSdjLJtz
vsKLtcsnfJd0lvaF2j8CwJdffklhYWFo2bIlPvnkEzDGrmnLFJsJnh/9KDJy78AXHzphlGVXNTvU
h1wXQ9loHYxpII5iicUbFfVGoAu/hNQgicHh8DsBkJ8IZuf5F64hsPsG2VcvEUlojEEKVuRzvEGq
S6+HTIaoGB3ApddzRbiS3vvCTu134o13qmDCxHcRHBx60dqu+h5Z6s+cOXOg6zo6derEvv/+ewkA
hmGsBnABJVB/gJIzgAQAj8ezgDGWu2PHDmd8fLwaM2YM1q5di3PnzlFx9+xeDWCMgTEGXXfgsy/f
w1ffN8CGXwNgRNJVb5iraQTiEoAqMqpqEx4zAC0c0MuR38v7f2ek9wqiMmUIrjyP3++9+xEdHe1b
E+DbUKpVq5b1RGZJOUJUFEEPJRiRVOhZBC3c66snixFVEdvtLYcsej1/BZQCWAAhL9uBoQ+G4/Fn
Xsf1NzS95qqPd4+86s9XX32FTp06Qdd1zJgxw17dHJRQ/QFKpgIB+SnSSYZh/MI57/3FF1/It956
yxEYGEhTp06l0aNHX9Ojzz4Fqlarhg8+mYAnn3gAc2YlodZ1HsiM0l/4dikoTCh2OoDu9BIjiCEr
kWH/JuDQIQ1nEwxkZhoQgsFwEEJDJKrXlTh+3IU6jfJLKO2EuGbNmtG8efNgGIav0Va5cuVUw4YN
ffn9RIS8PBd+nKUh22Ug5bwO0/ReFhIeJhETIxFXW6FeXSAq1rrzy+1N2iPyesBYMev5q2ALAGYY
GNI3GDe3eRpDHxxwTV2e+c/20lh8fLzavXs3JkyYgOPHj6sjR444NU3L5Jz/ghKqP0DpDkQDgHQ6
nXeaprkoJiaGJyYm6g8//DAtW7YM8fHxjIi0a3n0Afn33c74YQ4mffA05sxJQ2xtD0Sal/iuLrK9
qNRCAAQwZCVq+PU3Db+uDMGZ+MoIDq2D2Kp1ULlKVZSLLOt1b7o9SE/PwIXkZBw9shMDBvXDvff1
9xXKW21TZMOGDZGXl2dTC73xxhtyzJgxhhAChmEgLy8Pjz30IIBwVK1WC5FRkQgMCoIQApkZGUhK
TEDi2RPIzj6KqHJn0aplFrrcLlGrIQFMAdle/VzT/loHuIvxD+gBABwGhtwfBCNkGL6aOgFSkteT
do3338bP22+/Ld944w243W724osv8vfee8/pdDrnmqZ5L7zC+qozgP3dAF3XD0spq65evZpXr15d
r1GjBm3YsAEtW7bUr1XSU0EkSBiGjq+n/ICvPn0R06alov71HshUq0D7L+yBnfGoaQQWBkDXcGiH
hh9+dGLz5iqIrngLOnbujLbtWqB2XFVo2qUPUXvDbLAl2LZt28TEiRORkpLCOnfuTE8//bQOq+Nh
4csuLjFbxJ9JxJbNu7FqxWocPvAHKlc6gnt656BrFwVHhPRmynq8mbJ/6XAmqwN0GYI7x4mhDwQi
KGIwvp72IYh0Kwv32t/fYJ2QVKNGDdWqVStMnz6dValSRSYkJDicTufdpmkugJXBcC2ebxfKvMMY
ozvvvNNFRLJevXrirrvuEkSkxDVKeioMgnufM3PGz3R9g9q0cGYgEWlEuSCRwkpV6KH8ktsox0r+
cmu07lcHDb0vnNrcdBO9OOotOrjvUAnmxcnjdpPb7SbTNEkIQZxzEkL4Xn7FRMp6+RIA/b8jhCCP
x+Mdy+O5bEJZdmYWfffNbOrepQ91bF2ZJr4XQBdOG17PoNtb2CNSrww3lOm9i+PgzgDq0DKKRo14
jYgkXauEyCJxa63/zz//FADEnj175JYtW0x4i4qSANh9JUvMiaX2rgFQTqeznhUd1pKTk2nVqlXo
27cvzp8/z6KiorRr7QazwVaHtmzeiudGjMb1jbfgpZdNlK8mADd577Qi+6K5gu3efFevWmm+CALA
GNLiNSxdrmPe/HBk5zTDvf0GYvjD98Hrj4Tad+oUHTl2lM6fP8+EkFpwcJAsX6EiqsTEsCoVK7Io
64aXK8Dt5YAEQCmZmbiQmkopaamUmZnJOOe6wzBkdGQU4mrWQPkyERoAtmfnfnw66Wsc3L8MbVqd
xf0DTDRopgDdWz+hTK+tYEed/YW393pYBgaC5gQQCvAsA5MnG5g+oxYefWo0hjw44KKrYK812Kfp
Qw89JBYuXMjOnz/PBg4caM6YMSPQ4XBMNk3zMVwm96cwXMnMNXhTTVdyzju8/fbbntGjRzsCAwPp
tddew+jRo/XCx/61BJsJsrMzMO71idi4bgbu6BKPvvdy1KqnAIflmfI6QvLz9jVr+Ry4cJZh81YN
K1YGYe/+yoip3ApDhw5CxzvawgTU/GVL1e+LFuPC1m3QzsRrIVk5LEhKaARmMlCuriE3KIjMcmXJ
USmGQqtVRVSVKihXoTwiypZFWGgYQkNDWKDTqQIDAjSH4dB0TSNmcaVUUpNSwW16pNvjgdvt0bJy
smV2ZhZLTUlBakICMs4mIDcxkYnUVLCsbKa53NCEYETEPAB5nA5SZcpQaM3qdF37dhhw/wC0uK6R
npKcwiZNnIo1q+Yhtsph9Oiegw7tFSKrKO+9awrelrGWvQPNIiHDi5+0sxoWLtIxc1YUoit0w2vj
RqFO3Trei0T+Bp3fBrKcA263W0VFRdGLL76I559/HuXKlaPc3FzDMIxbhBCbUAr936KAUoMBb31A
H9M0Z1epUsWMj483nn76afrpp5+QmJjIGGPX3Bj2B/8T58C+Q/jqyxnY8+cKlI8+gcaNslE3jqNi
BYXgIK8Rl5nFkJik4ehxB44eC0VKaiWUjWyCm29pjXvv7YbKVSvRobOn1WcfTaTD8+azeonJWntH
AGscGo7o4GAEGA54r0725sQoRfBIgWyPifNuF066XYg3PUiWHBeUogwQskDIBZEJxjhjTPrFznUw
OAAWQERBAMLAUAYMUUxj5XUdMYYTVQICUD4gEBFOJ4IdDjh0HbqV0aZAMKVCDjcRn5eLLdlZWMmU
ym7WWA0e+QyG9LlXA5H2w3fzsGzxUqRc2IbYKgm4vmkurmsgUKUSISyUwDQgL4/hXDLDgcM6tm8P
wtFjlRFTpQ0eGDoAHTu3BYC/xdtTGIQQ0HUds2fPlv369UNaWhpbtmyZuP/++52GYewVQjRFfql/
ieFKqNT+TaBlDMf+9ttvvEmTJnqFChVo6dKluOOOO/4WY9gfiLyEqFu9LtPS0rHhj53YsW0Xzpw5
geysFEjhBpiGgIAwlC1bAdVq1ECjxvXRpFl9VK5cEQBwNPGsfOOlVyhr3kLtLkFap3LRqBASDA8A
l5TgSlm5IfkpCgwMDIDOGByahgBNg8E0X14zgaCIoAiQZP0b5MtwYGDQmPf3OmPQ4GcIw/sbkxS4
IkhS1u8LggZAYwxOTUOw1Ut0S1oqPks7T0cb1FUjX3uVBt/bVwfATp2Mx8b1O7Fj+06cjT+G3Jxk
kMoFgcBYIAIDo1CxUi1c37wZ2t12M2rVru7DMVldLv5usIQc3XjjjcrhcGDjxo3sxhtv5Nu3bw9w
Op2jTNP8EKVUf4Ar11MNAMLhcIwVQrzatm1bz5o1axy33noreTwebN68WVNKsX8KUWQV1JQSaPzn
n8vfXh7DhnPod1SIgWYYyBIcnJSXKGGLmItbsecfePmZkr7vWExif1oU0qnA3/zxC46Li8f2e779
DJu1wgwDQUzD6rQLeC0lkbT27eXs779nVapUKYAc02Miz+W9VCMg0FmghNPGKXDtGtteDuwT/vjx
47J27dpYtWoVqlevTrVq1dI1TXMppeoASMAVlD5eKQPYD6rGGDtERM6TJ0+q8+fPay1atKADBw6g
Xr16f/sp4A+U31/falWYT3r+n0kp4XA48O2078T+oQ/qr9eow3SnE+lW733vQgkMXukapOtwMA0a
8yNJ8n5HEoET+SS1tJ6Vfy5bVHupQ9qbEO1jFM06FQxNg4MxGIxB95F6PigQPEp5TylSvm8oEMJ1
B0IMA88f2otVNzQVW/74Q9d1nXmj63qRerzd98n/Fsp/Cmyb8oknnpDTp09HRkYGe+yxx/jkyZMD
nE7nbNM0+6KUun8BdF8h6PAGxn4yTfPehx56yDNlyhRH9erVqVWrVjRjxgzjn9AVSwtSSOiGTlkK
GeUAACWvSURBVJ26dZOPrttsdKlSFRfcbjgZgwTBYBrKOhwwhUR8bg4O5WTjmNuF85LDRd5oa4im
oazuQAWnE7HOAJR3OhFheIkuQNdhaBoYs/qHXiTR/f/nVasUEaRSMKWES3Bkc44000Qy9yCZc6RL
gRylYFrMFcAYyhoONAgJQYOwMqgYFARTKWQKAau1KUI0DSe5iRvjj6n4+HiqXLmybktWKnSc/J32
2+XANn5dLpeKioqi559/Hi+99BIiIyMpOzvb0HW9o5RyFf4pBjAMo5WUcn1QUJA4d+6ctmTJEurf
v7/PJfpP6YwlBSEENE3DxGlTxa/DHtSX1W3KTnvc0BkQ5QhAutuFGecS8CtJlVstlsrWiaPI2FiE
R0Qww2Eol8ut5+blyqy0dJaVng6ekQEtJ4c5cvMQ5HKzYI+JEC5YsJQIIkKAIjjh1SGZdR2qhLe/
hAcEF4A8XYPL4SAzKBA8NISoTBno5cqSo1w5BJcti9CIMiwkNFQ5HE5IKZGVmcnOJSYi6ehRuI8d
12pnZLL7IqLYHdEV4VESGVKgijMQ3yecwdvVYuSBHTs0h8NxUVPffyPY0v/bb78Vw4YNY1lZWWzu
3Lli6NChTsMw9gshmiDfh1Vq+Kurt12imzjnN7/33nue559/3hEWFkZPPPEEvfPOO8bf6RItDRBR
4RRuatWmjXxi32HjvgqVkScFfko8iynBTlW/bx/Vf8AAtGjWTAsLDLycGg8OUFZuLrJzcykzOxuZ
2dnIys5CXm6uys7K1t0ej/R43OCmqSspNU3TlSMgQAYGBrLQ0FCULVcOUeXKoVzZsqxcmTKsTGgo
nPnPLG7PCAAdi4+nRcuX0/QpUxCx40/9w0rVWaOQEKRKiXanD9Mna9fKzq1aeYMa0tsc6N8soGzj
Ny4uTtWvXx+LFi1i9evX54cOHQowDOMpIcQkXIHxe7XAjgz3ZYxRhQoVPEQk3333XREcHCzy8vKu
WeuUKwWlFPlHqzmRXLlls3jl7bf5dY0bCwA0JaYqPRUaoXoPHMgPnDopyK8doeCC3G43uVyuAi+3
200ej4euVSRcWBdiFPds0zSJCuJZfvj1V7xBdLT8MLoSxRoOig4NlS+NeIZ/M/snfvzcOd+6lJS+
tpT/JhBCkFKK1q1bJwCIgwcPio0bN3IAStO0NADlLDr8x44xWxoG6Lp+HICaPn26x+PxSE3TxMcf
f3zN+oheEUL9NjkhNVWM+2gC73rjTbx/SLj8wBFCG6Or0EPlogkAdenVi5NFIJxz36s0YN/i4vF4
yDTNAuMU9TJNk0zTLPCb0ggPKaVvLDttYvGSJRyAahsSRqeq1aVfQyNpXGCY6l+lmnjwgQf4sg0b
fOv8u9JYSrxfVs/P9u3bi+uuu04QkezcubObMUYOh2OivxD+KwT8V8EAIAzDeFpK+XGdOnU8hw4d
cowcOZJ++OEHnDt3jmnWGftP6ptSCOiGgTxuqnc/+URt/PRz1i7pgt4zIhK1wsPBdB15UiBMM9Dv
1BFcaN9WrPvlF900Tabrus+Yv3DhgtqyZQsdP36c8vLykJKSogUHB8uyZcuyihUrIjY2llWtWpVV
qlSJORyOYhfsXztxGRWEUlNT6cyZM3TmzBk6d+4cMjIyYJqmDA4O1sqUKaNFRkaiUaNGrHbt2gwA
U0r5bJvlq1aJp7p21TfWbMCcSkHTDQQzhjyPGzvS07BQcZV9ewf18NixrOV11+lQBPqbEtsuBXbL
k2PHjsk6derg119/RZ06dVCzZk3GGJNKqUYADuMKu77ZcDVWaY8Rruv6ESll9C//r70vD6+quvr+
7X3uzQ25NxOZIQQICTGQRgSqgiYiTuijKDggglOlgp8WBaX6KX1bLNQKRdHH6W0BQYsiUwuWgvBh
EYKAr0CEBExCgCQEQpKbebjn7GF9f+SeeInBOiAE+/6e5z6Qm5N99rDW3mvaa23cKIcNG2aEh4fT
0qVL6b777jtvugABIKXADQObdu+WLzzyCK7K+9L4ZXxPFhPiQYOSaFUKighOw0BPpxM5NV5kVZbR
1q1b9VVXXWUAwMmTJ/XMmTPVwYMHKTExkSmlsHPnTv7rX/9aaa1ZS0sLq6mpIa/XS/X19SAiCg8P
Z0lJSSwtLY3179+f9erVi3Xv3t0uk3SaYd80TdTW1tKJEyeouLiYCgsL6ciRI1RZWQkpJUJCQhAb
G8tiY2MRGhrK3G63Xrt2Lfbv329ceeWVuri4mEJCQtjUqVPZnXfeafjbp8S0ND2lsNiYmX4xTgkL
plJgRDA4h9vhQDAR9lVV4h2uda9nZujpM2YYLj8TnU/dwLYgTpw4UW3evBmnTp1iDz30kFi8eLHL
6XT+XQgxBt/T8hOIs8XmpznGBg8ebH7++efOhx56iDZv3ozS0lKmtebnekKpLaoLjHP64xuvq10z
nuG/DYngGdHRqLYsSK3bzIiGgUjDgRMN9VhZ56WdyUk67soraF9uLv1p/nweHh6OiRMnql/84hf8
/vvv5xEREdzr9dLkyZPVqlWrOuNqqqmpoaNHj1JBQQEVFRXRiRMnqKGhAaZpAv6oGyJyKKWUZVlK
+u93hoaGIiEhgaWmpiI9PZ3379+fJSYmMjtlSiDefPNNoZTCY4895mxtbdWbN2+m5557Tt96663s
0UcfZc8++6yur6tn/QjwfLKd3wiDZ0bFoJkztEgBDgYNwON0IlgqrCkvpV03XqtmvL2IJUVEGufL
jG3v/pWVlSo+Ph5vv/02brvtNsTFxZEQwmEYRpaUMgdngQHOFuxkRHGc8zoAavv27aKqqkoBkCtW
rDjnuoDWmrRSZBHpJ2f82poV5NY67WJqTR9Mp1IyqKLfQDrZN53MtIvpaI9kmhPs0Xf//DLx+tKl
orKxURGRLi4ulhMmTDAdDofIyck5bQw7duyQo0ePtoQQ5PP52mXvfyNH66amJl1eXq4KCgrkgQMH
dF5eni4uLlZVVVXarg3QGQLl+9bWVpJS0ltvvSUffvhhq8PcqoEDB4r+/ftbixYtEkSkBZH+aPdu
8eh994knI6PV3sgE8vXPpPLkAXS8bzqV9xtIZSkZ5Bs4hL6IjKfHBg8V+0uOSfu95xr2WH71q18J
j8cjiUg988wzPgDkdDpzAmiuS8EAAKfT+ScANHz4cB8RqQkTJsi+fftKItLncjKVUqSI9P99eLJ4
BaDS+D60JTyWNoVG047IeCqM70PHkwfQ71xuurZ/mlywaKFolKK9g62tre1tPfLII+LDDz9sp+yS
khKVmZlpvfvuu4Koc+VRa90e428zxrdRaAMJ/Ux/Y1vWampqVFpamvXee++1W3Sam5vVxIkTzYqK
CkVE5PP5SPqT7RKR3rznc/GLMWPEiyHhujqpP9X1uYhOxPeh47FJVBydSJWJKVTsiaapKWmysOSY
svt0rhA4NsMw5EsvvSRbW1ulx+OxGGNkGMYtgfT2Q3E2NR2OtqO9B+e8QGvdbdeuXbpv3748Li6O
Vq9ejbFjx56TUGn7YvYf5s613vn9bOPKgRmoDw9DcFiYViA019Vxq+IUCgoL+Y2PT1WzfvMbHhMW
xqE1LCkRFBRkN0VffvklrV69Ws2cOZPdeOONCA0NpfLycrrtttv4U089ZXzXmCciOu1f4CuF87so
nraMnp+fr6ZMmaK7d+9OUVFRWLduHe/VqxcWLlzIUlNTeVhYWHujwrLgbBsbvbd2rXr/sak8Egzx
fXpTsNtN3OlkNc3N1NTUxPKLCllLr0S5ZcsWIyYqygA7N6HPNn0888wz8pVXXmGtra1szpw5cubM
mU6Hw7FfSjnYnoKz8b6zPSIDgHI6na8IIaZmZWWZ27ZtC7r33nt1Tk4Ojh49es6C5IgIRYVFKjIu
lnkiItCtw1g3fvyxmjt3Ln28caMDRExI2VY7C6ADBw7o5cuX6x07dpAQAn379mVDhgxhcXFx6Nev
H8vMzOTdunU7qwXDv+8Y7fKgubm5uqSkBK2trXTkyBF8+umnuqGhAX369GGjR49mt9xyC3e5XBwA
TJ8PruBgvLl0iVy3fj39fcVKBwC40CZQt2pNLU1NqCwtpfj4+HaP/o89VntTaGho0DExMTR79mxM
mzYNMTExuqGhwckYu1tr/QHOo+Pr38HWBRI5500A1M6dO0VlZaUCIJcvXy7PJDL86EerUqRkmxNL
K0VzZs8Wf/7v/xZWgHiwfv16OWbMGCs7O9v8zW9+I/bs2XOaEywQXcVm/g3iiT5x4oR65513xB13
3GENGzbMnDVrlvB6vcruf63Xq0dkZVnNDQ2alCaSsqMz7ZzClv2ffvpp4XK5JBGpF154wQSgHQ5H
vp/wbRrrsrB1gZfwlS6gJ02aJBMTE2Xbmp0bmVIp9TUZ2n73rbfeauXn5ysi0ps3b5ajRo2yRo8e
ba1bt+5rRB8ox3fWZldA4J1iIcTXGKOoqEg9+eST4rLLLjNffvnldufXDTfcYH3yySenbUy2HH4u
x2q/y+v1KsMw5Pz586VpmjI8PNzy16Ye76evrhdX0wE2hyYYhlEPQG3dulXU1dUpAHLx4sXnzTts
L2ZjY6O+/vrrzWPHjsl7771XXHrppdaGDRtOI/zOiOhCgx32EXhalZWVqUmTJlnZ2dnW7t275RNP
PGEtWrTovHvs7T4GWn5mzZpl7/55+Gr3vyBgxwjNZozRJZdc4iMi/eSTT8qoqCgphFDnYye131db
W6uioqJEYmKi9eyzz54WCtBVRJsfY+yBBL5lyxaZnZ1tejwe8fbbb59XBrBp4eTJkxKAXLhwoWxq
apJut9u2/NwRSFcXAuwYoe6GYVQCUB9++KHl8/ls05Y4HxNuM0B9fb26++67Lb+MT0RdR6Y/F3Ng
z7uUUk2bNk34xb7zNgd2zM8999wj4uPjJRGpadOmmWiz+3+OgDQGFxIcAOBwOKYzxig1NdVHROrF
F1+UwcHBsqmp6bycAkTtekCXDAA7V+gq47Z9HQcPHpQA5Pr162VFRYV0Op0W55wMwxjlp6eufbOq
E9gJSLoZhnEEgF68eLFJRCosLEzOmDHjvJwCNlQXDQE+l+gYGn4+YO/+2dnZMjMzUxKRuueee2yv
75YLlfht2BahCYwxio2NNS3LUsuWLZMA5MmTJ+WPRYiBnth/Z70JfPZMliP7E/g7++/s7wN/7uzT
2TPf5OntiG/bj87a6wyd9e/btHe2YDPfpk2bJAB54MABmZ+fLwAIzrkG8PMLnQEAv/xmGMb/AKBZ
s2b5iEj369dPjhs3TtA5TKcYuOgdF+FMi9MZuooZtKv04/v23T/Hqnfv3vLOO++URKSuvPJKH9rq
KP/1XBD/uXAoGACUYRgjiOhfLpdLlJaW8qKiIgwfPhy5ubnIzMw8axkkyO+xrK6u1iUlJeQPMGOc
c56amorIyMj2K40BIb86NzeXjh07hoiICAwbNoy5XC5Ofs9kQUGB8vl8LCgoSCcmJrKwsDCDiFBZ
WalLSkpgGAaSkpJARPB6vWhtbUVYWBj5M5nBsiyEhoZSfHw8DwiX5kRE3bp1o7S0NCOw/7Zzzvbc
2h7YgwcPqtbWVu52u3VKSgpzOBwcAKqrq3VpaSn8XmvExsa2950xhubmZu12u09TIn0+Hx06dEhz
zrk/84Pu1asXCw8P58XFxcrvT2AhISEsOTn5rCugdsjDggUL5LRp01h9fT3bvn27uvnmm7lhGD6l
1EAApf61+nEKT5xD2KLQ3wHQfffd5yMifc0118ghQ4ac1VPAPr6Li4tFdna2CUAFBwfL6667zkxI
SBCjR48WeXl50t49t2zZIgYNGiT79OljvfDCC9b06dPN5ORk4bdUaSLS7733nul2uyUAlZ6eLrxe
ryQi2rdvnxg6dKgYOHCgOHDggHXZZZfJfv36ibvuussXGhoqDcNQAwcONG+++WYTgHj55ZetnTt3
mrGxsQIAxcfHizVr1pht3f7KOvPCCy+IMWPGWPa82Er7G2+8YbrdbsU5V5dffrlobItapaKiItGr
Vy+Rmpoq9u3bJzqILzorK8vMycmR9jvsYLPf/va3Pj9x6auuusoqLi6WUkrKycmxAIiwsDBr5cqV
pj2nZwt2/7xer+ScyxdffFESkUpKSvL5zZ6zAunmpwDbOZZmGIYJQHzxxRfi+PHjCoBcvXr1WTXD
2YT05z//2fJboBQRyZkzZ0oA1K9fP0lEOicnRxqGoRwOhz58+LD9cj1p0iQBgKZMmdLuI5g4caKE
/37N1VdfLYRoixx97bXX5H/9138JIqLs7Gzf4cOHFRHJ9PR0AYCefvppk4j0448/LmbMmGEREV1/
/fUSAN1yyy3CJghb7vf5fKpPnz4SgD506FB7SLKtLI4dO9ay+zF27Nj2/i1YsEDMnTu3PTQ64D6t
AKBvv/329o3GZn7TNFVUVJQCQPPmzWufv5deekmMHDnSKi4uVvamcjZhj2XcuHGiR48ekojU7Nmz
TQDaMIxjANy4AEIevivsU2A+ALr88st9RKSnTZsmo6KipGVZZ80sau9yb775pgZAffv2Ja01bdy4
UQUFBRFjTJ84cUKMGDFCAqCJEycKIqLm5maSUtK+ffuEw+HQAPT69euFUoqee+45MWTIENMmvgce
eMAiIj1v3jxrzpw5UilFn3/+uR0erQYMGCAYY/TEE09YSimqra1VRUVFUimlb7nlFgsA3XHHHZaU
UgemTP/rX/8qABBjjKZOndpuKbOZ4MEHH/RlZWXZTKDnzJljERF98MEH6q233lJ2OLV9aowcOVIC
oKCgIGUzlM0EjY2NslevXhIALViwQPkZ1ZoyZYpFP5KZ2G5v+/btEoDcsWOHLC8vl0FBQbbZ885A
evmxcS6dCxoAF0LMNgzj1K5du5wrVqyQf/rTn1hLSwuef/55bZdBOhsIzGgWFBSkGWN648aN2rIs
ZGdnazuFI2MMgwcPBhHB4XDAMAwkJiby0NBQYoyxv/3tb+Cco66uDu+//z679957JQAsWbLEsXTp
UpWYmEhoy1KAIUOGOMifljGgCDbjnCMsLIynpKQYnHMEt6VWgcPhMGy9xz92Wrx4sX1CYcWKFay5
ubm9DK1hGGhtbcWyZcswfvx4CYDNnDnT2LNnj4qIiCDTNNtrK3POsXfvXqqqqlIJCQnasiz++uuv
E/CVnuR0OrmtR5SXl8ubbrpJ79q1C2+++aZDKcXOdmY//3xAa60nTJiAO++8E8OHD+e//OUvpWVZ
Ts75/1NKrcQ5vOl1LhnAzgVbyzmfyTnnU6dOJaUUFi5ciNmzZ7OysjJ1NovtCSE0AFRVVbEbbrhB
rlmzBrfffrt87733WHV1NXw+HxERwsLCTqvM4nK57Hu7aGhoAABqaWlRQgjHokWLeHp6ugTAHnvs
MWPJkiUqMjISANqrvwNfKa5ExIG2OwpStkXwGobBACAoKIgAMCklGGPYvHmzTkxMZDt37kRISAhV
VFTwDRs2aPLnMAIAKaUhpeRLlizhGRkZkoj4+PHj2dq1a6XWWvrfCQBYuHChWrlyJZ81a5bmnGP5
8uWspqZGBzAdI38V8Hnz5jk2bNhgFBQUGJ9++qkyDOOs1362r1j+7ne/0+Xl5Vi6dClbu3at+uc/
/2kYhmFJKafitDL0Pz7OtXtZATCEEIsZY/9z6tSpoOeee07cc889PDMzEw899BAxxuhsTbzdkNvt
pldffdUoKCjgq1atMnr06MGDgoLaM6M1NjYS+TMfA20WktbWVgBAcnIy0JbBjZmmSU6nk69atYq5
3W7d2trKPvroo2CHw8GA07M7BDAAs38OKH1EAODxeCjw+ddee03Hxsbqw4cPs8jISM0YY3/5y1/g
j4Zsm0ClyLIsFhQUxNesWcMiIiJUUVERf+ONN4IYY7aYiRMnTuhNmzahsrLSkFIyrTVVV1cb77//
vrYL8/lPAgKAGTNmiKuvvlrW1dXx8ePHM6/Xq+zT5GzAPk0KCgrU73//e7Z06VIYhoHJkydr3lZn
ai6AQ/iBWR6+K85XfIVmjD1uGAbNnz+fFxUV6ZUrV2Lz5s1s/fr1yvCn9/5BL/AvMAA4nU5KTU1l
wcHBXErJlFIYMGAAz8jI0ESE/fv3gzEGKSWUUigrK9ONjY2MiGjMmDHMv3szmzkHDBhgvPPOO1op
RQ6Hg3Vk2MCkvH595LTfWZZFABAaGsrtXbG0tFRXVVWBiPiKFSvYlVdeyYiItmzZYuTl5Wn/nJDP
51N2P1JTU413332XAJBhGMxmWs453n77bZ2ens42btwoysrKdGpqqgaAt956q92sKKXUaNM3kJqa
yletWsWioqJUaWmpMW7cOGKMtTPLD4G9uTDG6K677kJ2djYmTJjAHn/8cXnq1CknY6xQKTUHbaLP
BW/y/DYwAMDhcLwNgLKysnxEpB955BEZFRUlTdNU3/YO7ZmUYCKiN954w2KMUXJysiSidouGrYht
27ZNOJ1O5XK5dEVbpjQiIj158uSvWYFGjRpl7d27VxERmaZJRERz5swRALT/8jkFXq7xi0lfU2SJ
vrICTZ48uV3DnDJlirVmzZrAuBA9aNAgCYBuvfXW9u+zs7PNgoKC0/rxhz/8QQCgOXPmCCKiU6dO
6UsuuaRdkSUiOnTokDQMQwOgtWvX2kq/io6OlgDopZdesoiI1q1bJ4KCgjQAGj9+fPv4f4hxwl6P
uXPnCgCyurpa+TO8WYZhEICRgXTxnwA7ui/OMIwaAHLZsmWWUkqFhITIJ5988nvHCdk25ry8vHY/
gNvtFsuXL/cJIbS9kDYx5uTkiCFDhsiMjAxrwYIF5gMPPGDZsUqqDbR8+XJfZGSkmDRpkllTUyOl
lDax6xEjRlh//OMfLZsBfD6fnjdvnhkSEqIcDoceOnSo2Lt3r2lbZTZt2mT7AVRMTIxctmyZb+7c
uZZhGPLBBx80jx8/Ln0+H+Xm5oqhQ4daTqdTAZALFiwwV6xYYYaFhYkpU6aYQghtW3yoLXuaNXfu
XGmaprrhhhvM0NBQ6/333zf9meb0kiVLLJfLJTnnul+/flZBQYG1Zs0aX8+ePWVERIS6/vrrfSUl
JbK4uFhERkZa3bp1kwDkXXfdZZaWlsrva6Gz57mgoKA91JmIVHJysm3z/4ufJs5LqPP5tLPa2aX/
j9b69fDwcKusrMyxadMmGjt2LPLz85Genv6dPcTkt3BUVlbqsrIyMgxDM8aYy+Vi/fv357ytUACA
0z3Bu3fvpkOHDmmXy8VHjBiBhIQEDn/25kOHDimHw8EcDgf16NGDBQcHczt3TUNDg66vr6ekpCSD
2pRVysvLI5fLBafTyXw+H2JiYiguLo4TEY4ePapaWlqYfzc2TNNUSinu8XhYS0sLpaSkIDQ0lJeW
luqmpiYEBwcDANmKsmmaICL2s5/9jNn9AwDLsnRLSwvcbjcrKirSoaGhME2TpaSkcCKivLw88lu5
iHPOYmJioLWG0+mEEALV1dUUFRXFAKCurk67XC4YhsGam5tZTEwMCw8P/853oOmrBMR64MCBFBsb
i3/96198+vTp4uWXX3YahlGulMoA0IjvUd7oQgdDGxO0xwk98MADPmrzXMpBgwa1l139MW9nnand
HyKC/SfDFjHtXKdERM8//7xgjMm6ujq1Y8eOdtHHMIyb/LTwHyP6dIQ98Mv8O6LYvXu3OHnypAIg
X3311XYZ1J7cb5tj599FeJ7p2YDQg3Z818jNM0VZBr7rTJ9vei7wu2/qR2fvPVNkasf7v98mWrVj
H+08Rp08q7du3SoByDVr1kghhOrdu7ct+izyr/0Fc8vrx4JtunuTMUaZmZk+ItK2wjR48GCxYMEC
4Q9V6PSyele9qP5TQ+DufgYPsa6qqpIbNmyQTz31lLjkkksEAHn//fcLItL333+/ibbAyHIAEfgJ
hjt8H9gKcXfDMCoAyLlz55pEpLdv3y7HjRsnPR6PACBSU1PF9OnTxdatW2VLS4uib8je8L8M8cPQ
cXfv5NTRRKSOHTsmP/jgA/Hwww+LtLQ0gbZ8PbJnz57ywQcflB999JEkIrV06VILgOlwOAjAaP/a
/8eKPh1hAADnfCLnnAD4Hn300db8/HyLiCQRyb1798rp06fLPn36CACiW7du4pprrhHz588Xubm5
Ukr5NYbouID/yxSd41sQO1FbXlP12WefyVdeeUXcdtttIjY2VsJP8D169JD33XefXL16taytrZXk
X7fCwkLr6aef9jkcjlbeVhz8Nf+adwnRpysdP3b8x18BTLC/7N27txg1apS+++672YgRIwwAqK2t
xT/+8Q+sXLkS27Zto/r6ekREROCyyy7Dtddei6ysLJaRkcHcbvfXyhlprU9zVAV+fsqggJSM9JVj
CmeoE0ZCCCouLqa9e/dSTk4OduzYwfLy8trnbsCAAbjuuutw44034oorroDH4wEA5Ofn648++khv
2rQJe/fuNaqqqgIJfR2A2+EP5EMXsPp0pVUP7Ms9DodjrFLqCiKKs78MDw9XV111lRw7dixGjRpl
xMXFMQCstLSUNmzYgHXr1mHXrl2oqakhl8uF9PR0DB8+HMOHD2dDhw5FcnKyXbTia+MOZAzgwmOO
zgjcBuf8TLn+CQAaGhroyJEjlJubS7t378Znn32GgwcPwufzMQBISEjA5ZdfjmuvvRYjRozAgAED
AACWZdG+ffvo448/1h9//DH27Nlj1NbWnrazM8ZOOhyOz5RS/9RaL0LbJndO432+CV19ZSODgoKG
AbhJKTVSKZUe+MuLLrpIXHPNNeqmm27iWVlZPDQ0lAFgXq+Xtm3bhs2bN2P79u0oLCwky7Lg8XiQ
kpKCQYMGYejQocjMzGQpKSlISEiwmeIbK7p0JCzg64ltO2OWf8dAdIbYJ+okkW5n7/8W1R4JANXV
1aG0tJQOHTqE/fv3U25uLvLz81FaWtoes5ScnIyhQ4ciKysLV1xxBQYOHGgnC6aysjLavXu3/uST
T+jTTz/l+fn5TtM0T3sx57zSMIxcxth2rfV2KWUugPrALqOLEL/dma4GO5sEcHpIrOF0Oi9mjI0k
omuFED/HV0XSYBgG0tPTRVZWlho5ciS74ooruO3MAoCSkhLs2rWLduzYgc8++wxFRUVUU1MDAIiM
jERSUhLS0tKQlpaGiy66CH379mU9e/ZETExMx4ouXW3O2ovMNzY2orq6msrLy1FSUoLDhw9TQUEB
ioqKUFpaiurq6nbnV8+ePdmAAQMwdOhQXHrppcjMzESvXr3a2ywtLaV9+/bpnTt30q5du1heXp7D
6/V2VFo15/yon+B3aq13SynzANR1eM6uWKPQhYgf6HqL2Vn/bCI+LRuwx+OJFkIMBXCVlPJKpdTP
AIQHPpOQkKAyMzPlsGHDaPjw4WzQoEE8JiamnSksy0JhYSF98cUXyM3NRV5eHg4fPkwVFRVoamoC
AAQHByM8PBwxMTHo0aMHEhIS2j/R0dEsOjoaERERCAsLY263m7p168aCg4MpKCiI+509wFep46mT
8dk7IkkpIaVklmVp0zS5z+fTLS0trKmpSTc0NLCamhpUV1ejqqqKTp06hYqKClRUVKCyshJerxeN
jY2wLAucc4SGhiIuLo4lJyfjoosuQkZGBjIyMpCSkoKoqCj7/VRTU0NffvklffHFF3rPnj3Izc3l
RUVFzoaGhq/RBmOswuFwHOKc79Vaf84Y+8KyrGIAVodHecCYu4Ss/00EdqHAJhY7XPa0qEG32x0n
pRzEGLtcKXW5EOJnAHp2bCQ2NlanpqaKzMxMuvjii1lGRgbr378/j4mJOW2HF0Lg+PHjKCkpoSNH
juDo0aMoKSlBeXk5VVRUoLa2Fo2NjfD5fHacP0NbZCUzDEMHBQUZnHPlcDiY//+EtihYmxgYETEi
4lJKbVmW9l9C4aZpKrSVUNL+8ZJhGHC5XPB4PAgPD0d0dLRdlA9JSUno06cPevfujcTERMTExASG
j1BTUxOVlZVRYWEhHTx4kPLy8lhBQQE7evSoo6ampjPlQDHGjjscjkLO+X7GWK5S6oAQ4gjawhY6
or0mGbo4wXfEhcQAnfXd3s07O1rdISEhKVrri4loiJTyYqVUKoAenTUWHh6ue/TooZKTk3W/fv0o
JSUFycnJrHfv3jwhIYH5d81OxSDLstDU1ITGxkZqbGzkTU1NqqmpyWhpaaHW1lZtWRaXUnI/kRMR
gXMOwzDgdDq50+mkoKAgHRISwrp168Y9Ho/yeDzc7XaTx+NhHo+H/DFBgSAAaGlpoerqapw8eZKO
Hz9OJSUlVFxcjKNHj7LS0lJ+8uRJR01NzZnWWQM4ZRhGiWEYBZzzfK11PoAiy7LKAPg6+ZvANIU2
sV8wBN8RFzIDdDYWmyG+dkIAQExMjKeurq63w+FII6IBWut0pVSqUioJQOw3zUdwcDDCwsJ09+7d
dXR0NEVFRVF0dDRFR0ez7t27U0REBIuIiGChoaHk8Xi4y+ViHo9HORwOzjk3nE6nNgyDAi7FMPtu
gtZamaaJlpYWbpqmampqYs3NzVRXV8fq6up0TU0Nq6mpoerqaub1epnX62W1tbW8vr6e26LaN4AA
1HDOTxqGUcI5P8w5L9JaHyaio+Hh4SeqqqrO1MhPitg7w0+JATobW6BC3SlT+OFxuVzxAHoB6AOg
DxElaa0TtdbxWusoAGFoy1bQldAKoJExVsc593LOTzHGjnPOjwMoA3CciE6EhIRU1dbW1n9DO4Gb
B3X4/KTxU2aAM403kCmAb2GZiIyMDG9paYnknEdrraMZY7EAYogomoi6A4gkojAAYUTkJqJuAIKJ
KAiAk4gc8Ee+BjRLaJO1FdoUfIsxZgHwcc6bAbQAaGCMNQCoY4zVcM69ROTVWlcZhuHVWntdLldt
Q9vF5W9TMsiW1e33/8cQ+pnw/wGCkm1T3khRxwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0wMS0w
NlQwNzoxMjo1NCswMzowMJ79A3IAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMDEtMDZUMDc6MTI6
NTQrMDM6MDDvoLvOAAAAAElFTkSuQmCC" />
</svg>

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1,55 @@
<?php
class Server
{
public $host;
public $urlServiceSpota;
public $secretKeyRobot = 'robotInformatikaKu4t!2!123';
public function __construct()
{
$appUrl = rtrim(getenv('APP_URL') ?: 'https://spota.untan.ac.id', '/');
$this->host = $appUrl.'/konsultasi';
$this->urlServiceSpota = $appUrl.'/steven/API';
}
public function getSecretKeyRobot()
{
return $this->secretKeyRobot;
}
public function getSpotaServiceURL()
{
return $this->urlServiceSpota;
}
public function getAPIUrl()
{
return $this->host.'/API/web';
}
public function getHostUrl()
{
return $this->host;
}
public function getLoginPage()
{
return $this->host;
}
public function getDataTableURL()
{
return $this->host.'/API/datatable';
}
public function getPrintUrl()
{
return $this->host.'/print';
}
public function getBerkasUrl()
{
return $this->host.'/berkas';
}
}

View File

@@ -0,0 +1,300 @@
<?php
date_default_timezone_set('Asia/Jakarta');
function checkKey($methodName, $keyName)
{
$methodName = trim(strtoupper($methodName));
$error = false;
$msg = '';
switch ($methodName) {
case 'POST':
if (!isset($_POST[$keyName])) {
$error = true;
$msg = 'Param Key Not Found';
}
break;
case 'GET':
if (!isset($_GET[$keyName])) {
$error = true;
$msg = 'Param Key Not Found';
}
break;
case 'FILES':
if (!isset($_FILES[$keyName])) {
$error = true;
$msg = 'Param Key Not Found';
}
break;
default:
$error = true;
$msg = 'Request Method Not Found';
}
if ($error) {
echo json_encode(array('status' => 0, 'msg' => $msg));
exit();
}
}
function getHari($date)
{
$timestamp = strtotime($date);
$day = date('D', $timestamp);
$hari = '-';
switch ($day) {
case 0: $hari = 'Minggu'; break;
case 1: $hari = 'Senin'; break;
case 2: $hari = 'Selasa'; break;
case 3: $hari = 'Rabu'; break;
case 4: $hari = 'Kamis'; break;
case 5: $hari = 'Jumat'; break;
case 6: $hari = 'Sabtu'; break;
}
return $hari;
}
function convertHaritoInt($hari)
{
$intHari = 0;
switch ($hari) {
case 'Senin': $intHari = 1; break;
case 'Selasa': $intHari = 2; break;
case 'Rabu': $intHari = 3; break;
case 'Kamis': $intHari = 4; break;
case 'Jumat': $intHari = 5; break;
case 'Sabtu': $intHari = 6; break;
case 'Minggu': $intHari = 0; break;
}
return $intHari;
}
function createToken($id)
{
$x = base64_encode($id);
$time = base64_encode(time());
//php7 keatas
$token = $x.bin2hex(random_bytes(64)).$time;
//dibawah php 7
//$token = $x.bin2hex(openssl_random_pseudo_bytes(64)).$time;
return $token;
}
function getUnauthorizedMessage()
{
return json_encode(
array(
'status' => '0',
'msg' => 'Unauthorized',
)
);
}
function getUnknownTypeMessage()
{
return json_encode(
array(
'status' => '0',
'msg' => 'Unknown Type',
)
);
}
function getKonsultasiNotFoundMessage()
{
return json_encode(
array(
'status' => '0',
'msg' => 'Data konsultasi tidak ditemukan',
)
);
}
function getDataNotFoundMessage()
{
return json_encode(
array(
'status' => '0',
'msg' => 'Data Not Found',
)
);
}
function getDataEmptyMessage()
{
return json_encode(
array(
'status' => '0',
'msg' => 'Data cannot be empty',
)
);
}
function getHariText($hari)
{
$hariText = '-';
switch ($hari) {
case '0': $hariText = 'Minggu'; break;
case '1': $hariText = 'Senin'; break;
case '2': $hariText = 'Selasa'; break;
case '3': $hariText = 'Rabu'; break;
case '4': $hariText = 'Kamis'; break;
case '5': $hariText = 'Jumat'; break;
case '6': $hariText = 'Sabtu'; break;
}
return $hariText;
}
function cwUpload($field_name = '', $target_folder = '', $file_name = '', $thumb = false, $thumb_folder = '', $thumb_width = '', $thumb_height = '')
{
//folder path setup
$target_path = $target_folder;
$thumb_path = $thumb_folder;
//file name setup
$filename_err = explode('.', $_FILES[$field_name]['name']);
$filename_err_count = count($filename_err);
$file_ext = $filename_err[$filename_err_count - 1];
if ($file_name != '') {
$fileName = $file_name.'.'.$file_ext;
} else {
$fileName = $_FILES[$field_name]['name'];
}
//upload image path
$upload_image = $target_path.basename($fileName);
//upload image
if (move_uploaded_file($_FILES[$field_name]['tmp_name'], $upload_image)) {
//thumbnail creation
if ($thumb == true) {
$thumbnail = $thumb_path.$fileName;
list($width, $height) = getimagesize($upload_image);
$thumb_create = imagecreatetruecolor($thumb_width, $thumb_height);
switch ($file_ext) {
case 'jpg':
$source = imagecreatefromjpeg($upload_image);
break;
case 'jpeg':
$source = imagecreatefromjpeg($upload_image);
break;
case 'png':
$source = imagecreatefrompng($upload_image);
break;
case 'gif':
$source = imagecreatefromgif($upload_image);
break;
default:
$source = imagecreatefromjpeg($upload_image);
}
imagecopyresized($thumb_create, $source, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height);
switch ($file_ext) {
case 'jpg' || 'jpeg':
imagejpeg($thumb_create, $thumbnail, 100);
break;
case 'png':
imagepng($thumb_create, $thumbnail, 100);
break;
case 'gif':
imagegif($thumb_create, $thumbnail, 100);
break;
default:
imagejpeg($thumb_create, $thumbnail, 100);
}
}
return $fileName;
} else {
return false;
}
}
function getPeriode($waktu, $before = false)
{
$interval = 5 * 60; //10 menit
$timeStart = strtotime(date('d-m-Y 00:00:00'));
$timeEnd = strtotime(date('d-m-Y 23:59:59'));
$inTime = true;
$i = 1;
$periode = '';
$periodeBefore = '';
while ($inTime) {
$time = $timeStart + ($i * $interval);
$timeBefore = $time - $interval;
$timeNext = $time + $interval;
if (($waktu >= $time) && ($waktu < $timeNext)) {
$periode = date('H:i:s', $time).' - '.date('H:i:s', $timeNext);
$periodeBefore = date('H:i:s', $timeBefore).' - '.date('H:i:s', $time);
$inTime = false;
}
//stop looing kalau belum jam start
if ($time < $timeStart) {
$inTime = false;
}
//stop looping kalau udh lewat
if ($time > $timeEnd) {
$inTime = false;
}
//echo $time.'<br>';
//array_push($arrTime,$time);
++$i;
}
if ($before) {
return array(
'now' => $periode,
'before' => $periodeBefore,
);
} else {
return $periode;
}
}
function utf8ize($d)
{
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} elseif (is_string($d)) {
return utf8_encode($d);
}
return $d;
}
function convertToDmy($tanggal)
{
$arr = explode('-', $tanggal);
if (sizeof($arr) === 3) {
return $arr[2].'-'.$arr[1].'-'.$arr[0];
} else {
return $tanggal;
}
}
function convertKosong($val)
{
if ($val === null) {
return '-';
}
$val = trim($val);
if ($val === '') {
return '-';
}
return $val;
}

View File

View File

@@ -0,0 +1,88 @@
<?php
class createCon
{
public $host;
public $user;
public $pass;
public $db;
public $dbSpota;
public $dbBio;
public $dbDosen;
public $myconn;
public function __construct()
{
$this->host = getenv('DB_HOST') ?: 'localhost';
$this->user = getenv('DB_USER') ?: 'spota_informatika';
$this->pass = getenv('DB_PASSWORD') ?: 'Eud!}ZML3HVO';
$this->db = getenv('DB_KONSULTASI') ?: 'spota_konsultasi';
$this->dbSpota = getenv('DB_SPOTA') ?: getenv('DB_NAME') ?: 'spota_spotadb';
$this->dbBio = getenv('DB_BIO') ?: 'enda_daftarmhs';
$this->dbDosen = getenv('DB_DOSEN') ?: 'enda_dosen';
}
public function connect()
{
$con = new PDO('mysql:host='.$this->host.';dbname='.$this->db, $this->user, $this->pass);
if (!$con) {
die('Could not connect to database!');
} else {
$this->myconn = $con;
}
return $this->myconn;
}
public function connectSpota()
{
$con = new PDO('mysql:host='.$this->host.';dbname='.$this->dbSpota, $this->user, $this->pass);
if (!$con) {
die('Could not connect to database!');
} else {
$this->myconn = $con;
}
return $this->myconn;
}
public function close()
{
$this->myconn = null;
}
public function connectDbBio()
{
$con = new PDO('mysql:host='.$this->host.';dbname='.$this->dbBio, $this->user, $this->pass);
if (!$con) {
die('Could not connect to database!');
} else {
$this->myconn = $con;
}
return $this->myconn;
}
public function closeDbBio()
{
$this->myconn = null;
}
public function connectDbDosen()
{
$con = new PDO('mysql:host='.$this->host.';dbname='.$this->dbDosen, $this->user, $this->pass);
if (!$con) {
die('Could not connect to database!');
} else {
$this->myconn = $con;
}
return $this->myconn;
}
public function closeDbDosen()
{
$this->myconn = null;
}
}

View File

@@ -0,0 +1,30 @@
<?php
$interval = 5 * 60; //10 menit
$timeStart = strtotime(date('d-m-Y 00:00:00'));
$timeEnd = strtotime(date('d-m-Y 23:00:00'));
$inTime = true;
$i = 1;
$periode = '';
$periodeBefore = '';
while ($inTime) {
$time = $timeStart + ($i * $interval);
$timeNext = $time + $interval;
$periode = date('H:i:s', $time).' - '.date('H:i:s', $timeNext);
echo $periode.'<br>';
//stop looing kalau belum jam start
if ($time < $timeStart) {
$inTime = false;
}
//stop looping kalau udh lewat
if ($time > $timeEnd) {
$inTime = false;
}
//echo $time.'<br>';
//array_push($arrTime,$time);
++$i;
}
?>

0
konsultasi/css/index.php Normal file
View File

View File

@@ -0,0 +1,52 @@
html {
scroll-behavior: smooth;
}
body {
background-color: #F1F8FB;
}
.webLogin {
background-color: white;
float: none;
position: absolute;
width: 350px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 2rem 3rem;
-webkit-box-shadow: 12px 14px 16px -9px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 12px 14px 16px -9px rgba(0, 0, 0, 0.75);
box-shadow: 12px 14px 16px -9px rgba(0, 0, 0, 0.75);
border-radius: 25px;
border: 1px solid #EBEBEA;
}
.webLoginNew {
margin: 2rem 2rem;
background-color: white;
float: none;
padding: 2rem 3rem;
-webkit-box-shadow: 12px 14px 16px -9px rgba(0, 0, 0, 0.75);
-moz-box-shadow: 12px 14px 16px -9px rgba(0, 0, 0, 0.75);
box-shadow: 12px 14px 16px -9px rgba(0, 0, 0, 0.75);
border-radius: 25px;
border: 1px solid #EBEBEA;
}
.blueColor {
color: #2185D0 !important;
}
.rightFloated {
float: right;
}
.cursorLink {
cursor: pointer;
}
.fitButton{
background-color : transparent;
border-color : transparent;
}

View File

View File

@@ -0,0 +1,88 @@
.giveMeEllipsis {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* number of lines to show */
}
.blueBackground{
background-color: #F1F8FB !important;
}
.backgroundLoader{
position:fixed;
height:100%;
width:100%;
top:0;
left:0;
margin:0rem 0rem ;
z-index:2000 ;
}
.addSubHeaderMargin{
margin-top: 0.5rem !important;
}
.fitButton{
background-color : transparent;
border-color : transparent;
}
.contentContainer{
margin-top:80px;
}
@media only screen and (max-width: 678px) {
.contentContainer {
margin-top:170px;
}
}
.blueColor {
color: #2185D0 !important;
}
.overlayMap{
position:absolute;
left:0 ;
top:0;
margin-top :1rem;
margin-left :1rem;
margin-bottom :1rem;
width:97%;
height:80vh;
background-color:black;
opacity: 0.5;
}
.middleText{
color:white;
opacity: 1;
font-weight: 900;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.fixedKoordinatMap{
height :200px;
}
#mapEditTitikKoordinat .centerMarker{
position:absolute;
/*url of the marker*/
background:url(http://maps.gstatic.com/mapfiles/markers2/marker.png) no-repeat;
/*center the marker*/
top:50%;left:50%;
z-index:1;
/*fix offset when needed*/
margin-left:-10px;
margin-top:-34px;
/*size of the image*/
height:34px;
width:20px;
cursor:pointer;
}

168
konsultasi/dosen/index.php Normal file
View File

@@ -0,0 +1,168 @@
<?php
session_start();
include '../conf/class.server.php';
include '../conf/function.php';
include '../conf/koneksiPDO.php';
$server = new Server();
if (!isset($_SESSION['konsulDosen'])) {
$loginPage = $server->getLoginPage();
header('Location: '.$loginPage);
exit();
}
$dataUser = $_SESSION['konsulDosen'];
$token = $dataUser['token'];
$namaUser = $dataUser['nama'];
$urlAPI = $server->getAPIUrl();
$urlDataTable = $server->getDataTableURL();
$urlBerkas = $server->getBerkasUrl();
$conn = new createCon();
$dbh = $conn->connect();
?>
<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<link rel="shortcut icon" href="../assets/logo-small.png" />
<title>Konsultasi Skripsi - Dosen</title>
<link
rel="stylesheet"
href="../libs/Fomantic-UI/semantic.css"
type="text/css"
charset="utf-8"
/>
<link
rel="stylesheet"
href="../libs/DataTable/datatables.min.css"
type="text/css"
charset="utf-8"
/>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script>
const todayDate = "<?php echo date('d-m-Y'); ?>";
const todayPeriode = "<?php echo date('m-Y'); ?>";
const token = "<?php echo $token; ?>";
const namaUser = "<?php echo $namaUser; ?>";
const urlAPI = "<?php echo $urlAPI; ?>";
const urlDataTable = "<?php echo $urlDataTable; ?>";
const urlBerkas = "<?php echo $urlBerkas; ?>";
</script>
<script src="../libs/jquery-3.3.1.js"></script>
<script src="../libs/Fomantic-UI/semantic.min.js"></script>
<script src="../libs/DataTable/datatables.min.js"></script>
<script type="text/javascript" src="../libs/Chartjs/dist/Chart.bundle.min.js"></script>
<script src="js/4eed0cb4b7d8326b9cc764890ea2a342.js?v=0.0.9"></script>
</head>
<body>
<div
class="ui segment"
style="position:fixed;height:100%;width:100%;display:none;top:0;left:0;margin:0rem 0rem !important;z-index:2000 !important"
id="loaderSegment"
>
<div class="ui active inverted dimmer">
<div class="ui large blue text loader">
<h3 class="ui blue header">Tunggu Sebentar . . .</h3>
</div>
</div>
<p></p>
<p></p>
<p></p>
</div>
<div class="ui sidebar vertical menu">
<a class="disabled item">
<h2 class="ui small header" style="width:100%">
<img src="../assets/untan.svg" alt="Logo UNTAN" class="ui image" />
<div class="blueColor content">
<div class="sub header">Teknik Informatika UNTAN</div>
</div>
</h2>
</a>
<a onClick="openTab(event,'konsultasi')" name="tabLinks" id="x" class="item">
Konsultasi Tugas Akhir
</a>
<a onClick="openTab(event,'kerjaPraktek')" name="tabLinks" id="x" class="item" style="display:none">
Kerja Praktek
</a>
<a onClick="openLogoutModal()" name="tabLinks" class="item">
Logout
</a>
</div>
<div class="pusher blueBackground">
<div
class="ui sticky vertically fitted segment"
style="position:fixed;width:100% !important;padding:0em 0em;margin:0"
>
<div
class="ui secondary stackable menu"
id="menuDiv"
style="width:100%"
>
<a class="item" onClick="sideBar()" id="burgerDiv">
<span class="ui large blue text"><i class="sidebar icon"></i></span>
</a>
<a class="disabled item"
><h2 class="ui blue header" id="judulMenu">-</h2></a
>
<div class="right menu">
<a class="disabled blueColor item"
><h3 class="ui blue header"><?php echo $namaUser; ?></h3></a
>
</div>
</div>
</div>
<div class="contentContainer">
<?php
include 'layout/_konsultasi.php';
include 'layout/_kerjaPraktek.php';
?>
</div>
<div class="ui small modal" id="hapusDataModal">
<i class="close icon"></i>
<div class="redHukum header">
Hapus Data Ini?
</div>
<div class="content">
<h2 class="ui center aligned icon header">
<i class="ui red trash icon"></i>
<div class="content">
Hapus Data Ini?
<div class="sub header" id="isiDataHapus"></div>
</div>
</h2>
</div>
<div class="actions">
<div class="ui cancel button">BATAL</div>
<div class="ui approve red button">HAPUS</div>
</div>
</div>
<div class="ui small modal" id="logoutModal">
<i class="close icon"></i>
<div class="header">
Logout
</div>
<div class="content">
<h2 class="ui center aligned icon header">
<i class="grey sign out alternate icon"></i>
<div class="content">
Apakah anda ingin logout?
</div>
</h2>
</div>
<div class="actions">
<div class="ui cancel button">BATAL</div>
<div class="ui positive button">YA</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,966 @@
const noDataTextTabel = "No data available in table";
const serverErrorText =
"Gagal terhubung ke Server, cek koneksi internet anda!!!";
const ajaxTimeout = 15000;
let idTANow, idKPNow;
let dataKonsul = [];
let dataKonsulKP = [];
let dataKP = [];
let tabelTugasAkhir, tabelKerjaPraktek, tabelKerjaPraktekKP;
let isPembKPNow = false;
const logoutModal = {
show: () => {
$("#logoutModal").modal({
onApprove: function(){
doLogout();
return false;
}
}).modal("show");
},
hide: () => {
$("#logoutModal").modal("hide");
}
};
const loader = {
show: () => {
$("#loaderSegment").show();
},
hide: () => {
$("#loaderSegment").hide();
}
};
const verifKonsultasiModal = {
show: (idKonsultasi) => {
$("#verifikasiModal")
.modal({
autofocus: false,
onApprove: function() {
postVerifKonsultasi(idKonsultasi);
return false;
},
allowMultiple: true
})
.modal("show");
},
hide: () => {
$("#verifikasiModal").modal("hide");
}
};
const verifikasiKPModal = {
show: (idKonsultasi) => {
$("#verifikasiKPModal")
.modal({
onApprove: function() {
postVerifKonsultasiKP(idKonsultasi);
return false;
},
allowMultiple: true
})
.modal("show");
},
hide: () => {
$("#verifikasiKPModal").modal("hide");
}
};
$(document).ready(function() {
document.getElementById("x").click();
setInterval(refreshSession, 60 * 1000);
$('.ui.dropdown').dropdown();
$('.ui.radio.checkbox').checkbox();
$('#tabKerjaPraktek .item').tab();
});
function refreshSession() {
let request = $.ajax({
url: urlAPI + `/web-refreshSession.php`,
type: "GET",
contentType: "application/json",
processData: false,
contentType: false,
cache: false
});
request.done(function(msg) {});
request.fail(function(jqXHR, textStatus) {});
}
function doLogout() {
window.location.replace("logout.php");
}
function sideBar() {
$(".ui.sidebar").sidebar("toggle");
}
function openTab(evt, divName) {
var i, tabcontent, tablinks;
var namatabcontent = "tabContent";
var namatablink = "tabLinks";
let judul = "";
tabcontent = document.getElementsByName(namatabcontent);
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByName(namatablink);
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace("active", "");
}
$(".ui.sidebar").sidebar("hide");
evt.currentTarget.className += " active";
document.getElementById(divName).style.display = "block";
doEvent(divName);
}
function doEvent(namaEvent) {
judul = "";
switch (namaEvent) {
case "konsultasi":
judul = "Konsultasi Tugas Akhir";
refreshTabelTugasAkhir();
break;
case "kerjaPraktek":
judul = "Kerja Praktek";
refreshTabelKerjaPraktek();
refreshTabelKerjaPraktekPembKP();
break;
}
$("#judulMenu").html(judul);
}
function openLogoutModal() {
sideBar();
logoutModal.show();
}
function refreshTabelKerjaPraktek() {
const verif = $('#kerjaPraktekDropdown').val();
const urlTabelKerjaPraktek =
urlDataTable +`/data_kerja_praktek.php?pa&verif=${verif}`;
if (tabelKerjaPraktek == null) {
tabelKerjaPraktek = $("#tabelKerjaPraktek").dataTable({
ajax: urlTabelKerjaPraktek,
processing: true,
serverSide: true,
contentType: "application/json",
ordering: false,
sortable: false,
oLanguage: {
sSearch: "Nama/ NIM Mahasiswa:"
},
autoWidth: false,
columns: [
{ data: "0" },
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[17]}<br>NIM : ${full[18]}`;
}
},
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[3]} - ${full[4]}`;
}
},
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[1]} ${getLabelKPBaru(full[26])}<br><div style="font-size:10px"><b>Waktu Input</b> : ${full[12]}<br><b>Waktu Verifikasi Dosen PA</b> : ${full[13]}<br><b>Waktu Verifikasi Admin</b> : ${full[22]}</div>`;
}
},
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[2]}`;
}
},
{
data: 6,
sortable: false,
render: function(data, type, full, meta) {
return getLabelSetuju(data) ;
}
},
{
data: 7,
sortable: false,
render: function(data, type, full, meta) {
dataKP[data] = full;
const isPembimbingKP = full[20];
const isPembimbingPA = full[21];
const status = full[6];
if(isPembimbingKP){
return `<button class="ui icon blue button" onClick="showVerifKP(${data})" title="Lihat Data Kerja Praktek" >
<i class="eye icon"></i>
</button>`;
}else{
if(status == "0"){
return `<button class="ui icon green button" onClick="showVerifKP(${data})" title="Verifikasi Data Kerja Praktek" >
<i class="check icon"></i>
</button>`;
}else{
return `<button class="ui icon blue button" onClick="showVerifKP(${data})" title="Lihat Data Kerja Praktek" >
<i class="eye icon"></i>
</button>`;
}
}
}
}
]
});
} else {
tabelKerjaPraktek
.api()
.ajax.url(urlTabelKerjaPraktek)
.load();
}
}
function refreshTabelKerjaPraktekPembKP(){
const verif = $('#kerjaPraktekKPDropdown').val();
const urlTabelKerjaPraktek =
urlDataTable +`/data_kerja_praktek.php?kp&verif=${verif}`;
if (tabelKerjaPraktekKP == null) {
tabelKerjaPraktekKP = $("#tabelKPKerjaPraktek").dataTable({
ajax: urlTabelKerjaPraktek,
processing: true,
serverSide: true,
contentType: "application/json",
ordering: false,
sortable: false,
oLanguage: {
sSearch: "Nama/ NIM Mahasiswa:"
},
autoWidth: false,
columns: [
{ data: "0" },
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[17]}<br>NIM : ${full[18]}`;
}
},
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[3]} - ${full[4]}`;
}
},
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[1]} ${getLabelKPBaru(full[26])}`;
}
},
{
sortable: false,
render: function(data, type, full, meta) {
return `${full[2]}`;
}
},
{
data: 23,
sortable: false,
render: function(data, type, full, meta) {
return getLabelStatusProposal(data, full[24]) ;
}
},
{
data: 7,
sortable: false,
render: function(data, type, full, meta) {
dataKP[data] = full;
const isPembimbingKP = full[20];
const isPembimbingPA = full[21];
const status = full[23];
if(!isPembimbingKP){
return `<button class="ui icon blue button" onClick="showVerifKP(${data}, 'kp')" title="Lihat Data Kerja Praktek" >
<i class="eye icon"></i>
</button>`;
}else{
if(status == "0"){
return `<button class="ui icon green button" onClick="showVerifKP(${data}, 'kp')" title="Verifikasi Proposal Kerja Praktek" >
<i class="check icon"></i>
</button>`;
}else{
return `<button class="ui icon blue button" onClick="showVerifKP(${data}, 'kp')" title="Lihat Data Kerja Praktek" >
<i class="eye icon"></i>
</button>`;
}
}
}
}
]
});
} else {
tabelKerjaPraktekKP
.api()
.ajax.url(urlTabelKerjaPraktek)
.load();
}
}
function getLabelSetuju(setuju){
switch(setuju){
case "0" : return `<label class="ui grey label">Belum Disetujui</label>`;
case "1" : return `<label class="ui green label">Disetujui</label>`;
case "2" : return `<label class="ui red label">Ditolak</label>`;
default : return `-`;
}
}
function getLabelStatusProposal(statusProposal, fileProposal){
if(fileProposal == null || fileProposal == ''){
return `<label class="ui grey label">Belum Diupload</label>`
}else{
switch(statusProposal){
case "0" : return `<label class="ui yellow label">Belum Diproses</label>`;
case "1" : return `<label class="ui green label">Disetujui</label>`;
case "2" : return `<label class="ui red label">Ditolak</label>`;
default : return `-`;
}
}
}
function refreshTabelTugasAkhir() {
const order = $('#orderTugasAkhir').val();
const selesai = $('#selesaiTugasAkhir').val();
const urlTabelTugasAkhir =
urlDataTable +`/data_tugas_akhir.php?orderBy=${order}&selesai=${selesai}`;
if (tabelTugasAkhir == null) {
tabelTugasAkhir = $("#tabelTugasAkhir").dataTable({
ajax: urlTabelTugasAkhir,
processing: true,
serverSide: true,
contentType: "application/json",
ordering: false,
sortable: false,
oLanguage: {
sSearch: "Judul TA/ Nama/ NIM Mahasiswa:"
},
autoWidth: false,
columns: [
{ data: "0" },
{
data: "1",
render: function(data, type, full, meta) {
return `${data} ${getLabelSelesai(full[6])}`;
}
},
{ data: "2" },
{ data: "3" },
{ data: "4" },
{
sortable: false,
render: function(data, type, full, meta) {
return `<button class="ui icon blue button" onClick="showDetailTugasAkhir(${data})" title="Lihat Detail Tugas Akhir" >
<i class="eye icon"></i>
</button>`;
}
}
]
});
} else {
tabelTugasAkhir
.api()
.ajax.url(urlTabelTugasAkhir)
.load();
}
}
function showDetailTugasAkhir(idTA){
let formData = new FormData();
formData.append("token", token);
formData.append("id", idTA);
formData.append("tipe", "dosen");
loader.show();
let request = $.ajax({
url: urlAPI + "/getDetailTA.php",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
loader.hide();
if(status === 1){
const data = msg.tugasAkhir;
const judul = data.judul;
const mahasiswa = data.mahasiswa;
const nim = data.nim;
const pembimbing1 = data.pembimbing1;
const pembimbing2 = data.pembimbing2;
const penguji1 = data.penguji1;
const penguji2 = data.penguji2;
const semester = data.semester;
const tahun = data.tahun;
const tanggalKeputusan = data.tanggalKeputusan;
const hp = data.hp;
const email = data.email;
let aksiUser = '';
if(!(hp == '' || hp == null)){
aksiUser += `<a href="https://web.whatsapp.com/send?phone=62${hp}" target="_blank"><button class="ui circular whatsapp icon button">
<i class="whatsapp icon"></i>
</button></a>`;
}
if(!(email == '' || email == null)){
aksiUser += `<a href="mailto:${email}" target="_blank"><button class="ui circular red icon button">
<i class="mail icon"></i>
</button></a>`;
}
$('#namaMahasiswaTugasAkhir').html(`${mahasiswa}<br><b>(${nim})</b>`);
$('#callMahasiswa').html(`HP : ${hp} / Email : ${email}`);
$('#judulTugasAkhir').html(judul);
$('#semTATugasAkhir').html(semester);
$('#waktuKepTugasAkhir').html(tanggalKeputusan);
$('#pemb1TugasAkhir').html(pembimbing1);
$('#pemb2TugasAkhir').html(pembimbing2);
$('#peng1TugasAkhir').html(penguji1);
$('#peng2TugasAkhir').html(penguji2);
idTANow = idTA;
$('#detailTugasAkhirModal').modal({allowMultiple: true, autofocus: false}).modal('show');
fillKonsultasiHistory();
}else{
showToast('warning', msg.msg);
}
});
request.fail(function(jqXHR, textStatus) {
showToast("error", serverErrorText);
});
}
function fillKonsultasiHistory(){
dataKonsul = [];
const idTA = idTANow;
let formData = new FormData();
formData.append("token", token);
formData.append("id", idTA);
formData.append("tipe", "dosen");
$('#tabelListKonsultasi > tbody').html(`<tr><td colspan="6" style="text-align:center"><div class="ui active centered inline blue loader"></div></td></tr>`);
let request = $.ajax({
url: urlAPI + "/getKonsultasiHistory.php",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
loader.hide();
if(status === 1){
const listData = msg.data;
const banyakData = listData.length;
if(banyakData === 0){
$('#tabelListKonsultasi > tbody').html(`<tr><td colspan="6" style="text-align:center">Tidak Ada Data</td></tr>`);
}else{
let isiTabel = '';
for(let i = (banyakData-1); i >= 0; i--){
let konsultasi = listData[i];
const id = konsultasi.id;
const waktu = konsultasi.waktu;
const topik = konsultasi.topik;
const editable = konsultasi.editable;
const verifPemb1 = konsultasi.verifPemb1;
const verifPemb2 = konsultasi.verifPemb2;
const no = i + 1;
konsultasi.konsulKe = no;
dataKonsul[id] = konsultasi;
if(isPembKPNow){
editable = false;
}
let aksi = `<button class="ui blue icon button" title="Detail Konsultasi" onClick="showDetailKonsultasi(${id})"><i class="eye icon"></i></button> `;
if(editable){
aksi += `<button class="ui green icon button" title="Verifikasi Konsultasi Ini" onClick="verifKonsultasi(${id})"><i class="check icon"></i></button>`;
}else{
aksi += `<button class="ui yellow icon button" title="Edit Verifikasi Konsultasi Ini" onClick="verifKonsultasi(${id})"><i class="pen icon"></i></button>`;
}
isiTabel += `<tr><td>${no}</td><td>${waktu}</td><td><span class="giveMeEllipsis" style="white-space: pre-line">${topik}</span></td><td>${getVerifikasiLabel(verifPemb1)}</td><td>${getVerifikasiLabel(verifPemb2)}</td><td>${aksi}</td></tr>`;
}
$('#tabelListKonsultasi > tbody').html(isiTabel);
}
}else{
showToast('warning', msg.msg);
}
});
request.fail(function(jqXHR, textStatus) {
$('#tabelListKonsultasi > tbody').html(`<tr><td colspan="6" style="text-align:center">Gagal mengambil data, cek koneksi internet anda.</td></tr>`);
showToast("error", serverErrorText);
});
}
function fillKonsultasiKPHistory(){
dataKonsulKP = [];
const idKP = idKPNow;
let formData = new FormData();
formData.append("token", token);
formData.append("id", idKP);
formData.append("tipe", "dosen");
$('#tabelListKonsultasiKP > tbody').html(`<tr><td colspan="6" style="text-align:center"><div class="ui active centered inline blue loader"></div></td></tr>`);
let request = $.ajax({
url: "https://informatika.untan.ac.id/API/KP/getKonsultasiHistory.php?dosen",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
loader.hide();
if(status === 1){
const listData = msg.data;
const banyakData = listData.length;
if(banyakData === 0){
$('#tabelListKonsultasiKP > tbody').html(`<tr><td colspan="6" style="text-align:center">Tidak Ada Data</td></tr>`);
}else{
let isiTabel = '';
for(let i = (banyakData-1); i >= 0; i--){
let konsultasi = listData[i];
const id = konsultasi.id;
const waktu = konsultasi.waktu;
const topik = konsultasi.topik;
const editable = konsultasi.editable;
const verifPemb = konsultasi.verifPemb;
const no = i + 1;
konsultasi.konsulKe = no;
dataKonsulKP[id] = konsultasi;
let aksi = `<button class="ui blue icon button" title="Detail Konsultasi" onClick="showDetailKonsultasiKP(${id})"><i class="eye icon"></i></button> `;
if(editable){
aksi += `<button class="ui green icon button" title="Verifikasi Konsultasi Ini" onClick="verifKonsultasiKP(${id})"><i class="check icon"></i></button>`;
}
isiTabel += `<tr><td>${no}</td><td>${waktu}</td><td><span class="giveMeEllipsis">${topik}</span></td><td>${getVerifikasiLabel(verifPemb)}</td><td>${aksi}</td></tr>`;
}
$('#tabelListKonsultasiKP > tbody').html(isiTabel);
}
}else{
showToast('warning', msg.msg);
}
});
request.fail(function(jqXHR, textStatus) {
$('#tabelListKonsultasiKP > tbody').html(`<tr><td colspan="6" style="text-align:center">Gagal mengambil data, cek koneksi internet anda.</td></tr>`);
showToast("error", serverErrorText);
});
}
function verifKonsultasi(id){
const konsultasi = dataKonsul[id];
const tanggal = konsultasi.waktu;
const topik = konsultasi.topik;
let catatan = '';
if(konsultasi.isPemb1){
catatan = konsultasi.catatanPemb1;
}
if(konsultasi.isPemb2){
catatan = konsultasi.catatanPemb2;
}
if(catatan == "Tidak Ada Catatan"){
catatan = "";
}
$('#catatanVerif').html('');
$('#contentVerif').html(`Konsultasi tanggal ${tanggal} dengan topik:\n ${topik}?`);
verifKonsultasiModal.show(id);
initCalendarHari('dateKonsultasiCalendar');
$('#dateKonsultasiField').val(tanggal);
$('#catatanVerif').val(catatan)
}
function verifKonsultasiKP(id){
const konsultasi = dataKonsulKP[id];
const tanggal = konsultasi.waktu;
const topik = konsultasi.topik;
$('#catatanVerifKP').html('');
$('#contentVerifKP').html(`Konsultasi tanggal ${tanggal} dengan topik:\n ${topik}?`);
verifikasiKPModal.show(id);
initCalendarHari('dateKonsultasiCalendarKP');
$('#dateKonsultasiFieldKP').val(tanggal);
}
function showToast(status, pesan) {
$("body").toast({
class: status,
message: pesan
});
}
function getVerifikasiLabel(verif){
if(verif){
return `<label class="ui green label">SUDAH</label>`;
}else{
return `<label class="ui grey label">BELUM</label>`;
}
}
function showDetailKonsultasi(id){
const konsultasi = dataKonsul[id];
const namaPemb1 = konsultasi.pemb1;
const namaPemb2 = konsultasi.pemb2;
const verifPemb1 = getVerifikasiLabel(konsultasi.verifPemb1);
const verifPemb2 = getVerifikasiLabel(konsultasi.verifPemb2);
let waktuPemb1 = konsultasi.waktuPemb1;
let waktuPemb2 = konsultasi.waktuPemb2;
const topik = konsultasi.topik;
const konsulKe = konsultasi.konsulKe;
const catatanPemb1 = konsultasi.catatanPemb1;
const catatanPemb2 = konsultasi.catatanPemb2;
if(!konsultasi.verifPemb1){
waktuPemb1 = '-';
}
if(!konsultasi.verifPemb2){
waktuPemb2 = '-';
}
$('#detailKonsulKe').html(konsulKe);
$('#detailKonsulTopik').html(topik);
$('#catatanPemb1').html(catatanPemb1);
$('#catatanPemb2').html(catatanPemb2);
$('#detailKonsulPemb1').html(`${namaPemb1}<br>Status Konsultasi : ${verifPemb1}<br>Waktu Verifikasi : ${waktuPemb1}`);
$('#detailKonsulPemb2').html(`${namaPemb2}<br>Status Konsultasi : ${verifPemb2}<br>Waktu Verifikasi : ${waktuPemb2}`);
$('#detailKonsultasiModal').modal({allowMultiple:true}).modal('show');
}
function showDetailKonsultasiKP(id){
const konsultasi = dataKonsulKP[id];
let verifPemb = getVerifikasiLabel(konsultasi.verifPemb);
let waktuPemb = konsultasi.waktuPemb;
const topik = konsultasi.topik;
const konsulKe = konsultasi.konsulKe;
const catatanPemb = konsultasi.catatanDosen;
// if(!konsultasi.verifPemb){
// verifPemb = '-';
// }
$('#detailKonsulKeKP').html(konsulKe);
$('#detailKonsulTopikKP').html(topik);
$('#catatanPembKP').html(catatanPemb);
$('#detailKonsulPembKP').html(`${verifPemb}<br>Waktu Verifikasi : ${waktuPemb}`);
$('#detailKonsultasiKPModal').modal({allowMultiple:true}).modal('show');
}
function postVerifKonsultasi(id){
const catatanVerif = $('#catatanVerif').val();
let formData = new FormData();
formData.append("token", token);
formData.append("id", id);
formData.append("catatan", catatanVerif);
formData.append("tanggal", $("#dateKonsultasiField").val());
loader.show();
let request = $.ajax({
url: urlAPI + "/verifKonsultasi.php",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
const pesan = msg.msg;
loader.hide();
if(status === 1){
showToast('success', pesan);
verifKonsultasiModal.hide();
fillKonsultasiHistory();
}else{
showToast('warning', pesan);
}
});
request.fail(function(jqXHR, textStatus) {
showToast("error", serverErrorText);
});
}
function postVerifKonsultasiKP(id){
const catatanVerif = $('#catatanVerifKP').val();
let formData = new FormData();
formData.append("token", token);
formData.append("id", id);
formData.append("catatan", catatanVerif);
formData.append("tanggal", $("#dateKonsultasiFieldKP").val());
loader.show();
let request = $.ajax({
url: urlAPI + "/verifKonsultasiKP.php",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
const pesan = msg.msg;
loader.hide();
if(status === 1){
showToast('success', pesan);
verifikasiKPModal.hide();
fillKonsultasiKPHistory();
}else{
showToast('warning', pesan);
}
});
request.fail(function(jqXHR, textStatus) {
showToast("error", serverErrorText);
});
}
function showVerifKP(idKP, tipeView = 'pa'){
idKPNow = idKP;
const kp = dataKP[idKP];
const isPembimbingKP = kp[20];
const isPembimbingPA = kp[21];
isPembKPNow = isPembimbingKP;
$('#namaKPDetail').html(`${kp[17]}`);
$('#nimKPDetail').html(`${kp[18]}`);
$('#telpKPDetail').html(`${kp[27]} / ${kp[28]}`);
$('#emailKPDetail').html(`${kp[29]}`);
$('#periodeKPDetail').html(`${kp[3]} - ${kp[4]}`);
$('#pembimbingLapanganKPDetail').html(kp[5]);
$('#verifPAKPDetail').html(getLabelSetuju(kp[6]));
$('#verifAdminKPDetail').html(getLabelSetuju(kp[16]));
$('#kptopikDetail').html(kp[1]);
$('#kpdeskripsiDetail').html(kp[10]);
$('#kpnamaInstansiDetail').html(kp[2]);
$('#kpnamaPimpinanDetail').html(kp[14]);
$('#kpalamatInstansiDetail').html(kp[15]);
$('#kpnamaNarahubungDetail').html(kp[8]);
$('#kptelpNarahubungDetail').html(kp[9]);
$('#kpCatatanDetail').html(kp[11]);
$('#statusProposalKPDetail').html(getLabelStatusProposal(kp[23], kp[24]));
$('#fileProposalKPDetail').html(getDownloadFileButton(kp[24]));
$('#formKP').form('clear');
$('#formKP').form('set values',{
verifikasiKP: kp[6],
catatanKP: kp[19],
verifikasiProposalKP: kp[23],
catatanProposalKP: kp[25]
});
$('#kerjaPraktekDetailModal').modal({allowMultiple:true, autofocus: false}).modal('show');
$('#verifikasiPembKP').hide();
if(tipeView == "pa"){
$('#verifikasiPAKP').show();
}else{
if(kp[24] != null && kp[24] != ''){
$('#verifikasiPembKP').show();
}
$('#verifikasiPAKP').hide();
}
fillKonsultasiKPHistory();
}
function simpanVerifKP(){
const allFields = $('#formKP').form('get values');
const verif = allFields.verifikasiKP;
const catatan = allFields.catatanKP;
if(verif == undefined || verif == ""){
showToast('warning', "Status Verifikasi harus diisi");
return;
}
let formData = new FormData();
formData.append("token", token);
formData.append("id", idKPNow);
formData.append("verif", verif);
formData.append("catatan", catatan);
loader.show();
let request = $.ajax({
url: urlAPI + "/verifKP.php",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
const pesan = msg.msg;
loader.hide();
if(status === 1){
showToast('success', pesan);
$('#kerjaPraktekDetailModal').modal('hide');
refreshTabelKerjaPraktek();
}else{
showToast('warning', pesan);
}
});
request.fail(function(jqXHR, textStatus) {
showToast("error", serverErrorText);
});
}
function simpanVerifProposalKP(){
const allFields = $('#formKP').form('get values');
const verif = allFields.verifikasiProposalKP;
const catatan = allFields.catatanProposalKP;
if(verif == undefined || verif == ""){
showToast('warning', "Status Verifikasi harus diisi");
return;
}
let formData = new FormData();
formData.append("token", token);
formData.append("id", idKPNow);
formData.append("verif", verif);
formData.append("catatan", catatan);
loader.show();
let request = $.ajax({
url: urlAPI + "/verifProposalKP.php",
timeout: ajaxTimeout,
type: "POST",
data: formData,
processData: false,
contentType: false
});
request.done(function(msg) {
const status = msg.status;
const pesan = msg.msg;
loader.hide();
if(status === 1){
showToast('success', pesan);
$('#kerjaPraktekDetailModal').modal('hide');
refreshTabelKerjaPraktekPembKP();
}else{
showToast('warning', pesan);
}
});
request.fail(function(jqXHR, textStatus) {
showToast("error", serverErrorText);
});
}
function getDownloadFileButton(urlFile){
if(urlFile == null || urlFile == ''){
return `<label class="ui grey label">Tidak Ada File</label>`;
}else{
return `<a href="${urlFile}" target="_blank"><label class="ui small blue button">Lihat File</label></a>`;
}
}
function getLabelKPBaru(val){
if(val != undefined && val != null){
val = Number(val);
if(val > 0){
return `<label class="ui blue label">Lanjutan</label>`;
}
}
return "";
}
function initCalendarHari(idCalendar) {
$(`#${idCalendar}`).calendar({
type: "date",
monthFirst: false,
formatter: {
date: function (date, settings) {
if (!date) return "";
var day = "" + date.getDate();
var month = "" + (date.getMonth() + 1);
var year = date.getFullYear();
if (day.length == 1) {
day = "0" + day;
}
if (month.length == 1) {
month = "0" + month;
}
return day + "-" + month + "-" + year;
},
},
popupOptions: {
position: "bottom left",
forcePosition: true,
lastResort: "bottom left",
prefer: "opposite",
hideOnScroll: false,
},
}).calendar('set date', new Date());;
}
function cetakB4(){
window.open(`../print/cetak_konsultasi_ta.php?dosen&id=${idTANow}`, '_blank');
}
function getLabelSelesai(status){
if(status == 1){
return `<label class="ui tiny green label">Selesai</label>`;
}
return ``;
}

View File

View File

@@ -0,0 +1,297 @@
<div class="ui container" name="tabContent" id="kerjaPraktek">
<div class="ui segment">
<h3 class="ui blue header">Kerja Praktek</h3>
<div class="ui top attached tabular menu" id="tabKerjaPraktek">
<a class="disabled item" style="color:#2185D0;font-weight:bold">Sebagai : </a>
<a class="active item" data-tab="dosenPA">Dosen PA</a>
<a class="item" data-tab="dosenKP">Dosen Pemb. KP</a>
</div>
<div class="ui bottom attached active tab segment" data-tab="dosenPA">
<div style="margin-bottom:1rem">Tampilkan:
<select id="kerjaPraktekDropdown" class="ui dropdown" onChange="refreshTabelKerjaPraktek()">
<option value="all">Semua</option>
<option value="0">Belum Disetujui</option>
<option value="1">Disetujui</option>
<option value="2">Ditolak</option>
</select>
</div>
<table class="ui selected celled blue table" id="tabelKerjaPraktek">
<thead>
<tr>
<th>No.</th>
<th>Mahasiswa</th>
<th>Periode</th>
<th>Topik</th>
<th>Instansi</th>
<th>Status</th>
<th class="one wide">Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div class="ui bottom attached tab segment" data-tab="dosenKP">
<div style="margin-bottom:1rem">Tampilkan:
<select id="kerjaPraktekKPDropdown" class="ui dropdown" onChange="refreshTabelKerjaPraktekPembKP()">
<option value="all">Semua</option>
<option value="0">Belum Disetujui</option>
<option value="1">Disetujui</option>
<option value="2">Ditolak</option>
</select>
</div>
<table class="ui selected celled blue table" id="tabelKPKerjaPraktek">
<thead>
<tr>
<th>No.</th>
<th>Mahasiswa</th>
<th>Periode</th>
<th>Topik</th>
<th>Instansi</th>
<th>Status Proposal</th>
<th class="one wide">Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
<div class="ui fullscreen modal" id="kerjaPraktekDetailModal">
<i class="close icon"></i>
<div class="header">
Verifikasi Data Kerja Praktek
</div>
<div class="scrolling content">
<div class="ui grid" style="padding-bottom:2rem">
<div class="eight wide column">
<div class="ui equal width form" id="formKP">
<h3 class="ui blue header">MAHASISWA</h3>
<div class="fields">
<div class="field">
<label>Nama</label>
<span id="namaKPDetail"></span>
</div>
<div class="field">
<label>NIM</label>
<span id="nimKPDetail"></span>
</div>
<div class="field">
<label>No. Telp/HP</label>
<span id="telpKPDetail"></span>
</div>
<div class="field">
<label>Email</label>
<span id="emailKPDetail"></span>
</div>
</div>
<h3 class="ui blue header">Kerja Praktek</h3>
<div class="fields">
<div class="field">
<label>Periode</label>
<span id="periodeKPDetail"></span>
</div>
<div class="field">
<label>Pembimbing KP</label>
<span id="pembimbingLapanganKPDetail"></span>
</div>
<div class="field">
<label>Verifikasi Dosen PA</label>
<span id="verifPAKPDetail"></span>
</div>
<div class="field">
<label>Verifikasi Admin</label>
<span id="verifAdminKPDetail"></span>
</div>
</div>
<div class="fields">
<div class="field">
<label>Topik Kerja Praktek</label>
<span id="kptopikDetail"></span>
</div>
<div class="field">
<label>Deskripsi Singkat</label>
<div id="kpdeskripsiDetail" style="height:200px;overflow-y:scroll"></div>
</div>
</div>
<h3 class="ui blue header">Instansi</h3>
<div class="fields">
<div class="field">
<label>Nama Instansi</label>
<span id="kpnamaInstansiDetail"></span>
</div>
<div class="field">
<label>Nama Pimpinan</label>
<span id="kpnamaPimpinanDetail"></span>
</div>
<div class="field">
<label>Alamat Instansi</label>
<span id="kpalamatInstansiDetail"></span>
</div>
</div>
<h3 class="ui blue header">Narahubung</h3>
<div class="fields">
<div class="field">
<label>Nama Narahubung</label>
<span id="kpnamaNarahubungDetail"></span>
</div>
<div class="field">
<label>No. Telp Narahubung</label>
<span id="kptelpNarahubungDetail"></span>
</div>
</div>
<h3 class="ui blue header">Catatan Dari Kepala Jurusan</h3>
<div class="field">
<span id="kpCatatanDetail"></span>
</div>
<h3 class="ui blue header">Proposal KP</h3>
<div class="fields">
<div class="field">
<label>Status Proposal KP</label>
<span id="statusProposalKPDetail"></span>
</div>
<div class="field">
<label>File Proposal</label>
<span id="fileProposalKPDetail"></span>
</div>
</div>
<div id="verifikasiPAKP">
<h3 class="ui blue header">Verifikasi</h3>
<div class="inline fields" style="width:300px">
<label for="verifikasiKP">Status:</label>
<div class="field">
<div class="ui radio checkbox checked">
<input type="radio" name="verifikasiKP" tabindex="0" value="1" class="hidden">
<label>Setuju</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="verifikasiKP" tabindex="0" value="2" class="hidden">
<label>Tolak</label>
</div>
</div>
</div>
<div class="field">
<label for="catatanKP">Catatan kepada mahasiswa</label>
<textarea name="catatanKP" rows="3"></textarea>
</div>
<button class="ui green icon button" onClick="simpanVerifKP()"><i class="check icon"></i> Simpan</button>
</div>
<div id="verifikasiPembKP">
<h3 class="ui blue header">Verifikasi Proposal</h3>
<div class="inline fields" style="width:300px">
<label for="verifikasiProposalKP">Status:</label>
<div class="field">
<div class="ui radio checkbox checked">
<input type="radio" name="verifikasiProposalKP" tabindex="0" value="1" class="hidden">
<label>Setuju</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="verifikasiProposalKP" tabindex="0" value="2" class="hidden">
<label>Tolak</label>
</div>
</div>
</div>
<div class="field">
<label for="catatanProposalKP">Catatan kepada mahasiswa</label>
<textarea name="catatanProposalKP" rows="3"></textarea>
</div>
<button class="ui green icon button" onClick="simpanVerifProposalKP()"><i class="check icon"></i> Simpan</button>
</div>
</div>
</div>
<div class="eight wide column">
<div class="ui secondary menu">
<div class="item">
<h4 class="ui blue header">Konsultasi Dengan Pembimbing KP</h4>
</div>
</div>
<table class="ui blue selectable definition celled table" id="tabelListKonsultasiKP">
<thead>
<tr>
<th>Ke-</th>
<th>Tanggal</th>
<th>Topik</th>
<th>Verifikasi</th>
<th>Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<div class="ui fullscreen modal" id="verifikasiKPModal">
<i class="close icon"></i>
<div class="header">
Verifikasi Konsultasi Kerja Praktek
</div>
<div class="content">
<h2 class="ui icon center aligned green header">
<i class="check icon"></i>
<div class="content">
Verifikasi Konsultasi Ini?
<div class="sub header" id="contentVerifKP" style="white-space:pre-wrap;">
</div>
</div>
</h2>
<div class="ui form">
<div class="field">
<label>Tanggal</label>
<div class="ui calendar" id="dateKonsultasiCalendarKP">
<div class="ui input left icon">
<i class="calendar icon"></i>
<input
type="text"
placeholder="Tanggal"
name="dateKonsultasiFieldKP"
id="dateKonsultasiFieldKP"
onkeydown="return false; return false;"
autocomplete="off"
/>
</div>
</div>
</div>
<div class="field">
<label for="">Catatan</label>
<textarea id="catatanVerifKP" rows="3"></textarea>
</div>
</div>
</div>
<div class="actions">
<div class="ui cancel button">BATAL</div>
<div class="ui positive button">VERIFIKASI</div>
</div>
</div>
<div class="ui fullscreen modal" id="detailKonsultasiKPModal">
<i class="close icon"></i>
<div class="header">
Detail Konsultasi
</div>
<div class="content">
<div class="ui form">
<div class="two fields">
<div class="field">
<label>Konsultasi ke-</label>
<span id="detailKonsulKeKP"></span>
</div>
<div class="field">
<label>Topik</label>
<div id="detailKonsulTopikKP" style="white-space:pre-wrap;"></div>
</div>
</div>
<div class="field">
<label>Status Konsultasi</label>
<span id="detailKonsulPembKP"></span>
<label for="">Catatan</label>
<span id="catatanPembKP"></span>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,200 @@
<div class="ui container" name="tabContent" id="konsultasi">
<div class="ui segment">
<h3 class="ui blue header">Tugas Akhir</h3>
<div class="ui secondary menu">
<div class="item">
<label>Status:</label>
<select id="selesaiTugasAkhir" class="ui dropdown" >
<option value="0">Sedang Berlangsung</option>
<option value="1">Sudah Selesai</option>
<option value="all">Semua Status</option>
</select>
</div>
<div class="item">
<label>Urutkan:</label>
<select id="orderTugasAkhir" class="ui dropdown">
<option value="judulTerbaru">Judul Terbaru</option>
<option value="konsultasiTerbaru">Terakhir Konsultasi (Terbaru)</option>
<option value="konsultasiTerlama">Terakhir Konsultasi (Terlama)</option>
</select>
</div>
<div class="item">
<button onClick="refreshTabelTugasAkhir()" class="ui blue button">Filter</button>
</div>
</div>
<table class="ui selected celled blue table" id="tabelTugasAkhir">
<thead>
<tr>
<th>No.</th>
<th>Judul</th>
<th class="three wide">Mahasiswa</th>
<th>Semester</th>
<th>Terakhir<br>Konsultasi</th>
<th>Lihat</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div class="ui fullscreen modal" id="detailTugasAkhirModal">
<i class="close icon"></i>
<div class="header">
Detail Tugas Akhir
</div>
<div class="scrolling content">
<div class="ui stackable grid">
<div class="eight wide column">
<div class="ui form">
<div class="two fields">
<div class="field">
<label for="namaMahasiswaTugasAkhir">Mahasiswa</label>
<span id="namaMahasiswaTugasAkhir"></span>
</div>
<div class="field" id="callMahasiswa">
</div>
</div>
<div class="field">
<label for="judulTugasAkhir">Judul</label>
<span id="judulTugasAkhir"></span>
</div>
<div class="two fields">
<div class="field">
<label for="semTATugasAkhir">Semester/Tahun Ajaran</label>
<span id="semTATugasAkhir"></span>
</div>
<div class="field">
<label for="waktuKepTugasAkhir">Tanggal Keputusan</label>
<span id="waktuKepTugasAkhir"></span>
</div>
</div>
<div class="two fields">
<div class="field">
<label for="pemb1TugasAkhir">Pembimbing 1</label>
<span id="pemb1TugasAkhir"></span>
</div>
<div class="field">
<label for="pemb2TugasAkhir">Pembimbing 2</label>
<span id="pemb2TugasAkhir"></span>
</div>
</div>
<div class="two fields">
<div class="field">
<label for="peng1TugasAkhir">Penguji 1</label>
<span id="peng1TugasAkhir"></span>
</div>
<div class="field">
<label for="peng2TugasAkhir">Penguji 2</label>
<span id="peng2TugasAkhir"></span>
</div>
</div>
</div>
</div>
<div class="eight wide column">
<div class="ui secondary menu">
<div class="item">
<h4 class="ui blue header">Konsultasi</h4>
</div>
<div class="right menu">
<button class="ui blue button" onClick="cetakB4()">Cetak B4</button>
</div>
</div>
<table class="ui blue selectable definition celled table" id="tabelListKonsultasi">
<thead>
<tr>
<th>Ke-</th>
<th>Tanggal</th>
<th>Topik</th>
<th>Pemb. 1</th>
<th>Pemb. 2</th>
<th>Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<div class="ui fullscreen modal" id="detailKonsultasiModal">
<i class="close icon"></i>
<div class="header">
Detail Konsultasi
</div>
<div class="content">
<div class="ui form">
<div class="two fields">
<div class="field">
<label>Konsultasi ke-</label>
<span id="detailKonsulKe"></span>
</div>
<div class="field">
<label>Topik</label>
<span id="detailKonsulTopik" style="white-space:pre-wrap;"></span>
</div>
</div>
<div class="two fields">
<div class="field">
<label>Pembimbing 1</label>
<span id="detailKonsulPemb1"></span>
<label for="">Catatan</label>
<span id="catatanPemb1"></span>
</div>
<div class="field">
<label>Pembimbing 2</label>
<span id="detailKonsulPemb2"></span>
<label for="">Catatan</label>
<span id="catatanPemb2"></span>
</div>
</div>
</div>
</div>
</div>
<div class="ui fullscreen modal" id="verifikasiModal">
<i class="close icon"></i>
<div class="header">
Verifikasi Konsultasi Tugas Akhir
</div>
<div class="content">
<h2 class="ui icon center aligned green header">
<i class="check icon"></i>
<div class="content">
Verifikasi Konsultasi Ini?
<div class="sub header" id="contentVerif" style="white-space:pre-wrap;">
</div>
</div>
</h2>
<div class="ui form">
<div class="field">
<label>Tanggal</label>
<div class="ui calendar" id="dateKonsultasiCalendar">
<div class="ui input left icon">
<i class="calendar icon"></i>
<input
type="text"
placeholder="Tanggal"
name="dateKonsultasiField"
id="dateKonsultasiField"
onkeydown="return false; return false;"
autocomplete="off"
/>
</div>
</div>
</div>
<div class="field">
<label for="">Catatan</label>
<textarea id="catatanVerif" rows="3"></textarea>
</div>
</div>
</div>
<div class="actions">
<div class="ui cancel button">BATAL</div>
<div class="ui positive button">VERIFIKASI</div>
</div>
</div>

View File

View File

@@ -0,0 +1,4 @@
<?php
session_start();
unset($_SESSION['konsulDosen']);
header('Location:../index.php');

161
konsultasi/index.php Normal file
View File

@@ -0,0 +1,161 @@
<?php
session_start();
include 'conf/class.server.php';
$server = new Server();
$APIurl = $server->getAPIUrl();
if(isset($_SESSION['konsulDosen'])){
header("Location:./dosen/");
exit;
}
if(isset($_SESSION['konsulMahasiswa'])){
header("Location:./mahasiswa/");
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Informatika - Konsultasi Skripsi</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<link rel="shortcut icon" href="assets/untan.svg" />
<link rel="stylesheet" href="libs/Fomantic-UI/semantic.css" type="text/css" charset="utf-8">
<link href="css/stylelogin.css" rel="stylesheet" type="text/css">
<script src="libs/jquery-3.3.1.js"></script>
<script src="libs/Fomantic-UI/semantic.min.js"></script>
</head>
<body>
<div>
<div id="login" class="webLogin bordered">
<div class="content">
<h2 class="ui icon header" style="width:100%">
<img src="assets/untan.svg" alt="Logo" class="ui image">
<div class="blueColor content">
Konsultasi Skripsi
<div class="sub header">Jurusan Informatika<br>Universitas Tanjungpura</div>
</div>
</h2>
<form class="ui form" style="margin-top:1rem">
<div class="field" id="usernameField">
<label class="blueColor">Username</label class="blueColor">
<input type="text" placeholder="Username" id="usernameData">
</div>
<div class="field" id="passwordField">
<label class="blueColor">Password</label>
<div class="ui icon input">
<input type="password" id="passwordData" placeholder="Password">
<i id="iconPassword" class="eye slash link icon" onClick="hideShowPassword()"></i>
</div>
</div>
<span class="ui grey text">* Login menggunakan akun <b>SPOTA</b></span>
<div class="ui hidden divider"></div>
<button class="ui blue fluid button" type="submit" id="btnLogin" onClick="login(event)">Login</button>
</form>
</div>
</div>
</body>
</html>
<script>
function setLevelActivity(){
const level = $('#userLevel').val();
if(level == "MAHASISWA"){
$('#passwordField').hide();
}else{
$('#passwordField').show();
}
}
function hideShowPassword() {
var x = document.getElementById("passwordData");
var y = document.getElementById("iconPassword");
if (x.type === "password") {
x.type = "text";
y.className = "ui eye link icon";
} else {
x.type = "password";
y.className = "ui eye slash link icon";
}
}
function login(event){
event.preventDefault();
const username = document.getElementById('usernameData');
const password = document.getElementById('passwordData');
const usernameField = document.getElementById('usernameField');
const passwordField = document.getElementById('passwordField');
const btnLogin = document.getElementById('btnLogin');
let lanjut = true;
if(username.value.trim() == ""){
usernameField.className = 'field error';
lanjut = false;
}else{
usernameField.className = 'field';
}
if(password.value.trim() == ""){
passwordField.className = 'field error';
lanjut = false;
}else{
passwordField.className = 'field';
}
if(!lanjut){
showToast('warning','Username dan password tidak boleh kosong');
return;
}
btnLogin.className += " loading";
let form_data = new FormData();
form_data.append("username",username.value);
form_data.append("password",password.value);
let request = $.ajax({
url: "<?php echo $APIurl; ?>/login.php",
type: "POST",
data: form_data,
processData: false,
contentType: false,
});
request.done(function(msg) {
btnLogin.classList.remove("loading");
let pesan = msg.msg;
if(msg.status == 1){
showToast('success',pesan);
let redir = msg.redir;
window.location.replace(redir);
}else{
showToast('warning',pesan);
}
});
request.fail(function(jqXHR, textStatus) {
showToast('warning', "Terjadi kesalahan teknis!!!")
btnLogin.classList.remove("loading");
});
}
function showToast(status, pesan){
$('body')
.toast({
class: status,
message: pesan
})
;
}
</script>

View File

@@ -0,0 +1,187 @@
table.dataTable {
clear: both;
margin-top: 6px !important;
margin-bottom: 6px !important;
max-width: none !important;
border-collapse: separate !important;
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable td.dataTables_empty,
table.dataTable th.dataTables_empty {
text-align: center;
}
table.dataTable.nowrap th,
table.dataTable.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length label {
font-weight: normal;
text-align: left;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
width: 75px;
display: inline-block;
}
div.dataTables_wrapper div.dataTables_filter {
text-align: right;
}
div.dataTables_wrapper div.dataTables_filter label {
font-weight: normal;
white-space: nowrap;
text-align: left;
}
div.dataTables_wrapper div.dataTables_filter input {
margin-left: 0.5em;
display: inline-block;
width: auto;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 8px;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_paginate {
margin: 0;
white-space: nowrap;
text-align: right;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
margin: 2px 0;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1em 0;
}
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 30px;
}
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
bottom: 8px;
right: 8px;
display: block;
font-family: 'Glyphicons Halflings';
opacity: 0.5;
}
table.dataTable thead .sorting:after {
opacity: 0.2;
content: "\e150";
/* sort */
}
table.dataTable thead .sorting_asc:after {
content: "\e155";
/* sort-by-attributes */
}
table.dataTable thead .sorting_desc:after {
content: "\e156";
/* sort-by-attributes-alt */
}
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
color: #eee;
}
div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
div.dataTables_scrollBody > table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody > table > thead .sorting:after,
div.dataTables_scrollBody > table > thead .sorting_asc:after,
div.dataTables_scrollBody > table > thead .sorting_desc:after {
display: none;
}
div.dataTables_scrollBody > table > tbody > tr:first-child > th,
div.dataTables_scrollBody > table > tbody > tr:first-child > td {
border-top: none;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
box-sizing: content-box;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
margin-top: 0 !important;
border-top: none;
}
@media screen and (max-width: 767px) {
div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_info,
div.dataTables_wrapper div.dataTables_paginate {
text-align: center;
}
}
table.dataTable.table-condensed > thead > tr > th {
padding-right: 20px;
}
table.dataTable.table-condensed .sorting:after,
table.dataTable.table-condensed .sorting_asc:after,
table.dataTable.table-condensed .sorting_desc:after {
top: 6px;
right: 6px;
}
table.table-bordered.dataTable th,
table.table-bordered.dataTable td {
border-left-width: 0;
}
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
table.table-bordered.dataTable td:last-child,
table.table-bordered.dataTable td:last-child {
border-right-width: 0;
}
table.table-bordered.dataTable tbody th,
table.table-bordered.dataTable tbody td {
border-bottom-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
border-bottom-width: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row {
margin: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
padding-left: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
padding-right: 0;
}

View File

@@ -0,0 +1 @@
table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody>table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody>table>thead .sorting:after,div.dataTables_scrollBody>table>thead .sorting_asc:after,div.dataTables_scrollBody>table>thead .sorting_desc:after{display:none}div.dataTables_scrollBody>table>tbody>tr:first-child>th,div.dataTables_scrollBody>table>tbody>tr:first-child>td{border-top:none}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}

View File

@@ -0,0 +1,206 @@
table.dataTable {
clear: both;
margin-top: 6px !important;
margin-bottom: 6px !important;
max-width: none !important;
border-collapse: separate !important;
border-spacing: 0;
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable td.dataTables_empty,
table.dataTable th.dataTables_empty {
text-align: center;
}
table.dataTable.nowrap th,
table.dataTable.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length label {
font-weight: normal;
text-align: left;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
width: auto;
display: inline-block;
}
div.dataTables_wrapper div.dataTables_filter {
text-align: right;
}
div.dataTables_wrapper div.dataTables_filter label {
font-weight: normal;
white-space: nowrap;
text-align: left;
}
div.dataTables_wrapper div.dataTables_filter input {
margin-left: 0.5em;
display: inline-block;
width: auto;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 0.85em;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_paginate {
margin: 0;
white-space: nowrap;
text-align: right;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
margin: 2px 0;
white-space: nowrap;
justify-content: flex-end;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1em 0;
}
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 30px;
}
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
bottom: 0.9em;
display: block;
opacity: 0.3;
}
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:before {
right: 1em;
content: "\2191";
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
right: 0.5em;
content: "\2193";
}
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:after {
opacity: 1;
}
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
opacity: 0;
}
div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table thead .sorting:before,
div.dataTables_scrollBody table thead .sorting_asc:before,
div.dataTables_scrollBody table thead .sorting_desc:before,
div.dataTables_scrollBody table thead .sorting:after,
div.dataTables_scrollBody table thead .sorting_asc:after,
div.dataTables_scrollBody table thead .sorting_desc:after {
display: none;
}
div.dataTables_scrollBody table tbody tr:first-child th,
div.dataTables_scrollBody table tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
box-sizing: content-box;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
margin-top: 0 !important;
border-top: none;
}
@media screen and (max-width: 767px) {
div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_info,
div.dataTables_wrapper div.dataTables_paginate {
text-align: center;
}
}
table.dataTable.table-sm > thead > tr > th {
padding-right: 20px;
}
table.dataTable.table-sm .sorting:before,
table.dataTable.table-sm .sorting_asc:before,
table.dataTable.table-sm .sorting_desc:before {
top: 5px;
right: 0.85em;
}
table.dataTable.table-sm .sorting:after,
table.dataTable.table-sm .sorting_asc:after,
table.dataTable.table-sm .sorting_desc:after {
top: 5px;
}
table.table-bordered.dataTable th,
table.table-bordered.dataTable td {
border-left-width: 0;
}
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
table.table-bordered.dataTable td:last-child,
table.table-bordered.dataTable td:last-child {
border-right-width: 0;
}
table.table-bordered.dataTable tbody th,
table.table-bordered.dataTable tbody td {
border-bottom-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
border-bottom-width: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row {
margin: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
padding-left: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
padding-right: 0;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,118 @@
table.dataTable {
clear: both;
margin: 0.5em 0 !important;
max-width: none !important;
width: 100%;
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable td.dataTables_empty,
table.dataTable th.dataTables_empty {
text-align: center;
}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper {
position: relative;
}
div.dataTables_wrapper div.dataTables_length label {
float: left;
text-align: left;
margin-bottom: 0;
}
div.dataTables_wrapper div.dataTables_length select {
width: 75px;
margin-bottom: 0;
}
div.dataTables_wrapper div.dataTables_filter label {
float: right;
margin-bottom: 0;
}
div.dataTables_wrapper div.dataTables_filter input {
display: inline-block !important;
width: auto !important;
margin-bottom: 0;
margin-left: 0.5em;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 2px;
}
div.dataTables_wrapper div.dataTables_paginate {
float: right;
margin: 0;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1rem 0;
}
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 1.5rem;
}
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
background-repeat: no-repeat;
background-position: center right;
}
table.dataTable thead .sorting {
background-image: url("../images/sort_both.png");
}
table.dataTable thead .sorting_asc {
background-image: url("../images/sort_asc.png");
}
table.dataTable thead .sorting_desc {
background-image: url("../images/sort_desc.png");
}
table.dataTable thead .sorting_asc_disabled {
background-image: url("../images/sort_asc_disabled.png");
}
table.dataTable thead .sorting_desc_disabled {
background-image: url("../images/sort_desc_disabled.png");
}
div.dataTables_scrollHead table {
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table tbody tr:first-child th,
div.dataTables_scrollBody table tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot table {
margin-top: 0 !important;
border-top: none;
}

View File

@@ -0,0 +1 @@
table.dataTable{clear:both;margin:0.5em 0 !important;max-width:none !important;width:100%}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper{position:relative}div.dataTables_wrapper div.dataTables_length label{float:left;text-align:left;margin-bottom:0}div.dataTables_wrapper div.dataTables_length select{width:75px;margin-bottom:0}div.dataTables_wrapper div.dataTables_filter label{float:right;margin-bottom:0}div.dataTables_wrapper div.dataTables_filter input{display:inline-block !important;width:auto !important;margin-bottom:0;margin-left:0.5em}div.dataTables_wrapper div.dataTables_info{padding-top:2px}div.dataTables_wrapper div.dataTables_paginate{float:right;margin:0}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1rem 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:1.5rem}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}div.dataTables_scrollHead table{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}

View File

@@ -0,0 +1,481 @@
/*
* Table styles
*/
table.dataTable {
width: 100%;
margin: 0 auto;
clear: both;
border-collapse: separate;
border-spacing: 0;
/*
* Header and footer styles
*/
/*
* Body styles
*/
}
table.dataTable thead th,
table.dataTable tfoot th {
font-weight: bold;
}
table.dataTable thead th,
table.dataTable thead td {
padding: 10px 18px;
}
table.dataTable thead th:active,
table.dataTable thead td:active {
outline: none;
}
table.dataTable tfoot th,
table.dataTable tfoot td {
padding: 10px 18px 6px 18px;
}
table.dataTable tbody tr {
background-color: #ffffff;
}
table.dataTable tbody tr.selected {
background-color: #B0BED9;
}
table.dataTable tbody th,
table.dataTable tbody td {
padding: 8px 10px;
}
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
border-top: 1px solid #ddd;
}
table.dataTable.row-border tbody tr:first-child th,
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
table.dataTable.display tbody tr:first-child td {
border-top: none;
}
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
border-top: 1px solid #ddd;
border-right: 1px solid #ddd;
}
table.dataTable.cell-border tbody tr th:first-child,
table.dataTable.cell-border tbody tr td:first-child {
border-left: 1px solid #ddd;
}
table.dataTable.cell-border tbody tr:first-child th,
table.dataTable.cell-border tbody tr:first-child td {
border-top: none;
}
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
background-color: #f9f9f9;
}
table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
background-color: #acbad4;
}
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
background-color: #f6f6f6;
}
table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
background-color: #aab7d1;
}
table.dataTable.order-column tbody tr > .sorting_1,
table.dataTable.order-column tbody tr > .sorting_2,
table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
table.dataTable.display tbody tr > .sorting_2,
table.dataTable.display tbody tr > .sorting_3 {
background-color: #fafafa;
}
table.dataTable.order-column tbody tr.selected > .sorting_1,
table.dataTable.order-column tbody tr.selected > .sorting_2,
table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
table.dataTable.display tbody tr.selected > .sorting_2,
table.dataTable.display tbody tr.selected > .sorting_3 {
background-color: #acbad5;
}
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
background-color: #f1f1f1;
}
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
background-color: #f3f3f3;
}
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
background-color: whitesmoke;
}
table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
background-color: #a6b4cd;
}
table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
background-color: #a8b5cf;
}
table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
background-color: #a9b7d1;
}
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
background-color: #fafafa;
}
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
background-color: #fcfcfc;
}
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
background-color: #fefefe;
}
table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
background-color: #acbad5;
}
table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
background-color: #aebcd6;
}
table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
background-color: #afbdd8;
}
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
background-color: #eaeaea;
}
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
background-color: #ececec;
}
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
background-color: #efefef;
}
table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
background-color: #a2aec7;
}
table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
background-color: #a3b0c9;
}
table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
background-color: #a5b2cb;
}
table.dataTable.no-footer {
border-bottom: 1px solid #111;
}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: nowrap;
}
table.dataTable.compact thead th,
table.dataTable.compact thead td {
padding: 4px 17px 4px 4px;
}
table.dataTable.compact tfoot th,
table.dataTable.compact tfoot td {
padding: 4px;
}
table.dataTable.compact tbody th,
table.dataTable.compact tbody td {
padding: 4px;
}
table.dataTable th.dt-left,
table.dataTable td.dt-left {
text-align: left;
}
table.dataTable th.dt-center,
table.dataTable td.dt-center,
table.dataTable td.dataTables_empty {
text-align: center;
}
table.dataTable th.dt-right,
table.dataTable td.dt-right {
text-align: right;
}
table.dataTable th.dt-justify,
table.dataTable td.dt-justify {
text-align: justify;
}
table.dataTable th.dt-nowrap,
table.dataTable td.dt-nowrap {
white-space: nowrap;
}
table.dataTable thead th.dt-head-left,
table.dataTable thead td.dt-head-left,
table.dataTable tfoot th.dt-head-left,
table.dataTable tfoot td.dt-head-left {
text-align: left;
}
table.dataTable thead th.dt-head-center,
table.dataTable thead td.dt-head-center,
table.dataTable tfoot th.dt-head-center,
table.dataTable tfoot td.dt-head-center {
text-align: center;
}
table.dataTable thead th.dt-head-right,
table.dataTable thead td.dt-head-right,
table.dataTable tfoot th.dt-head-right,
table.dataTable tfoot td.dt-head-right {
text-align: right;
}
table.dataTable thead th.dt-head-justify,
table.dataTable thead td.dt-head-justify,
table.dataTable tfoot th.dt-head-justify,
table.dataTable tfoot td.dt-head-justify {
text-align: justify;
}
table.dataTable thead th.dt-head-nowrap,
table.dataTable thead td.dt-head-nowrap,
table.dataTable tfoot th.dt-head-nowrap,
table.dataTable tfoot td.dt-head-nowrap {
white-space: nowrap;
}
table.dataTable tbody th.dt-body-left,
table.dataTable tbody td.dt-body-left {
text-align: left;
}
table.dataTable tbody th.dt-body-center,
table.dataTable tbody td.dt-body-center {
text-align: center;
}
table.dataTable tbody th.dt-body-right,
table.dataTable tbody td.dt-body-right {
text-align: right;
}
table.dataTable tbody th.dt-body-justify,
table.dataTable tbody td.dt-body-justify {
text-align: justify;
}
table.dataTable tbody th.dt-body-nowrap,
table.dataTable tbody td.dt-body-nowrap {
white-space: nowrap;
}
table.dataTable,
table.dataTable th,
table.dataTable td {
box-sizing: content-box;
}
/*
* Control feature layout
*/
.dataTables_wrapper {
position: relative;
clear: both;
*zoom: 1;
zoom: 1;
}
.dataTables_wrapper .dataTables_length {
float: left;
}
.dataTables_wrapper .dataTables_filter {
float: right;
text-align: right;
}
.dataTables_wrapper .dataTables_filter input {
margin-left: 0.5em;
}
.dataTables_wrapper .dataTables_info {
clear: both;
float: left;
padding-top: 0.755em;
}
.dataTables_wrapper .dataTables_paginate {
float: right;
text-align: right;
padding-top: 0.25em;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
box-sizing: border-box;
display: inline-block;
min-width: 1.5em;
padding: 0.5em 1em;
margin-left: 2px;
text-align: center;
text-decoration: none !important;
cursor: pointer;
*cursor: hand;
color: #333 !important;
border: 1px solid transparent;
border-radius: 2px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
color: #333 !important;
border: 1px solid #979797;
background-color: white;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
/* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
/* FF3.6+ */
background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
/* IE10+ */
background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
/* Opera 11.10+ */
background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
/* W3C */
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
cursor: default;
color: #666 !important;
border: 1px solid transparent;
background: transparent;
box-shadow: none;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
color: white !important;
border: 1px solid #111;
background-color: #585858;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
/* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #585858 0%, #111 100%);
/* FF3.6+ */
background: -ms-linear-gradient(top, #585858 0%, #111 100%);
/* IE10+ */
background: -o-linear-gradient(top, #585858 0%, #111 100%);
/* Opera 11.10+ */
background: linear-gradient(to bottom, #585858 0%, #111 100%);
/* W3C */
}
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
outline: none;
background-color: #2b2b2b;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* FF3.6+ */
background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* IE10+ */
background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* Opera 11.10+ */
background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
/* W3C */
box-shadow: inset 0 0 3px #111;
}
.dataTables_wrapper .dataTables_paginate .ellipsis {
padding: 0 1em;
}
.dataTables_wrapper .dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 40px;
margin-left: -50%;
margin-top: -25px;
padding-top: 20px;
text-align: center;
font-size: 1.2em;
background-color: white;
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
color: #333;
}
.dataTables_wrapper .dataTables_scroll {
clear: both;
}
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
*margin-top: -1px;
-webkit-overflow-scrolling: touch;
}
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
vertical-align: middle;
}
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
height: 0;
overflow: hidden;
margin: 0 !important;
padding: 0 !important;
}
.dataTables_wrapper.no-footer .dataTables_scrollBody {
border-bottom: 1px solid #111;
}
.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
border-bottom: none;
}
.dataTables_wrapper:after {
visibility: hidden;
display: block;
content: "";
clear: both;
height: 0;
}
@media screen and (max-width: 767px) {
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
float: none;
text-align: center;
}
.dataTables_wrapper .dataTables_paginate {
margin-top: 0.5em;
}
}
@media screen and (max-width: 640px) {
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
float: none;
text-align: center;
}
.dataTables_wrapper .dataTables_filter {
margin-top: 0.5em;
}
}
table.dataTable thead th div.DataTables_sort_wrapper {
position: relative;
}
table.dataTable thead th div.DataTables_sort_wrapper span {
position: absolute;
top: 50%;
margin-top: -8px;
right: -18px;
}
table.dataTable thead th.ui-state-default,
table.dataTable tfoot th.ui-state-default {
border-left-width: 0;
}
table.dataTable thead th.ui-state-default:first-child,
table.dataTable tfoot th.ui-state-default:first-child {
border-left-width: 1px;
}
/*
* Control feature layout
*/
.dataTables_wrapper .dataTables_paginate .fg-button {
box-sizing: border-box;
display: inline-block;
min-width: 1.5em;
padding: 0.5em;
margin-left: 2px;
text-align: center;
text-decoration: none !important;
cursor: pointer;
*cursor: hand;
border: 1px solid transparent;
}
.dataTables_wrapper .dataTables_paginate .fg-button:active {
outline: none;
}
.dataTables_wrapper .dataTables_paginate .fg-button:first-child {
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
.dataTables_wrapper .dataTables_paginate .fg-button:last-child {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
.dataTables_wrapper .ui-widget-header {
font-weight: normal;
}
.dataTables_wrapper .ui-toolbar {
padding: 8px;
}
.dataTables_wrapper.no-footer .dataTables_scrollBody {
border-bottom: none;
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
color: inherit;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,102 @@
/*
* Styling for DataTables with Semantic UI
*/
table.dataTable.table {
margin: 0;
}
table.dataTable.table thead th,
table.dataTable.table thead td {
position: relative;
}
table.dataTable.table thead th.sorting, table.dataTable.table thead th.sorting_asc, table.dataTable.table thead th.sorting_desc,
table.dataTable.table thead td.sorting,
table.dataTable.table thead td.sorting_asc,
table.dataTable.table thead td.sorting_desc {
padding-right: 20px;
}
table.dataTable.table thead th.sorting:after, table.dataTable.table thead th.sorting_asc:after, table.dataTable.table thead th.sorting_desc:after,
table.dataTable.table thead td.sorting:after,
table.dataTable.table thead td.sorting_asc:after,
table.dataTable.table thead td.sorting_desc:after {
position: absolute;
top: 12px;
right: 8px;
display: block;
font-family: Icons;
}
table.dataTable.table thead th.sorting:after,
table.dataTable.table thead td.sorting:after {
content: "\f0dc";
color: #ddd;
font-size: 0.8em;
}
table.dataTable.table thead th.sorting_asc:after,
table.dataTable.table thead td.sorting_asc:after {
content: "\f0de";
}
table.dataTable.table thead th.sorting_desc:after,
table.dataTable.table thead td.sorting_desc:after {
content: "\f0dd";
}
table.dataTable.table td,
table.dataTable.table th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable.table td.dataTables_empty,
table.dataTable.table th.dataTables_empty {
text-align: center;
}
table.dataTable.table.nowrap th,
table.dataTable.table.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
vertical-align: middle;
min-height: 2.7142em;
}
div.dataTables_wrapper div.dataTables_length .ui.selection.dropdown {
min-width: 0;
}
div.dataTables_wrapper div.dataTables_filter span.input {
margin-left: 0.5em;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 13px;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
text-align: center;
}
div.dataTables_wrapper div.row.dt-table {
padding: 0;
}
div.dataTables_wrapper div.dataTables_scrollHead table.dataTable {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-bottom: none;
}
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting:after,
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_asc:after,
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_desc:after {
display: none;
}
div.dataTables_wrapper div.dataTables_scrollBody table.dataTable {
border-radius: 0;
border-top: none;
border-bottom-width: 0;
}
div.dataTables_wrapper div.dataTables_scrollBody table.dataTable.no-footer {
border-bottom-width: 1px;
}
div.dataTables_wrapper div.dataTables_scrollFoot table.dataTable {
border-top-right-radius: 0;
border-top-left-radius: 0;
border-top: none;
}

View File

@@ -0,0 +1 @@
table.dataTable.table{margin:0}table.dataTable.table thead th,table.dataTable.table thead td{position:relative}table.dataTable.table thead th.sorting,table.dataTable.table thead th.sorting_asc,table.dataTable.table thead th.sorting_desc,table.dataTable.table thead td.sorting,table.dataTable.table thead td.sorting_asc,table.dataTable.table thead td.sorting_desc{padding-right:20px}table.dataTable.table thead th.sorting:after,table.dataTable.table thead th.sorting_asc:after,table.dataTable.table thead th.sorting_desc:after,table.dataTable.table thead td.sorting:after,table.dataTable.table thead td.sorting_asc:after,table.dataTable.table thead td.sorting_desc:after{position:absolute;top:12px;right:8px;display:block;font-family:Icons}table.dataTable.table thead th.sorting:after,table.dataTable.table thead td.sorting:after{content:"\f0dc";color:#ddd;font-size:0.8em}table.dataTable.table thead th.sorting_asc:after,table.dataTable.table thead td.sorting_asc:after{content:"\f0de"}table.dataTable.table thead th.sorting_desc:after,table.dataTable.table thead td.sorting_desc:after{content:"\f0dd"}table.dataTable.table td,table.dataTable.table th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable.table td.dataTables_empty,table.dataTable.table th.dataTables_empty{text-align:center}table.dataTable.table.nowrap th,table.dataTable.table.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{vertical-align:middle;min-height:2.7142em}div.dataTables_wrapper div.dataTables_length .ui.selection.dropdown{min-width:0}div.dataTables_wrapper div.dataTables_filter span.input{margin-left:0.5em}div.dataTables_wrapper div.dataTables_info{padding-top:13px;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;text-align:center}div.dataTables_wrapper div.row.dt-table{padding:0}div.dataTables_wrapper div.dataTables_scrollHead table.dataTable{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom:none}div.dataTables_wrapper div.dataTables_scrollBody thead .sorting:after,div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_asc:after,div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_desc:after{display:none}div.dataTables_wrapper div.dataTables_scrollBody table.dataTable{border-radius:0;border-top:none;border-bottom-width:0}div.dataTables_wrapper div.dataTables_scrollBody table.dataTable.no-footer{border-bottom-width:1px}div.dataTables_wrapper div.dataTables_scrollFoot table.dataTable{border-top-right-radius:0;border-top-left-radius:0;border-top:none}

View File

@@ -0,0 +1,448 @@
/*
* Table styles
*/
table.dataTable {
width: 100%;
margin: 0 auto;
clear: both;
border-collapse: separate;
border-spacing: 0;
/*
* Header and footer styles
*/
/*
* Body styles
*/
}
table.dataTable thead th,
table.dataTable tfoot th {
font-weight: bold;
}
table.dataTable thead th,
table.dataTable thead td {
padding: 10px 18px;
border-bottom: 1px solid #111;
}
table.dataTable thead th:active,
table.dataTable thead td:active {
outline: none;
}
table.dataTable tfoot th,
table.dataTable tfoot td {
padding: 10px 18px 6px 18px;
border-top: 1px solid #111;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
*cursor: hand;
background-repeat: no-repeat;
background-position: center right;
}
table.dataTable thead .sorting {
background-image: url("../images/sort_both.png");
}
table.dataTable thead .sorting_asc {
background-image: url("../images/sort_asc.png");
}
table.dataTable thead .sorting_desc {
background-image: url("../images/sort_desc.png");
}
table.dataTable thead .sorting_asc_disabled {
background-image: url("../images/sort_asc_disabled.png");
}
table.dataTable thead .sorting_desc_disabled {
background-image: url("../images/sort_desc_disabled.png");
}
table.dataTable tbody tr {
background-color: #ffffff;
}
table.dataTable tbody tr.selected {
background-color: #B0BED9;
}
table.dataTable tbody th,
table.dataTable tbody td {
padding: 8px 10px;
}
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
border-top: 1px solid #ddd;
}
table.dataTable.row-border tbody tr:first-child th,
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
table.dataTable.display tbody tr:first-child td {
border-top: none;
}
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
border-top: 1px solid #ddd;
border-right: 1px solid #ddd;
}
table.dataTable.cell-border tbody tr th:first-child,
table.dataTable.cell-border tbody tr td:first-child {
border-left: 1px solid #ddd;
}
table.dataTable.cell-border tbody tr:first-child th,
table.dataTable.cell-border tbody tr:first-child td {
border-top: none;
}
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
background-color: #f9f9f9;
}
table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
background-color: #acbad4;
}
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
background-color: #f6f6f6;
}
table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
background-color: #aab7d1;
}
table.dataTable.order-column tbody tr > .sorting_1,
table.dataTable.order-column tbody tr > .sorting_2,
table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
table.dataTable.display tbody tr > .sorting_2,
table.dataTable.display tbody tr > .sorting_3 {
background-color: #fafafa;
}
table.dataTable.order-column tbody tr.selected > .sorting_1,
table.dataTable.order-column tbody tr.selected > .sorting_2,
table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
table.dataTable.display tbody tr.selected > .sorting_2,
table.dataTable.display tbody tr.selected > .sorting_3 {
background-color: #acbad5;
}
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
background-color: #f1f1f1;
}
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
background-color: #f3f3f3;
}
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
background-color: whitesmoke;
}
table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
background-color: #a6b4cd;
}
table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
background-color: #a8b5cf;
}
table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
background-color: #a9b7d1;
}
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
background-color: #fafafa;
}
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
background-color: #fcfcfc;
}
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
background-color: #fefefe;
}
table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
background-color: #acbad5;
}
table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
background-color: #aebcd6;
}
table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
background-color: #afbdd8;
}
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
background-color: #eaeaea;
}
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
background-color: #ececec;
}
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
background-color: #efefef;
}
table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
background-color: #a2aec7;
}
table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
background-color: #a3b0c9;
}
table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
background-color: #a5b2cb;
}
table.dataTable.no-footer {
border-bottom: 1px solid #111;
}
table.dataTable.nowrap th, table.dataTable.nowrap td {
white-space: nowrap;
}
table.dataTable.compact thead th,
table.dataTable.compact thead td {
padding: 4px 17px 4px 4px;
}
table.dataTable.compact tfoot th,
table.dataTable.compact tfoot td {
padding: 4px;
}
table.dataTable.compact tbody th,
table.dataTable.compact tbody td {
padding: 4px;
}
table.dataTable th.dt-left,
table.dataTable td.dt-left {
text-align: left;
}
table.dataTable th.dt-center,
table.dataTable td.dt-center,
table.dataTable td.dataTables_empty {
text-align: center;
}
table.dataTable th.dt-right,
table.dataTable td.dt-right {
text-align: right;
}
table.dataTable th.dt-justify,
table.dataTable td.dt-justify {
text-align: justify;
}
table.dataTable th.dt-nowrap,
table.dataTable td.dt-nowrap {
white-space: nowrap;
}
table.dataTable thead th.dt-head-left,
table.dataTable thead td.dt-head-left,
table.dataTable tfoot th.dt-head-left,
table.dataTable tfoot td.dt-head-left {
text-align: left;
}
table.dataTable thead th.dt-head-center,
table.dataTable thead td.dt-head-center,
table.dataTable tfoot th.dt-head-center,
table.dataTable tfoot td.dt-head-center {
text-align: center;
}
table.dataTable thead th.dt-head-right,
table.dataTable thead td.dt-head-right,
table.dataTable tfoot th.dt-head-right,
table.dataTable tfoot td.dt-head-right {
text-align: right;
}
table.dataTable thead th.dt-head-justify,
table.dataTable thead td.dt-head-justify,
table.dataTable tfoot th.dt-head-justify,
table.dataTable tfoot td.dt-head-justify {
text-align: justify;
}
table.dataTable thead th.dt-head-nowrap,
table.dataTable thead td.dt-head-nowrap,
table.dataTable tfoot th.dt-head-nowrap,
table.dataTable tfoot td.dt-head-nowrap {
white-space: nowrap;
}
table.dataTable tbody th.dt-body-left,
table.dataTable tbody td.dt-body-left {
text-align: left;
}
table.dataTable tbody th.dt-body-center,
table.dataTable tbody td.dt-body-center {
text-align: center;
}
table.dataTable tbody th.dt-body-right,
table.dataTable tbody td.dt-body-right {
text-align: right;
}
table.dataTable tbody th.dt-body-justify,
table.dataTable tbody td.dt-body-justify {
text-align: justify;
}
table.dataTable tbody th.dt-body-nowrap,
table.dataTable tbody td.dt-body-nowrap {
white-space: nowrap;
}
table.dataTable,
table.dataTable th,
table.dataTable td {
box-sizing: content-box;
}
/*
* Control feature layout
*/
.dataTables_wrapper {
position: relative;
clear: both;
*zoom: 1;
zoom: 1;
}
.dataTables_wrapper .dataTables_length {
float: left;
}
.dataTables_wrapper .dataTables_filter {
float: right;
text-align: right;
}
.dataTables_wrapper .dataTables_filter input {
margin-left: 0.5em;
}
.dataTables_wrapper .dataTables_info {
clear: both;
float: left;
padding-top: 0.755em;
}
.dataTables_wrapper .dataTables_paginate {
float: right;
text-align: right;
padding-top: 0.25em;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
box-sizing: border-box;
display: inline-block;
min-width: 1.5em;
padding: 0.5em 1em;
margin-left: 2px;
text-align: center;
text-decoration: none !important;
cursor: pointer;
*cursor: hand;
color: #333 !important;
border: 1px solid transparent;
border-radius: 2px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
color: #333 !important;
border: 1px solid #979797;
background-color: white;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
/* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
/* FF3.6+ */
background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
/* IE10+ */
background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
/* Opera 11.10+ */
background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
/* W3C */
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
cursor: default;
color: #666 !important;
border: 1px solid transparent;
background: transparent;
box-shadow: none;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
color: white !important;
border: 1px solid #111;
background-color: #585858;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
/* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #585858 0%, #111 100%);
/* FF3.6+ */
background: -ms-linear-gradient(top, #585858 0%, #111 100%);
/* IE10+ */
background: -o-linear-gradient(top, #585858 0%, #111 100%);
/* Opera 11.10+ */
background: linear-gradient(to bottom, #585858 0%, #111 100%);
/* W3C */
}
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
outline: none;
background-color: #2b2b2b;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
/* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* FF3.6+ */
background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* IE10+ */
background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
/* Opera 11.10+ */
background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
/* W3C */
box-shadow: inset 0 0 3px #111;
}
.dataTables_wrapper .dataTables_paginate .ellipsis {
padding: 0 1em;
}
.dataTables_wrapper .dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 40px;
margin-left: -50%;
margin-top: -25px;
padding-top: 20px;
text-align: center;
font-size: 1.2em;
background-color: white;
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
color: #333;
}
.dataTables_wrapper .dataTables_scroll {
clear: both;
}
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
*margin-top: -1px;
-webkit-overflow-scrolling: touch;
}
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
vertical-align: middle;
}
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
height: 0;
overflow: hidden;
margin: 0 !important;
padding: 0 !important;
}
.dataTables_wrapper.no-footer .dataTables_scrollBody {
border-bottom: 1px solid #111;
}
.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
border-bottom: none;
}
.dataTables_wrapper:after {
visibility: hidden;
display: block;
content: "";
clear: both;
height: 0;
}
@media screen and (max-width: 767px) {
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
float: none;
text-align: center;
}
.dataTables_wrapper .dataTables_paginate {
margin-top: 0.5em;
}
}
@media screen and (max-width: 640px) {
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
float: none;
text-align: center;
}
.dataTables_wrapper .dataTables_filter {
margin-top: 0.5em;
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

View File

@@ -0,0 +1,182 @@
/*! DataTables Bootstrap 3 integration
* ©2011-2015 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
// Require DataTables, which attaches to jQuery, including
// jQuery if needed and have a $ property so we can access the
// jQuery object that is used
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
"<'row'<'col-sm-6'l><'col-sm-6'f>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
renderer: 'bootstrap'
} );
/* Default class modification */
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper form-inline dt-bootstrap",
sFilterInput: "form-control input-sm",
sLengthSelect: "form-control input-sm",
sProcessing: "dataTables_processing panel panel-default"
} );
/* Bootstrap paging button renderer */
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
var api = new DataTable.Api( settings );
var classes = settings.oClasses;
var lang = settings.oLanguage.oPaginate;
var aria = settings.oLanguage.oAria.paginate || {};
var btnDisplay, btnClass, counter=0;
var attach = function( container, buttons ) {
var i, ien, node, button;
var clickHandler = function ( e ) {
e.preventDefault();
if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
api.page( e.data.action ).draw( 'page' );
}
};
for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
button = buttons[i];
if ( $.isArray( button ) ) {
attach( container, button );
}
else {
btnDisplay = '';
btnClass = '';
switch ( button ) {
case 'ellipsis':
btnDisplay = '&#x2026;';
btnClass = 'disabled';
break;
case 'first':
btnDisplay = lang.sFirst;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'previous':
btnDisplay = lang.sPrevious;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'next':
btnDisplay = lang.sNext;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
case 'last':
btnDisplay = lang.sLast;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
default:
btnDisplay = button + 1;
btnClass = page === button ?
'active' : '';
break;
}
if ( btnDisplay ) {
node = $('<li>', {
'class': classes.sPageButton+' '+btnClass,
'id': idx === 0 && typeof button === 'string' ?
settings.sTableId +'_'+ button :
null
} )
.append( $('<a>', {
'href': '#',
'aria-controls': settings.sTableId,
'aria-label': aria[ button ],
'data-dt-idx': counter,
'tabindex': settings.iTabIndex
} )
.html( btnDisplay )
)
.appendTo( container );
settings.oApi._fnBindAction(
node, {action: button}, clickHandler
);
counter++;
}
}
}
};
// IE9 throws an 'unknown error' if document.activeElement is used
// inside an iframe or frame.
var activeEl;
try {
// Because this approach is destroying and recreating the paging
// elements, focus is lost on the select button which is bad for
// accessibility. So we want to restore focus once the draw has
// completed
activeEl = $(host).find(document.activeElement).data('dt-idx');
}
catch (e) {}
attach(
$(host).empty().html('<ul class="pagination"/>').children('ul'),
buttons
);
if ( activeEl !== undefined ) {
$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
}
};
return DataTable;
}));

View File

@@ -0,0 +1,8 @@
/*!
DataTables Bootstrap 3 integration
©2011-2015 SpryMedia Ltd - datatables.net/license
*/
(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes,
{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};
l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="&#x2026;";g="disabled";break;case "first":e=k.sFirst;g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#",
"aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});

View File

@@ -0,0 +1,184 @@
/*! DataTables Bootstrap 4 integration
* ©2011-2017 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
// Require DataTables, which attaches to jQuery, including
// jQuery if needed and have a $ property so we can access the
// jQuery object that is used
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer: 'bootstrap'
} );
/* Default class modification */
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper dt-bootstrap4",
sFilterInput: "form-control form-control-sm",
sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
sProcessing: "dataTables_processing card",
sPageButton: "paginate_button page-item"
} );
/* Bootstrap paging button renderer */
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
var api = new DataTable.Api( settings );
var classes = settings.oClasses;
var lang = settings.oLanguage.oPaginate;
var aria = settings.oLanguage.oAria.paginate || {};
var btnDisplay, btnClass, counter=0;
var attach = function( container, buttons ) {
var i, ien, node, button;
var clickHandler = function ( e ) {
e.preventDefault();
if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
api.page( e.data.action ).draw( 'page' );
}
};
for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
button = buttons[i];
if ( $.isArray( button ) ) {
attach( container, button );
}
else {
btnDisplay = '';
btnClass = '';
switch ( button ) {
case 'ellipsis':
btnDisplay = '&#x2026;';
btnClass = 'disabled';
break;
case 'first':
btnDisplay = lang.sFirst;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'previous':
btnDisplay = lang.sPrevious;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'next':
btnDisplay = lang.sNext;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
case 'last':
btnDisplay = lang.sLast;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
default:
btnDisplay = button + 1;
btnClass = page === button ?
'active' : '';
break;
}
if ( btnDisplay ) {
node = $('<li>', {
'class': classes.sPageButton+' '+btnClass,
'id': idx === 0 && typeof button === 'string' ?
settings.sTableId +'_'+ button :
null
} )
.append( $('<a>', {
'href': '#',
'aria-controls': settings.sTableId,
'aria-label': aria[ button ],
'data-dt-idx': counter,
'tabindex': settings.iTabIndex,
'class': 'page-link'
} )
.html( btnDisplay )
)
.appendTo( container );
settings.oApi._fnBindAction(
node, {action: button}, clickHandler
);
counter++;
}
}
}
};
// IE9 throws an 'unknown error' if document.activeElement is used
// inside an iframe or frame.
var activeEl;
try {
// Because this approach is destroying and recreating the paging
// elements, focus is lost on the select button which is bad for
// accessibility. So we want to restore focus once the draw has
// completed
activeEl = $(host).find(document.activeElement).data('dt-idx');
}
catch (e) {}
attach(
$(host).empty().html('<ul class="pagination"/>').children('ul'),
buttons
);
if ( activeEl !== undefined ) {
$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
}
};
return DataTable;
}));

View File

@@ -0,0 +1,8 @@
/*!
DataTables Bootstrap 4 integration
©2011-2017 SpryMedia Ltd - datatables.net/license
*/
(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer:"bootstrap"});b.extend(f.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();
!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="&#x2026;";g="disabled";break;case "first":e=k.sFirst;g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",
{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#","aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex,"class":"page-link"}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});

View File

@@ -0,0 +1,174 @@
/*! DataTables Foundation integration
* ©2011-2015 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Foundation. This requires Foundation 5 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using Foundation. See http://datatables.net/manual/styling/foundation
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
// Detect Foundation 5 / 6 as they have different element and class requirements
var meta = $('<meta class="foundation-mq"/>').appendTo('head');
DataTable.ext.foundationVersion = meta.css('font-family').match(/small|medium|large/) ? 6 : 5;
meta.remove();
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper dt-foundation",
sProcessing: "dataTables_processing panel callout"
} );
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
"<'row grid-x'<'small-6 columns cell'l><'small-6 columns cell'f>r>"+
"t"+
"<'row grid-x'<'small-6 columns cell'i><'small-6 columns cell'p>>",
renderer: 'foundation'
} );
/* Page button renderer */
DataTable.ext.renderer.pageButton.foundation = function ( settings, host, idx, buttons, page, pages ) {
var api = new DataTable.Api( settings );
var classes = settings.oClasses;
var lang = settings.oLanguage.oPaginate;
var aria = settings.oLanguage.oAria.paginate || {};
var btnDisplay, btnClass;
var tag;
var v5 = DataTable.ext.foundationVersion === 5;
var attach = function( container, buttons ) {
var i, ien, node, button;
var clickHandler = function ( e ) {
e.preventDefault();
if ( !$(e.currentTarget).hasClass('unavailable') && api.page() != e.data.action ) {
api.page( e.data.action ).draw( 'page' );
}
};
for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
button = buttons[i];
if ( $.isArray( button ) ) {
attach( container, button );
}
else {
btnDisplay = '';
btnClass = '';
tag = null;
switch ( button ) {
case 'ellipsis':
btnDisplay = '&#x2026;';
btnClass = 'unavailable disabled';
tag = null;
break;
case 'first':
btnDisplay = lang.sFirst;
btnClass = button + (page > 0 ?
'' : ' unavailable disabled');
tag = page > 0 ? 'a' : null;
break;
case 'previous':
btnDisplay = lang.sPrevious;
btnClass = button + (page > 0 ?
'' : ' unavailable disabled');
tag = page > 0 ? 'a' : null;
break;
case 'next':
btnDisplay = lang.sNext;
btnClass = button + (page < pages-1 ?
'' : ' unavailable disabled');
tag = page < pages-1 ? 'a' : null;
break;
case 'last':
btnDisplay = lang.sLast;
btnClass = button + (page < pages-1 ?
'' : ' unavailable disabled');
tag = page < pages-1 ? 'a' : null;
break;
default:
btnDisplay = button + 1;
btnClass = page === button ?
'current' : '';
tag = page === button ?
null : 'a';
break;
}
if ( v5 ) {
tag = 'a';
}
if ( btnDisplay ) {
node = $('<li>', {
'class': classes.sPageButton+' '+btnClass,
'aria-controls': settings.sTableId,
'aria-label': aria[ button ],
'tabindex': settings.iTabIndex,
'id': idx === 0 && typeof button === 'string' ?
settings.sTableId +'_'+ button :
null
} )
.append( tag ?
$('<'+tag+'/>', {'href': '#'} ).html( btnDisplay ) :
btnDisplay
)
.appendTo( container );
settings.oApi._fnBindAction(
node, {action: button}, clickHandler
);
}
}
}
};
attach(
$(host).empty().html('<ul class="pagination"/>').children('ul'),
buttons
);
};
return DataTable;
}));

View File

@@ -0,0 +1,8 @@
/*!
DataTables Foundation integration
©2011-2015 SpryMedia Ltd - datatables.net/license
*/
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return d(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net")(a,b).$;return d(b,a,a.document)}:d(jQuery,window,document)})(function(d){var a=d.fn.dataTable,b=d('<meta class="foundation-mq"/>').appendTo("head");a.ext.foundationVersion=b.css("font-family").match(/small|medium|large/)?6:5;b.remove();d.extend(a.ext.classes,
{sWrapper:"dataTables_wrapper dt-foundation",sProcessing:"dataTables_processing panel callout"});d.extend(!0,a.defaults,{dom:"<'row grid-x'<'small-6 columns cell'l><'small-6 columns cell'f>r>t<'row grid-x'<'small-6 columns cell'i><'small-6 columns cell'p>>",renderer:"foundation"});a.ext.renderer.pageButton.foundation=function(b,l,r,s,e,i){var m=new a.Api(b),t=b.oClasses,j=b.oLanguage.oPaginate,u=b.oLanguage.oAria.paginate||{},f,h,g,v=5===a.ext.foundationVersion,q=function(a,n){var k,o,p,c,l=function(a){a.preventDefault();
!d(a.currentTarget).hasClass("unavailable")&&m.page()!=a.data.action&&m.page(a.data.action).draw("page")};k=0;for(o=n.length;k<o;k++)if(c=n[k],d.isArray(c))q(a,c);else{h=f="";g=null;switch(c){case "ellipsis":f="&#x2026;";h="unavailable disabled";g=null;break;case "first":f=j.sFirst;h=c+(0<e?"":" unavailable disabled");g=0<e?"a":null;break;case "previous":f=j.sPrevious;h=c+(0<e?"":" unavailable disabled");g=0<e?"a":null;break;case "next":f=j.sNext;h=c+(e<i-1?"":" unavailable disabled");g=e<i-1?"a":
null;break;case "last":f=j.sLast;h=c+(e<i-1?"":" unavailable disabled");g=e<i-1?"a":null;break;default:f=c+1,h=e===c?"current":"",g=e===c?null:"a"}v&&(g="a");f&&(p=d("<li>",{"class":t.sPageButton+" "+h,"aria-controls":b.sTableId,"aria-label":u[c],tabindex:b.iTabIndex,id:0===r&&"string"===typeof c?b.sTableId+"_"+c:null}).append(g?d("<"+g+"/>",{href:"#"}).html(f):f).appendTo(a),b.oApi._fnBindAction(p,{action:c},l))}};q(d(l).empty().html('<ul class="pagination"/>').children("ul"),s)};return a});

View File

@@ -0,0 +1,164 @@
/*! DataTables jQuery UI integration
* ©2011-2014 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for jQuery UI. This requires jQuery UI and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using jQuery UI. See http://datatables.net/manual/styling/jqueryui
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
var sort_prefix = 'css_right ui-icon ui-icon-';
var toolbar_prefix = 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-';
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
'<"'+toolbar_prefix+'tl ui-corner-tr"lfr>'+
't'+
'<"'+toolbar_prefix+'bl ui-corner-br"ip>',
renderer: 'jqueryui'
} );
$.extend( DataTable.ext.classes, {
"sWrapper": "dataTables_wrapper dt-jqueryui",
/* Full numbers paging buttons */
"sPageButton": "fg-button ui-button ui-state-default",
"sPageButtonActive": "ui-state-disabled",
"sPageButtonDisabled": "ui-state-disabled",
/* Features */
"sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+
"ui-buttonset-multi paging_", /* Note that the type is postfixed */
/* Sorting */
"sSortAsc": "ui-state-default sorting_asc",
"sSortDesc": "ui-state-default sorting_desc",
"sSortable": "ui-state-default sorting",
"sSortableAsc": "ui-state-default sorting_asc_disabled",
"sSortableDesc": "ui-state-default sorting_desc_disabled",
"sSortableNone": "ui-state-default sorting_disabled",
"sSortIcon": "DataTables_sort_icon",
/* Scrolling */
"sScrollHead": "dataTables_scrollHead "+"ui-state-default",
"sScrollFoot": "dataTables_scrollFoot "+"ui-state-default",
/* Misc */
"sHeaderTH": "ui-state-default",
"sFooterTH": "ui-state-default"
} );
DataTable.ext.renderer.header.jqueryui = function ( settings, cell, column, classes ) {
// Calculate what the unsorted class should be
var noSortAppliedClass = sort_prefix+'caret-2-n-s';
var asc = $.inArray('asc', column.asSorting) !== -1;
var desc = $.inArray('desc', column.asSorting) !== -1;
if ( !column.bSortable || (!asc && !desc) ) {
noSortAppliedClass = '';
}
else if ( asc && !desc ) {
noSortAppliedClass = sort_prefix+'caret-1-n';
}
else if ( !asc && desc ) {
noSortAppliedClass = sort_prefix+'caret-1-s';
}
// Setup the DOM structure
$('<div/>')
.addClass( 'DataTables_sort_wrapper' )
.append( cell.contents() )
.append( $('<span/>')
.addClass( classes.sSortIcon+' '+noSortAppliedClass )
)
.appendTo( cell );
// Attach a sort listener to update on sort
$(settings.nTable).on( 'order.dt', function ( e, ctx, sorting, columns ) {
if ( settings !== ctx ) {
return;
}
var colIdx = column.idx;
cell
.removeClass( classes.sSortAsc +" "+classes.sSortDesc )
.addClass( columns[ colIdx ] == 'asc' ?
classes.sSortAsc : columns[ colIdx ] == 'desc' ?
classes.sSortDesc :
column.sSortingClass
);
cell
.find( 'span.'+classes.sSortIcon )
.removeClass(
sort_prefix+'triangle-1-n' +" "+
sort_prefix+'triangle-1-s' +" "+
sort_prefix+'caret-2-n-s' +" "+
sort_prefix+'caret-1-n' +" "+
sort_prefix+'caret-1-s'
)
.addClass( columns[ colIdx ] == 'asc' ?
sort_prefix+'triangle-1-n' : columns[ colIdx ] == 'desc' ?
sort_prefix+'triangle-1-s' :
noSortAppliedClass
);
} );
};
/*
* TableTools jQuery UI compatibility
* Required TableTools 2.1+
*/
if ( DataTable.TableTools ) {
$.extend( true, DataTable.TableTools.classes, {
"container": "DTTT_container ui-buttonset ui-buttonset-multi",
"buttons": {
"normal": "DTTT_button ui-button ui-state-default"
},
"collection": {
"container": "DTTT_collection ui-buttonset ui-buttonset-multi"
}
} );
}
return DataTable;
}));

View File

@@ -0,0 +1,9 @@
/*!
DataTables jQuery UI integration
©2011-2014 SpryMedia Ltd - datatables.net/license
*/
(function(a){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(b){return a(b,window,document)}):"object"===typeof exports?module.exports=function(b,d){b||(b=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(b,d).$;return a(d,b,b.document)}:a(jQuery,window,document)})(function(a){var b=a.fn.dataTable;a.extend(!0,b.defaults,{dom:'<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-tl ui-corner-tr"lfr>t<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-bl ui-corner-br"ip>',
renderer:"jqueryui"});a.extend(b.ext.classes,{sWrapper:"dataTables_wrapper dt-jqueryui",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:"ui-state-default sorting_asc",sSortDesc:"ui-state-default sorting_desc",sSortable:"ui-state-default sorting",sSortableAsc:"ui-state-default sorting_asc_disabled",sSortableDesc:"ui-state-default sorting_desc_disabled",
sSortableNone:"ui-state-default sorting_disabled",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sHeaderTH:"ui-state-default",sFooterTH:"ui-state-default"});b.ext.renderer.header.jqueryui=function(b,h,e,c){var f="css_right ui-icon ui-icon-caret-2-n-s",g=-1!==a.inArray("asc",e.asSorting),i=-1!==a.inArray("desc",e.asSorting);!e.bSortable||!g&&!i?f="":g&&!i?f="css_right ui-icon ui-icon-caret-1-n":!g&&i&&(f="css_right ui-icon ui-icon-caret-1-s");
a("<div/>").addClass("DataTables_sort_wrapper").append(h.contents()).append(a("<span/>").addClass(c.sSortIcon+" "+f)).appendTo(h);a(b.nTable).on("order.dt",function(a,g,i,j){b===g&&(a=e.idx,h.removeClass(c.sSortAsc+" "+c.sSortDesc).addClass("asc"==j[a]?c.sSortAsc:"desc"==j[a]?c.sSortDesc:e.sSortingClass),h.find("span."+c.sSortIcon).removeClass("css_right ui-icon ui-icon-triangle-1-n css_right ui-icon ui-icon-triangle-1-s css_right ui-icon ui-icon-caret-2-n-s css_right ui-icon ui-icon-caret-1-n css_right ui-icon ui-icon-caret-1-s").addClass("asc"==
j[a]?"css_right ui-icon ui-icon-triangle-1-n":"desc"==j[a]?"css_right ui-icon ui-icon-triangle-1-s":f))})};b.TableTools&&a.extend(!0,b.TableTools.classes,{container:"DTTT_container ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button ui-state-default"},collection:{container:"DTTT_collection ui-buttonset ui-buttonset-multi"}});return b});

View File

@@ -0,0 +1,212 @@
/*! DataTables Bootstrap 3 integration
* ©2011-2015 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
// Require DataTables, which attaches to jQuery, including
// jQuery if needed and have a $ property so we can access the
// jQuery object that is used
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
"<'ui stackable grid'"+
"<'row'"+
"<'eight wide column'l>"+
"<'right aligned eight wide column'f>"+
">"+
"<'row dt-table'"+
"<'sixteen wide column'tr>"+
">"+
"<'row'"+
"<'seven wide column'i>"+
"<'right aligned nine wide column'p>"+
">"+
">",
renderer: 'semanticUI'
} );
/* Default class modification */
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper dt-semanticUI",
sFilter: "dataTables_filter ui input",
sProcessing: "dataTables_processing ui segment",
sPageButton: "paginate_button item"
} );
/* Bootstrap paging button renderer */
DataTable.ext.renderer.pageButton.semanticUI = function ( settings, host, idx, buttons, page, pages ) {
var api = new DataTable.Api( settings );
var classes = settings.oClasses;
var lang = settings.oLanguage.oPaginate;
var aria = settings.oLanguage.oAria.paginate || {};
var btnDisplay, btnClass, counter=0;
var attach = function( container, buttons ) {
var i, ien, node, button;
var clickHandler = function ( e ) {
e.preventDefault();
if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
api.page( e.data.action ).draw( 'page' );
}
};
for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
button = buttons[i];
if ( $.isArray( button ) ) {
attach( container, button );
}
else {
btnDisplay = '';
btnClass = '';
switch ( button ) {
case 'ellipsis':
btnDisplay = '&#x2026;';
btnClass = 'disabled';
break;
case 'first':
btnDisplay = lang.sFirst;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'previous':
btnDisplay = lang.sPrevious;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'next':
btnDisplay = lang.sNext;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
case 'last':
btnDisplay = lang.sLast;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
default:
btnDisplay = button + 1;
btnClass = page === button ?
'active' : '';
break;
}
var tag = btnClass.indexOf( 'disabled' ) === -1 ?
'a' :
'div';
if ( btnDisplay ) {
node = $('<'+tag+'>', {
'class': classes.sPageButton+' '+btnClass,
'id': idx === 0 && typeof button === 'string' ?
settings.sTableId +'_'+ button :
null,
'href': '#',
'aria-controls': settings.sTableId,
'aria-label': aria[ button ],
'data-dt-idx': counter,
'tabindex': settings.iTabIndex
} )
.html( btnDisplay )
.appendTo( container );
settings.oApi._fnBindAction(
node, {action: button}, clickHandler
);
counter++;
}
}
}
};
// IE9 throws an 'unknown error' if document.activeElement is used
// inside an iframe or frame.
var activeEl;
try {
// Because this approach is destroying and recreating the paging
// elements, focus is lost on the select button which is bad for
// accessibility. So we want to restore focus once the draw has
// completed
activeEl = $(host).find(document.activeElement).data('dt-idx');
}
catch (e) {}
attach(
$(host).empty().html('<div class="ui stackable pagination menu"/>').children(),
buttons
);
if ( activeEl !== undefined ) {
$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
}
};
// Javascript enhancements on table initialisation
$(document).on( 'init.dt', function (e, ctx) {
if ( e.namespace !== 'dt' ) {
return;
}
var api = new $.fn.dataTable.Api( ctx );
// Length menu drop down
if ( $.fn.dropdown ) {
$( 'div.dataTables_length select', api.table().container() ).dropdown();
}
// Filtering input
$( 'div.dataTables_filter.ui.input', api.table().container() ).removeClass('input').addClass('form');
$( 'div.dataTables_filter input', api.table().container() ).wrap( '<span class="ui input" />' );
} );
return DataTable;
}));

View File

@@ -0,0 +1,9 @@
/*!
DataTables Bootstrap 3 integration
©2011-2015 SpryMedia Ltd - datatables.net/license
*/
(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,e){a||(a=window);if(!e||!e.fn.dataTable)e=require("datatables.net")(a,e).$;return b(e,a,a.document)}:b(jQuery,window,document)})(function(b,a,e,m){var c=b.fn.dataTable;b.extend(!0,c.defaults,{dom:"<'ui stackable grid'<'row'<'eight wide column'l><'right aligned eight wide column'f>><'row dt-table'<'sixteen wide column'tr>><'row'<'seven wide column'i><'right aligned nine wide column'p>>>",
renderer:"semanticUI"});b.extend(c.ext.classes,{sWrapper:"dataTables_wrapper dt-semanticUI",sFilter:"dataTables_filter ui input",sProcessing:"dataTables_processing ui segment",sPageButton:"paginate_button item"});c.ext.renderer.pageButton.semanticUI=function(h,a,r,s,j,n){var o=new c.Api(h),t=h.oClasses,k=h.oLanguage.oPaginate,u=h.oLanguage.oAria.paginate||{},f,g,p=0,q=function(a,e){var c,i,l,d,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};
c=0;for(i=e.length;c<i;c++)if(d=e[c],b.isArray(d))q(a,d);else{g=f="";switch(d){case "ellipsis":f="&#x2026;";g="disabled";break;case "first":f=k.sFirst;g=d+(0<j?"":" disabled");break;case "previous":f=k.sPrevious;g=d+(0<j?"":" disabled");break;case "next":f=k.sNext;g=d+(j<n-1?"":" disabled");break;case "last":f=k.sLast;g=d+(j<n-1?"":" disabled");break;default:f=d+1,g=j===d?"active":""}l=-1===g.indexOf("disabled")?"a":"div";f&&(l=b("<"+l+">",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof d?
h.sTableId+"_"+d:null,href:"#","aria-controls":h.sTableId,"aria-label":u[d],"data-dt-idx":p,tabindex:h.iTabIndex}).html(f).appendTo(a),h.oApi._fnBindAction(l,{action:d},m),p++)}},i;try{i=b(a).find(e.activeElement).data("dt-idx")}catch(v){}q(b(a).empty().html('<div class="ui stackable pagination menu"/>').children(),s);i!==m&&b(a).find("[data-dt-idx="+i+"]").focus()};b(e).on("init.dt",function(a,e){if("dt"===a.namespace){var c=new b.fn.dataTable.Api(e);b.fn.dropdown&&b("div.dataTables_length select",
c.table().container()).dropdown();b("div.dataTables_filter.ui.input",c.table().container()).removeClass("input").addClass("form");b("div.dataTables_filter input",c.table().container()).wrap('<span class="ui input" />')}});return c});

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,166 @@
/*!
DataTables 1.10.18
©2008-2018 SpryMedia Ltd - datatables.net/license
*/
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Z(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
d[c]=e,"o"===b[1]&&Z(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Z(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=n.defaults.oLanguage,c=b.sDecimal;c&&Da(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&(d&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(d&&"Loading..."===b.sLoadingRecords)&&F(a,
a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Da(a)}}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(n.models.oSearch,a[b])}function fb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function gb(a){if(!n.__browser){var b={};n.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,
overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,n.__browser);a.oScroll.iBarWidth=n.__browser.barWidth}
function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=n.defaults.column,d=a.aoColumns.length,c=h.extend({},n.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},n.models.oSearch,c[d]);ka(a,d,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],
d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(n.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=S(g),i=b.mRender?
S(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return N(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,
b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function $(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&la(a);r(a,null,"column-sizing",[a])}function aa(a,b){var c=ma(a,"bVisible");return"number"===
typeof c[b]?c[b]:null}function ba(a,b){var c=ma(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function V(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function ma(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ga(a){var b=a.aoColumns,c=a.aoData,d=n.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<
j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function ib(a,b,c,d){var e,f,g,j,i,m,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){m=b[e];var q=m.targets!==k?m.targets:m.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ea(a);d(q[f],m)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],m);else if("string"===
typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,m)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function O(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},n.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ha(a,e,c,d);return e}function na(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,
e){c=Ia(a,e);return O(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function jb(a,
b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function Ja(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function S(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=S(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||
-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=Ja(f);for(var i=0,m=j.length;i<m;i++){f=j[i].match(ca);g=j[i].match(W);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(m=a.length;i<m;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(W,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}
function N(a){if(h.isPlainObject(a))return N(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ja(e),f;f=e[e.length-1];for(var g,j,i=0,m=e.length-1;i<m;i++){g=e[i].match(ca);j=e[i].match(W);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(m=d.length;j<m;j++)f={},b(f,d[j],g),
a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(W,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(W))a[f.replace(W,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ka(a){return D(a.aoData,"_aData")}function oa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function pa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,
1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;La(a,e)}}function Ia(a,b,c,d){var e=[],f=b.firstChild,g,
j,i=0,m,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),N(a)(d,b.getAttribute(c)))}},G=function(a){if(c===k||c===i)j=l[i],m=h.trim(a.innerHTML),j&&j._bAttrSrc?(N(j.mData._)(d,m),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=N(j.mData)),j._setter(d,m)):d[i]=m;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)G(f),e.push(f);f=f.nextSibling}else{e=b.anCells;
f=0;for(g=e.length;f<g;f++)G(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&N(a.rowId)(d,b);return{data:d,cells:e}}function Ha(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,m,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;La(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){m=a.aoColumns[l];i=c?d[l]:H.createElement(m.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||m.mRender||m.mData!==l)&&(!h.isPlainObject(m.mData)||m.mData._!==l+".display"))i.innerHTML=
B(a,b,l,"display");m.sClass&&(i.className+=" "+m.sClass);m.bVisible&&!c?j.appendChild(i):!m.bVisible&&c&&i.parentNode.removeChild(i);m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b,g])}e.nTr.setAttribute("role","row")}function La(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function kb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===h("th, td",g).length,m=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Ma(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Na(a,"header")(a,d,
f,m);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(m.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(m.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,m;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=
0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(m=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+m]!==k&&g[d][f].cell==g[d][f+m].cell;){for(c=0;c<i;c++)j[d+c][f+m]=1;m++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",m)}}}}function P(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=
d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:m;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ha(a,l);var t=q.nTr;if(0!==e){var G=d[c%e];q._sRowStripe!=G&&(h(t).removeClass(q._sRowStripe).addClass(G),
q._sRowStripe=G)}r(a,"aoRowCallback",null,[t,q._aData,c,j,l]);b.push(t);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:V(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,m,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,m,i]);d=h(a.nTBody);d.children().detach();
d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;P(a);a._drawHold=!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=
a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,m,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];m=f[k+1];if("'"==m||'"'==m){l="";for(q=2;f[k+q]!=m;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(m=l.split("."),i.id=m[0].substr(1,m[0].length-1),i.className=m[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&
d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==n.ext.feature.length){i=n.ext.feature;q=0;for(m=i.length;q<m;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,m,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<
i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;m=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][m+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||
!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var m="function"===typeof f?f(b,a):f,b="function"===typeof f&&m?m:h.extend(!0,b,m);delete g.data}m={data:b,success:function(b){var c=
b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(m,{url:g||a.sAjaxSource})):
"function"===typeof g?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(m,g)),g.data=f)}function lb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,!0),sa(a,ub(a),function(b){vb(a,b)}),!1):!0}function ub(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,m,l,k=X(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",
i);var G={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)m=b[g],l=f[g],i="function"==typeof m.mData?"function":m.mData,G.columns.push({data:i,name:m.sName,searchable:m.bSearchable,orderable:m.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,m.bSearchable)),d.bSort&&t("bSortable_"+g,m.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",
e.bRegex));d.bSort&&(h.each(k,function(a,b){G.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+a,b.dir)}),t("iSortingCols",k.length));b=n.ext.legacy.ajax;return null===b?a.sAjaxSource?j:G:b?j:G}function vb(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}oa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,
10);d=0;for(e=c.length;d<e;d++)O(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;P(a);a._bInitComplete||ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?S(c)(b):b}function pb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",
g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,P(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Oa(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",
c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ga(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)xb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,
e[b].bSmart,e[b].bCaseInsensitive);yb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function yb(a){for(var b=n.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,m=c.length;i<m;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function xb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Pa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function wb(a,b,c,d,e,f){var d=Pa(b,
d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==n.ext.search.length&&(c=!0);j=zb(a);if(0>=b.length)a.aiDisplay=g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Pa(a,b,c,d){a=b?a:Qa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',
"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=n.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);
h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Ab(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Bb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function sb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",
b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,
c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Fa(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);T(a);e=
y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)O(a,f[b]);a.iInitDisplayStart=d;T(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ha(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&$(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);r(a,null,"length",[a,c])}function ob(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=
e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ra(a,h(this).val());P(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===
c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=n.ext.pager[b],d="function"===typeof c,e=function(a){P(a)},b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Na(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,
e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&P(a));return b}function qb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}
function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");r(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),m=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",
position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
{"class":f.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:la,sName:"scrolling"});return i[0]}function la(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,
f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,m=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),n=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),Q,L,R,w,Ua=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==
L&&a.scrollBarVis!==k)a.scrollBarVis=L,$(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();u&&(R=u.clone().prependTo(p),Q=u.find("tr"),R=R.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=aa(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},R);f=p.outerWidth();if(""===c){r.width="100%";if(U&&(p.find("tbody").height()>j.offsetHeight||
"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=v(d),f=p.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Ua.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ua[b]},o);h(L).height(0);u&&(I(C,R),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},R),I(function(a,b){a.style.width=y[b]},Q),h(R).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+z[b]+"</div>";a.childNodes[0].style.height=
"0";a.childNodes[0].style.overflow="hidden";a.style.width=Ua[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+A[b]+"</div>";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},R);if(p.outerWidth()<f){Q=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(Q-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else Q="100%";q.width=v(Q);
g.width=v(Q);u&&(a.nScrollFoot.style.width=v(Q));!e&&U&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();m[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(n[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,
f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Fa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=ma(a,"bVisible"),m=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,n,o,p=a.oBrowser,d=p.bScrollOversize;(n=b.style.width)&&-1!==n.indexOf("%")&&(l=n);for(n=0;n<i.length;n++)o=c[i[n]],null!==o.sWidth&&(o.sWidth=Eb(o.sWidthOrig,k),t=!0);if(d||
!t&&!f&&!e&&j==V(a)&&j==m.length)for(n=0;n<j;n++)i=aa(a,n),null!==i&&(c[i].sWidth=v(m.eq(n).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");m=ra(a,j.find("thead")[0]);for(n=0;n<i.length;n++)o=c[i[n]],m[n].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):
"",o.sWidthOrig&&f&&h(m[n]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(n=0;n<i.length;n++)t=i[n],o=c[t],h(Fb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):
l&&j.width(l);for(n=e=0;n<i.length;n++)k=h(m[n]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(m[n].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[n]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Oa(function(){$(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Eb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Fb(a,
b){var c=Gb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Gb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function X(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var m=[];f=function(a){a.length&&
!h.isArray(a[0])?m.push(a):h.merge(m,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<m.length;a++){i=m[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",m[a]._idx===k&&(m[a]._idx=h.inArray(m[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:m[a][1],index:m[a]._idx,type:j,formatter:n.ext.type.order[j+"-pre"]})}return d}function mb(a){var b,c,d=[],e=n.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ga(a);h=X(a);b=0;for(c=h.length;b<
c;b++)j=h[b],j.formatter&&g++,Hb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,n=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=n[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,n=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=n[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],
c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Ib(a){for(var b,c,d=a.aoColumns,e=X(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,
b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==
typeof d&&d(a)}function Ma(a,b,c,d){var e=a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=X(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+
(2>e?e+1:3))}a.aLastSort=d}function Hb(a,b){var c=a.aoColumns[b],d=n.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=n.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Ab(a.oPreviousSearch),
columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Ab(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Jb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&
(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==k&&h.extend(a.oPreviousSearch,Bb(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Bb(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=
a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=n.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=n.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==
typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Xa(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).on("click.DT",b,function(b){h(a).blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",
function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=n.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===
typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Kb.numbers_length,d=Math.floor(c/2);b<=c?c=Y(0,b):a<=d?(c=Y(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=Y(b-(c-2),b):(c=Y(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function Da(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Ya)},"html-num":function(b){return za(b,
a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Ya)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Lb(a){return function(){var b=[ya(this[n.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.ext.internal[a].apply(this,b)}}var n=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};
this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&la(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,
b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():
c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};
this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();
(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in n.ext.internal)e&&(this[e]=Lb(e));this.each(function(){var e={},g=1<d?Xa(e,a,!0):a,j=0,i,e=this.getAttribute("id"),m=!1,l=n.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{eb(l);fb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var t=n.settings,
j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead&&o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();break}else{K(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+n.ext._unique++;var p=h.extend(!0,{},n.models.oSettings,{sDestroyWidth:q[0].style.width,
sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();eb(g);Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=Xa(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod",
"aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");
z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",
g.fnPreDrawCallback,"user");p.rowIdFn=S(g.rowId);gb(p);var u=p.oClasses;h.extend(u,n.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);
J(l.oLanguage,a);h.extend(true,v,a);ha(p)},error:function(){ha(p)}}),m=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(ea(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=
g.aoColumns;j=0;for(i=t.length;j<i;j++)Ea(p,e?e[j]:null);ib(p,g.aoColumnDefs,t,function(a,b){ka(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ka(p,a)}}})}var U=p.oFeatures,
e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);U.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=X(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Ib(p)}});z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||U.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){p.nTFoot=b[0];ea(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)O(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&na(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();
p.bInitialised=true;m===false&&ha(p)};g.bStateSave?(U.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Jb(p,g,e)):e()}});b=null;return this},x,s,o,u,Za={},Mb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Ya=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Nb=function(a){var b=parseInt(a,10);return!isNaN(b)&&
isFinite(a)?b:null},Ob=function(a,b){Za[b]||(Za[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Za[b],"."):a},$a=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Ob(a,b));c&&d&&(a=a.replace(Ya,""));return!isNaN(parseFloat(a))&&isFinite(a)},Pb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:$a(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},Y=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Qb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};n.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,W=/\(\)$/,Qa=n.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=
/<.*?>/g,Oa=n.util.throttle,Rb=[],w=Array.prototype,ac=function(a){var b,c,d=n.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof
s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Rb)};n.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,m,l=this.context,
n,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(n=Ba(l[g],u.opts));h=0;for(m=o.length;h<m;h++)f=o[h],f="cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,n),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?
e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return hb(this,a,b,0,this.length,
1)},reduceRight:w.reduceRight||function(a,b){return hb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Rb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var m=f.length;i<m;i++)if(f[i].name===g){i=
f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?P(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});o("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});o("page.info()",function(){if(0===
this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ra(b,a)})});var Sb=function(a,b,c){if(c){var d=new s(a);
d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){oa(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)O(a,c[d]);T(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});o("ajax.url()",function(a){var b=
this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});var ab=function(a,b,c,d,e){var f=[],g,j,i,m,l,n;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(m=b.length;i<m;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
[b[i]];l=0;for(n=j.length;l<n;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(m=a.length;i<m;i++)f=a[i](d,e,f)}return qa(f)},bb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},cb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,
d,e,f=[],g=a.aiDisplay;e=a.aiDisplayMaster;var j=b.search;c=b.order;d=b.page;if("ssp"==y(a))return"removed"===j?[]:Y(0,e.length);if("current"==d){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==c||"applied"==c)if("none"==j)f=e.slice();else if("applied"==j)f=g.slice();else{if("removed"==j){var i={};c=0;for(d=g.length;c<d;c++)i[g[c]]=null;f=h.map(e,function(a){return!i.hasOwnProperty(a)?a:null})}}else if("index"==c||"original"==c){c=0;for(d=a.aoData.length;c<d;c++)"none"==
j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=b,f;return ab("row",a,function(a){var b=Nb(a),i=c.aoData;if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var c=i[b];return a(b,c._aData,c.nTr)?b:null});if(a.nodeName){var b=
a._DT_RowIndex,m=a._DT_CellIndex;if(b!==k)return i[b]&&i[b].nTr===a?[b]:[];if(m)return i[m.row]&&i[m.row].nTr===a?[m.row]:[];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){b=c.aIds[a.replace(/^#/,"")];if(b!==k)return[b.idx]}b=Qb(ja(c.aoData,f,"nTr"));return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",
function(a,b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",
function(a,b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,m,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(m=
l.length;i<m;i++)l[i]._DT_CellIndex.row=g}pa(b.aiDisplayMaster,c);pa(b.aiDisplay,c);pa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(na(b,c)[0]):h.push(O(b,c));return h},
1),c=this.rows(-1);c.pop();h.merge(c,b);return c});o("row()",function(a,b){return cb(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;var c=b[0].aoData[this[0]];c._aData=a;h.isArray(a)&&c.nTr.id&&N(b[0].rowId)(a,c.nTr.id);da(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&
a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?na(b,a)[0]:O(b,a)});return this.row(b[0])});var db=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Tb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
0<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=V(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&db(f,c)}))}}};o("row().child()",function(a,b){var c=
this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)db(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=V(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);
c._detailsShow&&c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Tb(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Tb(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){db(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Ub=function(a,b,
c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return ab("column",e,function(a){var b=Nb(a);if(a==="")return Y(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Ub(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):
"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var n=h.map(g,function(a,b){return a.bVisible?b:null});return[n[n.length+b]]}return[aa(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},
1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Ub,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},
1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,
i,m,l;if(a!==k&&g.bVisible!==a){if(a){var n=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(m=j.length;i<m;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[n]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);b.aiDisplay.length||h(b.nTBody).find("td[colspan]").attr("colspan",V(b));xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",
function(a){return this.iterator("column",function(b,c){return"visible"===a?ba(b,c):c},1)});o("columns.adjust()",function(){return this.iterator("table",function(a){$(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return aa(c,b);if("fromData"===a||"toVisible"===a)return ba(c,b)}});o("column()",function(a,b){return cb(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));
h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=bb(c),f=b.aoData,g=Ba(b,e),j=Qb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,m=b.aoColumns.length,n,o,u,s,r,v;return ab("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){n=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<m;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&n.push(r)}else n.push(r)}}return n}if(h.isPlainObject(a))return a.column!==
k&&a.row!==k&&h.inArray(a.row,g)!==-1?[a]:[];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b),e=this.rows(a),f,g,j,i,m;this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(m=d[b].length;i<m;i++)f.push({row:e[b][g],column:d[b][i]})}},1);var l=this.cells(f,
c);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",
function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ba(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});o("cell()",function(a,b,c){return cb(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],
c[0].row,c[0].column):k;jb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){Ma(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=
this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,
h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:
null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});n.versionCheck=n.fnVersionCheck=function(a){for(var b=n.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};n.isDataTable=
n.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof n.Api)return!0;h.each(n.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};n.tables=n.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(n.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};n.camelToHungarian=J;o("$()",function(a,b){var c=
this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){oa(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=
this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");
h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),
(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,n.settings);-1!==c&&n.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=S(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:
a._);return a.replace("%d",c)});n.version="1.10.18";n.settings=[];n.models={};n.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};n.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};n.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,
sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};n.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
n.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Z(n.defaults);n.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
Z(n.defaults.column);n.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:
this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};n.ext=x={buttons:{},
classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:n.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:n.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});
h.extend(n.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
sJUIHeader:"",sJUIFooter:""});var Kb=n.ext.pager;h.extend(Kb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,n.ext.renderer,{pageButton:{_:function(a,b,c,d,e,
f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,n=0,o=function(b,d){var k,s,u,r,v=function(b){Ta(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{m=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":m=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=
j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=r+1;l=e===r?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":n,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(m).appendTo(b);Wa(u,{action:r},v);n++}}}},s;try{s=h(b).find(H.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+
s+"]").focus()}}});h.extend(n.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||
"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(n.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Mb," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Mb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Ob(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return M(a)?
"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});Da("");h.extend(!0,n.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:
c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]==
"asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Vb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};n.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Vb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
a)+f+(e||"")}}},text:function(){return{display:Vb}}};h.extend(n.ext.internal,{_fnExternApiFunc:Lb,_fnBuildAjax:sa,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:ta,_fnAddColumn:Ea,_fnColumnOptions:ka,_fnAdjustColumnSizing:$,_fnVisibleToColumnIndex:aa,_fnColumnIndexToVisible:ba,_fnVisbleColumns:V,_fnGetColumns:ma,_fnColumnTypes:Ga,_fnApplyColumnDefs:ib,_fnHungarianMap:Z,_fnCamelToHungarian:J,_fnLanguageCompat:Ca,_fnBrowserDetect:gb,_fnAddData:O,_fnAddTr:na,_fnNodeToDataIndex:function(a,
b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:S,_fnSetObjectDataFn:N,_fnGetDataMaster:Ka,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:da,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:kb,_fnDrawHead:fa,_fnDraw:P,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:ea,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ga,_fnFilterCustom:yb,
_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ha,_fnInitComplete:ua,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:la,_fnApplyToChildren:I,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Eb,_fnGetWidestNode:Fb,_fnGetMaxLenString:Gb,_fnStringToCss:v,
_fnSortFlatten:X,_fnSort:mb,_fnSortAria:Ib,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:wa,_fnSortData:Hb,_fnSaveState:xa,_fnLoadState:Jb,_fnSettingsFromNode:ya,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnExtend:Xa,_fnCalculateEnd:function(){}});h.fn.dataTable=n;n.$=h;h.fn.dataTableSettings=n.settings;h.fn.dataTableExt=n.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};
h.each(n,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});

View File

@@ -0,0 +1,180 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 9px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #337ab7;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #337ab7;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}
div.dtr-bs-modal table.table tr:first-child td {
border-top: none;
}

View File

@@ -0,0 +1 @@
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#337ab7}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#337ab7}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}

View File

@@ -0,0 +1,180 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 12px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #0275d8;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #0275d8;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}
div.dtr-bs-modal table.table tr:first-child td {
border-top: none;
}

View File

@@ -0,0 +1 @@
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:12px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#0275d8}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#0275d8}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}

View File

@@ -0,0 +1,177 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 9px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #31b131;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #31b131;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}

View File

@@ -0,0 +1 @@
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}

View File

@@ -0,0 +1,180 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 9px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #008CBA;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #008CBA;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}
table.dataTable > tbody > tr.child ul {
font-size: 1em;
}

View File

@@ -0,0 +1 @@
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#008CBA}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#008CBA}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable>tbody>tr.child ul{font-size:1em}

View File

@@ -0,0 +1,177 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 9px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #31b131;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #31b131;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}

View File

@@ -0,0 +1 @@
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}

View File

@@ -0,0 +1,180 @@
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
cursor: default !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
display: none !important;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child {
position: relative;
padding-left: 30px;
cursor: pointer;
}
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before {
top: 9px;
left: 4px;
height: 14px;
width: 14px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #21ba45;
}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
content: '-';
background-color: #d33333;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
padding-left: 27px;
}
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
top: 5px;
left: 4px;
height: 14px;
width: 14px;
border-radius: 14px;
line-height: 14px;
text-indent: 3px;
}
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
position: relative;
cursor: pointer;
}
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
top: 50%;
left: 50%;
height: 16px;
width: 16px;
margin-top: -10px;
margin-left: -10px;
display: block;
position: absolute;
color: white;
border: 2px solid white;
border-radius: 14px;
box-shadow: 0 0 3px #444;
box-sizing: content-box;
text-align: center;
text-indent: 0 !important;
font-family: 'Courier New', Courier, monospace;
line-height: 14px;
content: '+';
background-color: #21ba45;
}
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
content: '-';
background-color: #d33333;
}
table.dataTable > tbody > tr.child {
padding: 0.5em 1em;
}
table.dataTable > tbody > tr.child:hover {
background: transparent !important;
}
table.dataTable > tbody > tr.child ul.dtr-details {
display: inline-block;
list-style-type: none;
margin: 0;
padding: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li {
border-bottom: 1px solid #efefef;
padding: 0.5em 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:first-child {
padding-top: 0;
}
table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
border-bottom: none;
}
table.dataTable > tbody > tr.child span.dtr-title {
display: inline-block;
min-width: 75px;
font-weight: bold;
}
div.dtr-modal {
position: fixed;
box-sizing: border-box;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 100;
padding: 10em 1em;
}
div.dtr-modal div.dtr-modal-display {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 50%;
height: 50%;
overflow: auto;
margin: auto;
z-index: 102;
overflow: auto;
background-color: #f5f5f7;
border: 1px solid black;
border-radius: 0.5em;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}
div.dtr-modal div.dtr-modal-content {
position: relative;
padding: 1em;
}
div.dtr-modal div.dtr-modal-close {
position: absolute;
top: 6px;
right: 6px;
width: 22px;
height: 22px;
border: 1px solid #eaeaea;
background-color: #f9f9f9;
text-align: center;
border-radius: 3px;
cursor: pointer;
z-index: 12;
}
div.dtr-modal div.dtr-modal-close:hover {
background-color: #eaeaea;
}
div.dtr-modal div.dtr-modal-background {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 101;
background: rgba(0, 0, 0, 0.6);
}
@media screen and (max-width: 767px) {
div.dtr-modal div.dtr-modal-display {
width: 95%;
}
}
div.dtr-bs-modal table.table tr:first-child td {
border-top: none;
}

View File

@@ -0,0 +1 @@
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#21ba45}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#21ba45}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
/*!
Responsive 2.2.2
2014-2018 SpryMedia Ltd - datatables.net/license
*/
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return d(l,window,document)}):"object"===typeof exports?module.exports=function(l,j){l||(l=window);if(!j||!j.fn.dataTable)j=require("datatables.net")(l,j).$;return d(j,l,l.document)}:d(jQuery,window,document)})(function(d,l,j,q){function t(a,b,c){var e=b+"-"+c;if(n[e])return n[e];for(var d=[],a=a.cell(b,c).node().childNodes,b=0,c=a.length;b<c;b++)d.push(a[b]);return n[e]=d}function r(a,b,d){var e=b+
"-"+d;if(n[e]){for(var a=a.cell(b,d).node(),d=n[e][0].parentNode.childNodes,b=[],f=0,g=d.length;f<g;f++)b.push(d[f]);d=0;for(f=b.length;d<f;d++)a.appendChild(b[d]);n[e]=q}}var o=d.fn.dataTable,i=function(a,b){if(!o.versionCheck||!o.versionCheck("1.10.10"))throw"DataTables Responsive requires DataTables 1.10.10 or newer";this.s={dt:new o.Api(a),columns:[],current:[]};this.s.dt.settings()[0].responsive||(b&&"string"===typeof b.details?b.details={type:b.details}:b&&!1===b.details?b.details={type:!1}:
b&&!0===b.details&&(b.details={type:"inline"}),this.c=d.extend(!0,{},i.defaults,o.defaults.responsive,b),a.responsive=this,this._constructor())};d.extend(i.prototype,{_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=d(l).width();b.settings()[0]._responsive=this;d(l).on("resize.dtr orientationchange.dtr",o.util.throttle(function(){var b=d(l).width();b!==e&&(a._resize(),e=b)}));c.oApi._fnCallbackReg(c,"aoRowCreatedCallback",function(e){-1!==d.inArray(!1,a.s.current)&&d(">td, >th",
e).each(function(e){e=b.column.index("toData",e);!1===a.s.current[e]&&d(this).css("display","none")})});b.on("destroy.dtr",function(){b.off(".dtr");d(b.table().body()).off(".dtr");d(l).off("resize.dtr orientationchange.dtr");d.each(a.s.current,function(b,e){!1===e&&a._setColumnVis(b,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width>b.width?-1:0});this._classLogic();this._resizeAuto();c=this.c.details;!1!==c.type&&(a._detailsInit(),b.on("column-visibility.dtr",function(){a._timer&&
clearTimeout(a._timer);a._timer=setTimeout(function(){a._timer=null;a._classLogic();a._resizeAuto();a._resize();a._redrawChildren()},100)}),b.on("draw.dtr",function(){a._redrawChildren()}),d(b.table().node()).addClass("dtr-"+c.type));b.on("column-reorder.dtr",function(){a._classLogic();a._resizeAuto();a._resize()});b.on("column-sizing.dtr",function(){a._resizeAuto();a._resize()});b.on("preXhr.dtr",function(){var e=[];b.rows().every(function(){this.child.isShown()&&e.push(this.id(true))});b.one("draw.dtr",
function(){a._resizeAuto();a._resize();b.rows(e).every(function(){a._detailsDisplay(this,false)})})});b.on("init.dtr",function(){a._resizeAuto();a._resize();d.inArray(false,a.s.current)&&b.columns.adjust()});this._resize()},_columnsVisiblity:function(a){var b=this.s.dt,c=this.s.columns,e,f,g=c.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=d.map(c,function(e,c){return!1===b.column(c).visible()?
"not-visible":e.auto&&null===e.minWidth?!1:!0===e.auto?"-":-1!==d.inArray(a,e.includeIn)}),m=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(m+=c[e].minWidth);e=b.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;m=b.table().container().offsetWidth-e-m;e=0;for(f=h.length;e<f;e++)c[e].control&&(m-=c[e].minWidth);var s=!1;e=0;for(f=g.length;e<f;e++){var k=g[e].columnIdx;"-"===h[k]&&(!c[k].control&&c[k].minWidth)&&(s||0>m-c[k].minWidth?(s=!0,h[k]=!1):h[k]=!0,m-=c[k].minWidth)}g=!1;e=0;for(f=c.length;e<f;e++)if(!c[e].control&&
!c[e].never&&!1===h[e]){g=!0;break}e=0;for(f=c.length;e<f;e++)c[e].control&&(h[e]=g),"not-visible"===h[e]&&(h[e]=!1);-1===d.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var a=this,b=this.c.breakpoints,c=this.s.dt,e=c.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=c.settings()[0].aoColumns[a].responsivePriority;a===q&&(b=d(b.header()).data("priority"),a=b!==q?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}),
f=function(a,b){var c=e[a].includeIn;-1===d.inArray(b,c)&&c.push(b)},g=function(d,c,g,k){if(g)if("max-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width<=k&&f(d,b[c].name)}else if("min-"===g){k=a._find(c).width;c=0;for(g=b.length;c<g;c++)b[c].width>=k&&f(d,b[c].name)}else{if("not-"===g){c=0;for(g=b.length;c<g;c++)-1===b[c].name.indexOf(k)&&f(d,b[c].name)}}else e[d].includeIn.push(c)};e.each(function(a,e){for(var c=a.className.split(" "),f=!1,i=0,l=c.length;i<l;i++){var j=d.trim(c[i]);
if("all"===j){f=!0;a.includeIn=d.map(b,function(a){return a.name});return}if("none"===j||a.never){f=!0;return}if("control"===j){f=!0;a.control=!0;return}d.each(b,function(a,b){var d=b.name.split("-"),c=j.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(a.auto=!0)});this.s.columns=e},_detailsDisplay:function(a,b){var c=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g=
f.display(a,b,function(){return f.renderer(e,a[0],c._detailsObj(a[0]))});(!0===g||!1===g)&&d(e.table().node()).triggerHandler("responsive-display.dt",[e,a,g,b])}},_detailsInit:function(){var a=this,b=this.s.dt,c=this.c.details;"inline"===c.type&&(c.target="td:first-child, th:first-child");b.on("draw.dtr",function(){a._tabIndexes()});a._tabIndexes();d(b.table().body()).on("keyup.dtr","td, th",function(a){a.keyCode===13&&d(this).data("dtr-keyboard")&&d(this).click()});var e=c.target;d(b.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",
"string"===typeof e?e:"td, th",function(c){if(d(b.table().node()).hasClass("collapsed")&&d.inArray(d(this).closest("tr").get(0),b.rows().nodes().toArray())!==-1){if(typeof e==="number"){var g=e<0?b.columns().eq(0).length+e:e;if(b.cell(this).index().column!==g)return}g=b.row(d(this).closest("tr"));c.type==="click"?a._detailsDisplay(g,false):c.type==="mousedown"?d(this).css("outline","none"):c.type==="mouseup"&&d(this).blur().css("outline","")}})},_detailsObj:function(a){var b=this,c=this.s.dt;return d.map(this.s.columns,
function(e,d){if(!e.never&&!e.control)return{title:c.settings()[0].aoColumns[d].sTitle,data:c.cell(a,d).render(b.c.orthogonal),hidden:c.column(d).visible()&&!b.s.current[d],columnIndex:d,rowIndex:a}})},_find:function(a){for(var b=this.c.breakpoints,c=0,e=b.length;c<e;c++)if(b[c].name===a)return b[c]},_redrawChildren:function(){var a=this,b=this.s.dt;b.rows({page:"current"}).iterator("row",function(c,e){b.row(e);a._detailsDisplay(b.row(e),!0)})},_resize:function(){var a=this,b=this.s.dt,c=d(l).width(),
e=this.c.breakpoints,f=e[0].name,g=this.s.columns,h,m=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(c<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(c=g.length;h<c;h++)if(!1===i[h]&&!g[h].never&&!g[h].control&&!1===!b.column(h).visible()){e=!0;break}d(b.table().node()).toggleClass("collapsed",e);var k=!1,j=0;b.columns().eq(0).each(function(b,c){!0===i[c]&&j++;i[c]!==m[c]&&(k=!0,a._setColumnVis(b,i[c]))});k&&(this._redrawChildren(),d(b.table().node()).trigger("responsive-resize.dt",
[b,this.s.current]),0===b.page.info().recordsDisplay&&d("td",b.table().body()).eq(0).attr("colspan",j))},_resizeAuto:function(){var a=this.s.dt,b=this.s.columns;if(this.c.auto&&-1!==d.inArray(!0,d.map(b,function(a){return a.auto}))){d.isEmptyObject(n)||d.each(n,function(b){b=b.split("-");r(a,1*b[0],1*b[1])});a.table().node();var c=a.table().node().cloneNode(!1),e=d(a.table().header().cloneNode(!1)).appendTo(c),f=d(a.table().body()).clone(!1,!1).empty().appendTo(c),g=a.columns().header().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display",
"table-cell").css("min-width",0);d(f).append(d(a.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=a.table().footer()){var f=d(f.cloneNode(!1)).appendTo(c),h=a.columns().footer().filter(function(b){return a.column(b).visible()}).to$().clone(!1).css("display","table-cell");d("<tr/>").append(h).appendTo(f)}d("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&&d(c).addClass("dtr-inline collapsed");d(c).find("[name]").removeAttr("name");d(c).css("position","relative");
c=d("<div/>").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(c);c.insertBefore(a.table().node());g.each(function(c){c=a.column.index("fromVisible",c);b[c].minWidth=this.offsetWidth||0});c.remove()}},_setColumnVis:function(a,b){var c=this.s.dt,e=b?"":"none";d(c.column(a).header()).css("display",e);d(c.column(a).footer()).css("display",e);c.column(a).nodes().to$().css("display",e);d.isEmptyObject(n)||c.cells(null,a).indexes().each(function(a){r(c,a.row,a.column)})},_tabIndexes:function(){var a=
this.s.dt,b=a.cells({page:"current"}).nodes().to$(),c=a.settings()[0],e=this.c.details.target;b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");"number"===typeof e?a.cells(null,e,{page:"current"}).nodes().to$().attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1):("td:first-child, th:first-child"===e&&(e=">td:first-child, >th:first-child"),d(e,a.rows({page:"current"}).nodes()).attr("tabIndex",c.iTabIndex).data("dtr-keyboard",1))}});i.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",
width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];i.display={childRow:function(a,b,c){if(b){if(d(a.node()).hasClass("parent"))return a.child(c(),"child").show(),!0}else{if(a.child.isShown())return a.child(!1),d(a.node()).removeClass("parent"),!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0}},childRowImmediate:function(a,b,c){if(!b&&a.child.isShown()||!a.responsive.hasHidden())return a.child(!1),d(a.node()).removeClass("parent"),
!1;a.child(c(),"child").show();d(a.node()).addClass("parent");return!0},modal:function(a){return function(b,c,e){if(c)d("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove();d(j).off("keypress.dtr")},g=d('<div class="dtr-modal"/>').append(d('<div class="dtr-modal-display"/>').append(d('<div class="dtr-modal-content"/>').append(e())).append(d('<div class="dtr-modal-close">&times;</div>').click(function(){f()}))).append(d('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body");
d(j).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}a&&a.header&&d("div.dtr-modal-content").prepend("<h2>"+a.header(b)+"</h2>")}}};var n={};i.renderer={listHiddenNodes:function(){return function(a,b,c){var e=d('<ul data-dtr-index="'+b+'" class="dtr-details"/>'),f=!1;d.each(c,function(b,c){c.hidden&&(d('<li data-dtr-index="'+c.columnIndex+'" data-dt-row="'+c.rowIndex+'" data-dt-column="'+c.columnIndex+'"><span class="dtr-title">'+c.title+"</span> </li>").append(d('<span class="dtr-data"/>').append(t(a,
c.rowIndex,c.columnIndex))).appendTo(e),f=!0)});return f?e:!1}},listHidden:function(){return function(a,b,c){return(a=d.map(c,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?d('<ul data-dtr-index="'+b+'" class="dtr-details"/>').append(a):!1}},tableAll:function(a){a=d.extend({tableClass:""},a);return function(b,
c,e){b=d.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+a.data+"</td></tr>"}).join("");return d('<table class="'+a.tableClass+' dtr-details" width="100%"/>').append(b)}}};i.defaults={breakpoints:i.breakpoints,auto:!0,details:{display:i.display.childRow,renderer:i.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var p=d.fn.dataTable.Api;p.register("responsive()",function(){return this});p.register("responsive.index()",
function(a){a=d(a);return{column:a.data("dtr-index"),row:a.parent().data("dtr-index")}});p.register("responsive.rebuild()",function(){return this.iterator("table",function(a){a._responsive&&a._responsive._classLogic()})});p.register("responsive.recalc()",function(){return this.iterator("table",function(a){a._responsive&&(a._responsive._resizeAuto(),a._responsive._resize())})});p.register("responsive.hasHidden()",function(){var a=this.context[0];return a._responsive?-1!==d.inArray(!1,a._responsive.s.current):
!1});p.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(a,b){return a._responsive?a._responsive.s.current[b]:!1},1)});i.version="2.2.2";d.fn.dataTable.Responsive=i;d.fn.DataTable.Responsive=i;d(j).on("preInit.dt.dtr",function(a,b){if("dt"===a.namespace&&(d(b.nTable).hasClass("responsive")||d(b.nTable).hasClass("dt-responsive")||b.oInit.responsive||o.defaults.responsive)){var c=b.oInit.responsive;!1!==c&&new i(b,d.isPlainObject(c)?
c:{})}});return i});

View File

@@ -0,0 +1,85 @@
/*! Bootstrap integration for DataTables' Responsive
* ©2015-2016 SpryMedia Ltd - datatables.net/license
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net-bs', 'datatables.net-responsive'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net-bs')(root, $).$;
}
if ( ! $.fn.dataTable.Responsive ) {
require('datatables.net-responsive')(root, $);
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
var _display = DataTable.Responsive.display;
var _original = _display.modal;
var _modal = $(
'<div class="modal fade dtr-bs-modal" role="dialog">'+
'<div class="modal-dialog" role="document">'+
'<div class="modal-content">'+
'<div class="modal-header">'+
'<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
'</div>'+
'<div class="modal-body"/>'+
'</div>'+
'</div>'+
'</div>'
);
_display.modal = function ( options ) {
return function ( row, update, render ) {
if ( ! $.fn.modal ) {
_original( row, update, render );
}
else {
if ( ! update ) {
if ( options && options.header ) {
var header = _modal.find('div.modal-header');
var button = header.find('button').detach();
header
.empty()
.append( '<h4 class="modal-title">'+options.header( row )+'</h4>' )
.prepend( button );
}
_modal.find( 'div.modal-body' )
.empty()
.append( render() );
_modal
.appendTo( 'body' )
.modal();
}
}
};
};
return DataTable.Responsive;
}));

View File

@@ -0,0 +1,6 @@
/*!
Bootstrap integration for DataTables' Responsive
©2015-2016 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,g=b.modal,e=c('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"/></div></div></div>');
b.modal=function(a){return function(b,d,f){if(c.fn.modal){if(!d){if(a&&a.header){var d=e.find("div.modal-header"),h=d.find("button").detach();d.empty().append('<h4 class="modal-title">'+a.header(b)+"</h4>").prepend(h)}e.find("div.modal-body").empty().append(f());e.appendTo("body").modal()}}else g(b,d,f)}};return a.Responsive});

View File

@@ -0,0 +1,85 @@
/*! Bootstrap 4 integration for DataTables' Responsive
* ©2016 SpryMedia Ltd - datatables.net/license
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net-bs4', 'datatables.net-responsive'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net-bs4')(root, $).$;
}
if ( ! $.fn.dataTable.Responsive ) {
require('datatables.net-responsive')(root, $);
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
var _display = DataTable.Responsive.display;
var _original = _display.modal;
var _modal = $(
'<div class="modal fade dtr-bs-modal" role="dialog">'+
'<div class="modal-dialog" role="document">'+
'<div class="modal-content">'+
'<div class="modal-header">'+
'<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
'</div>'+
'<div class="modal-body"/>'+
'</div>'+
'</div>'+
'</div>'
);
_display.modal = function ( options ) {
return function ( row, update, render ) {
if ( ! $.fn.modal ) {
_original( row, update, render );
}
else {
if ( ! update ) {
if ( options && options.header ) {
var header = _modal.find('div.modal-header');
var button = header.find('button').detach();
header
.empty()
.append( '<h4 class="modal-title">'+options.header( row )+'</h4>' )
.append( button );
}
_modal.find( 'div.modal-body' )
.empty()
.append( render() );
_modal
.appendTo( 'body' )
.modal();
}
}
};
};
return DataTable.Responsive;
}));

View File

@@ -0,0 +1,6 @@
/*!
Bootstrap 4 integration for DataTables' Responsive
©2016 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs4")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,g=b.modal,e=c('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"/></div></div></div>');
b.modal=function(a){return function(b,d,f){if(c.fn.modal){if(!d){if(a&&a.header){var d=e.find("div.modal-header"),h=d.find("button").detach();d.empty().append('<h4 class="modal-title">'+a.header(b)+"</h4>").append(h)}e.find("div.modal-body").empty().append(f());e.appendTo("body").modal()}}else g(b,d,f)}};return a.Responsive});

View File

@@ -0,0 +1,62 @@
/*! Foundation integration for DataTables' Responsive
* ©2015 SpryMedia Ltd - datatables.net/license
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net-zf', 'datatables.net-responsive'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net-zf')(root, $).$;
}
if ( ! $.fn.dataTable.Responsive ) {
require('datatables.net-responsive')(root, $);
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
var _display = DataTable.Responsive.display;
var _original = _display.modal;
_display.modal = function ( options ) {
return function ( row, update, render ) {
if ( ! $.fn.foundation ) {
_original( row, update, render );
}
else {
if ( ! update ) {
$( '<div class="reveal-modal" data-reveal/>' )
.append( '<a class="close-reveal-modal" aria-label="Close">&#215;</a>' )
.append( options && options.header ? '<h4>'+options.header( row )+'</h4>' : null )
.append( render() )
.appendTo( 'body' )
.foundation( 'reveal', 'open' );
}
}
};
};
return DataTable.Responsive;
}));

View File

@@ -0,0 +1,6 @@
/*!
Foundation integration for DataTables' Responsive
©2015 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-zf","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-zf")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,f=b.modal;b.modal=function(a){return function(b,
d,e){c.fn.foundation?d||c('<div class="reveal-modal" data-reveal/>').append('<a class="close-reveal-modal" aria-label="Close">&#215;</a>').append(a&&a.header?"<h4>"+a.header(b)+"</h4>":null).append(e()).appendTo("body").foundation("reveal","open"):f(b,d,e)}};return a.Responsive});

View File

@@ -0,0 +1,63 @@
/*! jQuery UI integration for DataTables' Responsive
* ©2015 SpryMedia Ltd - datatables.net/license
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net-jqui', 'datatables.net-responsive'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net-jqui')(root, $).$;
}
if ( ! $.fn.dataTable.Responsive ) {
require('datatables.net-responsive')(root, $);
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
var _display = DataTable.Responsive.display;
var _original = _display.modal;
_display.modal = function ( options ) {
return function ( row, update, render ) {
if ( ! $.fn.dialog ) {
_original( row, update, render );
}
else {
if ( ! update ) {
$( '<div/>' )
.append( render() )
.appendTo( 'body' )
.dialog( $.extend( true, {
title: options && options.header ? options.header( row ) : '',
width: 500
}, options.dialog ) );
}
}
};
};
return DataTable.Responsive;
}));

View File

@@ -0,0 +1,6 @@
/*!
jQuery UI integration for DataTables' Responsive
©2015 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-jqui","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-jqui")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,f=b.modal;b.modal=function(a){return function(b,
d,e){c.fn.dialog?d||c("<div/>").append(e()).appendTo("body").dialog(c.extend(!0,{title:a&&a.header?a.header(b):"",width:500},a.dialog)):f(b,d,e)}};return a.Responsive});

View File

@@ -0,0 +1,77 @@
/*! Bootstrap integration for DataTables' Responsive
* ©2015-2016 SpryMedia Ltd - datatables.net/license
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net-se', 'datatables.net-responsive'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net-se')(root, $).$;
}
if ( ! $.fn.dataTable.Responsive ) {
require('datatables.net-responsive')(root, $);
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
var _display = DataTable.Responsive.display;
var _original = _display.modal;
var _modal = $(
'<div class="ui modal" role="dialog">'+
'<div class="header">'+
'<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
'</div>'+
'<div class="content"/>'+
'</div>'
);
_display.modal = function ( options ) {
return function ( row, update, render ) {
if ( ! $.fn.modal ) {
_original( row, update, render );
}
else {
if ( ! update ) {
if ( options && options.header ) {
_modal.find('div.header')
.empty()
.append( '<h4 class="title">'+options.header( row )+'</h4>' );
}
_modal.find( 'div.content' )
.empty()
.append( render() );
_modal
.appendTo( 'body' )
.modal('show');
}
}
};
};
return DataTable.Responsive;
}));

View File

@@ -0,0 +1,6 @@
/*!
Bootstrap integration for DataTables' Responsive
©2015-2016 SpryMedia Ltd - datatables.net/license
*/
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-se","datatables.net-responsive"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-se")(a,b).$;b.fn.dataTable.Responsive||require("datatables.net-responsive")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable,b=a.Responsive.display,g=b.modal,d=c('<div class="ui modal" role="dialog"><div class="header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="content"/></div>');
b.modal=function(a){return function(b,e,f){c.fn.modal?e||(a&&a.header&&d.find("div.header").empty().append('<h4 class="title">'+a.header(b)+"</h4>"),d.find("div.content").empty().append(f()),d.appendTo("body").modal("show")):g(b,e,f)}};return a.Responsive});

View File

@@ -0,0 +1,36 @@
div.dts {
display: block !important;
}
div.dts tbody th,
div.dts tbody td {
white-space: nowrap;
}
div.dts div.dts_loading {
z-index: 1;
}
div.dts div.dts_label {
position: absolute;
right: 10px;
background: rgba(0, 0, 0, 0.8);
color: white;
box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
text-align: right;
border-radius: 3px;
padding: 0.4em;
z-index: 2;
display: none;
}
div.dts div.dataTables_scrollBody {
background: repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, white 10px, white 20px);
}
div.dts div.dataTables_scrollBody table {
z-index: 2;
}
div.dts div.dataTables_paginate,
div.dts div.dataTables_length {
display: none;
}
div.DTS tbody tr {
background-color: white;
}

View File

@@ -0,0 +1 @@
div.dts{display:block !important}div.dts tbody th,div.dts tbody td{white-space:nowrap}div.dts div.dts_loading{z-index:1}div.dts div.dts_label{position:absolute;right:10px;background:rgba(0,0,0,0.8);color:white;box-shadow:3px 3px 10px rgba(0,0,0,0.5);text-align:right;border-radius:3px;padding:0.4em;z-index:2;display:none}div.dts div.dataTables_scrollBody{background:repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, #fff 10px, #fff 20px)}div.dts div.dataTables_scrollBody table{z-index:2}div.dts div.dataTables_paginate,div.dts div.dataTables_length{display:none}div.DTS tbody tr{background-color:white}

View File

@@ -0,0 +1,36 @@
div.dts {
display: block !important;
}
div.dts tbody th,
div.dts tbody td {
white-space: nowrap;
}
div.dts div.dts_loading {
z-index: 1;
}
div.dts div.dts_label {
position: absolute;
right: 10px;
background: rgba(0, 0, 0, 0.8);
color: white;
box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
text-align: right;
border-radius: 3px;
padding: 0.4em;
z-index: 2;
display: none;
}
div.dts div.dataTables_scrollBody {
background: repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, white 10px, white 20px);
}
div.dts div.dataTables_scrollBody table {
z-index: 2;
}
div.dts div.dataTables_paginate,
div.dts div.dataTables_length {
display: none;
}
div.DTS div.dataTables_scrollBody table {
background-color: white;
}

View File

@@ -0,0 +1 @@
div.dts{display:block !important}div.dts tbody th,div.dts tbody td{white-space:nowrap}div.dts div.dts_loading{z-index:1}div.dts div.dts_label{position:absolute;right:10px;background:rgba(0,0,0,0.8);color:white;box-shadow:3px 3px 10px rgba(0,0,0,0.5);text-align:right;border-radius:3px;padding:0.4em;z-index:2;display:none}div.dts div.dataTables_scrollBody{background:repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, #fff 10px, #fff 20px)}div.dts div.dataTables_scrollBody table{z-index:2}div.dts div.dataTables_paginate,div.dts div.dataTables_length{display:none}div.DTS div.dataTables_scrollBody table{background-color:white}

View File

@@ -0,0 +1,32 @@
div.dts {
display: block !important;
}
div.dts tbody th,
div.dts tbody td {
white-space: nowrap;
}
div.dts div.dts_loading {
z-index: 1;
}
div.dts div.dts_label {
position: absolute;
right: 10px;
background: rgba(0, 0, 0, 0.8);
color: white;
box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
text-align: right;
border-radius: 3px;
padding: 0.4em;
z-index: 2;
display: none;
}
div.dts div.dataTables_scrollBody {
background: repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, white 10px, white 20px);
}
div.dts div.dataTables_scrollBody table {
z-index: 2;
}
div.dts div.dataTables_paginate,
div.dts div.dataTables_length {
display: none;
}

Some files were not shown because too many files have changed in this diff Show More