Kotlin 1.7.0-Beta Released

Releases

The first preview of the 1.7.0 release is out. Introducing Kotlin 1.7.0-Beta! This preview includes:

  • Changes to builder inference.
  • The return of the min() and max() collection functions.
  • Stabilizing of definitely non-nullable types.
  • Updates for the new Kotlin/Native Memory Manager.

Install 1.7.0-Beta to try out these features and report any issues you find to help us improve Kotlin 1.7.0.

Install Kotlin 1.7.0-Beta

Starting from 1.7.0, we’re updating our cadence terminology by changing “Milestone” to “Beta”. There are a few reasons behind this decision:

  • We want the Kotlin builds terminology to be more aligned with the standard terminology of the software release cycle. To put it more precisely, “Beta” means we’re done adding new features to that specific version and are working on stabilization. Though the final changes will be implemented, including changes based on your feedback.
  • Some time ago, M-release compilers were producing “pre-release” code, which made these versions harder to test. This is no longer the case. We want to avoid any confusion and emphasize that trying out Kotlin Beta versions is a simple process and highly encouraged by the Kotlin team. 
  • Last but not least, the term “Beta” itself is a call for feedback from the community. We use it to let you know we want you to share feedback with us.

Please evaluate Kotlin 1.7.0-Beta and share your feedback with us on YouTrack and Slack (for new Slack members: apply to be invited).

Changes to builder inference

Builder inference is a special kind of type inference that is useful when calling generic builder functions. It helps the compiler infer the type arguments of a call using the type information about other calls inside its lambda argument.

Kotlin 1.7.0-Beta includes further changes to builder inference. It brings us closer to builder inference stabilization and completion of one of the items on our roadmap.

With this release, builder inference is automatically activated if a regular type inference cannot get enough information about a type without specifying the -Xenable-builder-inference compiler option, which we introduced in version 1.6.0.

This means that now you can write your own builders that use builder type inference without applying any additional annotations or options. Learn how to write custom generic builders.

The return of the min() and max() collection functions

In Kotlin 1.4, we renamed the min() and max() collection functions to minOrNull() and maxOrNull(). These new names better reflect their behavior – returning null if the receiver collection is empty. It also helped to align the functions’ behavior with naming conventions used throughout the Kotlin collections API.

The same was true of minBy(), maxBy(), minWith(), and maxWith(), which all got their *OrNull() synonyms in Kotlin 1.4. Older functions affected by this change were gradually deprecated.

Kotlin 1.7.0-Beta reintroduces the original function names, but with a non-nullable return type. The renewed min(), max(), minBy(), maxBy(), minWith(), and maxWith() now strictly return the collection element or throw an exception.

fun main() {
    val numbers = listOf()
    println(numbers.maxOrNull()) // "null"
    println(numbers.max()) // "Exception in… Collection is empty."
}

See this YouTrack issue for details.

Stabilizing of definitely non-nullable types

Kotlin 1.7.0 will have stable definitely non-nullable types, which were introduced in Kotlin 1.6.20.

These types have been added to provide better interoperability when extending generic Java classes and interfaces.

Since Kotlin 1.6.20, you’ve been able to mark a generic type parameter as definitely non-nullable on the use site with the new syntax T & Any. The syntactic form comes from a notation of intersection types and is now limited to a type parameter with nullable upper bounds on the left side of & and non-nullable Any on the right side:

fun  elvisLike(x: T, y: T & Any): T & Any = x ?: y

fun main() {
    elvisLike("", "").length // OK
    elvisLike("", null).length // Error: 'null' cannot be a value of a non-null type

    elvisLike(null, "").length // OK
    elvisLike(null, null).length // Error: 'null' cannot be a value of a non-null type
}

Definitely non-nullable types are enabled by default in this Beta release. No additional steps are required.

Learn more about definitely non-nullable types in the KEEP.

Matching with Regex at a particular position

The Regex.matchAt() and Regex.matchesAt() functions, introduced in 1.5.30, are now Stable. They provide a way to check whether a regular expression has an exact match at a particular position in a String or CharSequence.

  • matchesAt() checks for a match and returns a boolean result:
fun main(){
    val releaseText = "Kotlin 1.7.0 is on its way!"
    // regular expression: one digit, dot, one digit, dot, one or more digits
    val versionRegex = "\d[.]\d[.]\d+".toRegex()

    println(versionRegex.matchesAt(releaseText, 0)) // "false"
    println(versionRegex.matchesAt(releaseText, 7)) // "true"
}
  • matchAt() returns the match if it’s found, or null if it isn’t:
fun main(){
    val releaseText = "Kotlin 1.7.0 is on its way!"
    val versionRegex = "\d[.]\d[.]\d+".toRegex()

    println(versionRegex.matchAt(releaseText, 0)) // "null"
    println(versionRegex.matchAt(releaseText, 7)?.value) // "1.7.0"
}

We’d be grateful for your feedback in this YouTrack issue.

Updates of new Kotlin/Native Memory Manager

You can try the Alpha version of the new Kotlin/Native memory manager in Kotlin 1.7.0-Beta. This release brings performance improvements to the new memory manager that will improve the developer experience.

The new memory manager eliminates the differences between the JVM and Native platforms. It provides a consistent developer experience in multiplatform projects. For example, you’ll have a much easier time creating new cross-platform mobile applications that work on both Android and iOS.

The new Kotlin/Native memory manager lifts restrictions on object-sharing between threads. It also provides leak-free concurrent programming primitives that are safe and don’t require any special management or annotations.

The new memory manager will become the default one in future versions, so we encourage you to try it now. Learn more about the new memory manager and explore demo projects, or jump right to the migration instructions to try it yourself.

Try using the new memory manager on your projects to see how it works and share your feedback in our issue tracker, YouTrack.

Support for named capturing groups in JS and Native

Since Kotlin 1.7.0-Beta, named capturing groups are supported not only on the JVM (1.8 and later) but on JS and Native as well.

To give a name to a capturing group, use the (?group) syntax in your regular expression. To get the text matched by a group, call the newly introduced MatchGroupCollection.get() function and pass the group name.

Retrieve matched group value by name

Consider this example for matching city coordinates. To get a collection of groups matched by the regular expression, use groups. Compare retrieving a group’s contents by its number (index) and by its name using value:

fun main() {
    val regex = "\b(?[A-Za-z\s]+),\s(?[A-Z]{2}):\s(?[0-9]{3})\b".toRegex()
    val input = "Coordinates: Austin, TX: 123"
 
    val match = regex.find(input)!!
    println(match.groups["city"]?.value) // "Austin" — by name
    println(match.groups[2]?.value) // "TX" — by number
}

Named backreferencing

You can now also use group names when backreferencing groups. Backreferences match the same text as previously matched by a capturing group. For this, use the k  syntax in your regular expression:

