Custom Blues Brothers sunglasses – pink works as a catalyst of success for all those who wish to popularize themselves amongst masses. The Blues Brothers sunglasses are considered iconic and have mesmerized generation of fashion lovers with their aesthetic design. It typically belongs to the genre of Oahu sunglasses, which have broken mold of metal eyewear patterns that existed earlier. This masculine sunglass can be distinguished with sturdy pink colored arms and frames, with dark colored trapezoidal lens. Advertisers working in fashion, hospitality, and healthcare industry – can gift away logoed promotional Blues Brothers sunglasses during promotional events, community event, shopping events, sponsored events or any other mass event. Marketers or individuals can themselves create or utilize their leisure or business opportunities to gift away these personalized Blues Brothers sunglasses and expect high response for their gifting choice. Imprint Area: 2" X 5/16".


text:
Anna KareninaTami Luckie2017-04-21T22:40:54+00:00
Why Anna Karenina and Leo Tolstoy
I first read Anna Karenina in college and I immediately fell in love with Anna's story. It was my introduction to Tolstoy and Russian literature. I often get asked whom my favorite writer is which is a very difficult question to answer. More often than not, my answer is Leo Tolstoy. This book made a connection to my soul across time and space. I reread the novel in my thirties and had a much different, but equally profound, experience. I will be rereading this one again and I'm curious to see how it resonates now that I'm in my forties.
I deeply love Russian literature and there was no question that I would pick a Russian novel to represent Mt. Elbrus which is located in Russia. Anna Karenina was my first love and that is why I chose this novel. However, there is a tremendous library of Russian literature to explore. The short stories of Anton Chekhov are masterpieces of the short format. Fyodor Dostoyevsky is considered the equal of Tolstoy and he is best known for Crime and Punishment (1866) and The Brothers Karamazov (1880). Vladmir Nabokov wrote the classic Lolita which is included in the Modern Library 100 Best Novels . Alexander Pushkin, Alexksandr Solzhenitsyn, Ivan Turgenev… the list goes on. Perhaps no country has done more to influence modern literature than Russia.
More About Anna Karenina
Described by William Faulkner as the best novel ever written and by Fyodor Dostoevsky as "flawless," Anna Karenina is Leo Tolstoy's classic tale of love and adultery set against the backdrop of high society in Moscow and Saint Petersburg. A rich and complex masterpiece, the novel charts the disastrous course of a love affair between Anna, a beautiful married woman, and Count Vronsky, a wealthy army officer. Tolstoy seamlessly weaves together the lives of dozens of characters, and in doing so captures a breathtaking tapestry of late-nineteenth-century Russian society. As Matthew Arnold wrote in his celebrated essay on Tolstoy, "We are not to take Anna Karenina as a work of art; we are to take it as a piece of life."
Born to an aristocratic Russian family in 1828, he is best known for the novels War and Peace (1869) and Anna Karenina (1877), often cited as pinnacles of realist fiction. He first achieved literary acclaim in his twenties with his semi-autobiographical trilogy, Childhood, Boyhood, and Youth (1852–1856), and Sevastopol Sketches (1855), based upon his experiences in the Crimean War. Tolstoy's fiction includes dozens of short stories and several novellas such as The Death of Ivan Ilyich, Family Happiness, and Hadji Murad. He also wrote plays and numerous philosophical essays.

redpajama_set_name: RedPajamaCommonCrawl


text:
Managing staff
YJB and Other Guidance
This area contains information about working with staff members such as policies, procedures and ways of working that support positive working relationships and development.
Supporting Staff After a Serious Incident – Hillingdon Youth Justice Service (September 2021)
Summary: Attached is the mobilisation plan employed by Hillingdon YJS following a serious incident to support staff. Description: Following a serious incident in November 2019, it was recommended in a commissioned Independent Review that the London Borough of Hillingdon and Central and North West London NHS Foundation Trust share the mobilisation plan that was implemented to support staff in…
Supervision Policy for Staff - Buckinghamshire Youth Offending Service
Age: n/a Sex: n/a Cost no Aims: To improve relationships between supervisors and supervisees To improve outcomes for service users Description: The attached is a supervision policy that is based on 'Critical Reflection', which was advocated in the Munro Report as achieving best outcomes for service users. Staff members are provided the opportunity to discuss events…
Supervision Framework for Restorative Practices - Warwickshire Youth Justice Service
Age: n/a Sex: n/a Cost: n/a Aims: Ensure that there is a specific process in place to support restorative justice practitioners Ensure that there is a specific process in place to support staff that undertake restorative practices such as conferences on an occasional basis Description:The attached supervision framework has been created to support managers to ensure…
Summary: The Youth Justice and Family Intervention Service in Tower Hamlets has adopted a model of reflective group supervision aiming to create space to develop systemic understanding of complex YOT cases. Age: n/a Sex: n/a Cost: n/a Description:The Youth Justice and Family Intervention Service in Tower Hamlets (YJFIS) has adopted a model of reflective group supervision. The model…
Supervision Policy and Template for Case Manager – Camden YOS (October 2020)
Summary: Attached is a copy of the supervision policy and template used in Camden YOS with case managers. Age: n/a Sex: n/a Cost: n/a Aims: Ensure consistent policy and process for case managers supervision. Discuss diversity issues for each children on their case load, with a focus on disproportionality. Description: Attached below is a word document,…


text:
Tuesday, July 9, 2019 North America | Oceania | Caribbean
August 2018Best Practices in Business & Economic DevelopmentJamaicaPast Issues
The Spectrum Management Authority of Jamaica
written by BVC August 21, 2018
Bridging the digital divide
Business View Caribbean reports on the Spectrum Management Authority of Jamaica, as part of our focus on best practices of government agencies.
The Spectrum Management Authority (SMA) is the national regulator for the radio frequency spectrum in Jamaica as authorized under the Telecommunications Act of 2000. The radio frequency (RF) spectrum is a valuable natural resource which facilitates the use of wireless technology for the development of the ICT (Information and Communications Technology) sector and is an enabler of businesses in other sectors of the economy.
The radio spectrum is a subset of the electromagnetic waves lying between the frequencies from 9 kilohertz (kHz – thousands of cycles per second) to 30 gigahertz (GHz – billions of cycles per second). These support a wide range of business, personal, industrial, scientific, medical research, and cultural activities, both public and private. Communications are foremost among those activities and, together with other radio services, are increasingly important to the country's economic and social development.
Efficient and effective spectrum management, therefore, is critical to spectrum allocation in a coordinated manner for the benefit of users at large without compromising national interests. Management of the spectrum is a combination of administrative and technical procedures with legal procedures necessary to ensure efficient operation of radio communication services.
Therefore, the objectives of the SMA are to:
Ensure effective management of funding for operational and capital development expenses of the SMA;
Provide reasonable revenues to the Government from the use of the spectrum;
Develop and retain the key skills and competencies required to meet the changing needs of the industry locally and internationally;
Promote an appropriate and effective policy, legislative, and regulatory framework;
Develop and upgrade the SMA's capital resources;
Improve public awareness;
Maintain operational efficiencies; and,
Lobby the relevant government ministries and agencies such as Ministry of Finance, Ministry of Science, Energy and Technology, etc., to further the growth of the SMA and spectrum management practices.
The core functions of the SMA are:
Planning the use of the spectrum and allocating frequencies in a way that will minimize interference;
Monitoring users of the radio spectrum to ensure compliance and minimize interference;
The collection of spectrum license fees which are remitted to the Government's Consolidated Fund;
Proactive monitoring of the spectrum to identify and eliminate cases of interference reported by spectrum users;
Providing advice to the Government both with respect to policy and legal issues concerning the spectrum;
To build and maintain robust relationships with the communities;
To strengthen collaborative efforts between and among existing partners; and
Licensing new users of the spectrum.
There are various categories of radio systems that are licensed by the Authority, namely:
Terrestrial (land-based) radio systems – including fixed services (such as networks providing data transfer services) and mobile services (such as cellular services as well as 2-way radios);
Satellite systems – for large earth stations and VSATs (very small aperture terminals);
Maritime radio systems – these facilitate radio communication for ships, yachts, and boats; and,
Aeronautical radio systems – which facilitate communication by airplanes and air-traffic controllers.
The Authority also acts in a certifying capacity in respect of the following licenses:
Certificate of Competence in Radio Telephony/Global Maritime Distress and Safety System (GMDSS) – This certification authorizes the holder to carry out the radiotelephone service of any Ship Station;
Radio Technician License – There are two (2) classes for this category of license: Class "A" and Class "B" Licenses. A license issued under Class "A" category authorizes the Licensee to install and maintain radio transmitting apparatus; and, the Class "B" category authorizes the Licensee to install and maintain radio transmitting apparatus with a radio frequency power not exceeding 1,000 watts; and
Type Approval Certificate – This certification is issued to manufacturers of radio communication equipment after the Authority ensures that it conforms to appropriate standards and principles of product safety and will not interfere with other equipment or networks.
In facilitating the licensing process, the SMA conducts the following activities:
Technical analysis – to determine whether the spectrum is available, that is, whether it was ever assigned to anyone;
Monitoring of the frequency – to ensure that the frequency under review is free and clear, monitoring is conducted by the Band Planning Team; and
Validation of the frequency – the team validates the frequency being requested to ensure the proposed service for use of the band is aligned with the allocation for Jamaica and by extension, aligned to the Radio Regulations governed by the International Telecommunications Union (ITU).
In the last five years, the world has observed a transformation in the demand for telecommunication services. As the global communications market develops, Jamaica continues to trend in the same direction, although not at the same rate. However, there continues to be an increasing demand for the spectrum over the years, as the number of users increases and the variety of uses rises. As the demand for information, wherever, whenever and on-the-go, surges, and the proliferation of wireless devices escalates, so does the demand for the spectrum.
Given these circumstances, there is an increasing interest and a need to respond to these imperatives and assess the organizational structure and operational efficiency of the SMA. This will take the form of a comprehensive organizational review which will specifically seek to transform the systems, operations, processes and structure of the SMA to:
Respond to the current needs of the Jamaican telecommunications sector;
Align the organization with the mandate of the Ministry of Science, Energy and Technology (MSET) as well as those of global trends in the telecommunications sector;
Determine the existing strengths, weaknesses, threats and opportunities of the SMA's operations;
Evaluate the relevance of existing programs and projects;
Review the current talent, knowledge-base and capacity of the SMA staff in light of changing national demands; and
Review and evaluate the efficiency and effectiveness of systems, processes and structures that support the operations and resource management and utilization in all areas of the SMA.
The SMA completed the recent fiscal year with a staff complement of 37, which represents approximately 90 percent of the approved establishment of 41 posts. Significantly, in the course of the year, the SMA family welcomed on board Dr. Maria Myers-Hamilton who has assumed leadership of the SMA's operations as the Managing Director.
The planned activities of the SMA for the 2018/19 FY will include:
Pursuing the core functions of: licensing spectrum users, resolution of interference complaints according to established standards, monitoring and inspection to ensure the legitimate and efficient use of the spectrum, and collection of fees as targeted;
Ensuring good corporate governance and statutory compliance within/by the Authority;
Fulfillment of Local, Regional and International obligations; and,
Performance Monitoring in order to achieve established targets and ensuring compliance with all statutory obligations.
The medium to long-term focus on spectrum management will primarily be on the following:
Financial prudence and stability;
Staff Recruitment, Retention and Training;
Policy and Legislative Improvement in line with Jamaica's Vision 2030 Plan;
Capital Resource upgrade; and
Public awareness.
Wireless broadband has been a key lever for digital inclusion in developed and developing countries. Penetration of wireless Internet and the economic and social benefits deriving from it have been increasing. Ensuring that the citizens of Jamaica have access to universal and affordable broadband will lead to accelerated development throughout the country.
Examples of the benefits of wireless broad-band include access to educational content (eLearning Initiative across Secondary and Primary schools), health services, and e-governance solutions. Broadband also affects how people connect to each other, how they engage in democratic processes, and how they read their daily news. These factors have generated an increase in data traffic and demand at an unprecedented rate. Efficient spectrum management is mandatory to meet these challenges and bridge the digital divide.
Check out our past features on The Spectrum Management Authority of Jamaica 2016 and The Spectrum Management Authority of Jamaica 2017.
WHO: The Spectrum Management Authority of Jamaica
WHAT: The national regulator for the radio frequency spectrum in Jamaica
WHERE: Kingston, Jamaica
WEBSITE: www.sma.gov.jm
Sagicor Life – www.sagicorjamaica.com
DIG DIGITAL?
VIEW THE DIGITAL VERSION OF THIS FEATURE
The Queen Elizabeth Hospital – A new prescription – Barbados
BVC August 21, 2018
CWM Infrastructure – Curaçao
Mangusa Supermarkets – Hard work and strong faith
Cayman Enterprise City – Cayman Islands
KingstonSMA
Belize Tourism Industry Association
The Accra Beach Hotel and Spa –...
The Holiday Inn Express, San Juan –...
CDB Ramping up Research to Address Caribbean...
Issues Impacting Lives of CARICOM Citizens Get...
Guyana Ministry of Finance
Belize Hosts Climate Risk Management Workshop
Jamaica Augments Missing Child Prevention and Recovery...
VIEW OR DOWNLOAD THE BROCHURE FOR THIS ARTICLE


