National Geographic grantee Riley Arthur is documenting the Erased of Slovenia- 200,000 non-ethnic Slovenian residents who were not automatically granted citizenship after the country split from Yugoslavia in 1991. Over two decades later, the community is still fighting for documentation. These stories are about the Erased and the places they live.
December is an amazing time to be in Slovenia. Tourists of the coast have long left their resorts and lost their tans. The Julian Alps practically sparkle with fresh snow, as local and Italian skiers take notice. The transformed capital of Ljubljana roars with activity.
The festive holiday decorations have a cosmic theme. LED lit comets, planets and shooting stars fill the walkways and squares. I was skeptical when the shooting stars were being hung, as they looked a lot like tadpoles or q-tips. But when illuminated along with the other thematic lights, it really was a sight to see.
The smell of roasting chestnuts fill the air. One can purchase piping hot paper bags filled with these nuts for as low at €2, at almost any hour of day or night. Hanging from the trees of Congress Square, angels crafted by local school children rock in the cool breeze. A seasonal ice rink is open to children, which appear to have no strict bedtime or curfew this month.
Each night of December hundreds of people gather until the wee hours of the morning hovering around the many temporary wooden huts and stands. Sipping hot med or mulled wine, chatting and eating a kranjwurst (spiced sausage) fresh off the grill.
A Roma band busks in competition with the bass heavy boomboxes blasting year's past Euro Vision songs. The merry sea of people drink out of scalding plastic Dixie cups on the verge of melting. They crowd around space heaters and ashtrays and drink their libations as quickly as temperatures permit, in an effort to stay warm.
The center of Ljubljana at night in December is a place to dress up, to see and be seen. With multiple local holidays in November and December, it seems as if a majority of the population has taken extended holiday vacations. In line for a glass of mulled locally made wine, it's easy to see what they have found to do with their vacation time. It's beautiful, lively and I am happy to be a part of it!
When I asked my Slovene friends who live in Ljubljana for a family recipe for mulled wine they explained that they don't make it themselves, because they enjoy going into the city for the social gathering. So I found this recipe for Slovenian mulled wine online.
Boil the water, spices and sugar together.
Add the 2 sliced lemons, stir and leave to stand for 15-20 minutes.
Add the wine and the orange liqueur, heat gently taking care not to let it boil.
Strain into glasses and serve hot with the lemon and orange slices.
Photographer, islander, environmentalist, gelato eater.


Western State Capitals US To Label States And Pinterest | Maps USA western state capitals test. western us state capitals. quiz western us state capitals.
Western State Capitals Label US Printout Com. Western State Capitals US States Map Quiz Printout Com. Western State Capitals The States Abbreviations ProProfs Quiz. Western State Capitals The Of States I Labeling Interactive PurposeGames. Western State Capitals States And Pack By Laurie Amy Zundel TpT. Western State Capitals Test Your Geography Knowledge USA Quiz. Western State Capitals SONG The States Song Of West Classroom. Western State Capitals Map Of The United States Worksheet. Western State Capitals The U S In West Map Quiz Game. Western State Capitals Americans Try Labeling Midwestern States United. Western State Capitals SW States Capital And Abbreviation PurposeGames. Western State Capitals West Region. Western State Capitals US To Label States And Pinterest. Western State Capitals Test Your Geography Knowledge USA Quiz. Western State Capitals Southwestern US States Map Quiz Printout Com. Western State Capitals Region States And Games Free Programs Utilities.


Ian Schrager's rising global influence lands in Spain with the arrival of his newest venture in the growing EDITION empire: The Barcelona EDITION.
Four Seasons Maui, the island's only five-star, five-diamond resort, has unveiled a full calendar of thoughtfully tailored programming in anticipation of this fall's popular Couples Season.
Keio Plaza Hotel Tokyo will renovate 10 current universal design rooms and open 3 new luxury type universal rooms in December, 2018 by spending JPY400 million.
Excellence Oyster Bay, the latest venture from the all-inclusive luxury hospitality leaders, Excellence Group, has officially opened its doors in Montego Bay, Jamaica.
the Ascend Hotel Collection is the first and largest global soft brand, featuring best-in-class, boutique, unique, and historic hotels and resorts.
Scandic Hotels has signed a long-term lease agreement with Bane NOR Eiendom and Utstillingsplassen Eiendom to operate a new hotel in the Nyhavna area of Trondheim.
The Mayfair offers a boutique experience for guests who appreciate good food and drink, rich historic character and vibrant creativity.
Owned by PT. Alam Bali International, the hotel is the southernmost Marriott hotel on the island and overlooks Bali's Bukit peninsula, best known for the cliff-fringed coastlines.
Ideally located in the city's exclusive Uptown District, the hotel will be near several of Houston's most popular sites including The Galleria, Texas' largest luxury shopping destination, and the Texas Medical Center, the largest medical center in the world.
Vail Resorts will acquire Triple Peaks, LLC, the parent company of Okemo Mountain Resort in Vermont, Mount Sunapee Resort in New Hampshire, and Crested Butte Mountain Resort in Colorado, In a separate transaction, Vail Resorts will acquire Stevens Pass Resort in Washington State.
The Bodrum EDITION. Schrager, in partnership with Marriott International, acts to redefine the contemporary luxury hotel experience with his expanding global influence.
When you approach Marrakesh at the end of a long flight, the landscape from above is like a giant red city.


At RE-Tech UK we can offer new IoT solutions for Asset Location to the commercial and public sector by using state of the art, innovative technology. With a wide variety of devices available, we can ensure that we can track almost anything, anywhere! Whether your Asset is powered or non-powered, we have a solution that will fit your needs and your budget!


text:
Emiliano Dei (born 13 January 1971 in Rome, Italy) is an Italian footballer. He plays as a goalkeeper. He is currently playing for Carrarese Calcio.

See also
Football in Italy
List of football clubs in Italy

References

External links
 Emiliano Dei's profile on San Marino Calcio's official website

1971 births
Italian footballers
Living people
Benevento Calcio players
S.S.D. Varese Calcio players
Rimini F.C. 1912 players
A.S.D. Victor San Marino players
Association football goalkeepers
U.S. Castrovillari Calcio players

redpajama_set_name: RedPajamaWikipedia


Duplicate or Deform objects along a path, with a bunch of extra features!
"very cool .... thank you very much"
"Hello ! Thakns for the script ! I've some i..."
"As Ilyes DAOUDI, I have non equal destribut..."
"thank you, this improves my layouting workf..."
Can't get this to work with Maya 2016; no panel or sidebar appears when trying it. Running via source "d:/work/scripts/downloaded/DupAlongPathToolbox.mel"; Any ideas?
I'll try to get a new update out in the next few weeks. It should work for 2015; a common problem people will see is that running the script at first appears to not do anything, but the window should show up as a buried tab on the far right. I will make it show up on top when you run it in the next update. I haven't tested 2016 compatibility yet, but I'll check it out as soon as I update to the new Maya. Might actually be the same problem in 2016? Thanks for all the great feedback!
I thought it wasn't working in 2015 but it was creating it as a sidebar. Thanks, very useful.


Welcome to the home of Calm Radio! We are a music streaming service with over 250 channels including relaxation, world, contemporary, country, pop and rock, ambient and the largest online collection of classical music. We offer the highest quality audio and have a unique Multi-Mixer which allows you to mix up to 3 atmospheres with your music. We specialize in sleep therapy, relaxation, meditation, yoga and can mitigate the symptoms of those who suffer from tinnitus. Come check us out for FREE or purchase one of our extremely competitively price memberships. Uncomplicate your life with Calm Radio today.
Listen to Calm Radio Fado on your smartphone for free with the Android or iOS application!


text:
Héroux-Devtek's Laval Landing Gear Division employees ratify four-year agreement
April 9, 2008, Longeuil, Que. - Héroux-Devtek Inc. today announced that its 140 unionized Landing Gear Division employees at the Laval, Québec facility have voted in favour of a new long-term collective agreement.
April 9, 2008, Longeuil, Que. – Héroux-Devtek Inc., a
leading Canadian manufacturer of aerospace and industrial products, today
announced that its 140 unionized Landing Gear Division employees at the Laval,
Québec facility have voted in favour of a new long-term collective agreement.
"We are delighted that a positive spirit of negotiations prevailed
throughout discussions. This is a win-win situation in the context of
continuous pressure from the high Canadian dollar as it provides both
stability for the business and security for our employees," stated
Gilbert Guérin, Héroux-Devtek's Corporate Director, Human Resources.
Workers voted more than 75% in favour of the four-year contract which
extends through December 31, 2011. Workers involved are affiliated with
(AIMTA) Association internationale des machinistes et des travailleurs et
travailleuses de l'aérospatiale.
The Laval facility manufactures, repairs and overhauls small components
for landing gear systems and hydraulic flight control actuators. It also
houses the company's test facility for aircraft landing gears.
Héroux-Devtek's employees ratify 3-year agreement
Héroux-Devtek's employees ratify three-year agreement
Heroux-Devtek delivers its first 777 landing gear set to Boeing
Heroux-Devtex completes final assembly of Boeing 777 landing gear
Embraer announces Embraer MSJ & Embraer MLJ executive jets
Standard Aero signs agreement with Gm Aero Support for T56 representation in Europe

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Plot partial stacked bar chart in pandas I have a DataFarme df in the following form. I want to plot a graph with 4-pair bars. It means for each of the four days, there are two bars representing 0 and 1. For both of the 2 bars, I want to have a stacked bar.So each bar have 3 colors, representing <30, 30-70 and >70. I tried to use the "stacked = True" but a single bar with 6 colors was plotted instead of paired-bars. Can you anyone please help Thanks a lot.
Score          <30       30-70      >70
Gender         0    1    0    1   0     1
2017-07-09    23   10   25   13   12   21
2017-07-10    13   14   12   14   15   10
2017-07-11    24   25   10   15   20   15
2017-07-12    23   17   20   17   18   17

A: You can use bottom parameter.
Here is the way to go
>> import matplotlib.pyplot as plt
>> import numpy as np
>> import pandas as pd
>>
>> columns = pd.MultiIndex.from_tuples([(r, b) for r in ['<30', '30-70', '>70']
>>                                             for b in [0, 1]])
>> index = ['2017-07-%s' % d for d in ('09', '10', '11', '12')]
>> df = pd.DataFrame([[23,10,25,13,12,21], [13,14,12,14,15,10],
>>                    [24,25,10,15,20,15], [23,17,20,17,18,17]],
>>                    columns=columns, index=index)
>>
>> width = 0.25
>> x = np.arange(df.shape[0])
>> xs = [x - width / 2 - 0.01, x + width / 2 + 0.01]
>> for b in [0, 1]:
>>   plt.bar(xs[b], df[('<30', b)], width, color='r')
>>   plt.bar(xs[b], df[('30-70', b)], width, bottom=df[('<30', b)], color='g')
>>   plt.bar(xs[b], df[('>70', b)], width, bottom=df[('<30', b)] + df[('30-70', b)], color='b')
>> plt.xticks(x, df.index)
>> plt.show()

