summary refs log tree commit diff stats
path: root/mysql-php
diff options
context:
space:
mode:
authorSudipto Mallick <>2024-01-02 03:38:10 +0000
committerSudipto Mallick <>2024-01-02 03:38:10 +0000
commit7451edff7692e86c5238ff7bc6659825e242a84e (patch)
tree830fe25caf403869fe77df83bc44822ea6f5f11d /mysql-php
parenta70e0a59817ce06a3dd23b3750ae16ee6660deaf (diff)
downloadzadania-7451edff7692e86c5238ff7bc6659825e242a84e.tar.gz
Quick backup, need to be rewritten
Diffstat (limited to 'mysql-php')
-rw-r--r--mysql-php/code/a1.php139
-rw-r--r--mysql-php/code/a2.php78
-rw-r--r--mysql-php/code/a3.php95
-rw-r--r--mysql-php/index.typ63
-rw-r--r--mysql-php/output/1/1.pngbin0 -> 38936 bytes
-rw-r--r--mysql-php/output/1/2.pngbin0 -> 97622 bytes
-rw-r--r--mysql-php/output/2.pngbin0 -> 75186 bytes
-rwxr-xr-xmysql-php/sbld2
-rw-r--r--mysql-php/text/a1.typ15
-rw-r--r--mysql-php/text/a2.typ12
-rw-r--r--mysql-php/tpl.typ53
-rw-r--r--mysql-php/vendor/gr.tmTheme566
12 files changed, 1023 insertions, 0 deletions
diff --git a/mysql-php/code/a1.php b/mysql-php/code/a1.php
new file mode 100644
index 0000000..022b9ee
--- /dev/null
+++ b/mysql-php/code/a1.php
@@ -0,0 +1,139 @@
+<?php
+declare(strict_types=1);
+error_reporting(E_ALL);
+// student: name roll city email date_of_birth
+function connect_to_database() {
+    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
+    if (!($dbh = mysqli_connect('localhost', 'root', '')))
+        display_failure('Could not connect to the database: ' . mysqli_connect_error($dbh));
+    mysqli_set_charset($dbh, 'utf8mb4');
+    if (!mysqli_query($dbh, 'CREATE DATABASE IF NOT EXISTS STUDENTS_DB'))
+        display_failure('Could not create database: ' . mysqli_error($dbh));
+    mysqli_select_db($dbh, 'STUDENTS_DB');
+    if (!mysqli_query($dbh, 'CREATE TABLE IF NOT EXISTS STUDENT (
+        ROLL INT(20) PRIMARY KEY,
+        NAME VARCHAR(255),
+        CITY VARCHAR(255),
+        EMAIL VARCHAR(255),
+        DATE_OF_BIRTH DATE
+    )'))
+        display_failure('Could not create table: ' . mysqli_error($dbh));
+    return $dbh;
+}
+
+function html_prologue($title) {
+?><!doctype html>
+<meta charset="utf-8">
+<title><?php echo $title; ?></title>
+<style>
+body { font-family: sans-serif; font-size: 1.3rem; }
+h1 { font-size: 2rem; font-weight: 500; }
+form { margin: 2em auto; width: 20em; }
+form input { float: right; }
+form input[type=submit] { float: none; display: block; margin: 0 auto;  }
+form > * { display: block; padding: 0.5em; }
+table, tr, th, td { border-collapse: collapse; border: 1px solid black; }
+th, td { padding: 5px; }
+</style>
+<?php
+}
+
+function display_form() {
+    html_prologue('Student details');
+    ?>
+<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
+    <h1>Enter student's details</h1>
+    <label>Name: <input type="text" name="name"></label>
+    <label>Roll No.: <input type="number" name="roll"></label>
+    <label>City: <input type="text" name="city"></label>
+    <label>Email: <input type="email" name="email"></label>
+    <label>Date of birth: <input type="date" name="date_of_birth"></label>
+    <input type="submit" value="Submit">
+    <a href="<?php echo $_SERVER['PHP_SELF']; ?>?details">Show students' details</a>
+</form>
+<?php
+}
+
+function display_success() {
+    html_prologue('Operation successful');
+    ?>
+<h2>Insertion successful.</h2>
+<?php
+}
+
+function display_failure($reason) {
+    html_prologue('Operation failure');
+    ?>
+<h2>Operation failed</h2>
+<p>Reason: <?php echo $reason; ?></p>
+<?php
+    die();
+}
+
+function check_post_vars($vardesc) {
+    $vars = [];
+    foreach ($vardesc as $name => $desc) {
+        if (!isset($_POST[$name]) || empty($_POST[$name]))
+            display_failure('The ' . $desc . ' field can not be empty');
+        $vars[$name] = $_POST[$name];
+    }
+    return $vars;
+}
+
+function insert_details($dbh) {
+    $vars = check_post_vars([
+        'name' => 'Name',
+        'email' => 'E-mail address',
+        'date_of_birth' => 'Date of birth',
+        'city' => 'City',
+        'roll' => 'Roll No.'
+    ]);
+    $stmt = mysqli_prepare($dbh, 'INSERT INTO STUDENT (
+        ROLL, NAME, EMAIL, CITY, DATE_OF_BIRTH
+    ) VALUES (?,?,?,?,?)');
+    mysqli_stmt_execute($stmt, [
+        $vars['roll'], $vars['name'], $vars['email'], $vars['city'], 
+        $vars['date_of_birth']
+    ]);
+}
+
+function show_table($dbh) {
+    $result = mysqli_query($dbh, 'SELECT * FROM STUDENT');
+    html_prologue('Students\' details');
+    ?>
+<h2>Students' details</h2>
+<p><?php echo mysqli_num_rows($result); ?> record(s) found.</p>
+<table>
+    <tr>
+        <th>Roll No.</th>
+        <th>Name</th>
+        <th>E-mail</th>
+        <th>City</th>
+        <th>Date of birth</th>
+    </tr><?php
+    while ($row = mysqli_fetch_assoc($result)) { ?>
+    <tr><td>
+        <?php echo implode('</td><td>', array_map('htmlspecialchars', [
+            $row['ROLL'], $row['NAME'], $row['EMAIL'], $row['CITY'],
+            $row['DATE_OF_BIRTH']		
+        ])); ?>
+    </td></tr>
+    <?php
+    } ?>
+</table>
+<?php
+}
+
+if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+    $dbh = connect_to_database();
+    insert_details($dbh);
+    display_success();
+    mysqli_close($dbh);
+} elseif (isset($_SERVER['QUERY_STRING']) 
+        && $_SERVER['QUERY_STRING'] === 'details') {
+    $dbh = connect_to_database();
+    show_table($dbh);
+    mysqli_close($dbh);
+} else {
+    display_form();
+}
diff --git a/mysql-php/code/a2.php b/mysql-php/code/a2.php
new file mode 100644
index 0000000..c03789f
--- /dev/null
+++ b/mysql-php/code/a2.php
@@ -0,0 +1,78 @@
+<?php
+declare(strict_types=1);
+error_reporting(E_ALL);
+// student: name roll city email date_of_birth
+function connect_to_database() {
+    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
+    if (!($dbh = mysqli_connect('localhost', 'root', '')))
+        display_failure('Could not connect to the database: ' . mysqli_connect_error($dbh));
+    mysqli_set_charset($dbh, 'utf8mb4');
+    if (!mysqli_query($dbh, 'CREATE DATABASE IF NOT EXISTS STUDENTS_DB'))
+        display_failure('Could not create database: ' . mysqli_error($dbh));
+    mysqli_select_db($dbh, 'STUDENTS_DB');
+    if (!mysqli_query($dbh, 'CREATE TABLE IF NOT EXISTS STUDENT (
+        ROLL INT(20) PRIMARY KEY,
+        NAME VARCHAR(255),
+        CITY VARCHAR(255),
+        EMAIL VARCHAR(255),
+        DATE_OF_BIRTH DATE
+    )'))
+        display_failure('Could not create table: ' . mysqli_error($dbh));
+    return $dbh;
+}
+
+function display_failure($reason) {
+    html_prologue('Operation failure');
+    ?>
+<h2>Operation failed</h2>
+<p>Reason: <?php echo $reason; ?></p>
+<?php
+    die();
+}
+
+function html_prologue($title) {
+?><!doctype html>
+<meta charset="utf-8">
+<title><?php echo $title; ?></title>
+<style>
+body { font-family: sans-serif; font-size: 1.3rem; }
+h1 { font-size: 2rem; font-weight: 500; }
+table, tr, th, td { border-collapse: collapse; border: 1px solid black; }
+th, td { padding: 5px; }
+</style>
+<?php
+}
+
+function show_table($dbh) {
+    if (!($result = mysqli_query($dbh, 'SELECT * FROM STUDENT 
+            WHERE YEAR(DATE_OF_BIRTH) BETWEEN 2000 AND 2005')))
+        display_failure('Could not perform query: ' . mysqli_error($dbh));
+    html_prologue('Students\' details');
+    ?>
+<h2>Students' details</h2>
+<p>The students who were born in years 2000 to 2005, inclusive.</p>
+<p><?php echo mysqli_num_rows($result); ?> record(s) found.</p>
+<table>
+    <tr>
+        <th>Roll No.</th>
+        <th>Name</th>
+        <th>E-mail</th>
+        <th>City</th>
+        <th>Date of birth</th>
+    </tr><?php
+    while ($row = mysqli_fetch_assoc($result)) { ?>
+    <tr><td>
+        <?php echo implode('</td><td>', array_map('htmlspecialchars', [
+            $row['ROLL'], $row['NAME'], $row['EMAIL'], $row['CITY'],
+            $row['DATE_OF_BIRTH']		
+        ])); ?>
+    </td></tr>
+    <?php
+    } ?>
+</table>
+<?php
+}
+
+$dbh = connect_to_database();
+show_table($dbh);
+mysqli_close($dbh);
diff --git a/mysql-php/code/a3.php b/mysql-php/code/a3.php
new file mode 100644
index 0000000..f029dd8
--- /dev/null
+++ b/mysql-php/code/a3.php
@@ -0,0 +1,95 @@
+<?php
+declare(strict_types=1);
+error_reporting(E_ALL);
+// student: name roll city email date_of_birth
+function connect_to_database() {
+    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
+    if (!($dbh = mysqli_connect('localhost', 'root', '')))
+        display_failure('Could not connect to the database: ' . mysqli_connect_error($dbh));
+    mysqli_set_charset($dbh, 'utf8mb4');
+    if (!mysqli_query($dbh, 'CREATE DATABASE IF NOT EXISTS STUDENTS_DB'))
+        display_failure('Could not create database: ' . mysqli_error($dbh));
+    mysqli_select_db($dbh, 'STUDENTS_DB');
+    if (!mysqli_query($dbh, 'CREATE TABLE IF NOT EXISTS STUDENT (
+        ROLL INT(20) PRIMARY KEY,
+        NAME VARCHAR(255),
+        CITY VARCHAR(255),
+        EMAIL VARCHAR(255),
+        DATE_OF_BIRTH DATE
+    )'))
+        display_failure('Could not create table: ' . mysqli_error($dbh));
+    return $dbh;
+}
+
+function html_prologue($title) {
+?><!doctype html>
+<meta charset="utf-8">
+<title><?php echo $title; ?></title>
+<style>
+body { font-family: sans-serif; font-size: 1.3rem; }
+h1 { font-size: 2rem; font-weight: 500; }
+h2 { font-size: 1.8rem; font-weight: 500; }
+form { margin: 2em auto; width: 20em; }
+form > * { padding: 0.5em; }
+table, tr, th, td { border-collapse: collapse; border: 1px solid black; }
+th, td { padding: 5px; }
+</style>
+<?php
+}
+
+function display_search_form() {
+    html_prologue('Student details');
+    ?>
+<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
+    <h2>Enter E-mail address to search for the record of a student</h2>
+    <label>E-mail: <input type="email" name="email"></label>
+    <input type="submit" value="Search">
+</form>
+<?php
+}
+
+function display_failure($reason) {
+    html_prologue('Operation failure');
+    ?>
+<h2>Operation failed</h2>
+<p>Reason: <?php echo $reason; ?></p>
+<?php
+    die();
+}
+
+function search_and_show($dbh, $email) {
+    $stmt = mysqli_prepare($dbh, 'SELECT * FROM STUDENT WHERE EMAIL = ?');
+    $result = mysqli_query($dbh, );
+    html_prologue('Students\' details');
+    ?>
+<h2>Students' details</h2>
+<p><?php echo mysqli_num_rows($result); ?> record(s) found.</p>
+<table>
+    <tr>
+        <th>Roll No.</th>
+        <th>Name</th>
+        <th>E-mail</th>
+        <th>City</th>
+        <th>Date of birth</th>
+    </tr><?php
+    while ($row = mysqli_fetch_assoc($result)) { ?>
+    <tr><td>
+        <?php echo implode('</td><td>', array_map('htmlspecialchars', [
+            $row['ROLL'], $row['NAME'], $row['EMAIL'], $row['CITY'],
+            $row['DATE_OF_BIRTH']		
+        ])); ?>
+    </td></tr>
+    <?php
+    } ?>
+</table>
+<?php
+}
+
+if (isset($_GET['email']) && !empty($_GET['email'])) {
+    $dbh = connect_to_database();
+    search_and_show($dbh, $_GET['email']);
+    mysqli_close($dbh);
+} else {
+    html_prologue('Search for a student');
+    display_search_form();
+}
diff --git a/mysql-php/index.typ b/mysql-php/index.typ
new file mode 100644
index 0000000..c231878
--- /dev/null
+++ b/mysql-php/index.typ
@@ -0,0 +1,63 @@
+#import "tpl.typ": *
+#import "@preview/tablex:0.0.6": tablex, vlinex, hlinex, colspanx
+#show: body => apply(body)
+#let semibold(body) = text(weight: 600, body)
+#text(size: 1.3em, align(center)[#semibold[Practical Assignments] \ _for_ \ #semibold[RDBMS Lab] \ _using_ \ #semibold[MySQL and PHP]])
+#set enum(full: true, numbering: (..args) => {
+  let patterns = ("1.", "(a)")
+  let pattern = patterns.at(calc.min(args.pos().len(), patterns.len()) - 1)
+  numbering(pattern, args.pos().last())
+})
+
+#set raw(lang: "php")
+
++ Create a table `Student` in a MySQL database containing the fields `name`, `roll`, `city`, `email` and `date_of_birth` and insert 5 records into this table and display them using PHP.
++ Write a PHP script to insert the records in the table in Question 2 and display the records in a separate table of all those students who were born in between `01/01/2000` to `31/12/2005`.
++ Design a HTML form to take a valid email from user and search the corresponding student from the database using PHP script and display the details of that student in tabular form.
++ Design a `Login` table to take `username` and `password`. Show all records of the `Student` table for an authorized user. A user if authorized when the username and password exists in the `Login` table of the MySQL database.
++ Design a Login form and check valid username and password to display student details using PHP script. Also write a PHP script allowing to change username and password.
++ Write PHP script to insert, delete and update records in a table.
++ Suppose a table `Food_Details` containing the fields `Food_items` and `Price_per_item`. Design a menu to select different food items and input the quantity ordered by customer. Generate a bill containing Customer name, Food items, quantity, price and Total price. Net price should be the total price plus 15% GST of total price.
++ Create a table as Question 7. Create another table `Customer_details` containing the fields `customer_name`, `total_amount_paid`, `date_of_payment`. Design a menu to select different food items and input the quantity ordered by customer. Generate a bill containing Customer name, Food items, quantity, and Total price. Also insert the record i.e. customer name, total amount paid and date of payment in `Customer_details` table. Net price should be the total price plus 15% GST of total price.
++ Suppose a table `Salary` contained the fields `EmpName`, `BasicPay`, `HRA`, `DA` and `Professional_tax`. Record should exists only for `EmpName` and `BasicPay`. Design a HTML form to take input for HRA percentage, DA percentage, and Professional tax. Now write a PHP script to generate the DA, HRA and Professional tax of every employee and store them into Salary table with respect to every employee. Now display the records.
++ Design a HTML form to take inputs from user and store the records into a table `Employee` using PHP script containing the following fields.
+  #align(center, tablex(
+    columns: 2,
+    auto-lines: false,
+    hlinex(),
+    vlinex(), vlinex(), vlinex(),
+    [*Fields*], [*Form input control*],
+    hlinex(),
+    [`Ename`], [textbox],
+    [`Address`], [textarea],
+    [`Phno`], [textbox],
+    [`Salary`], [textbox],
+    [`Category` \ (out of GEN, SC, ST, OBC)], [radio buttons],
+    [`Language`], [checkbox],
+    hlinex(),
+  ))
+  (Multiple languages have to be concatenate into a string separated by commas and then store into database like `Bengali, English, Hindi`.)
++ Write a PHP script to display the employee records of the above `Employee` table order by user’s choice field. The field have to be choices through drop down menu containing all fields of the table.
++ Create a table `Sports` in MySQL database containing the fields `Players`, `TestRuns`, `ODIRuns`, `T20IRuns`. Insert and display the record with total individual runs of every player (like `TestRun + ODIRun + T20IRun`) using PHP.
++ Display the record of highest run scorer in Test or T20I or ODI according to user’s choice through a drop down menu for the table in Question 13. Drop down menu contains the fields name `TestRuns`, `ODIRuns`, `T20IRuns`.
++ Design a HTML form to take records from user for the above table `Sports`. Now write PHP script to insert, update and delete records through PHP script.
++ Design a form to take input from user and store into a table containing the fields `name`, `city`, `phno`, `email`, `password`. Write a PHP script to take input and store into the table such that Phno and mail id of every person must be unique.
++ Create a MySQL database table `Employee` with fields `ename`, `eid`, `salary`, `dept` and `dob`. Perform all database operations like select, insert, delete and update through PHP.
++ Create a table `Marks` with the fields `stdname`, `roll`, `CompScMarks`, `PhysicsMarks`, `ChemistryMarks`. Design a form to insert records into database and display records with grade using PHP script.
+  #align(center, tablex(
+    columns: (8em, 4em),
+    auto-lines: false,
+    align: center + horizon,
+    colspanx(2)[$ m = ""$average marks of all subjects.],
+    hlinex(),
+    vlinex(start: 1), vlinex(start: 1), vlinex(start: 1),
+    [*Marks*], [*Grade*],
+    hlinex(),
+    [$80 <= m <= 100$], [A],
+    [$60 <= m < 80$], [B],
+    [$40 <= m < 60$], [C],
+    [$0 <= m < 40$], [D],
+    hlinex(),
+  ))
++ Create MySQL database table `Dept` with field `dno`, `dname` where `dno` is the primary key. Create another table `Employee` with field `eno`, `ename`, `city`, `salary`, `join_date`, `dno` where `eno` is the primary key and `dno` is a foreign key reference to the `Dept` table. Include other constraints like `NOT NULL`, `CHECK` etc. Perform all database operation like select, insert, update, and delete using PHP. (Query may include `group by`, `having`, `order by`, aggregate functions, `like` operator.)
+
diff --git a/mysql-php/output/1/1.png b/mysql-php/output/1/1.png
new file mode 100644
index 0000000..a165e62
--- /dev/null
+++ b/mysql-php/output/1/1.png
Binary files differdiff --git a/mysql-php/output/1/2.png b/mysql-php/output/1/2.png
new file mode 100644
index 0000000..8d99484
--- /dev/null
+++ b/mysql-php/output/1/2.png
Binary files differdiff --git a/mysql-php/output/2.png b/mysql-php/output/2.png
new file mode 100644
index 0000000..b324c1c
--- /dev/null
+++ b/mysql-php/output/2.png
Binary files differdiff --git a/mysql-php/sbld b/mysql-php/sbld
new file mode 100755
index 0000000..33a51ed
--- /dev/null
+++ b/mysql-php/sbld
@@ -0,0 +1,2 @@
+#!/bin/sh
+typst ${2:-c} --root $PWD text/a$1.typ docs/s$1.pdf
diff --git a/mysql-php/text/a1.typ b/mysql-php/text/a1.typ
new file mode 100644
index 0000000..efdc981
--- /dev/null
+++ b/mysql-php/text/a1.typ
@@ -0,0 +1,15 @@
+#import "/tpl.typ": *
+#show: A => apply(A)
+#set raw(lang: "php")
+#set par(leading: 0.725em)
+
+#assignment(1)[
+  Create a table `Student` in a MySQL database containing the fields `name`, `roll`, `city`, `email` and `date_of_birth` and insert 5 records into this table and display them using PHP.
+]
+
+#scos(1)[
+    === Form page
+    #align(center, image("/output/1/1.png", width: 60%))
+    === Display record
+    #image("/output/1/2.png", width: 100%)
+]
diff --git a/mysql-php/text/a2.typ b/mysql-php/text/a2.typ
new file mode 100644
index 0000000..989f30f
--- /dev/null
+++ b/mysql-php/text/a2.typ
@@ -0,0 +1,12 @@
+#import "/tpl.typ": *
+#show: A => apply(A)
+#set raw(lang: "php")
+#set par(leading: 0.65em)
+
+#assignment(2)[
+  Write a PHP script to insert the records in the table in Assignment 1 and display the records in a separate table of all those students who were born in between `01/01/2000` to `31/12/2005`.
+]
+
+#scos(2)[
+    #image("/output/2.png", width: 100%)
+]
diff --git a/mysql-php/tpl.typ b/mysql-php/tpl.typ
new file mode 100644
index 0000000..1179925
--- /dev/null
+++ b/mysql-php/tpl.typ
@@ -0,0 +1,53 @@
+#import "@preview/codelst:1.0.0": sourcefile
+#let hlfile(filename) = sourcefile(read(filename), file: filename)
+#let apply(body) = {
+  let body-font-settings = (font: "Nunito Sans 10pt", size: 12pt, stretch: 75%)
+//  let body-font-settings = (font: "Hanken Grotesk", size: 12pt, stretch: 75%)
+  let page-margin = (left: 0.75in, right: 0.25in, top: 0.5in, bottom: 0.25in)
+  let margin = (left: 0.75in, right: 0.25in, top: 2em, bottom: 2em)
+  let page-frame-thickness = 1.5pt
+  set page(
+    margin: (..page-margin, bottom: margin.bottom + 2em),
+    numbering: "1",
+    background: align(top + start, pad(..margin, rect(width: 100%, height: 100%, stroke: page-frame-thickness + gray))),
+    footer: locate(loc => align(center, move(dy: -margin.bottom + 1em, text(..body-font-settings, size: 9pt, counter(page).display(loc.page-numbering())))))
+  )
+  show: block.with(breakable: true, width: 100%, inset: page-frame-thickness + 1em)
+  
+  set text(..body-font-settings)
+
+  let code-color = rgb("#f4f4f4")
+//  show raw: set text(font: "CommitMono", size: 1.1em)
+//  show raw: set text(font: "Source Code Pro", size: 1.1em)
+  show raw: set text(font: "Iosevka Fixed", size: 10pt)
+  show raw.where(block: false): box.with(
+    fill: code-color,
+    inset: (x: 3pt, y: 0pt),
+    outset: (y: 3pt),
+    radius: 2pt,
+  )
+  show raw.where(block: true): block.with(
+    fill: code-color,
+    inset: 10pt,
+    radius: 4pt,
+    width: 100%,
+  )
+  show raw.where(block: true): it => align(left, it)
+  set raw(theme: "vendor/gr.tmTheme")
+  set par(leading: 0.6em)
+  body
+}
+
+#let assignment(number, description) = align(center, [
+= #text(weight: 600, [Assignment #number])
+== #text(weight: 500, [Program description:]) #text(weight: 400, description)
+])
+#let objective(body) = align(center, [*Objective*: #body])
+#let oset(kind) = block(spacing: 0.6em, [===== #h(1em) #kind])
+
+#let scos(n, obody) = {
+    [=== Source Code]
+    hlfile("/code/a" + str(n) + ".php")
+    [=== Output]
+    obody
+}
diff --git a/mysql-php/vendor/gr.tmTheme b/mysql-php/vendor/gr.tmTheme
new file mode 100644
index 0000000..c4ab8f1
--- /dev/null
+++ b/mysql-php/vendor/gr.tmTheme
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