It promised to decentralise; it allowed for monopolies.
It promised free information; it led to individual data being exploited.
It promised to bank the unbanked; it has scratched the surface of this need.
So what are the key building blocks of an internet that will allow people to use it as originally intended?
To enable many value interactions, participants must know who they are transacting with.
To provide a network that allows for asset ownership and exchange, being able to represent your asset class is essential.
Rules and regulations already exist to protect counterparties. Any network must allow for and indeed enable such regulations.
Energy efficiency is essential as it is the only way to build a long-lasting and sustainable solution.
No one participant can be in a position to exploit, leverage or manipulate any individual's data.
To support a global network of value exchange, the network must be able to scale just like the internet today scales.
iov42 is building the global network operating system that will be the foundation for the Internet of Value.
By adapting pioneering ideas from blockchain, eliminating shortfalls and developing new innovations, iov42 has created a sustainable, usable and scalable solution that can meet these critical demands.
Many interactions, particularly those that fall under KYC/AML requirements, rely on a strong proof of identity. To support this, iov42 has centered the network around identities.
iov42 is a multi-asset network that can manage virtually any number of asset-types.
A novel consensus mechanism (DRME) combines high performance with low energy consumption.
Nodes are data centres with unlimited storage, speed and scalability. This unique architecture creates a network that can scale like the internet.
Through open API´s, developers can easily develop applications for any use case.
Building regional, interconnected networks that can comply with existing local regulations.
We provide scalable solutions to the most complex use-cases that benefit from decentralization including supporting a full range of permissioning - public to fully private for enterprises and consumers.
Our design provides the necessary flexibility in order to meet current and anticipated future demands around data locality, ownership and regulatory compliance.
Let's build the internet of value - Together!
Want to be part of creating the future?
Copyright © 2019 iov42 Ltd. All Rights Reserved.


Back in May at BlackBerry® World™ 2012, we caught up with a wide range of attendees, Research In Motion® (RIM®) executives, alliance partners and analysts. Today I've dug into the vault to share a chat with Carlo Chiarello, EVP of Global Smartphone Business at RIM. Carlo shares his global perspective on BlackBerry® 7 OS and the 7.1 update in the market today. Check out the video below!
Is your organization currently using BlackBerry 7 OS devices, or do you have yet to upgrade through the BlackBerry Trade Up program or your IT department? Share your upgrade strategy for the next year in the comments below.
From the BlackBerry World Vault: Catching Up with David J. Smith, SVP of Mobile Computing We're hosting #BBSMBchat Tonight!


The Pub Las Vegas is a big change from other watering holes along the Strip. With a great selection of specialty and craft beers, the Pub at Monte Carlo hotel offers a laid-back place to have a drink, no glamour required. If you're tired of waiting in lines and paying ridiculous cover fees, head to The Pub or to the lounge of the Monte Carlo, Zowie Bowie Las Vegas. Never too crowded, The Pub Las Vegas retains its relaxed atmosphere. Some visitors may think it lacks a bit of a buzz, but if you're looking for a place to grab some pub grub and a beer, this is it. Live bands bring some energy to The Pub at Monte Carlo on weekends, but even then, it won't be so crowded that you can't get a drink. If you like your Vegas bars a bit on the quiet side, you'll love the vibe at the Bar and Zowie Bowie Las Vegas.
Style of food: Traditional pub food including brick-oven pizza.
Style of booze/specialty drinks: Specialty and craft beers.
Music: Live bands on the weekends.
Hours: 11 am to 11 pm Sunday, Monday, and Thursday; 11 am to 2 am Friday and Saturday.
Parking: Available at the Monte Carlo.


Alexander Accounting Services Ltd is a Private Limited Company. Company number assigned by Companies House is 09500140. The company was incorporated on Thursday 19th March 2015, so the company age is 1 year 3 months 14 days. The company registration status is Active. We have no data about company Standard Industrial Classification (SIC). Alexander Accounting Services Ltd register address is 35 NEW ENGLAND ROAD, Newhaven (area code: BN1 4GG). The company's country of origin is ENGLAND. We have no data about company previous names in last 10 years.


text:
package org.opencb.opencga.storage.core.variant.search.solr;

import org.apache.solr.client.solrj.SolrQuery;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.opencb.commons.datastore.core.Query;
import org.opencb.commons.datastore.core.QueryOptions;
import org.opencb.opencga.storage.core.exceptions.StorageEngineException;
import org.opencb.opencga.storage.core.metadata.VariantStorageMetadataManager;
import org.opencb.opencga.storage.core.variant.adaptors.VariantField;
import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryException;
import org.opencb.opencga.storage.core.variant.dummy.DummyVariantStorageMetadataDBAdaptorFactory;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam.*;

/**
 * Created by jtarraga on 03/03/17.
 */
public class SolrQueryParserTest {

    private String studyName = "platinum";
    private String flBase = "fl=other,geneToSoAcc,traits,type,soAcc,score_*,sift,passStats_*,caddRaw,biotypes,polyphenDesc,studies,end,id,variantId,"
            + "popFreq_*,caddScaled,genes,chromosome,xrefs,start,gerp,polyphen,siftDesc,"
            + "phastCons,phylop,altStats_*,id,chromosome,start,end,type";
    private String flDefault1 = flBase + ",fileInfo__*,qual__*,filter__*,sampleFormat__*";
    private String flDefaultStudy = flBase + ",fileInfo__" + studyName + "__*,qual__" + studyName + "__*,"
            + "filter__" + studyName + "__*,sampleFormat__" + studyName + "__*";

    SolrQueryParser solrQueryParser;

    VariantStorageMetadataManager scm;

    @Rule
    public ExpectedException thrown = ExpectedException.none();

    @Before
    public void init() throws StorageEngineException {
        DummyVariantStorageMetadataDBAdaptorFactory.clear();
        scm = new VariantStorageMetadataManager(new DummyVariantStorageMetadataDBAdaptorFactory());
        scm.createStudy(studyName);

        solrQueryParser = new SolrQueryParser(scm);
    }