fun backRef() {
    val regex = "(?\w+), yes \k<title>".toRegex()
    val match = regex.find("Do you copy? Sir, yes Sir!")!!
    println(match.value) // "Sir, yes Sir"
    println(match.groups["title"]?.value) // "Sir"
}
</pre>
<h3><span class="ez-toc-section" id="Named_groups_in_replacement_expressions"></span>Named groups in replacement expressions<span class="ez-toc-section-end"></span></h3>
<p>Finally, named group references can be used with replacement expressions. Consider the <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-regex/replace.html" target="_blank" rel="noopener"><code>replace()</code></a> function that substitutes all occurrences of the regular expression in the input with a replacement expression, and the <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-regex/replace-first.html" target="_blank" rel="noopener"><code>replaceFirst()</code></a> function that swaps the first match only.</p>
<p>Occurrences of <code>${name}</code> in the replacement string are substituted with the subsequences corresponding to the captured groups with the specified name. Compare replacements in group reference by name and by index:</p>
<pre class="kotlin-code" data-highlight-only="true" theme="idea" indent="4">
fun dateReplace() {
    val dateRegex = Regex("(?<dd>\d{2})-(?<mm>\d{2})-(?<yyyy>\d{4})")
    val input = "Date of birth: 27-04-2022"
    println(dateRegex.replace(input, "${yyyy}-${mm}-${dd}")) // "Date of birth: 2022-04-27"  — by name
    println(dateRegex.replace(input, "$3-$2-$1")) // "Date of birth: 2022-04-27" — by number
}
</pre>
<h2 id="try-new-features"><span class="ez-toc-section" id="Try_new_features_and_provide_feedback"></span>Try new features and provide feedback <span class="ez-toc-section-end"></span></h2>
<p>These new features are available in the 1.7.0 preview release, Kotlin 1.7.0-Beta. You can easily install it in your <a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener">IntelliJ IDEA</a> or <a href="https://developer.android.com/studio/preview" target="_blank" rel="noopener">Android Studio</a> IDE. </p>
<div readability="9">
<p>Due to Android Studios plugins renaming (Beta), plug-in installation is available on top of 1.6.20+ versions.</p>
</div>
<p>Install Kotlin 1.7.0-Beta in any of the following ways:</p>
<ul>
<li>If you use the <em>Early Access Preview</em> update channel, the IDE will suggest automatically updating to 1.7.0-Beta as soon as it becomes available.</li>
<li>If you use the <em>Stable</em> update channel, you can change the channel to <em>Early Access Preview</em> at any time by selecting <strong>Tools</strong> | <strong>Kotlin</strong> | <strong>Configure Kotlin Plugin Updates</strong> in your IDE. You’ll then be able to install the latest preview release. Check out <a href="https://kotlinlang.org/docs/install-eap-plugin.html" target="_blank" rel="noopener">these instructions</a> for details.</li>
</ul>
<p>You can always download the latest versions of these IDEs to get extensive support for Kotlin:</p>
<ul>
<li><a href="https://www.jetbrains.com/idea/download/" target="_blank" rel="noopener">IntelliJ IDEA</a> for developing Kotlin applications for a variety of platforms.</li>
<li><a href="https://developer.android.com/studio/preview" target="_blank" rel="noopener">Android Studio</a> for developing Android and cross-platform mobile applications.</li>
</ul>
<p>Once you’ve installed 1.7.0-Beta, don’t forget to <a href="https://kotlinlang.org/docs/configure-build-for-eap.html" target="_blank" rel="noopener">change the Kotlin version</a> to 1.7.0-Beta in your build scripts.</p>
<h3><span class="ez-toc-section" id="If_you_run_into_any_problems"></span>If you run into any problems:<span class="ez-toc-section-end"></span></h3>
<h3><span class="ez-toc-section" id="Read_more"></span>Read more<span class="ez-toc-section-end"></span></h3>
</p></div>

																			</div>

									
																	</div>
							</div>
						</div>

					</article>

							<div class="section-related">
							<div class="section-heading">
					<h3 class="section-title">Related articles</h3>
				</div>
			
			<div class="row row-items">
									<div class="col-lg-4 col-sm-6 col-12">
						<article class="item">
	<div class="item-thumb">
		<a href="https://d-data.ro/datagrip-2022-1-3/">
			<img width="630" height="355" src="https://d-data.ro/wp-content/uploads/2022/05/datagrip-2022-1-3_62790fd0d9b36-630x355.png" class="attachment-nozama_lite_item size-nozama_lite_item wp-post-image" alt="" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2022/05/datagrip-2022-1-3_62790fd0d9b36-630x355.png 630w, https://d-data.ro/wp-content/uploads/2022/05/datagrip-2022-1-3_62790fd0d9b36-960x540.png 960w" sizes="(max-width: 630px) 100vw, 630px" />		</a>
	</div>

	<div class="item-content">
		<div class="item-meta">
			May 9, 2022		</div>

		<h3 class="item-title">
			<a href="https://d-data.ro/datagrip-2022-1-3/">
				DataGrip 2022.1.3			</a>
		</h3>

			</div>
</article>
					</div>
									<div class="col-lg-4 col-sm-6 col-12">
						<article class="item">
	<div class="item-thumb">
		<a href="https://d-data.ro/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams/">
			<img width="630" height="355" src="https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-630x355.png" class="attachment-nozama_lite_item size-nozama_lite_item wp-post-image" alt="" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-630x355.png 630w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-300x169.png 300w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-1024x576.png 1024w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-768x432.png 768w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-1536x864.png 1536w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-2048x1152.png 2048w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-960x540.png 960w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-1290x725.png 1290w, https://d-data.ro/wp-content/uploads/2022/05/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams_6288e1d230954-690x388.png 690w" sizes="(max-width: 630px) 100vw, 630px" />		</a>
	</div>

	<div class="item-content">
		<div class="item-meta">
			May 21, 2022		</div>

		<h3 class="item-title">
			<a href="https://d-data.ro/appcode-starts-the-2022-2-eap-with-the-uml-class-diagrams/">
				AppCode Starts the 2022.2 EAP with the UML Class Diagrams			</a>
		</h3>

			</div>
</article>
					</div>
									<div class="col-lg-4 col-sm-6 col-12">
						<article class="item">
	<div class="item-thumb">
		<a href="https://d-data.ro/kotlin-api-for-apache-spark-streaming-jupyter-and-more/">
			<img width="630" height="355" src="https://d-data.ro/wp-content/uploads/2022/05/kotlin-api-for-apache-spark-streaming-jupyter-and-more_6290cad10aaaf-630x355.png" class="attachment-nozama_lite_item size-nozama_lite_item wp-post-image" alt="" decoding="async" />		</a>
	</div>

	<div class="item-content">
		<div class="item-meta">
			May 27, 2022		</div>

		<h3 class="item-title">
			<a href="https://d-data.ro/kotlin-api-for-apache-spark-streaming-jupyter-and-more/">
				Kotlin API for Apache Spark: Streaming, Jupyter, and More			</a>
		</h3>

			</div>