+<plist version="1.0">

+<dict>

+	<key>author</key>

+	<string>Template: Chris Kempson, Scheme: Alexandre Gavioli (https://github.com/Alexx2/)</string>

+	<key>name</key>

+	<string>Base16 Grayscale Light</string>

+	<key>semanticClass</key>

+	<string>theme.base16.grayscale-light</string>

+	<key>colorSpaceName</key>

+	<string>sRGB</string>

+	<key>gutterSettings</key>

+	<dict>

+		<key>background</key>

+		<string>#e3e3e3</string>

+		<key>divider</key>

+		<string>#e3e3e3</string>

+		<key>foreground</key>

+		<string>#ababab</string>

+		<key>selectionBackground</key>

+		<string>#b9b9b9</string>

+		<key>selectionForeground</key>

+		<string>#525252</string>

+	</dict>

+	<key>settings</key>

+	<array>

+		<dict>

+			<key>settings</key>

+			<dict>

+				<key>background</key>

+				<string>#f7f7f7</string>

+				<key>caret</key>

+				<string>#464646</string>

+				<key>foreground</key>

+				<string>#464646</string>

+				<key>invisibles</key>

+				<string>#ababab</string>

+				<key>lineHighlight</key>

+				<string>#ababab55</string>

+				<key>selection</key>

+				<string>#b9b9b9</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Text</string>

+			<key>scope</key>

+			<string>variable.parameter.function</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#222222</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Comments</string>

+			<key>scope</key>

+			<string>comment, punctuation.definition.comment</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#777777</string>

+				<key>fontStyle</key>

+				<string>bold</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Punctuation</string>

+			<key>scope</key>

+			<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#111111</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Delimiters</string>

+			<key>scope</key>

+			<string>none</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#222222</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Operators</string>

+			<key>scope</key>

+			<string>keyword.operator</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#222222</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Keywords</string>

+			<key>scope</key>

+			<string>keyword</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#333333</string>

+				<key>fontStyle</key>

+				<string>bold</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Variables</string>

+			<key>scope</key>

+			<string>variable</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#555555</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Functions</string>

+			<key>scope</key>

+			<string>entity.name.function, meta.require, support.function.any-method, variable.function, variable.annotation, support.macro</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#444444</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Labels</string>

+			<key>scope</key>

+			<string>entity.name.label</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#5e5e5e</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Classes</string>

+			<key>scope</key>

+			<string>support.class, entity.name.class, entity.name.type.class</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#666666</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Classes</string>

+			<key>scope</key>

+			<string>meta.class</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#101010</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Methods</string>

+			<key>scope</key>

+			<string>keyword.other.special-method</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#444444</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Storage</string>

+			<key>scope</key>

+			<string>storage</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#444444</string>

+				<key>fontStyle</key>

+				<string>bold</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Support</string>

+			<key>scope</key>

+			<string>support.function</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#868686</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Strings, Inherited Class</string>

+			<key>scope</key>

+			<string>string, constant.other.symbol, entity.other.inherited-class</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#333333</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Integers</string>

+			<key>scope</key>

+			<string>constant.numeric</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#000000</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Floats</string>

+			<key>scope</key>

+			<string>none</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#000000</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Boolean</string>

+			<key>scope</key>

+			<string>none</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#222222</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Constants</string>

+			<key>scope</key>

+			<string>constant</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#000000</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Tags</string>

+			<key>scope</key>

+			<string>entity.name.tag</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#7c7c7c</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Attributes</string>

+			<key>scope</key>

+			<string>entity.other.attribute-name</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#999999</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Attribute IDs</string>

+			<key>scope</key>

+			<string>entity.other.attribute-name.id, punctuation.definition.entity</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#686868</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Selector</string>

+			<key>scope</key>

+			<string>meta.selector</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#747474</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Values</string>

+			<key>scope</key>

+			<string>none</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#999999</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Headings</string>

+			<key>scope</key>

+			<string>markup.heading punctuation.definition.heading, entity.name.section</string>

+			<key>settings</key>

+			<dict>

+				<key>fontStyle</key>

+				<string></string>

+				<key>foreground</key>

+				<string>#686868</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Units</string>

+			<key>scope</key>

+			<string>keyword.other.unit</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#999999</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Bold</string>

+			<key>scope</key>

+			<string>markup.bold, punctuation.definition.bold</string>

+			<key>settings</key>

+			<dict>

+				<key>fontStyle</key>

+				<string>bold</string>

+				<key>foreground</key>

+				<string>#a0a0a0</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Italic</string>

+			<key>scope</key>

+			<string>markup.italic, punctuation.definition.italic</string>

+			<key>settings</key>

+			<dict>

+				<key>fontStyle</key>

+				<string>italic</string>

+				<key>foreground</key>

+				<string>#747474</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Code</string>

+			<key>scope</key>

+			<string>markup.raw.inline</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#8e8e8e</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Link Text</string>

+			<key>scope</key>

+      <string>string.other.link, punctuation.definition.string.end.markdown, punctuation.definition.string.begin.markdown</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#7c7c7c</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Link Url</string>

+			<key>scope</key>

+			<string>meta.link</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#999999</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Lists</string>

+			<key>scope</key>

+			<string>markup.list</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#7c7c7c</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Quotes</string>

+			<key>scope</key>

+			<string>markup.quote</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#999999</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Separator</string>

+			<key>scope</key>

+			<string>meta.separator</string>

+			<key>settings</key>

+			<dict>

+				<key>background</key>

+				<string>#b9b9b9</string>

+				<key>foreground</key>

+				<string>#464646</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Inserted</string>

+			<key>scope</key>

+			<string>markup.inserted</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#8e8e8e</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Deleted</string>

+			<key>scope</key>

+			<string>markup.deleted</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#7c7c7c</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Changed</string>

+			<key>scope</key>

+			<string>markup.changed</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#747474</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Colors</string>

+			<key>scope</key>

+			<string>constant.other.color</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#868686</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Regular Expressions</string>

+			<key>scope</key>

+			<string>string.regexp</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#868686</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Escape Characters</string>

+			<key>scope</key>

+			<string>constant.character.escape</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#868686</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Embedded</string>

+			<key>scope</key>

+			<string>punctuation.section.embedded, variable.interpolation</string>

+			<key>settings</key>

+			<dict>

+				<key>foreground</key>

+				<string>#747474</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Illegal</string>

+			<key>scope</key>

+			<string>invalid.illegal</string>

+			<key>settings</key>

+			<dict>

+				<key>background</key>

+				<string>#7c7c7c</string>

+				<key>foreground</key>

+				<string>#101010</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Broken</string>

+			<key>scope</key>

+			<string>invalid.broken</string>

+			<key>settings</key>

+			<dict>

+				<key>background</key>

+				<string>#999999</string>

+				<key>foreground</key>

+				<string>#f7f7f7</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Deprecated</string>

+			<key>scope</key>

+			<string>invalid.deprecated</string>

+			<key>settings</key>

+			<dict>

+				<key>background</key>

+				<string>#5e5e5e</string>

+				<key>foreground</key>

+				<string>#101010</string>

+			</dict>

+		</dict>

+		<dict>

+			<key>name</key>

+			<string>Unimplemented</string>

+			<key>scope</key>

+			<string>invalid.unimplemented</string>

+			<key>settings</key>

+			<dict>

+				<key>background</key>

+				<string>#ababab</string>

+				<key>foreground</key>

+				<string>#101010</string>

+			</dict>

+		</dict>

+	</array>

+	<key>uuid</key>

+	<string>uuid</string>

+</dict>

+</plist>