    @Test
    public void parseXref() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_XREF.key(), "rs574335987");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"rs574335987\"", solrQuery.toString());
    }

    @Test
    public void parseConsequenceTypeSOTerm() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(soAcc:\"1583\")", solrQuery.toString());
    }

    @Test
    public void parseConsequenceTypeSOAcc() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "SO:0001792,SO:0001619");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(soAcc:\"1792\"+OR+soAcc:\"1619\")", solrQuery.toString());
    }

    @Test
    public void parseGeneAndConsequenceType() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(GENE.key(), "WASH7P");
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "SO:0001792");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(geneToSoAcc:\"WASH7P_1792\")", solrQuery.toString());
    }

    @Test
    public void parseRegion() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(REGION.key(), "1:17700");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(chromosome:\"1\"+AND+end:[17700+TO+*]+AND+start:[*+TO+17700])", solrQuery.toString());
    }

    @Test
    public void parseGene() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(GENE.key(), "WASH7P");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"WASH7P\"", solrQuery.toString());
    }

    @Test
    public void parseBiotype() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_BIOTYPE.key(), "protein_coding");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(biotypes:\"protein_coding\")", solrQuery.toString());
    }

    @Test
    public void parseGeneAndConsequenceTypeAndRegionAndBiotype() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(GENE.key(), "WASH7P");
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "SO:0001792");
        query.put(REGION.key(), "1:17700");
        query.put(ANNOT_BIOTYPE.key(), "protein_coding");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(((chromosome:\"1\"+AND+end:[17700+TO+*]+AND+start:[*+TO+17700]))+AND+(geneToSoAcc:\"protein_coding_1792\"))+OR+(geneToSoAcc:\"WASH7P_protein_coding_1792\")", solrQuery.toString());
    }

    @Test
    public void parseType() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(TYPE.key(), "CNV,SNV");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(type:\"CNV\"+OR+type:\"SNV\")", solrQuery.toString());
    }

    @Test
    public void parsePhylop() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CONSERVATION.key(), "phylop<-1.0");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=phylop:{-100.0+TO+-1.0}", solrQuery.toString());
    }

    @Test
    public void parsePhylopAndGene() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(GENE.key(), "WASH7P");
        query.put(ANNOT_CONSERVATION.key(), "phylop<-1.0");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"WASH7P\"&fq=phylop:{-100.0+TO+-1.0}", solrQuery.toString());
    }

    @Test
    public void parsePhylopAndBiotype() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_BIOTYPE.key(), "protein_coding");
        query.put(ANNOT_CONSERVATION.key(), "phylop<-1.0");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(biotypes:\"protein_coding\")&fq=phylop:{-100.0+TO+-1.0}", solrQuery.toString());
    }

    @Test
    public void parsePhylopAndGeneAndPop() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(GENE.key(), "WASH7P");
        query.put(ANNOT_CONSERVATION.key(), "phylop<-1.0");
        query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:ALL>0.1");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"WASH7P\"&fq=phylop:{-100.0+TO+-1.0}&fq=popFreq__1kG_phase3__ALL:{0.1+TO+*]", solrQuery.toString());
    }

    @Test
    public void parsePopStats() throws StorageEngineException {
        QueryOptions queryOptions = new QueryOptions();
        Query query = new Query();
        query.put(STATS_MAF.key(), "ALL<0.1");
        String expectedFilter = "&q=*:*&fq=(altStats__platinum__ALL:[0+TO+0.1})";

        // Without study
        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefault1 + expectedFilter, solrQuery.toString());

        // With study
        query.put(STUDY.key(), studyName);
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());

        // With study in stats
        query.put(STATS_MAF.key(), studyName + ":ALL<0.1");
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());

        // Without study : FAIL
        scm.createStudy("secondStudy");
        query.remove(STUDY.key());
        query.put(STATS_MAF.key(), "ALL<0.1");
        thrown.expect(VariantQueryException.class);
        thrown.expectMessage("Missing study");
        solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
    }

    @Test
    public void parseMultiStats() {
        QueryOptions queryOptions = new QueryOptions();
        Query query = new Query();
        query.put(STATS_MAF.key(), "ALL<0.1;OTH<0.1");
        String expectedFilter = "&q=*:*&fq="
                + "((altStats__platinum__ALL:[0+TO+0.1})"
                + "+AND+"
                + "(altStats__platinum__OTH:[0+TO+0.1}))";

        // Without study
        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefault1 + expectedFilter, solrQuery.toString());

        // With study
        query.put(STUDY.key(), studyName);
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());

        // With study in some stats
        query.put(STATS_MAF.key(), studyName + ":ALL<0.1;OTH<0.1");
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());

        // With study in stats
        query.put(STATS_MAF.key(), studyName + ":ALL<0.1;" + studyName + ":OTH<0.1");
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());
    }

    @Test
    public void parsePassStats() throws StorageEngineException {
        QueryOptions queryOptions = new QueryOptions();
        Query query = new Query();
        query.put(STATS_PASS_FREQ.key(), "ALL<0.1");
        String expectedFilter = "&q=*:*&fq=(passStats__platinum__ALL:[0+TO+0.1})";

        // Without study
        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefault1 + expectedFilter, solrQuery.toString());

        // With study
        query.put(STUDY.key(), studyName);
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());

        // With study in stats
        query.put(STATS_PASS_FREQ.key(), studyName + ":ALL<0.1");
        solrQuery = solrQueryParser.parse(query, queryOptions);
        assertEquals(flDefaultStudy + expectedFilter, solrQuery.toString());

        // Without study : FAIL
        scm.createStudy("secondStudy");
        query.remove(STUDY.key());
        query.put(STATS_PASS_FREQ.key(), "ALL<0.1");
        thrown.expect(VariantQueryException.class);
        thrown.expectMessage("Missing study");
        solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
    }

    @Test
    public void parseProteinSubstitutionScore() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==tolerated,polyphen==bening");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(siftDesc:\"tolerated\"+OR+polyphenDesc:\"bening\")", solrQuery.toString());

        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "polyphen==possibly damaging,probably damaging");

        solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(polyphenDesc:\"possibly+damaging\"+OR+polyphenDesc:\"probably+damaging\")", solrQuery.toString());
    }

    @Test
    public void parsePopMafScore() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:YRI<0.01");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(popFreq__1kG_phase3__YRI:[0+TO+0.01}+OR+(*+-popFreq__1kG_phase3__YRI:*))", solrQuery.toString());
    }

    @Test
    public void parsePopMafScoreMissing() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        // (* -popFreq__1kG_phase3__YRI:*) OR popFreq_1kG_phase3__YRI:[0.01 TO *]
        query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:YRI<<0.01");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(popFreq__1kG_phase3__YRI:[0+TO+0.01}+OR+(*+-popFreq__1kG_phase3__YRI:*))", solrQuery.toString());
    }

    @Test
    public void parsePhastCons() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CONSERVATION.key(), "phastCons>0.02");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=phastCons:{0.02+TO+*]", solrQuery.toString());
    }

    @Test
    public void parsePhastConsMissing() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CONSERVATION.key(), "phastCons>>0.02");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(phastCons:{0.02+TO+*]+OR+phastCons:\\-100.0)", solrQuery.toString());
    }

    @Test
    public void parseSiftMissing() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift<<0.01");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=sift:[-100.0+TO+0.01}", solrQuery.toString());
    }

    @Test
    public void parseNoPhastCons() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);
        query.put(ANNOT_CONSERVATION.key(), "phastCons!=0.035999998450279236");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=-phastCons:0.035999998450279236", solrQuery.toString());
    }

    @Test
    public void parseExactPhastCons() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CONSERVATION.key(), "phastCons=0.035999998450279236");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=phastCons:0.035999998450279236", solrQuery.toString());
    }

    @Test
    public void parseNoPopMaf() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:GWD!=0.061946902");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=-popFreq__1kG_phase3__GWD:0.061946902", solrQuery.toString());
    }

    @Test
    public void parseExactPopMaf() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_POPULATION_MINOR_ALLELE_FREQUENCY.key(), "1kG_phase3:GWD==0.061946902");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=popFreq__1kG_phase3__GWD:0.061946902", solrQuery.toString());
    }

    @Test
    public void parseExactSiftDesc() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==tolerated");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=siftDesc:\"tolerated\"", solrQuery.toString());
    }

    @Test
    public void parseExactSiftDesc2() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift=tolerated");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=siftDesc:\"tolerated\"", solrQuery.toString());
    }

    @Test
    public void parseNoExactSiftDesc() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift!=tolerated");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=-siftDesc:\"tolerated\"", solrQuery.toString());
    }

    @Test
    public void parseExactSift() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift==-0.3");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=sift:\\-0.3", solrQuery.toString());
    }

    @Test
    public void parseExactSift2() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift=-0.3");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=sift:\\-0.3", solrQuery.toString());
    }

    @Test
    public void parseNoExactSift() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_PROTEIN_SUBSTITUTION.key(), "sift!=-0.3");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=-sift:\\-0.3", solrQuery.toString());
    }

    @Test
    public void parseRegionChromosome() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(REGION.key(), "1,3");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(chromosome:\"1\")+OR+(chromosome:\"3\")", solrQuery.toString());
    }

    @Test
    public void parseRegionChromosomeStart() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);
        query.put(REGION.key(), "1:66381,1:98769");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(chromosome:\"1\"+AND+end:[66381+TO+*]+AND+start:[*+TO+66381])+OR+(chromosome:\"1\"+AND+end:[98769+TO+*]+AND+start:[*+TO+98769])", solrQuery.toString());
    }

    @Test
    public void parseRegionChromosomeStartEnd() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(REGION.key(), "1:66381-76381,1:98766-117987");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(chromosome:\"1\"+AND+end:[66381+TO+*]+AND+start:[*+TO+76381])+OR+(chromosome:\"1\"+AND+end:[98766+TO+*]+AND+start:[*+TO+117987])", solrQuery.toString());
    }

    @Test
    public void parseAnnot() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_XREF.key(), "RIPK2,NCF4");
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(geneToSoAcc:\"RIPK2_1583\"+OR+geneToSoAcc:\"NCF4_1583\")", solrQuery.toString());
    }

    @Test
    public void parseAnnotCT1() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();

        // consequence types and genes
        // no xrefs or regions: genes AND cts
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant");
        query.put(ANNOT_XREF.key(), "RIPK2,NCF4");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(geneToSoAcc:\"RIPK2_1583\"+OR+geneToSoAcc:\"RIPK2_1580\"+OR+geneToSoAcc:\"NCF4_1583\"+OR+geneToSoAcc:\"NCF4_1580\")", solrQuery.toString());
    }

    @Test
    public void parseAnnotCT2() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();

        // consequence types and genes and xrefs/regions
        // otherwise: [((xrefs OR regions) AND cts) OR (genes AND cts)]

        query.put(REGION.key(), "1,2");
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant");
        query.put(ANNOT_XREF.key(), "RIPK2,NCF4");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(((chromosome:\"1\")+OR+(chromosome:\"2\"))+AND+(soAcc:\"1583\"+OR+soAcc:\"1580\"))+OR+(geneToSoAcc:\"RIPK2_1583\"+OR+geneToSoAcc:\"RIPK2_1580\"+OR+geneToSoAcc:\"NCF4_1583\"+OR+geneToSoAcc:\"NCF4_1580\")", solrQuery.toString());
    }

    @Test
    public void parseAnnotCT3() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);

        // consequence types but no genes: (xrefs OR regions) AND cts
        // in this case, the resulting string will never be null, because there are some consequence types!!
        query.put(REGION.key(), "1,2");
        query.put(ANNOT_CONSEQUENCE_TYPE.key(), "missense_variant,coding_sequence_variant");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(((chromosome:\"1\")+OR+(chromosome:\"2\"))+AND+(soAcc:\"1583\"+OR+soAcc:\"1580\"))", solrQuery.toString());
    }

    @Test
    public void parseAnnotCT4() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();

        // no consequence types: (xrefs OR regions) but we must add "OR genes", i.e.: xrefs OR regions OR genes
        // we must make an OR with xrefs, genes and regions and add it to the "AND" filter list
        query.put(REGION.key(), "1,2");
        query.put(ANNOT_XREF.key(), "RIPK2,NCF4");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=xrefs:\"RIPK2\"+OR+xrefs:\"NCF4\"+OR+(chromosome:\"1\")+OR+(chromosome:\"2\")", solrQuery.toString());
    }

    @Test
    public void parseTraits() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();

        query.put(ANNOT_TRAIT.key(), "melanoma,recessive");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(traits:\"melanoma\"+OR+traits:\"recessive\")", solrQuery.toString());
    }

    @Test
    public void parseHPOs() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();

        query.put(ANNOT_HPO.key(), "HP%3A000365,HP%3A0000007");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(traits:\"HP%253A000365\"+OR+traits:\"HP%253A0000007\")", solrQuery.toString());
    }

    @Test
    public void parseFormat() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.EXCLUDE, VariantField.STUDIES_FILES + "," + VariantField.STUDIES_SAMPLES);

        Query query = new Query();
        query.put(STUDY.key(), studyName);

        query.put(SAMPLE_DATA.key(), "NA12877:DP>300;NA12878:DP>500");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flBase + "&q=*:*&fq=(dp__" + studyName + "__NA12877:{300+TO+*]+AND+dp__" + studyName + "__NA12878:{500+TO+*])", solrQuery.toString());
    }

    @Test
    public void parseWrongFormat() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(STUDY.key(), studyName);

        query.put(SAMPLE_DATA.key(), "NA12877:AC>200");

        try {
            solrQueryParser.parse(query, queryOptions);
        } catch (VariantQueryException e) {
            System.out.println("Success, exception caught!! " + e.getMessage());
            return;
        }
        fail();
    }

    @Test
    public void parseSample() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.EXCLUDE, VariantField.STUDIES_FILES);

        Query query = new Query();
        query.put(STUDY.key(), studyName);

        query.put(GENOTYPE.key(), "NA12877:1/0,NA12878:1/1");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);

        String fl = ",sampleFormat__platinum__sampleName,sampleFormat__platinum__format,sampleFormat__platinum__NA12877,sampleFormat__platinum__NA12878";
        assertEquals(flBase + fl + "&q=*:*&fq=((gt__" + studyName + "__NA12878:\"1/1\")+OR+(gt__" + studyName + "__NA12877:\"1/0\"))", solrQuery.toString());
    }

    @Test
    public void parseVariantScore1() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);
        query.put(SCORE.key(), studyName + ":score1<0.01");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=score__platinum__score1:{-100.0+TO+0.01}", solrQuery.toString());
    }

    @Test
    public void parseVariantScore2() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);
        query.put(SCORE.key(), studyName + ":score2>=3.2;" + studyName + ":score3:pvalue<0.02");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=score__platinum__score2:[3.2+TO+*]&fq=scorePValue__platinum__score3:{-100.0+TO+0.02}", solrQuery.toString());
    }

    @Test
    public void parseVariantScoreWithoutStudy() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        //query.put(STUDIES.key(), study);
        query.put(SCORE.key(), "score4>=3.2,score2:pvalue<0.001");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=score__platinum__score4:[3.2+TO+*]+OR+scorePValue__platinum__score2:{-100.0+TO+0.001}", solrQuery.toString());
    }

    @Test
    public void parseFacetAvgProteinSubst() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, "avg(" + ANNOT_PROTEIN_SUBSTITUTION.key() + "[sift])");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"sift___avg___0\":\"avg(sift)\"}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetRangeProteinSubst() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, ANNOT_PROTEIN_SUBSTITUTION.key() + "[sift:0..100]:5");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"sift___0___100___5___0\":{\"field\":\"sift\",\"start\":0,\"end\":100,\"type\":\"range\",\"gap\":5}}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetRangePopFreqAlt() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, ANNOT_POPULATION_ALTERNATE_FREQUENCY.key() + "[1kG_phase3:CEU:0..1]:0.2");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"popFreq__1kG_phase3__CEU___0___1___0.2___0\":{\"field\":\"popFreq__1kG_phase3__CEU\",\"start\":0,\"end\":1,\"type\":\"range\",\"gap\":0.2}}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetAvgPopFreqAlt() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, "avg(" + ANNOT_POPULATION_ALTERNATE_FREQUENCY.key() + "[1kG_phase3:CEU])");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"popFreq__1kG_phase3__CEU___avg___0\":\"avg(popFreq__1kG_phase3__CEU)\"}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetPercentilePopFreqAlt() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, "percentile(" + ANNOT_POPULATION_ALTERNATE_FREQUENCY.key() + "[1kG_phase3:CEU])");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"popFreq__1kG_phase3__CEU___percentile___0\":\"percentile(popFreq__1kG_phase3__CEU,1,10,25,50,75,90,99)\"}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetRangeCohortStatsFreqAlt() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, STATS_ALT.key() + "[1kG_phase3:CEU:0..1]:0.2");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"altStats__1kG_phase3__CEU___0___1___0.2___0\":{\"field\":\"altStats__1kG_phase3__CEU\",\"start\":0,\"end\":1,\"type\":\"range\",\"gap\":0.2}}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetRangeScore() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, SCORE.key() + "[1kG_phase3:score2:0..1]:0.2");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"score__1kG_phase3__score2___0___1___0.2___0\":{\"field\":\"score__1kG_phase3__score2\",\"start\":0,\"end\":1,\"type\":\"range\",\"gap\":0.2}}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseFacetAvgScore() {
        QueryOptions queryOptions = new QueryOptions();
        queryOptions.put(QueryOptions.FACET, "avg(" + SCORE.key() + "[1kG_phase3:score2])");

        Query query = new Query();

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals("json.facet={\"score__1kG_phase3__score2___avg___0\":\"avg(score__1kG_phase3__score2)\"}&rows=0&start=0&q=*:*", solrQuery.toString());
    }

    @Test
    public void parseClinicalSignificanceAND() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CLINICAL_SIGNIFICANCE.key(), "benign;likely_benign");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(clinicalSig:\"benign\"+AND+clinicalSig:\"likely_benign\")", solrQuery.toString());
    }

    @Test
    public void parseClinicalSignificanceOR() {
        QueryOptions queryOptions = new QueryOptions();

        Query query = new Query();
        query.put(ANNOT_CLINICAL_SIGNIFICANCE.key(), "benign,likely_benign");

        SolrQuery solrQuery = solrQueryParser.parse(query, queryOptions);
        display(query, queryOptions, solrQuery);
        assertEquals(flDefault1 + "&q=*:*&fq=(clinicalSig:\"benign\"+OR+clinicalSig:\"likely_benign\")", solrQuery.toString());
    }

    //-------------------------------------------------------------------------

    private void display(Query query, QueryOptions queryOptions, SolrQuery solrQuery) {
        System.out.println("Query        : " + query.toJson());
        System.out.println("Query options: " + queryOptions.toJson());
        System.out.println("Solr query   : " + solrQuery.toString());
        System.out.println();
    }
}

