| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
All enum values after the MSAA-specific roles needs a special
mapping.
Change-Id: I6c77abf09b68d2d3d772937be986d532db2e5292
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
| |
Change-Id: Iad350c948049128f3014a6ad6536ac9dc2ee86d5
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
|
|
|
|
|
|
|
| |
Change-Id: I467e9ef624bcd10cb5b61f6f665a7bbb0bb1f57a
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike path(), toLocalFile() isn't reporting a URL component, so it
should decode the percent-encoded characters fully. This extra
decoding pass is meant to catch %00 to %1F, %7F and %25 (the percent
sign itself).
It also catches %80 to %FF, which aren't decoded because they don't
form UTF-8 sequences. That means QUrl::toLocalFile() has undefined
behaviour if the path contained non-UTF8 sequences.
Task-number: QTBUG-25459
Change-Id: Iab5a0ba6afcfc4510e297984f2ffc208cedd752b
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
|
|
|
|
|
| |
Change-Id: I3844913c16b9d6222f48e66dddc1d680458ffa56
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QMetaObjectExtraData was added when support for QMetaObject::newInstance
was added. One needed a place to put the pointer to static_metacall in
the QMetaObject.
But as we break binary compatibility, one can change the size of
QMetaObject, and put everything back inside QMetaObject's own structure.
Meaning it is not required anymore to have one QMetaObjectExtraData
instance per QMetaObject anymore.
Change-Id: If0b8f586cbaf633eed10045adee3ba3366826c86
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is done to make QtPrivate::FunctionPointer available to the
QMetaMethod declaration in qmetaobject.h (which already included
qobjectdefs.h, since that's where QMetaObject is declared), so that
the new template-based QMetaMethod::fromSignal() function may be
implemented.
The logic for statically generating the array of qMetaTypeId (used by
the template-based QObject::connect()) remains in qobject_impl.h,
since it's not needed for QMetaMethod::fromSignal(). Moreover, moving
that code would introduce a circular dependency, since qmetatype.h
as of commit 194674044693d6b101c3dc2f4784718540d343a4 now includes
qobjectdefs.h.
Change-Id: I36c35041e0c6661c3cf523684177a0b6c19e2d35
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is done in preparation of introducing the
QObject::connectNotify(QMetaMethod) function. Together with the
forthcoming QMetaMethod::fromSignal() function, which returns the
QMetaMethod corresponding to a Qt/C++ signal (member function), the
comparison operators provide an effective way of checking which
signal was connected to.
Change-Id: I2de48628c4884a7174fb8574895f272cb3fe5634
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QRegExp matching methods modify the object, which we don't want to. In
particular, when we receive a QRegExp from the user or we store in a
context that might require thread-safety, make sure we make a copy
before using it.
QRegularExpression has no such shortcoming.
Task-number: QTBUG-25064
Change-Id: I44cc44b75b3da10c5ece97cb6315c2c425327dc0
Reviewed-by: Alexis Menard <alexis.menard@openbossa.org>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AES is currently not enabled, since we don't use it for anything. The
code is here with the proper detection should we want to in the
future.
RTM and HLE (Transactional Memory Extensions) I'll use soon in the
locking code.
Also rename a few variables to make it easier to read later on.
Change-Id: I800c66d7e1ba86ec037692928d94f53ea5d5868f
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a new instruction, present on the SandyBridge architecture and
later. Some older assemblers do not support it and produce:
{standard input}:225:no such instruction: `xgetbv'
The use of this instruction is protected by a CPUID check (function 1,
ECX bit 27), so we only run it in processors that do support it.
Change-Id: Ife7500c0deaab9539074835a4511e8c19602608e
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of it is the same for both of them, so let's avoid doing
everything twice. Or more, since we may support x32 soon. For Windows,
use the intrinsics. For GCC, we'd like to use cpuid.h, but it only
exists since GCC 4.3, so we can't.
And properly detect AVX support: it's not enough to detect that the
processor supports them, we also need to check that the OS enabled
support for the 256-bit registers.
Change-Id: Ibb4872cdb774de5701b18c40f4e612330a266214
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Inspired by
https://bugreports.qt-project.org/secure/attachment/26020/qt_atomic_sparc64.patch
Task-number: QTBUG-22479
Change-Id: Ie3275df96c639d6a75e05f70fe5745aeb34457f9
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt::WindowModal windows and dialogs are shown using [NSApp
beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:] as
long as they have a valid parent. Otherwise they are behave as
application modal.
Use the existing modal session support in the QCocoaEventDispatcher
(which was inherited from Qt 4) to support Qt::ApplicationModal
windows and dialogs. Some changes to this code are needed to ensure
proper behavior:
1. Window level modification is now done in
QCocoaWindow::recreateWindow() instead of in QCocoaEventDispatcher.
2. Make interrupt() use [NSApp abortModal] to stop a modal session
(previously we were freeing memory from under Cocoa's feet, causing
tools like valgrind and Instruments.app to complain)
3. Do not remove an item from a list and use a const reference to the
removed item immediately after (minor bug fix).
Also make sure that QCocoaEventDispatcher cleans up any modal sessions
and retained user input events on destruction (otherwise we leave
NSApplication in a weird state, which causes some autotest failures).
Change-Id: Iaeefa025400f324b5348b8c81a40384ef026efb4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Instead of trying to return whether the URL is relative to something
undefined, let's instead follow what the documentation was saying all
along and what the RFC says about "Relative References".
Change-Id: I32722321a6b36c6e3480669ad769390e4c6f7d1c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
| |
Small cleanup/improvement. This patch just does what the removed ###
says.
Change-Id: I0d16541d2e4b8f948f32734ef0138fde5517932a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Microsoft did at some point extend the roles in MSAA with two extra
roles (ROLE_SYSTEM_IPADDRESS and ROLE_SYSTEM_OUTLINEBUTTON).
These are defined in oleacc.h as:
#define ROLE_SYSTEM_IPADDRESS ( 0x3f )
#define ROLE_SYSTEM_OUTLINEBUTTON ( 0x40 )
This means that LayeredPane will map to ROLE_SYSTEM_IPADDRESS
and Terminal will map to ROLE_SYSTEM_OUTLINEBUTTON, which is
obviously wrong.
We now reserve some valuespace for more roles to reduce the likelyness of
any collisions in the future. Having the reserved area also serves
as a way of indicating the boundary between the "MSAA" enums and other
enums.
Change-Id: Ic67a1a7200382fed3040e69b3e8856376ba642ac
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
| |
Change-Id: Ie72f907ffb959f629af6a414959348a992c4c941
Reviewed-by: aavit <qt_aavit@ovi.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc needs to know the final location of the installed documentation to
generate correct relative links between the modules. Normally you can
use QLibraryInfo::DocumentationPath for this, but since QDoc gets compiled
during Qt bootstrapping QLibraryInfo is not available yet.
The -installdir option still allows us to specify
QLibraryInfo::DocumentationPath on the command line.
Change-Id: Ic4729f4daad112f0d175931467cf09cfcf5145a3
Reviewed-by: Martin Smith <martin.smith@nokia.com>
|
|
|
|
|
|
| |
Change-Id: Iba0457b55ef9fa3673f78b4d30d018a146e8fb1c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
|
|
|
|
|
| |
Change-Id: I2a8f88929f985b1543ec7c223266e8387f0a8a48
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
|
|
| |
... to conform to RFC 2046 (section 5.1.1). Apparently IIS had problems
without the new line.
Task-number: QTBUG-25429
Change-Id: Ia619bbdcebd407b2716bc467323634e4c8d77bcd
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
|
|
|
|
|
|
|
|
|
|
| |
* by not using QString::fromUtf16() as we know for sure that
the data is 'raw' UCS-2;
* it's safe to avoid a check for > UNICODE_LAST_CODEPOINT
as GET_DECOMPOSITION_INDEX macro already does a similar check
Change-Id: Ifb660efc51c664d06733ac8ed46d54278520da06
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
| |
QLatin1Literal is just a typedef of QLatin1String.
Change-Id: If20ca225e57a7fb45a7775f0fc81aedb6da88c96
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QSystemLocale::query() was missing the LanguageId QueryType. Therefore
QSystemLocale::fallbackLocale() was always used as default language,
which reads environment variables in the order: LC_ALL -> LC_NUMERIC ->
LANG. The correct behaviour is to read LC_ALL -> LC_MESSAGES -> LANG.
This leads to problems for users that want to use english language, but
non-english localization features (date, number formats etc.)
Change-Id: I4310537dac8622a3dd79231fbad58e22f20ca262
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
better memory usage report;
an additional asserts with conditions the implementation is depends on;
a namespace for the internal static data;
styling fixes
Change-Id: Id4048ff6104c56b5f590f9ac6fbf7c0bce79ec47
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there are two such codepoints were added in the Unicode 5.1:
U+1D79 LATIN SMALL LETTER INSULAR G
U+A77D LATIN CAPITAL LETTER INSULAR G
two more of them were added in the Unicode 6.0:
U+0265 LATIN SMALL LETTER TURNED H
U+A78D LATIN CAPITAL LETTER TURNED H
and two more were added in the Unicode 6.1:
U+0266 LATIN SMALL LETTER H WITH HOOK
U+A7AA LATIN CAPITAL LETTER H WITH HOOK
we map them like special cases with length == 1
(note: all are in BMP which is checked explicitly in the generator)
Change-Id: I8a34164eb3ee2e575b7799cc12d4b96ad5bcd9c6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
| |
using templates for toLower()/toUpper()/toTitleCase()/toCaseFolded()
makes the upcoming patches smaller and thus easier to review
Change-Id: Ideb23e8669dbc2fe9ea3f129bf0137e1805ece11
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
| |
Previously, NVDA did not read aloud anything from a Qt app.
Change-Id: Ie738e7e7d7acc54f45fab9195adc09bfde930174
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
| |
Regression caused by a17907829e6b180f2bb4af9a8594996b2a0e531a
Change-Id: I8a2ca35cf176b4db47f29d848cbc2cd8180596d0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
| |
(Keep it internal)
Change-Id: I9e99ccbd16cc595d2aff97a26181e8d8c3d9d7ae
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Introduce a new QLibrary::PreventUnloadHint to support the
RTLD_NODELETE flag support by dlcompat on Unix platforms.
Change-Id: Ib1327e968a2a888850ad1086a102a143f86c5090
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures interoperability between the Blackbery C and C++ APIs
and makes it easier to expose platform services in C++ that are
exposed in BPS - since events from both APIs can be processed on
the same thread.
Change-Id: I7270adc64c26396f66d9126141500d5e58be51e7
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
QUrl::path() already decodes almost everything, but let's pass the
formatting flag to be sure.
Note: decoding of control characters from U+0001 to U+001F is not
implemented. Non-UTF8 sequences are also not representable.
Change-Id: I9a0ae2282ec3d48cc0e70e5b2d3824fb120709ed
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QRegExp matching methods modify the object, which we don't want to. In
particular, when we receive a QRegExp from the user or we store in a
context that might require thread-safety, make sure we make a copy
before using it.
QRegularExpression has no such shortcoming.
Task-number: QTBUG-25064
Change-Id: If119e06221ca99e57c5ad1a1d4cc6468e9f68c7b
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
|
|
|
|
|
|
|
|
|
| |
It's perfectly valid to have a path of /c:/a.txt on Unix, so don't
strip the leading slash unless we're on Windows.
Task-number: QTBUG-20322
Change-Id: I721bd0a65b41048bc735d4eaa0d536174164fe64
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
|
|
|
|
|
|
|
|
| |
Some declarative tests (e.g. 24319) need more fine-grained control
over processing the simulated touch events.
Change-Id: Ib163cfd29254016ea16e8d739ad97369b6ccdc90
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
|
|
|
|
|
|
|
| |
Looks like I failed to update this earlier, when the behaviour changed.
Change-Id: Ic020c2a14d4e9153f2bc9d22d943a3a380c0851c
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QRegExp matching methods modify the object, which we don't want to. In
particular, when we receive a QRegExp from the user or we store in a
context that might require thread-safety, make sure we make a copy
before using it.
QRegularExpression has no such shortcoming.
Task-number: QTBUG-25064
Change-Id: I7c5f5ebf4521c32337c9ea9aeeef50e1e8690bf8
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
This allows the compiler to produce better / smaller code due to not
being required to deal with two pointers possibly aliasing each
other. This also enables vectorisation where otherwise the compiler
wouldn't be able to do.
Change-Id: Ie7db3a54a1ba22f87ac5283d5c43905707957549
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
| |
These functions are too critical to be called. They should always be
inlined.
Change-Id: I698dc6d83e02c323759c6d066f17993340bd53a5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Qt4 QLocalePrivate is a struct returned by a d() method. This will be
unsuitable for the planned change to use ICU and may cause BIC issues.
This change makes QLocalePrivate a class and creates a new struct
QLocaleData to hold the data index. Further clean-ups are possible
but are left for later.
Change-Id: Ie316a07790f74674a3b520b735dff72695cc4060
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
| |
We do not need operate on raw QByteArrayData, QByteArray gives us
better, stable API, without any performance penalty.
Change-Id: Idf47af2333c3694e81dcd31cd07d1a4720046df7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While linux returns the local address of dual mode sockets as "::"
i.e. the IPv6 address, OSX returns "::FFFF:0.0.0.0" i.e. the IPv4 address.
In the unix socket engine, treat both of these as candidates for
being a dual mode socket. This should hopefully cover other unixes
which we haven't tested.
Task-Number: QTBUG-25445
Change-Id: If1251018d54da98618223ba538c00ba54ac4cb4e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Body elements to include type, property, method, signal, enum info, so:
qmlDetail to
- qmlTypeDetail
- qmlPropertyDetail
- qmlEnumerationDetail
- qmlMethodDetail
- qmlSignalDetail
2. Same thing for a section that contains elements specialized for QML, so
qmlDef to
- qmlTypeDef
- qmlPropertyDef
- qmlEnumerationDef
- qmlMethodDef
- qmlSignalDef
Rationale for both items above is that otherwise the body and section
content models would have to be exactly the same for a type, property,
method, etc.
3. For the import statement use:
<qmlImportModule>
<apiItemName>QtGraphicalEffects</apiItemName>
<apiData>1.0</apiData>
</qmlImportModule>
So we have an element indicating that this is for the import
statement, not an outputclass. And no need to specialize the elements
inside it as we know from the ancestor (qmlImportModule) what they're
for.
<qmlImportModule> to be specialized from apiDef.
4. The 'description' section name doesn't need to be specialized further from the API ref. DTDs so
<qmlDesc> should be <apiDesc>
The content model for the 'description' section would be similar to that of a normal DITA section, specialized into apiDesc in the API ref. DTDs, so we don't need to rename it for QML.
5. We need a separate element for the since information.
<qmlSince>
<apiItemName>QtGraphicalEffects</apiItemName>
<apiData>1.0</apiData>
</qmlSince>
6. Public identifier should be like this for a type:
-//NOKIA//DTD DITA QML Type//EN
Not like this:
-//NOKIA//DTD DITA QML API Type Reference v0.1.0//EN
Change-Id: Ie9047965bf32a2e3e9339eb743f2019cb38c88e4
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The timeout given in milliseconds should be converted to a timespec
struct.
To separate the seconds and nanoseconds the milliseconds are first
multiplied to represent the whole value in an int64 variable.
The calculation is done on integers, so we get an overflow if the
milliseconds are bigger then 2148.
If we cast the given value to an int64 we can avoid this problem.
Fix the used cast.
Task-number: QTBUG-24795
Change-Id: I864ae227cf7dda16a6f30aa4db74acc49e20f6eb
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous solution didn't work on systems where the libraries
aren't in the same location.
Now we search for both libcrypto and libssl and load them if their
versions match, even if they are in different directories.
Task-number: QTBUG-25398
Change-Id: I37164638890586947d07670d8a59fc53a84f9c42
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
|
|
|
|
|
|
|
|
|
| |
Let Qt::FramelessWindowHint take precedence over
Qt::WindowTitleHint (which enforces WS_CAPTION and thus
WS_DLGFRAME).
Change-Id: I2c0248d8a3ee3ed0f04b926acdef3cbeb98ca571
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-25111
Change-Id: I2387767698c402e2bd0ecdfdd6ed41d4a224f1b6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
|
|
|
|
|
|
|
|
| |
Removed the custom BigEndian class and utilized qendian.h functions
instead.
Change-Id: Ieb10f77411404e1524fcedaceffa5b0e333c7429
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
|