Syllabus
HARRIS TRUST AND SAVINGS BANK, AS TRUSTEE FOR THE AMERITECH PENSION TRUST, et al. <font i="1">v. SALOMON SMITH BARNEY INC. et al.
The Employee Retirement Income Security Act of 1974 (ERISA) bars a fiduciary of an employee benefit plan from causing the plan to engage in certain prohibited transactions with a party in interest, §406(a), defined to encompass entities that a fiduciary might be inclined to favor at the expense of the plans beneficiaries, see §3(14). Section 406s prohibitions are subject to both statutory and regulatory exemptions. See §§408(a), (b). The Ameritech Pension Trust (APT), an ERISA pension plan, allegedly entered into a transaction prohibited by §406(a) and not exempted by §408 with respondent Salomon Smith Barney Inc. (Salomon), a nonfiduciary party in interest. APTs fiduciariesits trustee, petitioner Harris Trust and Savings Bank, and its administrator, petitioner Ameritech Corporationsued Salomon under §502(a)(3), which authorizes a fiduciary, inter alios, to bring a civil action to obtain appropriate equitable relief to redress violations of ERISA Title I. Salomon moved for summary judgment, arguing that §502(a)(3), when used to remedy a transaction prohibited by §406(a), authorizes a suit only against the party expressly constrained by §406(a)the fiduciary who caused the plan to enter the transactionand not against the counterparty to the transaction. The District Court denied the motion, holding that ERISA provides a private cause of action against nonfiduciaries who participate in a prohibited transaction, but granted Salomons motion for certification of the issue for interlocutory appeal. The Seventh Circuit reversed, holding that the authority to sue under §502(a)(3) does not extend to a suit against a nonfiduciary party in interest to a transaction barred by §406(a).
Held:<unicode value="8194"> Section 502(a)(3)s authorization to a plan participant, beneficiary, or fiduciary to bring a civil action for appropriate equitable relief extends to a suit against a nonfiduciary party in interest to a prohibited transaction barred by §406(a). Pp. 515.
(a) In providing that [a] fiduciary … shall not cause the plan to engage in a [prohibited] transaction (emphasis added), §406(a)(1) imposes a duty only on the fiduciary that causes the plan to engage in the transaction. However, this Court rejects the Seventh Circuits and Salomons conclusion that, absent a substantive ERISA provision expressly imposing a duty on a nonfiduciary party in interest, the nonfiduciary party may not be held liable under §502(a)(3), one of ERISAs remedial provisions. Because §502(a)(3) itself imposes certain duties, liability under that provision does not depend on whether ERISAs substantive provisions impose a specific duty on the party being sued. While §502(a)(3) does not authorize appropriate equitable relief at large , but only for the purpose of redress[ing any] violations or … enforc[ing] any provisions of ERISA or an ERISA plan, e.g., Peacock v. Thomas, 516 U. S. 349, the section admits of no limit (aside from the appropriate equitable relief caveat) on the universe of possible defendants. Indeed, §502(a)(3) makes no mention at all of which parties may be proper defendantsthe focus, instead, is on redressing the act or practice which violates any provision of [ERISA Title I]. (Emphasis added.) Other provisions of ERISA, by contrast, expressly address who may be a defendant. See, e.g., §409(a). And, in providing that a civil action may be brought by a participant, beneficiary, or fiduciary (emphasis added), §502(a) itself demonstrates Congress care in delineating the universe of plaintiffs who may bring certain civil actions. The matter is conclusively resolved by §502( l ), which provides for assessment by the Secretary of Labor of a civil penalty against a fiduciary or other person who knowingly participates in a fiduciarys ERISA violation, defining the amount of such penalty by reference to the amount ordered by a court to be paid by such … other person … in a judicial proceeding … by the Secretary under subsection … (a)(5). (Emphasis added.) The plain implication is that the Secretary may bring a civil action under §502(a)(5) against an other person who knowing[ly] participat[es] in a fiduciarys violation, notwithstanding the absence of any ERISA provision explicitly imposing a duty upon an other person not to engage in such knowing participation. It thus follows that a participant, beneficiary, or fiduciary may bring suit against an other person under the similarly worded subsection (a)(3). See Mertens v. Hewitt Associates, 508 U. S. 248. Id., at 261, distinguished. Section 502( l ), therefore, refutes the notion that §502(a)(3) (or (a)(5)) liability hinges on whether the particular defendant labors under a duty expressly imposed by ERISA Title Is substantive provisions. Pp. 510.
(b) The Court rejects Salomons argument that it would contravene common sense for Congress to impose civil liability on a party, such as a nonfiduciary party in interest to a §406(a) transaction, that is not a wrongdoer in the sense of violating a duty expressly imposed by ERISA Title Is substantive provisions. This argument ignores the limiting principle explicit in §502(a)(3): that the retrospective relief sought be appropriate equitable relief. The common law of trusts, which offers a starting point for ERISA analysis, Hughes Aircraft Co. v. Jacobson, 525 U. S. 432, plainly countenances the sort of relief sought by petitioners against Salomon here, see Moore v. Crawford, 130 U. S. 122. It also sets limits on restitution actions against defendants other than the principal wrongdoer. Translated to the instant context, a transferee of ill-gotten plan assets may be held liable, if the transferee (assuming he has purchased for value) knew or should have known of the circumstances that rendered the transaction prohibited. Those circumstances, in turn, involve a showing that the plan fiduciary , with actual or constructive knowledge of the facts satisfying the elements of a §406(a) transaction, caused the plan to engage in the transaction. Lockheed Corp. v. Spink, 517 U. S. 882. The common law additionally prompts rejection of Salomons complaint that the Courts view of §502(a)(3) would incongruously allow not only the harmed beneficiaries, but also the culpable fiduciary, to seek restitution from the arguably less culpable counterparty-transferee. The common law sees no incongruity in such a rule: Although the fiduciary bases his cause of action upon his own wrongdoing, he may maintain the action because its purpose is to recover money for the plan. And while Salomon correctly observes that the antecedent violation of §406(a)s per se prohibitions on transacting with a party in interest was unknown at common law, the Court rejects as unsupported Salomons suggestion that common-law liability should not attach to an act that does not violate a common-law duty . Thus, an action for restitution against a transferee of tainted plan assets satisfies §502(a)(3)s appropriate[ness] criterion. Such relief is also equitable. See Mertens, supra, at 260. Pp. 1014.
(c) The Court declines to depart from §502(a)(3)s text on the basis of two nontextual matters: (1) that the congressional Conference Committee rejected language that would have expressly imposed a duty on nonfiduciary parties to §406(a) transactions, and (2) that the policy consequences of recognizing a §502(a)(3) action in this case could be devastating because counterparties, faced with the prospect of liability for dealing with a plan, may charge higher rates or, worse, refuse altogether to transact with plans. In ERISA cases, the Courts analysis begins with the statutory language and, where that language is clear, it ends there as well. Hughes Aircraft Co. v. Jacobson, 525 U. S. 432. Section 502(a)(3), as informed by §502( l ), satisfies this standard. Pp. 1415.
184 F. 3d 646, reversed and remanded.
Thomas, J., delivered the opinion for a unanimous Court.


--- layout: default ---
Hong Kong Code Conference will be held on Saturday 24th October 2015. It's a programming conference aimed at all programmers in Hong Kong. We want to share our skills and opinions. We want to inspire each other with our passion. We want to build a closer, stronger community.
we ❤ hk coders
{{ speaker.bio }}
{% if speaker.twitter %} Twitter: @{{ speaker.twitter }} {% endif %} {% if speaker.github %} Github: @{{ speaker.github }} {% endif %}


Deaths and Mortality
(Data are for the U.S.)
- Number of deaths: 2,448,017
- Death rate: 825.9 deaths per 100,000 population
- Life expectancy: 77.8 years
- Infant Mortality rate: 6.87 deaths per 1,000 live births
Number of deaths for leading causes of death:
- Heart disease: 652,091
- Cancer: 559,312
- Stroke (cerebrovascular diseases): 143,579
- Chronic lower respiratory diseases: 130,933
- Accidents (unintentional injuries): 117,809
- Diabetes: 75,119
- Alzheimer's disease: 71,599
- Influenza/Pneumonia: 63,001
- Nephritis, nephrotic syndrome, and nephrosis: 43,901
- Septicemia: 34,136
Source: Deaths: Final Data for 2005, Tables C, 7, 30
More data
- Deaths: Final Data for 2005, Tables 12
- Deaths: Leading Causes for 2004
- United States Life Tables, 2004
- Health Data Interactive
Contact Us:
- National Center for Health Statistics
3311 Toledo Rd
Hyattsville, MD 20782 - 1<PHONE_NUMBER>
- cdcinfo@cdc.gov


{% for panel in include.panels %}
{{ panel.title }}
{{ panel.description }}
Find Out More
{% endfor %}


--- layout: default title: Formação de Coachs de Emagrecimento permalink: "formacao-coach-emagrecimento" ---


This function is similar to rcmd()
, but it has slightly different
defaults:
The repos
options is unchanged.
No extra environment variables are defined.
rcmd_copycat( cmd, cmdargs = character(), libpath = .libPaths(), repos = getOption("repos"), env = character(), ... )
| cmd | Command to run. See |
|---|---|
| cmdargs | Command line arguments. |
| libpath | The library path. |
| repos | The |
| env | Environment variables to set for the child process. |
| ... | Additional arguments are passed to |
callr
makes a copy of the user's .Renviron
file and potentially of
the local or user .Rprofile
, in the session temporary
directory. Avoid storing sensitive information such as passwords, in
your environment file or your profile, otherwise this information will
get scattered in various files, at least temporarily, until the
subprocess finishes. You can use the keyring package to avoid passwords
in plain files.


Authenticating...
Enter your Craedl authentication token, which you can obtain from your Craedl account, below.


Float is a property that allows you to determine on which side the element will be aligned.
float: left | right;
To cancel positioning, for this it is enough to register
float: none;
It’s best to use float to wrap text around a picture
Floats for menu
What is the minus of using float?
.clearfix::after {
content: '';
display: block;
clear: both;
}
div {
clear: both;
}
.parent {
overflow: auto;
}
What's better yo use?
The Flexbox Layout (Flexible Box) module aims at providing a more efficient way to lay out, align and distribute space among items in a container, even when their size is unknown and/or dynamic (thus the word "flex").
Elements in flexbox can be located along the main axis (from main-start to main-end) or along the сross axis (from cross-start to cross-end).
Properties for the Parent (flex container)
display
.flex-container {
display: flex;
}
flex-direction
row | row-reverse | column | column-reverse
flex-wrap
nowrap | wrap | wrap-reverse
justify-content
align-items
Properties for the Children (flex items)
order
flex-grow
align-self
If you are just starting your study of CSS Grid, then I recommend passing the game Grid CSS Garden.


Are you ready study on here if you get started to on right now
Name
Email
Create a username
Create a password
Confirm your password
Mobile phone