redpajama_set_name: RedPajamaGithub


text:
Authorized Alabama Corporate, Partnership, Business Privilege, and Fiduciary Income Tax E-File Providers for 2020
Income Tax >
All Divisions Business and License Collections Entity Registration Human Resources Income Tax Investigations Legal Make A Payment Motor Vehicle Office of the Commissioner Property Tax Sales and Use Tax Incentives Tax Policy Taxpayer Advocacy
The service providers listed below have been approved for 2020 to provide the Alabama Corporate, Partnership, Business Privilege, and Fiduciary E-Filing returns. The order does not indicate a preference for any corporate or partnership income tax service provider.
The Department of Revenue does not guarantee the accuracy of any of the tax preparation software offered by the commercial providers below, nor does it favor any one of them over the others.
TY 2020 Authorized Alabama Corporate, Partnership, Business Privilege, and Fiduciary Income Tax E-file Providers
Date Testing Began
Supported Schedules
Unsupported Schedules/Restrictions
CS Professional Suite (UltraTax)/Thomson Reuters PPT (Partnership team) 11/18/2020 12/09/2020 BPT-E N/A
CS Professional Suite (UltraTax)/Thomson Reuters PPT (Corporate team) 11/18/2020 12/09/2020 N/A BPT-E
CS Professional Suite (UltraTax)/Thomson Reuters PPT (Individual team) 01/15/2021 01/15/2021 N/A BPT-E
CS Professional Suite (UltraTax)/Thomson Reuters CPT 11/18/2020 12/15/2020 Sch G N/A
CS Professional Suite (UltraTax)/Thomson Reuters 65 11/18/2020 12/17/2020 N/A N/A
CS Professional Suite (UltraTax)/Thomson Reuters PTEC (65) 11/18/2020 12/17/2020 N/A N/A
CS Professional Suite (UltraTax)/Thomson Reuters 20S 11/18/2020 12/21/2020 N/A N/A
CS Professional Suite (UltraTax)/Thomson Reuters PTEC (20S) 11/18/2020 12/21/2020 N/A N/A
CS Professional Suite (UltraTax)/Thomson Reuters 20C 12/16/2020 12/29/2020 ConsolRtnIndicator N/A
CS Professional Suite (UltraTax)/Thomson Reuters 20CC 12/17/2020 01/06/2021 N/A N/A
CS Professional Suite Onvios (Onvio Tax)/Thomson Reuters 41 01/06/2021 01/12/2021 All N/A
ProSeries, Intuit 20C 11/13/2020 12/29/2020 N/A ConsolRtnIndicator
ProSeries, Intuit 20S 12/22/2020 12/30/2020 All N/A
ProSeries, Intuit PTEC (20S) 12/22/2020 12/30/2020 All N/A
ProSeries, Intuit 65 01/06/2021 01/13/2021 All N/A
ProSeries, Intuit PTEC (65) 01/06/2021 01/13/2021 All N/A
Lacerte Software/Intuit CPT 11/18/2020 12/14/2020 Sch G N/A
Lacerte Software/Intuit 65 11/19/2020 12/17/2020 N/A N/A
Lacerte Software/Intuit PTEC (65) 11/19/2020 12/17/2020 N/A N/A
Lacerte Software/Intuit 20C 11/18/2020 12/18/2020 Sch G N/A
Lacerte Software/Intuit 41 12/29/2020 01/11/2021 All N/A
Intuit Proconnect Tax Online CPT 12/01/2020 12/15/2020 Sch G N/A
Intuit Proconnect Tax Online 65 11/19/2020 12/17/2020 N/A N/A
Intuit Proconnect Tax Online PTEC (65) 11/19/2020 12/17/2020 N/A N/A
Intuit Proconnect Tax Online 20C 12/01/2020 12/18/2020 N/A Sch G
Intuit Proconnect Tax Online 41 12/29/2020 01/11/2021 All N/A
OLTPRO Professional Tax Software (Desktop) 20C 12/22/2020 12/30/2020 N/A ConsolRtnIndicator
OLTPRO Professional Tax Software (Desktop) 20S 12/22/2020 12/30/2020 All N/A
OLTPRO Professional Tax Software (Desktop) 65 12/22/2020 12/30/2020 All N/A
OLTPRO Professional Tax Software (Web) 20C 12/31/2020 01/05/2021 N/A N/A
OLTPRO Professional Tax Software (Web) 65 12/31/2020 01/05/2021 All N/A
OLTPRO Professional Tax Software (Web) 20S 01/04/2021 01/06/2021 All N/A
CrossLink/Petz Enterprises CPT 12/27/2020 12/29/2020 N/A Schedule G
CrossLink/Petz Enterprises PPT 12/27/2020 12/29/2020 Sch BPT-E N/A
CrossLink/Petz Enterprises 20C 12/23/2020 01/04/2021 N/A N/A
CrossLink/Petz Enterprises 65 12/31/2020 01/07/2021 All N/A
CrossLink/Petz Enterprises PTEC (65) 12/31/2020 01/07/2021 All N/A
CrossLink/Petz Enterprises 20S 12/31/2020 01/15/2021 All N/A
CrossLink/Petz Enterprises PTEC (20S) 12/31/2020 01/15/2021 All N/A
CrossLink Online/Petz Enterprises CPT 01/20/2021 01/20/2021 N/A Schedule G
CrossLink Online/Petz Enterprises PPT 01/20/2021 01/20/2021 Sch BPT-E N/A
CCH ⁄ Prosystem FX (1040 program) PPT 12/22/2020 12/28/2020 N/A Sch BPT-E
CCH ⁄ Prosystem FX (Partnership Team) PPT 01/04/2021 01/04/2021 Sch BPT-E N/A
CCH ⁄ Prosystem FX (Corporate Team) 20C 01/04/2021 01/08/2021 ConsolRtnIndicator N/A
CCH ⁄ Prosystem FX 65 01/04/2021 01/08/2021 All N/A
CCH ⁄ Prosystem FX PTEC (65) 01/04/2021 01/08/2021 All N/A
CCH ⁄ Prosystem FX 20S 01/04/2021 01/15/2021 All N/A
CCH ⁄ Prosystem FX PTEC (20S) 01/04/2021 01/15/2021 All N/A
CCH ⁄ Prosystem FX (Corporate Team) CPT 01/05/2021 01/08/2021 Schedule G N/A
CCH ⁄ Axcess (1040 program) PPT 12/29/2020 12/30/2020 N/A Sch BPT-E
CCH ⁄ Axcess (Partnership) PPT 01/08/2021 01/08/2021 Sch BPT-E N/A
CCH ⁄ Axcess (Corporate) CPT 01/08/2021 01/15/2021 N/A ConsolRtnIndicator
CCH ⁄ Axcess 41 01/19/2021 01/21/2021 All
CCH ⁄ Axcess 20S 01/19/2021 01/21/2021 All
CCH ⁄ Axcess PTEC (20S) 01/19/2021 01/21/2021 All
CCH ⁄ Axcess PTEC (65) 01/19/2021 01/21/2021 All
ATX/CCH Small Firm Services CPT 12/22/2020 12/30/2020 N/A Schedule G
ATX/CCH Small Firm Services PPT 12/22/2020 12/28/2020 N/A Sch BPT-E
ATX/CCH Small Firm Services 65 12/31/2020 01/04/2021 All N/A
ATX/CCH Small Firm Services PTEC (65) 12/31/2020 01/04/2021 All N/A
ATX/CCH Small Firm Services 20C 12/23/2020 01/07/2021 ConsolRtnIndicator N/A
ATX/CCH Small Firm Services 20S 01/19/2021 01/22/2021 All N/A
ATX/CCH Small Firm Services PTEC (20S) 01/19/2021 01/22/2021 All N/A
GoSystem-OneSource/Thomson Reuters (Corporate Team)
CPT 12/22/2020 12/31/2020 Schedule G N/A
PPT 01/04/2021 01/05/2021 N/A Sch BPT-E
20C 12/23/2020 01/07/2021 ConsolRtnIndicator N/A
20CC 01/13/2021 01/20/2021 ConsolRtnIndicator N/A
GoSystem-OneSource/Thomson Reuters (Partnership Team)
PPT 01/05/2021 01/06/2021 Sch BPT-E N/A
GoSystem-OneSource/Thomson Reuters
20S 01/04/2021 01/07/2021 Sch BPT-E N/A
PTEC (20S) 01/04/2021 01/07/2021 Sch BPT-E N/A
65 01/05/2021 01/14/2021 All N/A
PTEC (65) 01/05/2021 01/14/2021 All N/A
OneSource/Thomson Reuters
20S 01/08/2021 01/15/2021 All N/A
PTEC (20S) 01/08/2021 01/15/2021 All N/A
Tax Act, Professional CPT 12/21/2020 12/21/2020 N/A Schedule G
Tax Act, Professional PPT 12/21/2020 12/21/2020 N/A Sch BPT-E
Tax Act, Professional 65 12/22/2020 12/30/2020 All N/A
Tax Act, Professional PTEC (65) 12/22/2020 12/30/2020 All N/A
Tax Act, Professional 20S 01/04/2021 01/20/2021 All
Tax Act, Professional PTEC (20S) 01/04/2021 01/20/2021 All
Tax Act, Professional 41 12/29/2020 01/20/2021 All
Tax Act, Professional 20C 12/30/2020 01/06/2021 N/A N/A
Tax Act 65 12/31/2020 01/04/2021 All N/A
Tax Act PTEC (65) 12/31/2020 01/04/2021 All N/A
Tax Act, Consumer Desktop CPT 12/31/2020 01/04/2021 N/A N/A
Tax Act, Consumer Desktop PPT 12/31/2020 01/04/2021 N/A N/A
Tax Act, Consumer Desktop 20C 01/06/2021 01/07/2021 N/A ConsolRtnIndicator
Tax Act, Consumer Desktop 41 01/19/2021 01/21/2021 N/A ConsolRtnIndicator
Tax Act, Consumer Web CPT 01/04/2021 01/07/2021 N/A Schedule G
Tax Act, Consumer Web 65 01/05/2021 01/07/2021 All N/A
Tax Act, Consumer Web PTEC (65) 01/05/2021 01/07/2021 All N/A
Tax Act, Consumer Web 20C 01/07/2021 01/12/2021 N/A ConsolRtnIndicator
CorpTax, Inc. PPT 01/12/2021 01/14/2021 N/A Sch BPT-E
CorpTax, Inc. CPT 01/12/2021 01/15/2021 Schedule G N/A
CorpTax, Inc. 65 01/19/2021 01/21/2021 All
CorpTax, Inc. PTEC (65) 01/19/2021 01/21/2021 All
BlockWorks, H&R Block 20C 01/07/2021 01/15/2021 N/A ConsolRtnIndicator
BlockWorks, H&R Block 65 01/07/2021 01/13/2021 N/A PTEC
BlockWorks, H&R Block 20S 01/07/2021 01/15/2021 N/A PTEC
TaxWise, CCH, Small Firm Services 65 01/19/2021 01/20/2021 PTEC
TaxSlayer 65 01/19/2021 01/21/2021 PTEC
ATX/CCH Small Firm Services 20S 01/19/2021 01/22/2021 All
ATX/CCH Small Firm Services PTEC (20S) 01/19/2021 01/22/2021 All
CrossLink Online/Petz Enterprises 20S 01/20/2021 01/25/2021 All
CrossLink Online/Petz Enterprises PTEC (20S) 01/20/2021 01/25/2021 All
OLTPRO Professional Tax Software (Desk/Web) 41 01/18/2021 01/25/2021 All
TaxWise, CCH, Small Firm Services 20S 01/19/2021 01/25/2021 PTEC
Tax Act, Consumer Web 41 01/20/2021 01/25/2021 All
CrossLink Online/Petz Enterprises 65 01/20/2021 01/25/2021 All
CrossLink Online/Petz Enterprises PTEC (65) 01/20/2021 01/25/2021 All
Tax Act, Consumer Desktop 20S 01/20/2021 01/27/2021 All
Tax Act, Consumer Desktop PTEC (20S) 01/20/2021 01/27/2021 All
Tax Act, Consumer Web 20S 01/21/2021 01/27/2021 All
Tax Act, Consumer Web PTEC (20S) 01/21/2021 01/27/2021 All
41 01/8/2021 01/27/2021 All
Drake Software 65 01/20/2021 01/27/2021 All
Drake Software PTEC (65) 01/20/2021 01/27/2021 All
ATX/CCH Small Firm Services 41 01/6/2021 01/25/2021 All
Drake Software 20S 01/23/2021 2/1/2021 All
Drake Software PTEC (20S) 01/23/2021 02/1/2021 All
OLTPRO Professional Tax Software (Desk/Web) 41 01/25/2021 02/1/2021 All
TaxSeries/TaxTechnologies 65 01/25/2021 02/3/2021 All
TaxSeries/TaxTechnologies PTEC (65) 01/25/2021 02/3/2021 All
ProSeries, Intuit 41 12/8/2020 01/7/2021 All
CorpTax, Inc. 20S 01/22/2021 02/4/2021 All
CorpTax, Inc. PTEC (20S) 01/22/2021 02/4/2021 All
TaxSlayer 20S 01/7/2021 02/4/2021 PTEC
Lacerte Software/Intuit 20S 11/19/2020 12/22/2020 All
Lacerte Software/Intuit PTEC (20S) 11/19/2020 12/22/2020 All
Intuit Proconnect Tax Online 20S 12/8/2020 12/22/2020 All
Intuit Proconnect Tax Online PTEC (20S) 12/8/2020 12/22/2020 All
Advanced Tax Solutions,MyTaxPrepOffice.com 65 01/21/2021 02/4/2021 All
Advanced Tax Solutions,MyTaxPrepOffice.com PTEC (65) 01/21/2021 02/4/2021 All
OneSource Trust Tax/Thomson Reuters
41 01/28/2021 02/10/2021 All
BlockWorks, H&R Block 41 01/12/2021 02/11/2021 All
TaxSlayer 41 01/26/2021 02/11/2021 All
Advanced Tax Solutions,MyTaxPrepOffice.com 20S 01/20/2021 02/11/2021 All
Advanced Tax Solutions,MyTaxPrepOffice.com PTEC (20S) 01/20/2021 02/11/2021 All
OLTPRO Professional Tax Software (Desk/Web) 20C 01/20/2021 01/21/2021 N/A ConsolRtnIndicator
CCH ⁄ Prosystem FX 20CC 01/7/2021 01/21/2021 N/A N/A
TaxWise, CCH, Small Firm Services 20C 01/11/2021 01/21/2021 N/A ConsolRtnIndicator
Drake Software PPT 01/20/2021 01/21/2021 Sch BPT-E N/A
20C 01/8/2021 01/22/2021 ConsolRtnIndicator N/A
20CC 01/25/2021 01/27/2021 N/A N/A
Drake Software CPT 01/20/2021 01/22/2021 Sch G N/A
Drake Software 20C 01/19/2021 02/18/2021 ConsolRtnIndicator N/A
TaxSeries/TaxTechnologies PPT 01/21/2021 01/22/2021 N/A Sch BPT-E
CCH ⁄ Axcess – Corporate 20C 01/19/2021 01/22/2021 ConsolRtnIndicator N/A
Advanced Tax Solutions,MyTaxPrepOffice.com 20C 01/6/2021 01/26/2021 N/A ConsolRtnIndicator
CCH ⁄ Axcess 20CC 01/21/2021 01/27/2021 N/A N/A
CorpTax, Inc. 20C 01/19/2021 01/27/2021 ConsolRtnIndicator N/A
CorpTax, Inc. 20CC 01/19/2021 01/27/2021 N/A N/A
TaxSlayer 20C 01/21/2021 01/27/2021 N/A ConsolRtnIndicator
CS Professional Suite (OnvioTax)/Thomson Reuters (1040) PPT 01/27/2021 01/27/2021 N/A Sch BPT-E
TaxSeries/TaxTechnologies CPT 01/21/2021 02/1/2021 Sch G N/A
TaxSeries/TaxTechnologies 20C 01/21/2021 02/9/2021 ConsolRtnIndicator N/A
TaxSeries/TaxTechnologies 20CC 01/21/2021 02/9/2021 N/A N/A