</article>
					</div>
											</div>
		</div>
	
					<div class="row">
						<div class="col-lg-10 col-12 ml-lg-auto">
												</div>
					</div>

				
			</div>

			<div class="col-lg-3 col-12">
	<div class="sidebar">
		<aside id="ci-socials-2" class="widget widget_ci-socials"><h3 class="widget-title">Follow us on</h3>		<ul class="list-social-icons">
			<li><a href="https://www.facebook.com/DimensionalDataRomania/" class="social-icon" target="_blank"><i class="fab fa-facebook"></i></a></li><li><a href="https://www.linkedin.com/company/dimensional-data-romania/" class="social-icon" target="_blank"><i class="fab fa-linkedin"></i></a></li><li><a href="https://d-data.ro/feed/" class="social-icon" target="_blank"><i class="fas fa-rss"></i></a></li>		</ul>
		</aside><aside id="woocommerce_products-2" class="widget woocommerce widget_products"><h3 class="widget-title">Products</h3><ul class="product_list_widget"><li>
	
	<a class="product-thumb" href="https://d-data.ro/product/rad-studio-in-romania/" title="RAD Studio - Affordable IDE for modern apps">
		<picture class="attachment-woocommerce_gallery_thumbnail size-woocommerce_gallery_thumbnail" decoding="async">
<source type="image/webp" srcset="https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-160x160.png.webp 160w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-300x300.png.webp 300w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-1024x1024.png.webp 1024w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-150x150.png.webp 150w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-768x768.png.webp 768w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-520x520.png.webp 520w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-90x90.png.webp 90w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-630x630.png.webp 630w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-690x690.png.webp 690w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200.png.webp 1200w" sizes="(max-width: 160px) 100vw, 160px"/>
<img width="160" height="160" src="https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-160x160.png" alt="RAD Studio 12 Athens Romania" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-160x160.png 160w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-300x300.png 300w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-1024x1024.png 1024w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-150x150.png 150w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-768x768.png 768w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-520x520.png 520w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-90x90.png 90w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-630x630.png 630w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200-690x690.png 690w, https://d-data.ro/wp-content/uploads/2019/09/Rad-Studio-12-Box-Square-1200.png 1200w" sizes="(max-width: 160px) 100vw, 160px"/>
</picture>
	</a>

	<div class="product-content">
		<a class="product-title" href="https://d-data.ro/product/rad-studio-in-romania/">
			RAD Studio - Affordable IDE for modern apps		</a>

							
			</div>

	</li>
<li>
	
	<a class="product-thumb" href="https://d-data.ro/product/delphi-in-romania/" title="Delphi">
		<picture class="attachment-woocommerce_gallery_thumbnail size-woocommerce_gallery_thumbnail" decoding="async">
<source type="image/webp" srcset="https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-160x160.png.webp 160w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-630x630.png.webp 630w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-690x690.png.webp 690w" sizes="(max-width: 160px) 100vw, 160px"/>
<img width="160" height="160" src="https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-160x160.png" alt="Delphi 12 Athens Romania" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-160x160.png 160w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-300x300.png 300w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-1024x1024.png 1024w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-150x150.png 150w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-768x768.png 768w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-520x520.png 520w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-90x90.png 90w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-630x630.png 630w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200-690x690.png 690w, https://d-data.ro/wp-content/uploads/2019/10/Delphi-12-Box-Square-1200.png 1200w" sizes="(max-width: 160px) 100vw, 160px"/>
</picture>
	</a>

	<div class="product-content">
		<a class="product-title" href="https://d-data.ro/product/delphi-in-romania/">
			Delphi		</a>

							
			</div>

	</li>
<li>
	
	<a class="product-thumb" href="https://d-data.ro/product/c-builder-in-romania/" title="C++ Builder">
		<img width="160" height="160" src="https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-160x160.png" class="attachment-woocommerce_gallery_thumbnail size-woocommerce_gallery_thumbnail" alt="C++ Builder 12 in Romania" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-160x160.png 160w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-300x300.png 300w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-1024x1024.png 1024w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-150x150.png 150w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-768x768.png 768w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-520x520.png 520w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-90x90.png 90w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-630x630.png 630w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200-690x690.png 690w, https://d-data.ro/wp-content/uploads/2019/10/CPP-Builder-12-Box-Square-1200.png 1200w" sizes="(max-width: 160px) 100vw, 160px" />	</a>

	<div class="product-content">
		<a class="product-title" href="https://d-data.ro/product/c-builder-in-romania/">
			C++ Builder		</a>

							
			</div>

	</li>
<li>
	
	<a class="product-thumb" href="https://d-data.ro/product/tms-all-access/" title="TMS ALL-ACCESS">
		<img width="160" height="160" src="https://d-data.ro/wp-content/uploads/2019/10/all-160x160.png" class="attachment-woocommerce_gallery_thumbnail size-woocommerce_gallery_thumbnail" alt="TMS Software components in Romania" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2019/10/all-160x160.png 160w, https://d-data.ro/wp-content/uploads/2019/10/all-150x150.png 150w, https://d-data.ro/wp-content/uploads/2019/10/all.png 287w" sizes="(max-width: 160px) 100vw, 160px" />	</a>

	<div class="product-content">
		<a class="product-title" href="https://d-data.ro/product/tms-all-access/">
			TMS ALL-ACCESS		</a>

							
			</div>

	</li>
<li>
	
	<a class="product-thumb" href="https://d-data.ro/product/sencha-ext-js-romania/" title="Sencha Ext JS">
		<img width="160" height="160" src="https://d-data.ro/wp-content/uploads/2020/01/screen-ExtJS-DataPackage-160x160.png" class="attachment-woocommerce_gallery_thumbnail size-woocommerce_gallery_thumbnail" alt="Sencha Ext JS in Romania price" decoding="async" srcset="https://d-data.ro/wp-content/uploads/2020/01/screen-ExtJS-DataPackage-160x160.png 160w, https://d-data.ro/wp-content/uploads/2020/01/screen-ExtJS-DataPackage-630x630.png 630w, https://d-data.ro/wp-content/uploads/2020/01/screen-ExtJS-DataPackage-150x150.png 150w" sizes="(max-width: 160px) 100vw, 160px" />	</a>

	<div class="product-content">
		<a class="product-title" href="https://d-data.ro/product/sencha-ext-js-romania/">
			Sencha Ext JS		</a>

							
			</div>

	</li>
</ul></aside>	</div>
</div>

		</div>

	</div>