redpajama_set_name: RedPajamaStackExchange


text:
SBA App for Small-Business Resources On the Go
Sept. 15, 2011, 9:15 AM UTC / Source: Entrepreneur.com
By Dan O'Shea
Mobile treatment: Vanessa Williams of Flawless Group. Photo© Natalie Brasington
Vanessa Williams had an idea for bringing a bit of Beverly Hills to Buffalo: a luxury concierge and spa service geared toward a working-class segment of the market that she believed was underserved.
"Everyone needs these types of services, whether it's a facial, a massage or having someone get groceries for you," says Williams, founder and CEO of Flawless Group, which is based in Amherst, N.Y., a suburb of Buffalo.
But when Williams was researching the business before launching in 2006, she found a dearth of resources she could draw on for useful information.
"If you did an internet search for 'concierge in Buffalo,' you would not have come up with much," she says. "So I was on my own."
For guidance on starting her business, Williams turned to her local SBA office. The information she gained from the SBA was invaluable, she says.
But as a mobile entrepreneur--Williams spends entire days on the go bringing her services to client locations and running errands for customers--she says it would have made a big difference to have those resources in the palm of her hand through a mobile phone app.
When Williams was starting Flawless Group, there was no such app. Now, there is. The SBA, with development help from Palo Alto Software, launched its mobile app for the iPhone a few months ago.
According to Penny Pickett, head of the SBA's entrepreneurial development office, the app gives entrepreneurs access to SBA video content, provides social media alerts and a startup cost calculator and connects users to about 2,000 SBA and Resource Partner locations nationwide. The information available is drawn from the SBA's 68 local-level district offices, as well as its small-business development centers in every state, its 110 business assistance centers targeting women and more than 350 local chapters of SCORE.
"This is just the beginning," Pickett says. "We are going to put more of our resources on the app, things like disaster recovery information, and maybe in the future connect app users with our lenders and other capital resources."
Williams managed to start her business successfully without the mobile assist, but she's grateful to have it now. She says she uses the app frequently as she looks to take her business to the next level.
"I could have used a lot of this years ago when I was starting out, but now my business is growing and I'm looking at maybe hiring employees," she says. "I like all the video information you can get through app, and there are a lot of great links, too. It's tough to have time to find all of that when you're on the go."
Williams says the free app also helps entrepreneurs save money they would otherwise spend buying desktop software. "I'd definitely recommend the app to anyone starting a new business," she says.
Pickett says the SBA is trying to reach the people that need the agency most. "When you start a business, sometimes you think you're doing it alone," she says. "You're not."
This article originally posted on Entrepreneur.com
Dan O'Shea


Wondering what makes the Herbal Detox Program work? Here is a breakdown of the science upon which Dr. Zhou used as the foundation to create the Herbal Detox Program.
While previously viewed as a moral failing, today, scientists recognize that addiction is a chronic disease that changes both the brain's structure and overall function. Recent brain imaging studies on individuals who struggle with addiction have found that the areas of the brain that control decision-making, judgment, learning and memory, and behavior/impulse control had undergone physical changes as a result of previous drug use. However, the most impactful change drug use has on the brain's overall function is the altering of its reward center circuitry, which is vital in creating the feeling of pleasure.
Have you ever noticed that when you eat a delicious dessert or win a prize, you get the same sense of pleasure? This is due to the fact that the brain processes all dopamine producing activities in the same way. As a result of this standardized system, the brain categorizes psychoactive drug use as a positive behavior and will create a conditioned response to repeat the behavior in the future. All pleasure producing activities trigger the release of dopamine, the neurotransmitter that regulates mood and enhances the sensation of pleasure. Unlike a tasty dessert, drugs cause the brain to produce 2 to 10 times more than the normal amount of dopamine, which causes the euphoric high associated with drug use. However, the body can only handle a certain amount of dopamine, and it will begin to reduce dopamine production in the body, leaving the individual unable to experience pleasure. At this stage, the drug user's limbic system has been altered, and the neuron receptors within the body that signal to the brain's rewards center are unable to function since the drugs have altered their structure. This structural change is the one aspect of addiction that is not being treated in standard rehabilitation programs. After discovering this missing link, Dr. Zhou created the Herbal Detox Program.
Dr. Zhou's Herbal Detox Program provides a holistic approach to drug addiction treatment. The main goal of the Herbal Detox Program is to remove the toxicity created within the body from drug use, and to rehabilitate the brain's structure and overall function to its pre-drug use state. Dr. Zhou uses a combined approach, integrating Western and traditional Chinese medical philosophy, in targeted treatments, to subdue the patient's withdrawal symptoms and cravings. Dr. Zhou's unique herbal formula is the real difference maker in the Herbal Detox Program, as this handcrafted potent blend has the ability to go directly across the blood-brain barrier, which allows it to remove toxic buildup and simultaneously work to restore functionality to the drug-altered parts of the brain.
Dr. Zhou has practiced internal medicine for over thirty years, and through his experience, he has learned the importance of treating a patient's whole body, not just a problem area, in order to improve the patient's overall well-being. In his drug addiction program, the Herbal Detox Program, he uses the same ideology, which is why he performs a full assessment of the patient's physical and mental state. Through his extensive research and experience, Dr. Zhou found that one of the most commonly reported reasons why people begin using drugs is to manage the pain or discomfort from an improperly or untreated physical injury or psychological issue. To combat this, Dr. Zhou has made acupuncture and other Traditional Chinese Medicinal treatments a cornerstone in the Herbal Detox Program, which results in patients leaving the program with their full health restored. Through his extensive research, thirty years of experience, and passion to help his patients reach a full recovery, Dr. Zhou has established a drug addiction treatment program like no other in the field. His individualized approach and unique herbal formulas are what make the Herbal Detox Program so successful. Dr. Zhou is always looking to help more patients through their journey to recovery. If you or a loved one is currently battling drug addiction, take the first step and call our office today at 754-220-6799 to enroll in this life saving program.


text:
Deploy Action Readme
===========================