Please visit Amazon.com for the fastest delivery.
Sometimes people ask us if the Author will sign the book. The answer is "YES!" If you want a signed copy to be sent as a gift, please use the "Contact Us" form to reach out and let us know how you want the book inscribed.


text:
Böðvar Guðmundsson (født 9. januar 1939 i Borgarfjörður) er en islandsk forfatter og oversætter.

Han har skrevet en række skuespil, poesi, romaner og børnebøger. Hans mest kendte roman er Híbýli vindanna (1995). Han bor i Danmark og er gift med Eva Rode.

Titler oversat til dansk
 Livets træ (2003)
 Vindens hjem (2002)

Dramatikere fra Island
Digtere fra Island
Romanforfattere fra Island
Børnebogsforfattere fra Island

redpajama_set_name: RedPajamaWikipedia


A pair of antique solid 18 carat gold cufflinks; finely made, with gold chain connectors, decorated with beautiful rich green guilloché enamelling, goldpaillons and set with sparkling white diamonds.
High quality, so collectable & immensely wearable!
DATE/MARKS: Early 20th Century. Stamped '18'.
DIMENSIONS: Faces 12.6 mm diameter, diamonds approx. 2.7 mm diameter (1 inch = 25.4 mm). To give an impression of scale, the coin is 19 mm or ¾ of an inch diameter.
WEIGHT: Approx. 8.2 grams together.