</main>

			<div class="widget-sections-footer">
			<section id="ci-home-newsletter-7" class="widget-section widget_ci-home-newsletter">			<div class="widget-newsletter-wrap">
				<div class="container">
					<div class="row align-items-lg-center">
						<div class="col-lg-6 col-12">
							<div class="widget-newsletter-content-wrap">
								<i class="far fa-envelope-open"></i>
																	<div class="widget-newsletter-content">
										<h2 class="section-title">Abonează-te la noutăți</h2><p>Primiți noutăți și oferte despre SDLC tools</p>									</div>
															</div>
						</div>

						<div class="col-lg-6 col-12">
							<form method="post" action="https://d-data.ro/va-multumim/" class="widget-newsletter-form">
								<label for="widget-newsletter-email" class="sr-only">Your email</label>
								<input name="#" id="widget-newsletter-email" type="email" required placeholder="Your email address">
								<button type="submit">Sign Up Today!</button>
							</form>
						</div>
					</div>
				</div>
			</div>
			</section>		</div>
	
		<footer class="footer">
					<div class="footer-widgets">
				<div class="container">
					<div class="row">
																					<div class="col-lg-3 col-md-6 col-12">
									<aside id="text-3" class="widget widget_text">			<div class="textwidget"><p>Date de contact:</p>
<p>Tel: <a href="tel:0040314260369">(+40) 31 426 0369</a></p>
<p>Mobil: <a href="tel:0040771098621">(+40) 771 098 621</a></p>
<p>E-mail: <a href="mailto:sales@d-data.ro">sales@d-data.ro</a></p>
</div>
		</aside>								</div>
																												<div class="col-lg-3 col-md-6 col-12">
									<aside id="text-4" class="widget widget_text">			<div class="textwidget"><p>Plata și Livrare</p>
<ul>
<li><a href="https://d-data.ro/contact/cum-cumpar/" target="_blank" rel="noopener">Plasare comandă</a></li>
<li><a href="https://d-data.ro/contact/livrarea-solutii/" target="_blank" rel="noopener">Livrare produse</a></li>
<li><a href="https://d-data.ro/contact/metode-de-plata/" target="_blank" rel="noopener">Metode de plată</a></li>
</ul>
</div>
		</aside><aside id="custom_html-13" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><script>function initApollo(){var n=Math.random().toString(36).substring(7),o=document.createElement("script");
o.src="https://assets.apollo.io/micro/website-tracker/tracker.iife.js?nocache="+n,o.async=!0,o.defer=!0,
o.onload=function(){window.trackingFunctions.onLoad({appId:"66e2f01b7cc7e71a01fd801e"})},
document.head.appendChild(o)}initApollo();</script></div></aside>								</div>
																												<div class="col-lg-3 col-md-6 col-12">
									<aside id="text-2" class="widget widget_text">			<div class="textwidget"><p>Informații utile</p>
<ul>
<li><a href="https://d-data.ro/contact/politica-de-confidentialitate/" target="_blank" rel="noopener">Politica de Confidentialitate</a></li>
<li><a href="https://d-data.ro/contact/termene-conditii/" target="_blank" rel="noopener">Termeni și Condiții</a></li>
<li><a href="https://d-data.ro/contact/cookies-policy/" target="_blank" rel="noopener">Politica de Cookies</a></li>
</ul>
</div>
		</aside>								</div>
																												<div class="col-lg-3 col-md-6 col-12">
									<aside id="custom_html-14" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"></div></aside><aside id="custom_html-18" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"></div></aside>								</div>
																		</div>
				</div>
			</div>
		
			<div class="footer-info">
		<div class="container">
			<div class="row align-items-center">
				<div class="col-lg-6 col-12">
														</div>

				<div class="col-lg-6 col-12">
					<div class="footer-info-addons text-lg-right text-center">
																	</div>
				</div>
			</div>
		</div>
	</div>
		</footer>
	
</div>

<div class="navigation-mobile-wrap">
	<a href="#nav-dismiss" class="navigation-mobile-dismiss">
	Close Menu	</a>
	<ul class="navigation-mobile"></ul>
</div>


<div class="wc_email_inquiry_modal modal fade default" id="wc_email_inquiry_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" style="display:none !important;">
	<div class="modal-dialog modal-dialog-centered" role="document">
		<div class="modal-content">
			<div class="modal-header">
				<div class="modal-title wc_email_inquiry_result_heading" id="exampleModalLabel">Solicitarea ofertei</div>
				<span class="close" data-dismiss="modal" aria-label="Close">
					<span aria-hidden="true">×</span>
				</span>
			</div>
			<div class="modal-body">
					
<div class="wc_email_inquiry_default_form_container wc_email_inquiry_form">
	<div style="padding:10px;">

		<div class="wc_email_inquiry_content">
			<div class="wc_email_inquiry_field">
	        	<label class="wc_email_inquiry_label" for="your_name">
	        		Name 

	        			        		<span class="wc_email_inquiry_required">*</span>
	        		
	        	</label> 
	        					<input type="text" class="your_name" name="your_name" id="your_name" value="" title="Name" />
			</div>
			<div class="wc_email_inquiry_field">
	        	<label class="wc_email_inquiry_label" for="your_email">
	        		Email 
	        		<span class="wc_email_inquiry_required">*</span>
	        	</label> 
	        					<input type="text" class="your_email" name="your_email" id="your_email" value="" title="Email" />
			</div>

			
			<div class="wc_email_inquiry_field">
	        	<label class="wc_email_inquiry_label" for="your_phone">
	        		Phone 

	        			        		<span class="wc_email_inquiry_required">*</span>
	        		
	        	</label> 
				<input type="text" class="your_phone" name="your_phone" id="your_phone" value="" title="Phone" />
			</div>

			
			<div class="wc_email_inquiry_field">
	        	<label class="wc_email_inquiry_label">
	        		Subject 
	        	</label> 
				<span class="wc_email_inquiry_subject"></span>
			</div>

			<div class="wc_email_inquiry_field">
	        	<label class="wc_email_inquiry_label" for="your_message">
	        		Message 
	        		
	        		
	        	</label> 
				<textarea class="your_message" name="your_message" id="your_message" title="Message"></textarea>
			</div>

			
			<div class="wc_email_inquiry_field">
	            <label class="wc_email_inquiry_label"> </label>
	            <label class="wc_email_inquiry_send_copy"><input type="checkbox" name="send_copy" id="send_copy" value="1" /> Send a copy of this email to myself.</label>
	        </div>

	        
	        
			<div class="wc_email_inquiry_field"> </div>

									<div class="wc_email_inquiry_field">
				Invormațiile pe cale Dvs le introduceți în prezentul formular nu se păstrează online, dar se vor transmite direct la destinație. Mai multe informații găsiți în <a href="https://d-data.ro/contact/politica-de-confidentialitate/" target="_blank" rel="noopener">Politica Noastră de Confidentialitate</a>			</div>

			
						<div class="wc_email_inquiry_field">
				<label class="wc_email_inquiry_send_copy"><input type="checkbox" name="agree_terms" class="agree_terms" value="1"> Am citit și acept Termenii si condițiile acestui site.</label>
			</div>
			<div class="wc_email_inquiry_field"> </div>
			
	        <div class="wc_email_inquiry_field">
	            <a class="wc_email_inquiry_form_button"
	            	data-product_id="0"
	            	data-name_required="1"
	            	data-show_phone="1"
	            	data-phone_required="1"
	            	data-message_required="0"
	            	data-show_acceptance="1"
	            	>TRANSMITE</a> 

	            <span class="wc_email_inquiry_loading"><img src="https://d-data.ro/wp-content/plugins/woocommerce-email-inquiry-cart-options/assets/images/loading.gif" /></span>
	        </div>
	        
	        <div style="clear:both"></div>

		</div>

		<div class="wc_email_inquiry_notification_message wc_email_inquiry_success_message"></div>
		<div class="wc_email_inquiry_notification_message wc_email_inquiry_error_message"></div>

	    <div style="clear:both"></div>

	</div>