Upper GI bleed guidelines could prevent ER visits
by Amanda Vitaro-McGillNew guidelines for the management of patients with upper GI bleeds suggest, among other findings, that doctors can send such patients home safely.
The work could help reduce pressures in busy emergency departments.
Upper GI bleeding is an acute internal bleeding condition which predominantly affects those over 50. Ulcer most often cause the common condition.
“Sending patients home was a sensitive topic that hadn’t yet been formally covered,” explains Allan Barkun, senior scientist in the Injury Repair Recovery Program at the Research Institute at McGill University Health Centre and director of therapeutic endoscopy.
“We decided to grab the bull by the horns. Now, we know that gastroscopy—the examination of the upper gut with an endoscope—can at times be done the next day in an outpatient setting, reducing pressures in the ER.”
The multidisciplinary guidelines have redefined the best practices for before, during, and after endoscopy for patients dealing with UGIB. Among various topics outlined in the guideline, some noteworthy recommendations include:
- When to send patients home
- When to perform endoscopy
- Treating UGIB with hemostatic powders (i.e. spray)
- When to administer secondary prophylaxis (i.e. prevention medication)
When it comes to patients who require hospitalization for upper GI bleeding, the experts concluded that gastroscopy should not be performed too soon. The sickest patients must first receive adequate intravascular volume repletion with blood and blood products (i.e. resuscitation) to avoid intra-procedural cardiovascular and respiratory complications.
“[M]edical literature shows that [scoping too early] may be a problem in hospitals around the world. On an international scale, these new guidelines may save lives.”
Internationally, the use of hemostatic powders (i.e., a spray used to stop the bleeding) is picking up speed. The trouble is that many doctors don’t know when—and when not—to use it.
“The spray method has been used in Canada for years, but in United States and other countries, it’s relatively new. The new guidelines will dispel some of the misuse that’s been happening with this method,” says Barkun.
The use of secondary prophylaxis (i.e., medication which is meant to prevent episodes of bleeding) is particularly intriguing to Barkun.
“Who should receive additional medications to prevent subsequent episodes of bleeding? This is an extremely important question tackled in the guideline.”
Ultimately, Barkun hopes the new guidelines will improve the management of patients while they’re in the hospital, and the recurrence of bleeding when they leave it.
The new guidelines appear in Annals of Internal Medicine.
Source: McGill University


I am a December 2020 Graduate student at Rutgers University pursuing a Master's degree in Information Technology & Analytics. My Commendable Skills are in R, Python, SQL, Excel, Tableau, Statistics and Data Analytics. My passion for Data Analytics has given me a boost to complete two internships in a Data Science related field and passionately work on almost 6 projects where I used various Softwares and enhance my analytics skills.
I am looking for a perfect Full time opportunity to use my technical knowledge in real world data which will directly affect the companies performance, which will be very motivating for me to work on and achieve my professional goals.
Statistical analysis & the know-how of leveraging power of computing frameworks to mine-process and present the value out of unstructured bulk of data is the most important technical skill I have acquired for my passion to become a data scientist.
Development is important in Data Science, I have completed my internship as a Data Analyst Intern this summer. I strongly believe that Development , Stats and Analysis are three main pillars of Data Science.
Whats the use of analyzing millions of rows of data if one can't visualize it. Tableau and Power BI are the best tools to tell a story from any given data. I'm also able to present complex results to a non-technical audience.


--- layout: default ---
This course introduces homotopy type theory, which provides alternative foundations for mathematics based on deep connections between type theory, from logic and computer science, and
Such foundations are far closer to actual mathematics than the traditional ones based on set theory and logic, and are very well suited for use in computer-based proof systems, especially formal verification systems. We will use the Lean Theorem Prover in this course. Note that the latest version (Lean 3) doen not support Homotopy Type Theory (yet), so you must use Lean 2.
Basic topology and mathematical maturity will be assumed. Some familiarity with algebraic topology will be helpful, as will some familiarity with programming in a functional language. This course has a flavour very different from typical mathematics courses, so open-mindedness and willingness to learn alien concepts is essential.


OpenEth is an international team focussed on mapping the space of ethics. If you have questions or would like more info, please get in touch.
Sign up with your email address to receive news and updates.


{include file="common/header" /}
{include file="common/top" /}
我的桌面
{include file="common/footer" /}