The 2nd Call for papers is now closed.
Send your abstracts for papers and posters to eac11@exarc.net before the end of 15 January 2019. We aim to publish proceedings following on the conference. Abstracts should be maximum 200 words and in MSWord or similar format. The jury will only accept one abstract, either paper or poster, per person. Papers will take about 20 minutes, posters are presented on stage in 5 minutes.


text:
Upper Freehold
Hightstown-East Windsor
Plumsted Twp
Skiing Snowboarding
MidJersey.News
Real News, Serving Parts of Mercer, Monmouth and Ocean Counties in New Jersey
Asbury Park, Bordentown Twp, Burlington, East Windsor, Ewing, Freehold, Hamilton, Hightstown, Hopewell, Lawrence, Mercer County, Monmouth County, Ocean County, Pennington, Princeton, Robbinsville, Stafford Township, Trenton, West Windsor	 September 27, 2020 October 1, 2020
2020 Police Unity Tour Bike Ride Held In NJ
See related MidJersey.News coverage here: Police Unity Tour Memorial Service And Blessing Of Riders
Check back for more photos, still having photos sent into MidJersey.News and will be updated again tomorrow or later tonight.
STAFFORD TOWNSHIP, NJ (OCEAN)–The Police Unity Tour held a one day bike ride today starting in Asbury Park and proceeding on shore routes towards Stafford Township ending at the Stafford Township Police Memorial.
This year's spring four day ride that is usually held in May was canceled due to the COVID-19 pandemic that ends at the National Law Enforcement Officers Memorial in Washington, D.C.
This year's ride was shortened to one day and two hundred sixty police officers participated from fourteen states including California and Missouri.
History of the Police Unity Tour:
In 1997, Florham Park (NJ) Police Officer Patrick Montuore had a simple idea: organize a four-day bicycle ride from New Jersey to Washington, DC to raise public awareness about law enforcement officers who have died in the line of duty, and to ensure that their sacrifice is never forgotten. With that, the Police Unity Tour was formed.
What started with 18 riders on a four day fund-raising bicycle ride from Florham Park, NJ to the National Law Enforcement Officers Memorial in Washington, D.C. has grown into 9 chapters consisting of nearly 2,600 members nationwide who make the trip annually. Participants include riders, motorcycles, and support personnel.
The journey is long and challending but for the Police Unity Tour participants it is what they prepare for throughout the year. Through fundraising and physical training, they know that their efforts raise awareness of the ultimate sacrifice made by so many law enforcement officers.
The last leg of the jouney ends at the Memorial, where the participants are greeted by friends, family, and survirors. Once there, many Police Unity Tour members present remembrance braclets worn on their wrists throughout the journey to the families of the fallen.
May 2020, the Police Unity Tour was proud to donate more than $2.0 million to the National Law Enforcement Officers Memorial Fund, bringing our total donations to more than $30 million since their inception.
The Police Unity Tour is the sponsor of the National Law Enforcement Museum's Hall of Remembrance, the Memorial Fund's Officer of the Month Award, and Recently Fallen Alert programs.
Photos by: Monmouth County Sheriff's Office
Today Sgt. Biddle, Ptl. Alexander, Ptl. Edwards and ACO Bencivengo participated in a Police Unity Tour ride from Asbury Park to Stafford Township. This ride helps raise awareness of Law Enforcement Officers who have died in the line of duty. Photo by: Bordentown Police Department
Provided by: Stafford Twp. PD
Video provided by: Bucky For Sherriff
#MCSONJ was proud to participate in this yrs Police Unity Tour, a 1 day bike ride which began in Asbury Park,to raise awareness of members of LE who died in line of duty.@SheriffGolden commends all who are ensuring the sacrifices of our brother&sisters never go unnoticed. @NLEOMF pic.twitter.com/ZRVNmVeiO6
— Monmouth County Sheriff's Office (@MonmouthSheriff) September 28, 2020
Today Sgt. Biddle, Ptl. Alexander, Ptl. Edwards and ACO Bencivengo participated in a Police Unity Tour ride from Asbury Park to Stafford Township. This ride helps raise awareness of Law Enforcement Officers who have died in the line of duty. 🇺🇲🚴♂💙 pic.twitter.com/CwRzyhpJCY
— Bordentown Township Police (@township_police) September 27, 2020
NJSP Photos
5th Annual NJ Fire Museum Open House & Firefighters Memorial Services
Mourners Honor Life Of Daniel Anderl, Celebrate His 'Gift Of Faith'
One thought on "2020 Police Unity Tour Bike Ride Held In NJ"
Pingback: Police Unity Tour Memorial Service And Blessing Of Riders – MidJersey.News
Categories Select Category Allentown (123) Area History (5) Burlington (169) Bass River (1) Bordentown City (1) Bordentown Twp (36) Browns Mills (5) Burlington City (8) Burlington Twp (5) Chesterfield (2) Columbus (1) Edgewater (1) Florence (2) Fort Dix (2) Mansfield (2) Mount Holly (4) Mount Laurel (5) New Hanover (12) North Hanover (5) Palmyra (1) Pemberton (2) Riverside (1) Roebling (1) Southampton (1) Vincentown (1) Westampton (2) Willingboro (4) Wrightstown (9) Business Spotlight (5) Cape May (4) Cape May (1) East Windsor (70) Editorial (10) Opinion (10) Equine (6) Events (6) Ewing (48) Farm (3) Farm and Garden (11) Equine (7) Farm (6) Garden (3) FFA (9) Fire and Emergency Service (13) Hamilton (325) High School (24) band (5) Graduation (2) Special Events (7) Hightstown (70) Hightstown-East Windsor (88) Hunterdon County (5) Flemington (1) Lambertville (1) West Amwell (1) Mercer County (1,362) East Windsor (88) Ewing (84) Hamilton (379) Hightstown (75) Hopewell (45) Lawrence (78) Pennington (23) Princeton (45) Robbinsville (322) Trenton (633) West Windsor (75) Middlesex County (252) Cranbury (15) East Brunswick (10) Edison (10) Helmetta (1) Jamesburg (3) Metuchen (1) Monroe Twp (21) New Brunswick (15) North Brunswick (18) Old Bridge (4) Piscataway (1) Plainsboro (11) Sayreville (1) South Brunswick (58) South Plainfield (2) South River (2) Spotswood (1) Woodbridge (10) MidJersey.news (9) Millstone (45) Monmouth County (443) Aberdeen (8) Allentown (114) Asbury Park (20) Atlantic Highlands (3) Avon By The Sea (1) Belmar (12) Bradley Beach (3) Brielle (5) Deal (2) Eatontown (8) Englishtown (9) Farmingdale (3) Freehold (70) Hazlet (4) Highlands (5) Holmdel (9) Howell (15) Keansburg (7) Keyport (5) Lincroft (3) Little Silver (3) Long Branch (11) Manalapan (25) Manasquan (3) Marlboro (9) Matawan (5) Middletown (18) Millstone (52) Neptune (14) Ocean (8) Oceanport (4) Red Bank (5) Roosevelt (5) Rumson (13) Sea Girt (1) Shrewsbury (1) Spring Lake Heights (1) Tinton Falls (1) Union Beach (6) Upper Freehold (98) Wall (14) New Egypt (25) Ocean County (283) Barnegat (1) Barnegat Light (1) Bay Head (4) Bayville (4) Beachwood (4) Berkeley (6) Brick (18) Jackson (49) Lacey (2) Lakehurst (7) Lakewood (21) Lavallette (1) Manahawkin (4) Manchester (11) Plumsted (26) Point Pleasant (17) Seaside Heights (10) Seaside Park (4) Ship Bottom (3) Stafford Township (3) Toms River (30) Other Towns (62) Outdoors (19) Fishing (16) Hunting (3) Plumsted Twp (19) Robbinsville (294) Roosevelt (9) Skiing Snowboarding (24) Somerset (3) Hillsborough (1) Sports (104) Baseball (9) Basketball (44) Cross Country (1) football (17) Ice Hockey (12) Running (4) Soccer (1) Tennis (1) Wrestling (14) State of NJ (95) Uncategorized (6) Upper Freehold (92) West Windsor (40)
Follow Mid Jersey News on Twitter
Supporters of Mid Jersey News
Dragonfly Design Studio, Allentown, NJ features many local artists. https://www.facebook.com/RuthDragonfly/
Dennis Symons Photography http://www.dennissymons.com
Washington Wellness Center, Robbinsville NJ https://washingtonwellnesscenter.com/
NJ State Police Mounted Unit Patrols State House Area On Horses
Lakewood Man Charged With Narcotics Distribution
Hamilton Township Celebrates Reverend Dr. Martin Luther King, Jr. Day with Scholarship Awards
Edison Man Sentenced For New Brunswick Man's Murder
Rep. Smith's Bill To Combat Anti-Semitism Becomes Law
AG Grewal, DEP Announce Lawsuit Against U.S. Government over Drinking Water Contamination from Military Bases' Use of Firefighting Foam
Asbury Park Teen Sentenced To 10 Years For Aggravated Assault In Shooting Near Brick Memorial High School In 2019
UPDATE: Bomb scare shuts down part of South Olden Avenue in Hamilton
NJ Sharing Network Foundation Announces New Board Officers to Advance Life-Saving Mission
BREAKING: Hamilton Police investigating possible bomb situation
BREAKING: Inmate Suffers Chemical Burns At Mercer County Correctional Center
Hamilton Township Free Virtual Job Fair Announced for March 16
Man arrested after burglary of Trent Jewelers in Hamilton
Mercer County Prosecutor's Detectives Arrest Trenton's H-Block in Operation Eight-Ball
Mayor Fried Swears In New Councilwoman Deborah Blakely