</div>			</div>
		</div>
	</div>
</div><script type="application/ld+json">{"@context":"https:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"name":"Home","@id":"https:\/\/d-data.ro"}},{"@type":"ListItem","position":2,"item":{"name":"Nouta\u021bi","@id":"https:\/\/d-data.ro\/category\/news\/"}},{"@type":"ListItem","position":3,"item":{"name":"JetBrains","@id":"https:\/\/d-data.ro\/category\/news\/jetbrains-ide-romania\/"}},{"@type":"ListItem","position":4,"item":{"name":"Kotlin 1.7.0-Beta Released","@id":"https:\/\/d-data.ro\/kotlin-1-7-0-beta-released\/"}}]}</script>	<script type='text/javascript'>
		(function () {
			var c = document.body.className;
			c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
			document.body.className = c;
		})();
	</script>
	<link rel='stylesheet' id='wc-blocks-style-css' href='https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=11.8.0-dev' type='text/css' media='all' />
<script type="text/javascript" src="https://www.googletagmanager.com/gtag/js?id=G-GFC6R84LG1" id="google-tag-manager-js" data-wp-strategy="async"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/i18n.min.js?ver=7701b0c3857f914212ef" id="wp-i18n-js"></script>
<script type="text/javascript" id="wp-i18n-js-after">
/* <![CDATA[ */
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce-google-analytics-integration/assets/js/build/main.js?ver=50c6d17d67ef40d67991" id="woocommerce-google-analytics-integration-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=8.5.2" id="sourcebuster-js-js"></script>
<script type="text/javascript" id="wc-order-attribution-js-extra">
/* <![CDATA[ */
var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"ajaxurl":"https:\/\/d-data.ro\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":"yes"}};
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=8.5.2" id="wc-order-attribution-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/vendor/react.min.js?ver=18.2.0" id="react-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/deprecated.min.js?ver=73ad3591e7bc95f4777a" id="wp-deprecated-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/dom.min.js?ver=49ff2869626fbeaacc23" id="wp-dom-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0" id="react-dom-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/escape-html.min.js?ver=03e27a7b6ae14f7afaa6" id="wp-escape-html-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/element.min.js?ver=ed1c7604880e8b574b40" id="wp-element-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/is-shallow-equal.min.js?ver=20c2b06ecf04afb14fee" id="wp-is-shallow-equal-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/keycodes.min.js?ver=3460bd0fac9859d6886c" id="wp-keycodes-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/priority-queue.min.js?ver=422e19e9d48b269c5219" id="wp-priority-queue-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/compose.min.js?ver=3189b344ff39fef940b7" id="wp-compose-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/private-apis.min.js?ver=11cb2ebaa70a9f1f0ab5" id="wp-private-apis-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/redux-routine.min.js?ver=0be1b2a6a79703e28531" id="wp-redux-routine-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/data.min.js?ver=dc5f255634f3da29c8d5" id="wp-data-js"></script>
<script type="text/javascript" id="wp-data-js-after">
/* <![CDATA[ */
( function() {
	var userId = 0;
	var storageKey = "WP_DATA_USER_" + userId;
	wp.data
		.use( wp.data.plugins.persistence, { storageKey: storageKey } );
} )();
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/vendor/lodash.min.js?ver=4.17.19" id="lodash-js"></script>
<script type="text/javascript" id="lodash-js-after">
/* <![CDATA[ */
window.lodash = _.noConflict();
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks-registry.js?ver=1c879273bd5c193cad0a" id="wc-blocks-registry-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/url.min.js?ver=b4979979018b684be209" id="wp-url-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/api-fetch.min.js?ver=0fa4dabf8bf2c7adf21a" id="wp-api-fetch-js"></script>
<script type="text/javascript" id="wp-api-fetch-js-after">
/* <![CDATA[ */
wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "https://d-data.ro/wp-json/" ) );
wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "4165ec851b" );
wp.apiFetch.use( wp.apiFetch.nonceMiddleware );
wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware );
wp.apiFetch.nonceEndpoint = "https://d-data.ro/wp-admin/admin-ajax.php?action=rest-nonce";
/* ]]> */
</script>
<script type="text/javascript" id="wc-settings-js-before">
/* <![CDATA[ */
var wcSettings = wcSettings || JSON.parse( decodeURIComponent( '%7B%22shippingCostRequiresAddress%22%3Afalse%2C%22adminUrl%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fwp-admin%5C%2F%22%2C%22countries%22%3A%7B%22AF%22%3A%22Afghanistan%22%2C%22AX%22%3A%22%5Cu00c5land%20Islands%22%2C%22AL%22%3A%22Albania%22%2C%22DZ%22%3A%22Algeria%22%2C%22AS%22%3A%22American%20Samoa%22%2C%22AD%22%3A%22Andorra%22%2C%22AO%22%3A%22Angola%22%2C%22AI%22%3A%22Anguilla%22%2C%22AQ%22%3A%22Antarctica%22%2C%22AG%22%3A%22Antigua%20and%20Barbuda%22%2C%22AR%22%3A%22Argentina%22%2C%22AM%22%3A%22Armenia%22%2C%22AW%22%3A%22Aruba%22%2C%22AU%22%3A%22Australia%22%2C%22AT%22%3A%22Austria%22%2C%22AZ%22%3A%22Azerbaijan%22%2C%22BS%22%3A%22Bahamas%22%2C%22BH%22%3A%22Bahrain%22%2C%22BD%22%3A%22Bangladesh%22%2C%22BB%22%3A%22Barbados%22%2C%22BY%22%3A%22Belarus%22%2C%22PW%22%3A%22Belau%22%2C%22BE%22%3A%22Belgium%22%2C%22BZ%22%3A%22Belize%22%2C%22BJ%22%3A%22Benin%22%2C%22BM%22%3A%22Bermuda%22%2C%22BT%22%3A%22Bhutan%22%2C%22BO%22%3A%22Bolivia%22%2C%22BQ%22%3A%22Bonaire%2C%20Saint%20Eustatius%20and%20Saba%22%2C%22BA%22%3A%22Bosnia%20and%20Herzegovina%22%2C%22BW%22%3A%22Botswana%22%2C%22BV%22%3A%22Bouvet%20Island%22%2C%22BR%22%3A%22Brazil%22%2C%22IO%22%3A%22British%20Indian%20Ocean%20Territory%22%2C%22BN%22%3A%22Brunei%22%2C%22BG%22%3A%22Bulgaria%22%2C%22BF%22%3A%22Burkina%20Faso%22%2C%22BI%22%3A%22Burundi%22%2C%22KH%22%3A%22Cambodia%22%2C%22CM%22%3A%22Cameroon%22%2C%22CA%22%3A%22Canada%22%2C%22CV%22%3A%22Cape%20Verde%22%2C%22KY%22%3A%22Cayman%20Islands%22%2C%22CF%22%3A%22Central%20African%20Republic%22%2C%22TD%22%3A%22Chad%22%2C%22CL%22%3A%22Chile%22%2C%22CN%22%3A%22China%22%2C%22CX%22%3A%22Christmas%20Island%22%2C%22CC%22%3A%22Cocos%20%28Keeling%29%20Islands%22%2C%22CO%22%3A%22Colombia%22%2C%22KM%22%3A%22Comoros%22%2C%22CG%22%3A%22Congo%20%28Brazzaville%29%22%2C%22CD%22%3A%22Congo%20%28Kinshasa%29%22%2C%22CK%22%3A%22Cook%20Islands%22%2C%22CR%22%3A%22Costa%20Rica%22%2C%22HR%22%3A%22Croatia%22%2C%22CU%22%3A%22Cuba%22%2C%22CW%22%3A%22Cura%26ccedil%3Bao%22%2C%22CY%22%3A%22Cyprus%22%2C%22CZ%22%3A%22Czech%20Republic%22%2C%22DK%22%3A%22Denmark%22%2C%22DJ%22%3A%22Djibouti%22%2C%22DM%22%3A%22Dominica%22%2C%22DO%22%3A%22Dominican%20Republic%22%2C%22EC%22%3A%22Ecuador%22%2C%22EG%22%3A%22Egypt%22%2C%22SV%22%3A%22El%20Salvador%22%2C%22GQ%22%3A%22Equatorial%20Guinea%22%2C%22ER%22%3A%22Eritrea%22%2C%22EE%22%3A%22Estonia%22%2C%22SZ%22%3A%22Eswatini%22%2C%22ET%22%3A%22Ethiopia%22%2C%22FK%22%3A%22Falkland%20Islands%22%2C%22FO%22%3A%22Faroe%20Islands%22%2C%22FJ%22%3A%22Fiji%22%2C%22FI%22%3A%22Finland%22%2C%22FR%22%3A%22France%22%2C%22GF%22%3A%22French%20Guiana%22%2C%22PF%22%3A%22French%20Polynesia%22%2C%22TF%22%3A%22French%20Southern%20Territories%22%2C%22GA%22%3A%22Gabon%22%2C%22GM%22%3A%22Gambia%22%2C%22GE%22%3A%22Georgia%22%2C%22DE%22%3A%22Germany%22%2C%22GH%22%3A%22Ghana%22%2C%22GI%22%3A%22Gibraltar%22%2C%22GR%22%3A%22Greece%22%2C%22GL%22%3A%22Greenland%22%2C%22GD%22%3A%22Grenada%22%2C%22GP%22%3A%22Guadeloupe%22%2C%22GU%22%3A%22Guam%22%2C%22GT%22%3A%22Guatemala%22%2C%22GG%22%3A%22Guernsey%22%2C%22GN%22%3A%22Guinea%22%2C%22GW%22%3A%22Guinea-Bissau%22%2C%22GY%22%3A%22Guyana%22%2C%22HT%22%3A%22Haiti%22%2C%22HM%22%3A%22Heard%20Island%20and%20McDonald%20Islands%22%2C%22HN%22%3A%22Honduras%22%2C%22HK%22%3A%22Hong%20Kong%22%2C%22HU%22%3A%22Hungary%22%2C%22IS%22%3A%22Iceland%22%2C%22IN%22%3A%22India%22%2C%22ID%22%3A%22Indonesia%22%2C%22IR%22%3A%22Iran%22%2C%22IQ%22%3A%22Iraq%22%2C%22IE%22%3A%22Ireland%22%2C%22IM%22%3A%22Isle%20of%20Man%22%2C%22IL%22%3A%22Israel%22%2C%22IT%22%3A%22Italy%22%2C%22CI%22%3A%22Ivory%20Coast%22%2C%22JM%22%3A%22Jamaica%22%2C%22JP%22%3A%22Japan%22%2C%22JE%22%3A%22Jersey%22%2C%22JO%22%3A%22Jordan%22%2C%22KZ%22%3A%22Kazakhstan%22%2C%22KE%22%3A%22Kenya%22%2C%22KI%22%3A%22Kiribati%22%2C%22KW%22%3A%22Kuwait%22%2C%22KG%22%3A%22Kyrgyzstan%22%2C%22LA%22%3A%22Laos%22%2C%22LV%22%3A%22Latvia%22%2C%22LB%22%3A%22Lebanon%22%2C%22LS%22%3A%22Lesotho%22%2C%22LR%22%3A%22Liberia%22%2C%22LY%22%3A%22Libya%22%2C%22LI%22%3A%22Liechtenstein%22%2C%22LT%22%3A%22Lithuania%22%2C%22LU%22%3A%22Luxembourg%22%2C%22MO%22%3A%22Macao%22%2C%22MG%22%3A%22Madagascar%22%2C%22MW%22%3A%22Malawi%22%2C%22MY%22%3A%22Malaysia%22%2C%22MV%22%3A%22Maldives%22%2C%22ML%22%3A%22Mali%22%2C%22MT%22%3A%22Malta%22%2C%22MH%22%3A%22Marshall%20Islands%22%2C%22MQ%22%3A%22Martinique%22%2C%22MR%22%3A%22Mauritania%22%2C%22MU%22%3A%22Mauritius%22%2C%22YT%22%3A%22Mayotte%22%2C%22MX%22%3A%22Mexico%22%2C%22FM%22%3A%22Micronesia%22%2C%22MD%22%3A%22Moldova%22%2C%22MC%22%3A%22Monaco%22%2C%22MN%22%3A%22Mongolia%22%2C%22ME%22%3A%22Montenegro%22%2C%22MS%22%3A%22Montserrat%22%2C%22MA%22%3A%22Morocco%22%2C%22MZ%22%3A%22Mozambique%22%2C%22MM%22%3A%22Myanmar%22%2C%22NA%22%3A%22Namibia%22%2C%22NR%22%3A%22Nauru%22%2C%22NP%22%3A%22Nepal%22%2C%22NL%22%3A%22Netherlands%22%2C%22NC%22%3A%22New%20Caledonia%22%2C%22NZ%22%3A%22New%20Zealand%22%2C%22NI%22%3A%22Nicaragua%22%2C%22NE%22%3A%22Niger%22%2C%22NG%22%3A%22Nigeria%22%2C%22NU%22%3A%22Niue%22%2C%22NF%22%3A%22Norfolk%20Island%22%2C%22KP%22%3A%22North%20Korea%22%2C%22MK%22%3A%22North%20Macedonia%22%2C%22MP%22%3A%22Northern%20Mariana%20Islands%22%2C%22NO%22%3A%22Norway%22%2C%22OM%22%3A%22Oman%22%2C%22PK%22%3A%22Pakistan%22%2C%22PS%22%3A%22Palestinian%20Territory%22%2C%22PA%22%3A%22Panama%22%2C%22PG%22%3A%22Papua%20New%20Guinea%22%2C%22PY%22%3A%22Paraguay%22%2C%22PE%22%3A%22Peru%22%2C%22PH%22%3A%22Philippines%22%2C%22PN%22%3A%22Pitcairn%22%2C%22PL%22%3A%22Poland%22%2C%22PT%22%3A%22Portugal%22%2C%22PR%22%3A%22Puerto%20Rico%22%2C%22QA%22%3A%22Qatar%22%2C%22RE%22%3A%22Reunion%22%2C%22RO%22%3A%22Romania%22%2C%22RU%22%3A%22Russia%22%2C%22RW%22%3A%22Rwanda%22%2C%22ST%22%3A%22S%26atilde%3Bo%20Tom%26eacute%3B%20and%20Pr%26iacute%3Bncipe%22%2C%22BL%22%3A%22Saint%20Barth%26eacute%3Blemy%22%2C%22SH%22%3A%22Saint%20Helena%22%2C%22KN%22%3A%22Saint%20Kitts%20and%20Nevis%22%2C%22LC%22%3A%22Saint%20Lucia%22%2C%22SX%22%3A%22Saint%20Martin%20%28Dutch%20part%29%22%2C%22MF%22%3A%22Saint%20Martin%20%28French%20part%29%22%2C%22PM%22%3A%22Saint%20Pierre%20and%20Miquelon%22%2C%22VC%22%3A%22Saint%20Vincent%20and%20the%20Grenadines%22%2C%22WS%22%3A%22Samoa%22%2C%22SM%22%3A%22San%20Marino%22%2C%22SA%22%3A%22Saudi%20Arabia%22%2C%22SN%22%3A%22Senegal%22%2C%22RS%22%3A%22Serbia%22%2C%22SC%22%3A%22Seychelles%22%2C%22SL%22%3A%22Sierra%20Leone%22%2C%22SG%22%3A%22Singapore%22%2C%22SK%22%3A%22Slovakia%22%2C%22SI%22%3A%22Slovenia%22%2C%22SB%22%3A%22Solomon%20Islands%22%2C%22SO%22%3A%22Somalia%22%2C%22ZA%22%3A%22South%20Africa%22%2C%22GS%22%3A%22South%20Georgia%5C%2FSandwich%20Islands%22%2C%22KR%22%3A%22South%20Korea%22%2C%22SS%22%3A%22South%20Sudan%22%2C%22ES%22%3A%22Spain%22%2C%22LK%22%3A%22Sri%20Lanka%22%2C%22SD%22%3A%22Sudan%22%2C%22SR%22%3A%22Suriname%22%2C%22SJ%22%3A%22Svalbard%20and%20Jan%20Mayen%22%2C%22SE%22%3A%22Sweden%22%2C%22CH%22%3A%22Switzerland%22%2C%22SY%22%3A%22Syria%22%2C%22TW%22%3A%22Taiwan%22%2C%22TJ%22%3A%22Tajikistan%22%2C%22TZ%22%3A%22Tanzania%22%2C%22TH%22%3A%22Thailand%22%2C%22TL%22%3A%22Timor-Leste%22%2C%22TG%22%3A%22Togo%22%2C%22TK%22%3A%22Tokelau%22%2C%22TO%22%3A%22Tonga%22%2C%22TT%22%3A%22Trinidad%20and%20Tobago%22%2C%22TN%22%3A%22Tunisia%22%2C%22TR%22%3A%22Turkey%22%2C%22TM%22%3A%22Turkmenistan%22%2C%22TC%22%3A%22Turks%20and%20Caicos%20Islands%22%2C%22TV%22%3A%22Tuvalu%22%2C%22UG%22%3A%22Uganda%22%2C%22UA%22%3A%22Ukraine%22%2C%22AE%22%3A%22United%20Arab%20Emirates%22%2C%22GB%22%3A%22United%20Kingdom%20%28UK%29%22%2C%22US%22%3A%22United%20States%20%28US%29%22%2C%22UM%22%3A%22United%20States%20%28US%29%20Minor%20Outlying%20Islands%22%2C%22UY%22%3A%22Uruguay%22%2C%22UZ%22%3A%22Uzbekistan%22%2C%22VU%22%3A%22Vanuatu%22%2C%22VA%22%3A%22Vatican%22%2C%22VE%22%3A%22Venezuela%22%2C%22VN%22%3A%22Vietnam%22%2C%22VG%22%3A%22Virgin%20Islands%20%28British%29%22%2C%22VI%22%3A%22Virgin%20Islands%20%28US%29%22%2C%22WF%22%3A%22Wallis%20and%20Futuna%22%2C%22EH%22%3A%22Western%20Sahara%22%2C%22YE%22%3A%22Yemen%22%2C%22ZM%22%3A%22Zambia%22%2C%22ZW%22%3A%22Zimbabwe%22%7D%2C%22currency%22%3A%7B%22code%22%3A%22EUR%22%2C%22precision%22%3A2%2C%22symbol%22%3A%22%5Cu20ac%22%2C%22symbolPosition%22%3A%22left%22%2C%22decimalSeparator%22%3A%22.%22%2C%22thousandSeparator%22%3A%22%2C%22%2C%22priceFormat%22%3A%22%251%24s%252%24s%22%7D%2C%22currentUserId%22%3A0%2C%22currentUserIsAdmin%22%3Afalse%2C%22dateFormat%22%3A%22F%20j%2C%20Y%22%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2F%22%2C%22locale%22%3A%7B%22siteLocale%22%3A%22en_US%22%2C%22userLocale%22%3A%22en_US%22%2C%22weekdaysShort%22%3A%5B%22Sun%22%2C%22Mon%22%2C%22Tue%22%2C%22Wed%22%2C%22Thu%22%2C%22Fri%22%2C%22Sat%22%5D%7D%2C%22dashboardUrl%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fmy-account%5C%2F%22%2C%22orderStatuses%22%3A%7B%22pending%22%3A%22Pending%20payment%22%2C%22processing%22%3A%22Processing%22%2C%22on-hold%22%3A%22On%20hold%22%2C%22completed%22%3A%22Completed%22%2C%22cancelled%22%3A%22Cancelled%22%2C%22refunded%22%3A%22Refunded%22%2C%22failed%22%3A%22Failed%22%2C%22checkout-draft%22%3A%22Draft%22%7D%2C%22placeholderImgSrc%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fwp-content%5C%2Fuploads%5C%2Fwoocommerce-placeholder-630x630.png%22%2C%22productsSettings%22%3A%7B%22cartRedirectAfterAdd%22%3Afalse%7D%2C%22siteTitle%22%3A%22Dimensional%20Data%22%2C%22storePages%22%3A%7B%22myaccount%22%3A%7B%22id%22%3A3727%2C%22title%22%3A%22My%20account%22%2C%22permalink%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fmy-account%5C%2F%22%7D%2C%22shop%22%3A%7B%22id%22%3A3786%2C%22title%22%3A%22Catalog%20Solu%5Cu021bii%20Software%22%2C%22permalink%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fide-tools-shop-romania%5C%2F%22%7D%2C%22cart%22%3A%7B%22id%22%3A3725%2C%22title%22%3A%22Cart%22%2C%22permalink%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fcart%5C%2F%22%7D%2C%22checkout%22%3A%7B%22id%22%3A3726%2C%22title%22%3A%22Checkout%22%2C%22permalink%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fcheckout%5C%2F%22%7D%2C%22privacy%22%3A%7B%22id%22%3A3682%2C%22title%22%3A%22Politica%20de%20confiden%5Cu021bialitate%22%2C%22permalink%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fcontact%5C%2Fpolitica-de-confidentialitate%5C%2F%22%7D%2C%22terms%22%3A%7B%22id%22%3A7900%2C%22title%22%3A%22Termeni%20si%20condi%5Cu021bii%22%2C%22permalink%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fcontact%5C%2Ftermene-conditii%5C%2F%22%7D%7D%2C%22wcAssetUrl%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoocommerce%5C%2Fassets%5C%2F%22%2C%22wcVersion%22%3A%228.5.2%22%2C%22wpLoginUrl%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fwp-login.php%22%2C%22wpVersion%22%3A%226.4.5%22%2C%22collectableMethodIds%22%3A%5B%5D%2C%22admin%22%3A%7B%22wccomHelper%22%3A%7B%22isConnected%22%3Atrue%2C%22connectURL%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%5C%2Fwp-admin%5C%2Fadmin.php%3Fpage%3Dwc-addons%26section%3Dhelper%26wc-helper-disconnect%3D1%26wc-helper-nonce%3D2dc6e8a927%22%2C%22userEmail%22%3A%22data%40d-data.ro%22%2C%22userAvatar%22%3A%22https%3A%5C%2F%5C%2Fsecure.gravatar.com%5C%2Favatar%5C%2F47336befa5ac88744e87110652ce2aa6%3Fs%3D48%26d%3Dretro%26r%3Dg%22%2C%22storeCountry%22%3A%22RO%22%2C%22inAppPurchaseURLParams%22%3A%7B%22wccom-site%22%3A%22https%3A%5C%2F%5C%2Fd-data.ro%22%2C%22wccom-back%22%3A%22%252Fkotlin-1-7-0-beta-released%252F%22%2C%22wccom-woo-version%22%3A%228.5.2%22%2C%22wccom-connect-nonce%22%3A%229eb8b5cfec%22%7D%7D%2C%22_feature_nonce%22%3A%2234f2651401%22%2C%22alertCount%22%3A%220%22%2C%22visibleTaskListIds%22%3A%5B%22extended%22%5D%7D%7D' ) );
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/wc-settings.js?ver=07c2f0675ddd247d2325" id="wc-settings-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/data-controls.min.js?ver=fe4ccc8a1782ea8e2cb1" id="wp-data-controls-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/html-entities.min.js?ver=36a4a255da7dd2e1bf8e" id="wp-html-entities-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/notices.min.js?ver=38e88f4b627cf873edd0" id="wp-notices-js"></script>
<script type="text/javascript" id="wc-blocks-middleware-js-before">
/* <![CDATA[ */
			var wcBlocksMiddlewareConfig = {
				storeApiNonce: 'bfe6173fed',
				wcStoreApiNonceTimestamp: '1733560462'
			};
			
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks-middleware.js?ver=ca04183222edaf8a26be" id="wc-blocks-middleware-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks-data.js?ver=c96aba0171b12e03b8a6" id="wc-blocks-data-store-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/dom-ready.min.js?ver=392bdd43726760d1f3ca" id="wp-dom-ready-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/a11y.min.js?ver=7032343a947cfccf5608" id="wp-a11y-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/primitives.min.js?ver=6984e6eb5d6157c4fe44" id="wp-primitives-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/dist/warning.min.js?ver=122829a085511691f14d" id="wp-warning-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/blocks-components.js?ver=b165bb2bd213326d7f31" id="wc-blocks-components-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/client/blocks/blocks-checkout.js?ver=9f469ef17beaf7c51576" id="wc-blocks-checkout-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution-blocks.min.js?ver=8.5.2" id="wc-order-attribution-blocks-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-includes/js/comment-reply.min.js?ver=6.4.5" id="comment-reply-js" async="async" data-wp-strategy="async"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/themes/nozama-lite/inc/assets/vendor/magnific-popup/jquery.magnific-popup.js?ver=1.0.0" id="jquery-magnific-popup-js"></script>
<script type="text/javascript" src="https://d-data.ro/wp-content/themes/nozama-lite/inc/assets/js/magnific-init.js?ver=1.6.4" id="nozama-lite-magnific-init-js"></script>
<script type="text/javascript" id="nozama-lite-front-scripts-js-extra">
/* <![CDATA[ */
var nozama_lite_vars = {"ajaxurl":"https:\/\/d-data.ro\/wp-admin\/admin-ajax.php"};
/* ]]> */
</script>
<script type="text/javascript" src="https://d-data.ro/wp-content/themes/nozama-lite/inc/assets/js/scripts.js?ver=1.6.4" id="nozama-lite-front-scripts-js"></script>
<script type="text/javascript" id="woocommerce-google-analytics-integration-data-js-after">
/* <![CDATA[ */
window.ga4w = { data: {"cart":{"items":[],"coupons":[],"totals":{"currency_code":"EUR","total_price":0,"currency_minor_unit":2}}}, settings: {"tracker_function_name":"gtag","events":["purchase","add_to_cart","remove_from_cart","view_item_list","select_content","view_item","begin_checkout"],"identifier":null} }; document.dispatchEvent(new Event("ga4w:ready"));
/* ]]> */
</script>

		<!-- Cookie Notice plugin v2.5.4 by Hu-manity.co https://hu-manity.co/ -->
		<div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-bottom" aria-label="Cookie Notice" style="background-color: rgba(0,0,0,1);"><div class="cookie-notice-container" style="color: #fff"><span id="cn-notice-text" class="cn-text-container">We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.</span><span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button cn-button-custom button" aria-label="Ok">Ok</a></span><span id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" title="No"></span></div>
			
		</div>
		<!-- / Cookie Notice plugin -->
</body>
</html>


<!-- Page supported by LiteSpeed Cache 6.5.3 on 2024-12-07 08:34:22 -->