---------------------------
Table of contents:

  * [Help for Deploy Action](#user-content-help-for-deploy-action)
  * [Print the help for package](#user-content-print-the-help-for-package)
  * [Print the help for filters](#user-content-print-the-help-for-filters)
  * [Print the help for options](#user-content-print-the-help-for-options)
  * [Deploy an action example 1](#user-content-deploy-an-action-example-1)
  * [Deploy an action example 2](#user-content-deploy-an-action-example-2)
  * [Deploy an action example 3](#user-content-deploy-an-action-example-3)

---------------------------

# Help for Deploy Action

  * Print the help for deploy_action.py
  * All scripts in bin/ will supply help if -h is on the command line
  * If passing in a parameter with a space or a special character, you need to surround it with quotes properly. On Windows this means double quotes. On Linux/Mac, this means single or double quotes, depending on what kind of character escaping you need.
  * If running this script on Linux or Mac, use the python scripts directly as the bin/deploy_action.py
  * If running this script on Windows, use the batch script in the winbin/deploy_action.bat so that python is called correctly.

```bash
deploy_action.py -h
```

```
usage: deploy_action.py [-h] [-u USERNAME] [-p PASSWORD]
                        [--session_id SESSION_ID] [--host HOST] [--port PORT]
                        [-l LOGLEVEL] [--debugformat] [--debug_method_locals]
                        [--record_all_requests] [--stats_loop_enabled]
                        [--http_auth_retry]
                        [--http_retry_count HTTP_RETRY_COUNT]
                        [--pytan_user_config PYTAN_USER_CONFIG]
                        [--force_server_version FORCE_SERVER_VERSION] [--run]
                        [--no-results | --results] [-k PACKAGE]
                        [-f ACTION_FILTERS] [-o ACTION_OPTIONS]
                        [--start_seconds_from_now START_SECONDS_FROM_NOW]
                        [--expire_seconds EXPIRE_SECONDS] [--package-help]
                        [--filters-help] [--options-help] [--file REPORT_FILE]
                        [--dir REPORT_DIR]

Deploy an action and save the results as a report format

optional arguments:
  -h, --help            show this help message and exit

Handler Authentication:
  -u USERNAME, --username USERNAME
                        Name of user (default: None)
  -p PASSWORD, --password PASSWORD
                        Password of user (default: None)
  --session_id SESSION_ID
                        Session ID to authenticate with instead of
                        username/password (default: None)
  --host HOST           Hostname/ip of SOAP Server (default: None)
  --port PORT           Port to use when connecting to SOAP Server (default:
                        443)

Handler Options:
  -l LOGLEVEL, --loglevel LOGLEVEL
                        Logging level to use, increase for more verbosity
                        (default: 0)
  --debugformat         Enable debug format for logging (default: False)
  --debug_method_locals
                        Enable debug logging for each methods local variables
                        (default: False)
  --record_all_requests
                        Record all requests in
                        handler.session.ALL_REQUESTS_RESPONSES (default:
                        False)
  --stats_loop_enabled  Enable the statistics loop (default: False)
  --http_auth_retry     Disable retry on HTTP authentication failures
                        (default: True)
  --http_retry_count HTTP_RETRY_COUNT
                        Retry count for HTTP failures/invalid responses
                        (default: 5)
  --pytan_user_config PYTAN_USER_CONFIG
                        PyTan User Config file to use for PyTan arguments
                        (defaults to: ~/.pytan_config.json) (default: )
  --force_server_version FORCE_SERVER_VERSION
                        Force PyTan to consider the server version as this,
                        instead of relying on the server version derived from
                        the server info page. (default: )

Deploy Action Options:
  --run                 Run the deploy action, if not supplied the deploy
                        action will only ask the question that matches
                        --filter and save the results to csv file for
                        verification (default: False)
  --no-results          Do not get the results after starting the deploy
                        action
  --results             Get the results after starting the deploy action
                        (default) (default: True)
  -k PACKAGE, --package PACKAGE
                        Package to deploy action with, optionally describe
                        parameters, pass --package-help to get a full
                        description (default: )
  -f ACTION_FILTERS, --filter ACTION_FILTERS
                        Filter to deploy action against; pass --filters-helpto
                        get a full description (default: [])
  -o ACTION_OPTIONS, --option ACTION_OPTIONS
                        Options for deploy action filter; pass --options-help
                        to get a full description (default: [])
  --start_seconds_from_now START_SECONDS_FROM_NOW
                        Start the action N seconds from now (default: None)
  --expire_seconds EXPIRE_SECONDS
                        Expire the action N seconds after it starts, if not
                        supplied the packages own expire_seconds will be used
                        (default: None)
  --package-help        Get the full help for package string (default: False)
  --filters-help        Get the full help for filters strings (default: False)
  --options-help        Get the full help for options strings (default: False)

Report File Options:
  --file REPORT_FILE    File to save report to (will be automatically
                        generated if not supplied) (default: None)
  --dir REPORT_DIR      Directory to save report to (current directory will be
                        used if not supplied) (default: None)
```

  * Validation Test: exitcode
    * Valid: **True**
    * Messages: Exit Code is 0

  * Validation Test: noerror
    * Valid: **True**
    * Messages: No error texts found in stderr/stdout

[TOC](#user-content-toc)

# Print the help for package

```bash
bin/deploy_action.py -u Administrator -p 'Tanium2015!' --host 10.0.1.240 --port 443 --loglevel 1 --package-help
```

```
PyTan v2.1.6 Handler for Session to 10.0.1.240:443, Authenticated: True, Platform Version: 6.5.314.4301
++ Deploying action:
{
  "action_filters": [],
  "action_options": [],
  "expire_seconds": null,
  "filters_help": false,
  "get_results": true,
  "options_help": false,
  "package": "",
  "package_help": true,
  "report_dir": null,
  "report_file": null,
  "run": false,
  "start_seconds_from_now": null
}

Error occurred:
Package Help
============

Supplying package defines what package will be deployed as part of the
action.

A package string is a human string that describes, at a minimum, a
package. It can also optionally define a selector for the package,
and/or parameters for the package. A package must be provided as a string.

Examples for package
---------------------------------

Supplying a package:

    'Distribute Tanium Standard Utilities'

Supplying a package by id:

    'id:1'

Supplying a package by hash:

    'hash:123456789'

Supplying a package by name:

    'name:Distribute Tanium Standard Utilities'

Package Parameters
------------------

Supplying parameters to a package can control the arguments
that are supplied to a package, if that package takes any arguments.

Package parameters must be surrounded with curly braces '{}',
and must have a key and value specified that is separated by
an equals '='. Multiple parameters must be seperated by
a comma ','. The key should match up to a valid parameter key
for the package in question.

If a parameter is supplied and the package doesn't have a
corresponding key name, it will be ignored. If the package has
parameters and a parameter is NOT supplied then an exception
will be raised, printing out the JSON of the missing paramater
for the package in question.

Examples for package with parameters
------------------------------------

Supplying a package with a single parameter '$1':

    'Package With Params{$1=value1}'

Supplying a package with two parameters, '$1' and '$2':

    'Package With Params{$1=value1,$2=value2}'
```

```STDERR
Traceback (most recent call last):
  File "/Users/jolsen/gh/pytan/lib/pytan/binsupport.py", line 2687, in process_deploy_action_args
    response = handler.deploy_action(**obj_grp_args)
  File "/Users/jolsen/gh/pytan/lib/pytan/handler.py", line 972, in deploy_action
    pytan.utils.check_for_help(kwargs=kwargs)
  File "/Users/jolsen/gh/pytan/lib/pytan/utils.py", line 2082, in check_for_help
    raise pytan.exceptions.PytanHelp(help_out)
PytanHelp:
Package Help
============

Supplying package defines what package will be deployed as part of the
action.

A package string is a human string that describes, at a minimum, a
package. It can also optionally define a selector for the package,
and/or parameters for the package. A package must be provided as a string.

Examples for package
---------------------------------

Supplying a package:

    'Distribute Tanium Standard Utilities'

Supplying a package by id:

    'id:1'

Supplying a package by hash:

    'hash:123456789'

Supplying a package by name:

    'name:Distribute Tanium Standard Utilities'

Package Parameters
------------------

Supplying parameters to a package can control the arguments
that are supplied to a package, if that package takes any arguments.

Package parameters must be surrounded with curly braces '{}',
and must have a key and value specified that is separated by
an equals '='. Multiple parameters must be seperated by
a comma ','. The key should match up to a valid parameter key
for the package in question.

If a parameter is supplied and the package doesn't have a
corresponding key name, it will be ignored. If the package has
parameters and a parameter is NOT supplied then an exception
will be raised, printing out the JSON of the missing paramater
for the package in question.

Examples for package with parameters
------------------------------------

Supplying a package with a single parameter '$1':

    'Package With Params{$1=value1}'

Supplying a package with two parameters, '$1' and '$2':

    'Package With Params{$1=value1,$2=value2}'
```

  * Validation Test: notexitcode
    * Valid: **True**
    * Messages: Exit Code is not 0

[TOC](#user-content-toc)

# Print the help for filters

```bash
bin/deploy_action.py -u Administrator -p 'Tanium2015!' --host 10.0.1.240 --port 443 --loglevel 1 --filters-help
```

```
PyTan v2.1.6 Handler for Session to 10.0.1.240:443, Authenticated: True, Platform Version: 6.5.314.4301
++ Deploying action:
{
  "action_filters": [],
  "action_options": [],
  "expire_seconds": null,
  "filters_help": true,
  "get_results": true,
  "options_help": false,
  "package": "",
  "package_help": false,
  "report_dir": null,
  "report_file": null,
  "run": false,
  "start_seconds_from_now": null
}

Error occurred:
Filters Help
============

Filters are used generously throughout pytan. When used as part of a
sensor string, they control what data is shown for the columns that
the sensor returns. When filters are used for whole question filters,
they control what rows will be returned. They are used by Groups to
define group membership, deploy actions to determine which machines
should have the action deployed to it, and more.

A filter string is a human string that describes, a sensor followed
by ', that FILTER:VALUE', where FILTER is a valid filter string,
and VALUE is the string that you want FILTER to match on.

Valid Filters
-------------

    '<'
        Help: Filter for less than VALUE
        Example: "Sensor1, that <:VALUE"

    'less'
        Help: Filter for less than VALUE
        Example: "Sensor1, that less:VALUE"

    'lt'
        Help: Filter for less than VALUE
        Example: "Sensor1, that lt:VALUE"

    'less than'
        Help: Filter for less than VALUE
        Example: "Sensor1, that less than:VALUE"

    '!<'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that !<:VALUE"

    'notless'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that notless:VALUE"

    'not less'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that not less:VALUE"

    'not less than'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that not less than:VALUE"

    '<='
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that <=:VALUE"

    'less equal'
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that less equal:VALUE"

    'lessequal'
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that lessequal:VALUE"

    'le'
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that le:VALUE"

    '!<='
        Help: Filter for not less than or equal to VALUE
        Example: "Sensor1, that !<=:VALUE"

    'not less equal'
        Help: Filter for not less than or equal to VALUE
        Example: "Sensor1, that not less equal:VALUE"

    'not lessequal'
        Help: Filter for not less than or equal to VALUE
        Example: "Sensor1, that not lessequal:VALUE"

    '>'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that >:VALUE"

    'greater'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that greater:VALUE"

    'gt'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that gt:VALUE"

    'greater than'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that greater than:VALUE"

    '!>'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that !>:VALUE"

    'not greater'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that not greater:VALUE"

    'notgreater'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that notgreater:VALUE"

    'not greater than'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that not greater than:VALUE"

    '=>'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that =>:VALUE"

    'greater equal'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that greater equal:VALUE"

    'greaterequal'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that greaterequal:VALUE"

    'ge'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that ge:VALUE"

    '!=>'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that !=>:VALUE"

    'not greater equal'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that not greater equal:VALUE"

    'notgreaterequal'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that notgreaterequal:VALUE"

    '='
        Help: Filter for equals to VALUE
        Example: "Sensor1, that =:VALUE"

    'equal'
        Help: Filter for equals to VALUE
        Example: "Sensor1, that equal:VALUE"

    'equals'
        Help: Filter for equals to VALUE
        Example: "Sensor1, that equals:VALUE"

    'eq'
        Help: Filter for equals to VALUE
        Example: "Sensor1, that eq:VALUE"

    '!='
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that !=:VALUE"

    'not equal'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that not equal:VALUE"

    'notequal'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that notequal:VALUE"

    'not equals'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that not equals:VALUE"

    'notequals'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that notequals:VALUE"

    'ne'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that ne:VALUE"

    'contains'
        Help: Filter for contains VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that contains:VALUE"

    'does not contain'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that does not contain:VALUE"

    'doesnotcontain'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that doesnotcontain:VALUE"

    'not contains'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that not contains:VALUE"

    'notcontains'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that notcontains:VALUE"

    'starts with'
        Help: Filter for starts with VALUE (adds .* after VALUE)
        Example: "Sensor1, that starts with:VALUE"

    'startswith'
        Help: Filter for starts with VALUE (adds .* after VALUE)
        Example: "Sensor1, that startswith:VALUE"

    'does not start with'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that does not start with:VALUE"

    'doesnotstartwith'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that doesnotstartwith:VALUE"

    'not starts with'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that not starts with:VALUE"

    'notstartswith'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that notstartswith:VALUE"

    'ends with'
        Help: Filter for ends with VALUE (adds .* before VALUE)
        Example: "Sensor1, that ends with:VALUE"

    'endswith'
        Help: Filter for ends with VALUE (adds .* before VALUE)
        Example: "Sensor1, that endswith:VALUE"

    'does not end with'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that does not end with:VALUE"

    'doesnotendwith'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that doesnotendwith:VALUE"

    'not ends with'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that not ends with:VALUE"

    'notstartswith'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that notstartswith:VALUE"

    'is not'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that is not:VALUE"

    'not regex'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that not regex:VALUE"

    'notregex'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that notregex:VALUE"

    'not regex match'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that not regex match:VALUE"

    'notregexmatch'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that notregexmatch:VALUE"

    'nre'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that nre:VALUE"

    'is'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that is:VALUE"

    'regex'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that regex:VALUE"

    'regex match'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that regex match:VALUE"

    'regexmatch'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that regexmatch:VALUE"

    're'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that re:VALUE"
```

```STDERR
Traceback (most recent call last):
  File "/Users/jolsen/gh/pytan/lib/pytan/binsupport.py", line 2687, in process_deploy_action_args
    response = handler.deploy_action(**obj_grp_args)
  File "/Users/jolsen/gh/pytan/lib/pytan/handler.py", line 972, in deploy_action
    pytan.utils.check_for_help(kwargs=kwargs)
  File "/Users/jolsen/gh/pytan/lib/pytan/utils.py", line 2082, in check_for_help
    raise pytan.exceptions.PytanHelp(help_out)
PytanHelp:
Filters Help
============

Filters are used generously throughout pytan. When used as part of a
sensor string, they control what data is shown for the columns that
the sensor returns. When filters are used for whole question filters,
they control what rows will be returned. They are used by Groups to
define group membership, deploy actions to determine which machines
should have the action deployed to it, and more.

A filter string is a human string that describes, a sensor followed
by ', that FILTER:VALUE', where FILTER is a valid filter string,
and VALUE is the string that you want FILTER to match on.

Valid Filters
-------------

    '<'
        Help: Filter for less than VALUE
        Example: "Sensor1, that <:VALUE"

    'less'
        Help: Filter for less than VALUE
        Example: "Sensor1, that less:VALUE"

    'lt'
        Help: Filter for less than VALUE
        Example: "Sensor1, that lt:VALUE"

    'less than'
        Help: Filter for less than VALUE
        Example: "Sensor1, that less than:VALUE"

    '!<'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that !<:VALUE"

    'notless'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that notless:VALUE"

    'not less'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that not less:VALUE"

    'not less than'
        Help: Filter for not less than VALUE
        Example: "Sensor1, that not less than:VALUE"

    '<='
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that <=:VALUE"

    'less equal'
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that less equal:VALUE"

    'lessequal'
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that lessequal:VALUE"

    'le'
        Help: Filter for less than or equal to VALUE
        Example: "Sensor1, that le:VALUE"

    '!<='
        Help: Filter for not less than or equal to VALUE
        Example: "Sensor1, that !<=:VALUE"

    'not less equal'
        Help: Filter for not less than or equal to VALUE
        Example: "Sensor1, that not less equal:VALUE"

    'not lessequal'
        Help: Filter for not less than or equal to VALUE
        Example: "Sensor1, that not lessequal:VALUE"

    '>'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that >:VALUE"

    'greater'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that greater:VALUE"

    'gt'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that gt:VALUE"

    'greater than'
        Help: Filter for greater than VALUE
        Example: "Sensor1, that greater than:VALUE"

    '!>'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that !>:VALUE"

    'not greater'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that not greater:VALUE"

    'notgreater'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that notgreater:VALUE"

    'not greater than'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that not greater than:VALUE"

    '=>'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that =>:VALUE"

    'greater equal'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that greater equal:VALUE"

    'greaterequal'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that greaterequal:VALUE"

    'ge'
        Help: Filter for greater than or equal to VALUE
        Example: "Sensor1, that ge:VALUE"

    '!=>'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that !=>:VALUE"

    'not greater equal'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that not greater equal:VALUE"

    'notgreaterequal'
        Help: Filter for not greater than VALUE
        Example: "Sensor1, that notgreaterequal:VALUE"

    '='
        Help: Filter for equals to VALUE
        Example: "Sensor1, that =:VALUE"

    'equal'
        Help: Filter for equals to VALUE
        Example: "Sensor1, that equal:VALUE"

    'equals'
        Help: Filter for equals to VALUE
        Example: "Sensor1, that equals:VALUE"

    'eq'
        Help: Filter for equals to VALUE
        Example: "Sensor1, that eq:VALUE"

    '!='
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that !=:VALUE"

    'not equal'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that not equal:VALUE"

    'notequal'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that notequal:VALUE"

    'not equals'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that not equals:VALUE"

    'notequals'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that notequals:VALUE"

    'ne'
        Help: Filter for not equals to VALUE
        Example: "Sensor1, that ne:VALUE"

    'contains'
        Help: Filter for contains VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that contains:VALUE"

    'does not contain'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that does not contain:VALUE"

    'doesnotcontain'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that doesnotcontain:VALUE"

    'not contains'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that not contains:VALUE"

    'notcontains'
        Help: Filter for does not contain VALUE (adds .* before and after VALUE)
        Example: "Sensor1, that notcontains:VALUE"

    'starts with'
        Help: Filter for starts with VALUE (adds .* after VALUE)
        Example: "Sensor1, that starts with:VALUE"

    'startswith'
        Help: Filter for starts with VALUE (adds .* after VALUE)
        Example: "Sensor1, that startswith:VALUE"

    'does not start with'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that does not start with:VALUE"

    'doesnotstartwith'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that doesnotstartwith:VALUE"

    'not starts with'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that not starts with:VALUE"

    'notstartswith'
        Help: Filter for does not start with VALUE (adds .* after VALUE)
        Example: "Sensor1, that notstartswith:VALUE"

    'ends with'
        Help: Filter for ends with VALUE (adds .* before VALUE)
        Example: "Sensor1, that ends with:VALUE"

    'endswith'
        Help: Filter for ends with VALUE (adds .* before VALUE)
        Example: "Sensor1, that endswith:VALUE"

    'does not end with'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that does not end with:VALUE"

    'doesnotendwith'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that doesnotendwith:VALUE"

    'not ends with'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that not ends with:VALUE"

    'notstartswith'
        Help: Filter for does bit end with VALUE (adds .* before VALUE)
        Example: "Sensor1, that notstartswith:VALUE"

    'is not'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that is not:VALUE"

    'not regex'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that not regex:VALUE"

    'notregex'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that notregex:VALUE"

    'not regex match'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that not regex match:VALUE"

    'notregexmatch'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that notregexmatch:VALUE"

    'nre'
        Help: Filter for non regular expression match for VALUE
        Example: "Sensor1, that nre:VALUE"

    'is'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that is:VALUE"

    'regex'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that regex:VALUE"

    'regex match'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that regex match:VALUE"

    'regexmatch'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that regexmatch:VALUE"

    're'
        Help: Filter for regular expression match for VALUE
        Example: "Sensor1, that re:VALUE"
```

  * Validation Test: notexitcode
    * Valid: **True**
    * Messages: Exit Code is not 0

[TOC](#user-content-toc)

# Print the help for options

```bash
bin/deploy_action.py -u Administrator -p 'Tanium2015!' --host 10.0.1.240 --port 443 --loglevel 1 --options-help
```

```
PyTan v2.1.6 Handler for Session to 10.0.1.240:443, Authenticated: True, Platform Version: 6.5.314.4301
++ Deploying action:
{
  "action_filters": [],
  "action_options": [],
  "expire_seconds": null,
  "filters_help": false,
  "get_results": true,
  "options_help": true,
  "package": "",
  "package_help": false,
  "report_dir": null,
  "report_file": null,
  "run": false,
  "start_seconds_from_now": null
}

Error occurred:
Options Help
============

Options are used for controlling how filters act. When options are
used as part of a sensor string, they change how the filters
supplied as part of that sensor operate. When options are used for
whole question options, they change how all of the question filters
operate.

When options are supplied for a sensor string, they must be
supplied as ', opt:OPTION' or ', opt:OPTION:VALUE' for options
that require a value.

When options are supplied for question options, they must be
supplied as 'OPTION' or 'OPTION:VALUE' for options that require
a value.

Options can be used on 'filter' or 'group', where 'group' pertains
to group filters or question filters. All 'filter' options are also
applicable to 'group' for question options.

Valid Options
-------------

    'ignore_case'
        Help: Make the filter do a case insensitive match
        Usable on: filter
        Example for sensor: "Sensor1, opt:ignore_case"
        Example for question: "ignore_case"

    'match_case'
        Help: Make the filter do a case sensitive match
        Usable on: filter
        Example for sensor: "Sensor1, opt:match_case"
        Example for question: "match_case"

    'match_any_value'
        Help: Make the filter match any value
        Usable on: filter
        Example for sensor: "Sensor1, opt:match_any_value"
        Example for question: "match_any_value"

    'match_all_values'
        Help: Make the filter match all values
        Usable on: filter
        Example for sensor: "Sensor1, opt:match_all_values"
        Example for question: "match_all_values"

    'max_data_age'
        Help: Re-fetch cached values older than N seconds
        Usable on: filter
        VALUE description and type: seconds, <type 'int'>
        Example for sensor: "Sensor1, opt:max_data_age:seconds"
        Example for question: "max_data_age:seconds"

    'value_type'
        Help: Make the filter consider the value type as VALUE_TYPE
        Usable on: filter
        VALUE description and type: value_type, <type 'str'>
        Example for sensor: "Sensor1, opt:value_type:value_type"
        Example for question: "value_type:value_type"

    'and'
        Help: Use 'and' for all of the filters supplied
        Usable on: group
        Example for sensor: "Sensor1, opt:and"
        Example for question: "and"

    'or'
        Help: Use 'or' for all of the filters supplied
        Usable on: group
        Example for sensor: "Sensor1, opt:or"
        Example for question: "or"
```

```STDERR
Traceback (most recent call last):
  File "/Users/jolsen/gh/pytan/lib/pytan/binsupport.py", line 2687, in process_deploy_action_args
    response = handler.deploy_action(**obj_grp_args)
  File "/Users/jolsen/gh/pytan/lib/pytan/handler.py", line 972, in deploy_action
    pytan.utils.check_for_help(kwargs=kwargs)
  File "/Users/jolsen/gh/pytan/lib/pytan/utils.py", line 2082, in check_for_help
    raise pytan.exceptions.PytanHelp(help_out)
PytanHelp:
Options Help
============

Options are used for controlling how filters act. When options are
used as part of a sensor string, they change how the filters
supplied as part of that sensor operate. When options are used for
whole question options, they change how all of the question filters
operate.

When options are supplied for a sensor string, they must be
supplied as ', opt:OPTION' or ', opt:OPTION:VALUE' for options
that require a value.

When options are supplied for question options, they must be
supplied as 'OPTION' or 'OPTION:VALUE' for options that require
a value.

Options can be used on 'filter' or 'group', where 'group' pertains
to group filters or question filters. All 'filter' options are also
applicable to 'group' for question options.

Valid Options
-------------

    'ignore_case'
        Help: Make the filter do a case insensitive match
        Usable on: filter
        Example for sensor: "Sensor1, opt:ignore_case"
        Example for question: "ignore_case"

    'match_case'
        Help: Make the filter do a case sensitive match
        Usable on: filter
        Example for sensor: "Sensor1, opt:match_case"
        Example for question: "match_case"

    'match_any_value'
        Help: Make the filter match any value
        Usable on: filter
        Example for sensor: "Sensor1, opt:match_any_value"
        Example for question: "match_any_value"

    'match_all_values'
        Help: Make the filter match all values
        Usable on: filter
        Example for sensor: "Sensor1, opt:match_all_values"
        Example for question: "match_all_values"

    'max_data_age'
        Help: Re-fetch cached values older than N seconds
        Usable on: filter
        VALUE description and type: seconds, <type 'int'>
        Example for sensor: "Sensor1, opt:max_data_age:seconds"
        Example for question: "max_data_age:seconds"

    'value_type'
        Help: Make the filter consider the value type as VALUE_TYPE
        Usable on: filter
        VALUE description and type: value_type, <type 'str'>
        Example for sensor: "Sensor1, opt:value_type:value_type"
        Example for question: "value_type:value_type"

    'and'
        Help: Use 'and' for all of the filters supplied
        Usable on: group
        Example for sensor: "Sensor1, opt:and"
        Example for question: "and"

    'or'
        Help: Use 'or' for all of the filters supplied
        Usable on: group
        Example for sensor: "Sensor1, opt:or"
        Example for question: "or"
```

  * Validation Test: notexitcode
    * Valid: **True**
    * Messages: Exit Code is not 0

[TOC](#user-content-toc)

# Deploy an action example 1

  * Deploys an action using the package Distribute Tanium Standard Utilities
  * Since --run was not supplied, the results of the question for the filters of this action will be written to a CSV file for verification, and the deploy action will NOT be run

```bash
bin/deploy_action.py -u Administrator -p 'Tanium2015!' --host 10.0.1.240 --port 443 --loglevel 1 --package "Distribute Tanium Standard Utilities" --file "/tmp/out.csv"
```

```
PyTan v2.1.6 Handler for Session to 10.0.1.240:443, Authenticated: True, Platform Version: 6.5.314.4301
++ Deploying action:
{
  "action_filters": [],
  "action_options": [],
  "expire_seconds": null,
  "filters_help": false,
  "get_results": true,
  "options_help": false,
  "package": "Distribute Tanium Standard Utilities",
  "package_help": false,
  "report_dir": null,
  "report_file": "/tmp/out.csv",
  "run": false,
  "start_seconds_from_now": null
}
2015-10-02 20:06:52,525 INFO     pytan.pollers.QuestionPoller: ID 16108: Reached Threshold of 99% (3 of 3)

Error occurred: 'Run' is not True!!
View and verify the contents of /tmp/VERIFY_BEFORE_DEPLOY_ACTION_out.csv (length: 103 bytes)
Re-run this deploy action with run=True after verifying
```

```STDERR
Traceback (most recent call last):
  File "/Users/jolsen/gh/pytan/lib/pytan/binsupport.py", line 2687, in process_deploy_action_args
    response = handler.deploy_action(**obj_grp_args)
  File "/Users/jolsen/gh/pytan/lib/pytan/handler.py", line 996, in deploy_action
    **clean_kwargs
  File "/Users/jolsen/gh/pytan/lib/pytan/handler.py", line 3052, in _deploy_action
    raise pytan.exceptions.RunFalse(m(report_path, len(result)))
RunFalse: 'Run' is not True!!
View and verify the contents of /tmp/VERIFY_BEFORE_DEPLOY_ACTION_out.csv (length: 103 bytes)
Re-run this deploy action with run=True after verifying
```

  * Validation Test: file_exist_contents
    * Valid: **True**
    * Messages: File /tmp/VERIFY_BEFORE_DEPLOY_ACTION_out.csv exists, content:

```
Computer Name,Online
c1u14-virtual-machine.(none),True
WIN-6U71ED4M23D,True
TPT1.pytanlab.com,True
```

  * Validation Test: notexitcode
    * Valid: **True**
    * Messages: Exit Code is not 0

[TOC](#user-content-toc)

# Deploy an action example 2

  * Deploys an action using the package Distribute Tanium Standard Utilities

```bash
bin/deploy_action.py -u Administrator -p 'Tanium2015!' --host 10.0.1.240 --port 443 --loglevel 1 --package "Distribute Tanium Standard Utilities" --run --file "/tmp/out.csv"
```

```
PyTan v2.1.6 Handler for Session to 10.0.1.240:443, Authenticated: True, Platform Version: 6.5.314.4301
++ Deploying action:
{
  "action_filters": [],
  "action_options": [],
  "expire_seconds": null,
  "filters_help": false,
  "get_results": true,
  "options_help": false,
  "package": "Distribute Tanium Standard Utilities",
  "package_help": false,
  "report_dir": null,
  "report_file": "/tmp/out.csv",
  "run": true,
  "start_seconds_from_now": null
}
2015-10-02 20:06:58,046 INFO     pytan.pollers.QuestionPoller: ID 16109: Reached Threshold of 99% (3 of 3)
2015-10-02 20:07:28,252 INFO     pytan.pollers.ActionPoller: ID 141: Reached Threshold for Seen Count of 100% (3 of 3)
2015-10-02 20:07:28,273 INFO     pytan.pollers.ActionPoller: ID 141: Reached Threshold for Finished Count of 100% (3 of 3)
++ Deployed Action 'API Deploy Distribute Tanium Standard Utilities' ID: 141
++ Command used in Action: 'cmd /c cscript install-standard-utils.vbs "Tools\\StdUtils"'
++ Deploy action progress results:
Total failed: 0
Total finished: 3
Total running: 0
Total success: 3
Total unknown: 0
++ Deploy results written to '/tmp/out.csv' with 142 bytes
```

  * Validation Test: exitcode
    * Valid: **True**
    * Messages: Exit Code is 0

  * Validation Test: file_exist_contents
    * Valid: **True**
    * Messages: File /tmp/out.csv exists, content:

```
Action Statuses,Computer Name
141:Completed.,c1u14-virtual-machine.(none)
141:Completed.,WIN-6U71ED4M23D
141:Completed.,TPT1.pytanlab.com
```

  * Validation Test: noerror
    * Valid: **True**
    * Messages: No error texts found in stderr/stdout

[TOC](#user-content-toc)

# Deploy an action example 3

  * Deploys an action using the package "Custom Tagging - Add Tags", passing in a parameter for the tag to be added
  * Uses a filter to only deploy the action agains machines that match .*Windows.* for the Operating System sensor

```bash
bin/deploy_action.py -u Administrator -p 'Tanium2015!' --host 10.0.1.240 --port 443 --loglevel 1 --package "Custom Tagging - Add Tags{\$1=new_tag}" --filter "Operating System, that contains:Windows" --run --file "/tmp/out.csv"
```

```
PyTan v2.1.6 Handler for Session to 10.0.1.240:443, Authenticated: True, Platform Version: 6.5.314.4301
++ Deploying action:
{
  "action_filters": [
    "Operating System, that contains:Windows"
  ],
  "action_options": [],
  "expire_seconds": null,
  "filters_help": false,
  "get_results": true,
  "options_help": false,
  "package": "Custom Tagging - Add Tags{$1=new_tag}",
  "package_help": false,
  "report_dir": null,
  "report_file": "/tmp/out.csv",
  "run": true,
  "start_seconds_from_now": null
}
2015-10-02 20:07:33,809 INFO     pytan.pollers.QuestionPoller: ID 16111: Reached Threshold of 99% (3 of 3)
2015-10-02 20:07:53,938 INFO     pytan.pollers.ActionPoller: ID 142: Reached Threshold for Seen Count of 100% (2 of 2)
2015-10-02 20:07:53,960 INFO     pytan.pollers.ActionPoller: ID 142: Reached Threshold for Finished Count of 100% (2 of 2)
++ Deployed Action 'API Deploy Custom Tagging - Add Tags' ID: 142
++ Command used in Action: 'cmd /c cscript //T:60 add-tags.vbs "new%5ftag"'
++ Deploy action progress results:
Total failed: 0
Total finished: 2
Total running: 0
Total success: 2
Total unknown: 0
++ Deploy results written to '/tmp/out.csv' with 97 bytes
```

  * Validation Test: exitcode
    * Valid: **True**
    * Messages: Exit Code is 0

  * Validation Test: file_exist_contents
    * Valid: **True**
    * Messages: File /tmp/out.csv exists, content:

```
Action Statuses,Computer Name
142:Completed.,WIN-6U71ED4M23D
142:Completed.,TPT1.pytanlab.com
```

  * Validation Test: noerror
    * Valid: **True**
    * Messages: No error texts found in stderr/stdout

[TOC](#user-content-toc)

###### generated by: `build_bin_doc v2.1.0`, date: Fri Oct  2 16:07:53 2015 EDT, Contact info: **Jim Olsen <jim.olsen@tanium.com>**

redpajama_set_name: RedPajamaGithub


text:
Q: Different url path just for one article (Django) I need to change url path just for one chosen article.
This is how it looks for all of my articles:
site.com/articles/some-article
I would like to create some condition just for one chosen article.
site.com/chosen-article
is it possible?
urls.py
urlpatterns = [
    url(r'^articles/', include('mysite.articles.urls')),
]

A: You can create that separate url path in your articles urls:
url(r'^some-article', SomeArticleView.as_view(), name='some-article'),

In the SomeArticleView, just return the wanted article.
EDIT: To better match the question, the url and view should be:
url(r'^chosen-article', ChosenArticleView.as_view(), name='chosen-article')

Finally, it can be whatever we chose.


Crackers! Crackers! But, no squeezy cheese!! You've broken my secret elbow!
Cracker! cracker! but no squeezy cheeses! my secret elbow is broken!
Cracker! cracker! is not squeezy cheeses! my secret elbow is broken!
Cracker! cracker! squeezy cheeses, not! my secret elbow is broken!
Hello, I love Harry Potter.


text:
import * as scrawl from '../source/scrawl.js';

import { reportSpeed, addImageDragAndDrop } from './utilities.js';

// #### Scene setup
const canvas = scrawl.library.canvas.mycanvas;

// The base cell needs to compile after the helper cells we're about to create
canvas.setBase({
    compileOrder: 1,
});

// #### Gradients and pattern definitions
// We display the gradients in a Block entity, in a dedicated Cell
// + The Cell will act as a pattern source for entitys elsewhere
// + Because we're using it as a pattern, the Cell comes with a pattern matrix
// + The pattern matrix lets us warp and stretch the pattern to meet our needs
const patternCell = canvas.buildCell({

    name: 'bar-cell-pattern',
    dimensions: [80, 80],
    shown: false,
    useAsPattern: true,
    skewX: 0,
    stretchX: 1,
    shiftX: 0,
    skewY: 0,
    stretchY: 1,
    shiftY: 0,
});

const barGradient = scrawl.makeGradient({

    name: 'bar-cell-gradient',
    endX: '100%',

    colors: [
        [0, 'transparent'],
        [199, 'transparent'],
        [499, 'white'],
        [799, 'transparent'],
        [999, 'transparent'],
    ],
});

const ringGradient = scrawl.makeRadialGradient({

    name: 'ring-cell-gradient',
    startX: '50%',
    startY: '50%',
    endX: '50%',
    endY: '50%',

    startRadius: '0%',
    endRadius: '50%',

    colors: [
        [0, 'transparent'],
        [199, 'transparent'],
        [499, 'white'],
        [799, 'transparent'],
        [999, 'transparent'],
    ],
});

const updateGradients = (items) => {

    barGradient.set(items);
    ringGradient.set(items);
};

const filterBlock = scrawl.makeBlock({

    name: 'bar-cell-box',
    group: 'bar-cell-pattern',
    dimensions: ['100%', '100%'],
    fillStyle: 'bar-cell-gradient',
});

// #### Build an image source for our compound filter
// We can use anything that generates image data as part of our filter
// + This includes a new Cell, which will display a Block entity
// + The Block entity uses our pattern Cell for its `fillStyle` attribute
const filterCell = canvas.buildCell({

    name: 'bar-cell',
    dimensions: ['100%', '100%'],
    shown: false,
});

scrawl.makeBlock({

    name: 'bar-base-box',
    group: 'bar-cell',
    dimensions: ['100%', '100%'],
    fillStyle: 'bar-cell-pattern',
});

// #### Filter definitions
// Define our filters - we'll populate them with actions data later
const glassBarsFilter = scrawl.makeFilter({ name: 'glass-bars' }),
    displaceBarsFilter = scrawl.makeFilter({ name: 'displace-bars' }),
    etchingFilter = scrawl.makeFilter({ name: 'etching' }),
    greenMonitorFilter = scrawl.makeFilter({ name: 'green-monitor' });

// We define some variables and helper functions here, to cut down on code
let fOffsetX = 0,
    fOffsetY = 0,
    fOpacity = 1,
    fBlend = 'multiply',
    fDisplaceX = 10,
    fDisplaceY = 10;

// All the examples make use of the gradient pattern; this filter loads it into the engine
const getProcessImageFilter = () => {
    return [{
        action: 'process-image',
        asset: 'bar-cell',
        width: '100%',
        height: '100%',
        copyWidth: '100%',
        copyHeight: '100%',
        lineOut: 'bars',
    }];
};

// Three of the examples use a blend filter to merge the gradient pattern into the image
const getBlendFilter = () => {
    return [{
        action: 'blend',
        lineMix: 'bars',
        blend: fBlend,
        offsetX: fOffsetX,
        offsetY: fOffsetY,
        opacity: fOpacity,
    }];
};

// This uses the gradient pattern as a displacement map for the displace filter
const getDisplaceFilter = () => {
    return [{
        action: 'displace',
        lineMix: 'bars',
        offsetX: fOffsetX,
        offsetY: fOffsetY,
        opacity: fOpacity,
        scaleX: fDisplaceX,
        scaleY: fDisplaceY,
    }];
};

// Several filters require the image to be grayscaled at the start of the processing chain
const getGrayscaleFilter = () => {
    return [{
        action: 'grayscale',
    }];
};

// Filters to configure the image (make it green) before applying the blend filter
const getMonitorFilter = () => {
    return [{
        action: 'modulate-channels',
        red: 0,
        green: 1.3,
        blue: 0,
    }];
};

// Filters to configure the image (give it a black-white drawing effect) before applying the blend filter
const getEtchFilter = () => {
    return [{
        action: 'gaussian-blur',
        radius: 1,
    }, {
        action: 'matrix',
        weights: [1, 1, 1, 1, -8, 1, 1, 1, 1],
    }, {
        action: 'invert-channels',
    }, {
        action: 'threshold',
        level: 252,
    }];
};

// Helper function to update filter action arrays with user choices
const updateFilters = () => {

    glassBarsFilter.set({
        actions: [
            ...getProcessImageFilter(),
            ...getBlendFilter(),
        ],
    });

    displaceBarsFilter.set({
        actions: [
            ...getProcessImageFilter(),
            ...getDisplaceFilter(),
        ],
    });

    etchingFilter.set({
        actions: [
            ...getProcessImageFilter(),
            ...getGrayscaleFilter(),
            ...getEtchFilter(),
            ...getBlendFilter(),
        ],
    });

    greenMonitorFilter.set({
        actions: [
            ...getProcessImageFilter(),
            ...getGrayscaleFilter(),
            ...getMonitorFilter(),
            ...getBlendFilter(),
        ],
    });
};

// Initial filter build
updateFilters();

// #### Build the scene
// The initial image
scrawl.importDomImage('.flowers');

// We need something to apply our filters to
const target = scrawl.makePicture({

    name: 'target-image',

    asset: 'iris',

    width: '100%',
    height: '100%',

    copyWidth: '100%',
    copyHeight: '100%',

    method: 'fill',

    filters: ['glass-bars'],
});

// Add some Drag-and-Drop image loading functionality
// + So users can check the filter effects against different images
addImageDragAndDrop(canvas, '#my-image-store', target);

// #### Scene animation
// Function to display frames-per-second data, and other information relevant to the demo
const report = reportSpeed('#reportmessage', function () {

// @ts-expect-error
    return `    Filter dimensions - \n        width: ${filterWidth.value}%; height: ${filterHeight.value}%\n    Filter offset - \n        x: ${filterOffsetX.value}px; y: ${filterOffsetY.value}px\n    Pattern dimensions - \n        width: ${patternWidth.value}px; height: ${patternHeight.value}px\n    Pattern matrix -\n        shiftX: ${shiftX.value}; shiftY: ${shiftY.value}\n        skewX: ${skewX.value}; skewY: ${skewY.value}\n        stretchX: ${stretchX.value}; stretchY: ${stretchY.value}\n    Displace filter scaling - \n        x: ${filterScaleX.value}; y: ${filterScaleY.value}\n    Opacity: ${opacity.value}`;
});

// Create the Display cycle animation
const demoAnimation = scrawl.makeRender({

    name: "demo-animation",
    target: canvas,
    afterShow: report,
});

// #### User interaction
// Update pattern values
scrawl.observeAndUpdate({

    event: ['change', 'input'],
    origin: '.patternCell',

    target: patternCell,

    useNativeListener: true,
    preventDefault: true,

    updates: {
        'pattern-width': ['width', 'round'],
        'pattern-height': ['height', 'round'],
        shiftX: ['shiftX', 'round'],
        shiftY: ['shiftY', 'round'],
        skewX: ['skewX', 'float'],
        skewY: ['skewY', 'float'],
        stretchX: ['stretchX', 'float'],
        stretchY: ['stretchY', 'float'],
    },
});

// Update filter dimensions
scrawl.observeAndUpdate({

    event: ['change', 'input'],
    origin: '.filterCell',

    target: filterCell,

    useNativeListener: true,
    preventDefault: true,

    updates: {
        'filter-width': ['width', '%'],
        'filter-height': ['height', '%'],
    },
});

// Update gradient choice
scrawl.observeAndUpdate({

    event: ['change', 'input'],
    origin: '.filterBlock',

    target: filterBlock,

    useNativeListener: true,
    preventDefault: true,

    updates: {
        patternGradient: ['fillStyle', 'raw'],
    },
});

// Update filter offset, opacity, blend choices
scrawl.addNativeListener(['change', 'input'], (e) => {

    const t = e.target,
        value = t.value;

    switch (t.id) {

        case 'filter-offset-x' :
            fOffsetX = parseInt(value, 10);
            break;

        case 'filter-offset-y' :
            fOffsetY = parseInt(value, 10);
            break;

        case 'filter-scale-x' :
            fDisplaceX = parseInt(value, 10);
            break;

        case 'filter-scale-y' :
            fDisplaceY = parseInt(value, 10);
            break;

        case 'opacity' :
            fOpacity = parseFloat(value);
            break;

        case 'blend' :
            fBlend = value;
            break;
    }
    updateFilters();

}, '.filterObject');

// Update gradient easing
scrawl.addNativeListener(['change', 'input'], (e) => {

    const t = e.target,
        value = t.value;

    updateGradients({
        easing: value,
    });

}, '.gradient');

// #### Changing the filter effect
// We do quite a bit of work here to set things up for the example's initial display
// + This includes setting the user controls to match the initial settings
scrawl.addNativeListener(['change', 'input'], (e) => {

    const t = e.target,
        value = t.value;

    switch (value) {

        case 'glass-bars' :
            fOffsetX = 0;
            fOffsetY = 0;
            fOpacity = 1;
            fBlend = 'multiply';
            fDisplaceX = 10;
            fDisplaceY = 10;

            patternCell.set({
                width: 80,
                height: 80,
                shiftX: 0,
                shiftY: 0,
                skewX: 0,
                skewY: 0,
                stretchX: 1,
                stretchY: 1,
            });

            filterBlock.set({
                fillStyle: 'bar-cell-gradient',
            });

// @ts-expect-error
            skewX.value = 0;
// @ts-expect-error
            skewY.value = 0;
// @ts-expect-error
            stretchX.value = 1;
// @ts-expect-error
            stretchY.value = 1;
// @ts-expect-error
            shiftX.value = 0;
// @ts-expect-error
            shiftY.value = 0;
// @ts-expect-error
            filterBlend.value = 'multiply';
// @ts-expect-error
            patternGradient.value = 'bar-cell-gradient';
// @ts-expect-error
            patternWidth.value = 80;
// @ts-expect-error
            patternHeight.value = 80;

            break;

        case 'displace-bars' :
            fOffsetX = 0;
            fOffsetY = 0;
            fOpacity = 1;
            fBlend = 'multiply';
            fDisplaceX = 10;
            fDisplaceY = 10;

            patternCell.set({
                width: 80,
                height: 80,
                shiftX: 0,
                shiftY: 0,
                skewX: 0,
                skewY: 0,
                stretchX: 1,
                stretchY: 1,
            });

            filterBlock.set({
                fillStyle: 'ring-cell-gradient',
            });

// @ts-expect-error
            skewX.value = 0;
// @ts-expect-error
            skewY.value = 0;
// @ts-expect-error
            stretchX.value = 1;
// @ts-expect-error
            stretchY.value = 1;
// @ts-expect-error
            shiftX.value = 0;
// @ts-expect-error
            shiftY.value = 0;
// @ts-expect-error
            filterBlend.value = 'multiply';
// @ts-expect-error
            patternGradient.value = 'ring-cell-gradient';
// @ts-expect-error
            patternWidth.value = 80;
// @ts-expect-error
            patternHeight.value = 80;

            break;

        case 'etching' :
            fOffsetX = 0;
            fOffsetY = 0;
            fOpacity = 1;
            fBlend = 'screen';
            fDisplaceX = 10;
            fDisplaceY = 10;

            patternCell.set({
                width: 80,
                height: 80,
                shiftX: 0,
                shiftY: 0,
                skewX: -0.65,
                skewY: -0.31,
                stretchX: 1,
                stretchY: 0.26,
            });

            filterBlock.set({
                fillStyle: 'bar-cell-gradient',
            });

// @ts-expect-error
            skewX.value = -0.65;
// @ts-expect-error
            skewY.value = -0.31;
// @ts-expect-error
            stretchX.value = 1;
// @ts-expect-error
            stretchY.value = 0.26;
// @ts-expect-error
            shiftX.value = 0;
// @ts-expect-error
            shiftY.value = 0;
// @ts-expect-error
            filterBlend.value = 'screen';
// @ts-expect-error
            patternGradient.value = 'bar-cell-gradient';
// @ts-expect-error
            patternWidth.value = 80;
// @ts-expect-error
            patternHeight.value = 80;

            break;

        case 'green-monitor' :
            fOffsetX = 0;
            fOffsetY = 0;
            fOpacity = 1;
            fBlend = 'luminosity';
            fDisplaceX = 10;
            fDisplaceY = 10;

            patternCell.set({
                width: 80,
                height: 80,
                shiftX: 0,
                shiftY: 0,
                skewX: 1.04,
                skewY: 0.05,
                stretchX: 0.35,
                stretchY: 0,
            });

            filterBlock.set({
                fillStyle: 'bar-cell-gradient',
            });

// @ts-expect-error
            skewX.value = 1.04;
// @ts-expect-error
            skewY.value = 0.05;
// @ts-expect-error
            stretchX.value = 0.35;
// @ts-expect-error
            stretchY.value = 0;
// @ts-expect-error
            shiftX.value = 0;
// @ts-expect-error
            shiftY.value = 0;
// @ts-expect-error
            filterBlend.value = 'luminosity';
// @ts-expect-error
            patternGradient.value = 'bar-cell-gradient';
// @ts-expect-error
            patternWidth.value = 80;
// @ts-expect-error
            patternHeight.value = 80;

            break;
    }

    filterCell.set({
        width: '100%',
        height: '100%',
    });

    updateFilters();

    updateGradients({
        easing: 'linear',
    });

// @ts-expect-error
    opacity.value = 1;
// @ts-expect-error
    filterWidth.value = 100;
// @ts-expect-error
    filterHeight.value = 100;
// @ts-expect-error
    filterOffsetX.value = 0;
// @ts-expect-error
    filterOffsetY.value = 0;
// @ts-expect-error
    filterScaleX.value = 10;
// @ts-expect-error
    filterScaleY.value = 10;
// @ts-expect-error
    easing.value = 'linear';

// @ts-expect-error
    target.clearFilters().addFilters(value);

}, '.filterEffect');

// #### Setup form on page load
const opacity = document.querySelector('#opacity');
const skewX = document.querySelector('#skewX');
const skewY = document.querySelector('#skewY');
const stretchX = document.querySelector('#stretchX');
const stretchY = document.querySelector('#stretchY');
const shiftX = document.querySelector('#shiftX');
const shiftY = document.querySelector('#shiftY');
const patternWidth = document.querySelector('#pattern-width');
const patternHeight = document.querySelector('#pattern-height');
const filterWidth = document.querySelector('#filter-width');
const filterHeight = document.querySelector('#filter-height');
const filterOffsetX = document.querySelector('#filter-offset-x');
const filterOffsetY = document.querySelector('#filter-offset-y');
const filterScaleX = document.querySelector('#filter-scale-x');
const filterScaleY = document.querySelector('#filter-scale-y');
const filterBlend = document.querySelector('#blend');
const patternGradient = document.querySelector('#patternGradient');
const easing = document.querySelector('#easing');

// @ts-expect-error
opacity.value = 1;
// @ts-expect-error
skewX.value = 0;
// @ts-expect-error
skewY.value = 0;
// @ts-expect-error
stretchX.value = 1;
// @ts-expect-error
stretchY.value = 1;
// @ts-expect-error
shiftX.value = 0;
// @ts-expect-error
shiftY.value = 0;
// @ts-expect-error
patternWidth.value = 80;
// @ts-expect-error
patternHeight.value = 80;
// @ts-expect-error
filterWidth.value = 100;
// @ts-expect-error
filterHeight.value = 100;
// @ts-expect-error
filterOffsetX.value = 0;
// @ts-expect-error
filterOffsetY.value = 0;
// @ts-expect-error
filterScaleX.value = 10;
// @ts-expect-error
filterScaleY.value = 10;
// @ts-expect-error
filterBlend.value = 'multiply';
// @ts-expect-error
patternGradient.value = 'bar-cell-gradient';
// @ts-expect-error
easing.value = 'linear';

// @ts-expect-error
document.querySelector('#filterEffect').value = 'glass-bars';

// #### Development and testing
console.log(scrawl.library);


Histologie Und Zytologie Des Menschen is good choice for you that looking for nice reading experience. We hope you glad to visit our website. Please read our description and our privacy and policy page.
Finally I get this ebook, thanks for all these Histologie Und Zytologie Des Menschen can get now!


text:
Breistroff-la-Grande (deutsch Breisdorf, lothringisch Grouss-Breeschtrëf) ist eine Gemeinde mit  Einwohnern (Stand ) im Département Moselle in der Region Grand Est (bis 2015 Lothringen).

Geographie
Die Gemeinde liegt in Lothringen fünf Kilometer nördlich von Cattenom () auf einer Anhöhe, zwölf Kilometer nördlich von Thionville (Diedenhofen) und unmittelbar nördlich des Kernkraftwerkes Cattenom. Durch die zur Gemeinde gehörenden Ortsteile Évange und Boler fließt die Boler, ein Nebenfluss der Mosel.

Geschichte
Durch die westliche Gemarkung verläuft in gerader Richtung eine 3460 m lange Römerstraße bis zur luxemburgischen Grenze.

Das Dorf gehörte früher zum Bistum Metz. Im Jahr  1769 wurde es Frankreich einverleibt. 1810 wurden die beiden Dörfer Boler und Évange (Ewingen) eingemeindet.

Durch den Frieden von Frankfurt vom 10. Mai 1871 kam das Dorf an Deutschland zurück, wo es dem Bezirk Lothringen im Reichsland Elsaß-Lothringen zugeordnet wurde. Nach dem Ersten Weltkrieg musste die Region aufgrund der Bestimmungen des Versailler Vertrags 1919 an Frankreich abgetreten werden. Im Zweiten Weltkrieg war die Region von der deutschen Wehrmacht besetzt.

Bevölkerungsentwicklung

Sehenswürdigkeiten
 Moulin de Boler (Mühle), wiederaufgebaut 1787
 Kirche St. Katharina, erbaut 1514
 Kapelle St. Barbara im Weiler Boler, erbaut im 15. Jahrhundert
 Kreuzigungsgruppe, im Weiler von Evange, von 1540
 Wegekreuz bei Boler

Literatur
 Breisdorf, Kanton Kattenhofen, Landkreis Diedenhofen-Ost, Elsass-Lothringen, in: Meyers Gazetteer (mit Eintrag aus Meyers Orts- und Verkehrslexikon, Ausgabe 1912, sowie einer historischen Landkarte der Umgebung von Breisdorf).
 Franz Xaver Kraus: Kunst und Alterthum in Elsass-Lothringen. Beschreibende Statistik. Band III: Kunst und Althertum in Lothringen. Friedrich Bull, Straßburg 1886, S. 47–48 (Google Books).
 Eugen H. Th. Huhn: Deutsch-Lothringen. Landes-, Volks- und Ortskunde, Stuttgart 1875, S. 327 (Google Books).

Weblinks

Einzelnachweise

Ort in Grand Est


This statistic displays the supermarket turnover in the Netherlands until week 40, 2016, by product type (in million euros). Until week 40, the non-food sales in 2016 amounted to approximately 4.4 billion euros.
How often do U.S. consumers look for health claims when deciding whether or not to purchase a food item?


Shopping Organic – Does it need to be?
Shopping at the supermarket or farmer's market can feel overwhelming, not to mention expensive. One of the most frequently asked questions we get is what foods should be purchased organic?
The Environmental Working Group (EWG) puts out a list of produce that is rated according to pesticide exposure during the growing process. These lists have become popularly known as the "Dirty Dozen" and "Clean Fifteen" — or the 12 produce items with the most exposure to pesticides and chemicals, and the fifteen items that are cleanest even when conventionally grown, and therefore, not as critical to be purchased organic.
As a reminder, sweet corn is actually a grain, and because of that, is not Paleo.
By choosing foods that meet these standards, you're getting more bang for your buck because these foods are more nutrient-dense than their refined, conventional, farmed, or pasteurized alternatives.
It's also important to consider that toxins and chemicals can find their way into your body even if your diet is as clean as it gets. Body care products, household cleaners, cosmetics, perfumes, and even clothing can be potential sources for chemicals. But simply choosing "organic" or "free and clear" products in these categories can still result in various toxins being present because many cosmetic companies and producers of cleaning products aren't required to list every ingredient.
The EWG has a searchable database known as SkinDeep where you can find the cleanest rated products available to purchase. You can also eliminate the guesswork and make your own cleaning products, body care items, and perfumes using essential oils and basic ingredients like vinegar, baking soda, and castile soap.


text:
Australia's economic system after Covid-19 pandemic
By Article Dashboard	 On Dec 29, 2020
The national flags of Australia and China are displayed in front of a portrait of Mao Zedong overlooking Tiananmen Square.
Frederic J. Brown | AFP via Getty Images
Australia's economy has been hit hard by escalating trade tensions with China – and it is possible that even after the pandemic ends, growth "will never return to pre-virus levels," according to research firm Capital Economics.
China is by far Australia's largest trading partner, accounting for 39.4% of goods exports and 17.6% of services exports between 2019 and 2020.
But Beijing has been targeting a growing list of imported products from Down Under for months – tariffs on wine and barley and suspension of beef imports.
Australia's gross domestic product (GDP) could continue to shrink if Beijing continues to pile tariffs on more Australian imports, its chief economist Marcel Thieliant said in a note last week.
Goods and services already "in the line of fire" are worth almost a quarter of Australia's exports to China – 1.8% of economic output, according to the research company.
But it can't end there.
"That number could climb to around 2.8% of GDP if China targets other products for which it does not depend heavily on Australian imports," Thieliant said.
While Australia should be able to reroute some shipments to other countries, the escalating trade war is another reason the Australian economy will never return to its pre-virus path, even after controlling the pandemic.
Marcel Thieliant
Economist, capital economy
Canberra-Beijing bilateral relations deteriorated earlier this year after Australia backed a growing demand for an international investigation into China's handling of the coronavirus pandemic.
Other restrictions from Beijing could come, including exports of gold, aluminum oxide – a type of material for industrial use – and "a wide variety of smaller goods," the report said.
"While Australia should be able to reroute some shipments to other countries, the escalating trade war is another reason the Australian economy will never return to its pre-virus path even after the pandemic is controlled," Thieliant said.
Overall, the country's gross domestic product could lag its pre-virus level by about 1.5 percentage points by the end of 2022 – and additional trade restrictions from China could exacerbate this shortage, Capital Economics said.
The pain could be alleviated, however, as "Australia may find other destinations for its exports," said the economist.
A ray of hope for Australia
Australia is the world's largest producer of iron ore, another commodity that was in the spotlight as tensions between Australia and China increased.
But there is a ray of hope for Australia: iron ore exports would likely continue to be spared as Australia supplies half of China's needs.
China imports 60% of its iron ore from Australia and is heavily dependent on the commodity from which steel is made.
Analysts say the lack of available alternatives could be the reason iron ore has so far been spared the tariff war.
Iron ore prices recently rose as demand from China increased and were further fueled by dwindling supply and disruption caused by storms in Australia.
"We still believe that iron ore exports will be spared … Without Australia, China would not be able to meet all of its current needs," Thieliant wrote.
Article Dashboard 417 posts 0 comments
The president's historian says mass loss of life and struggling will ceaselessly be Donald Trump's legacy
Diddy Formally Cancels Annual New Years Eve Occasion Due To COVID-19 – "I Will Not Change My Thoughts"


The ceremonies could not happen without the participation of academic and administrative staff of the University. These pages contain all the information you need to prepare for your role at the ceremony.
University of Limerick honorary conferrings are formal occasions, and we ask attending staff to dress accordingly. Business attire is essential. Runners, denim or casual clothing are not permitted.
Staff who wish to take part in the academic procession should confirm their intention to do so by emailing ceremonies@ul.ie. Staff taking part in the academic procession should then present themselves, fully robed, 30 minutes in advance of the ceremony at the designated area as advised by the Office of the Vice President Academic & Registrar.
For those wishing to hire academic robes for the ceremony, robe hire forms are available by emailing ceremonies@ul.ie.


text:
Z93 Schedule
KOKX Schedule
K-Rock Schedule
Local Music Top 20
The Marty Award
Farm Network
Russia says it has tested a new nuclear missile
Written by Leah Jones on March 31, 2018
Mikhail Svetlov/Getty Images(MOSCOW) — Russia's military on Friday said it had successfully carried out a second test launch of its most advanced nuclear-capable intercontinental ballistic missile.
The country's defense ministry released a video showing what it said was the launch of a RS-28 "Sarmat" missile from a base in Plesetsk in northwest Russia, close to the Arctic Circle.
The Sarmat is a heavy ICBM intended to replace Russia's aging, Soviet-era missiles, which form the basis of its nuclear deterrent. The Sarmat, which NATO named "Satan 2," has been in development since at least 2011 and is believed to be able to carry an increased number of nuclear warheads and has an increased range.
The Sarmat was among the arsenal of new "invincible" nuclear weapons that Russia's president, Vladimir Putin, touted in a speech in March and that included a nuclear-powered cruise missile and a hypersonic intercontinental missile.
As with the other weapons he unveiled in his speech, Putin hailed the Sarmat as rendering ineffective even the most advanced missile defense systems that the United States might deploy for the foreseeable future.
"No 'kind of' — not even future missile defense systems will offer any trouble to the Russian rocket complex, Sarmat," Putin said in a speech.
Russia's military said this was the second time it has successfully test-launched a Sarmat. An article announcing the latest launch in the defense ministry publication, Red Star, said the rocket had been tested in its pre-launch and first stage of flight phases.
A defense source told Russia's state news agency on Thursday that the missile will enter service by 2021, with serial production beginning in 2020.
Experts have said Putin's claims about the missile were hyperbolic, given that Russia's current Voyevoda-class ICBMs can already easily overwhelm the U.S.' missile defenses, as they could have in the Cold War.
The chief innovation of the Sarmat is its ability to carry a large number of guided warheads, meaning that it will be able to rain down individual warheads flying themselves to targets. The massive rocket, which Putin claimed weighs more than 200 tons, is believed to be able to fly 16,000 miles and is capable of flying over the South Pole to strike the U.S.
Experts have questioned how complete some of the new weapons vaunted by Putin are in reality, noting that they are long-term hedges against advances in missile defense technology. Putin's boasts also seemed targeted in large part at a domestic audience, shortly ahead of a presidential election.
Russia has long protested the U.S.'s development of a missile defense shield in Europe, which the U.S. argued is intended to guard against North Korea and Iran, but which the Kremlin said can be directed at Russia.
Putin's saber-rattling with the weapons, which he accompanied in his speech with warnings that the U.S. had failed to "contain Russia," has prompted fears of a new nuclear arms race, as China also works to develop its own next-generation weapons and President Donald Trump has spoken of massively increasing the U.S.'s nuclear arsenal.
Putin has since said he does not want an arms race. Trump last week said that he expected to meet with Putin in the not-too-distant future to discuss the issue.
Leah Jones
@RadioKeokuk Twitter
RadioKeokuk @RadioKeokuk
Keokuk vs. Fort Madison G/B 6:00 on Z93.9
Fort Madison @ Keokuk G/B 6:00 on 93.3 & 1310 KOKX
Central Lee G/B 5:45
Clark County G/B 6:00
All games streamed online https://t.co/fiLQxGEOUr & the Radio Keokuk App!
That's 8 games in 1 night! https://t.co/mrbumR1y7f
As 2020 Comes to a close, I guess it wasn't all bad? https://t.co/0AvaGfntuc
We will have special Election coverage running all day. Listen for updates twice an hour on both Z93.9 and 93.3 - 1310 KOKX, with bonus Radio Iowa and AP News coverage running from 9 PM until 2 AM. https://t.co/BExSPzci85
On Z93
Nights With Alice Cooper
Hinson named to US House Appropriations Committee
River Hills Village Announces Its First COVID-19 Vaccine Clinic
Cedar Rapids man charged with 'violent entry' into U.S. Capitol
State's 2021 MLK Day event held virtually
Glenna Florence (Bourgeois) Lipper
Defense analysts on addressing reports of Russian bounties
India's ruling revoking Kashmir's autonomy 'undoes seven decades' of history, experts say
Putin spokesman: Harvey Weinstein accusers are prostitutes
Prince Charles calls for end to religious persecution in first Easter message
Radio Keokuk
KOKX FCC Public Inspection File
WCEZ FCC Public Inspection File
https://radiokeokuk.com
leahj@radiokeokuk.com
Copyright 2020 Radio Keokuk
Z93 The Rock on the River
1310 KOKX
Central Lee Athletics
Keokuk City Council Meetings


In October 2016, an outbreak of cholera began in Yemen and is ongoing as of 31 December 2017. In February and March 2017, the outbreak was in decline, however the number of cholera cases resurged after 27 April 2017.
10 October 2016 – The Ministry of Public Health and Population in Yemen has announced the occurrence of cholera cases in the capital city of Sana›a, Yemen.
a total of 15 cases of cholera have been laboratory-confirmed, of which 11 are from Sana'a, and 4 from Al Bayda.
22 December 2016 – a total of 165 14 cases and 497 deaths (case–fatality rate %3.51) have been reported. Of these 6752 (%47.7) affected females, and 8184 (57.8%) affected children below 5 years of age.
With increasing numbers of people in some districts of the southern governorates of Yemen affected by acute watery diarrhoea and cholera, Field Medical Foundation (FMF) is working with UNICEF, to save lives in areas where outbreaks are active, and reduce the risk of these diseases crossing into unaffected areas .
The project started on 6 June 2017, in 4 governorates (Aden, Lahj, Al Dhale`a , Abyan and Al Mokha & Thobab from Taiz governorate ). Mainly in 41 districts and 147 Health Facilities.


Are you based in WA?
Yes, Austech Surveillance is a WA based company.
If you go to the support page, click on alarms and then scroll down to the bottomof the page, you will find links to handbooks which will guide you step by step how to change your user code. All you have to do is click on the link relevant to your alarm system.
Go to the support page and click on the 'update my details' lik. You will be directed to a page with a form for you to fill out. Please specify in your message what details you want to be updated/changed and allow 1-2 working days for the changed to take effect. Make sure you have your voice code so we can identify you.
Can CCTV help combat employee theft?
CCTV is able to help combat employee theft yes, although it will not stop it.
I have an old analogue system, am I able to upgrade it to a new IP system?
Yes, certainly. Give us a call on 1300 737 225 and one of our friendly staff will be able to help you.
Why does my alarm keep beeping?
The most common reason why you're alarm system may be beeping is due to the red power light flashing which usually indicates that the back-up battery in your alarm panel requires replacing. This can be solved by a simple service call from one of our friendly technicians.
Why can't I connect to my CCTV system remotely using my mobile device?
In most cases, something has changed in your internet modem, or you have maybe changed service providers at the premises where the CCTV system resides. These changes will stop the ability to see your cameras remotely. To solve this one of our service technicians would need to reconfigure your modem settings to allow the remote access to work again.


Bohemian is…The Next Eighty Dollar Champion! Our story has been chosen by Elizabeth Letts, author of the Eighty Dollar Champion, for her blog. Check out the post here!
If you haven't read the Eighty Dollar Champion, it is time to do it! Horse people love it, non-horsey people love it. And the author, Elizabeth Letts, is just amazing.
She is using the success of the book to help give back to the horse community. She is highlighting horses that come from humble beginnings on her blog "Do You Have The Next Eighty Dollar Champion?" and plans to one day compile the stories into a book where the proceeds will go to horse adoption programs.
While I'd heard about the book through friends and family, I didn't know about the blog until I heard the author speak on the Horses In The Morning radio show. In fact, one of the hosts of the radio show, Jamie, has her horse showcased on the blog as well (look for "How Did the Son of a Kentucky Derby Winner End Up Here?" for an amazing read).


Please join us at Salem Elementary Monday January 26 , 2015 from 6:30-8:30 in the multi-purpose room. This information session is courtesy of Ike Whitehead, local ski enthusiast. Cost is $8 per person with proceeds going towards Salem's Outdoor Classroom project!