Now that's a truck! Just look at the massive grill on this thing! It must take one hell of a battery to power this beast. Fortunately, such batteries can be found if you know where to look. A battery store worth its salt will have what you need for any vehicle – including trucks, mopeds, scooters and more.


text:
Goodbye, elementary school. Hello, middle school
How NH schools are helping tweens make a successful transition to the middle grades, and how parents can help, too
Krysten Godfrey Maddocks,
More than 88% of American elementary school students move on to what is known as middle school, where they will learn to navigate a new building, meet new friends and teachers, and change classes independently.
All of this happens at a time when they are going through their own social and developmental changes, which may heighten their anxiety levels — and their parents'.
In New Hampshire last year, more than 30,000 students were enrolled in grades five through eight in the state's public schools. While only 1,830 of the state's 13,253 fifth-grade students moved up from an elementary school to a middle school, 8,693 of the state's 13,367 sixth-grade students attended school in a separate middle school building, according to the New Hampshire Department of Education.
Whether your child will enter middle school as a fifth- or sixth-grader this fall, most will adapt quickly thanks to the approaches many New Hampshire middle school teachers and administrators take to ensure a smooth transition.
The 'team' model
Many middle schools follow a "teaming" structure to build cohesiveness among students and teachers. Your new middle school student will not be wandering the halls alone, nor will they be mixed in with students in upper grades. Instead, they will be on a "team" with the same group of kids and teachers.
At one time, the middle school grades might have been referred to as "junior high." Today's middle schools aren't trying to mirror the high school model, but instead aim to address the unique needs of students in grades five through eight, said Lindsay Dube, dean of students for grades five and six at Dover Middle School.
"A middle school model focuses on the whole child and teaming. Every kid is part of a team that has the same four teachers. Those teachers are expected to be working together and providing a common educational experience for their students," she said.
Kim Parsons, an English language arts teacher at Gilbert Hood Middle School in Derry with 18 years of teaching experience, said her middle school divides groups of students into specific areas of the building where they all take classes with the same group of students and teachers.
"You have one set of teachers that you deal with and they are more familiar with you and build better relationships with you. We meet up to three times a week and talk about the kids," she said.
Adam Houghton, principal of Rochester Middle School, said that the team model at his school has been in place since it opened in 1992. With six elementary schools feeding into RMS, the team model takes a larger school environment and shrinks it a more manageable one. Instead of being one kid in a school of 950 students, you are a student on a team of 80 kids, he said.
"We are also developing a 'house' program where we put kids on a team for all three years they are here. Three teams fall under one house, and when you join that house, you know this is who will be my math teacher in sixth, seventh, and eighth grade,' he said.
"Conversely, it allows an eighth- grade teacher to look at incoming sixth-graders and understand who they are socially and emotionally, as well as academically."
Changing classes
The biggest change for most middle school students is switching classes for different subjects and building relationships with a few different teachers instead of just one, Dube said.
DMS fifth-graders may change classes for English language arts and math, and then for science and social studies, but they share the same two teachers for those two blocks of classes that take place at the beginning and end of the day. They move to their related arts classes (gym, art, band and chorus) in the middle of the day, Dube said.
In the sixth grade, students move between four different teachers and take their related arts classes at the end of the day.
At Gilbert Hood Middle School, sixth-graders change classes every 50 minutes and they don't have the same class at the same time each day. That means if your middle-schooler isn't a morning person, he or she won't suffer in one subject because they have trouble learning at a specific time of day.
Sixth-grade students at Rochester Middle School change classes, but the four classrooms they move to for their main subjects are next to one another. They leave the team area to take their related arts classes and have lunch.
Forgetting a locker combination can cause some middle school students' anxiety to spiral. In fact, it's such a common worry that practicing locker combinations is part of the sixth-grade orientation program at Gilbert H. Hood Middle School, Parsons said.
"We tell them we know it's frustrating and new but believe me, by the end of the week you'll have it," she said. "I know they dwell on it a lot, but it's usually not a problem after the first week."
Incoming middle school students "way over-obsess" about their lockers, Dube said, particularly about getting the combination right. In the end, teachers have a key to help them, if needed. And, teachers aid them in planning when they should visit their lockers.
"The expectation is that every kid comes in and grabs the stuff they need for their first two classes and then they can go back to their locker before related arts," she said.
In some cases, middle school students for the first time are interacting with peers from different parts of town — or different towns entirely. They will also meet new teachers and be responsible for learning the expectations of each. For example, their first-period English teacher might not be there at the end of the day to remind them that an assignment is due the following morning.
Friendships will evolve and change, and for some students that could open a whole new world. Houghton encourages parents to get their middle school student involved so that they can meet new friends and discover what they enjoy. RMS has several athletic and arts programs that are free and include a late bus that will bring students home after these activities end.
"I find the students who are more involved in these things do better academically and socially. They navigate middle school and school in general much better and make better connections with people in the building."
Dube agrees that getting your middle-schooler involved in something is essential to helping them feeling like part of a group. At Dover Middle School, fifth- and sixth-graders don't have the same opportunities to join sports teams as their older counterparts; however, any student can join track or cheerleading.
For a small fee, students can even participate in eight- to 10-week STEAM programs that offer courses such as fly fishing, cooking, and martial arts.
"The programs are right here so that if mom or dad is not out until 4 p.m., they can try different programs and meet others," she said.
Students also can meet kids outside of their teams every day at lunch and recess. At DMS, students can choose where they want to sit within the fifth grade. That way, if a best friend isn't on their team, they can still catch up.
Look for a special program
Amber Chandler is not only a middle school teacher with years of experience, but she also has a son entering middle school this fall. She serves as a board member for the Association for Middle Level Education, a membership organization dedicating to helping middle school educators reach every student, grow professionally and create great schools.
Now the coordinator for alternative education and interventions for the Frontier Central School District in Hamburg, N.Y, she began her career at Portsmouth High School in the 1990s. Since then, she's been recognized as the 2018 AMLE Educator of the Year and is the author of The Flexible SEL Classroom: Practical Ways to Build Social Emotional Learning in Grades 4-8.
Recognizing the need for programs that help students succeed in leaping from elementary school to middle school, Chandler began a voluntary pilot program called "Transitions." Parents can send their incoming sixth-graders to a week-long, half-day program to get to know the middle school building through scavenger hunts, learning how to fill out passes, and trying their locker combinations, among other activities. Best of all, they get to meet their fellow students before school starts.
"It's a program that's close to my heart. I have a daughter going into the ninth grade and she was thoroughly overwhelmed by the sheer number of people (in middle school). In her classes, she wasn't with the same kids she went to elementary school with and ended up in a cohort of kids from other elementary schools," Chandler said.
"In elementary school it's socially engineered so that no one is left out. In middle school, you walk into a cafeteria and pick out a seat. Even to adults, that's overwhelming. Transitions brings kids together from the different buildings, gives them a strategy for the first day of school, and brings their nerves down a lot."
Maturity levels differ among incoming middle school students, she said, so parents should be prepared for varying responses to the new freedoms their children are afforded.
For some the structure of elementary school is very comfortable, and middle school can feel overwhelming sometimes. Conversely, middle school kids are exposed to different subjects, like home economics, woodworking, and other electives — giving them a chance to grow and practice brand new skills.
Middle school is often a fresh opportunity for some kids, Dube said. Parents can remind them that it's a chance for a positive new beginning.
"Some kids already feel stereotyped. Meeting a whole new bunch of students, you get a fresh chance to reinvent yourself," she said.
Check with your child's middle school to see if they offer a similar program.
Stress communication at home and at school. Educators all agree that it's important for parents to frequently touch base with their children about how things are going, particularly early in the school year. If parents have any concerns, they are encouraged to check in with the school guidance office or their student's teacher. Parents should not be afraid to have those conversations, Houghton said, adding that addressing problems about a student's anxiety about fitting in or challenges with the academic aspects of middle school early on often deescalates issues before they become a real problem.
In middle school, students will need to also learn how to advocate for themselves and talk to adults in their building, Chandler said. Parents can help them become better communicators by encouraging them to be their own best advocates.
"I've had boys who don't speak to me until three-quarters through the year. I could have skipped giving them a paper, and they didn't tell me," she said.
Use the parent portal and other digital resources. Most schools use a parent portal, which allows you to log on and view a child's grades and assignments. Parents need not check in every day, Dube said, but they can use it to get a good perspective on how their child is doing well before missing assignments and poor grades become a problem.
Parents should also be aware of resources available to their children, such as study sites that teachers may have available to help support classwork, Chandler said.
Set boundaries on phone and social media use. Students have their own phones at younger ages now. They can be tempted to use them when they shouldn't — and use them inappropriately. It also can be difficult for some kids to not have a phone when their friends do. Parents should talk to their kids about social media and stress that what you post online does not ever really go away, Dube said.
"It's a state law… if social media (outside of school) is having an adverse effect in the building, a student is held responsible for it. So, if you are making fun of someone on Facebook Messenger, and a student comes into school upset because of it, it becomes a school issue and you can be punished for that in school now," she said.
Phone use should be avoided as often as possible, Houghton said. Social media can amplify conflict, he said, at a level of discussion that most young students aren't ready to handle. In addition, parents should be mindful of when and how often they text or communicate to their child via the phone, too.
"It's a problem, in my opinion," Parsons said. "There are consequences if they have them on. There are privacy issues if they are caught taking photos. They don't need it. A parent can call the school and there is a phone in every classroom."
Sleep is still important. Many parents stop monitoring bedtimes once the middle school years hit, which can be a problem, Chandler said. Many kids stay up too late playing video games or engaging with friends on social media. A good night's sleep is important, particularly because some middle school start times begin earlier than elementary school. An exhausted student won't perform as well as a well-rested one, she said.
Be aware of your child's stress level. Just because your child received straight A's in elementary school and seems to be doing well academically in middle school doesn't mean he or she doesn't still feel pressure to achieve. Chandler said she sees top students burning out all the time because they are recruited into everything — student council, honor societies, and other activities.
"You can't tell them to prioritize because they don't know what they want," she said. "There is pressure to please the adults in their lives, so it's important to remember that they are still young developmentally."
To help reduce this type of stress, parents can help their child pick and choose activities and should emphasize to their children that you can't do everything, and that perfection is not expected in every facet of their lives.
Let your kids know they are not alone. Every new middle-schooler is navigating through the same waters, no matter how confident they may appear to be, Parsons said. While they think it's all about them, the person sitting next to them is new to the experience, too.
"We are all a community, we are all in this together, and we will figure it out," Parson tells her students.
Teachers are ready to support them from day one, too, Dube said. Before school starts, DMS teachers have met with elementary school teachers to try to get an assessment on what students might need.
Chandler reminds parents that kids are amazingly resilient, and many times are underestimated with the amount they are capable of — both emotionally and academically.
"Kids today are far kinder and far better at understanding kids with disabilities," she said. "They are very sophisticated about topics related to sexuality, race and inclusion, things that weren't even in our heads at their ages."
Krysten Godfrey Maddocks has worked as a journalist and in marketing roles throughout the Granite State. She now regularly writes for New-England based higher education, business, and technology organizations.
NH Community Colleges: The affordable choice for quality higher education
Spark Academy is igniting innovation
Featured Preschools and Early Education Centers