This documentation relates to Opera's now deprecated .oex Extension API framework for Opera versions <= 12.15 and also provided by our OEX2NEX shim library.
For the latest Opera Extensions API documentation for Opera versions > 12.15 please consult the latest Opera Extensions API documentation online.
Opera extensions give you the power to add additional functionality right into the Opera desktop browser using web standards such as HTML, JavaScript and CSS. In this article, we'll look at how to use the extensions APIs to manipulate Opera desktop's windows system. This is done using the Windows
object.
If you need to get grounding in the basics of Opera extensions before carrying on, the Saying Hello World article is a good place to start.
As always, we use an event listener to listen out, and launch a function when an event is triggered, in this case once the window finishes loading. We then check if the function opera.extension.windows.create
exists before calling it:
window.addEventListener( "load", function(){
if( opera.extension.windows.create )
{
opera.extension.windows.create();
} else {
// Couldn't find an opera.extension.windows.create object.
}
}, false);
Events are fired when an interaction occurs on the Windows
object. For example, if the Windows is in focus, an onfocus
event is fired. In Opera extensions, there are four to play with:
onfocus
onclose
oncreate
onblur
As the events are fired, we use the opera.postError
method to handle creating appropriate messages. You can read the opera.postError
dumps in the Error Console (Tools > Advanced > Error Console).
window.addEventListener( "load", function(){
if( opera.extension.windows )
{
opera.extension.windows.onfocus = function( event ){
opera.postError("windows is focused");
}
opera.extension.windows.onclose = function( event ){
opera.postError("windows is closed");
}
opera.extension.windows.oncreate = function( event ){
opera.postError("windows is create");
}
opera.extension.windows.onblur = function( event ){
opera.postError("windows loses focus");
}
} else {
// couldn't find an opera.extension.windows object.
}
}, false);
Next let's bring our attention to event listeners. Similar to a standard JavaScript event listener, you give an Opera extension event listener three arguments: the event handler, the function to fire and a boolean value. The allowed event types for an Opera extension event listener are as follows:
focus
close
create
update
blur
In the code snippet below, we register a focus
event in an addEventListener
function. The last argument determines the phase in which the event handler should be fired. It should be a boolean value and we will keep it false
for now.
opera.extension.windows.addEventListener( "focus", function(){// do something}, false)
The difference between addEventListener
and onevent
lies in the difference between how the two event models work. For example this snippet will fire only the last line, since it has replaced the first line:
opera.extension.windows.onfocus = function(){ // do something };
opera.extension.windows.onfocus = function(){ // do something };
This second snippet will fire both, since they are both registered.
opera.extension.windows.addEventListener( "focus", function(){ // do something }, false);
opera.extension.windows.addEventListener( "focus", function(){ // do something }, false);
In this article we discussed how to manipulate Windows in the Opera desktop browser using the windows
object.
object opera.extension.windows


---
sort_order: 77
tei_id: rdx_b5j2m.p.idm59321328
annotation_count: 0
images:
small-thumbnail: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p75zj/mini-thumbnail/
json: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p75zj/info/
full: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p75zj/fs/
page: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p75zj/single-page/
thumbnail: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p75zj/thumbnail/
title: Page 77
number: 77
---
{% raw %}PROVIDENTIAL DELIVERANCE. 73{% endraw %}
{% raw %}servant; but as time passed on I could discern no{% endraw %}
{% raw %}particular effort of the kind.{% endraw %}
{% raw %}In our intervals of leisure I tried every possible{% endraw %}
{% raw %}means to move his heart. With tears and groans I{% endraw %}
{% raw %}besought him not to sell me away from my wife and{% endraw %}
{% raw %}children. I dwelt on my past services to his father,{% endraw %}
{% raw %}and called to his remembrance a thousand things I{% endraw %}
{% raw %}had done for him personally. I told him about the{% endraw %}
{% raw %}wretched condition of the slaves I had seen near{% endraw %}
{% raw %}Vicksburg. Sometimes he would shed tears himself,{% endraw %}
{% raw %}and say he was sorry for me. But still I saw his{% endraw %}
{% raw %}purpose was unchanged. He now kept out of my{% endraw %}
{% raw %}way as much as possible, and forestalled every effort{% endraw %}
{% raw %}I made to talk with him. His conscience evidently{% endraw %}
{% raw %}troubled him. He knew he was doing a cruel and{% endraw %}
{% raw %}wicked thing, and wanted to escape from thinking{% endraw %}
{% raw %}about it.  I fell down and clung to his{% endraw %}
{% raw %}knees in entreaties. Sometimes when too closely{% endraw %}
{% raw %}pressed, he would curse and strike me. May God{% endraw %}
{% raw %}forgive him ! And yet it was not all his fault; he{% endraw %}
{% raw %}was made so by the accursed relation of slave-master{% endraw %}
{% raw %}and slave. I was property,—not a man, not a father,{% endraw %}
{% raw %}not a husband. And the laws of property and self-{% endraw %}
{% raw %}interest, not of humanity and love, bore sway.{% endraw %}
{% raw %}At length everything was wound up but this{% endraw %}
{% raw %}single affair. I was to be sold the next day, and{% endraw %}
{% raw %}Master Amos was to set off on his return in a steam¬{% endraw %}
{% raw %}boat at six o'clock in the afternoon. I could not{% endraw %}
{% raw %}sleep that night; its hours seemed interminably{% endraw %}
{% raw %}long, though it was one of the shortest of the year.{% endraw %}
{% raw %}The slow way in which we had come down had{% endraw %}


License¶
This project is under BSD license.
Installation¶
With pip3 from terminal: $ pip3 install ruptures
.
Or download the source codes from latest release and run the following lines from inside the folder $ python3 setup.py install
or $ python3 setup.py develop
.
User guide¶
This section explains how to use implemented algorithms.
ruptures
has an object-oriented modelling approach: change point detection algorithms are
broken down into two conceptual objects that inherits from base classes: BaseEstimator
and
BaseCost
.
Initializing a new estimator¶
Each change point detection algorithm inherits from the base class ruptures.base.BaseEstimator
.
When a class that inherits from the base estimator is created, the .__init__()
method initializes
an estimator with the following arguments:
'model'
: “l1”, “l2”, “normal”, “rbf”, “linear”, “ar”. Cost function to use to compute the approximation error.'cost'
: a custom cost function to the detection algorithm. Should be aBaseCost
instance.'jump'
: reduce the set of possible change point indexes; predicted change points can only be a multiple of'jump'
.'min_size'
: minimum number of samples between two change points.
Making a prediction¶
The main methods are .fit()
, .predict()
, .fit_predict()
:
.fit()
: generally takes a signal as input and fit the algorithm on the data.predict()
: performs the change point detection. This method returns a list of indexes corresponding to the end of each regimes. By design, the last element of this list is the number of samples..fit_predict()
: helper method which calls.fit()
and.predict()
successively.
Creating a new cost function¶
In order to define custom cost functions, simply create a class that inherits from
ruptures.base.BaseCost
and implement the methods .fit(signal)
and .error(start, end)
:
The method
.fit(signal)
takes a signal as input and sets parameters. It returns'self'
.The method
.error(start, end)
takes two indexes'start'
and'end'
and returns the cost on the segment start:end.
An example can be found in Custom cost class.


Total cost: €0
Test: 4242 4242 4242 4242
Payment succeeded Continue to listing
There's nothing for you to pay.


Advanced Roofing Solutions, Maui, is a family owned roofing company with a dedication to top craftsmanship and superior customer service.
Scott Hansen, owner, is a HI licensed roofing contractor. Lic#C-29775 Scott has been in the construction business for 20 years and in 2008, started Advanced Roofing Solutions, serving all of Hawaii.
Litttle blurb about the service would go right here along with any other necessary tet.
Litttle blurb about the service would go right here along with any other necessary tet.
Litttle blurb about the service would go right here along with any other necessary tet.
There is no question we would build a home again, but only with Fred DidierRead Louis and Chuck's Story
Scott and his team have exceeded my expectations. His team is professional, reliable, and worked quickly


It is possible to create custom form field controls that can be used inside <mat-form-field>
. This
can be useful if you need to create a component that shares a lot of common behavior with a form
field, but adds some additional logic.
For example in this guide we'll learn how to create a custom input for inputting US telephone
numbers and hook it up to work with <mat-form-field>
. Here is what we'll build by the end of this
guide:
In order to learn how to build custom form field controls, let's start with a simple input component that we want to work inside the form field. For example, a phone number input that segments the parts of the number into their own inputs. (Note: this is not intended to be a robust component, just a starting point for us to learn.)
class MyTel {
constructor(public area: string, public exchange: string, public subscriber: string) {}
}
@Component({
selector: 'example-tel-input',
template: `

<input class="area" formControlName="area" maxlength="3">
–
<input class="exchange" formControlName="exchange" maxlength="3">
–
<input class="subscriber" formControlName="subscriber" maxlength="4">

`,
styles: [`
div {
display: flex;
}
input {
border: none;
background: none;
padding: 0;
outline: none;
font: inherit;
text-align: center;
color: currentColor;
}
`],
})
export class MyTelInput {
parts: FormGroup;
@Input()
get value(): MyTel | null {
let n = this.parts.value;
if (n.area.length == 3 && n.exchange.length == 3 && n.subscriber.length == 4) {
return new MyTel(n.area, n.exchange, n.subscriber);
}
return null;
}
set value(tel: MyTel | null) {
tel = tel || new MyTel('', '', '');
this.parts.setValue({area: tel.area, exchange: tel.exchange, subscriber: tel.subscriber});
}
constructor(fb: FormBuilder) {
this.parts = fb.group({
'area': '',
'exchange': '',
'subscriber': '',
});
}
}
The first step is to provide our new component as an implementation of the MatFormFieldControl
interface that the <mat-form-field>
knows how to work with. To do this, we will have our class
implement MatFormFieldControl
. Since this is a generic interface, we'll need to include a type
parameter indicating the type of data our control will work with, in this case MyTel
. We then add
a provider to our component so that the form field will be able to inject it as a
MatFormFieldControl
.
@Component({
...
providers: [{provide: MatFormFieldControl, useExisting: MyTelInput}],
})
export class MyTelInput implements MatFormFieldControl<MyTel> {
...
}
This sets up our component, so it can work with <mat-form-field>
, but now we need to implement the
various methods and properties declared by the interface we just implemented. To learn more about
the MatFormFieldControl
interface, see the
form field API documentation.
value
This property allows someone to set or get the value of our control. Its type should be the same
type we used for the type parameter when we implemented MatFormFieldControl
. Since our component
already has a value property, we don't need to do anything for this one.
stateChanges
Because the <mat-form-field>
uses the OnPush
change detection strategy, we need to let it know
when something happens in the form field control that may require the form field to run change
detection. We do this via the stateChanges
property. So far the only thing the form field needs to
know about is when the value changes. We'll need to emit on the stateChanges stream when that
happens, and as we continue flushing out these properties we'll likely find more places we need to
emit. We should also make sure to complete stateChanges
when our component is destroyed.
stateChanges = new Subject<void>();
set value(tel: MyTel | null) {
...
this.stateChanges.next();
}
ngOnDestroy() {
this.stateChanges.complete();
}
id
This property should return the ID of an element in the component's template that we want the
<mat-form-field>
to associate all of its labels and hints with. In this case, we'll use the host
element and just generate a unique ID for it.
static nextId = 0;
@HostBinding() id = `example-tel-input-${MyTelInput.nextId++}`;
placeholder
This property allows us to tell the <mat-form-field>
what to use as a placeholder. In this
example, we'll do the same thing as matInput
and <mat-select>
and allow the user to specify it
via an @Input()
. Since the value of the placeholder may change over time, we need to make sure to
trigger change detection in the parent form field by emitting on the stateChanges
stream when the
placeholder changes.
@Input()
get placeholder() {
return this._placeholder;
}
set placeholder(plh) {
this._placeholder = plh;
this.stateChanges.next();
}
private _placeholder: string;
ngControl
This property allows the form field control to specify the @angular/forms
control that is bound
to this component. Since we haven't set up our component to act as a ControlValueAccessor
, we'll
just set this to null
in our component.
ngControl: NgControl = null;
It is likely you will want to implement ControlValueAccessor
so that your component can work with
formControl
and ngModel
. If you do implement ControlValueAccessor
you will need to get a
reference to the NgControl
associated with your control and make it publicly available.
The easy way is to add it as a public property to your constructor and let dependency injection handle it:
constructor(
...,
@Optional() @Self() public ngControl: NgControl,
...,
) { }
Note that if your component implements ControlValueAccessor
, it may already be set up to provide
NG_VALUE_ACCESSOR
(in the providers
part of the component's decorator, or possibly in a module
declaration). If so, you may get a cannot instantiate cyclic dependency error.
To resolve this, remove the NG_VALUE_ACCESSOR
provider and instead set the value accessor directly:
@Component({
...,
providers: [
...,
// Remove this.
// {
// provide: NG_VALUE_ACCESSOR,
// useExisting: forwardRef(() => MatFormFieldControl),
// multi: true,
// },
],
})
export class MyTelInput implements MatFormFieldControl<MyTel>, ControlValueAccessor {
constructor(
...,
@Optional() @Self() public ngControl: NgControl,
...,
) {
// Replace the provider from above with this.
if (this.ngControl != null) {
// Setting the value accessor directly (instead of using
// the providers) to avoid running into a circular import.
this.ngControl.valueAccessor = this;
}
}
}
For additional information about ControlValueAccessor
see the API docs.
focused
This property indicates whether the form field control should be considered to be in a
focused state. When it is in a focused state, the form field is displayed with a solid color
underline. For the purposes of our component, we want to consider it focused if any of the part
inputs are focused. We can use the focusin
and focusout
events to easily check this. We also
need to remember to emit on the stateChanges
when the focused stated changes stream so change
detection can happen.
In addition to updating the focused state, we use the focusin
and focusout
methods to update the
internal touched state of our component, which we'll use to determine the error state.
focused = false;
onFocusIn(event: FocusEvent) {
if (!this.focused) {
this.focused = true;
this.stateChanges.next();
}
}
onFocusOut(event: FocusEvent) {
if (!this._elementRef.nativeElement.contains(event.relatedTarget as Element)) {
this.touched = true;
this.focused = false;
this.onTouched();
this.stateChanges.next();
}
}
empty
This property indicates whether the form field control is empty. For our control, we'll consider it empty if all the parts are empty.
get empty() {
let n = this.parts.value;
return !n.area && !n.exchange && !n.subscriber;
}
shouldLabelFloat
This property is used to indicate whether the label should be in the floating position. We'll
use the same logic as matInput
and float the placeholder when the input is focused or non-empty.
Since the placeholder will be overlapping our control when it's not floating, we should hide
the –
characters when it's not floating.
@HostBinding('class.floating')
get shouldLabelFloat() {
return this.focused || !this.empty;
}
span {
opacity: 0;
transition: opacity 200ms;
}
:host.floating span {
opacity: 1;
}
required
This property is used to indicate whether the input is required. <mat-form-field>
uses this
information to add a required indicator to the placeholder. Again, we'll want to make sure we run
change detection if the required state changes.
@Input()
get required() {
return this._required;
}
set required(req: BooleanInput) {
this._required = coerceBooleanProperty(req);
this.stateChanges.next();
}
private _required = false;
disabled
This property tells the form field when it should be in the disabled state. In addition to reporting the right state to the form field, we need to set the disabled state on the individual inputs that make up our component.
@Input()
get disabled(): boolean { return this._disabled; }
set disabled(value: BooleanInput) {
this._disabled = coerceBooleanProperty(value);
this._disabled ? this.parts.disable() : this.parts.enable();
this.stateChanges.next();
}
private _disabled = false;
errorState
This property indicates whether the associated NgControl
is in an error state. For example,
we can show an error if the input is invalid and our component has been touched.
get errorState(): boolean {
return this.parts.invalid && this.touched;
}
However, there are some error triggers that we can't subscribe to (e.g. parent form submissions),
to handle such cases we should re-evaluate errorState
on every change detection cycle.
/** Whether the component is in an error state. */
errorState: boolean = false;
constructor(
...,
@Optional() private _parentForm: NgForm,
@Optional() private _parentFormGroup: FormGroupDirective
) {
...
}
ngDoCheck() {
if (this.ngControl) {
this.updateErrorState();
}
}
private updateErrorState() {
const parent = this._parentFormGroup || this.parentForm;
const oldState = this.errorState;
const newState = (this.ngControl?.invalid || this.parts.invalid) && (this.touched || parent.submitted);
if (oldState !== newState) {
this.errorState = newState;
this.stateChanges.next();
}
}
Keep in mind that updateErrorState()
must have minimal logic to avoid performance issues.
controlType
This property allows us to specify a unique string for the type of control in form field. The
<mat-form-field>
will add a class based on this type that can be used to easily apply
special styles to a <mat-form-field>
that contains a specific type of control. In this example
we'll use example-tel-input
as our control type which will result in the form field adding the
class mat-form-field-type-example-tel-input
.
controlType = 'example-tel-input';
setDescribedByIds(ids: string[])
This method is used by the <mat-form-field>
to set element ids that should be used for the
aria-describedby
attribute of your control. The ids are controlled through the form field
as hints or errors are conditionally displayed and should be reflected in the control's
aria-describedby
attribute for an improved accessibility experience.
The setDescribedByIds
method is invoked whenever the control's state changes. Custom controls
need to implement this method and update the aria-describedby
attribute based on the specified
element ids. Below is an example that shows how this can be achieved.
Note that the method by default will not respect element ids that have been set manually on the
control element through the aria-describedby
attribute. To ensure that your control does not
accidentally override existing element ids specified by consumers of your control, create an
input called userAriaDescribedby
like followed:
@Input('aria-describedby') userAriaDescribedBy: string;
The form field will then pick up the user specified aria-describedby
ids and merge
them with ids for hints or errors whenever setDescribedByIds
is invoked.
setDescribedByIds(ids: string[]) {
const controlElement = this._elementRef.nativeElement
.querySelector('.example-tel-input-container')!;
controlElement.setAttribute('aria-describedby', ids.join(' '));
}
onContainerClick(event: MouseEvent)
This method will be called when the form field is clicked on. It allows your component to hook in
and handle that click however it wants. The method has one parameter, the MouseEvent
for the
click. In our case we'll just focus the first <input>
if the user isn't about to click an
<input>
anyways.
onContainerClick(event: MouseEvent) {
if ((event.target as Element).tagName.toLowerCase() != 'input') {
this._elementRef.nativeElement.querySelector('input').focus();
}
}
Our custom form field control consists of multiple inputs that describe segments of a phone
number. For accessibility purposes, we put those inputs as part of a div
element with
role="group"
. This ensures that screen reader users can tell that all those inputs belong
together.
One significant piece of information is missing for screen reader users though. They won't be able
to tell what this input group represents. To improve this, we should add a label for the group
element using either aria-label
or aria-labelledby
.
It's recommended to link the group to the label that is displayed as part of the parent
<mat-form-field>
. This ensures that explicitly specified labels (using <mat-label>
) are
actually used for labelling the control.
In our concrete example, we add an attribute binding for aria-labelledby
and bind it
to the label element id provided by the parent <mat-form-field>
.
export class MyTelInput implements MatFormFieldControl<MyTel> {
...
constructor(...
@Optional() public parentFormField: MatFormField) {
@Component({
selector: 'example-tel-input',
template: `

Now that we've fully implemented the interface, we're ready to try our component out! All we need to
do is place it inside a <mat-form-field>
<mat-form-field>
<example-tel-input></example-tel-input>
</mat-form-field>
We also get all the features that come with <mat-form-field>
such as floating placeholder,
prefix, suffix, hints, and errors (if we've given the form field an NgControl
and correctly report
the error state).
<mat-form-field>
<example-tel-input placeholder="Phone number" required></example-tel-input>
<mat-icon matPrefix>phone</mat-icon>
<mat-hint>Include area code</mat-hint>
</mat-form-field>


KISSING A FOOL (1998)
Rating: 2 stars (out of 4.0) ******************************** Key to rating system: 2.0 stars - Debatable 2.5 stars - Some people may like it 3.0 stars - I liked it 3.5 stars - I am biased in favor of the movie 4.0 stars - I felt the movie's impact personally or it stood out ********************************* A Movie Review by David Sunga
Directed by: Doug Ellin
Written by: Doug Ellin and James Frey
Ingredients: Man who loves woman, woman who is engaged to man's friend
Synopsis: A man and a woman who intend to get married attend a wedding reception and ask Linda the publisher (Bonnie Hunt) how the bride and groom met. In four or five vignettes, she explains the story to them:
Writer Jay (Jason Lee) and his editor Samantha (Mili Avital) are both literary types, and they work together and are falling in love. Unfortunately, Samantha is already engaged to Jay's best friend, Max the womanizer (David Schwimmer). This situation is easily solved, since the moment Samantha finds out Max is a womanizer, she can live guiltlessly and happily ever after with Jay.
Opinion: The problem with this film is that the situation can be solved in a half hour sitcom, so KISSING A FOOL has a very difficult time stretching the story out to an hour and forty five minutes. They do this by breaking the film up into five or so comedic situations which last about five minutes a piece. Each situation is then followed by a five-minute let-down period where the joke peters out, and then the camera has to switch back to an unconvincingly enthusiastic couple asking publisher Linda what will happen next in the story.
One really strange thing that differentiates this film from all the others I've seen this year is that in every scene, whether home, living room, front porch, office, restaurant, or bedroom, people are gulping down alcohol like fish taking to water. They guzzle tequila shots, wine, and beer on a continuous basis oblivious to the fact that they are alcoholics.
KISSING A FOOL is entirely predictable, and feels completely contrived. There is one mysterious part where Max hands two envelopes to Jay and Samantha, but the envelopes are never explained. On the good side, at least the wedding reception and ending are happy.
Reviewed by David Sunga February 28, 1998
Copyright © 1998 This review and others like it can be found at THE CRITIC ZOO: http://www.criticzoo.com email<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Eurojackpot results for Friday 27th September 2019
The winning numbers for the 39th Eurojackpot draw in 2019 that took place on Friday 27th September at 21:00 CEST (20:00 GMT) were:
Winners
Winners
Amount
Slovenian Prize Breakdown
View prize breakdowns for other countries| Numbers Matched | Prize Per Winner | Winners from Slovenia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | 0 | €0 | 43 |
|
Match 4 and 1 Euro Number |
€268.40 | 5 | €1,342 | 641 |
|
Match 4 |
€121.90 | 14 | €1,706.60 | 1,097 |
|
Match 3 and 2 Euro Numbers |
€51.70 | 21 | €1,085.70 | 2,218 |
|
Match 2 and 2 Euro Numbers |
€18.70 | 368 | €6,881.60 | 31,649 |
|
Match 3 and 1 Euro Number |
€18.60 | 416 | €7,737.60 | 30,751 |
|
Match 3 |
€15.70 | 670 | €10,519 | 52,050 |
|
Match 1 and 2 Euro Numbers |
€9 | 2,017 | €18,153 | 165,478 |
|
Match 2 and 1 Euro Number |
€8.20 | 6,126 | €50,233.20 | 443,406 |
|
Total |
- | 9,637 | €97,658.70 | 727,336 |
Eurojackpot prizes in Slovenia must be claimed within 90 days of the draw date, so tickets purchased for this draw are valid until Thursday 26th December 2019.
Additional Draw Information
In total there were 19,116,390 entries into this draw from all participating countries.
Draw Number: 39
European Prize Breakdown
| Numbers Matched | Prize Per Winner | Winners from Croatia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kn73,000,000 | 0 | kn0 | 0 |
|
Match 5 and 1 Euro Number |
kn12,032,842 | 0 | kn0 | 1 |
|
Match 5 |
kn2,123,442.40 | 0 | kn0 | 2 |
|
Match 4 and 2 Euro Numbers |
kn32,921.06 | 1 | kn32,921.06 | 43 |
|
Match 4 and 1 Euro Number |
kn1,987.59 | 12 | kn23,851.08 | 641 |
|
Match 4 |
kn902.71 | 15 | kn13,540.65 | 1,097 |
|
Match 3 and 2 Euro Numbers |
kn382.85 | 58 | kn22,205.30 | 2,218 |
|
Match 2 and 2 Euro Numbers |
kn138.48 | 752 | kn104,136.96 | 31,649 |
|
Match 3 and 1 Euro Number |
kn137.74 | 616 | kn84,847.84 | 30,751 |
|
Match 3 |
kn116.26 | 980 | kn113,934.80 | 52,050 |
|
Match 1 and 2 Euro Numbers |
kn66.65 | 4,035 | kn268,932.75 | 165,478 |
|
Match 2 and 1 Euro Number |
kn60.72 | 8,820 | kn535,550.40 | 443,406 |
|
Total |
- | 15,289 | kn1,199,920.84 | 727,336 |
Eurojackpot prizes in Croatia must be claimed within 60 days of the draw date, so tickets purchased for this draw are valid until Tuesday 26th November 2019.
The estimated jackpot advertised in Croatia prior to the draw was kn73,000,000.
| Numbers Matched | Prize Per Winner | Winners from Czech Republic | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
Kc259,000,000 | 0 | Kc0 | 0 |
|
Match 5 and 1 Euro Number |
Kc41,987,237 | 0 | Kc0 | 1 |
|
Match 5 |
Kc7,409,511 | 0 | Kc0 | 2 |
|
Match 4 and 2 Euro Numbers |
Kc114,874 | 1 | Kc114,874 | 43 |
|
Match 4 and 1 Euro Number |
Kc6,935 | 11 | Kc76,285 | 641 |
|
Match 4 |
Kc3,149 | 24 | Kc75,576 | 1,097 |
|
Match 3 and 2 Euro Numbers |
Kc1,335 | 21 | Kc28,035 | 2,218 |
|
Match 2 and 2 Euro Numbers |
Kc483 | 500 | Kc241,500 | 31,649 |
|
Match 3 and 1 Euro Number |
Kc480 | 502 | Kc240,960 | 30,751 |
|
Match 3 |
Kc405 | 881 | Kc356,805 | 52,050 |
|
Match 1 and 2 Euro Numbers |
Kc232 | 2,637 | Kc611,784 | 165,478 |
|
Match 2 and 1 Euro Number |
Kc211 | 7,541 | Kc1,591,151 | 443,406 |
|
Total |
- | 12,118 | Kc3,336,970 | 727,336 |
Eurojackpot prizes in Czech Republic must be claimed within 35 days of the draw date, so tickets purchased for this draw are valid until Friday 1st November 2019.
The estimated jackpot advertised in Czech Republic prior to the draw was Kc259,000,000.
| Numbers Matched | Prize Per Winner | Winners from Denmark | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.63,000,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.10,311,902 | 0 | kr.0 | 1 |
|
Match 5 |
kr.1,828,034 | 0 | kr.0 | 2 |
|
Match 4 and 2 Euro Numbers |
kr.28,370 | 2 | kr.56,740 | 43 |
|
Match 4 and 1 Euro Number |
kr.1,741 | 55 | kr.95,755 | 641 |
|
Match 4 |
kr.807 | 93 | kr.75,051 | 1,097 |
|
Match 3 and 2 Euro Numbers |
kr.359 | 148 | kr.53,132 | 2,218 |
|
Match 2 and 2 Euro Numbers |
kr.140 | 2,302 | kr.322,280 | 31,649 |
|
Match 3 and 1 Euro Number |
kr.139 | 2,449 | kr.340,411 | 30,751 |
|
Match 3 |
kr.117 | 4,168 | kr.487,656 | 52,050 |
|
Match 1 and 2 Euro Numbers |
kr.67 | 11,882 | kr.796,094 | 165,478 |
|
Match 2 and 1 Euro Number |
kr.61 | 34,908 | kr.2,129,388 | 443,406 |
|
Total |
- | 56,007 | kr.4,356,507 | 727,336 |
Eurojackpot prizes in Denmark must be claimed within a set period of time depending on how much you have won. Visit the How to Claim page to find specific claim periods, with some prizes needing to be claimed within 90 days of the draw (valid until Thursday 26th December 2019).
The estimated jackpot advertised in Denmark prior to the draw was kr.63,000,000.
| Numbers Matched | Prize Per Winner | Winners from Estonia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | 1 | €4,445.60 | 43 |
|
Match 4 and 1 Euro Number |
€268.40 | 3 | €805.20 | 641 |
|
Match 4 |
€121.90 | 9 | €1,097.10 | 1,097 |
|
Match 3 and 2 Euro Numbers |
€51.70 | 11 | €568.70 | 2,218 |
|
Match 2 and 2 Euro Numbers |
€18.70 | 206 | €3,852.20 | 31,649 |
|
Match 3 and 1 Euro Number |
€18.60 | 230 | €4,278 | 30,751 |
|
Match 3 |
€15.70 | 414 | €6,499.80 | 52,050 |
|
Match 1 and 2 Euro Numbers |
€9 | 1,165 | €10,485 | 165,478 |
|
Match 2 and 1 Euro Number |
€8.20 | 3,590 | €29,438 | 443,406 |
|
Total |
- | 5,629 | €61,469.60 | 727,336 |
Eurojackpot prizes in Estonia must be claimed within 90 days of the draw date, so tickets purchased for this draw are valid until Thursday 26th December 2019.
The estimated jackpot advertised in Estonia prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Finland | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | At present this information is not released by the lottery operator of Finland | 43 | |
|
Match 4 and 1 Euro Number |
€268.40 | 641 | ||
|
Match 4 |
€121.90 | 1,097 | ||
|
Match 3 and 2 Euro Numbers |
€51.70 | 2,218 | ||
|
Match 2 and 2 Euro Numbers |
€18.70 | 31,649 | ||
|
Match 3 and 1 Euro Number |
€18.60 | 30,751 | ||
|
Match 3 |
€15.70 | 52,050 | ||
|
Match 1 and 2 Euro Numbers |
€9 | 165,478 | ||
|
Match 2 and 1 Euro Number |
€8.20 | 443,406 | ||
|
Total |
- | 727,336 |
Eurojackpot prizes in Finland must be claimed within 365 days of the draw date, so tickets purchased for this draw are valid until Saturday 26th September 2020.
The estimated jackpot advertised in Finland prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Germany | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 1 | €1,624,893.10 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | At present this information is not released by the lottery operator of Germany | 43 | |
|
Match 4 and 1 Euro Number |
€268.40 | 641 | ||
|
Match 4 |
€121.90 | 1,097 | ||
|
Match 3 and 2 Euro Numbers |
€51.70 | 2,218 | ||
|
Match 2 and 2 Euro Numbers |
€18.70 | 31,649 | ||
|
Match 3 and 1 Euro Number |
€18.60 | 30,751 | ||
|
Match 3 |
€15.70 | 52,050 | ||
|
Match 1 and 2 Euro Numbers |
€9 | 165,478 | ||
|
Match 2 and 1 Euro Number |
€8.20 | 443,406 | ||
|
Total |
- | 727,336 |
Eurojackpot prizes in Germany must be claimed within 3 years of the draw date, so tickets purchased for this draw are valid until Tuesday 27th September 2022.
The estimated jackpot advertised in Germany prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Hungary | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
Ft82,869,535 | 0 | Ft0 | 2 |
|
Match 4 and 2 Euro Numbers |
Ft1,284,780 | 0 | Ft0 | 43 |
|
Match 4 and 1 Euro Number |
Ft77,570 | 10 | Ft775,700 | 641 |
|
Match 4 |
Ft35,230 | 23 | Ft810,290 | 1,097 |
|
Match 3 and 2 Euro Numbers |
Ft14,940 | 57 | Ft851,580 | 2,218 |
|
Match 2 and 2 Euro Numbers |
Ft5,405 | 724 | Ft3,913,220 | 31,649 |
|
Match 3 and 1 Euro Number |
Ft5,375 | 672 | Ft3,612,000 | 30,751 |
|
Match 3 |
Ft4,535 | 1,253 | Ft5,682,355 | 52,050 |
|
Match 1 and 2 Euro Numbers |
Ft2,600 | 3,967 | Ft10,314,200 | 165,478 |
|
Match 2 and 1 Euro Number |
Ft2,370 | 10,541 | Ft24,982,170 | 443,406 |
|
Total |
- | 17,247 | Ft50,941,515 | 727,336 |
Eurojackpot prizes in Hungary must be claimed within 180 days of the draw date, so tickets purchased for this draw are valid until Wednesday 25th March 2020.
The estimated jackpot advertised in Hungary prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Iceland | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.1,344,900,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.218,531,870 | 0 | kr.0 | 1 |
|
Match 5 |
kr.38,564,440 | 0 | kr.0 | 2 |
|
Match 4 and 2 Euro Numbers |
kr.597,880 | At present this information is not released by the lottery operator of Iceland | 43 | |
|
Match 4 and 1 Euro Number |
kr.36,090 | 641 | ||
|
Match 4 |
kr.16,390 | 1,097 | ||
|
Match 3 and 2 Euro Numbers |
kr.6,950 | 2,218 | ||
|
Match 2 and 2 Euro Numbers |
kr.2,510 | 31,649 | ||
|
Match 3 and 1 Euro Number |
kr.2,500 | 30,751 | ||
|
Match 3 |
kr.2,110 | 52,050 | ||
|
Match 1 and 2 Euro Numbers |
kr.1,210 | 165,478 | ||
|
Match 2 and 1 Euro Number |
kr.1,100 | 443,406 | ||
|
Total |
- | 727,336 |
Eurojackpot prizes in Iceland must be claimed within 1 year of the draw date, so tickets purchased for this draw are valid until Sunday 27th September 2020.
The estimated jackpot advertised in Iceland prior to the draw was kr.0.
| Numbers Matched | Prize Per Winner | Winners from Italy | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 1 | €286,745.80 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | 1 | €4,445.60 | 43 |
|
Match 4 and 1 Euro Number |
€268.40 | 9 | €2,415.60 | 641 |
|
Match 4 |
€121.90 | 22 | €2,681.80 | 1,097 |
|
Match 3 and 2 Euro Numbers |
€51.70 | 65 | €3,360.50 | 2,218 |
|
Match 2 and 2 Euro Numbers |
€18.70 | 638 | €11,930.60 | 31,649 |
|
Match 3 and 1 Euro Number |
€18.60 | 672 | €12,499.20 | 30,751 |
|
Match 3 |
€15.70 | 1,058 | €16,610.60 | 52,050 |
|
Match 1 and 2 Euro Numbers |
€9 | 3,541 | €31,869 | 165,478 |
|
Match 2 and 1 Euro Number |
€8.20 | 9,281 | €76,104.20 | 443,406 |
|
Total |
- | 15,288 | €448,662.90 | 727,336 |
Eurojackpot prizes in Italy must be claimed within a set period of time depending on how much you have won. Visit the How to Claim page to find specific claim periods, with some prizes needing to be claimed within 30 days of the draw (valid until Sunday 27th October 2019).
The estimated jackpot advertised in Italy prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Latvia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | At present this information is not released by the lottery operator of Latvia | 43 | |
|
Match 4 and 1 Euro Number |
€268.40 | 641 | ||
|
Match 4 |
€121.90 | 1,097 | ||
|
Match 3 and 2 Euro Numbers |
€51.70 | 2,218 | ||
|
Match 2 and 2 Euro Numbers |
€18.70 | 31,649 | ||
|
Match 3 and 1 Euro Number |
€18.60 | 30,751 | ||
|
Match 3 |
€15.70 | 52,050 | ||
|
Match 1 and 2 Euro Numbers |
€9 | 165,478 | ||
|
Match 2 and 1 Euro Number |
€8.20 | 443,406 | ||
|
Total |
- | 727,336 |
Eurojackpot prizes in Latvia must be claimed within 30 days of the draw date, so tickets purchased for this draw were valid until Sunday 27th October 2019.
The estimated jackpot advertised in Latvia prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Lithuania | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | 0 | €0 | 43 |
|
Match 4 and 1 Euro Number |
€268.40 | 3 | €805.20 | 641 |
|
Match 4 |
€121.90 | 3 | €365.70 | 1,097 |
|
Match 3 and 2 Euro Numbers |
€51.70 | 9 | €465.30 | 2,218 |
|
Match 2 and 2 Euro Numbers |
€18.70 | 98 | €1,832.60 | 31,649 |
|
Match 3 and 1 Euro Number |
€18.60 | 102 | €1,897.20 | 30,751 |
|
Match 3 |
€15.70 | 140 | €2,198 | 52,050 |
|
Match 1 and 2 Euro Numbers |
€9 | 498 | €4,482 | 165,478 |
|
Match 2 and 1 Euro Number |
€8.20 | 1,300 | €10,660 | 443,406 |
|
Total |
- | 2,153 | €22,706 | 727,336 |
Eurojackpot prizes in Lithuania must be claimed within 60 days of the draw date, so tickets purchased for this draw are valid until Tuesday 26th November 2019.
The estimated jackpot advertised in Lithuania prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Netherlands | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | At present this information is not released by the lottery operator of Netherlands | 43 | |
|
Match 4 and 1 Euro Number |
€268.40 | 641 | ||
|
Match 4 |
€121.90 | 1,097 | ||
|
Match 3 and 2 Euro Numbers |
€51.70 | 2,218 | ||
|
Match 2 and 2 Euro Numbers |
€18.70 | 31,649 | ||
|
Match 3 and 1 Euro Number |
€18.60 | 30,751 | ||
|
Match 3 |
€15.70 | 52,050 | ||
|
Match 1 and 2 Euro Numbers |
€9 | 165,478 | ||
|
Match 2 and 1 Euro Number |
€8.20 | 443,406 | ||
|
Total |
- | 727,336 |
Eurojackpot prizes in Netherlands must be claimed within 365 days of the draw date, so tickets purchased for this draw are valid until Saturday 26th September 2020.
The estimated jackpot advertised in Netherlands prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Norway | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.100,000,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.16,111,625 | 0 | kr.0 | 1 |
|
Match 5 |
kr.2,843,225 | 1 | kr.2,843,225 | 2 |
|
Match 4 and 2 Euro Numbers |
kr.44,080 | At present this information is not released by the lottery operator of Norway | 43 | |
|
Match 4 and 1 Euro Number |
kr.2,660 | 641 | ||
|
Match 4 |
kr.1,205 | 1,097 | ||
|
Match 3 and 2 Euro Numbers |
kr.510 | 2,218 | ||
|
Match 2 and 2 Euro Numbers |
kr.185 | 31,649 | ||
|
Match 3 and 1 Euro Number |
kr.180 | 30,751 | ||
|
Match 3 |
kr.155 | 52,050 | ||
|
Match 1 and 2 Euro Numbers |
kr.85 | 165,478 | ||
|
Match 2 and 1 Euro Number |
kr.80 | 443,406 | ||
|
Total |
- | 727,336 |
Eurojackpot prizes in Norway must be claimed within 3 months of the draw date, so tickets purchased for this draw are valid until Friday 27th December 2019.
The estimated jackpot advertised in Norway prior to the draw was kr.0.
| Numbers Matched | Prize Per Winner | Winners from Poland | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
zł43,000,000 | 0 | zł0 | 0 |
|
Match 5 and 1 Euro Number |
zł0 | 0 | zł0 | 1 |
|
Match 5 |
zł0 | 0 | zł0 | 2 |
|
Match 4 and 2 Euro Numbers |
zł240,680.40 | 2 | zł481,360.80 | 43 |
|
Match 4 and 1 Euro Number |
zł1,177.30 | 23 | zł27,077.90 | 641 |
|
Match 4 |
zł534.70 | 43 | zł22,992.10 | 1,097 |
|
Match 3 and 2 Euro Numbers |
zł226.80 | 93 | zł21,092.40 | 2,218 |
|
Match 2 and 2 Euro Numbers |
zł82.10 | 1,090 | zł89,489 | 31,649 |
|
Match 3 and 1 Euro Number |
zł81.60 | 1,133 | zł92,452.80 | 30,751 |
|
Match 3 |
zł68.90 | 2,143 | zł147,652.70 | 52,050 |
|
Match 1 and 2 Euro Numbers |
zł39.50 | 5,928 | zł234,156 | 165,478 |
|
Match 2 and 1 Euro Number |
zł36 | 16,352 | zł588,672 | 443,406 |
|
Total |
- | 26,807 | zł1,704,945.70 | 727,336 |
Eurojackpot prizes in Poland must be claimed within 3 years of the draw date, so tickets purchased for this draw are valid until Tuesday 27th September 2022.
The estimated jackpot advertised in Poland prior to the draw was zł190,000,000.
| Numbers Matched | Prize Per Winner | Winners from Slovakia | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | 0 | €0 | 43 |
|
Match 4 and 1 Euro Number |
€268.40 | 12 | €3,220.80 | 641 |
|
Match 4 |
€121.90 | 18 | €2,194.20 | 1,097 |
|
Match 3 and 2 Euro Numbers |
€51.70 | 19 | €982.30 | 2,218 |
|
Match 2 and 2 Euro Numbers |
€18.70 | 472 | €8,826.40 | 31,649 |
|
Match 3 and 1 Euro Number |
€18.60 | 546 | €10,155.60 | 30,751 |
|
Match 3 |
€15.70 | 867 | €13,611.90 | 52,050 |
|
Match 1 and 2 Euro Numbers |
€9 | 2,406 | €21,654 | 165,478 |
|
Match 2 and 1 Euro Number |
€8.20 | 7,624 | €62,516.80 | 443,406 |
|
Total |
- | 11,964 | €123,162 | 727,336 |
Eurojackpot prizes in Slovakia must be claimed within 35 days of the draw date, so tickets purchased for this draw are valid until Friday 1st November 2019.
The estimated jackpot advertised in Slovakia prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Spain | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
€10,000,000 | 0 | €0 | 0 |
|
Match 5 and 1 Euro Number |
€1,624,893.10 | 0 | €0 | 1 |
|
Match 5 |
€286,745.80 | 0 | €0 | 2 |
|
Match 4 and 2 Euro Numbers |
€4,445.60 | 0 | €0 | 43 |
|
Match 4 and 1 Euro Number |
€268.40 | 23 | €6,173.20 | 641 |
|
Match 4 |
€121.90 | 56 | €6,826.40 | 1,097 |
|
Match 3 and 2 Euro Numbers |
€51.70 | 63 | €3,257.10 | 2,218 |
|
Match 2 and 2 Euro Numbers |
€18.70 | 946 | €17,690.20 | 31,649 |
|
Match 3 and 1 Euro Number |
€18.60 | 1,021 | €18,990.60 | 30,751 |
|
Match 3 |
€15.70 | 1,825 | €28,652.50 | 52,050 |
|
Match 1 and 2 Euro Numbers |
€9 | 5,140 | €46,260 | 165,478 |
|
Match 2 and 1 Euro Number |
€8.20 | 14,754 | €120,982.80 | 443,406 |
|
Total |
- | 23,828 | €248,832.80 | 727,336 |
Eurojackpot prizes in Spain must be claimed within 30 days of the draw date, so tickets purchased for this draw were valid until Sunday 27th October 2019.
The estimated jackpot advertised in Spain prior to the draw was €10,000,000.
| Numbers Matched | Prize Per Winner | Winners from Sweden | Prize Fund Amount | Total Winners |
|---|---|---|---|---|
|
Match 5 and 2 Euro Numbers |
kr.107,000,000 | 0 | kr.0 | 0 |
|
Match 5 and 1 Euro Number |
kr.17,379,531 | 0 | kr.0 | 1 |
|
Match 5 |
kr.3,066,975 | 0 | kr.0 | 2 |
|
Match 4 and 2 Euro Numbers |
kr.148,004 | 2 | kr.296,008 | 43 |
|
Match 4 and 1 Euro Number |
kr.15,047 | 30 | kr.451,410 | 641 |
|
Match 4 |
kr.6,693 | 61 | kr.408,273 | 1,097 |
|
Match 3 and 2 Euro Numbers |
kr.2,300 | 115 | kr.264,500 | 2,218 |
|
Match 2 and 2 Euro Numbers |
kr.200 | 1,690 | kr.338,000 | 31,649 |
|
Match 3 and 1 Euro Number |
kr.198 | 1,783 | kr.353,034 | 30,751 |
|
Match 3 |
kr.167 | 2,946 | kr.491,982 | 52,050 |
|
Match 1 and 2 Euro Numbers |
kr.96 | 8,596 | kr.825,216 | 165,478 |
|
Match 2 and 1 Euro Number |
kr.87 | 24,541 | kr.2,135,067 | 443,406 |
|
Total |
- | 39,764 | kr.5,563,490 | 727,336 |
Eurojackpot prizes in Sweden must be claimed within 3 months of the draw date, so tickets purchased for this draw are valid until Friday 27th December 2019.
The estimated jackpot advertised in Sweden prior to the draw was kr.107,000,000.
Associated Draw Results
- 9
- 6
- 2
- 6
- 4
- 9
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 6 in Exact Order | €50,000 | 0 |
| Match Last 5 in Exact Order | €5,000 | 1 |
| Match Last 4 in Exact Order | €500 | 9 |
| Match Last 3 in Exact Order | €50 | 81 |
| Match Last 2 in Exact Order | €5 | 898 |
| Match Last 1 in Exact Order | €3 | 8,608 |
- 7
- 7
- 2
- 1
- 7
- 6
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 6 | CZK0 | 0 |
| Match 5 | CZK0 | 0 |
| Match 4 | CZK20,000 | 7 |
| Match 3 | CZK2,000 | 70 |
| Match 2 | CZK200 | 613 |
| Match 1 | CZK120 | 6,499 |
- 0
- 7
- 7
- 9
- 1
- 5
- 2
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 7 in Exact Order | €1,000,000 | 0 |
| Match Any 6 in the Right Spot | €20,000 | 1 |
| Match Any 5 in the Right Spot | €500 | 33 |
| Match Any 4 in the Right Spot | €50 | 470 |
| Match Any 3 in the Right Spot | €6 | 4,121 |
| Match Any 2 in the Right Spot | €3 | 22,448 |
- Nizza
- 19
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| City and Number | €1,000 | 4 |
| City | €5 | 1,094 |
- 7
- 4
- 4
- 7
- 4
| Numbers Matched | Prize Per Winner | Total Winners |
|---|---|---|
| Match 5 in Exact Order | kr2,000,000 | 0 |
| Match First/Last 4 in Exact Order | kr100,000 | 2 |
| Match First/Last 3 in Exact Order | kr10,000 | 18 |
| Match First/Last 2 in Exact Order | kr2,000 | 135 |
- Sveio
Related Eurojackpot Results Links
- Automatically check your Eurojackpot ticket
- View average prizes and winners for each prize tiers
- View the largest jackpot winners and total winners from each country
- View previous Eurojackpot results by year
Buy Eurojackpot Tickets Online
By buying your Eurojackpot tickets online you don’t have to worry about ever losing your Eurojackpot lottery tickets. When you play the Eurojackpot online all your lottery tickets purchased on the internet are stored in your personal account, meaning that you can view them anytime you wish.


Equal Width Columns
Using only CSS, we can make a tabbed navigation whose tabs always occupy an equal share of the available width. No JS to interrogate the DOM, no server-side logic to count through items, no inline styles.
223
Web Design13
UI5
SEO567
Interaction
223
No Break13
No Break5
No Break567
No Break


| (A) | ---- no text ---- | |
| 306 | (C) | with manye a turret & towre . þe town to þefende |
| 307 | (D) | wiþ meny touret & tour þe town to defende |
| 308 | (E) | witħ torettys & towres . þe town to defende . |
| (Ex) | ---- no text ---- | |
| 312 | (L) | with many toret & toure þat toun to defende |
| 304 | (P) | with many torrettes and toures þe toune to defende |
| 303 | (U) | With many turret and toure / the toun to defende |
| (V) | ---- no text ---- |


BRO is an educational application. It is intended to assist students who are learning lambda calculus. It is written in Purescript.
Type lambda expression to start:
Examples:
BRO is an educational application. It is intended to assist students who are learning lambda calculus. It is written in Purescript.
Type lambda expression to start:
Examples:
Click on highlighted parts of expression to reduce it or enter another one.
Hide type information if you're not interested in it.
Error: . You can go back and try again.


Story behind the photo: Achche din?
by Bangalore Mirror BureauNeither tea nor coffee, only ice cream satisfies this teacup vendor’s craving
The picture was clicked by reader Jameel Aahmed Milansaar
If you have a picture and a story to share, send us the picture with your name and number at mybangaloremirror@timesgroup.com


Reports assignment a variable declared in a for statement
in the body of that statement. It also reports any attempt to increment or decrement the variable.
While occasionally intended, this construct can be extremely confusing, and is often the result of a typo.
Powered by InspectionGadgets


This is a hillshade hillshade of my area of interest.
This map is generated from point cloud data that was filtered to display only ground points.
The map displays a scale bar to give us reference on map scale and distance.
There are two points, point 1 and one point 2.
These points will represent my two points of interest.
I want to determine the best view from either of these points looking from atop the ridge.
Also, the most efficient and the safest placement of a road to go up the hill and access these points.
Following the point of the South arrow is a road, this road forks and goes directly below the two points of interest.
Obviously our choice for a road to Point 1 or 2 will connect to this road.
There are also pictures from point A and point B below the map, showing us the view from each point.


A robot is programmed to move forward F meters and backwards again, say B meters, in a straight line. The Robot covers 1 meter in T units of time. On Robot's path there is a ditch at a distance FD from initial position in forward direction as well as a ditch at a distance BD from initial position in backward direction. This forward and backward movement is performed repeatedly by the Robot.
Your task is to calculate amount of time taken, before the Robot falls in either ditch, if at all it falls in a ditch.
Input Format
First line contains total number of test cases, denoted by N
Next N lines, contain a tuple containing 5 values delimited by space
F B T FD BD, where
1. F denotes forward displacement in meters
2. B denotes backward displacement in meters
3. T denotes time taken to cover 1 meter
4. FD denotes distance from Robot's starting position and the ditch in forward direction
5. BD denotes distance from Robot's starting position and the ditch in backward direction
Output Format
For each test case print time taken by the Robot to fall in the ditch and also state which ditch he falls into. Print F for forward and B for backward. Both the outputs must be delimited by whitespace
OR
Print No Ditch if the Robot does not fall in either ditch
Constraints
First move will always be in forward direction
1 <= N <= 100
forward displacement > 0
backward displacement > 0
time > 0
distance of ditch in forward direction (FD) > 0
distance of ditch in backward direction (BD) > 0
All input values must be positive integers only
Sample Input
3
9 4 3 13 10
9 7 1 11 13
4 4 3 8 12
Sample Output
63 F
25 F
No Ditch
Sample Input 2
5
8 4 7 11 22
4 5 4 25 6
4 9 3 6 29
7 10 6 24 12
10 10 1 9 7
Sample Output 2
133 F
216 B
231 B
408 B
9 F


Java collections are automatically mapped to Python collections so that standard Python operations such as slicing work on Java collections. Here is the mapping of the collection:
| Java Collection | Python Collection | Py4J Implementation |
|---|---|---|
| Array | Sequence [1] | JavaArray |
| java.util.List | MutableSequence | JavaList |
| java.util.Set | MutableSet | JavaSet |
| java.util.Map | MutableMapping | JavaMap |
| java.util.Iterator | Iterator Protocol | JavaIterator |
| [1] | Py4J allows elements to be modified (like a real Java array), which is not the case of true immutable sequences like tuples. |
Java methods are still accessible when using the Python version of a Java collection. Here are some usage examples for each collection class. These examples do not cover the entire API.
It is possible to change this default mapping by registering an output
converter with register_output_converter
>>> gateway = JavaGateway()
>>> int_class = gateway.jvm.int
>>> int_array = gateway.new_array(int_class,2)
>>> int_array[0] = 1
>>> int_array[1] = 2
>>> int_array[0]
1
>>> int_array[2]
Traceback (most recent call last):
...
IndexError: list index out of range
>>> for i in int_array:
... print(i)
...
1
2
>>> sarray = gateway.new_array(gateway.jvm.java.lang.String,2,3)
>>> len(sarray)
2
>>> len(sarray[0])
3
>>> sarray[0][1] = 'hello'
>>> sarray[0][1]
u'hello'
>>> sarray[0][0] == None
True
>>> l = gateway.jvm.java.util.ArrayList()
>>> l.append(1) # calling Python interface
>>> l.add('hello') # calling Java interface
>>> for elem in l:
... print elem
...
1
hello
>>> l[0] = 2
>>> l.append(3)
>>> str(l)
"[2, u'hello', 3]"
>>> l2 = l[0:-1]
>>> l2[0] = 999
>>> l
[2, u'hello', 3]
>>> l2 # l2 is a copy of l and not a view so a change in l2 does not affect l
[999, u'hello']
>>> del(l[0])
>>> l
[u'hello', 3]
>>> s = gateway.jvm.java.util.HashSet()
>>> s.add(1)
>>> s.add('hello')
>>> s
set([1, u'hello'])
>>> 1 in s
True
>>> s.remove(u'hello')
>>> s
set([1])
>>> m = gateway.jvm.java.util.HashMap()
>>> m["a"] = 0
>>> m.put("b",1)
>>> m
{u'a': 0, u'b': 1}
>>> u"b" in m
True
>>> del(m["a"])
>>> m
{u'b': 1}
>>> m["c"] = 2
>>> for key in m:
... print("%s:%i" % (key,m[key]))
...
b:1
c:2
Since version 0.7, Py4J automatically passes Java byte array (i.e., byte[]) by value and convert them to Python bytearray (2.x) or bytes (3.x) and vice versa. The rationale is that byte array are often used for binary processing and are often immutable: a program reads a series of byte from a data source and interpret it (or transform it into another byte array).
Prior to 0.7, a Python program could interact with a Java byte[] but each access to a byte required a call between the Python and the Java interpreter (i.e., the Python program only had a reference to the array).
In summary:
Since version 0.3, Py4J allows Python classes to implement Java interfaces so that the JVM can call back Python objects. In the following example, you will play the role of a Mad Scientist TM and you will create a Java program that invokes an operator with two or three random integers. The operators will be implemented by a Python class.
Here is the code of the main Java program:
package py4j.examples;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import py4j.GatewayServer;
public class OperatorExample {
// To prevent integer overflow
private final static int MAX = 1000;
public List<Integer> randomBinaryOperator(Operator op) {
Random random = new Random();
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(random.nextInt(MAX));
numbers.add(random.nextInt(MAX));
numbers.add(op.doOperation(numbers.get(0), numbers.get(1)));
return numbers;
}
public List<Integer> randomTernaryOperator(Operator op) {
Random random = new Random();
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(random.nextInt(MAX));
numbers.add(random.nextInt(MAX));
numbers.add(random.nextInt(MAX));
numbers.add(op.doOperation(numbers.get(0), numbers.get(1), numbers.get(2)));
return numbers;
}
public static void main(String[] args) {
GatewayServer server = new GatewayServer(new OperatorExample());
server.start();
}
}
The program has a main method starting a GatewayServer. The entry point, a OperatorExample instance, offers two methods that take as a parameter an Operator instance. Each method calls the operator with two or three random integers and save the integers and the result in a list. Here is the declaration of Operator:
package py4j.examples;
public interface Operator {
public int doOperation(int i, int j);
public int doOperation(int i, int j, int k);
}
Now, because the Mad Scientist TM is, well, mad, he wants to define an Operator in Python. Here is his little Python program:
from py4j.java_gateway import JavaGateway
class Addition(object):
def doOperation(self, i, j, k = None):
if k == None:
return i + j
else:
return i + j + k
class Java:
implements = ['py4j.examples.Operator']
if __name__ == '__main__':
# The callback server parameters is optional, but it tells to start the
# callback server automatically.
gateway = JavaGateway(CallbackServerParameters())
operator = Addition()
numbers = gateway.entry_point.randomBinaryOperator(operator)
print(numbers)
numbers = gateway.entry_point.randomTernaryOperator(operator)
print(numbers)
gateway.shutdown()
The Addition class is a standard Python class that has one method, doOperation. The signature of the method contains two parameters and an optional third parameter: this maps with the two overloaded methods in the Operator Java interface. Each method implementing an overloaded method in a Java interface should accept all possible combinations of parameters, otherwise, an exception will be thrown if the Java program tries to call an unsupported method.
Py4J recognizes that the Addition class implements a Java interface because it declares an internal class called Java, which has a member named implements. This member is a list of string representing the fully qualified name of implemented Java interfaces.
Finally, the Python program contains a main method that starts a gateway, initializes an Addition operator and sends it to the OperatorExample instance on the Java side. Py4J takes care of creating the necessary proxies: the doOperation method of the Addition class is called in the Java VM, but the method is executed in the Python interpreter.
Note that to enable the Python program to receive callbacks, the JavaGateway
instance must be created with start_callback_server=True. Otherwise, the
callback server must be started manually by calling
restart_callback_server
Warning
Python classes can only implement Java interfaces. Abstract or concrete classes are not supported because Java does not natively support dynamic proxies for classes. Extending classes may be supported in future releases of Py4J.
As a workaround, a subclass of the abstract class could be created on the Java side. The methods of the subclass would call the methods of a custom interface that a Python class could implement.
Warning
If you want to implement an interface declared in a class (i.e., an internal class), you need to prefix the name of the interface with a dollar sign. For example, if the interface Operator is declared in the class package1.MyClass, you will have to write:
implements = [‘package1.MyClass$Operator’]
If you try to pass a Python collection to a method that expects a Java collection, an error will be thrown:
>>> my_list = [3,2,1]
>>> gateway.jvm.java.util.Collections.sort(my_list)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "py4j/java_gateway.py", line 347, in __call__
args_command = ''.join([get_command_part(arg, self.pool) for arg in new_args])
File "py4j/protocol.py", line 195, in get_command_part
command_part = REFERENCE_TYPE + parameter._get_object_id()
AttributeError: 'list' object has no attribute '_get_object_id'
You can explicitly convert Python collections using one of the following converter located in the py4j.java_collections module: SetConverter, MapConverter, ListConverter.
>>> from py4j.java_collections import SetConverter, MapConverter, ListConverter
>>> java_list = ListConverter().convert(my_list, gateway._gateway_client)
>>> gateway.jvm.java.util.Collections.sort(java_list)
>>> java_list
[1, 2, 3]
>>> my_list
[3, 2, 1]
Note that the Python list is totally disconnected from the Java list. The Java
List is actually a copy. You can also ask Py4J to automatically convert Python
collections to Java Collections when calling a Java method: just set
auto_convert=True
when creating a JavaGateway:
>>> gateway = JavaGateway(GatewayParameters(auto_convert=True))
>>> my_list
[3, 2, 1]
>>> gateway.jvm.java.util.Collections.sort(my_list)
>>> my_list # The python list is not sorted!
[3, 2, 1]
>>> gateway.jvm.java.util.Collections.frequency(my_list,2)
1
Again, note that my_list is not sorted because when calling
Collections.sort(), Py4J only makes a copy of the Python list. Still, a copy
can be useful if you do not expect the list to be modified by the Java method
like in the call to frequency()
.
Order of Automatic Conversion
When auto_convert=True
, Py4J will attempt to automatically convert Python
objects that are not an instance of basestring
or JavaObject
. By
default, Py4J performs the following checks and conversions:
It is possible to add custom converters by calling
register_input_converter()
. Look at the source code of the
default converters for an example. Note that automatic conversion makes calling
Java methods slightly less efficient because in the worst case, Py4J needs to
go through all registered converters for all parameters. This is why automatic
conversion is disabled by default.
Py4J can raise three exceptions on the Python side:
Py4JJavaError
. This exception is
raised when an exception occurs in the Java client code. For example, if you
try to pop an element from an empty stack. The instance of the Java exception
thrown is stored in the java_exception member.Py4JNetworkError
. This exception is
raised when a problem occurs during network transfer (e.g., connection lost).Py4JError
. This exception is raised when
any other error occurs such as when the client program tries to access an
object that no longer exists on the Java side.Both Py4JJavaError and Py4JNetworkError inherits from Py4JError so it is possible to catch all related Py4J errors with one except clause:
try:
java_object.doSomething()
except Py4JError:
traceback.print_exc()
If a Py4J Exception wraps another exception, the original exception will be
available in the clause
field.
try:
java_object.doSomething()
except Py4JError as e:
if e.cause:
print(e.cause)
Py4J allows you to import packages so that you don’t have to type the fully qualified name of the classes you want to instantiate. The java.lang package is always automatically imported.
>>> from py4j.java_gateway import JavaGateway
>>> gateway = JavaGateway()
>>> from py4j.java_gateway import java_import
>>> java_import(gateway.jvm,'java.util.*')
>>> jList = gateway.jvm.ArrayList()
>>> jMap = gateway.jvm.HashMap()
>>> gateway.jvm.java.lang.String("a")
u'a'
>>> gateway.jvm.String("a")
u'a'
As opposed to Java where import statements do not cross compilation units (java source files), the jvm instance can be shared across multiple Python modules: in other words, import statements are global.
The recommended way to use import statements is to use one JVMView
instance per Python module. Here is an example on
how to create and use a JVMView:
>>> module1_view = gateway.new_jvm_view()
>>> module2_view = gateway.new_jvm_view()
>>> jList2 = module1_view.ArrayList()
Py4JError: Trying to call a package.
...
>>> java_import(module1_view,'java.util.ArrayList')
>>> jList2 = module1_view.ArrayList()
>>> jList3 = module2_view.ArrayList()
Py4JError: Trying to call a package.
...
As you can see from the previous example, the import of java.util.ArrayList only affects module1_view.
Note
In fact, the gateway.jvm member is also an instance of JVMView
. It is automatically created when a gateway is
initialized.
Py4J can be used with Eclipse like any normal Java program. A plug-in needs to instantiate and start a GatewayServer. By default, the GatewayServer will only be able to access the classes declared in the plug-in or one of its dependencies.
Unless they have specific needs, users are encouraged to use the Eclipse plug-ins provided by Py4J available on the following update site:
http://eclipse.py4j.org/
The first plug-in, net.sf.py4j, provides all the Py4J Java classes such as GatewayServer. The plug-in comes with the source and the javadoc. The plug-in also declares a global buddy policy which allows the GatewayServer to access any class declared in any plug-in loaded with Eclipse.
The second plug-in, net.sf.py4j.defaultserver, instantiates a GatewayServer and starts it as soon as Eclipse is started (no lazy loading). The ports used by the default server can be changed in the Py4J Preferences page. The server is also accessible at runtime:
import net.sf.py4j.defaultserver.DefaultServerActivator;
...
GatewayServer server = DefaultServerActivator.getDefault().getServer();
Here is a short example of what you could do with Py4J and Eclipse:
>>> from py4j.java_gateway import JavaGateway, java_import
>>> gateway = JavaGateway()
>>> jvm = gateway.jvm
>>> java_import(jvm, 'org.eclipse.core.resources.*')
>>> workspace_root = jvm.ResourcesPlugin.getWorkspace().getRoot()
>>> gateway.help(workspace_root,'*Projects*')
Help on class WorkspaceRoot in package org.eclipse.core.internal.resources:
WorkspaceRoot extends org.eclipse.core.internal.resources.Container implements org.eclipse.core.resources.IWorkspaceRoot {
|
| Methods defined here:
|
| getProjects() : IProject[]
|
| getProjects(int) : IProject[]
|
| ------------------------------------------------------------
| Fields defined here:
|
| ------------------------------------------------------------
| Internal classes defined here:
|
}
>>> project_names = [project.getName() for project in workspace_root.getProjects()]
>>> print(project_names)
[u'test2', u'testplugin', u'testplugin2']
Support for Eclipse was introduced in Py4J 0.5 and more features will be added in the future.
Java objects sent to the Python side
Every time a Java object is sent to the Python side, a reference to the object is kept on the Java side (in the Gateway class). Once the object is garbage collected on the Python VM (reference count == 0), the reference is removed on the Java VM: if this was the last reference, the object will likely be garbage collected too. When a gateway is shut down, the remaining references are also removed on the Java VM.
Because Java objects on the Python side are involved in a circular reference
(JavaObject
and JavaMember
reference each other), these objects are not
immediately garbage collected once the last reference to the object is removed
(but they are guaranteed to be eventually collected if the Python garbage
collector runs before the Python program exits).
In doubt, users can always call the detach
function on the Python gateway to
explicitly delete a reference on the Java side. A call to gc.collect() also
usually works.
Python objects sent to the Java side (callback)
Every time a Python object is sent to the Java side, a reference to this object
is kept on the Python side (by a PythonProxyPool
). Once a python object is garbage
collected on the Java side, a message is sent to the Python side to remove the
reference to the Python object. When a gateway is shut down, the remaining
references are removed from the Python VM.
Unfortunately, there is no guarantee that the garbage collection message will ever be sent to the Python side (it usually works on Sun/Oracle VM). It might thus be necessary to manually remove the reference to the Python objects. Some helper functions will be developed in the future, but it is unlikely that garbage collection will be guarenteed because of the specifications of Java finalizers (which are surprisingly worse than Python finalizer strategies).
Py4J allocates one thread per connection. The design of Py4j is symmetrical on the Python and Java sides. A Python GatewayClient communicates with the Java GatewayServer and is then associated with a GatewayConnection. A Java CallbackClient (for callbacks) communicates with the Python CallbackServer and is then associated with a CallbackConnection. A connection runs in the calling thread.
And now, for the details:
On the Python side: calling Java
Py4J on the Python side does not explicitly create a thread to call Java methods. When a method is called, a connection to the Java GatewayServer is established in the calling thread. If multiple threads are calling Java methods concurrently, Py4J will ensure that each thread has its own connection by requesting more connections.
To be extra clear: if you only call Java, Py4J on the Python side will never create a thread.
To be extra extra clear: Py4J is thread-safe so if you use a JavaGateway from multiple threads that you created, Py4J will make manage the network resources appropriately.
On the Python side: receiving callbacks from Java
Py4J explicitly creates a thread to run the
CallbackServer
, which accepts
callback connection requests, and a thread for each callback connection
request. As long as there is no concurrent callback from the Java side, the
same callback connection/thread will be used.
These threads are necessary to prevent deadlocks. For example, if we only had a single thread to handle callbacks from Java, Py4J would deadlock as soon as it would encounter an indirect recursion between Java and Python functions. Early versions of Py4J made this mistake :-)
On the Java side: receiving calls from Python
Py4J explicitly creates a thread to run the GatewayServer, which accepts connection requests (from a GatewayClient), and a thread for each connection request. As long as there is no concurrent call from the Python side, the same connection/thread will be used.
On the Java side: calling back Python
Py4J on the Java side does not explicitly create a thread to make a callback to a Python object. When a callback is called, a connection to the CallbackServer is established in the calling thread. If you created multiple threads in Java to call back Python concurrently, Py4J will ensure that each thread has its own CallbackConnection.


Obsidian Mirror
Some Mirrorknights turn their armor into obsidian. Hitting this hard material causes a shock stunning the attacker briefly.
${chance}% Chance of ${value} Stun Retaliation
[46.0, 52.0, 58.0, 64.0, 70.0, 76.0, 82.0, 88.0, 94.0, 100.0]% Chance of min: [2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8] Stun Retaliation
MaxLevel
6
UltimateLevel
10


--- layout: page title: Webs y Podcast Amigos description: "An archive of posts sorted by tag." comments: false --- Web's


public abstract class Clustering
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
int |
nClus
Number of clusters.
|
int |
nExample
Number of examples.
|
int |
nFeature
Number of features.
|
| Constructor and Description |
|---|
Clustering()
Default constructor for this clustering algorithm.
|
Clustering(ClusteringOptions clusteringOptions)
Constructor for this clustering algorithm initialized with options
wrapped in a
ClusteringOptions object. |
Clustering(int nClus)
Constructor for this clustering algorithm given number of
clusters to be set.
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
clustering()
Do clustering.
|
void |
clustering(Matrix G0)
Do clustering with a specified initializer.
|
void |
feedData(double[][] data)
Feed training data for this feature selection algorithm.
|
void |
feedData(Matrix dataMatrix)
Feed training data for this clustering algorithm.
|
static double |
getAccuracy(Matrix G,
Matrix groundTruth)
Evaluating the clustering performance of this clustering algorithm
by using the ground truth.
|
Matrix |
getCenters()
Get cluster centers.
|
Matrix |
getData()
Fetch data matrix.
|
Matrix |
getIndicatorMatrix()
Get cluster indicator matrix.
|
void |
initialize(Matrix G0)
Initialize the indicator matrix.
|
public int nClus
public int nFeature
public int nExample
public Clustering()
public Clustering(ClusteringOptions clusteringOptions)
ClusteringOptions
object.clusteringOptions
- clustering optionspublic Clustering(int nClus)
nClus
- number of clusterspublic void feedData(Matrix dataMatrix)
dataMatrix
- an nExample x nFeature data matrix with each row being
a data examplepublic void feedData(double[][] data)
data
- an nExample x nFeature 2D double
array with each
row being a data examplepublic void initialize(Matrix G0)
G0
- initial indicator matrixpublic abstract void clustering()
public void clustering(Matrix G0)
G0
- initial indicator matrix, if null random initialization
will be usedpublic Matrix getData()
public Matrix getCenters()
public Matrix getIndicatorMatrix()


MUN IIT(BHU)
Toggle navigation
Rise!
Speak!
Resolve!
Delegate Board Registration Form
Name
Email
College/Institution
Contact No.
Preference 1
United Nation Security Council
United Nations General Assembly- Disarmament and International Security
United Nations Industrial Development Organization
United Nations Commission on the Status of Women
The Committee on the Peaceful Uses of Outer Space
Citizens' Dialogue - Lok Sabha
World Trade Organization
International Press
Country Preference 1
Preference 2
United Nation Security Council
United Nations General Assembly- Disarmament and International Security
United Nations Industrial Development Organization
United Nations Commission on the Status of Women
The Committee on the Peaceful Uses of Outer Space
Citizens' Dialogue - Lok Sabha
World Trade Organization
International Press
Country Preference 2
Preference 3
United Nation Security Council
United Nations General Assembly- Disarmament and International Security
United Nations Industrial Development Organization
United Nations Commission on the Status of Women
The Committee on the Peaceful Uses of Outer Space
Citizens' Dialogue - Lok Sabha
World Trade Organization
International Press
Country Preference 3
Previous Experiences
Experience as Delegate
Other Relevant Experience
Would you take Accomodation with us?
Yes
No
Cancel
Submit


img
tag
What? No closing or empty tag.
Relax HTML is "almost" XML but more relaxed, everybody forgot to close them anyway.
dir/path/image.jpg
Is you Windows broken? Paths go like C:\windowse\system32\virus.dll
All paths in GNU/Linux (and OS X) start from one root
/
Lets say we have the following folder structure
o
├─o home
│ ├─o Desktop
│ └─o Documents
│
├─o media
│ └─o MyUSBstick
…
o
├ …
├─o media
… └─o MyUSBstick
└─o secret-stash
└─o rainbow-dash.jpg
Access all your files by adding /
between folders
/media/MyUSBstick/secret-stash/rainbow-dash.jpg
o
├─o home
│ ├─★ Desktop
│ │ └─o web-dev-course
│ │ └─o presentation.md
│ └─o Documents
│
├─o media
│ └─o MyUSBstick
…
/home/Desktop
you can start with
.
from the current location and go to a subfolder
./web-dev-course/presentation.md
which is the same as writing
/home/Desktop/web-dev-course/presentation.md
But since this is so common we can just leave away the
.
and write
web-dev-course/presentation.md
which is still the same as writing
/home/Desktop/web-dev-course/presentation.md
o
├─o home
│ ├─★ Desktop
│ └─o Documents
│ └─o my-love-poem.txt
│
├─o media
│ └─o MyUSBstick
…
/home/Desktop
with
..
to access your documents you could write
../Documents/my-love-poem.txt
which is the same as writing
/home/Documents/my-love-poem.txt
How do I go two levels up?
Don't worry we will partice it in the exercise.
Now lets move to H in HTML.
a
The hyperlink is one of the inventions of the 20th centry

I'm a link. Nice to meet you.

With a link you can reference another document and
let your reader access it INSTANTLY
Yaay no more going to the library.
The href
attribute can reference within a file
go to chapter 1
or to another local file
I'm relative
or to an external file.
Re: Re: fun
To reference a within a document use an anchor

then create a link that points to that anchor
Click here to read chapter 4.
The href
attribute can take absolute paths
absolute root
or relative paths, where you can leave away the ./
.
I'm relative
Do you remember moving one level up?
sacré bleu
To reference external files use a URL
Re: Re: fun
Yeay computer gibberish, let's see what it means.
http://www.example.com/patH/index.html
The Protocol
Tells how the data will be transported.
The Host
Maps (with some detours) to a computer.
The Path
Is used to find the requested data on the host computer.
http://www.example.com/patH/index.html
The Protocol
Your browser knows http
, https
, ftp
, file
.
The Host
Is not case sensitve. wWw.gOoGlE.CoM
The Path
Is (almost always) case sensitve, just like the file system
... on GUN/Linux.
Continue with
Text Editing 1: Working with many files; better HTML editing (15 min)
or go back to the overview.


Help FARMS continue to "do good that is good!"
Donate Now»What We Do
“Doing Good That Is Good!
"As we have therefore opportunity, let us do good unto all men, especially unto them who are of the household of faith." Galatians 6:10
Isn’t all good, good? It is when it preserves dignity and avoids dependency! That is why FARMS International follows a biblical approach to releasing families from poverty. We combine Christian stewardship with interest free loans to help families give and work their way out of poverty. Our unique and refreshing approach to microcredit has helped thousands of families and their churches in places of great need and persecution for over fifty-one years! Please join our family.
Jesus had compassion for the poor, and he left us this challenge, "...whensover ye will ye may do them good…” Are you willing? FARMS International is an opportunity for you to "do good" for your poor brothers and sisters in an exciting and practical way.
Where We Work
Bangladesh
Farms has X projects in Bangladesh. We have been working there since XXXX. We highlight our work in Bangladesh in these newsletters:
Cambodia
Farms has X projects in Cambodia. We have been working there since XXXX. We highlight our work in Cambodia in these newsletters:
Haiti
Farms has X projects in Haiti. We have been working there since XXXX. We highlight our work in Haiti in these newsletters:
Moldova
Farms has X projects in Moldova. We have been working there since XXXX. We highlight our work in Moldova in these newsletters:
Nagaland-India
Farms has X projects in Nagaland-India. We have been working there since XXXX. We highlight our work in Nagaland-India in these newsletters:
Nepal
Farms has X projects in Nepal. We have been working there since XXXX. We highlight our work in Nepal in these newsletters:
Philippines
Farms has X projects in Philippines. We have been working there since XXXX. We highlight our work in Philippines in these newsletters:
Rwanda
Farms has X projects in Rwanda. We have been working there since XXXX. We highlight our work in Rwanda in these newsletters:
Thailand
Farms has X projects in Thailand. We have been working there since XXXX. We highlight our work in Thailand in these newsletters:
Senegal
Farms has X projects in Senegal. We have been working there since XXXX. We highlight our work in Senegal in these newsletters:
Vietnam
Farms has X projects in Vietnam. We have been working there since XXXX. We highlight our work in Vietnam in these newsletters:
Get Involved
There are lots of ways to get involved with FARMS!
Stay Informed
Sign up for our newletter:
Donate
Spread the Word
Request a free DVD
Request a church presentation
Contact Us
Note: We cannot honor requests for DVDs outside of the USA and Canada.


TEMPLATE NAME
METADATA_FIELDS
ADD FIELD
Must have at least 1 template field
×
SAVE ME
Delete this template
Once you delete a template, there is no going back. Please be certain.
Confirm template deletion
×