Home / Marketing / Measuring Your Marketing ROI: Are You "Busy" or Actually "Productive"?
Click-through rates, website conversions, Twitter followers: Watching the numbers tick up can seem like progress, and tracking them can be a job in itself. But while charting traffic to your PPC, email campaigns, website, or your social media outlets can keep you busy, is it actually producing results for your company? According to a research study, 82 percent of marketers say their executives want every campaign measured, but less than a third can effectively evaluate each channel's ROI. That means if your company can effectively measure your marketing ROI, you'll be blowing two-thirds of your competition out of the water. More good news: it doesn't take a data scientist to do it.
Here's the bad news: Anything worth doing takes effort and foresight, and crafting the perfect ROI formula is no exception. Learning what to measure, when to measure, and how to measure takes the buy-in of not only the marketing team but the leadership of your organization. The key to creating value with your marketing strategy is aligning marketing analytics with your company's financial goals, and using predictive modeling to adapt your campaigns to reflect those goals. In other words, does that click on your email campaign end in a sale or not, and how do you ensure more of the former in the future?
Only 48 percent of marketers are using web analytics tools to measure marketing campaign effectiveness. (Riots in the streets should begin now.) Again, see the upside here: if you're measuring return on marketing investment, and using the data to hone your strategies, you're doing better than most of your competition. If you're not, or not feeling too confident about your methods, well, keep reading.
WEBSITE CONVERSIONS: Set up conversion tracking in Google AdWords and/or goals in Google Analytics, which can be imported into AdWords. You can use both at the same time, or just one. AdWords offers useful traffic-focused metrics—but not if they're not set up in the first place.
CALL TRACKING: Use different phone numbers in your ads and landing pages, and review incoming calls to see which incoming leads are converting.
CRM INTEGRATION: Sync these valuable leads with your CRM, so you can track which campaign brought you which client. At which stage in the home buyer's journey are they: "just looking" or ready to go? Details like that can help you target your marketing even more effectively.
DYNAMIC REVENUE TRACKING: Better yet, place a value on specific conversions so you can compare revenue and get your ROI right in Google AdWords.
Divide and categorize your marketing efforts as those which produce direct and indirect ROI; both are valuable, but in different ways.
DIRECT ROI: Running an offer with a coupon or a tracking phone number that can produce measurable results is marketing 101. Check your efforts here.
INDIRECT ROI: More difficult to quantify, but no less important. For example, improved brand messaging may have been integrated into a new PPC campaign, which generated x results. This feedback could help you better identify your target client, choose distribution methods, and more.
Do you know which metrics actually matter to your boss or C-level executives? In this cheat sheet of metrics, we'll share the six metrics that do.
Testing is the exception to the "more is not always more" commandment above. Testing is learning. Experiment frequently with different methods, or an action versus no action at all. Conversion rate optimization (CRO) testing helps you see which of your efforts are the most effective, and if there's room for improvement on a current campaign.
VISITOR ACQUISITION EFFICIENCY: Measure all streams of traffic to your website to see which result in the most sales. This report may show that referral sources have generated more leads than your weekly emails, but your weekly emails may have a higher lead conversion rate; therefore, they are more valuable to your website.
PAGE EFFICIENCY ANALYSIS: Test specific website pages to see which provide content that is better at converting visitors. As an added bonus, if you can add a value and a cost to each conversion, then you can really get insight into your marketing ROI.
Marketing professionals have struggled with metrics and measurement for as long as the profession has existed. Merchant and marketing pioneer John Wannamaker summed up the challenge when he said "Half the money I spend on advertising is wasted; the trouble is, I don't know which half." Only if Mr. Wannamaker was alive today.
The modern marketing professional is hardly strapped for data. Thanks to advanced platforms like Omniture, Google Analytics, Facebook Insights, and Hubspot, we can now get closer to an ROI. But with so much access to marketing data, the bar is only getting higher to show value to the business.
Looking for help measuring and optimizing marketing performance? Subscribe to Simply180 Insights, our weekly digest. You can also take advantage of our complimentary analytics assessment. Contact us and one of our super smart marketing analysts will get back to you with information we need to get started.


text:
 //
//  AAPLCameraViewControllerDelegate.m
//  DevChat
//
//  Created by Per Kristensen on 02/05/2017.
//  Copyright © 2017 Per Dalsgaard. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol AAPLCameraViewControllerDelegate <NSObject>

-(void)shouldEnableRecordUI:(BOOL)enable;
-(void)shouldEnableCameraUI:(BOOL)enable;
-(void)canStartRecording;
-(void)recordingHasStarted;
-(void)videoRecordingComplete:(NSURL*)videoURL;
-(void)videoRecordingFailed;
-(void)snapshotTaken:(NSData*)snapshotData;
-(void)snapshotFailed;

@end